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

#include <G4ErrorPhysicsList.hh>

Inheritance diagram for G4ErrorPhysicsList:
G4VUserPhysicsList

Public Member Functions

 G4ErrorPhysicsList ()
 
virtual ~G4ErrorPhysicsList ()
 
- 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

virtual void ConstructParticle ()
 
virtual void ConstructProcess ()
 
virtual void SetCuts ()
 
virtual void ConstructEM ()
 
- 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 49 of file G4ErrorPhysicsList.hh.

Constructor & Destructor Documentation

G4ErrorPhysicsList::G4ErrorPhysicsList ( )

Definition at line 72 of file G4ErrorPhysicsList.cc.

References python.hepunit::cm, and G4VUserPhysicsList::defaultCutValue.

73 {
74  defaultCutValue = 1.0E+9*cm; // set big step so that AlongStep computes all the energy
75 }
G4ErrorPhysicsList::~G4ErrorPhysicsList ( )
virtual

Definition at line 79 of file G4ErrorPhysicsList.cc.

80 {
81 }

Member Function Documentation

void G4ErrorPhysicsList::ConstructEM ( )
protectedvirtual

Definition at line 167 of file G4ErrorPhysicsList.cc.

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

Referenced by ConstructProcess().

168 {
169 
170  G4ErrorEnergyLoss* eLossProcess = new G4ErrorEnergyLoss;
171  G4ErrorStepLengthLimitProcess* stepLengthLimitProcess = new G4ErrorStepLengthLimitProcess;
172  G4ErrorMagFieldLimitProcess* magFieldLimitProcess = new G4ErrorMagFieldLimitProcess;
173  new G4ErrorMessenger( stepLengthLimitProcess, magFieldLimitProcess, eLossProcess );
174 
175  theParticleIterator->reset();
176  while( (*theParticleIterator)() ){
177  G4ParticleDefinition* particle = theParticleIterator->value();
178  G4ProcessManager* pmanager = particle->GetProcessManager();
179  G4String particleName = particle->GetParticleName();
180 
181  if (particleName == "gamma") {
182  // gamma
183  pmanager->AddDiscreteProcess(new G4GammaConversion());
184  pmanager->AddDiscreteProcess(new G4ComptonScattering());
185  pmanager->AddDiscreteProcess(new G4PhotoElectricEffect());
186 
187  // } else if (particleName == "e-" || particleName == "e+"
188  // || particleName == "mu+" || particleName == "mu-" ) {
189  }else if (!particle->IsShortLived() && particle->GetPDGCharge() != 0 ) {
190 
191  pmanager->AddContinuousProcess(eLossProcess,1);
192  pmanager->AddDiscreteProcess( stepLengthLimitProcess, 2 );
193  pmanager->AddDiscreteProcess( magFieldLimitProcess, 3 );
194 
195  /* } else if ((!particle->IsShortLived()) &&
196  (particle->GetPDGCharge() != 0.0) &&
197  (particle->GetParticleName() != "chargedgeantino")) {
198  // all others charged particles except geantino
199  // G4VProcess* aMultipleScattering = new G4MultipleScattering();
200  G4VProcess* anIonisation = new G4hIonisation();
201  ////G4VProcess* theUserCuts = new G4UserSpecialCuts();
202 
203  //
204  // add processes
205  pmanager->AddProcess(anIonisation);
206  // pmanager->AddProcess(aMultipleScattering);
207  ////pmanager->AddProcess(theUserCuts);
208 
209  //
210  // set ordering for AlongStepDoIt
211  // pmanager->SetProcessOrdering(aMultipleScattering, idxAlongStep,1);
212  pmanager->SetProcessOrdering(anIonisation, idxAlongStep,1);
213 
214  //
215  // set ordering for PostStepDoIt
216  // pmanager->SetProcessOrdering(aMultipleScattering, idxPostStep,1);
217  pmanager->SetProcessOrdering(anIonisation, idxPostStep,1);
218  ////pmanager->SetProcessOrdering(theUserCuts, idxPostStep,2);
219  */
220  }
221  }
222 }
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleName() const
G4double GetPDGCharge() const
#define theParticleIterator
G4int AddContinuousProcess(G4VProcess *aProcess, G4int ord=ordDefault)
void G4ErrorPhysicsList::ConstructParticle ( void  )
protectedvirtual

