DD4hep
1.30.0
Detector Description Toolkit for High Energy Physics
|
The base class for Geant4 sensitive detector actions implemented by users. More...
#include <Geant4SensDetAction.h>
Public Types | |
enum | HitCreationFlags { SIMPLE_MODE = 0, MEDIUM_MODE = 1<<0, DETAILED_MODE = 1<<1 } |
Public Member Functions | |
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... | |
virtual void | defineCollections () |
Define collections created by this sensitivie action object. More... | |
virtual void | begin (G4HCofThisEvent *hce) |
G4VSensitiveDetector interface: Method invoked at the begining of each event. More... | |
virtual void | end (G4HCofThisEvent *hce) |
G4VSensitiveDetector interface: Method invoked at the end of each event. More... | |
virtual void | clear (G4HCofThisEvent *hce) |
G4VSensitiveDetector interface: Method invoked if the event was aborted. 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... | |
virtual bool | process (const G4Step *step, G4TouchableHistory *history) |
G4VSensitiveDetector interface: Method for generating hit(s) using the information of G4Step object. More... | |
virtual bool | processFastSim (const Geant4FastSimSpot *spot, G4TouchableHistory *history) |
GFLASH/FastSim interface: Method for generating hit(s) using the information of the fast simulation spot object. 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 (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 | |
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... | |
Private Attributes | |
Geant4ActionSD * | m_sensitiveDetector { nullptr } |
Reference to G4 sensitive detector. More... | |
Geant4SensDetActionSequence * | m_sequence { nullptr } |
Reference to the containing action sequence. More... | |
The base class for Geant4 sensitive detector actions implemented by users.
Definition at line 121 of file Geant4SensDetAction.h.
Enumerator | |
---|---|
SIMPLE_MODE | |
MEDIUM_MODE | |
DETAILED_MODE |
Definition at line 123 of file Geant4SensDetAction.h.
Geant4Sensitive::Geant4Sensitive | ( | Geant4Context * | context, |
const std::string & | name, | ||
DetElement | det, | ||
Detector & | description | ||
) |
Constructor. The sensitive detector element is identified by the detector name.
Constructor. The detector element is identified by the name.
Definition at line 98 of file Geant4SensDetAction.cpp.
|
virtual |
Standard destructor.
Definition at line 113 of file Geant4SensDetAction.cpp.
bool Geant4Sensitive::accept | ( | const G4Step * | step | ) | const |
Callback before hit processing starts. Invoke all filters.
Return false if any filter returns false
Definition at line 152 of file Geant4SensDetAction.cpp.
bool Geant4Sensitive::accept | ( | const Geant4FastSimSpot * | step | ) | const |
GFLASH/FastSim interface: Callback before hit processing starts. Invoke all filters.
Return false if any filter returns false
Definition at line 159 of file Geant4SensDetAction.cpp.
void Geant4Sensitive::adopt | ( | Geant4Filter * | filter | ) |
Add an actor responding to all callbacks. Sequence takes ownership.
Definition at line 126 of file Geant4SensDetAction.cpp.
void Geant4Sensitive::adopt_front | ( | Geant4Filter * | filter | ) |
Add an actor responding to all callbacks to the sequence front. Sequence takes ownership.
Add an actor responding to all callbacks. Sequence takes ownership.
Definition at line 142 of file Geant4SensDetAction.cpp.
void Geant4Sensitive::adoptFilter | ( | Geant4Action * | filter | ) |
Add an actor responding to all callbacks. Sequence takes ownership.
Definition at line 120 of file Geant4SensDetAction.cpp.
void Geant4Sensitive::adoptFilter_front | ( | Geant4Action * | filter | ) |
Add an actor responding to all callbacks to the sequence front. Sequence takes ownership.
Add an actor responding to all callbacks. Sequence takes ownership.
Definition at line 136 of file Geant4SensDetAction.cpp.
|
virtual |
G4VSensitiveDetector interface: Method invoked at the begining of each event.
Method invoked at the begining of each event.
The hits collection(s) created by this sensitive detector must be set to the G4HCofThisEvent object at one of these two methods.
Reimplemented in Tests::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Test::Geant4TestSensitive, and dd4hep::sim::Geant4SensitiveAction< T >.
Definition at line 210 of file Geant4SensDetAction.cpp.
long long int Geant4Sensitive::cellID | ( | const G4Step * | step | ) |
Returns the cellID of the sensitive volume corresponding to the step.
Returns the cellID(volumeID+local coordinate encoding) of the sensitive volume corresponding to the step.
The CellID is the VolumeID + the local coordinates of the sensitive area. Calculated by combining the VolIDS of the complete geometry path (Geant4TouchableHistory) from the current sensitive volume to the world volume
Definition at line 260 of file Geant4SensDetAction.cpp.
long long int Geant4Sensitive::cellID | ( | const G4VTouchable * | touchable, |
const G4ThreeVector & | global | ||
) |
Returns the cellID of the sensitive volume corresponding to the G4VTouchable.
Returns the cellID(volumeID+local coordinate encoding) of the sensitive volume corresponding to the touchable history.
The CellID is the VolumeID + the local coordinates of the sensitive area. Calculated by combining the VolIDS of the complete geometry path (Geant4TouchableHistory) from the current sensitive volume to the world volume
Definition at line 291 of file Geant4SensDetAction.cpp.
|
virtual |
G4VSensitiveDetector interface: Method invoked if the event was aborted.
Method is invoked if the event abortion is occured.
Hits collections created but not being set to G4HCofThisEvent at the event should be deleted. Collection(s) which have already set to G4HCofThisEvent will be deleted automatically.
Reimplemented in Tests::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, and dd4hep::sim::Geant4SensitiveAction< T >.
Definition at line 229 of file Geant4SensDetAction.cpp.
Geant4HitCollection * Geant4Sensitive::collection | ( | std::size_t | which | ) |
Retrieve the hits collection associated with this detector by its serial number.
Definition at line 196 of file Geant4SensDetAction.cpp.
Geant4HitCollection * Geant4Sensitive::collectionByID | ( | std::size_t | id | ) |
Retrieve the hits collection associated with this detector by its collection identifier.
Definition at line 201 of file Geant4SensDetAction.cpp.
|
protected |
Define standard assignments and constructors.
|
inline |
Initialize the usage of a single hit collection. Returns the collection ID.
Definition at line 496 of file Geant4SensDetAction.h.
|
virtual |
Define collections created by this sensitivie action object.
Reimplemented in Tests::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, Tests::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, and dd4hep::sim::Geant4SensitiveAction< T >.
Definition at line 206 of file Geant4SensDetAction.cpp.
Geant4ActionSD & Geant4Sensitive::detector | ( | ) | const |
Access to the sensitive detector object.
Definition at line 171 of file Geant4SensDetAction.cpp.
dd4hep::Detector & Geant4Sensitive::detectorDescription | ( | ) | const |
Access the detector desciption object.
Definition at line 186 of file Geant4SensDetAction.cpp.
|
inline |
G4VSensitiveDetector internals: Access to the detector name.
Definition at line 178 of file Geant4SensDetAction.h.
|
virtual |
G4VSensitiveDetector interface: Method invoked at the end of each event.
Method invoked at the end of each event.
Reimplemented in Tests::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Test::Geant4TestSensitive, and dd4hep::sim::Geant4SensitiveAction< T >.
Definition at line 214 of file Geant4SensDetAction.cpp.
|
inline |
G4VSensitiveDetector internals: Access to the detector path name.
Definition at line 188 of file Geant4SensDetAction.h.
const std::string & Geant4Sensitive::hitCollectionName | ( | std::size_t | which | ) | const |
Access HitCollection container names.
Definition at line 191 of file Geant4SensDetAction.cpp.
|
inline |
Property access to the hit creation mode.
Definition at line 173 of file Geant4SensDetAction.h.
|
inline |
G4VSensitiveDetector internals: Is the detector active?
Definition at line 193 of file Geant4SensDetAction.h.
void Geant4Sensitive::mark | ( | const G4Step * | step | ) | const |
Mark the track of this step to be kept for MC truth propagation during hit processing.
Definition at line 239 of file Geant4SensDetAction.cpp.
void Geant4Sensitive::mark | ( | const G4Track * | track | ) | const |
Mark the track to be kept for MC truth propagation during hit processing.
Definition at line 233 of file Geant4SensDetAction.cpp.
|
inline |
G4VSensitiveDetector internals: Access to the detector path name.
Definition at line 183 of file Geant4SensDetAction.h.
|
virtual |
G4VSensitiveDetector interface: Method for generating hit(s) using the information of G4Step object.
Reimplemented in Tests::Geant4SensitiveAction< T >, dd4hep::sim::Geant4EscapeCounter, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, Tests::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Test::Geant4TestSensitive, and dd4hep::sim::Geant4SensitiveAction< T >.
Definition at line 218 of file Geant4SensDetAction.cpp.
|
virtual |
GFLASH/FastSim interface: Method for generating hit(s) using the information of the fast simulation spot object.
GFLASH/FastSim interface: Method for generating hit(s) using the information of the Geant4FastSimSpot object.
The default implementation throws an exception that the GFLASH/FastSim interface is not implemented.
Reimplemented in Tests::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, dd4hep::sim::Geant4SensitiveAction< T >, and dd4hep::sim::Geant4SensitiveAction< T >.
Definition at line 223 of file Geant4SensDetAction.cpp.
|
inline |
Access to the readout geometry of the sensitive detector.
Definition at line 203 of file Geant4SensDetAction.h.
|
inline |
Access the dd4hep sensitive detector.
Definition at line 198 of file Geant4SensDetAction.h.
Geant4SensDetActionSequence & Geant4Sensitive::sequence | ( | ) | const |
Access to the hosting sequence.
Definition at line 181 of file Geant4SensDetAction.cpp.
void Geant4Sensitive::setDetector | ( | Geant4ActionSD * | sens_det | ) |
Access to the sensitive detector object.
Definition at line 166 of file Geant4SensDetAction.cpp.
long long int Geant4Sensitive::volumeID | ( | const G4Step * | step | ) |
Returns the volumeID of the sensitive volume corresponding to the step.
Combining the VolIDS of the complete geometry path (Geant4TouchableHistory) from the current sensitive volume to the world volume
Definition at line 245 of file Geant4SensDetAction.cpp.
long long int Geant4Sensitive::volumeID | ( | const G4VTouchable * | touchable | ) |
Returns the volumeID of the sensitive volume corresponding to the G4VTouchable.
Returns the volumeID of the sensitive volume corresponding to the touchable history.
Combining the VolIDS of the complete geometry path (Geant4TouchableHistory) from the current sensitive volume to the world volume
Definition at line 253 of file Geant4SensDetAction.cpp.
|
protected |
Reference to the detector description object.
Definition at line 143 of file Geant4SensDetAction.h.
|
protected |
Reference to the detector element describing this sensitive element.
Definition at line 146 of file Geant4SensDetAction.h.
|
protected |
The list of sensitive detector filter objects.
Definition at line 154 of file Geant4SensDetAction.h.
|
protected |
Property: Hit creation mode. Maybe one of the enum HitCreationFlags.
Definition at line 137 of file Geant4SensDetAction.h.
|
protected |
Reference to the readout structure.
Definition at line 150 of file Geant4SensDetAction.h.
|
protected |
Reference to segmentation.
Definition at line 152 of file Geant4SensDetAction.h.
|
protected |
Reference to the sensitive detector element.
Definition at line 148 of file Geant4SensDetAction.h.
|
private |
Reference to G4 sensitive detector.
Definition at line 131 of file Geant4SensDetAction.h.
|
private |
Reference to the containing action sequence.
Definition at line 133 of file Geant4SensDetAction.h.