Belle II Software  release-08-01-10
SensitiveDetectorBase Class Referenceabstract

Base class for all Sensitive Detectors to create hits during simulation. More...

#include <SensitiveDetectorBase.h>

Inheritance diagram for SensitiveDetectorBase:
Collaboration diagram for SensitiveDetectorBase:

Public Member Functions

 SensitiveDetectorBase (const std::string &name, Const::EDetector subdetector)
 Create a new Sensitive detecor with a given name and belonging to a given subdetector. More...
 
virtual ~SensitiveDetectorBase ()
 virtual destructor for inheritance
 

Static Public Member Functions

static const std::map< std::string, RelationArray::EConsolidationAction > & getMCParticleRelations ()
 Return a list of all registered Relations with MCParticles.
 
static void setActive (bool activeStatus)
 Enable/Disable all Sensitive Detectors. More...
 
static void registerMCParticleRelation (const std::string &name, RelationArray::EConsolidationAction ignoreAction=RelationArray::c_negativeWeight)
 Register an relation involving MCParticles. More...
 
static void registerMCParticleRelation (const RelationArray &relation, RelationArray::EConsolidationAction ignoreAction=RelationArray::c_negativeWeight)
 Overload to make it easer to register MCParticle relations. More...
 

Protected Member Functions

virtual bool step (G4Step *step, G4TouchableHistory *ROhist)=0
 Process a Geant4 step in any of the sensitive volumes attached to this sensitive detector. More...
 

Private Member Functions

virtual bool ProcessHits (G4Step *aStep, G4TouchableHistory *aROhist)
 Check if recording hits is enabled and if so call step() and set the correct MCParticle flag. More...
 

Private Attributes

Const::EDetector m_subdetector
 Subdetector the class belongs to.
 

Static Private Attributes

static std::map< std::string, RelationArray::EConsolidationActions_mcRelations
 Static set holding all relations which have to be updated at the end of the Event.
 
static bool s_active
 Static bool which indicates wether recording of hits is enabled.
 

Detailed Description

Base class for all Sensitive Detectors to create hits during simulation.

Definition at line 28 of file SensitiveDetectorBase.h.

Constructor & Destructor Documentation

◆ SensitiveDetectorBase()

SensitiveDetectorBase ( const std::string &  name,
Const::EDetector  subdetector 
)
inline

Create a new Sensitive detecor with a given name and belonging to a given subdetector.

Parameters
namename of the sensitive detector
subdetectorsubdetector the sensitive detector class belongs to

Definition at line 35 of file SensitiveDetectorBase.h.

Member Function Documentation

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

◆ registerMCParticleRelation() [1/2]

static void registerMCParticleRelation ( const RelationArray relation,
RelationArray::EConsolidationAction  ignoreAction = RelationArray::c_negativeWeight 
)
inlinestatic

Overload to make it easer to register MCParticle relations.

Parameters
relationRelationArray to register
ignoreAction

Definition at line 66 of file SensitiveDetectorBase.h.

◆ registerMCParticleRelation() [2/2]

void registerMCParticleRelation ( const std::string &  name,
RelationArray::EConsolidationAction  ignoreAction = RelationArray::c_negativeWeight 
)
static

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
nameName of the relation to register
ignoreAction

Definition at line 22 of file SensitiveDetectorBase.cc.

◆ 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
activeStatusbool 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
stepGeant4 step which has all the information
ROhistTouchableHistory of the ReadoutGeometry if any is defined
Returns
true if a hit was recorded, false otherwise

Implemented in SensitiveDetectorBase, AWESOMESensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, BkgSensitiveDiode, SensitiveDiode, SensitiveDetector, CDCSensitiveDetector, SensitivePMT, SensitiveBar, BkgSensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveDetector, SensitiveAero, and SensitiveDetector.


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