G4Trajectory Class Reference

#include <G4Trajectory.hh>

Inheritance diagram for G4Trajectory:

G4VTrajectory G4RichTrajectory

Public Member Functions

 G4Trajectory ()
 G4Trajectory (const G4Track *aTrack)
 G4Trajectory (G4Trajectory &)
virtual ~G4Trajectory ()
void * operator new (size_t)
void operator delete (void *)
int operator== (const G4Trajectory &right) const
G4int GetTrackID () const
G4int GetParentID () const
G4String GetParticleName () const
G4double GetCharge () const
G4int GetPDGEncoding () const
G4double GetInitialKineticEnergy () const
G4ThreeVector GetInitialMomentum () const
virtual void ShowTrajectory (std::ostream &os=G4cout) const
virtual void DrawTrajectory (G4int i_mode=0) const
virtual void AppendStep (const G4Step *aStep)
virtual int GetPointEntries () const
virtual G4VTrajectoryPointGetPoint (G4int i) const
virtual void MergeTrajectory (G4VTrajectory *secondTrajectory)
G4ParticleDefinitionGetParticleDefinition ()
virtual const std::map< G4String,
G4AttDef > * 
GetAttDefs () const
virtual std::vector< G4AttValue > * CreateAttValues () const

Detailed Description

Definition at line 69 of file G4Trajectory.hh.


Constructor & Destructor Documentation

G4Trajectory::G4Trajectory (  ) 

Definition at line 57 of file G4Trajectory.cc.

00058 :  positionRecord(0), fTrackID(0), fParentID(0),
00059    PDGEncoding( 0 ), PDGCharge(0.0), ParticleName(""),
00060    initialKineticEnergy( 0. ), initialMomentum( G4ThreeVector() )
00061 {;}

G4Trajectory::G4Trajectory ( const G4Track aTrack  ) 

Definition at line 63 of file G4Trajectory.cc.

