DD4hep
1.30.0
Detector Description Toolkit for High Energy Physics
|
Template class to ease the construction of sensitive detectors using particle template specialization. More...
#include <Geant4SensDetAction.h>
Public Types | |
typedef T | UserData |
Public Types inherited from dd4hep::sim::Geant4Sensitive | |
enum | HitCreationFlags { SIMPLE_MODE = 0, MEDIUM_MODE = 1<<0, DETAILED_MODE = 1<<1 } |
Public Member Functions | |
Geant4SensitiveAction (Geant4Context *context, const std::string &name, DetElement det, Detector &description) | |
Standard , initializing constructor. More... | |
virtual | ~Geant4SensitiveAction () |
Default destructor. More... | |
void | declareOptionalProperties () |
Declare optional properties from embedded structure. More... | |
virtual void | defineCollections () |
Define collections created by this sensitivie action object. More... | |
Readout | readout () |
Access the readout object. Note: if m_readoutName is set, the m_readout != m_sensitive.readout() More... | |
template<typename HIT > | |
std::size_t | declareReadoutFilteredCollection () |
Define readout specific hit collection with volume ID filtering. More... | |
template<typename HIT > | |
std::size_t | defineReadoutCollection (const std::string collection_name) |
Define readout specific hit collection. matching name must be present in readout structure. More... | |
virtual void | initialize () final |
Initialization overload for specialization. More... | |
virtual void | finalize () final |
Finalization overload for specialization. More... | |
virtual void | begin (G4HCofThisEvent *hce) final |
G4VSensitiveDetector interface: Method invoked at the begining of each event. More... | |
virtual void | end (G4HCofThisEvent *hce) final |
G4VSensitiveDetector interface: Method invoked at the end of each event. More... | |
virtual void | clear (G4HCofThisEvent *hce) final |
G4VSensitiveDetector interface: Method invoked if the event was aborted. More... | |
virtual bool | process (const G4Step *step, G4TouchableHistory *history) final |
G4VSensitiveDetector interface: Method for generating hit(s) using the G4Step object. More... | |
virtual bool | processFastSim (const Geant4FastSimSpot *spot, G4TouchableHistory *history) final |
GFLASH/FastSim interface: Method for generating hit(s) using the information of the fast simulation spot object. More... | |
void | defineCollections () |
Define collections created by this sensitivie action object. More... | |
bool | process (const G4Step *, G4TouchableHistory *) |
G4VSensitiveDetector interface: Method for generating hit(s) using the information of G4Step object. More... | |
bool | processFastSim (const Geant4FastSimSpot *, G4TouchableHistory *) |
GFLASH/FastSim interface: Method for generating hit(s) using the information of G4Step object. More... | |
void | defineCollections () |
Define collections created by this sensitivie action object. More... | |
bool | process (const G4Step *step, G4TouchableHistory *) |
Method for generating hit(s) using the information of G4Step object. More... | |
bool | processFastSim (const Geant4FastSimSpot *spot, G4TouchableHistory *) |
GFlash/FastSim interface: Method for generating hit(s) using the information of Geant4FastSimSpot object. More... | |
void | defineCollections () |
Define collections created by this sensitivie action object. More... | |
bool | process (const G4Step *step, G4TouchableHistory *) |
Method for generating hit(s) using the information of G4Step object. More... | |
bool | processFastSim (const Geant4FastSimSpot *spot, G4TouchableHistory *) |
GFlash/FastSim interface: Method for generating hit(s) using the information of G4Step object. More... | |
void | defineCollections () |
Define collections created by this sensitivie action object. More... | |
bool | process (const G4Step *step, G4TouchableHistory *) |
Method for generating hit(s) using the information of G4Step object. More... | |
bool | processFastSim (const Geant4FastSimSpot *spot, G4TouchableHistory *) |
GFlash/FastSim interface: Method for generating hit(s) using the information of Geant4FastSimSpot object. More... | |
void | defineCollections () |
Define collections created by this sensitivie action object. More... | |
bool | process (const G4Step *step, G4TouchableHistory *) |
Method for generating hit(s) using the information of G4Step object. More... | |
bool | processFastSim (const Geant4FastSimSpot *spot, G4TouchableHistory *) |
GFlash/FastSim interface: Method for generating hit(s) using the information of Geant4FastSimSpot object. More... | |
void | defineCollections () |
Define collections created by this sensitivie action object. More... | |
bool | process (const G4Step *step, G4TouchableHistory *) |
Method for generating hit(s) using the information of G4Step object. More... | |
bool | processFastSim (const Geant4FastSimSpot *spot, G4TouchableHistory *) |
GFlash/FastSim interface: Method for generating hit(s) using the information of Geant4FastSimSpot object. More... | |
void | initialize () |
Initialization overload for specialization. More... | |
void | defineCollections () |
Define collections created by this sensitivie action object. More... | |
void | clear (G4HCofThisEvent *) |
Method for generating hit(s) using the information of G4Step object. More... | |
G4bool | process (const G4Step *step, G4TouchableHistory *history) |
Method for generating hit(s) using the information of G4Step object. More... | |
bool | processFastSim (const Geant4FastSimSpot *spot, G4TouchableHistory *history) |
GFlash/FastSim interface: Method for generating hit(s) using the information of Geant4FastSimSpot object. More... | |
void | initialize () |
Initialization overload for specialization. More... | |
void | begin (G4HCofThisEvent *) |
G4VSensitiveDetector interface: Method invoked at the begining of each event. More... | |
void | end (G4HCofThisEvent *) |
G4VSensitiveDetector interface: Method invoked at the end of each event. More... | |
void | defineCollections () |
Define collections created by this sensitivie action object. More... | |
void | clear (G4HCofThisEvent *) |
Method for generating hit(s) using the information of G4Step object. More... | |
G4bool | process (const G4Step *step, G4TouchableHistory *history) |
Method for generating hit(s) using the information of G4Step object. More... | |
bool | processFastSim (const Geant4FastSimSpot *spot, G4TouchableHistory *history) |
Method for generating hit(s) using the information of the Geant4FastSimSpot object. More... | |
Public Member Functions inherited from dd4hep::sim::Geant4Sensitive | |
Geant4Sensitive (Geant4Context *context, const std::string &name, DetElement det, Detector &description) | |
Constructor. The sensitive detector element is identified by the detector name. More... | |
virtual | ~Geant4Sensitive () |
Standard destructor. More... | |
Geant4ActionSD & | detector () const |
Access to the sensitive detector object. More... | |
void | setDetector (Geant4ActionSD *sens_det) |
Access to the sensitive detector object. More... | |
int | hitCreationMode () const |
Property access to the hit creation mode. More... | |
std::string | detectorName () const |
G4VSensitiveDetector internals: Access to the detector name. More... | |
std::string | path () const |
G4VSensitiveDetector internals: Access to the detector path name. More... | |
std::string | fullPath () const |
G4VSensitiveDetector internals: Access to the detector path name. More... | |
bool | isActive () const |
G4VSensitiveDetector internals: Is the detector active? More... | |
SensitiveDetector | sensitiveDetector () const |
Access the dd4hep sensitive detector. More... | |
G4VReadOutGeometry * | readoutGeometry () const |
Access to the readout geometry of the sensitive detector. More... | |
Detector & | detectorDescription () const |
Access the detector desciption object. More... | |
void | mark (const G4Track *track) const |
Mark the track to be kept for MC truth propagation during hit processing. More... | |
void | mark (const G4Step *step) const |
Mark the track of this step to be kept for MC truth propagation during hit processing. More... | |
Geant4SensDetActionSequence & | sequence () const |
Access to the hosting sequence. More... | |
void | adopt (Geant4Filter *filter) |
Add an actor responding to all callbacks. Sequence takes ownership. More... | |
void | adopt_front (Geant4Filter *filter) |
Add an actor responding to all callbacks to the sequence front. Sequence takes ownership. More... | |
void | adoptFilter (Geant4Action *filter) |
Add an actor responding to all callbacks. Sequence takes ownership. More... | |
void | adoptFilter_front (Geant4Action *filter) |
Add an actor responding to all callbacks to the sequence front. Sequence takes ownership. More... | |
bool | accept (const G4Step *step) const |
Callback before hit processing starts. Invoke all filters. More... | |
bool | accept (const Geant4FastSimSpot *step) const |
GFLASH/FastSim interface: Callback before hit processing starts. Invoke all filters. More... | |
template<typename TYPE > | |
std::size_t | defineCollection (const std::string &coll_name) |
Initialize the usage of a single hit collection. Returns the collection ID. More... | |
const std::string & | hitCollectionName (std::size_t which) const |
Access HitCollection container names. More... | |
Geant4HitCollection * | collection (std::size_t which) |
Retrieve the hits collection associated with this detector by its serial number. More... | |
Geant4HitCollection * | collectionByID (std::size_t id) |
Retrieve the hits collection associated with this detector by its collection identifier. More... | |
long long int | volumeID (const G4Step *step) |
Returns the volumeID of the sensitive volume corresponding to the step. More... | |
long long int | volumeID (const G4VTouchable *touchable) |
Returns the volumeID of the sensitive volume corresponding to the G4VTouchable. More... | |
long long int | cellID (const G4Step *step) |
Returns the cellID of the sensitive volume corresponding to the step. More... | |
long long int | cellID (const G4VTouchable *touchable, const G4ThreeVector &global) |
Returns the cellID of the sensitive volume corresponding to the G4VTouchable. 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 | 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... | |
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... | |
Protected Member Functions | |
DDG4_DEFINE_ACTION_CONSTRUCTORS (Geant4SensitiveAction) | |
Define standard assignments and constructors. More... | |
Protected Member Functions inherited from dd4hep::sim::Geant4Sensitive | |
DDG4_DEFINE_ACTION_CONSTRUCTORS (Geant4Sensitive) | |
Define standard assignments and constructors. More... | |
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 | |
std::string | m_collectionName { } |
Property: collection name. If not set default is readout name! More... | |
std::string | m_readoutName { } |
Property: segmentation name for parallel readouts. If not set readout segmentation is used! More... | |
std::size_t | m_collectionID { 0 } |
Collection identifier. More... | |
UserData | m_userData { } |
User data block. More... | |
Protected Attributes inherited from dd4hep::sim::Geant4Sensitive | |
int | m_hitCreationMode = 0 |
Property: Hit creation mode. Maybe one of the enum HitCreationFlags. More... | |
Detector & | m_detDesc |
Reference to the detector description object. More... | |
DetElement | m_detector { } |
Reference to the detector element describing this sensitive element. More... | |
SensitiveDetector | m_sensitive { } |
Reference to the sensitive detector element. More... | |
Readout | m_readout { } |
Reference to the readout structure. More... | |
Segmentation | m_segmentation { } |
Reference to segmentation. More... | |
Actors< Geant4Filter > | m_filters |
The list of sensitive detector filter objects. 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... | |
Template class to ease the construction of sensitive detectors using particle template specialization.
Templated implementation to realize sensitive detectors. Default implementations for all functions are provided in the file DDG4/Geant4SensDetAction.inl.
Users may override any of the templated callbacks or the of the virtual functions of the base class using explicit template specialization. An example may be found in DDG4/plugins/Geant4SDActions.
Definition at line 514 of file Geant4SensDetAction.h.
typedef T dd4hep::sim::Geant4SensitiveAction< T >::UserData |
Definition at line 516 of file Geant4SensDetAction.h.
dd4hep::sim::Geant4SensitiveAction< T >::Geant4SensitiveAction | ( | Geant4Context * | context, |
const std::string & | name, | ||
DetElement | det, | ||
Detector & | description | ||
) |
Standard , initializing constructor.
|
virtual |
Default destructor.
|
virtual |
G4VSensitiveDetector interface: Method invoked at the begining of each event.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 442 of file Geant4TrackerWeightedSD.cpp.
|
finalvirtual |
G4VSensitiveDetector interface: Method invoked at the begining of each event.
Reimplemented from dd4hep::sim::Geant4Sensitive.
|
virtual |
Method for generating hit(s) using the information of G4Step object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 457 of file Geant4TrackerWeightedSD.cpp.
|
virtual |
Method for generating hit(s) using the information of G4Step object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 748 of file Geant4SDActions.cpp.
|
finalvirtual |
G4VSensitiveDetector interface: Method invoked if the event was aborted.
Reimplemented from dd4hep::sim::Geant4Sensitive.
|
protected |
Define standard assignments and constructors.
void dd4hep::sim::Geant4SensitiveAction< T >::declareOptionalProperties | ( | ) |
Declare optional properties from embedded structure.
std::size_t dd4hep::sim::Geant4SensitiveAction< T >::declareReadoutFilteredCollection | ( | ) |
Define readout specific hit collection with volume ID filtering.
Convenience function. To be called by specialized sensitive actions inheriting this class.
|
virtual |
Define collections created by this sensitivie action object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 45 of file Geant4SDActions.cpp.
|
virtual |
Define collections created by this sensitivie action object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 77 of file Geant4SDActions.cpp.
|
virtual |
Define collections created by this sensitivie action object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 150 of file Geant4SDActions.cpp.
|
virtual |
Define collections created by this sensitivie action object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 222 of file Geant4SDActions.cpp.
|
virtual |
Define collections created by this sensitivie action object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 341 of file Geant4SDActions.cpp.
|
virtual |
Define collections created by this sensitivie action object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 437 of file Geant4SDActions.cpp.
|
virtual |
Define collections created by this sensitivie action object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 452 of file Geant4TrackerWeightedSD.cpp.
|
virtual |
Define collections created by this sensitivie action object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
|
virtual |
Define collections created by this sensitivie action object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 743 of file Geant4SDActions.cpp.
std::size_t dd4hep::sim::Geant4SensitiveAction< T >::defineReadoutCollection | ( | const std::string | collection_name | ) |
Define readout specific hit collection. matching name must be present in readout structure.
|
virtual |
G4VSensitiveDetector interface: Method invoked at the end of each event.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 447 of file Geant4TrackerWeightedSD.cpp.
|
finalvirtual |
G4VSensitiveDetector interface: Method invoked at the end of each event.
Reimplemented from dd4hep::sim::Geant4Sensitive.
|
finalvirtual |
Finalization overload for specialization.
void dd4hep::sim::Geant4SensitiveAction< TrackerWeighted >::initialize | ( | ) |
Initialization overload for specialization.
Definition at line 434 of file Geant4TrackerWeightedSD.cpp.
void dd4hep::sim::Geant4SensitiveAction< TrackerCombine >::initialize | ( | ) |
Initialization overload for specialization.
Definition at line 736 of file Geant4SDActions.cpp.
|
finalvirtual |
Initialization overload for specialization.
|
virtual |
G4VSensitiveDetector interface: Method for generating hit(s) using the information of G4Step object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 51 of file Geant4SDActions.cpp.
|
virtual |
Method for generating hit(s) using the information of G4Step object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 83 of file Geant4SDActions.cpp.
|
virtual |
Method for generating hit(s) using the information of G4Step object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 156 of file Geant4SDActions.cpp.
|
virtual |
Method for generating hit(s) using the information of G4Step object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 228 of file Geant4SDActions.cpp.
|
virtual |
Method for generating hit(s) using the information of G4Step object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 346 of file Geant4SDActions.cpp.
|
virtual |
Method for generating hit(s) using the information of G4Step object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 442 of file Geant4SDActions.cpp.
|
virtual |
Method for generating hit(s) using the information of G4Step object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 463 of file Geant4TrackerWeightedSD.cpp.
|
virtual |
Method for generating hit(s) using the information of G4Step object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 754 of file Geant4SDActions.cpp.
|
finalvirtual |
G4VSensitiveDetector interface: Method for generating hit(s) using the G4Step object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
|
virtual |
GFLASH/FastSim interface: Method for generating hit(s) using the information of G4Step object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 58 of file Geant4SDActions.cpp.
|
virtual |
GFlash/FastSim interface: Method for generating hit(s) using the information of Geant4FastSimSpot object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 109 of file Geant4SDActions.cpp.
|
virtual |
GFlash/FastSim interface: Method for generating hit(s) using the information of G4Step object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 185 of file Geant4SDActions.cpp.
|
virtual |
GFlash/FastSim interface: Method for generating hit(s) using the information of Geant4FastSimSpot object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 277 of file Geant4SDActions.cpp.
|
virtual |
GFlash/FastSim interface: Method for generating hit(s) using the information of Geant4FastSimSpot object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 382 of file Geant4SDActions.cpp.
|
virtual |
GFlash/FastSim interface: Method for generating hit(s) using the information of Geant4FastSimSpot object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 488 of file Geant4SDActions.cpp.
|
virtual |
Method for generating hit(s) using the information of the Geant4FastSimSpot object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 469 of file Geant4TrackerWeightedSD.cpp.
|
virtual |
GFlash/FastSim interface: Method for generating hit(s) using the information of Geant4FastSimSpot object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Definition at line 760 of file Geant4SDActions.cpp.
|
finalvirtual |
GFLASH/FastSim interface: Method for generating hit(s) using the information of the fast simulation spot object.
Reimplemented from dd4hep::sim::Geant4Sensitive.
Readout dd4hep::sim::Geant4SensitiveAction< T >::readout | ( | ) |
Access the readout object. Note: if m_readoutName is set, the m_readout != m_sensitive.readout()
|
protected |
Collection identifier.
Definition at line 524 of file Geant4SensDetAction.h.
|
protected |
Property: collection name. If not set default is readout name!
Definition at line 519 of file Geant4SensDetAction.h.
|
protected |
Property: segmentation name for parallel readouts. If not set readout segmentation is used!
Definition at line 521 of file Geant4SensDetAction.h.
|
protected |
User data block.
Definition at line 526 of file Geant4SensDetAction.h.