Implements G4VUserPhysicsList.

Definition at line 85 of file G4ErrorPhysicsList.cc.

References G4Electron::ElectronDefinition(), G4Gamma::GammaDefinition(), G4MuonMinus::MuonMinusDefinition(), G4MuonPlus::MuonPlusDefinition(), G4PionMinus::PionMinusDefinition(), G4PionPlus::PionPlusDefinition(), G4Positron::PositronDefinition(), and G4Proton::ProtonDefinition().

86 {
87 // In this method, static member functions should be called
88  // for all particles which you want to use.
89  // This ensures that objects of these particle types will be
90  // created in the program.
91  // gamma
93  // e+/-
96  // mu+/-
99 
100  // pi+/-
103 
104  // proton
106 
107 }
static G4Electron * ElectronDefinition()
Definition: G4Electron.cc:89
static G4MuonPlus * MuonPlusDefinition()
Definition: G4MuonPlus.cc:94
static G4Proton * ProtonDefinition()
Definition: G4Proton.cc:88
static G4PionMinus * PionMinusDefinition()
Definition: G4PionMinus.cc:93
static G4PionPlus * PionPlusDefinition()
Definition: G4PionPlus.cc:93
static G4Positron * PositronDefinition()
Definition: G4Positron.cc:89
static G4MuonMinus * MuonMinusDefinition()
Definition: G4MuonMinus.cc:95
static G4Gamma * GammaDefinition()
Definition: G4Gamma.cc:81
void G4ErrorPhysicsList::ConstructProcess ( void  )
protectedvirtual

Implements G4VUserPhysicsList.

Definition at line 111 of file G4ErrorPhysicsList.cc.

References G4ProcessManager::AddProcess(), ConstructEM(), G4cout, G4endl, G4Exception(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetProcessManager(), idxAlongStep, idxPostStep, G4ParticleDefinition::IsShortLived(), RunMustBeAborted, G4ProcessManager::SetProcessOrderingToFirst(), theParticleIterator, and G4VUserPhysicsList::verboseLevel.

112 {
113  G4Transportation* theTransportationProcess= new G4Transportation();
114 
115 #ifdef G4VERBOSE
116  if (verboseLevel >= 4){
117  G4cout << "G4VUserPhysicsList::ConstructProcess() "<< G4endl;
118  }
119 #endif
120 
121  // loop over all particles in G4ParticleTable
122  theParticleIterator->reset();
123  while( (*theParticleIterator)() ){
124  G4ParticleDefinition* particle = theParticleIterator->value();
125  G4ProcessManager* pmanager = particle->GetProcessManager();
126  if (!particle->IsShortLived()) {
127  G4cout << particle << "G4ErrorPhysicsList:: particle process manager " << particle->GetParticleName() << " = " << particle->GetProcessManager() << G4endl;
128  // Add transportation process for all particles other than "shortlived"
129  if ( pmanager == 0) {
130  // Error !! no process manager
131  G4String particleName = particle->GetParticleName();
132  G4Exception("G4ErrorPhysicsList::ConstructProcess","No process manager",
133  RunMustBeAborted, particleName );
134  } else {
135  // add transportation with ordering = ( -1, "first", "first" )
136  pmanager ->AddProcess(theTransportationProcess);
137  pmanager ->SetProcessOrderingToFirst(theTransportationProcess, idxAlongStep);
138  pmanager ->SetProcessOrderingToFirst(theTransportationProcess, idxPostStep);
139  }
140  } else {
141  // shortlived particle case
142  }
143  }
144 
145  ConstructEM();
146 }
void SetProcessOrderingToFirst(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt)
virtual void ConstructEM()
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
#define G4endl
Definition: G4ios.hh:61
#define theParticleIterator
void G4ErrorPhysicsList::SetCuts ( )
protectedvirtual

Reimplemented from G4VUserPhysicsList.

Definition at line 226 of file G4ErrorPhysicsList.cc.

References G4VUserPhysicsList::SetCutsWithDefault().

227 {
228  // " G4VUserPhysicsList::SetCutsWithDefault" method sets
229  // the default cut value or all particle types
231  // if (verboseLevel>0)
232  // DumpCutValuesTable();
233 }

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