Geant4  10.02.p03
G4HadronPhysicsShielding Class Reference

#include <G4HadronPhysicsShielding.hh>

Inheritance diagram for G4HadronPhysicsShielding:
Collaboration diagram for G4HadronPhysicsShielding:

Classes

struct  ThreadPrivate
 

Public Member Functions

 G4HadronPhysicsShielding (G4int verbose=1)
 
 G4HadronPhysicsShielding (const G4String &name, G4bool)
 
 G4HadronPhysicsShielding (const G4String &name, G4int verbose=1, G4double minFTFPEnergy=9.5 *GeV, G4double maxBertiniEnergy=9.9 *GeV)
 
virtual ~G4HadronPhysicsShielding ()
 
virtual void ConstructParticle ()
 
virtual void ConstructProcess ()
 
void UseLEND (G4String ss="")
 
void UnuseLEND ()
 
- Public Member Functions inherited from G4VPhysicsConstructor
 G4VPhysicsConstructor (const G4String &="")
 
 G4VPhysicsConstructor (const G4String &name, G4int physics_type)
 
virtual ~G4VPhysicsConstructor ()
 
void SetPhysicsName (const G4String &="")
 
const G4StringGetPhysicsName () const
 
void SetPhysicsType (G4int)
 
G4int GetPhysicsType () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
G4int GetInstanceID () const
 

Private Member Functions

void CreateModels ()
 

Private Attributes

G4bool useLEND_
 
G4String evaluation_
 
const G4double minFTFPEnergy_
 
const G4double maxBertiniEnergy_
 
const G4double minNonHPNeutronEnergy_
 

Static Private Attributes

static G4ThreadLocal ThreadPrivatetpdata = 0
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VPhysicsConstructor
static const G4VPCManagerGetSubInstanceManager ()
 
- Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
 
G4ParticleTable::G4PTblDicIteratorGetParticleIterator () const
 
- Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel
 
G4String namePhysics
 
G4int typePhysics
 
G4ParticleTabletheParticleTable
 
G4int g4vpcInstanceID
 
- Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager
 

Detailed Description

Definition at line 69 of file G4HadronPhysicsShielding.hh.

Constructor & Destructor Documentation

◆ G4HadronPhysicsShielding() [1/3]

G4HadronPhysicsShielding::G4HadronPhysicsShielding ( G4int  verbose = 1)
explicit

Definition at line 85 of file G4HadronPhysicsShielding.cc.

86  : G4VPhysicsConstructor("hInelastic Shielding")
87  , useLEND_(false)
88  , evaluation_()
89  , minFTFPEnergy_(9.5*GeV)
90  , maxBertiniEnergy_(9.9*GeV)
92 {}
static const double MeV
Definition: G4SIunits.hh:211
static const double GeV
Definition: G4SIunits.hh:214
G4VPhysicsConstructor(const G4String &="")

◆ G4HadronPhysicsShielding() [2/3]

G4HadronPhysicsShielding::G4HadronPhysicsShielding ( const G4String name,
G4bool   
)
explicit

Definition at line 94 of file G4HadronPhysicsShielding.cc.

95  : G4VPhysicsConstructor(name)
96  , useLEND_(false)
97  , evaluation_()
98  , minFTFPEnergy_(9.5*GeV)
99  , maxBertiniEnergy_(9.9*GeV)
101 {}
static const double MeV
Definition: G4SIunits.hh:211
static const double GeV
Definition: G4SIunits.hh:214
G4VPhysicsConstructor(const G4String &="")

◆ G4HadronPhysicsShielding() [3/3]

G4HadronPhysicsShielding::G4HadronPhysicsShielding ( const G4String name,
G4int  verbose = 1,
G4double  minFTFPEnergy = 9.5*GeV,
G4double  maxBertiniEnergy = 9.9*GeV 
)
explicit

Definition at line 103 of file G4HadronPhysicsShielding.cc.

105  : G4VPhysicsConstructor(name)
106  , useLEND_(false)
107  , evaluation_()
108  , minFTFPEnergy_(minFTFPEnergy)
109  , maxBertiniEnergy_(maxBertiniEnergy)
111 {}
static const double MeV
Definition: G4SIunits.hh:211
G4VPhysicsConstructor(const G4String &="")

