Step processing method.
53 const G4Track& track = *
step->GetTrack();
54 const int trackID = track.GetTrackID();
55 const double depEnergy =
step->GetTotalEnergyDeposit() * CLHEP::MeV;
56 const double nielEnergy =
step->GetNonIonizingEnergyDeposit() * CLHEP::MeV;
57 const G4ThreeVector G4tkPos =
step->GetTrack()->GetPosition();
59 tkPos[0] = G4tkPos.x() * CLHEP::cm;
60 tkPos[1] = G4tkPos.y() * CLHEP::cm;
61 tkPos[2] = G4tkPos.z() * CLHEP::cm;
62 const G4ThreeVector G4tkMom =
step->GetTrack()->GetMomentum();
64 tkMom[0] = G4tkMom.x() * CLHEP::MeV;
65 tkMom[1] = G4tkMom.y() * CLHEP::MeV;
66 tkMom[2] = G4tkMom.z() * CLHEP::MeV;
67 const G4ThreeVector G4tkMomDir =
step->GetTrack()->GetMomentumDirection();
69 tkMomDir[0] = G4tkMomDir.x() * CLHEP::MeV;
70 tkMomDir[1] = G4tkMomDir.y() * CLHEP::MeV;
71 tkMomDir[2] = G4tkMomDir.z() * CLHEP::MeV;
72 const int tkPDG =
step->GetTrack()->GetDefinition()->GetPDGEncoding();
73 const double tkKEnergy =
step->GetTrack()->GetKineticEnergy();
74 const int detNb =
step->GetTrack()->GetVolume()->GetCopyNo();
75 const double GlTime =
step->GetPreStepPoint()->GetGlobalTime();
80 StoreArray<MCParticle> mcParticles;
81 StoreArray<MicrotpcSimHit> simHits;
82 RelationArray relMCSimHit(mcParticles, simHits);
97 if (track.GetNextVolume() != track.GetVolume() || track.GetTrackStatus() >= fStopAndKill) {
99 int PDG = mcparticle.getPDG();
100 float Mass = mcparticle.getMass();
101 float Energy = mcparticle.getEnergy();
103 vtx[0] = mcparticle.getProductionVertex().X();
104 vtx[1] = mcparticle.getProductionVertex().Y();
105 vtx[2] = mcparticle.getProductionVertex().Z();
107 mom[0] = mcparticle.getMomentum().X();
108 mom[1] = mcparticle.getMomentum().Y();
109 mom[2] = mcparticle.getMomentum().Z();
115 StoreArray<MicrotpcSimHit> MicrotpcHits;
116 MicrotpcSimHit* hit = MicrotpcHits.appendNew(
131 relMCSimHit.add(trackID, hit->getArrayIndex(), 1.0);
static Payload getInfo(Carrier &obj)
Static function to just return UserInformation attached to the obj of type Carrier.
int saveG4TrackInfo(int trackID, int PDG, float Mass, float Energy, float vtx[3], float mom[3])
Save saveG4TrackInfo into datastore.
bool step(G4Step *step, G4TouchableHistory *) override
Step processing method.