Record simulated data.
98 G4TouchableHandle handle = fStep->GetPreStepPoint()->GetTouchableHandle();
99 int copyNo=handle->GetReplicaNumber();
100 if (copyNo<=0)
return;
101 if (
trk.size()>=10000) {
102 G4cout<<
"GEARS: # of step points >=10000. Recording stopped."<<G4endl;
103 fTrack->SetTrackStatus(fKillTrackAndSecondaries);
107 trk.push_back(fTrack->GetTrackID());
108 stp.push_back(fTrack->GetCurrentStepNumber());
109 vlm.push_back(copyNo);
110 pdg.push_back(fTrack->GetDefinition()->GetPDGEncoding());
111 pid.push_back(fTrack->GetParentID());
114 pro.push_back(fTrack->GetCreatorProcess()->GetProcessType()*1000
115 + fTrack->GetCreatorProcess()->GetProcessSubType());
116 else pro.push_back(1000);
118 const G4VProcess *pr = fStep->GetPostStepPoint()->GetProcessDefinedStep();
119 if (pr)
pro.push_back(pr->GetProcessType()*1000 + pr->GetProcessSubType());
120 else pro.push_back(900);
123 k.push_back(fTrack->GetKineticEnergy()/CLHEP::keV);
124 p.push_back(fTrack->GetMomentum().mag()/CLHEP::keV);
125 q.push_back(fStep->GetPostStepPoint()->GetCharge());
126 l.push_back(fTrack->GetTrackLength()/CLHEP::mm);
128 px.push_back(fTrack->GetMomentumDirection().x());
129 py.push_back(fTrack->GetMomentumDirection().y());
130 pz.push_back(fTrack->GetMomentumDirection().z());
131 de.push_back(fStep->GetTotalEnergyDeposit()/CLHEP::keV);
132 dl.push_back(fTrack->GetStepLength()/CLHEP::mm);
134 t.push_back(fTrack->GetGlobalTime()/CLHEP::ns);
135 x.push_back(fTrack->GetPosition().x()/CLHEP::mm);
136 y.push_back(fTrack->GetPosition().y()/CLHEP::mm);
137 z.push_back(fTrack->GetPosition().z()/CLHEP::mm);
139 G4ThreeVector pos = handle->GetHistory()->GetTopTransform()
140 .TransformPoint(fStep->GetPostStepPoint()->GetPosition());
141 xx.push_back(pos.x()/CLHEP::mm);
142 yy.push_back(pos.y()/CLHEP::mm);
143 zz.push_back(pos.z()/CLHEP::mm);
144 dt.push_back(fTrack->GetLocalTime()/CLHEP::ns);
146 if (
de.back()>0 && G4StrUtil::contains(handle->GetVolume()->GetName(),
"(S)")) {
147 if (
et.size()<(
unsigned int)copyNo+1)
et.resize((
unsigned int)copyNo+1);
148 et[copyNo]+=
de.back();
et[0]+=
de.back();
vector< double > l
length of track till this point [mm]
vector< double > p
momentum [keV]
vector< double > zz
z [mm] (origin: center of local volume)
vector< int > pid
parent particle's PDG encoding
vector< double > yy
y [mm] (origin: center of local volume)
vector< int > pdg
PDG encoding.
vector< double > q
charge [elementary charge]
vector< double > px
x component of momentum direction
vector< double > k
kinetic energy [keV]
vector< double > dt
time elapsed from previous step point [ns]
vector< double > z
z [mm] (origin: center of the world)
vector< double > py
y component of momentum direction
vector< double > dl
step length [mm]
vector< double > x
x [mm] (origin: center of the world)
vector< double > et
Total energy deposited in a volume [keV].
vector< double > y
y [mm] (origin: center of the world)
vector< double > de
energy deposited [keV]
vector< double > xx
x [mm] (origin: center of local volume)
vector< double > t
time elapsed from the beginning of an event [ns]
vector< int > vlm
volume copy number
vector< int > stp
step number
vector< int > trk
track ID
vector< int > pro
process ID * 100 + sub-process ID
vector< double > pz
z component of momentum direction