Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4HadronPhysicsShielding Class Reference

#include <G4HadronPhysicsShielding.hh>

Inheritance diagram for G4HadronPhysicsShielding:

Public Member Functions

 G4HadronPhysicsShielding (G4int verbose)
 G4HadronPhysicsShielding (const G4String &name)
 G4HadronPhysicsShielding (const G4String &name="hInelastic Shielding", G4bool qe=false)
 G4HadronPhysicsShielding (const G4String &name, G4int verbose)
 G4HadronPhysicsShielding (const G4String &name, G4int verbose, G4double minFTFPEnergy, G4double maxBertiniEnergy)
 ~G4HadronPhysicsShielding () override=default
void UseLEND (const G4String &ss="")
void UnuseLEND ()
 G4HadronPhysicsShielding (G4HadronPhysicsShielding &)=delete
G4HadronPhysicsShieldingoperator= (const G4HadronPhysicsShielding &right)=delete
Public Member Functions inherited from G4HadronPhysicsFTFP_BERT
 G4HadronPhysicsFTFP_BERT (G4int verbose=1)
 G4HadronPhysicsFTFP_BERT (const G4String &name, G4bool quasiElastic=false)
 ~G4HadronPhysicsFTFP_BERT () override=default
void ConstructParticle () override
void ConstructProcess () override
 G4HadronPhysicsFTFP_BERT (G4HadronPhysicsFTFP_BERT &)=delete
G4HadronPhysicsFTFP_BERToperator= (const G4HadronPhysicsFTFP_BERT &right)=delete
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
G4int GetInstanceID () const
virtual void TerminateWorker ()
void SetVerboseLevel (G4int value)
G4int GetVerboseLevel () const

Protected Member Functions

void Neutron () override
Protected Member Functions inherited from G4HadronPhysicsFTFP_BERT
void CreateModels ()
virtual void Proton ()
virtual void Pion ()
virtual void Kaon ()
virtual void Others ()
virtual void DumpBanner ()
Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
G4ParticleTable::G4PTblDicIteratorGetParticleIterator () const
PhysicsBuilder_V GetBuilders () const
void AddBuilder (G4PhysicsBuilderInterface *bld)

Protected Attributes

G4bool useLEND_ {false}
G4String evaluation_
Protected Attributes inherited from G4HadronPhysicsFTFP_BERT
G4double minFTFP_pion
G4double maxBERT_pion
G4double minFTFP_kaon
G4double maxBERT_kaon
G4double minFTFP_proton
G4double maxBERT_proton
G4double minFTFP_neutron
G4double maxBERT_neutron
G4double minBERT_proton
G4double minBERT_neutron
G4bool QuasiElastic
Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel = 0
G4String namePhysics = ""
G4int typePhysics = 0
G4ParticleTabletheParticleTable = nullptr
G4int g4vpcInstanceID = 0

Additional Inherited Members

Static Public Member Functions inherited from G4VPhysicsConstructor
static const G4VPCManagerGetSubInstanceManager ()
Protected Types inherited from G4VPhysicsConstructor
using PhysicsBuilder_V = G4VPCData::PhysicsBuilders_V
Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager

Detailed Description

Definition at line 48 of file G4HadronPhysicsShielding.hh.

Constructor & Destructor Documentation

◆ G4HadronPhysicsShielding() [1/6]

◆ G4HadronPhysicsShielding() [2/6]

G4HadronPhysicsShielding::G4HadronPhysicsShielding ( const G4String & name)
explicit

Definition at line 87 of file G4HadronPhysicsShielding.cc.

88 : G4HadronPhysicsShielding(name, false)
89{}

◆ G4HadronPhysicsShielding() [3/6]

G4HadronPhysicsShielding::G4HadronPhysicsShielding ( const G4String & name = "hInelastic Shielding",
G4bool qe = false )
explicit

Definition at line 91 of file G4HadronPhysicsShielding.cc.

92 : G4HadronPhysicsFTFP_BERT(name, qe)
93{
95}
const G4double maxLEND_Energy
const G4double overlapLEND_Energy

◆ G4HadronPhysicsShielding() [4/6]

G4HadronPhysicsShielding::G4HadronPhysicsShielding ( const G4String & name,
G4int verbose )
explicit

Definition at line 97 of file G4HadronPhysicsShielding.cc.

◆ G4HadronPhysicsShielding() [5/6]

G4HadronPhysicsShielding::G4HadronPhysicsShielding ( const G4String & name,
G4int verbose,
G4double minFTFPEnergy,
G4double maxBertiniEnergy )
explicit

Definition at line 103 of file G4HadronPhysicsShielding.cc.

