17 #include "G4EmStandardPhysics.hh" 18 #include "G4EmStandardPhysics_option1.hh" 19 #include "G4EmStandardPhysics_option2.hh" 20 #include "G4EmStandardPhysics_option3.hh" 21 #include "G4EmStandardPhysics_option4.hh" 22 #include "G4EmLivermorePhysics.hh" 23 #include "G4EmPenelopePhysics.hh" 24 #include "G4DecayPhysics.hh" 25 #include "G4HadronElasticPhysics.hh" 26 #include "G4HadronInelasticQBBC.hh" 27 #include "G4IonBinaryCascadePhysics.hh" 28 #include "G4EmExtraPhysics.hh" 29 #include "G4StoppingPhysics.hh" 40 #include "G4UnitsTable.hh" 41 #include "G4LossTableManager.hh" 42 #include "G4EmProcessOptions.hh" 44 #include "G4PhysicalConstants.hh" 45 #include "G4SystemOfUnits.hh" 47 #include "G4EmConfigurator.hh" 49 #include "G4IonFluctuations.hh" 50 #include "G4IonParametrisedLossModel.hh" 51 #include "G4UniversalFluctuation.hh" 53 #include "G4BraggIonGasModel.hh" 54 #include "G4BetheBlochIonGasModel.hh" 56 #include "G4IonPhysics.hh" 71 G4LossTableManager::Instance()->SetVerbose(
verbose);
73 defaultCutValue = 1.*mm;
85 RegisterPhysics(
new G4DecayPhysics());
101 G4cout <<
"Add Physics <" << name
106 RegisterPhysics(
new G4EmStandardPhysics(1));
108 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
112 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
114 RegisterPhysics(
new G4EmStandardPhysics_option1());
116 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
118 RegisterPhysics(
new G4EmStandardPhysics_option2());
120 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
122 RegisterPhysics(
new G4EmStandardPhysics_option3());
124 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
126 RegisterPhysics(
new G4EmStandardPhysics_option4());
128 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
130 RegisterPhysics(
new G4EmLivermorePhysics());
132 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
134 RegisterPhysics(
new G4EmPenelopePhysics());
136 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
140 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
144 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
148 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
155 else if (name ==
"ion-standard") {
157 G4cout <<
"ActarSimPhysicsList::AddPhysicsList: " << name
158 <<
" cannot be registered ---- ion List already existing" 163 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
169 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
171 RegisterPhysics(
new G4HadronElasticPhysics());
173 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
175 RegisterPhysics(
new G4HadronInelasticQBBC());
177 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
179 RegisterPhysics(
new G4IonBinaryCascadePhysics());
181 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
183 RegisterPhysics(
new G4EmExtraPhysics());
185 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
187 RegisterPhysics(
new G4StoppingPhysics());
189 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" << G4endl;
191 G4cout <<
"PhysicsList::AddPhysicsList <" << name <<
">" 192 <<
" fail - EM physics should be registered first " << G4endl;
194 G4cout <<
"ActarSimPhysicsList::AddPhysicsList <" << name <<
">" 195 <<
" fail - module is already regitered or is unknown " << G4endl;
200 #include "G4ChargedGeantino.hh" 201 #include "G4Geantino.hh" 202 #include "G4Gamma.hh" 203 #include "G4OpticalPhoton.hh" 206 #include "G4Electron.hh" 207 #include "G4Positron.hh" 208 #include "G4NeutrinoE.hh" 209 #include "G4AntiNeutrinoE.hh" 210 #include "G4MuonPlus.hh" 211 #include "G4MuonMinus.hh" 212 #include "G4NeutrinoMu.hh" 213 #include "G4AntiNeutrinoMu.hh" 216 #include "G4MesonConstructor.hh" 217 #include "G4BaryonConstructor.hh" 218 #include "G4IonConstructor.hh" 225 G4cout <<
"Construct Particles" << G4endl;
228 G4Geantino::GeantinoDefinition();
229 G4ChargedGeantino::ChargedGeantinoDefinition();
232 G4Gamma::GammaDefinition();
235 G4OpticalPhoton::OpticalPhotonDefinition();
238 G4Electron::ElectronDefinition();
239 G4Positron::PositronDefinition();
240 G4MuonPlus::MuonPlusDefinition();
241 G4MuonMinus::MuonMinusDefinition();
243 G4NeutrinoE::NeutrinoEDefinition();
244 G4AntiNeutrinoE::AntiNeutrinoEDefinition();
245 G4NeutrinoMu::NeutrinoMuDefinition();
246 G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
249 G4MesonConstructor mConstructor;
250 mConstructor.ConstructParticle();
253 G4BaryonConstructor bConstructor;
254 bConstructor.ConstructParticle();
257 G4IonConstructor iConstructor;
258 iConstructor.ConstructParticle();
268 G4cout <<
"Construct Processes" << G4endl;
271 if(!
emPhysicsList) { G4VModularPhysicsList::ConstructProcess(); }
277 G4EmProcessOptions emOptions;
278 emOptions.SetMinEnergy(0.1*keV);
279 emOptions.SetMaxEnergy(100.*GeV);
280 emOptions.SetDEDXBinning(90);
281 emOptions.SetLambdaBinning(90);
296 if (
verbose>0) DumpCutValuesTable();
329 G4EmConfigurator* em_config = G4LossTableManager::Instance()->EmConfigurator();
330 theParticleIterator->reset();
331 while ((*theParticleIterator)()) {
332 G4ParticleDefinition* particle = theParticleIterator->value();
333 G4String partname = particle->GetParticleName();
334 if(partname ==
"alpha" || partname ==
"He3" || partname ==
"GenericIon") {
335 G4BraggIonGasModel* mod1 =
new G4BraggIonGasModel();
336 G4BetheBlochIonGasModel* mod2 =
new G4BetheBlochIonGasModel();
337 G4double eth = 2.*MeV*particle->GetPDGMass()/proton_mass_c2;
338 em_config->SetExtraEmModel(partname,
"ionIoni",mod1,
"",0.0,eth,
339 new G4IonFluctuations());
340 em_config->SetExtraEmModel(partname,
"ionIoni",mod2,
"",eth,100*TeV,
341 new G4UniversalFluctuation());
G4bool stopIsRegisted
Register control parameter for library.
G4int verbose
Verbose control.
G4VPhysicsConstructor * emPhysicsList
Pointer to Physics list.
void SetVerbose(G4int val)
Selecting verbosity.
G4bool bicIsRegisted
Register control parameter for library.
ActarSimPhysicsList()
Constructor. Initializing values.
void AddIonGasModels()
Adds the ion gas model.
G4double cutForPositron
Cut energy parameter for gammas.
G4bool emBuilderIsRegisted
Register control parameter for library.
void SetCutForElectron(G4double)
Setting cut value for the electron.
G4double cutForGamma
Cut energy parameter for gammas.
G4double cutForElectron
Cut energy parameter for gammas.
void ConstructParticle()
Construct Particles.
G4bool ionIsRegisted
Register control parameter for library.
ActarSimStepLimiterBuilder * steplimiter
Pointer to step limiter.
G4bool gasIsRegisted
Register control parameter for library.
G4bool gnucIsRegisted
Register control parameter for library.
void ConstructProcess()
Construct Processes.
void AddPhysicsList(const G4String &)
Registering the physics processes.
G4bool stepLimiterIsRegisted
Register control parameter for library.
ActarSimPhysicsListMessenger * pMessenger
Pointer to messenger.
void SetCutForGamma(G4double)
Setting cut value for the gammas.
G4bool helIsRegisted
Register control parameter for library.
void SetCutForPositron(G4double)
Setting cut value for the positron.
~ActarSimPhysicsList()
Destructor. Nothing to do.