Belle II Software development
|
Class for ECL Sensitive Detector. More...
#include <SensitiveDetector.h>
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. | |
static void | registerMCParticleRelation (const std::string &name, RelationArray::EConsolidationAction ignoreAction=RelationArray::c_negativeWeight) |
Register an relation involving MCParticles. | |
static void | registerMCParticleRelation (const RelationArray &relation, RelationArray::EConsolidationAction ignoreAction=RelationArray::c_negativeWeight) |
Overload to make it easer to register MCParticle relations. | |
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. | |
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< ECLSimHit > | m_eclSimHits |
ECLSimHit array. | |
StoreArray< ECLHit > | m_eclHits |
ECLHit array. | |
StoreArray< MCParticle > | m_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< ECLHadronComponentEmissionFunction > | m_ECLHadronComponentEmissionFunction |
Hadron Component Emission Function. | |
Const::EDetector | m_subdetector |
Subdetector the class belongs to. | |
Static Private Attributes | |
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. | |
static bool | s_active |
Static bool which indicates wether recording of hits is enabled. | |
Class for ECL Sensitive Detector.
Definition at line 38 of file SensitiveDetector.h.
~SensitiveDetector | ( | ) |
|
override |
Do what you want to do at the end of each event.
Definition at line 145 of file SensitiveDetector.cc.
|
private |
Evaluates hadron scintillation component emission function.
Definition at line 61 of file SensitiveDetector.cc.
|
inlinestaticinherited |
Return a list of all registered Relations with MCParticles.
Definition at line 42 of file SensitiveDetectorBase.h.
|
override |
Register ECL hits collection into G4HCofThisEvent.
Definition at line 55 of file SensitiveDetector.cc.
|
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.
|
inlinestaticinherited |
Overload to make it easer to register MCParticle relations.
relation | RelationArray to register |
ignoreAction |
Definition at line 66 of file SensitiveDetectorBase.h.
|
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
name | Name of the relation to register |
ignoreAction |
Definition at line 22 of file SensitiveDetectorBase.cc.
|
private |
Create ECLSimHit and ECLHit and relations from MCParticle and put them in datastore.
Definition at line 187 of file SensitiveDetector.cc.
|
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
activeStatus | bool to indicate wether hits should be recorded |
Definition at line 50 of file SensitiveDetectorBase.h.
|
overridevirtual |
Process each step and calculate variables defined in ECLHit.
Implements SensitiveDetectorBase.
Definition at line 84 of file SensitiveDetector.cc.
|
private |
Hadron Component Emission Function.
Definition at line 76 of file SensitiveDetector.h.
|
private |
MCParticle to ECLHit relation array.
Definition at line 69 of file SensitiveDetector.h.
|
private |
ECLHit array.
Definition at line 66 of file SensitiveDetector.h.
|
private |
MCParticle to ECLSimHit relation array.
Definition at line 68 of file SensitiveDetector.h.
|
private |
ECLSimHit array.
Definition at line 65 of file SensitiveDetector.h.
|
private |
Used to get dE/dx for pulse shape simulations.
Definition at line 63 of file SensitiveDetector.h.
|
private |
total energy deposited in a volume by a track
Definition at line 72 of file SensitiveDetector.h.
|
private |
Graph for hadron scintillation component emission function.
Definition at line 56 of file SensitiveDetector.h.
|
private |
energy deposited resulting in hadronic scint component
Definition at line 73 of file SensitiveDetector.h.
|
private |
MCParticle array.
Definition at line 67 of file SensitiveDetector.h.
|
private |
initial momentum of track before energy deposition inside sensitive volume
Definition at line 75 of file SensitiveDetector.h.
|
privateinherited |
Subdetector the class belongs to.
Definition at line 91 of file SensitiveDetectorBase.h.
|
private |
current track id
Definition at line 70 of file SensitiveDetector.h.
|
private |
average track position weighted by energy deposition
Definition at line 74 of file SensitiveDetector.h.
|
private |
average track time weighted by energy deposition
Definition at line 71 of file SensitiveDetector.h.
|
staticprivateinherited |
Static bool which indicates wether recording of hits is enabled.
Definition at line 89 of file SensitiveDetectorBase.h.
|
staticprivateinherited |
Static set holding all relations which have to be updated at the end of the Event.
Definition at line 87 of file SensitiveDetectorBase.h.