Record simulated data.
117 if (GetSilent() == 1)
120 G4TouchableHandle handle = fStep->GetPreStepPoint()->GetTouchableHandle();
121 int copyNo = handle->GetReplicaNumber();
124 if (
trk.size() >= 10000) {
125 G4cout <<
"GEARS: # of step points >=10000. Recording stopped." << G4endl;
126 fTrack->SetTrackStatus(fKillTrackAndSecondaries);
130 trk.push_back(fTrack->GetTrackID());
131 stp.push_back(fTrack->GetCurrentStepNumber());
132 vlm.push_back(copyNo);
133 pdg.push_back(fTrack->GetDefinition()->GetPDGEncoding());
134 pid.push_back(fTrack->GetParentID());
135 if (
stp.back() == 0) {
137 pro.push_back(fTrack->GetCreatorProcess()->GetProcessType() * 1000 +
138 fTrack->GetCreatorProcess()->GetProcessSubType());
142 const G4VProcess *pr = fStep->GetPostStepPoint()->GetProcessDefinedStep();
144 pro.push_back(pr->GetProcessType() * 1000 + pr->GetProcessSubType());
149 k.push_back(fTrack->GetKineticEnergy() / CLHEP::keV);
150 p.push_back(fTrack->GetMomentum().mag() / CLHEP::keV);
151 q.push_back(fStep->GetPostStepPoint()->GetCharge());
152 l.push_back(fTrack->GetTrackLength() / CLHEP::mm);
154 px.push_back(fTrack->GetMomentumDirection().x());
155 py.push_back(fTrack->GetMomentumDirection().y());
156 pz.push_back(fTrack->GetMomentumDirection().z());
157 de.push_back(fStep->GetTotalEnergyDeposit() / CLHEP::keV);
158 dl.push_back(fTrack->GetStepLength() / CLHEP::mm);
160 t.push_back(fTrack->GetGlobalTime() / CLHEP::ns);
161 x.push_back(fTrack->GetPosition().x() / CLHEP::mm);
162 y.push_back(fTrack->GetPosition().y() / CLHEP::mm);
163 z.push_back(fTrack->GetPosition().z() / CLHEP::mm);
165 G4ThreeVector pos = handle->GetHistory()->GetTopTransform().TransformPoint(
166 fStep->GetPostStepPoint()->GetPosition());
167 xx.push_back(pos.x() / CLHEP::mm);
168 yy.push_back(pos.y() / CLHEP::mm);
169 zz.push_back(pos.z() / CLHEP::mm);
170 dt.push_back(fTrack->GetLocalTime() / CLHEP::ns);
173 G4StrUtil::contains(handle->GetVolume()->GetName(),
"(S)")) {
174 if (
et.size() < (
unsigned int)copyNo + 1)
175 et.resize((
unsigned int)copyNo + 1);
176 et[copyNo] +=
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