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

#include <Shielding.hh>

Inheritance diagram for Shielding:

Public Member Functions

 Shielding (G4int verb=1, const G4String &n_model="HP", const G4String &HadrPhysVariant="", G4bool useLightIonQMD=false)
virtual ~Shielding ()=default
 Shielding (const Shielding &)=delete
Shieldingoperator= (const Shielding &right)=delete
Public Member Functions inherited from G4VModularPhysicsList
 G4VModularPhysicsList ()
 ~G4VModularPhysicsList () override
void ConstructParticle () override
void ConstructProcess () override
void RegisterPhysics (G4VPhysicsConstructor *)
const G4VPhysicsConstructorGetPhysics (G4int index) const
const G4VPhysicsConstructorGetPhysics (const G4String &name) const
const G4VPhysicsConstructorGetPhysicsWithType (G4int physics_type) const
void ReplacePhysics (G4VPhysicsConstructor *)
void RemovePhysics (G4VPhysicsConstructor *)
void RemovePhysics (G4int type)
void RemovePhysics (const G4String &name)
G4int GetInstanceID () const
void TerminateWorker () override
void SetVerboseLevel (G4int value)
G4int GetVerboseLevel () const
Public Member Functions inherited from G4VUserPhysicsList
 G4VUserPhysicsList ()
virtual ~G4VUserPhysicsList ()
 G4VUserPhysicsList (const G4VUserPhysicsList &)
G4VUserPhysicsListoperator= (const G4VUserPhysicsList &)
void Construct ()
virtual void SetCuts ()
void SetDefaultCutValue (G4double newCutValue)
G4double GetDefaultCutValue () const
void BuildPhysicsTable ()
void PreparePhysicsTable (G4ParticleDefinition *)
void BuildPhysicsTable (G4ParticleDefinition *)
G4bool StorePhysicsTable (const G4String &directory=".")
G4bool IsPhysicsTableRetrieved () const
G4bool IsStoredInAscii () const
const G4StringGetPhysicsTableDirectory () const
void SetPhysicsTableRetrieved (const G4String &directory="")
void SetStoredInAscii ()
void ResetPhysicsTableRetrieved ()
void ResetStoredInAscii ()
void DumpList () const
void DumpCutValuesTable (G4int flag=1)
void DumpCutValuesTableIfRequested ()
void SetVerboseLevel (G4int value)
G4int GetVerboseLevel () const
void UseCoupledTransportation (G4bool vl=true)
void SetCutsWithDefault ()
void SetCutValue (G4double aCut, const G4String &pname)
G4double GetCutValue (const G4String &pname) const
void SetCutValue (G4double aCut, const G4String &pname, const G4String &rname)
void SetParticleCuts (G4double cut, G4ParticleDefinition *particle, G4Region *region=nullptr)
void SetParticleCuts (G4double cut, const G4String &particleName, G4Region *region=nullptr)
void SetCutsForRegion (G4double aCut, const G4String &rname)
void SetApplyCuts (G4bool value, const G4String &name)
G4bool GetApplyCuts (const G4String &name) const
void RemoveProcessManager ()
void RemoveTrackingManager ()
void AddProcessManager (G4ParticleDefinition *newParticle, G4ProcessManager *newManager=nullptr)
void CheckParticleList ()
void DisableCheckParticleList ()
G4int GetInstanceID () const
virtual void InitializeWorker ()

Additional Inherited Members

Static Public Member Functions inherited from G4VModularPhysicsList
static const G4VMPLManagerGetSubInstanceManager ()
Static Public Member Functions inherited from G4VUserPhysicsList
static const G4VUPLManagerGetSubInstanceManager ()
Protected Types inherited from G4VModularPhysicsList
using G4PhysConstVector = G4VMPLData::G4PhysConstVectorData
Protected Member Functions inherited from G4VModularPhysicsList
 G4VModularPhysicsList (const G4VModularPhysicsList &)
G4VModularPhysicsListoperator= (const G4VModularPhysicsList &)
Protected Member Functions inherited from G4VUserPhysicsList
void AddTransportation ()
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
void BuildIntegralPhysicsTable (G4VProcess *, G4ParticleDefinition *)
virtual void RetrievePhysicsTable (G4ParticleDefinition *, const G4String &directory, G4bool ascii=false)
void InitializeProcessManager ()
G4ParticleTable::G4PTblDicIteratorGetParticleIterator () const
Protected Attributes inherited from G4VModularPhysicsList
G4int verboseLevel = 0
G4int g4vmplInstanceID = 0
Protected Attributes inherited from G4VUserPhysicsList
G4ParticleTabletheParticleTable = nullptr
G4int verboseLevel = 1
G4double defaultCutValue = 1.0
G4bool isSetDefaultCutValue = false
G4ProductionCutsTablefCutsTable = nullptr
G4bool fRetrievePhysicsTable = false
G4bool fStoredInAscii = true
G4bool fIsCheckedForRetrievePhysicsTable = false
G4bool fIsRestoredCutValues = false
G4String directoryPhysicsTable = "."
G4bool fDisableCheckParticleList = false
G4int g4vuplInstanceID = 0
Static Protected Attributes inherited from G4VModularPhysicsList
static G4RUN_DLL G4VMPLManager G4VMPLsubInstanceManager
Static Protected Attributes inherited from G4VUserPhysicsList
static G4RUN_DLL G4VUPLManager subInstanceManager

Detailed Description

Definition at line 46 of file Shielding.hh.

