Geant4-11
Public Member Functions | Private Types | Private Attributes
G4Trajectory Class Reference

#include <G4Trajectory.hh>

Inheritance diagram for G4Trajectory:
G4VTrajectory G4RichTrajectory

Public Member Functions

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

Private Types

using G4TrajectoryPointContainer = std::vector< G4VTrajectoryPoint * >
 

Private Attributes

G4int fParentID = 0
 
G4int fTrackID = 0
 
G4double initialKineticEnergy = 0.0
 
G4ThreeVector initialMomentum
 
G4String ParticleName = ""
 
G4double PDGCharge = 0.0
 
G4int PDGEncoding = 0
 
G4TrajectoryPointContainer * positionRecord = nullptr
 

Detailed Description

Definition at line 61 of file G4Trajectory.hh.

Member Typedef Documentation

◆ G4TrajectoryPointContainer

Definition at line 64 of file G4Trajectory.hh.

Constructor & Destructor Documentation

◆ G4Trajectory() [1/3]

G4Trajectory::G4Trajectory ( )

Definition at line 55 of file G4Trajectory.cc.

57{
58}
CLHEP::Hep3Vector G4ThreeVector
G4ThreeVector initialMomentum

◆ G4Trajectory() [2/3]

G4Trajectory::G4Trajectory ( const G4Track *  aTrack)

Definition at line 60 of file G4Trajectory.cc.

61{
62 G4ParticleDefinition* fpParticleDefinition = aTrack->GetDefinition();
63 ParticleName = fpParticleDefinition->GetParticleName();
64 PDGCharge = fpParticleDefinition->GetPDGCharge();
65 PDGEncoding = fpParticleDefinition->GetPDGEncoding();
66 fTrackID = aTrack->GetTrackID();
67 fParentID = aTrack->GetParentID();
69 initialMomentum = aTrack->GetMomentum();
71
72 // Following is for the first trajectory point
73 positionRecord->push_back(new G4TrajectoryPoint(aTrack->GetPosition()));
74}
G4double GetPDGCharge() const
const G4String & GetParticleName() const
G4int GetTrackID() const
const G4ThreeVector & GetPosition() const
G4ThreeVector GetMomentum() const
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
G4int GetParentID() const
G4double PDGCharge
std::vector< G4VTrajectoryPoint * > G4TrajectoryPointContainer
Definition: G4Trajectory.hh:64
G4double initialKineticEnergy
G4TrajectoryPointContainer * positionRecord
G4String ParticleName

