Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions
ExN02PhysicsList Class Reference

#include <ExN02PhysicsList.hh>

Inheritance diagram for ExN02PhysicsList:
G4VUserPhysicsList

Public Member Functions

 ExN02PhysicsList ()
 
 ~ExN02PhysicsList ()
 
- Public Member Functions inherited from G4VUserPhysicsList
 G4VUserPhysicsList ()
 
virtual ~G4VUserPhysicsList ()
 
 G4VUserPhysicsList (const G4VUserPhysicsList &)
 
G4VUserPhysicsListoperator= (const G4VUserPhysicsList &)
 
void Construct ()
 
void UseCoupledTransportation (G4bool vl=true)
 
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 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=0)
 
void SetParticleCuts (G4double cut, const G4String &particleName, G4Region *region=0)
 
void SetCutsForRegion (G4double aCut, const G4String &rname)
 
void ResetCuts ()
 obsolete methods More...
 
void SetApplyCuts (G4bool value, const G4String &name)
 
G4bool GetApplyCuts (const G4String &name) const
 
void RemoveProcessManager ()
 
void AddProcessManager (G4ParticleDefinition *newParticle, G4ProcessManager *newManager=0)
 
void CheckParticleList ()
 
void DisableCheckParticleList ()
 
G4int GetInstanceID () const
 
void InitializeWorker ()
 

Protected Member Functions

void ConstructParticle ()
 
void ConstructProcess ()
 
void SetCuts ()
 
void ConstructBosons ()
 
void ConstructLeptons ()
 
void ConstructMesons ()
 
void ConstructBaryons ()
 
void ConstructGeneral ()
 
void ConstructEM ()
 
void AddStepMax ()
 
- 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 ()
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VUserPhysicsList
static const G4VUPLManagerGetSubInstanceManager ()
 
- Protected Attributes inherited from G4VUserPhysicsList
G4ParticleTabletheParticleTable
 
G4int verboseLevel
 
G4double defaultCutValue
 
G4bool isSetDefaultCutValue
 
G4ProductionCutsTablefCutsTable
 
G4bool fRetrievePhysicsTable
 
G4bool fStoredInAscii
 
G4bool fIsCheckedForRetrievePhysicsTable
 
G4bool fIsRestoredCutValues
 
G4String directoryPhysicsTable
 
G4bool fDisableCheckParticleList
 
G4int g4vuplInstanceID
 
- Static Protected Attributes inherited from G4VUserPhysicsList
static G4RUN_DLL G4VUPLManager subInstanceManager
 

Detailed Description

Definition at line 43 of file ExN02PhysicsList.hh.

Constructor & Destructor Documentation

ExN02PhysicsList::ExN02PhysicsList ( )
ExN02PhysicsList::~ExN02PhysicsList ( )

Definition at line 51 of file ExN02PhysicsList.cc.

52 {}

Member Function Documentation

void ExN02PhysicsList::AddStepMax ( )
protected

Definition at line 257 of file ExN02PhysicsList.cc.

References G4ProcessManager::AddDiscreteProcess(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetProcessManager(), and theParticleIterator.

Referenced by ConstructProcess().

258 {
259  // Step limitation seen as a process
260  G4StepLimiter* stepLimiter = new G4StepLimiter();
261  ////G4UserSpecialCuts* userCuts = new G4UserSpecialCuts();
262 
263  theParticleIterator->reset();
264  while ((*theParticleIterator)()){
265  G4ParticleDefinition* particle = theParticleIterator->value();
266  G4ProcessManager* pmanager = particle->GetProcessManager();
267 
268  if (particle->GetPDGCharge() != 0.0)
269  {
270  pmanager ->AddDiscreteProcess(stepLimiter);
271  ////pmanager ->AddDiscreteProcess(userCuts);
272  }
273  }
274 }
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4ProcessManager * GetProcessManager() const
G4double GetPDGCharge() const
#define theParticleIterator
void ExN02PhysicsList::ConstructBaryons ( )
protected

Definition at line 121 of file ExN02PhysicsList.cc.

References G4AntiNeutron::AntiNeutronDefinition(), G4AntiProton::AntiProtonDefinition(), G4Neutron::NeutronDefinition(), and G4Proton::ProtonDefinition().

Referenced by ConstructParticle().

122 {
123  // barions
126 
129 }
static G4Proton * ProtonDefinition()
Definition: G4Proton.cc:88
static G4AntiProton * AntiProtonDefinition()
Definition: G4AntiProton.cc:88
static G4AntiNeutron * AntiNeutronDefinition()
static G4Neutron * NeutronDefinition()
Definition: G4Neutron.cc:99
void ExN02PhysicsList::ConstructBosons ( )
protected

Definition at line 71 of file ExN02PhysicsList.cc.

References G4ChargedGeantino::ChargedGeantinoDefinition(), G4Gamma::GammaDefinition(), and G4Geantino::GeantinoDefinition().

Referenced by ConstructParticle().

72 {
73  // pseudo-particles
76 
77  // gamma
79 }
static G4Geantino * GeantinoDefinition()
Definition: G4Geantino.cc:82
static G4ChargedGeantino * ChargedGeantinoDefinition()
static G4Gamma * GammaDefinition()
Definition: G4Gamma.cc:81
void ExN02PhysicsList::ConstructEM ( )
protected

Definition at line 166 of file ExN02PhysicsList.cc.

References G4ProcessManager::AddDiscreteProcess(), G4ProcessManager::AddProcess(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetProcessManager(), G4ParticleDefinition::IsShortLived(), and theParticleIterator.

Referenced by ConstructProcess().

167 {
168  theParticleIterator->reset();
169  while( (*theParticleIterator)() ){
170  G4ParticleDefinition* particle = theParticleIterator->value();
171  G4ProcessManager* pmanager = particle->GetProcessManager();
172  G4String particleName = particle->GetParticleName();
173 
174  if (particleName == "gamma") {
175  // gamma
178  pmanager->AddDiscreteProcess(new G4GammaConversion);
179 
180  } else if (particleName == "e-") {
181  //electron
182  pmanager->AddProcess(new G4eMultipleScattering, -1, 1, 1);
183  pmanager->AddProcess(new G4eIonisation, -1, 2, 2);
184  pmanager->AddProcess(new G4eBremsstrahlung, -1, 3, 3);
185 
186  } else if (particleName == "e+") {
187  //positron
188  pmanager->AddProcess(new G4eMultipleScattering, -1, 1, 1);
189  pmanager->AddProcess(new G4eIonisation, -1, 2, 2);
190  pmanager->AddProcess(new G4eBremsstrahlung, -1, 3, 3);
191  pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4);
192 
193  } else if( particleName == "mu+" ||
194  particleName == "mu-" ) {
195  //muon
196  pmanager->AddProcess(new G4MuMultipleScattering, -1, 1, 1);
197  pmanager->AddProcess(new G4MuIonisation, -1, 2, 2);
198  pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3, 3);
199  pmanager->AddProcess(new G4MuPairProduction, -1, 4, 4);
200 
201  } else if( particleName == "proton" ||
202  particleName == "pi-" ||
203  particleName == "pi+" ) {
204  //proton
205  pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
206  pmanager->AddProcess(new G4hIonisation, -1, 2, 2);
207  pmanager->AddProcess(new G4hBremsstrahlung, -1, 3, 3);
208  pmanager->AddProcess(new G4hPairProduction, -1, 4, 4);
209 
210  } else if( particleName == "alpha" ||
211  particleName == "He3" ) {
212  //alpha
213  pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
214  pmanager->AddProcess(new G4ionIonisation, -1, 2, 2);
215 
216  } else if( particleName == "GenericIon" ) {
217  //Ions
218  pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
219  pmanager->AddProcess(new G4ionIonisation, -1, 2, 2);
220 
221  } else if ((!particle->IsShortLived()) &&
222  (particle->GetPDGCharge() != 0.0) &&
223  (particle->GetParticleName() != "chargedgeantino")) {
224  //all others charged particles except geantino
225  pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
226  pmanager->AddProcess(new G4hIonisation, -1, 2, 2);
227  }
228  }
229 }
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleName() const
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
G4double GetPDGCharge() const
#define theParticleIterator
void ExN02PhysicsList::ConstructGeneral ( )
protected

Definition at line 235 of file ExN02PhysicsList.cc.

References G4ProcessManager::AddProcess(), G4ParticleDefinition::GetProcessManager(), idxAtRest, idxPostStep, G4Decay::IsApplicable(), G4ProcessManager::SetProcessOrdering(), and theParticleIterator.

Referenced by ConstructProcess().

236 {
237  // Add Decay Process
238  G4Decay* theDecayProcess = new G4Decay();
239  theParticleIterator->reset();
240  while( (*theParticleIterator)() ){
241  G4ParticleDefinition* particle = theParticleIterator->value();
242  G4ProcessManager* pmanager = particle->GetProcessManager();
243  if (theDecayProcess->IsApplicable(*particle)) {
244  pmanager ->AddProcess(theDecayProcess);
245  // set ordering for PostStepDoIt and AtRestDoIt
246  pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
247  pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest);
248  }
249  }
250 }
virtual G4bool IsApplicable(const G4ParticleDefinition &)
Definition: G4Decay.cc:89
G4ProcessManager * GetProcessManager() const
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
#define theParticleIterator
void ExN02PhysicsList::ConstructLeptons ( )
protected

