70 G4StepPoint* postStepPoint = aStep->GetPostStepPoint();
71 if (postStepPoint->GetStepStatus() != fGeomBoundary)
74 G4Track* track = aStep->GetTrack();
75 const G4DynamicParticle* dp = track->GetDynamicParticle();
76 G4double charge = dp->GetCharge();
77 auto pd = dp->GetParticleDefinition();
80 G4double ek = track->GetKineticEnergy();
84 G4int PDGtype = pd->GetPDGEncoding();
91 G4int trackID = track->GetTrackID();
92 G4int parentID = track->GetParentID();
93 G4double T = track->GetGlobalTime();
94 G4double energy = track->GetTotalEnergy();
96 const G4ThreeVector& pos = track->GetPosition();
97 const G4ThreeVector& mom = track->GetMomentumDirection();
98 G4double weight = track->GetWeight();
99 G4int nElectrons = dp->GetTotalOccupancy();
100 G4double mass = dp->GetMass();
101 G4double momentum = dp->GetTotalMomentum();
103 G4int z = pd->GetAtomicNumber();
104 G4int a = pd->GetAtomicMass();
107 G4int samplerID = track->GetVolume()->GetCopyNo();
111 G4ThreeVector localPosition;
112 G4ThreeVector localDirection;
115 G4Transform3D globalToLocal = G4Transform3D::Identity;
116 G4ThreeVector globalToLocalOffset = G4ThreeVector();
117 G4bool noRotation =
true;
120 noRotation =
registry->NoRotation(samplerID);
121 globalToLocal =
registry->TransformInverse(samplerID);
122 globalToLocalOffset = globalToLocal.getTranslation();
126 localPosition = pos + globalToLocalOffset;
127 localDirection = mom;
129 else if (globalToLocal != G4Transform3D::Identity)
133 localPosition = globalToLocal * (HepGeom::Point3D<G4double>)pos;
136 localPosition.setZ(0.0);
138 localDirection = globalToLocal * (HepGeom::Vector3D<G4double>)mom;
A set of particle coordinates including energy and weight.