◆ ~G4HadronPhysicsShielding()

G4HadronPhysicsShielding::~G4HadronPhysicsShielding ( )
virtual

Definition at line 154 of file G4HadronPhysicsShielding.cc.

155 {
156  if (!tpdata) return;
157 
158  delete tpdata->theNeutrons;
159  delete tpdata->theBertiniNeutron;
160  delete tpdata->theFTFPNeutron;
161  //delete tpdata->theHPNeutron;
162  delete tpdata->theLENeutron;
163 
164  delete tpdata->thePiK;
165  delete tpdata->theBertiniPiK;
166  delete tpdata->theFTFPPiK;
167 
168  delete tpdata->thePro;
169  delete tpdata->theBertiniPro;
170  delete tpdata->theFTFPPro;
171 
172  delete tpdata->theHyperon;
173  delete tpdata->theAntiBaryon;
174  delete tpdata->theFTFPAntiBaryon;
175 
176  delete tpdata->theBGGxsNeutron;
178  delete tpdata->theBGGxsProton;
179 
180  delete tpdata; tpdata=0;
181 }
static G4ThreadLocal ThreadPrivate * tpdata

Member Function Documentation

◆ ConstructParticle()

void G4HadronPhysicsShielding::ConstructParticle ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 183 of file G4HadronPhysicsShielding.cc.

184 {
185  G4MesonConstructor pMesonConstructor;
186  pMesonConstructor.ConstructParticle();
187 
188  G4BaryonConstructor pBaryonConstructor;
189  pBaryonConstructor.ConstructParticle();
190 
191  G4ShortLivedConstructor pShortLivedConstructor;
192  pShortLivedConstructor.ConstructParticle();
193 
194  G4IonConstructor pIonConstructor;
195  pIonConstructor.ConstructParticle();
196 }
static void ConstructParticle()
static void ConstructParticle()
static void ConstructParticle()
Here is the call graph for this function:

◆ ConstructProcess()

void G4HadronPhysicsShielding::ConstructProcess ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 199 of file G4HadronPhysicsShielding.cc.

200 {
201  if ( tpdata == 0 ) tpdata = new ThreadPrivate;
202  CreateModels();
203 
204  //tpdata->theBGGxsNeutron=new G4BGGNucleonInelasticXS(G4Neutron::Neutron());
205  tpdata->thePro->Build();
207 
208  tpdata->theBGGxsNeutron = 0; //set explictly to zero or destructor may fail
209 // tpdata->theBGGxsNeutron=new G4ParticleHPBGGNucleonInelasticXS(G4Neutron::Neutron());
210 // FindInelasticProcess(G4Neutron::Neutron())->AddDataSet(tpdata->theBGGxsNeutron);
211 //
212 
217 
219 // tpdata->theBGGxsProton=new G4BGGNucleonInelasticXS(G4Proton::Proton());
220 // G4PhysListUtil::FindInelasticProcess(G4Proton::Proton())->AddDataSet(tpdata->theBGGxsProton);
221 
222  tpdata->thePiK->Build();
223 
224  // --- Kaons ---
231 
232  tpdata->theHyperon->Build();
234 
235  // --- Neutrons ---
236  G4HadronicProcess* capture = 0;
237  G4HadronicProcess* fission = 0;
239  G4ProcessVector* pv = pmanager->GetProcessList();
240  for ( size_t i=0; i < static_cast<size_t>(pv->size()); ++i ) {
241  if ( fCapture == ((*pv)[i])->GetProcessSubType() ) {
242  capture = static_cast<G4HadronicProcess*>((*pv)[i]);
243  } else if ( fFission == ((*pv)[i])->GetProcessSubType() ) {
244  fission = static_cast<G4HadronicProcess*>((*pv)[i]);
245  }
246  }
247  if ( ! capture ) {
248  capture = new G4HadronCaptureProcess("nCapture");
249  pmanager->AddDiscreteProcess(capture);
250  }
253  capture->AddDataSet( new G4ParticleHPCaptureData );
254  G4NeutronRadCapture* theNeutronRadCapture = new G4NeutronRadCapture();
255  theNeutronRadCapture->SetMinEnergy( minNonHPNeutronEnergy_ );
256  capture->RegisterMe( theNeutronRadCapture );
257  if ( ! fission ) {
258  fission = new G4HadronFissionProcess("nFission");
259  pmanager->AddDiscreteProcess(fission);
260  }
261  G4LFission* theNeutronLEPFission = new G4LFission();
262  theNeutronLEPFission->SetMinEnergy( minNonHPNeutronEnergy_ );
263  fission->RegisterMe( theNeutronLEPFission );
264 }
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
G4ProcessVector * GetProcessList() const
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4KaonZeroLong * KaonZeroLong()
G4ProcessManager * GetProcessManager() const
static G4KaonMinus * KaonMinus()
Definition: G4KaonMinus.cc:113
void RegisterMe(G4HadronicInteraction *a)
void SetMinEnergy(G4double anEnergy)
static G4HadronicProcess * FindInelasticProcess(const G4ParticleDefinition *)
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
static G4KaonZeroShort * KaonZeroShort()
static G4CrossSectionDataSetRegistry * Instance()
static G4ThreadLocal ThreadPrivate * tpdata
G4int size() const
static G4Neutron * Neutron()
Definition: G4Neutron.cc:104
static const char * Default_Name()
static G4KaonPlus * KaonPlus()
Definition: G4KaonPlus.cc:113
Here is the call graph for this function:

◆ CreateModels()

void G4HadronPhysicsShielding::CreateModels ( )
private

Definition at line 114 of file G4HadronPhysicsShielding.cc.

115 {
116  G4bool quasiElasticFTF= false; // Use built-in quasi-elastic (not add-on)
117 
118  tpdata->theNeutrons=new G4NeutronBuilder( true ); // Fission on
119  tpdata->theFTFPNeutron=new G4FTFPNeutronBuilder(quasiElasticFTF);
125  //tpdata->theNeutrons->RegisterMe(tpdata->theHPNeutron=new G4NeutronPHPBuilder);
126 
127  if ( useLEND_ != true )
129  else
130  {
132  }
133 
135  tpdata->theFTFPPro=new G4FTFPProtonBuilder(quasiElasticFTF);
140 
142  tpdata->theFTFPPiK=new G4FTFPPiKBuilder(quasiElasticFTF);
147 
149 
152 }
void SetMinEnergy(G4double aM)
void SetMinEnergy(G4double aM)
bool G4bool
Definition: G4Types.hh:79
void SetMaxEnergy(G4double aM)
static G4ThreadLocal ThreadPrivate * tpdata
void SetMinEnergy(G4double aM)
void RegisterMe(G4VAntiBarionBuilder *aB)
void RegisterMe(G4VPiKBuilder *aB)
Definition: G4PiKBuilder.hh:58
void RegisterMe(G4VProtonBuilder *aB)
void RegisterMe(G4VNeutronBuilder *aB)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ UnuseLEND()

void G4HadronPhysicsShielding::UnuseLEND ( )
inline

Definition at line 83 of file G4HadronPhysicsShielding.hh.

Here is the call graph for this function:

◆ UseLEND()

void G4HadronPhysicsShielding::UseLEND ( G4String  ss = "")
inline

Member Data Documentation

◆ evaluation_

G4String G4HadronPhysicsShielding::evaluation_
private

Definition at line 118 of file G4HadronPhysicsShielding.hh.

◆ maxBertiniEnergy_

const G4double G4HadronPhysicsShielding::maxBertiniEnergy_
private

Definition at line 121 of file G4HadronPhysicsShielding.hh.

◆ minFTFPEnergy_

const G4double G4HadronPhysicsShielding::minFTFPEnergy_
private

Definition at line 120 of file G4HadronPhysicsShielding.hh.

◆ minNonHPNeutronEnergy_

const G4double G4HadronPhysicsShielding::minNonHPNeutronEnergy_
private

Definition at line 122 of file G4HadronPhysicsShielding.hh.

◆ tpdata

G4ThreadLocal G4HadronPhysicsShielding::ThreadPrivate * G4HadronPhysicsShielding::tpdata = 0
staticprivate

Definition at line 114 of file G4HadronPhysicsShielding.hh.

◆ useLEND_

G4bool G4HadronPhysicsShielding::useLEND_
private

Definition at line 117 of file G4HadronPhysicsShielding.hh.


The documentation for this class was generated from the following files: