Geant4  10.03.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ExN02PhysicsList Class Reference

#include <ExN02PhysicsList.hh>

Inheritance diagram for ExN02PhysicsList:
Collaboration diagram for ExN02PhysicsList:

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 ()
 
G4ParticleTable::G4PTblDicIteratorGetParticleIterator () const
 

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 ( )

Definition at line 43 of file ExN02PhysicsList.cc.

44 {
45  defaultCutValue = 1.0*cm;
46  SetVerboseLevel(1);
47 }
void SetVerboseLevel(G4int value)
static constexpr double cm
Definition: G4SIunits.hh:119

Here is the call graph for this function:

ExN02PhysicsList::~ExN02PhysicsList ( )

Definition at line 51 of file ExN02PhysicsList.cc.

52 {}

Member Function Documentation

void ExN02PhysicsList::AddStepMax ( )
protected

Definition at line 259 of file ExN02PhysicsList.cc.

260 {
261  // Step limitation seen as a process
262  G4StepLimiter* stepLimiter = new G4StepLimiter();
264 
266  particleIterator->reset();
267  while ((*particleIterator)()){
268  G4ParticleDefinition* particle = particleIterator->value();
269  G4ProcessManager* pmanager = particle->GetProcessManager();
270 
271  if (particle->GetPDGCharge() != 0.0)
272  {
273  pmanager ->AddDiscreteProcess(stepLimiter);
275  }
276  }
277 }
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4ProcessManager * GetProcessManager() const
std::vector< G4InuclElementaryParticle >::iterator particleIterator
Definition: G4BigBanger.cc:65
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
G4double GetPDGCharge() const

Here is the call graph for this function:

Here is the caller graph for this function:

void ExN02PhysicsList::ConstructBaryons ( )
protected

Definition at line 121 of file ExN02PhysicsList.cc.

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

Here is the call graph for this function:

Here is the caller graph for this function:

void ExN02PhysicsList::ConstructBosons ( )
protected

Definition at line 71 of file ExN02PhysicsList.cc.

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

Here is the call graph for this function:

Here is the caller graph for this function:

void ExN02PhysicsList::ConstructEM ( )
protected

Definition at line 166 of file ExN02PhysicsList.cc.

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

Here is the call graph for this function:

Here is the caller graph for this function:

void ExN02PhysicsList::ConstructGeneral ( )
protected

Definition at line 236 of file ExN02PhysicsList.cc.

237 {
238  // Add Decay Process
239  G4Decay* theDecayProcess = new G4Decay();
241  particleIterator->reset();
242  while( (*particleIterator)() ){
243  G4ParticleDefinition* particle = particleIterator->value();
244  G4ProcessManager* pmanager = particle->GetProcessManager();
245  if (theDecayProcess->IsApplicable(*particle)) {
246  pmanager ->AddProcess(theDecayProcess);
247  // set ordering for PostStepDoIt and AtRestDoIt
248  pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
249  pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest);
250  }
251  }
252 }
virtual G4bool IsApplicable(const G4ParticleDefinition &)
Definition: G4Decay.cc:89
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
G4ProcessManager * GetProcessManager() const
std::vector< G4InuclElementaryParticle >::iterator particleIterator
Definition: G4BigBanger.cc:65
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const

Here is the call graph for this function:

Here is the caller graph for this function:

void ExN02PhysicsList::ConstructLeptons ( )
protected

Definition at line 83 of file ExN02PhysicsList.cc.

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

Here is the call graph for this function:

Here is the caller graph for this function:

void ExN02PhysicsList::ConstructMesons ( )
protected

Definition at line 102 of file ExN02PhysicsList.cc.

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:103
static G4PionMinus * PionMinusDefinition()
Definition: G4PionMinus.cc:93
static G4KaonZeroLong * KaonZeroLongDefinition()
static G4PionPlus * PionPlusDefinition()
Definition: G4PionPlus.cc:93
static G4EtaPrime * EtaPrimeDefinition()
Definition: G4EtaPrime.cc:106
static G4Eta * EtaDefinition()
Definition: G4Eta.cc:104

Here is the call graph for this function:

Here is the caller graph for this function:

void ExN02PhysicsList::ConstructParticle ( void  )
protectedvirtual

Implements G4VUserPhysicsList.

Definition at line 56 of file ExN02PhysicsList.cc.

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 }

Here is the call graph for this function:

void ExN02PhysicsList::ConstructProcess ( void  )
protectedvirtual

Implements G4VUserPhysicsList.

Definition at line 133 of file ExN02PhysicsList.cc.

134 {
136  ConstructEM();
138  AddStepMax();
139 }

Here is the call graph for this function:

void ExN02PhysicsList::SetCuts ( )
protectedvirtual

Reimplemented from G4VUserPhysicsList.

Definition at line 281 of file ExN02PhysicsList.cc.

282 {
283  //G4VUserPhysicsList::SetCutsWithDefault method sets
284  //the default cut value for all particle types
285  //
287 
289 }
void DumpCutValuesTable(G4int flag=1)

Here is the call graph for this function:


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