Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4HadronPhysicsShielding Class Reference

#include <G4HadronPhysicsShielding.hh>

Inheritance diagram for G4HadronPhysicsShielding:
Collaboration diagram for G4HadronPhysicsShielding:

Public Member Functions

 G4HadronPhysicsShielding (G4int verbose=1)
 
 G4HadronPhysicsShielding (const G4String &name, G4bool)
 
 G4HadronPhysicsShielding (const G4String &name, G4int verbose=1, G4double minFTFPEnergy=9.5 *CLHEP::GeV, G4double maxBertiniEnergy=9.9 *CLHEP::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
 

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 70 of file G4HadronPhysicsShielding.hh.

Constructor & Destructor Documentation

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)
91  , minNonHPNeutronEnergy_(19.9*MeV)
92 {}
G4VPhysicsConstructor(const G4String &="")
static constexpr double GeV
Definition: G4SIunits.hh:217
static constexpr double MeV
Definition: G4SIunits.hh:214
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)
100  , minNonHPNeutronEnergy_(19.9*MeV)
101 {}
G4VPhysicsConstructor(const G4String &="")
static constexpr double GeV
Definition: G4SIunits.hh:217
static constexpr double MeV
Definition: G4SIunits.hh:214
G4HadronPhysicsShielding::G4HadronPhysicsShielding ( const G4String name,
G4int  verbose = 1,
G4double  minFTFPEnergy = 9.5*CLHEP::GeV,
G4double  maxBertiniEnergy = 9.9*CLHEP::GeV 
)
explicit

Definition at line 103 of file G4HadronPhysicsShielding.cc.

105  : G4VPhysicsConstructor(name)
106  , useLEND_(false)
107  , evaluation_()
108  , minFTFPEnergy_(minFTFPEnergy)
109  , maxBertiniEnergy_(maxBertiniEnergy)
110  , minNonHPNeutronEnergy_(19.9*MeV)
111 {}
G4VPhysicsConstructor(const G4String &="")
static constexpr double MeV
Definition: G4SIunits.hh:214
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;
177  delete tpdata->theNeutronHPJENDLHEInelastic;
178  delete tpdata->theBGGxsProton;
179 
180  delete tpdata; tpdata=0;
181 }

Member Function Documentation

void G4HadronPhysicsShielding::ConstructParticle ( )
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:

void G4HadronPhysicsShielding::ConstructProcess ( )
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();
206  tpdata->theNeutrons->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 
214  tpdata->theNeutronHPJENDLHEInelastic=new G4ParticleHPJENDLHEInelasticData;
215  G4PhysListUtil::FindInelasticProcess(G4Neutron::Neutron())->AddDataSet(tpdata->theNeutronHPJENDLHEInelastic);
217 
218  tpdata->theBGGxsProton=0;
219 // tpdata->theBGGxsProton=new G4BGGNucleonInelasticXS(G4Proton::Proton());
220 // G4PhysListUtil::FindInelasticProcess(G4Proton::Proton())->AddDataSet(tpdata->theBGGxsProton);
221 
222  tpdata->thePiK->Build();
223 
224  // --- Kaons ---
225  tpdata->xsKaon = new G4ComponentGGHadronNucleusXsc();
226  G4VCrossSectionDataSet * kaonxs = new G4CrossSectionInelastic(tpdata->xsKaon);
231 
232  tpdata->theHyperon->Build();
233  tpdata->theAntiBaryon->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  }
252  capture->AddDataSet(tpdata->xsNeutronCaptureXS);
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)
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4KaonZeroLong * KaonZeroLong()
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 G4Neutron * Neutron()
Definition: G4Neutron.cc:104
G4int size() const
static const char * Default_Name()
G4ProcessManager * GetProcessManager() const
static G4KaonPlus * KaonPlus()
Definition: G4KaonPlus.cc:113
G4ProcessVector * GetProcessList() const

Here is the call graph for this function:

void G4HadronPhysicsShielding::UnuseLEND ( )
inline

Definition at line 84 of file G4HadronPhysicsShielding.hh.

84 {useLEND_=false;};
void G4HadronPhysicsShielding::UseLEND ( G4String  ss = "")
inline

Definition at line 83 of file G4HadronPhysicsShielding.hh.

83 {useLEND_=true;evaluation_=ss;};

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