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

#include <XrayTelPhysicsList.hh>

Inheritance diagram for XrayTelPhysicsList:
G4VUserPhysicsList

Public Member Functions

 XrayTelPhysicsList ()
 
 ~XrayTelPhysicsList ()
 
void SetCutForGamma (G4double)
 
void SetCutForElectron (G4double)
 
G4double GetCutForGamma () const
 
G4double GetCutForElectron () const
 
- 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 ConstructIons ()
 
void ConstructAllShortLiveds ()
 
void ConstructGeneral ()
 
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 57 of file XrayTelPhysicsList.hh.

Constructor & Destructor Documentation

XrayTelPhysicsList::XrayTelPhysicsList ( )

Definition at line 70 of file XrayTelPhysicsList.cc.

References G4VUserPhysicsList::defaultCutValue, python.hepunit::m, python.hepunit::mm, and G4VUserPhysicsList::SetVerboseLevel().

71 {
72  // Default cut values
73  defaultCutValue = 2.0*mm;
74  cutForGamma = 1.0*m;
75  cutForElectron = 1.0*m;
76 
77  SetVerboseLevel(1);
78 }
void SetVerboseLevel(G4int value)
XrayTelPhysicsList::~XrayTelPhysicsList ( )

Definition at line 80 of file XrayTelPhysicsList.cc.

81 {}

Member Function Documentation

void XrayTelPhysicsList::ConstructAllShortLiveds ( )
protected

Definition at line 137 of file XrayTelPhysicsList.cc.

Referenced by ConstructParticle().

138 {
139 }
void XrayTelPhysicsList::ConstructBaryons ( )
protected

Definition at line 125 of file XrayTelPhysicsList.cc.

References G4BaryonConstructor::ConstructParticle().

Referenced by ConstructParticle().

126 {
127  // barions
128  G4BaryonConstructor bConstructor;
129  bConstructor.ConstructParticle();
130 }
static void ConstructParticle()
void XrayTelPhysicsList::ConstructBosons ( )
protected

Definition at line 96 of file XrayTelPhysicsList.cc.

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

Referenced by ConstructParticle().

97 {
98  // pseudo-particles
101 
102  // gamma
104 
105  // optical photon
107 }
static G4Geantino * GeantinoDefinition()
Definition: G4Geantino.cc:82
static G4ChargedGeantino * ChargedGeantinoDefinition()
static G4OpticalPhoton * OpticalPhotonDefinition()
static G4Gamma * GammaDefinition()
Definition: G4Gamma.cc:81
void XrayTelPhysicsList::ConstructEM ( )
protected

Definition at line 171 of file XrayTelPhysicsList.cc.

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

Referenced by ConstructProcess().

172 {
173  theParticleIterator->reset();
174 
175  while( (*theParticleIterator)() )
176  {
177  G4ParticleDefinition* particle = theParticleIterator->value();
178  G4ProcessManager* pmanager = particle->GetProcessManager();
179  G4String particleName = particle->GetParticleName();
180 
181  if (particleName == "gamma")
182  {
183  //gamma
184  pmanager->AddDiscreteProcess(new G4PhotoElectricEffect());
185  pmanager->AddDiscreteProcess(new G4ComptonScattering());
186  pmanager->AddDiscreteProcess(new G4GammaConversion());
187  }
188  else if (particleName == "e-")
189  {
190  //electron
191  pmanager->AddProcess(new G4eMultipleScattering(),-1, 1,1);
192  pmanager->AddProcess(new G4eIonisation(), -1, 2,2);
193  pmanager->AddProcess(new G4eBremsstrahlung(), -1, 3,3);
194 
195  } else if (particleName == "e+") {
196 
197  //positron
198  pmanager->AddProcess(new G4eMultipleScattering(),-1, 1,1);
199  pmanager->AddProcess(new G4eIonisation(), -1, 2,2);
200  pmanager->AddProcess(new G4eBremsstrahlung(), -1, 3,3);
201  pmanager->AddProcess(new G4eplusAnnihilation(), 0,-1,4);
202 
203  } else if( particleName == "mu-" ||
204  particleName == "mu+" ) {
205 
206  //muon
207  pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
208  pmanager->AddProcess(new G4MuIonisation, -1, 2, 2);
209  pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3, 3);
210  pmanager->AddProcess(new G4MuPairProduction, -1, 4, 4);
211 
212  } else if( particleName == "pi-" ||
213  particleName == "pi+" ) {
214 
215  //pions
216  pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
217  pmanager->AddProcess(new G4hIonisation, -1, 2, 2);
218  pmanager->AddProcess(new G4hBremsstrahlung, -1, 3, 3);
219  pmanager->AddProcess(new G4hPairProduction, -1, 4, 4);
220 
221  } else if( particleName == "proton" ) {
222 
223  //proton
224  pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
225  pmanager->AddProcess(new G4hIonisation, -1, 2, 2);
226  pmanager->AddProcess(new G4hBremsstrahlung, -1, 3, 3);
227  pmanager->AddProcess(new G4hPairProduction, -1, 4, 4);
228 
229  } else if( particleName == "alpha" ||
230  particleName == "He3" ||
231  particleName == "GenericIon" ) {
232 
233  //Ions
234  pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
235  pmanager->AddProcess(new G4ionIonisation, -1, 2, 2);
236 
237  } else if ((!particle->IsShortLived()) &&
238  (particle->GetPDGCharge() != 0.0) &&
239  (particle->GetParticleName() != "chargedgeantino")) {
240 
241  //all others charged particles except geantino
242  pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
243  pmanager->AddProcess(new G4hIonisation, -1, 2, 2);
244 
245  }
246  }
247 }
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 XrayTelPhysicsList::ConstructGeneral ( )
protected

