Belle II Software light-2505-deimos
AWESOMESensitiveDetector Class Reference

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

#include <AWESOMESensitiveDetector.h>

Inheritance diagram for AWESOMESensitiveDetector:
Collaboration diagram for AWESOMESensitiveDetector:

Public Member Functions

 AWESOMESensitiveDetector ()
 Constructor.
 
bool step (G4Step *step, G4TouchableHistory *) override
 Step processing method.
 

Private Attributes

StoreArray< MCParticlem_MCParticles
 MC particles.
 
StoreArray< AWESOMESimHitm_SimHits
 AWESOME simulated hits.
 
RelationArray m_MCParticlesToSimHits {m_MCParticles, m_SimHits}
 Relation array between MCParticles and AWESOMESimHits.
 

Detailed Description

Sensitive Detector implementation of the AWESOME detector.

Definition at line 27 of file AWESOMESensitiveDetector.h.

Constructor & Destructor Documentation

◆ AWESOMESensitiveDetector()

Constructor.

Definition at line 26 of file AWESOMESensitiveDetector.cc.

26 :
27 Simulation::SensitiveDetectorBase{"AwesomeSensitiveDetector", Const::EDetector::TEST}
28{
29 /* MCParticles must be optional, not required. */
30 m_MCParticles.isOptional();
31 /* Register the simulted hits and all the necessary relations in the datastore. */
32 m_SimHits.registerInDataStore();
33 m_MCParticles.registerRelationTo(m_SimHits);
34 /*
35 * Register the Relation so that the Geant4 TrackIDs get replaced by the actual
36 * MCParticle indices after simulating the events. This is needed as
37 * secondary particles might not be stored so everything relating to those
38 * particles will be attributed to the last saved mother particle.
39 */
40 registerMCParticleRelation(m_MCParticlesToSimHits);
41}
StoreArray< AWESOMESimHit > m_SimHits
AWESOME simulated hits.
RelationArray m_MCParticlesToSimHits
Relation array between MCParticles and AWESOMESimHits.
StoreArray< MCParticle > m_MCParticles
MC particles.

Member Function Documentation

◆ step()

bool step ( G4Step * step,
G4TouchableHistory *  )
override

Step processing method.

Parameters
stepThe G4Step with the current step information.
Returns
true if a hit was created, false otherwise.

Definition at line 43 of file AWESOMESensitiveDetector.cc.

44{
45 /* Get some basic information from Geant4. */
46 const G4Track& track = *step->GetTrack();
47 const int trackID = track.GetTrackID();
48 const double energyDep = step->GetTotalEnergyDeposit() * Unit::MeV;
49 G4StepPoint* preStep = step->GetPreStepPoint();
50 G4StepPoint* postStep = step->GetPostStepPoint();
51 /* Ignore everything below 1 eV. */
52 if (energyDep < Unit::eV)
53 return false;
54 /*
55 * Compute other useful quantities to be stored.
56 * We must be sure that the quantities are stored using the proper Belle2 units:
57 * positions in cm, time in ns, etc.
58 */
59 const CLHEP::Hep3Vector position = 0.5 * (preStep->GetPosition() + postStep->GetPosition()) / CLHEP::cm; // Now in cm
60 const double time = 0.5 * (preStep->GetGlobalTime() + postStep->GetGlobalTime()); // Already in ns
61 /* Store the simulated hit. */
62 AWESOMESimHit* simHit = m_SimHits.appendNew();
63 simHit->setEnergyDep(energyDep);
64 simHit->setPosition(ROOT::Math::XYZVector(position));
65 simHit->setTime(time);
66 /*
67 * Add a relation between the current MCParticle and the simulated hit.
68 * Since the MCParticle index is not yet defined we use the trackID from Geant4.
69 */
70 m_MCParticlesToSimHits.add(trackID, simHit->getArrayIndex());
71 return true;
72}
void setEnergyDep(float energyDep)
Set the deposited energy.
void setPosition(ROOT::Math::XYZVector position)
Set the vector for position.
void setTime(float time)
Set the time.
bool step(G4Step *step, G4TouchableHistory *) override
Step processing method.
int getArrayIndex() const
Returns this object's array index (in StoreArray), or -1 if not found.
static const double eV
[electronvolt]
Definition Unit.h:112
static const double MeV
[megaelectronvolt]
Definition Unit.h:114

Member Data Documentation

◆ m_MCParticles

StoreArray<MCParticle> m_MCParticles
private

MC particles.

Definition at line 44 of file AWESOMESensitiveDetector.h.

◆ m_MCParticlesToSimHits

RelationArray m_MCParticlesToSimHits {m_MCParticles, m_SimHits}
private

Relation array between MCParticles and AWESOMESimHits.

Definition at line 50 of file AWESOMESensitiveDetector.h.

50{m_MCParticles, m_SimHits};

◆ m_SimHits

StoreArray<AWESOMESimHit> m_SimHits
private

AWESOME simulated hits.

Definition at line 47 of file AWESOMESensitiveDetector.h.


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