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

Geant4ParticleHandler user extension action called by the particle handler. More...

#include <Geant4UserParticleHandler.h>

Inheritance diagram for dd4hep::sim::Geant4UserParticleHandler:
dd4hep::sim::Geant4Action dd4hep::sim::Geant4TCUserParticleHandler dd4hep::sim::Geant4TVUserParticleHandler

Public Types

typedef Geant4Particle Particle
 

Public Member Functions

 Geant4UserParticleHandler (Geant4Context *context, const std::string &nam)
 Standard constructor. More...
 
virtual ~Geant4UserParticleHandler ()
 Default destructor. More...
 
virtual void generate (G4Event *event, Geant4ParticleHandler *handler)
 Event generation action callback. More...
 
virtual void begin (const G4Event *event)
 Pre-event action callback. More...
 
virtual void end (const G4Event *event)
 Post-event action callback. More...
 
virtual void step (const G4Step *step, G4SteppingManager *mgr, Particle &particle)
 User stepping callback. More...
 
virtual void begin (const G4Track *track, Particle &particle)
 Pre-track action callback. More...
 
virtual void end (const G4Track *track, Particle &particle)
 Post-track action callback. More...
 
virtual bool keepParticle (Particle &particle)
 Callback to be answered if the particle MUST be kept during recombination step. More...
 
virtual void combine (Particle &to_be_deleted, Particle &remaining_parent)
 Callback when parent should be combined. 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 installCommandMessenger ()
 Install command 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...
 

Protected Attributes

double m_kinEnergyCut
 Property: Energy cut below which particles are not collected, but assigned to the parent. 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...
 

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...
 

Detailed Description

Geant4ParticleHandler user extension action called by the particle handler.

Collect optional MC particle information and attach it to the particle object Clients may inherit from this class and override the approriate methods to add additional information in form of a DataExtension object to the Particle.

The default implementation is always empty!

Author
M.Frank
Version
1.0

Definition at line 60 of file Geant4UserParticleHandler.h.

Member Typedef Documentation

◆ Particle

Definition at line 62 of file Geant4UserParticleHandler.h.

Constructor & Destructor Documentation

◆ Geant4UserParticleHandler()

dd4hep::sim::Geant4UserParticleHandler::Geant4UserParticleHandler ( Geant4Context context,
const std::string &  nam 
)

Standard constructor.

◆ ~Geant4UserParticleHandler()

virtual dd4hep::sim::Geant4UserParticleHandler::~Geant4UserParticleHandler ( )
virtual

Default destructor.

Member Function Documentation

◆ begin() [1/2]

virtual void dd4hep::sim::Geant4UserParticleHandler::begin ( const G4Event *  event)
virtual

Pre-event action callback.

◆ begin() [2/2]

virtual void dd4hep::sim::Geant4UserParticleHandler::begin ( const G4Track *  track,
Particle particle 
)
virtual

Pre-track action callback.

Allow the user to intercept particle handling in the pre track action. e.g. attach relevant user information. The default implementation is empty.

Note: The particle passed is a temporary and will be copied if kept.

◆ combine()

virtual void dd4hep::sim::Geant4UserParticleHandler::combine ( Particle to_be_deleted,
Particle remaining_parent 
)
virtual

Callback when parent should be combined.

Called before a particle is removed from the final record. Relevant particle properties of the parent may be updated. The default implementation is empty.

◆ end() [1/2]

virtual void dd4hep::sim::Geant4UserParticleHandler::end ( const G4Event *  event)
virtual

Post-event action callback.

Reimplemented in dd4hep::sim::Geant4TVUserParticleHandler, and dd4hep::sim::Geant4TCUserParticleHandler.

◆ end() [2/2]

virtual void dd4hep::sim::Geant4UserParticleHandler::end ( const G4Track *  track,
Particle particle 
)
virtual

Post-track action callback.

Allow the user to force the particle handling in the post track action set the reason mask to NULL in order to drop the particle. The parent's reasoning mask will be or'ed with the particle's mask to preserve the MC truth for the hit creation. The default implementation is empty.

Note: The particle passed is a temporary and will be copied if kept.

Reimplemented in dd4hep::sim::Geant4TVUserParticleHandler, and dd4hep::sim::Geant4TCUserParticleHandler.

◆ generate()

virtual void dd4hep::sim::Geant4UserParticleHandler::generate ( G4Event *  event,
Geant4ParticleHandler handler 
)
virtual

Event generation action callback.

◆ keepParticle()

virtual bool dd4hep::sim::Geant4UserParticleHandler::keepParticle ( Particle particle)
virtual

Callback to be answered if the particle MUST be kept during recombination step.

Allow the user to force the particle handling either by or the reason mask with G4PARTICLE_KEEP_USER or to set the reason mask to NULL in order to drop it. The default implementation is empty.

If the reason mask entry is set to G4PARTICLE_FORCE_KILL or is set to NULL, the particle is ALWAYS removed

The default implementation calls Geant4ParticleHandler::defaultKeepParticle(particle) Please have a look therein if it suffices your needs!

Note: This may override all other decisions! Default implementation is empty.

◆ step()

virtual void dd4hep::sim::Geant4UserParticleHandler::step ( const G4Step *  step,
G4SteppingManager *  mgr,
Particle particle 
)
virtual

User stepping callback.

Allow the user to intercept particle handling in the pre track action. The default implementation is empty.

Note: The particle passed is a temporary and will be copied if kept.

Member Data Documentation

◆ m_kinEnergyCut

double dd4hep::sim::Geant4UserParticleHandler::m_kinEnergyCut
protected

Property: Energy cut below which particles are not collected, but assigned to the parent.

Definition at line 66 of file Geant4UserParticleHandler.h.


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