33#include "G4ParticleTable.hh"
34#include "G4ParticleTypes.hh"
35#include "G4Polyline.hh"
38#include "G4AttDefStore.hh"
40#include "G4AttValue.hh"
41#include "G4UIcommand.hh"
42#include "G4VisAttributes.hh"
43#include "G4VVisManager.hh"
44#include "G4UnitsTable.hh"
45#include "G4DynamicParticle.hh"
46#include "G4PrimaryParticle.hh"
54 fPositionRecord(0),fParticleDefinition(0)
65 if(pp->GetCharge()<DBL_MAX)
fPDGCharge = pp->GetCharge();
67 if(pp->GetG4code()!=0)
96 delete (*fPositionRecord)[i];
106 os << G4endl <<
"TrackID =" <<
fTrackID
110 os <<
"Original momentum : " <<
115 <<
" points." << G4endl;
120 os <<
"Point[" << i <<
"]"
121 <<
" Position= " << aTrajectoryPoint->GetPosition() << G4endl;
129 G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
136 pos = aTrajectoryPoint->GetPosition();
137 pPolyline.push_back( pos );
165 pPolyline.SetVisAttributes(attribs);
166 if(pVVisManager) pVVisManager->Draw(pPolyline);
173 std::map<G4String,G4AttDef>* store
174 = G4AttDefStore::GetInstance(
"RE01Trajectory",isNew);
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>;
262 if(!secondTrajectory)
return;
268 for(
int i=1;i<ent;i++)
G4ThreadLocal G4Allocator< RE01Trajectory > * myTrajectoryAllocator
Definition of the RE01Trajectory class.
std::vector< G4VTrajectoryPoint * > RE01TrajectoryPointContainer
virtual void MergeTrajectory(G4VTrajectory *secondTrajectory)
virtual ~RE01Trajectory()
G4ThreeVector fVertexPosition
RE01TrajectoryPointContainer * fPositionRecord
RE01Trajectory(const G4Track *aTrack)
G4ParticleDefinition * fParticleDefinition
virtual void ShowTrajectory(std::ostream &os=G4cout) const
virtual int GetPointEntries() const
virtual std::vector< G4AttValue > * CreateAttValues() const
virtual void DrawTrajectory() const
virtual const std::map< G4String, G4AttDef > * GetAttDefs() const
virtual void AppendStep(const G4Step *aStep)