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

#include <PurgMagPhysicsList.hh>

Inheritance diagram for PurgMagPhysicsList:
G4VUserPhysicsList

Public Member Functions

 PurgMagPhysicsList ()
 
 ~PurgMagPhysicsList ()
 
void SetGammaCut (G4double)
 
void SetElectronCut (G4double)
 
void SetPositronCut (G4double)
 
void SetProtonCut (G4double)
 
void SetGammaLowLimit (G4double)
 
void SetElectronLowLimit (G4double)
 
void SetPositronLowLimit (G4double)
 
void SetProtonLowLimit (G4double)
 
void SetGEPLowLimit (G4double)
 
void SetGELowLimit (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 ()
 

Protected Member Functions

void ConstructParticle ()
 
void ConstructProcess ()
 
void SetCuts ()
 
void ConstructBosons ()
 
void ConstructLeptons ()
 
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 56 of file PurgMagPhysicsList.hh.

Constructor & Destructor Documentation

PurgMagPhysicsList::PurgMagPhysicsList ( )

Definition at line 54 of file PurgMagPhysicsList.cc.

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

55 {
57  cutForGamma = defaultCutValue;
58  cutForElectron = defaultCutValue;
59  cutForPositron = defaultCutValue;
60  cutForProton = defaultCutValue;
61 
62  SetVerboseLevel(1);
63 }
void SetVerboseLevel(G4int value)
int micrometer
Definition: hepunit.py:34
PurgMagPhysicsList::~PurgMagPhysicsList ( )

Definition at line 67 of file PurgMagPhysicsList.cc.

68 {}

Member Function Documentation

void PurgMagPhysicsList::ConstructBarions ( )
protected

Definition at line 106 of file PurgMagPhysicsList.cc.

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

Referenced by ConstructParticle().

107 {
108  // barions
111 }
static G4Proton * ProtonDefinition()
Definition: G4Proton.cc:88
static G4AntiProton * AntiProtonDefinition()
Definition: G4AntiProton.cc:88
void PurgMagPhysicsList::ConstructBosons ( )
protected

Definition at line 86 of file PurgMagPhysicsList.cc.

References G4Gamma::GammaDefinition(), and G4OpticalPhoton::OpticalPhotonDefinition().

Referenced by ConstructParticle().

87 {
88 
89  // gamma
91 
92  // optical photon
94 }
static G4OpticalPhoton * OpticalPhotonDefinition()
static G4Gamma * GammaDefinition()
Definition: G4Gamma.cc:81
void PurgMagPhysicsList::ConstructEM ( )
protected

Definition at line 137 of file PurgMagPhysicsList.cc.

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

Referenced by ConstructProcess().

138 {
139  theParticleIterator->reset();
140  while( (*theParticleIterator)() )
141  {
142  G4ParticleDefinition* particle = theParticleIterator->value();
143  G4ProcessManager* pmanager = particle->GetProcessManager();
144  G4String particleName = particle->GetParticleName();
145 
146 
147  if (particleName == "gamma") {
148  //gamma
149  pmanager->AddDiscreteProcess(new G4GammaConversion);
152 
153  } else if (particleName == "e-") {
154  //electron
155  pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3);
156  pmanager->AddProcess(new G4eIonisation, -1, 2,2);
157  pmanager->AddProcess(new G4eMultipleScattering, -1, 1,1);
158 
159  } else if (particleName == "e+") {
160  //positron
161  pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3);
162  pmanager->AddProcess(new G4eIonisation, -1, 2,2);
163  pmanager->AddProcess(new G4eMultipleScattering, -1, 1,1);
164  pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4);
165 
166  } else if (particleName == "proton") {
167  //proton
168  pmanager->AddProcess(new G4hMultipleScattering, -1,1,1);
169 
170  } else if (particleName == "anti_proton") {
171  //antiproton
172  pmanager->AddProcess(new G4hMultipleScattering, -1,1,1);
173  }
174  }
175 }
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)
#define theParticleIterator
void PurgMagPhysicsList::ConstructGeneral ( )
protected

Definition at line 179 of file PurgMagPhysicsList.cc.

Referenced by ConstructProcess().

180 { }
void PurgMagPhysicsList::ConstructLeptons ( )
protected

Definition at line 97 of file PurgMagPhysicsList.cc.

References G4Electron::ElectronDefinition(), and G4Positron::PositronDefinition().

Referenced by ConstructParticle().

98 {
99  // leptons
102 }
static G4Electron * ElectronDefinition()
Definition: G4Electron.cc:89
static G4Positron * PositronDefinition()
Definition: G4Positron.cc:89
void PurgMagPhysicsList::ConstructParticle ( void  )
protectedvirtual

Implements G4VUserPhysicsList.

Definition at line 72 of file PurgMagPhysicsList.cc.

References ConstructBarions(), ConstructBosons(), and ConstructLeptons().

73 {
74  // In this method, static member functions should be called
75  // for all particles which you want to use.
76  // This ensures that objects of these particle types will be
77  // created in the program.
78 
82 }
void PurgMagPhysicsList::ConstructProcess ( void  )
protectedvirtual
void PurgMagPhysicsList::SetCuts ( )
protectedvirtual

Reimplemented from G4VUserPhysicsList.

Definition at line 184 of file PurgMagPhysicsList.cc.

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

185 {
186  if (verboseLevel >0){
187  G4cout << "PurgMagPhysicsList::SetCuts:";
188  G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl;
189  }
190 
191  // set cut values for gamma at first and for e- second and next for e+,
192  // because some processes for e+/e- need cut values for gamma
193  SetCutValue(cutForGamma, "gamma");
194  SetCutValue(cutForElectron, "e-");
195  SetCutValue(cutForPositron, "e+");
196 
197  // set cut values for proton and anti_proton before all other hadrons
198  // because some processes for hadrons need cut values for proton/anti_proton
199  SetCutValue(cutForProton, "proton");
200  SetCutValue(cutForProton, "anti_proton");
201 
202  // SetCutValueForOthers(defaultCutValue);
203 
205 }
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
#define G4endl
Definition: G4ios.hh:61
void PurgMagPhysicsList::SetElectronCut ( G4double  val)

Definition at line 305 of file PurgMagPhysicsList.cc.

306 {
307  // ResetCuts();
308  cutForElectron = val;
309 }
void PurgMagPhysicsList::SetElectronLowLimit ( G4double  lowcut)

Definition at line 222 of file PurgMagPhysicsList.cc.

References G4cout, G4endl, python.hepunit::MeV, SetGELowLimit(), and G4VUserPhysicsList::verboseLevel.

223 {
224  if (verboseLevel >0){
225 
226  G4cout << "PurgMagPhysicsList::SetCuts:";
227  G4cout << "Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl;
228  }
229 
230  // G4Electron::SetEnergyRange(lowcut,1e5);
231  SetGELowLimit(lowcut);
232 }
void SetGELowLimit(G4double)
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
void PurgMagPhysicsList::SetGammaCut ( G4double  val)

Definition at line 297 of file PurgMagPhysicsList.cc.

References G4VUserPhysicsList::ResetCuts().

298 {
299  ResetCuts();
300  cutForGamma = val;
301 }
void ResetCuts()
obsolete methods
void PurgMagPhysicsList::SetGammaLowLimit ( G4double  lowcut)

Definition at line 209 of file PurgMagPhysicsList.cc.

References G4cout, G4endl, python.hepunit::MeV, SetGELowLimit(), and G4VUserPhysicsList::verboseLevel.

210 {
211  if (verboseLevel >0){
212  G4cout << "PurgMagPhysicsList::SetCuts:";
213  G4cout << "Gamma cut in energy: " << lowcut*MeV << " (MeV)" << G4endl;
214  }
215 
216  // G4Gamma::SetEnergyRange(lowcut,1e5);
217  SetGELowLimit(lowcut);
218 }
void SetGELowLimit(G4double)
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
void PurgMagPhysicsList::SetGELowLimit ( G4double  lowcut)

Definition at line 288 of file PurgMagPhysicsList.cc.

References G4cout, G4endl, G4ProductionCutsTable::GetProductionCutsTable(), python.hepunit::MeV, G4ProductionCutsTable::SetEnergyRange(), and G4VUserPhysicsList::verboseLevel.

