#include <G4Trajectory.hh>
Inheritance diagram for G4Trajectory:
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 G4VTrajectoryPoint * | GetPoint (G4int i) const |
virtual void | MergeTrajectory (G4VTrajectory *secondTrajectory) |
G4ParticleDefinition * | GetParticleDefinition () |
virtual const std::map< G4String, G4AttDef > * | GetAttDefs () const |
virtual std::vector< G4AttValue > * | CreateAttValues () const |
Definition at line 69 of file G4Trajectory.hh.
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 }
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 }
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] |
G4double G4Trajectory::GetInitialKineticEnergy | ( | ) | const [inline] |
G4ThreeVector G4Trajectory::GetInitialMomentum | ( | ) | const [inline, virtual] |
G4int G4Trajectory::GetParentID | ( | ) | const [inline, virtual] |
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] |
G4int G4Trajectory::GetPDGEncoding | ( | ) | const [inline, virtual] |
virtual G4VTrajectoryPoint* G4Trajectory::GetPoint | ( | G4int | i | ) | const [inline, virtual] |
Implements G4VTrajectory.
Reimplemented in G4RichTrajectory.
Definition at line 113 of file G4Trajectory.hh.
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().
G4int G4Trajectory::GetTrackID | ( | ) | const [inline, virtual] |
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] |
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 }