73 G4StepPoint* postStepPoint = aStep->GetPostStepPoint();
74 if(postStepPoint->GetStepStatus() != fGeomBoundary)
77 G4cout << __METHOD_NAME__ <<
"not storing as not on geometry boundary" << G4endl;
82 G4Track* track = aStep->GetTrack();
83 const G4DynamicParticle* dp = track->GetDynamicParticle();
84 G4int TrackID = track->GetTrackID();
85 G4int ParentID = track->GetParentID();
86 G4double T = track->GetGlobalTime();
87 G4double energy = track->GetTotalEnergy();
88 G4double charge = dp->GetCharge();
89 G4int turnstaken =
globals->TurnsTaken();
90 const G4ThreeVector& pos = track->GetPosition();
91 const G4ThreeVector& mom = track->GetMomentumDirection();
92 G4double weight = track->GetWeight();
93 G4int nElectrons = dp->GetTotalOccupancy();
94 G4double mass = dp->GetMass();
95 G4double rigidity = 0;
97 {rigidity =
BDS::Rigidity(track->GetMomentum().mag(), charge);}
98 G4double p = dp->GetTotalMomentum();
105 G4StepPoint* preStepPoint = aStep->GetPreStepPoint();
106 G4int samplerID = preStepPoint->GetTouchable()->GetVolume()->GetCopyNo();
109 G4ThreeVector localPosition;
110 G4ThreeVector localDirection;
114 if (globalToLocal == G4Transform3D::Identity)
117 G4cout << __METHOD_NAME__ <<
"Getting transform dynamically from geometry." << G4endl;
122 G4AffineTransform tf = preStepPoint->GetTouchableHandle()->GetHistory()->GetTopTransform();
123 localPosition = tf.TransformPoint(pos);
124 localDirection = tf.TransformAxis(mom);
130 localPosition = globalToLocal * (HepGeom::Point3D<G4double>)pos;
133 localPosition.setZ(0.0);
135 localDirection = globalToLocal * (HepGeom::Vector3D<G4double>)mom;
141 G4int PDGtype = track->GetDefinition()->GetPDGEncoding();
142 G4String pName = track->GetDefinition()->GetParticleName();
A set of particle coordinates including energy and weight.