19 auto preStepPoint = step->GetPreStepPoint();
22 auto touchable = preStepPoint->GetTouchable();
25 G4ThreeVector xyz = preStepPoint->GetPosition();
26 G4ThreeVector xyzL = touchable->GetHistory()->GetTopTransform().TransformPoint(xyz);
28 globalPositions.push_back(xyz);
29 localPositions.push_back(xyzL);
33 double edep = (step->GetTotalEnergyDeposit()) * (
gtouchable->getEnergyMultiplier());
34 double time = preStepPoint->GetGlobalTime();
36 edeps.push_back(edep);
37 times.push_back(time);
39 auto track = step->GetTrack();
40 auto trackVertex = track->GetVertexPosition();
41 int trackId = track->GetTrackID();
42 int motherTrackId = track->GetParentID();
44 trackVertexById.emplace(trackId, trackVertex);
48 if (motherTrackId > 0) {
49 auto motherVertex = trackVertexById.find(motherTrackId);
50 if (motherVertex != trackVertexById.end()) {
51 motherTrackVertex = motherVertex->second;
55 trackVertexPositions.push_back(trackVertex);
56 motherTrackVertexPositions.push_back(motherTrackVertex);
57 pids.push_back(track->GetDefinition()->GetPDGEncoding());
58 tids.push_back(trackId);
59 motherTids.push_back(motherTrackId);
63 for (
size_t hbIndex = 0; hbIndex < hbs.size(); hbIndex++) {
64 addHitInfosForBitIndex(hbIndex, hbs.test(hbIndex), step);