DD4hep  1.30.0
Detector Description Toolkit for High Energy Physics
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
dd4hep::sim::Geant4PhysicsList Class Reference

Concrete basic implementation of a Geant4 physics list action. More...

#include <Geant4PhysicsList.h>

Inheritance diagram for dd4hep::sim::Geant4PhysicsList:
dd4hep::sim::Geant4Action dd4hep::sim::Geant4CerenkovPhysics dd4hep::sim::Geant4DefaultRangeCut dd4hep::sim::Geant4FastPhysics dd4hep::sim::Geant4OpticalPhotonPhysics dd4hep::sim::Geant4PhysicsConstructor dd4hep::sim::Geant4ScintillationPhysics dd4hep::sim::Geant4ExtraParticles

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< ProcessParticleProcesses
 
typedef std::map< std::string, ParticleProcessesPhysicsProcesses
 
typedef std::vector< ParticleConstructorParticleConstructors
 
typedef std::vector< PhysicsConstructorPhysicsConstructors
 

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...
 
PhysicsProcessesprocesses ()
 Access all physics processes. More...
 
const PhysicsProcessesprocesses () const
 Access all physics processes. More...
 
ParticleProcessesprocesses (const std::string &part_name)
 Access processes for one particle type. More...
 
const ParticleProcessesprocesses (const std::string &part_name) const
 Access processes for one particle type (CONST) More...
 
PhysicsProcessesdiscreteProcesses ()
 Access all physics discrete processes. More...
 
const PhysicsProcessesdiscreteProcesses () const
 Access all physics discrete processes. More...
 
ParticleProcessesdiscreteProcesses (const std::string &part_name)
 Access discrete processes for one particle type. More...
 