References G4Track::GetDefinition(), G4Track::GetKineticEnergy(), G4Track::GetMomentum(), G4Track::GetParentID(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetPDGEncoding(), G4Track::GetPosition(), and G4Track::GetTrackID().

00064 {
00065    G4ParticleDefinition * fpParticleDefinition = aTrack->GetDefinition();
00066    ParticleName = fpParticleDefinition->GetParticleName();
00067    PDGCharge = fpParticleDefinition->GetPDGCharge();
00068    PDGEncoding = fpParticleDefinition->GetPDGEncoding();
00069    fTrackID = aTrack->GetTrackID();
00070    fParentID = aTrack->GetParentID();
00071    initialKineticEnergy = aTrack->GetKineticEnergy();
00072    initialMomentum = aTrack->GetMomentum();
00073    positionRecord = new TrajectoryPointContainer();
00074    // Following is for the first trajectory point
00075    positionRecord->push_back(new G4TrajectoryPoint(aTrack->GetPosition()));
00076 }

G4Trajectory::G4Trajectory ( G4Trajectory  ) 

Definition at line 78 of file G4Trajectory.cc.

References fParentID, fTrackID, initialKineticEnergy, initialMomentum, ParticleName, PDGCharge, PDGEncoding, and positionRecord.

00078                                               :G4VTrajectory()
00079 {
00080   ParticleName = right.ParticleName;
00081   PDGCharge = right.PDGCharge;
00082   PDGEncoding = right.PDGEncoding;
00083   fTrackID = right.fTrackID;
00084   fParentID = right.fParentID;
00085   initialKineticEnergy = right.initialKineticEnergy;
00086   initialMomentum = right.initialMomentum;
00087   positionRecord = new TrajectoryPointContainer();
00088 
00089   for(size_t i=0;i<right.positionRecord->size();i++)
00090   {
00091     G4TrajectoryPoint* rightPoint = (G4TrajectoryPoint*)((*(right.positionRecord))[i]);
00092     positionRecord->push_back(new G4TrajectoryPoint(*rightPoint));
00093   }
00094 }

G4Trajectory::~G4Trajectory (  )  [virtual]

Definition at line 96 of file G4Trajectory.cc.

00097 {
00098   if (positionRecord) {
00099     //  positionRecord->clearAndDestroy();
00100     size_t i;
00101     for(i=0;i<positionRecord->size();i++){
00102       delete  (*positionRecord)[i];
00103     }
00104     positionRecord->clear();
00105     delete positionRecord;
00106   }
00107 }


Member Function Documentation

void G4Trajectory::AppendStep ( const G4Step aStep  )  [virtual]

Implements G4VTrajectory.

Reimplemented in G4RichTrajectory.

Definition at line 212 of file G4Trajectory.cc.

References G4Step::GetPostStepPoint().

00213 {
00214    positionRecord->push_back( new G4TrajectoryPoint(aStep->GetPostStepPoint()->
00215                                  GetPosition() ));
00216 }

std::vector< G4AttValue > * G4Trajectory::CreateAttValues (  )  const [virtual]

Reimplemented from G4VTrajectory.

Reimplemented in G4RichTrajectory.

Definition at line 175 of file G4Trajectory.cc.

References G4UIcommand::ConvertToString(), G4BestUnit, G4cout, GetAttDefs(), and GetPointEntries().

Referenced by G4RichTrajectory::CreateAttValues().

00176 {
00177   std::vector<G4AttValue>* values = new std::vector<G4AttValue>;
00178 
00179   values->push_back
00180     (G4AttValue("ID",G4UIcommand::ConvertToString(fTrackID),""));
00181 
00182   values->push_back
00183     (G4AttValue("PID",G4UIcommand::ConvertToString(fParentID),""));
00184 
00185   values->push_back(G4AttValue("PN",ParticleName,""));
00186 
00187   values->push_back
00188     (G4AttValue("Ch",G4UIcommand::ConvertToString(PDGCharge),""));
00189 
00190   values->push_back
00191     (G4AttValue("PDG",G4UIcommand::ConvertToString(PDGEncoding),""));
00192 
00193   values->push_back
00194     (G4AttValue("IKE",G4BestUnit(initialKineticEnergy,"Energy"),""));
00195 
00196   values->push_back
00197     (G4AttValue("IMom",G4BestUnit(initialMomentum,"Energy"),""));
00198 
00199   values->push_back
00200     (G4AttValue("IMag",G4BestUnit(initialMomentum.mag(),"Energy"),""));
00201 
00202   values->push_back
00203     (G4AttValue("NTP",G4UIcommand::ConvertToString(GetPointEntries()),""));
00204 
00205 #ifdef G4ATTDEBUG
00206   G4cout << G4AttCheck(values,GetAttDefs());
00207 #endif
00208 
00209   return values;
00210 }

void G4Trajectory::DrawTrajectory ( G4int  i_mode = 0  )  const [virtual]

Reimplemented from G4VTrajectory.

Definition at line 125 of file G4Trajectory.cc.

References G4VTrajectory::DrawTrajectory().

00126 {
00127   // Invoke the default implementation in G4VTrajectory...
00128   G4VTrajectory::DrawTrajectory(i_mode);
00129   // ... or override with your own code here.
00130 }

const std::map< G4String, G4AttDef > * G4Trajectory::GetAttDefs (  )  const [virtual]

Reimplemented from G4VTrajectory.

Reimplemented in G4RichTrajectory.

Definition at line 132 of file G4Trajectory.cc.

References G4AttDefStore::GetInstance().

Referenced by CreateAttValues(), and G4RichTrajectory::GetAttDefs().

00133 {
00134   G4bool isNew;
00135   std::map<G4String,G4AttDef>* store
00136     = G4AttDefStore::GetInstance("G4Trajectory",isNew);
00137   if (isNew) {
00138 
00139     G4String ID("ID");
00140     (*store)[ID] = G4AttDef(ID,"Track ID","Physics","","G4int");
00141 
00142     G4String PID("PID");
00143     (*store)[PID] = G4AttDef(PID,"Parent ID","Physics","","G4int");
00144 
00145     G4String PN("PN");
00146     (*store)[PN] = G4AttDef(PN,"Particle Name","Physics","","G4String");
00147 
00148     G4String Ch("Ch");
00149     (*store)[Ch] = G4AttDef(Ch,"Charge","Physics","e+","G4double");
00150 
00151     G4String PDG("PDG");
00152     (*store)[PDG] = G4AttDef(PDG,"PDG Encoding","Physics","","G4int");
00153 
00154     G4String IKE("IKE");
00155     (*store)[IKE] = 
00156       G4AttDef(IKE, "Initial kinetic energy",
00157                "Physics","G4BestUnit","G4double");
00158 
00159     G4String IMom("IMom");
00160     (*store)[IMom] = G4AttDef(IMom, "Initial momentum",
00161                               "Physics","G4BestUnit","G4ThreeVector");
00162 
00163     G4String IMag("IMag");
00164     (*store)[IMag] = 
00165       G4AttDef(IMag, "Initial momentum magnitude",
00166                "Physics","G4BestUnit","G4double");
00167 
00168     G4String NTP("NTP");
00169     (*store)[NTP] = G4AttDef(NTP,"No. of points","Physics","","G4int");
00170 
00171   }
00172   return store;
00173 }

G4double G4Trajectory::GetCharge (  )  const [inline, virtual]

Implements G4VTrajectory.

Definition at line 98 of file G4Trajectory.hh.

00099    { return PDGCharge; }

G4double G4Trajectory::GetInitialKineticEnergy (  )  const [inline]

Definition at line 102 of file G4Trajectory.hh.

00103    { return initialKineticEnergy; }

G4ThreeVector G4Trajectory::GetInitialMomentum (  )  const [inline, virtual]

Implements G4VTrajectory.

Definition at line 104 of file G4Trajectory.hh.

00105    { return initialMomentum; }

G4int G4Trajectory::GetParentID (  )  const [inline, virtual]

Implements G4VTrajectory.

Definition at line 94 of file G4Trajectory.hh.

00095    { return fParentID; }

G4ParticleDefinition * G4Trajectory::GetParticleDefinition (  ) 

Definition at line 218 of file G4Trajectory.cc.

References G4ParticleTable::GetParticleTable().

00219 {
00220    return (G4ParticleTable::GetParticleTable()->FindParticle(ParticleName));
00221 }

G4String G4Trajectory::GetParticleName (  )  const [inline, virtual]

Implements G4VTrajectory.

Definition at line 96 of file G4Trajectory.hh.

00097    { return ParticleName; }

G4int G4Trajectory::GetPDGEncoding (  )  const [inline, virtual]

Implements G4VTrajectory.

Definition at line 100 of file G4Trajectory.hh.

00101    { return PDGEncoding; }

virtual G4VTrajectoryPoint* G4Trajectory::GetPoint ( G4int  i  )  const [inline, virtual]

Implements G4VTrajectory.

Reimplemented in G4RichTrajectory.

Definition at line 113 of file G4Trajectory.hh.

00114    { return (*positionRecord)[i]; }

virtual int G4Trajectory::GetPointEntries (  )  const [inline, virtual]

Implements G4VTrajectory.

Reimplemented in G4RichTrajectory.

Definition at line 112 of file G4Trajectory.hh.

Referenced by CreateAttValues(), and MergeTrajectory().

00112 { return positionRecord->size(); }

G4int G4Trajectory::GetTrackID (  )  const [inline, virtual]

Implements G4VTrajectory.

Definition at line 92 of file G4Trajectory.hh.

00093    { return fTrackID; }

void G4Trajectory::MergeTrajectory ( G4VTrajectory secondTrajectory  )  [virtual]

Implements G4VTrajectory.

Reimplemented in G4RichTrajectory.

Definition at line 223 of file G4Trajectory.cc.

References GetPointEntries(), and positionRecord.

00224 {
00225   if(!secondTrajectory) return;
00226 
00227   G4Trajectory* seco = (G4Trajectory*)secondTrajectory;
00228   G4int ent = seco->GetPointEntries();
00229   for(G4int i=1;i<ent;i++) // initial point of the second trajectory should not be merged
00230   { 
00231     positionRecord->push_back((*(seco->positionRecord))[i]);
00232     //    positionRecord->push_back(seco->positionRecord->removeAt(1));
00233   }
00234   delete (*seco->positionRecord)[0];
00235   seco->positionRecord->clear();
00236 }

void G4Trajectory::operator delete ( void *   )  [inline]

Reimplemented in G4RichTrajectory.

Definition at line 150 of file G4Trajectory.hh.

References aTrajectoryAllocator.

00151 {
00152   aTrajectoryAllocator.FreeSingle((G4Trajectory*)aTrajectory);
00153 }

void * G4Trajectory::operator new ( size_t   )  [inline]

Reimplemented in G4RichTrajectory.

Definition at line 143 of file G4Trajectory.hh.

References aTrajectoryAllocator.

00144 {
00145   void* aTrajectory;
00146   aTrajectory = (void*)aTrajectoryAllocator.MallocSingle();
00147   return aTrajectory;
00148 }

int G4Trajectory::operator== ( const G4Trajectory right  )  const [inline]

Definition at line 88 of file G4Trajectory.hh.

00089    {return (this==&right);} 

void G4Trajectory::ShowTrajectory ( std::ostream &  os = G4cout  )  const [virtual]

Reimplemented from G4VTrajectory.

Definition at line 109 of file G4Trajectory.cc.

References G4VTrajectory::ShowTrajectory().

00110 {
00111   // Invoke the default implementation in G4VTrajectory...
00112   G4VTrajectory::ShowTrajectory(os);
00113   // ... or override with your own code here.
00114 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:33 2013 for Geant4 by  doxygen 1.4.7