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
 
G4ParticleDefinitionGetParticleDefinition ()
 
G4String GetParticleName () const
 
G4int GetPDGEncoding () const
 
virtual G4VTrajectoryPointGetPoint (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
 
G4TrajectoryPointContainerpositionRecord = 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: