Belle II Software  release-06-01-15
BkgSensitiveDetector Class Reference

The Class for BeamBackground Sensitive Detector. More...

#include <BkgSensitiveDetector.h>

Inheritance diagram for BkgSensitiveDetector:
Collaboration diagram for BkgSensitiveDetector:

Public Member Functions

 BkgSensitiveDetector (const char *subDet, int iden=0)
 Constructor. More...
 
bool step (G4Step *aStep, G4TouchableHistory *) override
 Process each step and calculate variables defined in PXDSimHit. More...
 

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

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_subDet
 subdetector id number
 
int m_identifier
 identifier of subdetector component
 
int m_trackID
 track id
 
TVector3 m_startPos
 particle position at the entrance in volume
 
TVector3 m_startMom
 particle momentum at the entrance in volume
 
double m_startTime
 global time
 
double m_startEnergy
 particle energy at the entrance in volume
 
double m_energyDeposit
 energy deposited in volume
 
double m_trackLength
 length of the track in the volume
 
int m_eclrepscale
 replica (=sector) scale in ECL
 
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

The Class for BeamBackground Sensitive Detector.

In this class, every variable defined in BeamBackHit will be calculated, and stored in datastore.

Definition at line 24 of file BkgSensitiveDetector.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 96 of file SensitiveDetectorBase.h.

97  {
98  if (!s_active) return false;
99  bool result = step(aStep, aROhist);
100  // Do not include hits from invalid detector (beast,teastbeam, etc.)
101  if (result && (m_subdetector != Const::invalidDetector)) TrackInfo::getInfo(*aStep->GetTrack()).addSeenInDetector(m_subdetector);
102  return result;
103  }
virtual bool step(G4Step *step, G4TouchableHistory *ROhist)=0
Process a Geant4 step in any of the sensitive volumes attached to this sensitive detector.
Const::EDetector m_subdetector
Subdetector the class belongs to.
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.
Definition: UserInfo.h:100

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

23  {
24  std::pair<std::map<std::string, RelationArray::EConsolidationAction>::iterator, bool> insert = s_mcRelations.insert(std::make_pair(
25  name, ignoreAction));
26  //If the relation already exists and the ignoreAction is different we do have a problem
27  if (!insert.second && insert.first->second != ignoreAction) {
28  B2FATAL("MCParticle Relation " << name << " already registered with different ignore action.");
29  }
30  }
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.

◆ 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 52 of file SensitiveDetectorBase.h.


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