Belle II Software  release-08-01-10
SensitiveDetector Class Reference

Class for ECL Sensitive Detector. More...

#include <SensitiveDetector.h>

Inheritance diagram for SensitiveDetector:
Collaboration diagram for SensitiveDetector:

Public Member Functions

 SensitiveDetector (G4String, G4double, G4double)
 Constructor.
 
 ~SensitiveDetector ()
 Destructor.
 
void Initialize (G4HCofThisEvent *HCTE) override
 Register ECL hits collection into G4HCofThisEvent.
 
bool step (G4Step *aStep, G4TouchableHistory *history) override
 Process each step and calculate variables defined in ECLHit.
 
void EndOfEvent (G4HCofThisEvent *eventHC) override
 Do what you want to do at the end of each event.
 

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

Private Member Functions

double GetHadronIntensityFromDEDX (double)
 Evaluates hadron scintillation component emission function.
 
int saveSimHit (G4int, G4int, G4int, G4double, G4double, const G4ThreeVector &, const G4ThreeVector &, double)
 Create ECLSimHit and ECLHit and relations from MCParticle and put them in datastore.
 
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

TGraph * m_HadronEmissionFunction = nullptr
 Graph for hadron scintillation component emission function.
 
G4EmCalculator m_emCal
 Used to get dE/dx for pulse shape simulations.
 
StoreArray< ECLSimHitm_eclSimHits
 ECLSimHit array.
 
StoreArray< ECLHitm_eclHits
 ECLHit array.
 
StoreArray< MCParticlem_mcParticles
 MCParticle array.
 
RelationArray m_eclSimHitRel
 MCParticle to ECLSimHit relation array.
 
RelationArray m_eclHitRel
 MCParticle to ECLHit relation array.
 
int m_trackID
 current track id
 
double m_WeightedTime
 average track time weighted by energy deposition
 
double m_energyDeposit
 total energy deposited in a volume by a track
 
double m_hadronenergyDeposit
 energy deposited resulting in hadronic scint component
 
G4ThreeVector m_WeightedPos
 average track position weighted by energy deposition
 
G4ThreeVector m_momentum
 initial momentum of track before energy deposition inside sensitive volume
 
DBObjPtr< ECLHadronComponentEmissionFunctionm_ECLHadronComponentEmissionFunction
 Hadron Component Emission Function.
 
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

Class for ECL Sensitive Detector.

Definition at line 38 of file SensitiveDetector.h.

Member Function Documentation

◆ ProcessHits()

bool ProcessHits ( G4Step *  aStep,
G4TouchableHistory *  aROhist 
)
inlineprivatevirtualinherited

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 
)
inlinestaticinherited

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 
)
staticinherited

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)
inlinestaticinherited

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.


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