60 if(fParticleName==
"unknown")
69 fParticleName +=
" : ";
80 else if(fTrackStatus == 2)
95 for(i=0;i<fPositionRecord->size();i++){
96 delete (*fPositionRecord)[i];
98 fPositionRecord->clear();
100 delete fPositionRecord;
106 os <<
G4endl <<
"TrackID =" << fTrackID
107 <<
" : ParentID=" << fParentID <<
" : TrackStatus=" << fTrackStatus <<
G4endl;
108 os <<
"Particle name : " << fParticleName <<
" PDG code : " << fPDGEncoding
109 <<
" Charge : " << fPDGCharge <<
G4endl;
110 os <<
"Original momentum : " <<
112 os <<
"Vertex : " <<
G4BestUnit(fVertexPosition,
"Length")
114 os <<
" Current trajectory has " << fPositionRecord->size()
117 for(
size_t i=0 ; i < fPositionRecord->size() ; i++){
120 os <<
"Point[" << i <<
"]"
133 for (
size_t i = 0; i < fPositionRecord->size() ; i++) {
137 pPolyline.push_back( pos );
166 if(pVVisManager) pVVisManager->
Draw(pPolyline);
173 std::map<G4String,G4AttDef>* store
178 (*store)[id] =
G4AttDef(
id,
"Track ID",
"Bookkeeping",
"",
"G4int");
181 (*store)[pid] =
G4AttDef(pid,
"Parent ID",
"Bookkeeping",
"",
"G4int");
184 (*store)[status] =
G4AttDef(status,
"Track Status",
"Bookkeeping",
"",
"G4int");
187 (*store)[
pn] =
G4AttDef(pn,
"Particle Name",
"Bookkeeping",
"",
"G4String");
190 (*store)[ch] =
G4AttDef(ch,
"Charge",
"Physics",
"e+",
"G4double");
193 (*store)[pdg] =
G4AttDef(pdg,
"PDG Encoding",
"Bookkeeping",
"",
"G4int");
196 (*store)[imom] =
G4AttDef(imom,
"Momentum of track at start of trajectory",
197 "Physics",
"G4BestUnit",
"G4ThreeVector");
201 G4AttDef(imag,
"Magnitude of momentum of track at start of trajectory",
202 "Physics",
"G4BestUnit",
"G4double");
205 (*store)[vtxPos] =
G4AttDef(vtxPos,
"Vertex position",
206 "Physics",
"G4BestUnit",
"G4ThreeVector");
209 (*store)[ntp] =
G4AttDef(ntp,
"No. of points",
"Bookkeeping",
"",
"G4int");
218 std::vector<G4AttValue>* values =
new std::vector<G4AttValue>;
229 values->push_back(
G4AttValue(
"PN",fParticleName,
""));
255 fPositionRecord->push_back(
262 if(!secondTrajectory)
return;
268 for(
int i=1;i<ent;i++)
270 fPositionRecord->push_back((*(seco->fPositionRecord))[i]);
272 delete (*seco->fPositionRecord)[0];
273 seco->fPositionRecord->clear();