Base class for all Sensitive Detectors to create hits during simulation.
More...
#include <SensitiveDetectorBase.h>
|
virtual bool | step (G4Step *step, G4TouchableHistory *ROhist)=0 |
| Process a Geant4 step in any of the sensitive volumes attached to this sensitive detector.
|
|
|
virtual bool | ProcessHits (G4Step *aStep, G4TouchableHistory *aROhist) |
| Check if recording hits is enabled and if so call step() and set the correct MCParticle flag.
|
|
Base class for all Sensitive Detectors to create hits during simulation.
Definition at line 28 of file SensitiveDetectorBase.h.
◆ SensitiveDetectorBase()
Create a new Sensitive detecor with a given name and belonging to a given subdetector.
- Parameters
-
name | name of the sensitive detector |
subdetector | subdetector the sensitive detector class belongs to |
Definition at line 35 of file SensitiveDetectorBase.h.
35 :
Const::EDetector m_subdetector
Subdetector the class belongs to.
◆ ~SensitiveDetectorBase()
◆ getMCParticleRelations()
Return a list of all registered Relations with MCParticles.
Definition at line 42 of file SensitiveDetectorBase.h.
static std::map< std::string, RelationArray::EConsolidationAction > s_mcRelations
Static set holding all relations which have to be updated at the end of the Event.
◆ ProcessHits()
bool ProcessHits |
( |
G4Step * |
aStep, |
|
|
G4TouchableHistory * |
aROhist |
|
) |
| |
|
inlineprivatevirtual |
Check if recording hits is enabled and if so call step() and set the correct MCParticle flag.
Called by Geant4 for each step inside the sensitive volumes attached
Definition at line 94 of file SensitiveDetectorBase.h.
95 {
97 bool result =
step(aStep, aROhist);
98
100 return result;
101 }
virtual bool step(G4Step *step, G4TouchableHistory *ROhist)=0
Process a Geant4 step in any of the sensitive volumes attached to this sensitive detector.
static bool s_active
Static bool which indicates wether recording of hits is enabled.
static Payload getInfo(Carrier &obj)
Static function to just return UserInformation attached to the obj of type Carrier.
◆ registerMCParticleRelation() [1/2]
Overload to make it easer to register MCParticle relations.
- Parameters
-
Definition at line 66 of file SensitiveDetectorBase.h.
static void registerMCParticleRelation(const std::string &name, RelationArray::EConsolidationAction ignoreAction=RelationArray::c_negativeWeight)
Register an relation involving MCParticles.
◆ registerMCParticleRelation() [2/2]
Register an relation involving MCParticles.
All Relations which point from an MCParticle to something have to be registered with addMCParticleRelation() because the index of the MCParticles might change at the end of the event. During simulation, the TrackID should be used as index of the MCParticle
- Parameters
-
name | Name of the relation to register |
ignoreAction | |
Definition at line 22 of file SensitiveDetectorBase.cc.
23 {
24 std::pair<std::map<std::string, RelationArray::EConsolidationAction>::iterator,
bool> insert =
s_mcRelations.insert(std::make_pair(
25 name, ignoreAction));
26
27 if (!insert.second && insert.first->second != ignoreAction) {
28 B2FATAL("MCParticle Relation " << name << " already registered with different ignore action.");
29 }
30 }
◆ setActive()
static void setActive |
( |
bool |
activeStatus | ) |
|
|
inlinestatic |
Enable/Disable all Sensitive Detectors.
By default, all sensitive detectors won't create hits to make it possible to use the Geant4 Navigator for non-simulation purposes. Only during simulation the sensitive detectors will be enabled to record hits
- Parameters
-
activeStatus | bool to indicate wether hits should be recorded |
Definition at line 50 of file SensitiveDetectorBase.h.
◆ step()
virtual bool step |
( |
G4Step * |
step, |
|
|
G4TouchableHistory * |
ROhist |
|
) |
| |
|
protectedpure virtual |
Process a Geant4 step in any of the sensitive volumes attached to this sensitive detector.
This is the main function to be implemented by subclasses. The original ProcessHits is now used to check if recordign of hits is enabled and to set the correct MCParticle flag automatically on creation of a hit
- Parameters
-
step | Geant4 step which has all the information |
ROhist | TouchableHistory of the ReadoutGeometry if any is defined |
- Returns
- true if a hit was recorded, false otherwise
Implemented in SensitiveDetector, SensitiveAero, SensitiveDetector, SensitiveDetector, SensitiveDetector, BkgSensitiveDetector, SensitiveBar, SensitivePMT, CDCSensitiveDetector, SensitiveDetector, SensitiveDiode, BkgSensitiveDiode, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, AWESOMESensitiveDetector, and SensitiveDetectorBase.
◆ m_subdetector
◆ s_active
◆ s_mcRelations
Static set holding all relations which have to be updated at the end of the Event.
Definition at line 87 of file SensitiveDetectorBase.h.
The documentation for this class was generated from the following files: