9 #include <beast/bgo/simulation/SensitiveDetector.h>
10 #include <beast/bgo/dataobjects/BgoSimHit.h>
12 #include <framework/datastore/StoreArray.h>
13 #include <framework/datastore/RelationArray.h>
27 Simulation::SensitiveDetectorBase(
"BgoSensitiveDetector",
Const::invalidDetector)
72 const G4StepPoint& preStep = *
step->GetPreStepPoint();
73 const G4StepPoint& postStep = *
step->GetPostStepPoint();
75 G4Track& track = *
step->GetTrack();
105 if (track.GetNextVolume() != track.GetVolume() || track.GetTrackStatus() >= fStopAndKill) {
106 int pdgCode = track.GetDefinition()->GetPDGEncoding();
202 TVector3 momentum(mom.getX() / CLHEP::GeV, mom.getY() / CLHEP::GeV, mom.getZ() / CLHEP::GeV);
203 BgoHits.
appendNew(cellId, trackID, pid, tof / CLHEP::ns, edep / CLHEP::GeV, momentum, posAve);
205 B2DEBUG(150,
"HitNumber: " << simhitNumber);
206 bgoSimHitRel.
add(trackID, simhitNumber);
207 return (simhitNumber);
This class provides a set of constants for the framework.
Low-level class to create/modify relations between StoreArrays.
void add(index_type from, index_type to, weight_type weight=1.0)
Add a new element to the relation.
static void registerMCParticleRelation(const std::string &name, RelationArray::EConsolidationAction ignoreAction=RelationArray::c_negativeWeight)
Register an relation involving MCParticles.
bool registerInDataStore(DataStore::EStoreFlags storeFlags=DataStore::c_WriteOut)
Register the object/array in the DataStore.
T * appendNew()
Construct a new T object at the end of the array.
int getEntries() const
Get the number of objects in the array.
int m_thetaID
The current phi ID in an event.
double m_energyDeposit
particle energy at the entrance in volume
int m_EvnetNumber
The current number of created hits in an event.
int TimeIndex
Hit Energy of StoreArray.
int m_trackID
The current number of created hits in an event.
TVector3 m_WightedPos
Position of poststep.
int m_hitNum
members of SensitiveDetector
int firstcall
flight time to diode sensor
double m_endTime
global time
double T_ave
position alongthe vector of crystal axis
double local_pos
vector of crystal axis
double m_WightedTime
global time
G4ThreeVector m_momentum
Wighted step Position.
int m_cellID
The current theta ID in an event.
double m_startEnergy
global time
double m_startTime
momentum of track
int iECLCell
length of the track in the volume
double m_trackLength
energy deposited in volume
int m_oldEvnetNumber
The current number of created hits in an event.
G4ThreeVector m_startPos
track id
~SensitiveDetector()
Destructor.
G4ThreeVector m_endPos
Position of prestep.
SensitiveDetector()
Constructor.
int m_phiID
flag of first call
bool step(G4Step *step, G4TouchableHistory *) override
Step processing method.
int saveSimHit(const G4int cellId, const G4int trackID, const G4int pid, const G4double tof, const G4double edep, G4ThreeVector mom, TVector3 WightedPos)
Save BgoSimHit into datastore.
Abstract base class for different kinds of events.