DD4hep
1.30.0
Detector Description Toolkit for High Energy Physics
|
Concrete basic implementation of a Geant4 physics list action. More...
#include <Geant4PhysicsList.h>
Classes | |
class | ParticleConstructor |
Structure describing a G4 particle constructor. More... | |
class | PhysicsConstructor |
Structure describing a G4 physics constructor. More... | |
class | Process |
Structure describing a G4 process. More... | |
Public Types | |
typedef std::vector< Process > | ParticleProcesses |
typedef std::map< std::string, ParticleProcesses > | PhysicsProcesses |
typedef std::vector< ParticleConstructor > | ParticleConstructors |
typedef std::vector< PhysicsConstructor > | PhysicsConstructors |
Public Member Functions | |
Geant4PhysicsList (Geant4Context *context, const std::string &nam) | |
Standard constructor with initailization parameters. More... | |
virtual | ~Geant4PhysicsList () |
Default destructor. More... | |
void | dump () |
Dump content to stdout. More... | |
virtual void | installCommandMessenger () override |
Install command control messenger if wanted. More... | |
PhysicsProcesses & | processes () |
Access all physics processes. More... | |
const PhysicsProcesses & | processes () const |
Access all physics processes. More... | |
ParticleProcesses & | processes (const std::string &part_name) |
Access processes for one particle type. More... | |
const ParticleProcesses & | processes (const std::string &part_name) const |
Access processes for one particle type (CONST) More... | |
PhysicsProcesses & | discreteProcesses () |
Access all physics discrete processes. More... | |
const PhysicsProcesses & | discreteProcesses () const |
Access all physics discrete processes. More... | |
ParticleProcesses & | discreteProcesses (const std::string &part_name) |
Access discrete processes for one particle type. More... | |
const ParticleProcesses & | discreteProcesses (const std::string &part_name) const |
Access discrete processes for one particle type (CONST) More... | |
PhysicsConstructor | physics (const std::string &name) const |
Access physics constructor by name. More... | |
ParticleConstructors & | particles () |
Access all physics particles. More... | |
const ParticleConstructors & | particles () const |
Access all physics particles. More... | |
ParticleConstructors & | particlegroups () |
Access all physics particlegroups. More... | |
const ParticleConstructors & | particlegroups () const |
Access all physics particlegroups. More... | |
PhysicsConstructors & | physics () |
Access all physics constructors. More... | |
const PhysicsConstructors & | physics () const |
Access all physics constructors. More... | |
void | addParticleConstructor (const std::string &part_name) |
Add physics particle constructor by name. More... | |
void | addParticleGroup (const std::string &part_name) |
Add physics particle group constructor by name (Leptons, Bosons, Mesons, etc.) More... | |
void | addParticleProcess (const std::string &part_name, const std::string &proc_name, int ordAtRestDoIt, int ordAlongSteptDoIt, int ordPostStepDoIt) |
Add particle process by name with arguments. More... | |
void | addDiscreteParticleProcess (const std::string &part_name, const std::string &proc_name) |
Add discrete particle process by name with arguments. More... | |
void | addPhysicsConstructor (const std::string &physics_name) |
Add PhysicsConstructor by name. More... | |
void | adoptPhysicsConstructor (Geant4Action *action) |
Add PhysicsConstructor as Geant4Action object. More... | |
virtual void | constructPhysics (G4VModularPhysicsList *physics) |
constructPhysics callback More... | |
virtual void | constructParticles (G4VUserPhysicsList *physics) |
Callback to construct particles. More... | |
virtual void | constructProcesses (G4VUserPhysicsList *physics) |
Callback to construct processes (uses the G4 particle table) More... | |
virtual void | enable (G4VUserPhysicsList *physics) |
Enable physics list: actions necessary to be propagated to Geant4. More... | |
Public Member Functions inherited from dd4hep::sim::Geant4Action | |
Geant4Action (Geant4Context *context, const std::string &nam) | |
Standard constructor. More... | |
long | addRef () |
Increase reference count. More... | |
long | release () |
Decrease reference count. Implicit destruction. More... | |
Geant4Context * | context () const |
Access the context. More... | |
virtual void | updateContext (Geant4Context *ctxt) |
Set or update client context. More... | |
virtual void | configureFiber (Geant4Context *thread_context) |
Set or update client for the use in a new thread fiber. More... | |
const std::string & | name () const |
Access name of the action. More... | |
const char * | c_name () const |
Access name of the action. More... | |
void | setName (const std::string &new_name) |
Set the object name. More... | |
PropertyManager & | properties () |
Access to the properties of the object. More... | |
PrintLevel | outputLevel () const |
Access the output level. More... | |
PrintLevel | setOutputLevel (PrintLevel new_level) |
Set the output level; returns previous value. More... | |
Geant4UIMessenger * | control () const |
Access to the UI messenger. More... | |
virtual void | enableUI () |
Enable and install UI messenger. More... | |
template<typename T > | |
Geant4Action & | declareProperty (const std::string &nam, T &val) |
Declare property. More... | |
template<typename T > | |
Geant4Action & | declareProperty (const char *nam, T &val) |
Declare property. More... | |
bool | hasProperty (const std::string &name) const |
Check property for existence. More... | |
Property & | property (const std::string &name) |
Access single property. More... | |
virtual void | installMessengers () |
Install property control messenger if wanted. More... | |
virtual void | installPropertyMessenger () |
Install property control messenger if wanted. More... | |
void | print (const char *fmt,...) const |
Support for messages with variable output level using output level. More... | |
void | printM1 (const char *fmt,...) const |
Support for messages with variable output level using output level-1. More... | |
void | printM2 (const char *fmt,...) const |
Support for messages with variable output level using output level-2. More... | |
void | printP1 (const char *fmt,...) const |
Support for messages with variable output level using output level+1. More... | |
void | printP2 (const char *fmt,...) const |
Support for messages with variable output level using output level+2. More... | |
void | always (const char *fmt,...) const |
Support of always printed messages. More... | |
void | debug (const char *fmt,...) const |
Support of debug messages. More... | |
void | info (const char *fmt,...) const |
Support of info messages. More... | |
void | warning (const char *fmt,...) const |
Support of warning messages. More... | |
void | error (const char *fmt,...) const |
Support of error messages. More... | |
bool | return_error (bool return_value, const char *fmt,...) const |
Action to support error messages. More... | |
void | fatal (const char *fmt,...) const |
Support of fatal messages. Throws exception. More... | |
void | except (const char *fmt,...) const |
Support of exceptions: Print fatal message and throw runtime_error. More... | |
void | abortRun (const std::string &exception, const char *fmt,...) const |
Abort Geant4 Run by throwing a G4Exception with type RunMustBeAborted. More... | |
Geant4RunActionSequence & | runAction () const |
Access to the main run action sequence from the kernel object. More... | |
Geant4EventActionSequence & | eventAction () const |
Access to the main event action sequence from the kernel object. More... | |
Geant4SteppingActionSequence & | steppingAction () const |
Access to the main stepping action sequence from the kernel object. More... | |
Geant4TrackingActionSequence & | trackingAction () const |
Access to the main tracking action sequence from the kernel object. More... | |
Geant4StackingActionSequence & | stackingAction () const |
Access to the main stacking action sequence from the kernel object. More... | |
Geant4GeneratorActionSequence & | generatorAction () const |
Access to the main generator action sequence from the kernel object. More... | |
Public Attributes | |
PhysicsProcesses | m_processes |
PhysicsProcesses | m_discreteProcesses |
PhysicsConstructors | m_physics |
ParticleConstructors | m_particles |
ParticleConstructors | m_particlegroups |
Additional Inherited Members | |
Protected Member Functions inherited from dd4hep::sim::Geant4Action | |
DDG4_DEFINE_ACTION_CONSTRUCTORS (Geant4Action) | |
Define standard assignments and constructors. More... | |
virtual | ~Geant4Action () |
Default destructor. More... | |
Protected Attributes inherited from dd4hep::sim::Geant4Action | |
Geant4Context * | m_context { nullptr } |
Reference to the Geant4 context. More... | |
Geant4UIMessenger * | m_control { nullptr } |
Control directory of this action. More... | |
int | m_outputLevel { 3 } |
Default property: Output level. More... | |
bool | m_needsControl { false } |
Default property: Flag to create control instance. More... | |
std::string | m_name { } |
Action name. More... | |
PropertyManager | m_properties { } |
Property pool. More... | |
long | m_refCount { 1 } |
Reference count. Initial value: 1. More... | |
Concrete basic implementation of a Geant4 physics list action.
Definition at line 41 of file Geant4PhysicsList.h.
typedef std::vector<ParticleConstructor> dd4hep::sim::Geant4PhysicsList::ParticleConstructors |
Definition at line 84 of file Geant4PhysicsList.h.
typedef std::vector<Process> dd4hep::sim::Geant4PhysicsList::ParticleProcesses |
Definition at line 64 of file Geant4PhysicsList.h.
typedef std::vector<PhysicsConstructor> dd4hep::sim::Geant4PhysicsList::PhysicsConstructors |
Definition at line 106 of file Geant4PhysicsList.h.
typedef std::map<std::string, ParticleProcesses> dd4hep::sim::Geant4PhysicsList::PhysicsProcesses |
Definition at line 65 of file Geant4PhysicsList.h.
Geant4PhysicsList::Geant4PhysicsList | ( | Geant4Context * | context, |
const std::string & | nam | ||
) |
Standard constructor with initailization parameters.
Standard constructor.
Definition at line 89 of file Geant4PhysicsList.cpp.
|
virtual |
Default destructor.
Definition at line 95 of file Geant4PhysicsList.cpp.
void Geant4PhysicsList::addDiscreteParticleProcess | ( | const std::string & | part_name, |
const std::string & | proc_name | ||
) |
Add discrete particle process by name with arguments.
Definition at line 156 of file Geant4PhysicsList.cpp.
void Geant4PhysicsList::addParticleConstructor | ( | const std::string & | part_name | ) |
Add physics particle constructor by name.
Definition at line 131 of file Geant4PhysicsList.cpp.
void Geant4PhysicsList::addParticleGroup | ( | const std::string & | part_name | ) |
Add physics particle group constructor by name (Leptons, Bosons, Mesons, etc.)
Add physics particle constructor by name.
Definition at line 136 of file Geant4PhysicsList.cpp.
void Geant4PhysicsList::addParticleProcess | ( | const std::string & | part_name, |
const std::string & | proc_name, | ||
int | ordAtRestDoIt, | ||
int | ordAlongSteptDoIt, | ||
int | ordPostStepDoIt | ||
) |
Add particle process by name with arguments.
Definition at line 141 of file Geant4PhysicsList.cpp.
void Geant4PhysicsList::addPhysicsConstructor | ( | const std::string & | physics_name | ) |
Add PhysicsConstructor by name.
This constructor is used for intrinsic Geant4 defined physics constructors. Such physics constructors are only created by the factory and attached to the physics list object.
Definition at line 165 of file Geant4PhysicsList.cpp.
void Geant4PhysicsList::adoptPhysicsConstructor | ( | Geant4Action * | action | ) |
Add PhysicsConstructor as Geant4Action object.
Add PhysicsConstructor by name.
The action object must be a sub-class of type G4VPhysicsConstructor. – The Geant4Action object to supports properties. – Specific user actions may be implemented in the base class calls to 'ConstructParticle' or 'ConstructProcess'. Both calls are invoked by the framework when the physics list is configured for the use in the run-manager.
Definition at line 215 of file Geant4PhysicsList.cpp.
|
virtual |
Callback to construct particles.
constructParticle callback
Now define all particles
Check if we have here a particle group constructor
Now define all particles
Check if we have here a particle group constructor
Definition at line 245 of file Geant4PhysicsList.cpp.
|
virtual |
constructPhysics callback
Callback to construct particle decays.
Reimplemented in dd4hep::sim::Geant4PhysicsConstructor, and dd4hep::sim::Geant4FastPhysics.
Definition at line 230 of file Geant4PhysicsList.cpp.
|
virtual |
Callback to construct processes (uses the G4 particle table)
Reimplemented in dd4hep::sim::Geant4ScintillationPhysics, dd4hep::sim::Geant4CerenkovPhysics, dd4hep::sim::Geant4OpticalPhotonPhysics, and dd4hep::sim::Geant4DefaultRangeCut.
Definition at line 271 of file Geant4PhysicsList.cpp.
|
inline |
Access all physics discrete processes.
Definition at line 139 of file Geant4PhysicsList.h.
|
inline |
Access all physics discrete processes.
Definition at line 143 of file Geant4PhysicsList.h.
Geant4PhysicsList::ParticleProcesses & Geant4PhysicsList::discreteProcesses | ( | const std::string & | part_name | ) |
Access discrete processes for one particle type.
Definition at line 186 of file Geant4PhysicsList.cpp.
const Geant4PhysicsList::ParticleProcesses & Geant4PhysicsList::discreteProcesses | ( | const std::string & | part_name | ) | const |
Access discrete processes for one particle type (CONST)
Definition at line 194 of file Geant4PhysicsList.cpp.
void Geant4PhysicsList::dump | ( | ) |
Dump content to stdout.
Definition at line 105 of file Geant4PhysicsList.cpp.
|
virtual |
Enable physics list: actions necessary to be propagated to Geant4.
Definition at line 313 of file Geant4PhysicsList.cpp.
|
overridevirtual |
Install command control messenger if wanted.
Reimplemented from dd4hep::sim::Geant4Action.
Definition at line 100 of file Geant4PhysicsList.cpp.
|
inline |
Access all physics particlegroups.
Definition at line 163 of file Geant4PhysicsList.h.
|
inline |
Access all physics particlegroups.
Definition at line 167 of file Geant4PhysicsList.h.
|
inline |
Access all physics particles.
Definition at line 155 of file Geant4PhysicsList.h.
|
inline |
Access all physics particles.
Definition at line 159 of file Geant4PhysicsList.h.
|
inline |
Access all physics constructors.
Definition at line 171 of file Geant4PhysicsList.h.
|
inline |
Access all physics constructors.
Definition at line 175 of file Geant4PhysicsList.h.
Geant4PhysicsList::PhysicsConstructor Geant4PhysicsList::physics | ( | const std::string & | name | ) | const |
Access physics constructor by name.
Access physics constructor by name (CONST)
Definition at line 202 of file Geant4PhysicsList.cpp.
|
inline |
Access all physics processes.
Definition at line 126 of file Geant4PhysicsList.h.
|
inline |
Access all physics processes.
Definition at line 130 of file Geant4PhysicsList.h.
Geant4PhysicsList::ParticleProcesses & Geant4PhysicsList::processes | ( | const std::string & | part_name | ) |
Access processes for one particle type.
Definition at line 170 of file Geant4PhysicsList.cpp.
const Geant4PhysicsList::ParticleProcesses & Geant4PhysicsList::processes | ( | const std::string & | part_name | ) | const |
Access processes for one particle type (CONST)
Definition at line 178 of file Geant4PhysicsList.cpp.
PhysicsProcesses dd4hep::sim::Geant4PhysicsList::m_discreteProcesses |
Definition at line 109 of file Geant4PhysicsList.h.
ParticleConstructors dd4hep::sim::Geant4PhysicsList::m_particlegroups |
Definition at line 112 of file Geant4PhysicsList.h.
ParticleConstructors dd4hep::sim::Geant4PhysicsList::m_particles |
Definition at line 111 of file Geant4PhysicsList.h.
PhysicsConstructors dd4hep::sim::Geant4PhysicsList::m_physics |
Definition at line 110 of file Geant4PhysicsList.h.
PhysicsProcesses dd4hep::sim::Geant4PhysicsList::m_processes |
Definition at line 108 of file Geant4PhysicsList.h.