105 : G4HadronPhysicsShielding(name, false)
106{
107 auto param = G4HadronicParameters::Instance();
108 param->SetVerboseLevel( verb );
109 param->SetMinEnergyTransitionFTF_Cascade( minFTFPEnergy );
110 param->SetMaxEnergyTransitionFTF_Cascade( maxBertiniEnergy );
111}

◆ ~G4HadronPhysicsShielding()

G4HadronPhysicsShielding::~G4HadronPhysicsShielding ( )
overridedefault

◆ G4HadronPhysicsShielding() [6/6]

G4HadronPhysicsShielding::G4HadronPhysicsShielding ( G4HadronPhysicsShielding & )
delete

Member Function Documentation

◆ Neutron()

void G4HadronPhysicsShielding::Neutron ( )
overrideprotectedvirtual

Reimplemented from G4HadronPhysicsFTFP_BERT.

Definition at line 113 of file G4HadronPhysicsShielding.cc.

114{
115 G4HadronicParameters* param = G4HadronicParameters::Instance();
116 G4bool useFactorXS = param->ApplyFactorXS();
117
118 G4NeutronBuilder neu( true ); // Fission on
119
120 G4FTFPNeutronBuilder ftfpneu( QuasiElastic );
121 ftfpneu.SetMinEnergy( minFTFP_neutron );
122 neu.RegisterMe( &ftfpneu );
123
124 G4BertiniNeutronBuilder bertneu;
125 bertneu.SetMaxEnergy( maxBERT_neutron );
126 bertneu.SetMinEnergy( minBERT_neutron );
127 neu.RegisterMe( &bertneu );
128
129 if ( !useLEND_) {
130 G4NeutronPHPBuilder hpneu;
131 neu.RegisterMe( &hpneu );
132 }
133 neu.Build();
134
135 const G4ParticleDefinition* neutron = G4Neutron::Neutron();
136 G4HadronicProcess* inel = G4PhysListUtil::FindInelasticProcess(neutron);
137 if ( nullptr != inel ) {
138 // Register the G4ParticleHPJENDLHEInelasticData as the 2nd priority.
139 inel->GetCrossSectionDataStore()->AddDataSet( new G4ParticleHPJENDLHEInelasticData, 1 );
140 if ( useFactorXS ) inel->MultiplyCrossSectionBy( param->XSFactorNucleonInelastic() );
141 }
142
143 G4HadronicProcess* capture = G4PhysListUtil::FindCaptureProcess(neutron);
144 if ( nullptr != capture ) {
145 G4NeutronRadCapture* theNeutronRadCapture = new G4NeutronRadCapture();
146 theNeutronRadCapture->SetMinEnergy( minBERT_neutron );
147 capture->RegisterMe( theNeutronRadCapture );
148 }
149 G4HadronicProcess* fission = G4PhysListUtil::FindFissionProcess(neutron);
150 if ( nullptr != fission ) {
151 G4LFission* theNeutronLEPFission = new G4LFission();
152 theNeutronLEPFission->SetMinEnergy( minBERT_neutron );
153 theNeutronLEPFission->SetMaxEnergy( G4HadronicParameters::Instance()->GetMaxEnergy() );
154 fission->RegisterMe( theNeutronLEPFission );
155 }
156}
bool G4bool
Definition G4Types.hh:86
virtual void SetMaxEnergy(G4double aM) final override
virtual void SetMinEnergy(G4double aM) final override
void AddDataSet(G4VCrossSectionDataSet *)
void SetMinEnergy(G4double anEnergy)
void SetMaxEnergy(const G4double anEnergy)
G4double XSFactorNucleonInelastic() const
G4CrossSectionDataStore * GetCrossSectionDataStore()
void MultiplyCrossSectionBy(G4double factor)
void RegisterMe(G4HadronicInteraction *a)
static G4Neutron * Neutron()
Definition G4Neutron.cc:101
static G4HadronicProcess * FindInelasticProcess(const G4ParticleDefinition *)
static G4HadronicProcess * FindCaptureProcess(const G4ParticleDefinition *)
static G4HadronicProcess * FindFissionProcess(const G4ParticleDefinition *)

◆ operator=()

G4HadronPhysicsShielding & G4HadronPhysicsShielding::operator= ( const G4HadronPhysicsShielding & right)
delete

◆ UnuseLEND()

void G4HadronPhysicsShielding::UnuseLEND ( )
inline

Definition at line 63 of file G4HadronPhysicsShielding.hh.

63{ useLEND_=false; };

◆ UseLEND()

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

Definition at line 62 of file G4HadronPhysicsShielding.hh.

Member Data Documentation

◆ evaluation_

G4String G4HadronPhysicsShielding::evaluation_
protected

Definition at line 75 of file G4HadronPhysicsShielding.hh.

Referenced by UseLEND().

◆ useLEND_

G4bool G4HadronPhysicsShielding::useLEND_ {false}
protected

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