10#include <online_book/awesome/simulation/AWESOMESensitiveDetector.h>
13#include <framework/gearbox/Unit.h>
14#include <framework/geometry/B2Vector3.h>
17#include <G4StepPoint.hh>
21#include <CLHEP/Units/SystemOfUnits.h>
22#include <CLHEP/Vector/ThreeVector.h>
25using namespace Belle2::AWESOME;
28 Simulation::SensitiveDetectorBase{
"AwesomeSensitiveDetector",
Const::EDetector::TEST}
47 const G4Track& track = *
step->GetTrack();
48 const int trackID = track.GetTrackID();
49 const double energyDep =
step->GetTotalEnergyDeposit() *
Unit::MeV;
50 G4StepPoint* preStep =
step->GetPreStepPoint();
51 G4StepPoint* postStep =
step->GetPostStepPoint();
60 const CLHEP::Hep3Vector position = 0.5 * (preStep->GetPosition() + postStep->GetPosition()) / CLHEP::cm;
61 const double time = 0.5 * (preStep->GetGlobalTime() + postStep->GetGlobalTime());
A Geant4 simulated hit for the AWESOME detector.
void setEnergyDep(float energyDep)
Set the deposited energy.
void setTime(float time)
Set the time.
void setPosition(B2Vector3< float > position)
Set the vector for position.
AWESOMESensitiveDetector()
Constructor.
StoreArray< AWESOMESimHit > m_SimHits
AWESOME simulated hits.
RelationArray m_MCParticlesToSimHits
Relation array between MCParticles and AWESOMESimHits.
StoreArray< MCParticle > m_MCParticles
MC particles.
bool step(G4Step *step, G4TouchableHistory *) override
Step processing method.
A fast and root compatible alternative to TVector3.
DataType x() const
access variable X (= .at(0) without boundary check)
This class provides a set of constants for the framework.
void add(index_type from, index_type to, weight_type weight=1.0)
Add a new element to the relation.
int getArrayIndex() const
Returns this object's array index (in StoreArray), or -1 if not found.
static const double eV
[electronvolt]
static const double MeV
[megaelectronvolt]
Abstract base class for different kinds of events.