58 : fpPointsContainer(0), fTrackID(0), fParentID(0),
59 PDGCharge(0.0), PDGEncoding(0), ParticleName(
""),
67 particleDefinition = NULL;
91 particleDefinition=right.particleDefinition;
92 ParticleName = right.ParticleName;
93 PDGCharge = right.PDGCharge;
94 PDGEncoding = right.PDGEncoding;
95 fTrackID = right.fTrackID;
96 fParentID = right.fParentID;
97 initialMomentum = right.initialMomentum;
100 for(
size_t i=0;i<right.fpPointsContainer->size();++i) {
107 drawit = right.drawit;
108 forceNoDraw = right.forceNoDraw;
109 forceDraw = right.forceDraw;
114 for(
size_t i=0;i<fpPointsContainer->size();++i){
115 delete (*fpPointsContainer)[i];
117 fpPointsContainer->clear();
119 delete fpPointsContainer;
145 if (!forceDraw && (!drawit || forceNoDraw))
return;
154 if (!pVVisManager)
return;
156 const G4double markerSize = std::abs(i_mode)/1000;
157 G4bool lineRequired (i_mode >= 0);
158 G4bool markersRequired (markerSize > 0.);
166 const std::vector<G4ThreeVector>* auxiliaries
169 for (
size_t iAux = 0; iAux < auxiliaries->size(); ++iAux) {
172 trajectoryLine.push_back(pos);
174 if (markersRequired) {
175 auxiliaryPoints.push_back(pos);
181 trajectoryLine.push_back(pos);
183 if (markersRequired) {
184 stepPoints.push_back(pos);
203 pVVisManager->
Draw(trajectoryLine);
205 if (markersRequired) {
211 pVVisManager->
Draw(auxiliaryPoints);
218 pVVisManager->
Draw(stepPoints);
234 if(!secondTrajectory)
return;
239 for(
G4int i=1; i<ent; ++i) {
240 fpPointsContainer->push_back((*(second->fpPointsContainer))[i]);
242 delete (*second->fpPointsContainer)[0];
243 second->fpPointsContainer->clear();
249 std::map<G4String,G4AttDef>* store
255 (*store)[ID] =
G4AttDef(ID,
"Track ID",
"Bookkeeping",
"",
"G4int");
258 (*store)[PID] =
G4AttDef(PID,
"Parent ID",
"Bookkeeping",
"",
"G4int");
261 (*store)[PN] =
G4AttDef(PN,
"Particle Name",
"Physics",
"",
"G4String");
264 (*store)[Ch] =
G4AttDef(Ch,
"Charge",
"Physics",
"e+",
"G4double");
267 (*store)[PDG] =
G4AttDef(PDG,
"PDG Encoding",
"Physics",
"",
"G4int");
271 "Momentum of track at start of trajectory",
272 "Physics",
"G4BestUnit",
"G4ThreeVector");
276 "Magnitude of momentum of track at start of trajectory",
277 "Physics",
"G4BestUnit",
"G4double");
280 (*store)[NTP] =
G4AttDef(NTP,
"No. of points",
"Bookkeeping",
"",
"G4int");
288 std::vector<G4AttValue>* values =
new std::vector<G4AttValue>;
296 values->push_back(
G4AttValue(
"PN",ParticleName,
""));