Constructor & Destructor Documentation

◆ Shielding() [1/2]

Shielding::Shielding ( G4int verb = 1,
const G4String & n_model = "HP",
const G4String & HadrPhysVariant = "",
G4bool useLightIonQMD = false )
explicit

Definition at line 73 of file Shielding.cc.

75{
76 G4String LEN_model = n_model;
77 size_t find = LEN_model.find("LEND__");
78 G4String evaluation;
79 if ( find != G4String::npos )
80 {
81 evaluation=LEN_model;
82 evaluation.erase(0,find+6);
83 LEN_model="LEND";
84 }
85
86 if(verbose > 0) {
87 G4cout << "<<< Geant4 Physics List simulation engine: Shielding"
88 << HadrPhysVariant << G4endl;
89 if ( LEN_model=="LEND" ) {
90 G4cout << "<<< LEND will be used for low energy neutron and gamma projectiles" << G4endl;
91 } else {
92 G4cout << "<<< (Note that Shielding" << HadrPhysVariant << " and Shielding"
93 << HadrPhysVariant << "_HP are equivalent!)" << G4endl;
94 }
95 }
96 defaultCutValue = 0.7*CLHEP::mm;
97 SetCutValue(0, "proton");
98 SetVerboseLevel(verbose);
99
100 // EM Physics
101 RegisterPhysics( new G4EmStandardPhysics(verbose));
102
103 // Synchroton Radiation & Gamma Nuclear Physics
104 G4EmExtraPhysics* emExtraPhysics = new G4EmExtraPhysics(verbose);
105
106 // Adjust energy bounds of gamma nuclear models from G4EmExtraPhysics
107 if ( LEN_model == "LEND" )
108 emExtraPhysics->LENDGammaNuclear(true);
109
110 RegisterPhysics( emExtraPhysics );
111
112 // Decays
113 RegisterPhysics( new G4DecayPhysics(verbose) );
114 RegisterPhysics( new G4RadioactiveDecayPhysics(verbose) );
115
116 // Hadron Elastic scattering
117 if ( LEN_model == "HP" ) {
118 RegisterPhysics( new G4HadronElasticPhysicsHP(verbose) );
119 } else if ( LEN_model == "LEND" ) {
120 RegisterPhysics( new G4HadronElasticPhysicsLEND(verbose,evaluation));
121 } else {
122 if(verbose > 0) {
123 G4cout << "Shielding Physics List: Warning!" <<G4endl;
124 G4cout << "\"" << LEN_model
125 << "\" is not valid for the low energy neutron model." <<G4endl;
126 G4cout << "Neutron HP package will be used." <<G4endl;
127 }
128 RegisterPhysics( new G4HadronElasticPhysicsHP(verbose) );
129 }
130
131 // Hadron Physics = Bertini and FTF with HP or LEND
132 G4VPhysicsConstructor* hpc;
133 G4String HadPhysName = "hInelastic Shielding";
134 if ( LEN_model == "LEND" ) HadPhysName += "LEND";
135
136 G4double HadPhysEmin, HadPhysEmax;
137 if (HadrPhysVariant == "M") {
138 // The variant "M" has a special, dedicated energy transition region
139 // between the string model and cascade model, therefore the recommended
140 // values from G4HadronicParameters are intentionally not used.
141 HadPhysEmin = 9.5*CLHEP::GeV;
142 HadPhysEmax = 9.9*CLHEP::GeV;
143 } else {
146 }
147
148 // N.B., G4HadronPhysicsShielding only builds neutron processes
149 hpc = new G4HadronPhysicsShielding(HadPhysName, verbose, HadPhysEmin, HadPhysEmax);
150
151 // Turn off HP low energy model defined by G4HadronPhysicsShielding
152 if ( LEN_model == "LEND" )
153 ((G4HadronPhysicsShielding*)hpc)->UseLEND();
154
155 RegisterPhysics( hpc );
156
157 // Activate production of fission fragments in NeutronHP
158 if ( LEN_model == "HP" )
160
161 // Add LEND processes (neutron and photon induced)
162 if ( LEN_model == "LEND" )
163 RegisterPhysics( new G4HadronPhysicsLEND(verbose, evaluation));
164
165 // Stopping Physics
166 RegisterPhysics( new G4StoppingPhysics(verbose) );
167
168 // Ion Physics
169 RegisterPhysics( new G4IonElasticPhysics(verbose) );
170 if (useLightIonQMD){
171 RegisterPhysics( new G4LightIonQMDPhysics(verbose) );
172 } else {
173 RegisterPhysics( new G4IonQMDPhysics(verbose) );
174 }
175}
double G4double
Definition G4Types.hh:83
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
void LENDGammaNuclear(G4bool val)
static G4HadronicParameters * Instance()
G4double GetMinEnergyTransitionFTF_Cascade() const
G4double GetMaxEnergyTransitionFTF_Cascade() const
void SetProduceFissionFragments(G4bool val)
static G4ParticleHPManager * GetInstance()
void SetVerboseLevel(G4int value)
void RegisterPhysics(G4VPhysicsConstructor *)
void SetCutValue(G4double aCut, const G4String &pname)

Referenced by operator=(), Shielding(), and ShieldingLEND::ShieldingLEND().

◆ ~Shielding()

virtual Shielding::~Shielding ( )
virtualdefault

◆ Shielding() [2/2]

Shielding::Shielding ( const Shielding & )
delete

Member Function Documentation

◆ operator=()

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

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