Definition at line 83 of file ExN02PhysicsList.cc.

References G4AntiNeutrinoE::AntiNeutrinoEDefinition(), G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(), G4Electron::ElectronDefinition(), G4MuonMinus::MuonMinusDefinition(), G4MuonPlus::MuonPlusDefinition(), G4NeutrinoE::NeutrinoEDefinition(), G4NeutrinoMu::NeutrinoMuDefinition(), and G4Positron::PositronDefinition().

Referenced by ConstructParticle().

84 {
85  // leptons
86  // e+/-
89  // mu+/-
92  // nu_e
95  // nu_mu
98 }
static G4Electron * ElectronDefinition()
Definition: G4Electron.cc:89
static G4MuonPlus * MuonPlusDefinition()
Definition: G4MuonPlus.cc:94
static G4NeutrinoE * NeutrinoEDefinition()
Definition: G4NeutrinoE.cc:80
static G4AntiNeutrinoMu * AntiNeutrinoMuDefinition()
static G4Positron * PositronDefinition()
Definition: G4Positron.cc:89
static G4MuonMinus * MuonMinusDefinition()
Definition: G4MuonMinus.cc:95
static G4AntiNeutrinoE * AntiNeutrinoEDefinition()
static G4NeutrinoMu * NeutrinoMuDefinition()
Definition: G4NeutrinoMu.cc:80
void ExN02PhysicsList::ConstructMesons ( )
protected

Definition at line 102 of file ExN02PhysicsList.cc.

References G4AntiKaonZero::AntiKaonZeroDefinition(), G4Eta::EtaDefinition(), G4EtaPrime::EtaPrimeDefinition(), G4KaonMinus::KaonMinusDefinition(), G4KaonPlus::KaonPlusDefinition(), G4KaonZero::KaonZeroDefinition(), G4KaonZeroLong::KaonZeroLongDefinition(), G4KaonZeroShort::KaonZeroShortDefinition(), G4PionMinus::PionMinusDefinition(), G4PionPlus::PionPlusDefinition(), and G4PionZero::PionZeroDefinition().

Referenced by ConstructParticle().

103 {
104  // mesons
105  // light mesons
117 }
static G4KaonPlus * KaonPlusDefinition()
Definition: G4KaonPlus.cc:108
static G4KaonMinus * KaonMinusDefinition()
Definition: G4KaonMinus.cc:108
static G4KaonZero * KaonZeroDefinition()
Definition: G4KaonZero.cc:99
static G4AntiKaonZero * AntiKaonZeroDefinition()
static G4KaonZeroShort * KaonZeroShortDefinition()
static G4PionZero * PionZeroDefinition()
Definition: G4PionZero.cc:99
static G4PionMinus * PionMinusDefinition()
Definition: G4PionMinus.cc:93
static G4KaonZeroLong * KaonZeroLongDefinition()
static G4PionPlus * PionPlusDefinition()
Definition: G4PionPlus.cc:93
static G4EtaPrime * EtaPrimeDefinition()
Definition: G4EtaPrime.cc:100
static G4Eta * EtaDefinition()
Definition: G4Eta.cc:104
void ExN02PhysicsList::ConstructParticle ( void  )
protectedvirtual

Implements G4VUserPhysicsList.

Definition at line 56 of file ExN02PhysicsList.cc.

References ConstructBaryons(), ConstructBosons(), ConstructLeptons(), and ConstructMesons().

57 {
58  // In this method, static member functions should be called
59  // for all particles which you want to use.
60  // This ensures that objects of these particle types will be
61  // created in the program.
62 
67 }
void ExN02PhysicsList::ConstructProcess ( void  )
protectedvirtual
void ExN02PhysicsList::SetCuts ( )
protectedvirtual

Reimplemented from G4VUserPhysicsList.

Definition at line 278 of file ExN02PhysicsList.cc.

References G4VUserPhysicsList::DumpCutValuesTable(), G4VUserPhysicsList::SetCutsWithDefault(), and G4VUserPhysicsList::verboseLevel.

279 {
280  //G4VUserPhysicsList::SetCutsWithDefault method sets
281  //the default cut value for all particle types
282  //
284 
286 }
void DumpCutValuesTable(G4int flag=1)

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