Referenced by SetElectronLowLimit(), SetGammaLowLimit(), and SetGEPLowLimit().

289 {
290  if (verboseLevel >0){
291  G4cout << "PurgMagPhysicsList::SetGELowLimit:";
292  G4cout << "Gamma and Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl;
293  }
294 
296 }
void SetEnergyRange(G4double lowedge, G4double highedge)
G4GLOB_DLL std::ostream G4cout
static G4ProductionCutsTable * GetProductionCutsTable()
#define G4endl
Definition: G4ios.hh:61
void PurgMagPhysicsList::SetGEPLowLimit ( G4double  lowcut)

Definition at line 271 of file PurgMagPhysicsList.cc.

References G4cerr, G4cout, G4endl, python.hepunit::MeV, SetGELowLimit(), and G4VUserPhysicsList::verboseLevel.

272 {
273  if (verboseLevel >0){
274  G4cout << "PurgMagPhysicsList::SetGEPLowLimit:";
275  G4cout << "Gamma and Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl;
276  }
277 
278  // G4Gamma::SetEnergyRange(lowcut,1e5);
279  // G4Electron::SetEnergyRange(lowcut,1e5);
280  // G4Positron::SetEnergyRange(lowcut,1e5);
281  this->SetGELowLimit(lowcut);
282 
283  G4cerr << " SetGEPLowLimit : Uncertain whether setting Positron low limit " << G4endl;
284 }
void SetGELowLimit(G4double)
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
G4GLOB_DLL std::ostream G4cerr
void PurgMagPhysicsList::SetPositronCut ( G4double  val)

Definition at line 313 of file PurgMagPhysicsList.cc.

314 {
315  // ResetCuts();
316  cutForPositron = val;
317 }
void PurgMagPhysicsList::SetPositronLowLimit ( G4double  lowcut)

Definition at line 236 of file PurgMagPhysicsList.cc.

References FatalException, G4cerr, G4cout, G4endl, G4Exception(), python.hepunit::MeV, and G4VUserPhysicsList::verboseLevel.

237 {
238  if (verboseLevel >0){
239 
240  G4cout << "PurgMagPhysicsList::SetCuts:";
241  G4cout << "Positron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl;
242  }
243 
244  G4cerr << "PurgMagPhysicsList::SetPositronLowLimit: Not currently able to set Positron LowLimit." << G4endl;
245  G4Exception("PurgMagPhysicsList::SetPositronLowLimit()","PurMag001",
246  FatalException,"Positron Low Limit: not implemented in PurgMagPhysicsList");
247  //
248  // G4Positron::SetEnergyRange(lowcut,1e5);
249 }
G4GLOB_DLL std::ostream G4cout
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
#define G4endl
Definition: G4ios.hh:61
G4GLOB_DLL std::ostream G4cerr
void PurgMagPhysicsList::SetProtonCut ( G4double  val)

Definition at line 321 of file PurgMagPhysicsList.cc.

322 {
323  //ResetCuts();
324  cutForProton = val;
325 }
void PurgMagPhysicsList::SetProtonLowLimit ( G4double  lowcut)

Definition at line 253 of file PurgMagPhysicsList.cc.

References FatalException, G4cerr, G4cout, G4endl, G4Exception(), python.hepunit::MeV, and G4VUserPhysicsList::verboseLevel.

254 {
255  if (verboseLevel >0){
256 
257  G4cout << "PurgMagPhysicsList::SetCuts:";
258  G4cout << "Proton cut in energy: " << lowcut*MeV << " (MeV)" << G4endl;
259  }
260 
261  G4cerr << "PurgMagPhysicsList::SetProtonLowLimit: Not currently able to set Proton LowLimit." << G4endl;
262  G4Exception("PurgMagPhysicsList::SetProtonLowLimit()","PurMag002",
263  FatalException,"Proton Low Limit: not implemented in PurgMagPhysicsList");
264  //
265  // G4Proton::SetEnergyRange(lowcut,1e5);
266  // G4AntiProton::SetEnergyRange(lowcut,1e5);
267 }
G4GLOB_DLL std::ostream G4cout
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
#define G4endl
Definition: G4ios.hh:61
G4GLOB_DLL std::ostream G4cerr

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