const ParticleProcessesdiscreteProcesses (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...
 
ParticleConstructorsparticles ()
 Access all physics particles. More...
 
const ParticleConstructorsparticles () const
 Access all physics particles. More...
 
ParticleConstructorsparticlegroups ()
 Access all physics particlegroups. More...
 
const ParticleConstructorsparticlegroups () const
 Access all physics particlegroups. More...
 
PhysicsConstructorsphysics ()
 Access all physics constructors. More...
 
const PhysicsConstructorsphysics () 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...
 
Geant4Contextcontext () 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...
 
PropertyManagerproperties ()
 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...
 
Geant4UIMessengercontrol () const
 Access to the UI messenger. More...
 
virtual void enableUI ()
 Enable and install UI messenger. More...
 
template<typename T >
Geant4ActiondeclareProperty (const std::string &nam, T &val)
 Declare property. More...
 
template<typename T >
Geant4ActiondeclareProperty (const char *nam, T &val)
 Declare property. More...
 
bool hasProperty (const std::string &name) const
 Check property for existence. More...
 
Propertyproperty (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...
 
Geant4RunActionSequencerunAction () const
 Access to the main run action sequence from the kernel object. More...
 
Geant4EventActionSequenceeventAction () const
 Access to the main event action sequence from the kernel object. More...
 
Geant4SteppingActionSequencesteppingAction () const
 Access to the main stepping action sequence from the kernel object. More...
 
Geant4TrackingActionSequencetrackingAction () const
 Access to the main tracking action sequence from the kernel object. More...
 
Geant4StackingActionSequencestackingAction () const
 Access to the main stacking action sequence from the kernel object. More...
 
Geant4GeneratorActionSequencegeneratorAction () 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
Geant4Contextm_context { nullptr }
 Reference to the Geant4 context. More...
 
Geant4UIMessengerm_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...
 

Detailed Description

Concrete basic implementation of a Geant4 physics list action.

Author
M.Frank
Version
1.0

Definition at line 41 of file Geant4PhysicsList.h.

Member Typedef Documentation

◆ ParticleConstructors

Definition at line 84 of file Geant4PhysicsList.h.

◆ ParticleProcesses

Definition at line 64 of file Geant4PhysicsList.h.

◆ PhysicsConstructors

Definition at line 106 of file Geant4PhysicsList.h.

◆ PhysicsProcesses

Definition at line 65 of file Geant4PhysicsList.h.

Constructor & Destructor Documentation

◆ Geant4PhysicsList()

Geant4PhysicsList::Geant4PhysicsList ( Geant4Context context,
const std::string &  nam 
)

Standard constructor with initailization parameters.

Standard constructor.

Definition at line 87 of file Geant4PhysicsList.cpp.

◆ ~Geant4PhysicsList()

Geant4PhysicsList::~Geant4PhysicsList ( )
virtual

Default destructor.

Definition at line 93 of file Geant4PhysicsList.cpp.

Member Function Documentation

◆ addDiscreteParticleProcess()

void Geant4PhysicsList::addDiscreteParticleProcess ( const std::string &  part_name,
const std::string &  proc_name 
)

Add discrete particle process by name with arguments.

Definition at line 154 of file Geant4PhysicsList.cpp.

◆ addParticleConstructor()

void Geant4PhysicsList::addParticleConstructor ( const std::string &  part_name)

Add physics particle constructor by name.

Definition at line 129 of file Geant4PhysicsList.cpp.

◆ addParticleGroup()

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 134 of file Geant4PhysicsList.cpp.

◆ addParticleProcess()

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 139 of file Geant4PhysicsList.cpp.

◆ addPhysicsConstructor()

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 163 of file Geant4PhysicsList.cpp.

◆ adoptPhysicsConstructor()

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 213 of file Geant4PhysicsList.cpp.

◆ constructParticles()

void Geant4PhysicsList::constructParticles ( G4VUserPhysicsList *  physics)
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 243 of file Geant4PhysicsList.cpp.

◆ constructPhysics()

void Geant4PhysicsList::constructPhysics ( G4VModularPhysicsList *  physics)
virtual

constructPhysics callback

Callback to construct particle decays.

Reimplemented in dd4hep::sim::Geant4PhysicsConstructor, and dd4hep::sim::Geant4FastPhysics.

Definition at line 228 of file Geant4PhysicsList.cpp.

◆ constructProcesses()

void Geant4PhysicsList::constructProcesses ( G4VUserPhysicsList *  physics)
virtual

◆ discreteProcesses() [1/4]

PhysicsProcesses& dd4hep::sim::Geant4PhysicsList::discreteProcesses ( )
inline

Access all physics discrete processes.

Definition at line 139 of file Geant4PhysicsList.h.

◆ discreteProcesses() [2/4]

const PhysicsProcesses& dd4hep::sim::Geant4PhysicsList::discreteProcesses ( ) const
inline

Access all physics discrete processes.

Definition at line 143 of file Geant4PhysicsList.h.

◆ discreteProcesses() [3/4]

Geant4PhysicsList::ParticleProcesses & Geant4PhysicsList::discreteProcesses ( const std::string &  part_name)

Access discrete processes for one particle type.

Definition at line 184 of file Geant4PhysicsList.cpp.

◆ discreteProcesses() [4/4]

const Geant4PhysicsList::ParticleProcesses & Geant4PhysicsList::discreteProcesses ( const std::string &  part_name) const

Access discrete processes for one particle type (CONST)

Definition at line 192 of file Geant4PhysicsList.cpp.

◆ dump()

void Geant4PhysicsList::dump ( )

Dump content to stdout.

Definition at line 103 of file Geant4PhysicsList.cpp.

◆ enable()

void Geant4PhysicsList::enable ( G4VUserPhysicsList *  physics)
virtual

Enable physics list: actions necessary to be propagated to Geant4.

Definition at line 311 of file Geant4PhysicsList.cpp.

◆ installCommandMessenger()

void Geant4PhysicsList::installCommandMessenger ( )
overridevirtual

Install command control messenger if wanted.

Reimplemented from dd4hep::sim::Geant4Action.

Definition at line 98 of file Geant4PhysicsList.cpp.

◆ particlegroups() [1/2]

ParticleConstructors& dd4hep::sim::Geant4PhysicsList::particlegroups ( )
inline

Access all physics particlegroups.

Definition at line 163 of file Geant4PhysicsList.h.

◆ particlegroups() [2/2]

const ParticleConstructors& dd4hep::sim::Geant4PhysicsList::particlegroups ( ) const
inline

Access all physics particlegroups.

Definition at line 167 of file Geant4PhysicsList.h.

◆ particles() [1/2]

ParticleConstructors& dd4hep::sim::Geant4PhysicsList::particles ( )
inline

Access all physics particles.

Definition at line 155 of file Geant4PhysicsList.h.

◆ particles() [2/2]

const ParticleConstructors& dd4hep::sim::Geant4PhysicsList::particles ( ) const
inline

Access all physics particles.

Definition at line 159 of file Geant4PhysicsList.h.

◆ physics() [1/3]

PhysicsConstructors& dd4hep::sim::Geant4PhysicsList::physics ( )
inline

Access all physics constructors.

Definition at line 171 of file Geant4PhysicsList.h.

◆ physics() [2/3]

const PhysicsConstructors& dd4hep::sim::Geant4PhysicsList::physics ( ) const
inline

Access all physics constructors.

Definition at line 175 of file Geant4PhysicsList.h.

◆ physics() [3/3]

Geant4PhysicsList::PhysicsConstructor Geant4PhysicsList::physics ( const std::string &  name) const

Access physics constructor by name.

Access physics constructor by name (CONST)

Definition at line 200 of file Geant4PhysicsList.cpp.

◆ processes() [1/4]

PhysicsProcesses& dd4hep::sim::Geant4PhysicsList::processes ( )
inline

Access all physics processes.

Definition at line 126 of file Geant4PhysicsList.h.

◆ processes() [2/4]

const PhysicsProcesses& dd4hep::sim::Geant4PhysicsList::processes ( ) const
inline

Access all physics processes.

Definition at line 130 of file Geant4PhysicsList.h.

◆ processes() [3/4]

Geant4PhysicsList::ParticleProcesses & Geant4PhysicsList::processes ( const std::string &  part_name)

Access processes for one particle type.

Definition at line 168 of file Geant4PhysicsList.cpp.

◆ processes() [4/4]

const Geant4PhysicsList::ParticleProcesses & Geant4PhysicsList::processes ( const std::string &  part_name) const

Access processes for one particle type (CONST)

Definition at line 176 of file Geant4PhysicsList.cpp.

Member Data Documentation

◆ m_discreteProcesses

PhysicsProcesses dd4hep::sim::Geant4PhysicsList::m_discreteProcesses

Definition at line 109 of file Geant4PhysicsList.h.

◆ m_particlegroups

ParticleConstructors dd4hep::sim::Geant4PhysicsList::m_particlegroups

Definition at line 112 of file Geant4PhysicsList.h.

◆ m_particles

ParticleConstructors dd4hep::sim::Geant4PhysicsList::m_particles

Definition at line 111 of file Geant4PhysicsList.h.

◆ m_physics

PhysicsConstructors dd4hep::sim::Geant4PhysicsList::m_physics

Definition at line 110 of file Geant4PhysicsList.h.

◆ m_processes

PhysicsProcesses dd4hep::sim::Geant4PhysicsList::m_processes

Definition at line 108 of file Geant4PhysicsList.h.


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