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

#include <F02PhysicsList.hh>

Inheritance diagram for F02PhysicsList:
G4VUserPhysicsList

Public Member Functions

 F02PhysicsList (F02DetectorConstruction *)
 
virtual ~F02PhysicsList ()
 
void SetGammaCut (G4double)
 
void SetElectronCut (G4double)
 
void SetMaxStep (G4double)
 
- 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 ()
 

Data Fields

G4double fMaxChargedStep
 

Protected Member Functions

virtual void ConstructParticle ()
 
virtual void ConstructProcess ()
 
void SetCuts ()
 
void ConstructBosons ()
 
void ConstructLeptons ()
 
void ConstructMesons ()
 
void ConstructBarions ()
 
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 46 of file F02PhysicsList.hh.

Constructor & Destructor Documentation

F02PhysicsList::F02PhysicsList ( F02DetectorConstruction p)

Definition at line 53 of file F02PhysicsList.cc.

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

55 {
56  fDet = p;
57 
58  defaultCutValue = 1.000*mm;
59 
60  fCutForGamma = defaultCutValue;
61  fCutForElectron = defaultCutValue;
62 
63  SetVerboseLevel(1);
64  fPhysicsListMessenger = new F02PhysicsListMessenger(this);
65 }
const char * p
Definition: xmltok.h:285
void SetVerboseLevel(G4int value)
G4double fMaxChargedStep
#define DBL_MAX
Definition: templates.hh:83
F02PhysicsList::~F02PhysicsList ( )
virtual

Definition at line 69 of file F02PhysicsList.cc.

70 {
71  delete fPhysicsListMessenger;
72 }

Member Function Documentation

void F02PhysicsList::ConstructBarions ( )
protected

Definition at line 137 of file F02PhysicsList.cc.

References G4AntiProton::AntiProtonDefinition(), and G4Proton::ProtonDefinition().

Referenced by ConstructParticle().

138 {
139  // barions
140 
143 }
static G4Proton * ProtonDefinition()
Definition: G4Proton.cc:88
static G4AntiProton * AntiProtonDefinition()
Definition: G4AntiProton.cc:88
void F02PhysicsList::ConstructBosons ( )
protected

Definition at line 93 of file F02PhysicsList.cc.

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

Referenced by ConstructParticle().

94 {
95  // gamma
96 
98 
99  // charged geantino
100 
102 
103 }
static G4ChargedGeantino * ChargedGeantinoDefinition()
static G4Gamma * GammaDefinition()
Definition: G4Gamma.cc:81
void F02PhysicsList::ConstructEM ( )
protected

Definition at line 177 of file F02PhysicsList.cc.

References G4ProcessManager::AddDiscreteProcess(), G4ProcessManager::AddProcess(), fComptonScattering, fGammaConversion, fMaxChargedStep, fPhotoElectricEffect, G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetProcessManager(), F02StepCut::SetMaxStep(), and theParticleIterator.

Referenced by ConstructProcess().

