41 #include "G4ParticleDefinition.hh"
42 #include "G4TrajectoryPoint.hh"
43 #include "G4Polyline.hh"
44 #include "G4ParticleTable.hh"
45 #include "G4UnitsTable.hh"
46 #include "G4VVisManager.hh"
47 #include "G4VisAttributes.hh"
49 #include "G4Electron.hh"
50 #include "G4Positron.hh"
51 #include "G4Neutron.hh"
52 #include "G4Proton.hh"
53 #include "G4OpticalPhoton.hh"
62 G4cout << G4endl <<
"###### Calling QweakSimTrajectory::QweakSimTrajectory()" << G4endl << G4endl;
81 G4cout << G4endl <<
"###### Leaving QweakSimTrajectory::QweakSimTrajectory()" << G4endl << G4endl;
97 positionRecord -> push_back(
new G4TrajectoryPoint(aTrack->GetPosition()));
122 G4TrajectoryPoint* rightPoint = (G4TrajectoryPoint*)((*(right.
positionRecord))[i]);
137 delete (*positionRecord)[i];
148 os << G4endl <<
"TrackID =" <<
fTrackID
149 <<
" : ParentID=" <<
fParentID << G4endl;
154 os <<
"Original momentum : " <<
155 G4BestUnit(
momentum,
"Energy") << G4endl;
158 <<
" Global time : " << G4BestUnit(
globalTime,
"Time") << G4endl;
161 <<
" points." << G4endl;
164 G4TrajectoryPoint* aTrajectoryPoint = (G4TrajectoryPoint*)((*
positionRecord)[i]);
166 G4cout <<
"Point[" << i <<
"]" <<
" Position= " << aTrajectoryPoint->GetPosition() << G4endl;
171 #if G4VERSION_NUMBER < 1000
191 G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
194 G4Polyline pPolyline;
196 for (
int i = 0; i < (int) positionRecord->size() ; i++) {
198 G4TrajectoryPoint* aTrajectoryPoint = (G4TrajectoryPoint*)((*positionRecord)[i]);
199 pos = aTrajectoryPoint->GetPosition();
200 pPolyline.push_back( pos );
204 G4Colour colour(0.75,0.75,0.75);
206 G4Colour red ( 255/255., 0/255., 0/255.);
207 G4Colour blue ( 0/255., 0/255., 255/255.);
208 G4Colour green ( 0/255., 255/255., 0/255.);
209 G4Colour yellow ( 255/255., 255/255., 0/255.);
211 G4Colour white ( 255/255., 255/255., 255/255.);
213 G4Colour orange ( 255/255., 127/255., 0/255.);
214 G4Colour magenta ( 237/255., 173/255., 255/255.);
215 G4Colour magenta1 ( 104/255., 49/255., 94/255.);
220 if ( PDGCharge < 0.) {colour = red;}
221 else if ( PDGCharge > 0.) {colour = blue;}
228 if (fpParticleDefinition == G4Gamma ::GammaDefinition() ) {
231 if (fpParticleDefinition == G4Electron ::ElectronDefinition() )
237 if (fpParticleDefinition == G4Positron ::PositronDefinition() )
261 if( fpParticleDefinition == G4Neutron ::NeutronDefinition())
266 if( fpParticleDefinition == G4Proton ::ProtonDefinition())
271 if( fpParticleDefinition == G4OpticalPhoton ::OpticalPhotonDefinition())
277 G4VisAttributes attribs(colour);
278 pPolyline.SetVisAttributes(attribs);
281 pVVisManager->Draw(pPolyline);
290 positionRecord->push_back(
new G4TrajectoryPoint(aStep->GetPostStepPoint()->GetPosition() ));
296 return (G4ParticleTable::GetParticleTable()->FindParticle(
ParticleName));
302 if(!secondTrajectory)
return;
307 for(
int i=1;i<ent;i++)
Stores the information about the various tracks.
G4ThreeVector vertexPosition
G4ParticleDefinition * fpParticleDefinition
virtual void MergeTrajectory(G4VTrajectory *secondTrajectory)
virtual ~QweakSimTrajectory()
std::vector< G4VTrajectoryPoint * > QweakSimTrajectoryPointContainer
virtual void DrawTrajectory(G4int i_mode=0) const
G4ParticleDefinition * GetParticleDefinition()
G4Allocator< QweakSimTrajectory > myTrajectoryAllocator
virtual void AppendStep(const G4Step *aStep)
virtual int GetPointEntries() const
virtual void ShowTrajectory(std::ostream &os=G4cout) const
QweakSimTrajectoryPointContainer * positionRecord