References fParentID, fTrackID, G4Track::GetDefinition(), G4Track::GetKineticEnergy(), G4Track::GetMomentum(), G4Track::GetParentID(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetPDGEncoding(), G4Track::GetPosition(), G4Track::GetTrackID(), initialKineticEnergy, initialMomentum, ParticleName, PDGCharge, PDGEncoding, and positionRecord.

◆ G4Trajectory() [3/3]

G4Trajectory::G4Trajectory ( G4Trajectory &  right)

Definition at line 76 of file G4Trajectory.cc.

78{
80 PDGCharge = right.PDGCharge;
82 fTrackID = right.fTrackID;
83 fParentID = right.fParentID;
87
88 for(std::size_t i=0; i<right.positionRecord->size(); ++i)
89 {
90 G4TrajectoryPoint* rightPoint
91 = (G4TrajectoryPoint*)((*(right.positionRecord))[i]);
92 positionRecord->push_back(new G4TrajectoryPoint(*rightPoint));
93 }
94}

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

◆ ~G4Trajectory()

G4Trajectory::~G4Trajectory ( )
virtual

Definition at line 96 of file G4Trajectory.cc.

97{
98 if (positionRecord != nullptr)
99 {
100 for(std::size_t i=0; i<positionRecord->size(); ++i)
101 {
102 delete (*positionRecord)[i];
103 }
104 positionRecord->clear();
105 delete positionRecord;
106 }
107}

References positionRecord.

Member Function Documentation

◆ AppendStep()

void G4Trajectory::AppendStep ( const G4Step *  aStep)
virtual

Implements G4VTrajectory.

Reimplemented in G4RichTrajectory.

Definition at line 205 of file G4Trajectory.cc.

206{
207 positionRecord->push_back( new G4TrajectoryPoint(aStep->GetPostStepPoint()->
208 GetPosition()) );
209}
G4StepPoint * GetPostStepPoint() const

References G4Step::GetPostStepPoint(), and positionRecord.

◆ CreateAttValues()

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

Reimplemented from G4VTrajectory.

Reimplemented in G4RichTrajectory.

Definition at line 168 of file G4Trajectory.cc.

169{
170 std::vector<G4AttValue>* values = new std::vector<G4AttValue>;
171
172 values->push_back
174
175 values->push_back
177
178 values->push_back(G4AttValue("PN",ParticleName,""));
179
180 values->push_back
182
183 values->push_back
185
186 values->push_back
187 (G4AttValue("IKE",G4BestUnit(initialKineticEnergy,"Energy"),""));
188
189 values->push_back
190 (G4AttValue("IMom",G4BestUnit(initialMomentum,"Energy"),""));
191
192 values->push_back
193 (G4AttValue("IMag",G4BestUnit(initialMomentum.mag(),"Energy"),""));
194
195 values->push_back
197
198#ifdef G4ATTDEBUG
199 G4cout << G4AttCheck(values,GetAttDefs());
200#endif
201
202 return values;
203}
#define G4BestUnit(a, b)
G4GLOB_DLL std::ostream G4cout
double mag() const
virtual G4int GetPointEntries() const
virtual const std::map< G4String, G4AttDef > * GetAttDefs() const
static G4String ConvertToString(G4bool boolVal)
Definition: G4UIcommand.cc:445

References G4UIcommand::ConvertToString(), fParentID, fTrackID, G4BestUnit, G4cout, GetAttDefs(), GetPointEntries(), initialKineticEnergy, initialMomentum, CLHEP::Hep3Vector::mag(), ParticleName, PDGCharge, and PDGEncoding.

Referenced by G4RichTrajectory::CreateAttValues().

◆ DrawTrajectory()

void G4Trajectory::DrawTrajectory ( ) const
virtual

Reimplemented from G4VTrajectory.

Reimplemented in G4RichTrajectory.

Definition at line 117 of file G4Trajectory.cc.

118{
119 // Invoke the default implementation in G4VTrajectory...
121
122 // ... or override with your own code here.
123}
virtual void DrawTrajectory() const

References G4VTrajectory::DrawTrajectory().

◆ GetAttDefs()

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

Reimplemented from G4VTrajectory.

Reimplemented in G4RichTrajectory.

Definition at line 125 of file G4Trajectory.cc.

126{
127 G4bool isNew;
128 std::map<G4String,G4AttDef>* store
129 = G4AttDefStore::GetInstance("G4Trajectory",isNew);
130 if (isNew)
131 {
132 G4String ID("ID");
133 (*store)[ID] = G4AttDef(ID,"Track ID","Physics","","G4int");
134
135 G4String PID("PID");
136 (*store)[PID] = G4AttDef(PID,"Parent ID","Physics","","G4int");
137
138 G4String PN("PN");
139 (*store)[PN] = G4AttDef(PN,"Particle Name","Physics","","G4String");
140
141 G4String Ch("Ch");
142 (*store)[Ch] = G4AttDef(Ch,"Charge","Physics","e+","G4double");
143
144 G4String PDG("PDG");
145 (*store)[PDG] = G4AttDef(PDG,"PDG Encoding","Physics","","G4int");
146
147 G4String IKE("IKE");
148 (*store)[IKE] =
149 G4AttDef(IKE, "Initial kinetic energy",
150 "Physics","G4BestUnit","G4double");
151
152 G4String IMom("IMom");
153 (*store)[IMom] = G4AttDef(IMom, "Initial momentum",
154 "Physics","G4BestUnit","G4ThreeVector");
155
156 G4String IMag("IMag");
157 (*store)[IMag] =
158 G4AttDef(IMag, "Initial momentum magnitude",
159 "Physics","G4BestUnit","G4double");
160
161 G4String NTP("NTP");
162 (*store)[NTP] = G4AttDef(NTP,"No. of points","Physics","","G4int");
163
164 }
165 return store;
166}
bool G4bool
Definition: G4Types.hh:86
std::map< G4String, G4AttDef > * GetInstance(const G4String &storeKey, G4bool &isNew)

References G4AttDefStore::GetInstance().

Referenced by CreateAttValues(), G4RichTrajectory::GetAttDefs(), G4VisCommandList::SetNewValue(), and G4VisCommandSceneAddTrajectories::SetNewValue().

◆ GetCharge()

G4double G4Trajectory::GetCharge ( ) const
inlinevirtual

Implements G4VTrajectory.

Definition at line 89 of file G4Trajectory.hh.

90 { return PDGCharge; }

References PDGCharge.

◆ GetInitialKineticEnergy()

G4double G4Trajectory::GetInitialKineticEnergy ( ) const
inline

Definition at line 93 of file G4Trajectory.hh.

94 { return initialKineticEnergy; }

References initialKineticEnergy.

◆ GetInitialMomentum()

G4ThreeVector G4Trajectory::GetInitialMomentum ( ) const
inlinevirtual

Implements G4VTrajectory.

Definition at line 95 of file G4Trajectory.hh.

96 { return initialMomentum; }

References initialMomentum.

◆ GetParentID()

G4int G4Trajectory::GetParentID ( ) const
inlinevirtual

Implements G4VTrajectory.

Definition at line 85 of file G4Trajectory.hh.

86 { return fParentID; }

References fParentID.

◆ GetParticleDefinition()

G4ParticleDefinition * G4Trajectory::GetParticleDefinition ( void  )

Definition at line 211 of file G4Trajectory.cc.

212{
213 return (G4ParticleTable::GetParticleTable()->FindParticle(ParticleName));
214}
static G4ParticleTable * GetParticleTable()

References G4ParticleTable::GetParticleTable(), and ParticleName.

◆ GetParticleName()

G4String G4Trajectory::GetParticleName ( ) const
inlinevirtual

Implements G4VTrajectory.

Definition at line 87 of file G4Trajectory.hh.

88 { return ParticleName; }

References ParticleName.

◆ GetPDGEncoding()

G4int G4Trajectory::GetPDGEncoding ( ) const
inlinevirtual

Implements G4VTrajectory.

Definition at line 91 of file G4Trajectory.hh.

92 { return PDGEncoding; }

References PDGEncoding.

◆ GetPoint()

virtual G4VTrajectoryPoint * G4Trajectory::GetPoint ( G4int  i) const
inlinevirtual

Implements G4VTrajectory.

Reimplemented in G4RichTrajectory.

Definition at line 105 of file G4Trajectory.hh.

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

References positionRecord.

◆ GetPointEntries()

virtual G4int G4Trajectory::GetPointEntries ( ) const
inlinevirtual

Implements G4VTrajectory.

Reimplemented in G4RichTrajectory.

Definition at line 103 of file G4Trajectory.hh.

104 { return G4int(positionRecord->size()); }
int G4int
Definition: G4Types.hh:85

References positionRecord.

Referenced by CreateAttValues(), and MergeTrajectory().

◆ GetTrackID()

G4int G4Trajectory::GetTrackID ( ) const
inlinevirtual

Implements G4VTrajectory.

Definition at line 83 of file G4Trajectory.hh.

84 { return fTrackID; }

References fTrackID.

◆ MergeTrajectory()

void G4Trajectory::MergeTrajectory ( G4VTrajectory *  secondTrajectory)
virtual

Implements G4VTrajectory.

Reimplemented in G4RichTrajectory.

Definition at line 216 of file G4Trajectory.cc.

217{
218 if(secondTrajectory == nullptr) return;
219
220 G4Trajectory* seco = (G4Trajectory*)secondTrajectory;
221 G4int ent = seco->GetPointEntries();
222 for(G4int i=1; i<ent; ++i) // initial pt of 2nd trajectory shouldn't be merged
223 {
224 positionRecord->push_back((*(seco->positionRecord))[i]);
225 }
226 delete (*seco->positionRecord)[0];
227 seco->positionRecord->clear();
228}

References GetPointEntries(), and positionRecord.

◆ operator delete()

void G4Trajectory::operator delete ( void *  aTrajectory)
inline

Definition at line 137 of file G4Trajectory.hh.

138{
139 aTrajectoryAllocator()->FreeSingle((G4Trajectory*)aTrajectory);
140}
G4TRACKING_DLL G4Allocator< G4Trajectory > *& aTrajectoryAllocator()
Definition: G4Trajectory.cc:49

References aTrajectoryAllocator().

◆ operator new()

void * G4Trajectory::operator new ( size_t  )
inline

Definition at line 128 of file G4Trajectory.hh.

129{
130 if (aTrajectoryAllocator() == nullptr)
131 {
133 }
134 return (void*)aTrajectoryAllocator()->MallocSingle();
135}

References aTrajectoryAllocator().

◆ operator==() [1/2]

G4int G4Trajectory::operator== ( const G4Trajectory &  r) const
inline

Definition at line 142 of file G4Trajectory.hh.

143{
144 return (this==&r);
145}

◆ operator==() [2/2]

G4bool G4VTrajectory::operator== ( const G4VTrajectory &  right) const
inherited

Definition at line 55 of file G4VTrajectory.cc.

56{
57 return (this==&right);
58}

◆ ShowTrajectory()

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

Reimplemented from G4VTrajectory.

Reimplemented in G4RichTrajectory.

Definition at line 109 of file G4Trajectory.cc.

110{
111 // Invoke the default implementation in G4VTrajectory...
113
114 // ... or override with your own code here.
115}
virtual void ShowTrajectory(std::ostream &os=G4cout) const

References G4VTrajectory::ShowTrajectory().

Field Documentation

◆ fParentID

G4int G4Trajectory::fParentID = 0
private

Definition at line 118 of file G4Trajectory.hh.

Referenced by CreateAttValues(), G4Trajectory(), and GetParentID().

◆ fTrackID

G4int G4Trajectory::fTrackID = 0
private

Definition at line 117 of file G4Trajectory.hh.

Referenced by CreateAttValues(), G4Trajectory(), and GetTrackID().

◆ initialKineticEnergy

G4double G4Trajectory::initialKineticEnergy = 0.0
private

Definition at line 122 of file G4Trajectory.hh.

Referenced by CreateAttValues(), G4Trajectory(), and GetInitialKineticEnergy().

◆ initialMomentum

G4ThreeVector G4Trajectory::initialMomentum
private

Definition at line 123 of file G4Trajectory.hh.

Referenced by CreateAttValues(), G4Trajectory(), and GetInitialMomentum().

◆ ParticleName

G4String G4Trajectory::ParticleName = ""
private

◆ PDGCharge

G4double G4Trajectory::PDGCharge = 0.0
private

Definition at line 120 of file G4Trajectory.hh.

Referenced by CreateAttValues(), G4Trajectory(), and GetCharge().

◆ PDGEncoding

G4int G4Trajectory::PDGEncoding = 0
private

Definition at line 119 of file G4Trajectory.hh.

Referenced by CreateAttValues(), G4Trajectory(), and GetPDGEncoding().

◆ positionRecord

G4TrajectoryPointContainer* G4Trajectory::positionRecord = nullptr
private

The documentation for this class was generated from the following files: