Belle II Software  release-05-01-25
SensitiveDetector Class Reference

Sensitive Detector implementation of the QCSMONITOR detector. More...

#include <SensitiveDetector.h>

Inheritance diagram for SensitiveDetector:
Collaboration diagram for SensitiveDetector:

Public Member Functions

 SensitiveDetector ()
 Constructor.
 
 ~SensitiveDetector ()
 Destructor.
 
int saveSimHit (const G4int cellId, const G4int trackID, const G4int pid, const G4double tof, const G4double edep, G4ThreeVector mom, TVector3 WightedPos)
 Save QcsmonitorSimHit into datastore.
 

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

bool step (G4Step *step, G4TouchableHistory *) override
 Step processing method. 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

int m_hitNum
 members of SensitiveDetector

 
int m_EvnetNumber
 The current number of created hits in an event. More...
 
int m_oldEvnetNumber
 The current number of created hits in an event. More...
 
int m_trackID
 The current number of created hits in an event. More...
 
G4ThreeVector m_startPos
 track id
 
G4ThreeVector m_endPos
 Position of prestep.
 
TVector3 m_WightedPos
 Position of poststep.
 
G4ThreeVector m_momentum
 Wighted step Position.
 
double m_startTime
 momentum of track
 
double m_endTime
 global time
 
double m_WightedTime
 global time
 
double m_startEnergy
 global time
 
double m_energyDeposit
 particle energy at the entrance in volume
 
double m_trackLength
 energy deposited in volume
 
int iECLCell
 length of the track in the volume
 
int TimeIndex
 Hit Energy of StoreArray.
 
TVector3 PosCell
 Hit Time of StoreArray.
 
TVector3 VecCell
 center of crystal position
 
double local_pos
 vector of crystal axis
 
double T_ave
 position alongthe vector of crystal axis

 
int firstcall
 flight time to diode sensor

 
int m_phiID
 flag of first call

 
int m_thetaID
 The current phi ID in an event. More...
 
int m_cellID
 The current theta ID in an event. More...
 
G4EmSaturation * saturationEngine
 The current cellID in an event. More...
 
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

Sensitive Detector implementation of the QCSMONITOR detector.

Definition at line 33 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 98 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 70 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 24 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 54 of file SensitiveDetectorBase.h.

◆ step()

bool step ( G4Step *  step,
G4TouchableHistory *   
)
overrideprotectedvirtual

Step processing method.

Parameters
stepthe G4Step with the current step information
Returns
true if a Hit has been created, false if the hit was ignored

Implements SensitiveDetectorBase.

Definition at line 87 of file SensitiveDetector.cc.

117  {
118  int pdgCode = track.GetDefinition()->GetPDGEncoding();
119 
120  const G4VPhysicalVolume& v = * track.GetVolume();
121  G4ThreeVector posCell = v.GetTranslation();
122  // Get layer ID
123 
124  //if (v.GetName().find("Crystal") != std::string::npos) {
125  //CsiGeometryPar* eclp = CsiGeometryPar::Instance();
126  m_cellID = track.GetVolume()->GetCopyNo();
127 
128  double dTotalEnergy = 1 / m_energyDeposit; //avoid the error no match for 'operator/'
129  if (m_energyDeposit > 0.) {
131  m_energyDeposit, m_momentum, m_WightedPos * dTotalEnergy);
132  //}
133  }
134 
135  //Reset TrackID
136  m_trackID = 0;
137  }
138 
139  return true;
140  }
141 
143  const G4int cellId,
144  const G4int trackID,
145  const G4int pid,
146  const G4double tof,
147  const G4double edep,
148  G4ThreeVector mom,

Member Data Documentation

◆ m_cellID

int m_cellID
private

The current theta ID in an event.

Used to fill the DataStore ECL array

Definition at line 87 of file SensitiveDetector.h.

◆ m_EvnetNumber

int m_EvnetNumber
private

The current number of created hits in an event.

Used to fill the DataStore ECLHit.

Definition at line 63 of file SensitiveDetector.h.

◆ m_oldEvnetNumber

int m_oldEvnetNumber
private

The current number of created hits in an event.

Used to fill the DataStore ECL EB array.

Definition at line 64 of file SensitiveDetector.h.

◆ m_thetaID

int m_thetaID
private

The current phi ID in an event.

Used to fill the DataStore ECL array

Definition at line 86 of file SensitiveDetector.h.

◆ m_trackID

int m_trackID
private

The current number of created hits in an event.

Used to fill the DataStore

Definition at line 65 of file SensitiveDetector.h.

◆ saturationEngine

G4EmSaturation* saturationEngine
private

The current cellID in an event.

Used to fill the DataStore ECL array
needed to call Birk's law

Definition at line 90 of file SensitiveDetector.h.


The documentation for this class was generated from the following files:
Belle2::qcsmonitor::SensitiveDetector::m_momentum
G4ThreeVector m_momentum
Wighted step Position.
Definition: SensitiveDetector.h:69
Belle2::qcsmonitor::SensitiveDetector::m_WightedPos
TVector3 m_WightedPos
Position of poststep.
Definition: SensitiveDetector.h:68
Belle2::qcsmonitor::SensitiveDetector::saveSimHit
int saveSimHit(const G4int cellId, const G4int trackID, const G4int pid, const G4double tof, const G4double edep, G4ThreeVector mom, TVector3 WightedPos)
Save QcsmonitorSimHit into datastore.
Definition: SensitiveDetector.cc:150
Belle2::qcsmonitor::SensitiveDetector::m_energyDeposit
double m_energyDeposit
particle energy at the entrance in volume
Definition: SensitiveDetector.h:74
Belle2::qcsmonitor::SensitiveDetector::m_trackID
int m_trackID
The current number of created hits in an event.
Definition: SensitiveDetector.h:65
Belle2::qcsmonitor::SensitiveDetector::m_WightedTime
double m_WightedTime
global time
Definition: SensitiveDetector.h:72
Belle2::qcsmonitor::SensitiveDetector::m_cellID
int m_cellID
The current theta ID in an event.
Definition: SensitiveDetector.h:87