69 G4StepPoint* postStepPoint = aStep->GetPostStepPoint();
70 if (postStepPoint->GetStepStatus() != fGeomBoundary)
73 G4Track* track = aStep->GetTrack();
74 const G4DynamicParticle* dp = track->GetDynamicParticle();
75 G4double charge = dp->GetCharge();
76 auto pd = dp->GetParticleDefinition();
79 G4double ek = track->GetKineticEnergy();
83 G4int PDGtype = pd->GetPDGEncoding();
90 G4int trackID = track->GetTrackID();
91 G4int parentID = track->GetParentID();
92 G4double T = track->GetGlobalTime();
93 G4double energy = track->GetTotalEnergy();
95 const G4ThreeVector& pos = track->GetPosition();
96 const G4ThreeVector& mom = track->GetMomentumDirection();
97 G4double weight = track->GetWeight();
98 G4int nElectrons = dp->GetTotalOccupancy();
99 G4double mass = dp->GetMass();
100 G4double momentum = dp->GetTotalMomentum();
102 G4int z = pd->GetAtomicNumber();
103 G4int a = pd->GetAtomicMass();
106 G4int samplerID = track->GetVolume()->GetCopyNo();
110 G4ThreeVector localPosition;
111 G4ThreeVector localDirection;
114 G4Transform3D globalToLocal = G4Transform3D::Identity;
115 G4ThreeVector globalToLocalOffset = G4ThreeVector();
116 G4bool noRotation =
true;
119 noRotation =
registry->NoRotation(samplerID);
120 globalToLocal =
registry->TransformInverse(samplerID);
121 globalToLocalOffset = globalToLocal.getTranslation();
125 localPosition = pos + globalToLocalOffset;
126 localDirection = mom;
128 else if (globalToLocal != G4Transform3D::Identity)
132 localPosition = globalToLocal * (HepGeom::Point3D<G4double>)pos;
135 localPosition.setZ(0.0);
137 localDirection = globalToLocal * (HepGeom::Vector3D<G4double>)mom;
A set of particle coordinates including energy and weight.