10#include <online_book/awesome/simulation/AWESOMESensitiveDetector.h>
13#include <framework/gearbox/Unit.h>
16#include <G4StepPoint.hh>
20#include <CLHEP/Units/SystemOfUnits.h>
21#include <CLHEP/Vector/ThreeVector.h>
24using namespace Belle2::AWESOME;
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();
59 const CLHEP::Hep3Vector position = 0.5 * (preStep->GetPosition() + postStep->GetPosition()) / CLHEP::cm;
60 const double time = 0.5 * (preStep->GetGlobalTime() + postStep->GetGlobalTime());
64 simHit->
setPosition(ROOT::Math::XYZVector(position));
A Geant4 simulated hit for the AWESOME detector.
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.
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.
This class provides a set of constants for the framework.
int getArrayIndex() const
Returns this object's array index (in StoreArray), or -1 if not found.
static void registerMCParticleRelation(const std::string &name, RelationArray::EConsolidationAction ignoreAction=RelationArray::c_negativeWeight)
Register an relation involving MCParticles.
SensitiveDetectorBase(const std::string &name, Const::EDetector subdetector)
Create a new Sensitive detecor with a given name and belonging to a given subdetector.
static const double eV
[electronvolt]
static const double MeV
[megaelectronvolt]
TEST(TestgetDetectorRegion, TestgetDetectorRegion)
Test Constructors.
Abstract base class for different kinds of events.