178 {
179  theParticleIterator->reset();
180 
181  while( (*theParticleIterator)() )
182  {
183  G4ParticleDefinition* particle = theParticleIterator->value();
184  G4ProcessManager* pmanager = particle->GetProcessManager();
185  G4String particleName = particle->GetParticleName();
186 
187  if (particleName == "gamma")
188  {
189  // Construct processes for gamma
190 
194 
195  pmanager->AddDiscreteProcess(fPhotoElectricEffect);
196  pmanager->AddDiscreteProcess(fComptonScattering);
197  pmanager->AddDiscreteProcess(fGammaConversion);
198  }
199  else if (particleName == "e-")
200  {
201  // Construct processes for electron
202 
203  G4eIonisation* feminusIonisation = new G4eIonisation();
204  G4eBremsstrahlung* feminusBremsstrahlung = new G4eBremsstrahlung();
205  F02StepCut* feminusStepCut = new F02StepCut();
206  feminusStepCut->SetMaxStep(fMaxChargedStep);
207 
208  pmanager->AddProcess(feminusIonisation,-1,2,2);
209  pmanager->AddProcess(feminusBremsstrahlung,-1,-1,3);
210  pmanager->AddProcess(feminusStepCut,-1,-1,4);
211  }
212  else if (particleName == "e+")
213  {
214  // Construct processes for positron
215 
216  G4eIonisation* feplusIonisation = new G4eIonisation();
217  G4eBremsstrahlung* feplusBremsstrahlung = new G4eBremsstrahlung();
218  F02StepCut* feplusStepCut = new F02StepCut();
219  feplusStepCut->SetMaxStep(fMaxChargedStep);
220 
221  pmanager->AddProcess(feplusIonisation,-1,2,2);
222  pmanager->AddProcess(feplusBremsstrahlung,-1,-1,3);
223  pmanager->AddProcess(feplusStepCut,-1,-1,5);
224  }
225  else if( particleName == "mu+" || particleName == "mu-" )
226  {
227  // Construct processes for muon+
228 
229  F02StepCut* muonStepCut = new F02StepCut();
230  muonStepCut->SetMaxStep(fMaxChargedStep);
231  G4MuIonisation* muIonisation = new G4MuIonisation();
232 
233  pmanager->AddProcess(new G4MuMultipleScattering(),-1,1,1);
234  pmanager->AddProcess(muIonisation,-1,2,2);
235  pmanager->AddProcess(new G4MuBremsstrahlung(),-1,-1,3);
236  pmanager->AddProcess(new G4MuPairProduction(),-1,-1,4);
237  pmanager->AddProcess(muonStepCut,-1,-1,3);
238  }
239  else if ( particleName == "proton"
240  || particleName == "antiproton"
241  || particleName == "pi+"
242  || particleName == "pi-"
243  || particleName == "kaon+"
244  || particleName == "kaon-"
245  )
246  {
247  F02StepCut* theHadronStepCut = new F02StepCut();
248  theHadronStepCut->SetMaxStep(fMaxChargedStep);
249 
250  G4hIonisation* thehIonisation = new G4hIonisation();
251  G4hMultipleScattering* thehMultipleScattering =
252  new G4hMultipleScattering();
253 
254  pmanager->AddProcess(thehMultipleScattering,-1,1,1);
255  pmanager->AddProcess(thehIonisation,-1,2,2);
256  pmanager->AddProcess(theHadronStepCut,-1,-1,3);
257  }
258  }
259 }
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 fMaxChargedStep
#define theParticleIterator
void SetMaxStep(G4double)
Definition: F02StepCut.cc:67
void F02PhysicsList::ConstructGeneral ( )
protected

Definition at line 265 of file F02PhysicsList.cc.

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

Referenced by ConstructProcess().

266 {
267  // Add Decay Process
268 
269  G4Decay* theDecayProcess = new G4Decay();
270  theParticleIterator->reset();
271 
272  while( (*theParticleIterator)() )
273  {
274  G4ParticleDefinition* particle = theParticleIterator->value();
275  G4ProcessManager* pmanager = particle->GetProcessManager();
276 
277  if (theDecayProcess->IsApplicable(*particle))
278  {
279  pmanager ->AddProcess(theDecayProcess);
280 
281  // set ordering for PostStepDoIt and AtRestDoIt
282 
283  pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep);
284  pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest);
285  }
286  }
287 }
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 F02PhysicsList::ConstructLeptons ( )
protected

Definition at line 107 of file F02PhysicsList.cc.

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

Referenced by ConstructParticle().

108 {
109  // leptons
110 
115 
120 }
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 F02PhysicsList::ConstructMesons ( )
protected

Definition at line 124 of file F02PhysicsList.cc.

References G4KaonMinus::KaonMinusDefinition(), G4KaonPlus::KaonPlusDefinition(), G4PionMinus::PionMinusDefinition(), G4PionPlus::PionPlusDefinition(), and G4PionZero::PionZeroDefinition().

Referenced by ConstructParticle().

125 {
126  // mesons
127 
133 }
static G4KaonPlus * KaonPlusDefinition()
Definition: G4KaonPlus.cc:108
static G4KaonMinus * KaonMinusDefinition()
Definition: G4KaonMinus.cc:108
static G4PionZero * PionZeroDefinition()
Definition: G4PionZero.cc:99
static G4PionMinus * PionMinusDefinition()
Definition: G4PionMinus.cc:93
static G4PionPlus * PionPlusDefinition()
Definition: G4PionPlus.cc:93
void F02PhysicsList::ConstructParticle ( void  )
protectedvirtual

Implements G4VUserPhysicsList.

Definition at line 76 of file F02PhysicsList.cc.

References ConstructBarions(), ConstructBosons(), ConstructLeptons(), ConstructMesons(), and G4GenericIon::GenericIonDefinition().

77 {
78  // In this method, static member functions should be called
79  // for all particles which you want to use.
80  // This ensures that objects of these particle types will be
81  // created in the program.
82 
87 
89 }
static G4GenericIon * GenericIonDefinition()
Definition: G4GenericIon.cc:88
void ConstructBosons()
void F02PhysicsList::ConstructProcess ( void  )
protectedvirtual

Implements G4VUserPhysicsList.

Definition at line 147 of file F02PhysicsList.cc.

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

148 {
150 
151  ConstructEM();
153 }
void F02PhysicsList::SetCuts ( )
protectedvirtual

Reimplemented from G4VUserPhysicsList.

Definition at line 291 of file F02PhysicsList.cc.

References G4VUserPhysicsList::defaultCutValue, G4VUserPhysicsList::DumpCutValuesTable(), G4BestUnit, G4cout, G4endl, G4Timer::GetUserElapsed(), G4VUserPhysicsList::SetCutValue(), G4Timer::Start(), G4Timer::Stop(), and G4VUserPhysicsList::verboseLevel.

292 {
293  G4Timer theTimer;
294  theTimer.Start();
295  if (verboseLevel >0)
296  {
297  G4cout << "F02PhysicsList::SetCuts:";
298  G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl;
299  }
300  // set cut values for gamma at first and for e- second and next for e+,
301  // because some processes for e+/e- need cut values for gamma
302 
303  SetCutValue(fCutForGamma,"gamma");
304 
305  SetCutValue(fCutForElectron,"e-");
306  SetCutValue(fCutForElectron,"e+");
307 
309 
310  theTimer.Stop();
311  G4cout.precision(6);
312  G4cout << G4endl;
313  G4cout << "total time(SetCuts)=" << theTimer.GetUserElapsed()
314  << " s " <<G4endl;
315 
316 }
void SetCutValue(G4double aCut, const G4String &pname)
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
void DumpCutValuesTable(G4int flag=1)
G4GLOB_DLL std::ostream G4cout
G4double GetUserElapsed() const
Definition: G4Timer.cc:130
void Stop()
#define G4endl
Definition: G4ios.hh:61
void Start()
void F02PhysicsList::SetElectronCut ( G4double  val)

Definition at line 327 of file F02PhysicsList.cc.

Referenced by F02PhysicsListMessenger::SetNewValue().

328 {
329  fCutForElectron = val;
330 }
void F02PhysicsList::SetGammaCut ( G4double  val)

Definition at line 320 of file F02PhysicsList.cc.

Referenced by F02PhysicsListMessenger::SetNewValue().

321 {
322  fCutForGamma = val;
323 }
void F02PhysicsList::SetMaxStep ( G4double  step)

Definition at line 334 of file F02PhysicsList.cc.

References fMaxChargedStep, G4cout, and G4endl.

Referenced by F02PhysicsListMessenger::SetNewValue().

335 {
336  fMaxChargedStep = step;
337  G4cout << " MaxChargedStep=" << fMaxChargedStep << G4endl;
338  G4cout << G4endl;
339 }
G4GLOB_DLL std::ostream G4cout
G4double fMaxChargedStep
#define G4endl
Definition: G4ios.hh:61

Field Documentation

G4double F02PhysicsList::fMaxChargedStep

Definition at line 82 of file F02PhysicsList.hh.

Referenced by ConstructEM(), and SetMaxStep().


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