Definition at line 251 of file XrayTelPhysicsList.cc.

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

Referenced by ConstructProcess().

252 {
253  G4Decay* theDecayProcess = new G4Decay();
254  theParticleIterator->reset();
255  while( (*theParticleIterator)() ){
256  G4ParticleDefinition* particle = theParticleIterator->value();
257  G4ProcessManager* pmanager = particle->GetProcessManager();
258  if (theDecayProcess->IsApplicable(*particle)) {
259  pmanager ->AddProcess(theDecayProcess);
260  pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
261  pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest);
262  }
263  }
264 }
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 XrayTelPhysicsList::ConstructIons ( )
protected

Definition at line 131 of file XrayTelPhysicsList.cc.

References G4IonConstructor::ConstructParticle().

Referenced by ConstructParticle().

132 {
133  // ions
134  G4IonConstructor iConstructor;
135  iConstructor.ConstructParticle();
136 }
static void ConstructParticle()
void XrayTelPhysicsList::ConstructLeptons ( )
protected
void XrayTelPhysicsList::ConstructMesons ( )
protected

Definition at line 119 of file XrayTelPhysicsList.cc.

References G4MesonConstructor::ConstructParticle().

Referenced by ConstructParticle().

120 {
121  // mesons
122  G4MesonConstructor mConstructor;
123  mConstructor.ConstructParticle();
124 }
static void ConstructParticle()
void XrayTelPhysicsList::ConstructParticle ( void  )
protectedvirtual
void XrayTelPhysicsList::ConstructProcess ( void  )
protectedvirtual

Implements G4VUserPhysicsList.

Definition at line 140 of file XrayTelPhysicsList.cc.

References G4VUserPhysicsList::AddTransportation(), ConstructEM(), and ConstructGeneral().

141 {
142  // Transportation, electromagnetic and general processes
144  ConstructEM();
146 }
G4double XrayTelPhysicsList::GetCutForElectron ( ) const

Definition at line 303 of file XrayTelPhysicsList.cc.

304 {
305  return cutForElectron;
306 }
G4double XrayTelPhysicsList::GetCutForGamma ( ) const

Definition at line 298 of file XrayTelPhysicsList.cc.

299 {
300  return cutForGamma;
301 }
void XrayTelPhysicsList::SetCutForElectron ( G4double  cut)

Definition at line 292 of file XrayTelPhysicsList.cc.

References G4VUserPhysicsList::ResetCuts().

293 {
294  ResetCuts();
295  cutForElectron = cut;
296 }
void ResetCuts()
obsolete methods
void XrayTelPhysicsList::SetCutForGamma ( G4double  cut)

Definition at line 286 of file XrayTelPhysicsList.cc.

References G4VUserPhysicsList::ResetCuts().

287 {
288  ResetCuts();
289  cutForGamma = cut;
290 }
void ResetCuts()
obsolete methods
void XrayTelPhysicsList::SetCuts ( )
protectedvirtual

Reimplemented from G4VUserPhysicsList.

Definition at line 266 of file XrayTelPhysicsList.cc.

References G4VUserPhysicsList::DumpCutValuesTable(), G4cout, G4endl, G4VUserPhysicsList::SetCutValue(), and G4VUserPhysicsList::verboseLevel.

267 {
268  // defaultCutValue you have typed in is used
269 
270  if (verboseLevel >1){
271  G4cout << "XrayTelPhysicsList::SetCuts:" << G4endl;
272  }
273 
274  // set cut values for gamma at first and for e- second
275  SetCutValue(cutForGamma, "gamma");
276  SetCutValue(cutForElectron, "e-");
277  SetCutValue(cutForElectron, "e+");
278 
279  // SetCutValueForOthers(defaultCutValue);
280 
281  if (verboseLevel >1) {
283  }
284 }
void SetCutValue(G4double aCut, const G4String &pname)
void DumpCutValuesTable(G4int flag=1)
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61

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