VMC Examples Version 6.6
Loading...
Searching...
No Matches
Ex03MCStack Class Reference
E03 | A01 | E06 | TR

Implementation of the TVirtualMCStack interface. More...

#include <Ex03MCStack.h>

Inheritance diagram for Ex03MCStack:

Public Member Functions

 Ex03MCStack (Int_t size)
 
 Ex03MCStack ()
 
virtual ~Ex03MCStack ()
 
virtual void PushTrack (Int_t toBeDone, Int_t parent, Int_t pdg, Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vx, Double_t vy, Double_t vz, Double_t tof, Double_t polx, Double_t poly, Double_t polz, TMCProcess mech, Int_t &ntr, Double_t weight, Int_t is)
 
virtual TParticle * PopNextTrack (Int_t &track)
 
virtual TParticle * PopPrimaryForTracking (Int_t i)
 
virtual void Print (Option_t *option="") const
 
void Reset ()
 
virtual void SetCurrentTrack (Int_t track)
 
virtual Int_t GetNtrack () const
 
virtual Int_t GetNprimary () const
 
virtual TParticle * GetCurrentTrack () const
 
virtual Int_t GetCurrentTrackNumber () const
 
virtual Int_t GetCurrentParentTrackNumber () const
 
TParticle * GetParticle (Int_t id) const
 
 Ex03MCStack (Int_t size)
 
 Ex03MCStack ()
 
virtual ~Ex03MCStack ()
 
virtual void PushTrack (Int_t toBeDone, Int_t parent, Int_t pdg, Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vx, Double_t vy, Double_t vz, Double_t tof, Double_t polx, Double_t poly, Double_t polz, TMCProcess mech, Int_t &ntr, Double_t weight, Int_t is)
 
virtual TParticle * PopNextTrack (Int_t &track)
 
virtual TParticle * PopPrimaryForTracking (Int_t i)
 
virtual void Print (Option_t *option="") const
 
void Reset ()
 
virtual void SetCurrentTrack (Int_t track)
 
virtual Int_t GetNtrack () const
 
virtual Int_t GetNprimary () const
 
virtual TParticle * GetCurrentTrack () const
 
virtual Int_t GetCurrentTrackNumber () const
 
virtual Int_t GetCurrentParentTrackNumber () const
 
TParticle * GetParticle (Int_t id) const
 
 Ex03MCStack (Int_t size)
 
 Ex03MCStack ()
 
virtual ~Ex03MCStack ()
 
virtual void PushTrack (Int_t toBeDone, Int_t parent, Int_t pdg, Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vx, Double_t vy, Double_t vz, Double_t tof, Double_t polx, Double_t poly, Double_t polz, TMCProcess mech, Int_t &ntr, Double_t weight, Int_t is)
 
virtual TParticle * PopNextTrack (Int_t &track)
 
virtual TParticle * PopPrimaryForTracking (Int_t i)
 
virtual void Print (Option_t *option="") const
 
void Reset ()
 
virtual void SetCurrentTrack (Int_t track)
 
virtual Int_t GetNtrack () const
 
virtual Int_t GetNprimary () const
 
virtual TParticle * GetCurrentTrack () const
 
virtual Int_t GetCurrentTrackNumber () const
 
virtual Int_t GetCurrentParentTrackNumber () const
 
TParticle * GetParticle (Int_t id) const
 
 Ex03MCStack (Int_t size)
 
 Ex03MCStack ()
 
virtual ~Ex03MCStack ()
 
virtual void PushTrack (Int_t toBeDone, Int_t parent, Int_t pdg, Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vx, Double_t vy, Double_t vz, Double_t tof, Double_t polx, Double_t poly, Double_t polz, TMCProcess mech, Int_t &ntr, Double_t weight, Int_t is)
 
virtual TParticle * PopNextTrack (Int_t &track)
 
virtual TParticle * PopPrimaryForTracking (Int_t i)
 
virtual void Print (Option_t *option="") const
 
void Reset ()
 
virtual void SetCurrentTrack (Int_t track)
 
virtual Int_t GetNtrack () const
 
virtual Int_t GetNprimary () const
 
virtual TParticle * GetCurrentTrack () const
 
virtual Int_t GetCurrentTrackNumber () const
 
virtual Int_t GetCurrentParentTrackNumber () const
 
TParticle * GetParticle (Int_t id) const
 
 Ex03MCStack (Int_t size)
 
 Ex03MCStack ()
 
virtual ~Ex03MCStack ()
 
virtual void PushTrack (Int_t toBeDone, Int_t parent, Int_t pdg, Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vx, Double_t vy, Double_t vz, Double_t tof, Double_t polx, Double_t poly, Double_t polz, TMCProcess mech, Int_t &ntr, Double_t weight, Int_t is)
 
virtual TParticle * PopNextTrack (Int_t &track)
 
virtual TParticle * PopPrimaryForTracking (Int_t i)
 
virtual void Print (Option_t *option="") const
 
void Reset ()
 
virtual void SetCurrentTrack (Int_t track)
 
virtual Int_t GetNtrack () const
 
virtual Int_t GetNprimary () const
 
virtual TParticle * GetCurrentTrack () const
 
virtual Int_t GetCurrentTrackNumber () const
 
virtual Int_t GetCurrentParentTrackNumber () const
 
TParticle * GetParticle (Int_t id) const
 
 Ex03MCStack (Int_t size)
 
 Ex03MCStack ()
 
virtual ~Ex03MCStack ()
 
virtual void PushTrack (Int_t toBeDone, Int_t parent, Int_t pdg, Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vx, Double_t vy, Double_t vz, Double_t tof, Double_t polx, Double_t poly, Double_t polz, TMCProcess mech, Int_t &ntr, Double_t weight, Int_t is)
 
virtual TParticle * PopNextTrack (Int_t &track)
 
virtual TParticle * PopPrimaryForTracking (Int_t i)
 
virtual void Print (Option_t *option="") const
 
void Reset ()
 
virtual void SetCurrentTrack (Int_t track)
 
virtual Int_t GetNtrack () const
 
virtual Int_t GetNprimary () const
 
virtual TParticle * GetCurrentTrack () const
 
virtual Int_t GetCurrentTrackNumber () const
 
virtual Int_t GetCurrentParentTrackNumber () const
 
TParticle * GetParticle (Int_t id) const
 
 Ex03MCStack (Int_t size)
 
 Ex03MCStack ()
 
virtual ~Ex03MCStack ()
 
virtual void PushTrack (Int_t toBeDone, Int_t parent, Int_t pdg, Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vx, Double_t vy, Double_t vz, Double_t tof, Double_t polx, Double_t poly, Double_t polz, TMCProcess mech, Int_t &ntr, Double_t weight, Int_t is)
 
virtual TParticle * PopNextTrack (Int_t &track)
 
virtual TParticle * PopPrimaryForTracking (Int_t i)
 
virtual void Print (Option_t *option="") const
 
void Reset ()
 
virtual void SetCurrentTrack (Int_t track)
 
virtual Int_t GetNtrack () const
 
virtual Int_t GetNprimary () const
 
virtual TParticle * GetCurrentTrack () const
 
virtual Int_t GetCurrentTrackNumber () const
 
virtual Int_t GetCurrentParentTrackNumber () const
 
TParticle * GetParticle (Int_t id) const
 
 Ex03MCStack (Int_t size)
 
 Ex03MCStack ()
 
virtual ~Ex03MCStack ()
 
virtual void PushTrack (Int_t toBeDone, Int_t parent, Int_t pdg, Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vx, Double_t vy, Double_t vz, Double_t tof, Double_t polx, Double_t poly, Double_t polz, TMCProcess mech, Int_t &ntr, Double_t weight, Int_t is)
 
virtual TParticle * PopNextTrack (Int_t &track)
 
virtual TParticle * PopPrimaryForTracking (Int_t i)
 
virtual void Print (Option_t *option="") const
 
void Reset ()
 
virtual void SetCurrentTrack (Int_t track)
 
virtual Int_t GetNtrack () const
 
virtual Int_t GetNprimary () const
 
virtual TParticle * GetCurrentTrack () const
 
virtual Int_t GetCurrentTrackNumber () const
 
virtual Int_t GetCurrentParentTrackNumber () const
 
TParticle * GetParticle (Int_t id) const
 

Private Attributes

std::stack< TParticle * > fStack
 The stack of particles (transient)
 
TClonesArray * fParticles
 The array of particle (persistent)
 
Int_t fCurrentTrack
 The current track number.
 
Int_t fNPrimary
 The number of primaries.
 

Detailed Description

Implementation of the TVirtualMCStack interface.

Date
06/03/2003
Author
I. Hrivnacova; IPN, Orsay

(Taken from the E03 example)

Date
16/05/2005
Author
I. Hrivnacova; IPN, Orsay

Definition at line 35 of file Ex03MCStack.h.

Constructor & Destructor Documentation

◆ Ex03MCStack() [1/16]

Ex03MCStack::Ex03MCStack ( Int_t size)

Standard constructor

Parameters
sizeThe stack size

Definition at line 33 of file Ex03MCStack.cxx.

35{
36 /// Standard constructor
37 /// \param size The stack size
38
39 fParticles = new TClonesArray("TParticle", size);
40}
Int_t fCurrentTrack
The current track number.
Definition Ex03MCStack.h:67
TClonesArray * fParticles
The array of particle (persistent)
Definition Ex03MCStack.h:66
Int_t fNPrimary
The number of primaries.
Definition Ex03MCStack.h:68

◆ Ex03MCStack() [2/16]

Ex03MCStack::Ex03MCStack ( )

Default constructor

Definition at line 43 of file Ex03MCStack.cxx.

44{
45 /// Default constructor
46}

◆ ~Ex03MCStack() [1/8]

Ex03MCStack::~Ex03MCStack ( )
virtual

Destructor

Definition at line 49 of file Ex03MCStack.cxx.

50{
51 /// Destructor
52
53 if (fParticles) fParticles->Delete();
54 delete fParticles;
55}

◆ Ex03MCStack() [3/16]

Ex03MCStack::Ex03MCStack ( Int_t size)

◆ Ex03MCStack() [4/16]

Ex03MCStack::Ex03MCStack ( )

◆ ~Ex03MCStack() [2/8]

virtual Ex03MCStack::~Ex03MCStack ( )
virtual

◆ Ex03MCStack() [5/16]

Ex03MCStack::Ex03MCStack ( Int_t size)

◆ Ex03MCStack() [6/16]

Ex03MCStack::Ex03MCStack ( )

◆ ~Ex03MCStack() [3/8]

virtual Ex03MCStack::~Ex03MCStack ( )
virtual

◆ Ex03MCStack() [7/16]

Ex03MCStack::Ex03MCStack ( Int_t size)

◆ Ex03MCStack() [8/16]

Ex03MCStack::Ex03MCStack ( )

◆ ~Ex03MCStack() [4/8]

virtual Ex03MCStack::~Ex03MCStack ( )
virtual

◆ Ex03MCStack() [9/16]

Ex03MCStack::Ex03MCStack ( Int_t size)

◆ Ex03MCStack() [10/16]

Ex03MCStack::Ex03MCStack ( )

◆ ~Ex03MCStack() [5/8]

virtual Ex03MCStack::~Ex03MCStack ( )
virtual

◆ Ex03MCStack() [11/16]

Ex03MCStack::Ex03MCStack ( Int_t size)

◆ Ex03MCStack() [12/16]

Ex03MCStack::Ex03MCStack ( )

◆ ~Ex03MCStack() [6/8]

virtual Ex03MCStack::~Ex03MCStack ( )
virtual

◆ Ex03MCStack() [13/16]

Ex03MCStack::Ex03MCStack ( Int_t size)

◆ Ex03MCStack() [14/16]

Ex03MCStack::Ex03MCStack ( )

◆ ~Ex03MCStack() [7/8]

virtual Ex03MCStack::~Ex03MCStack ( )
virtual

◆ Ex03MCStack() [15/16]

Ex03MCStack::Ex03MCStack ( Int_t size)

◆ Ex03MCStack() [16/16]

Ex03MCStack::Ex03MCStack ( )

◆ ~Ex03MCStack() [8/8]

virtual Ex03MCStack::~Ex03MCStack ( )
virtual

Member Function Documentation

◆ PushTrack() [1/8]

void Ex03MCStack::PushTrack ( Int_t toBeDone,
Int_t parent,
Int_t pdg,
Double_t px,
Double_t py,
Double_t pz,
Double_t e,
Double_t vx,
Double_t vy,
Double_t vz,
Double_t tof,
Double_t polx,
Double_t poly,
Double_t polz,
TMCProcess mech,
Int_t & ntr,
Double_t weight,
Int_t is )
virtual

Create a new particle and push into stack; adds it to the particles array (fParticles) and if not done to the stack (fStack). Use TParticle::fMother[1] to store Track ID.

Parameters
toBeDone1 if particles should go to tracking, 0 otherwise
parentnumber of the parent track, -1 if track is primary
pdgPDG encoding
pxparticle momentum - x component [GeV/c]
pyparticle momentum - y component [GeV/c]
pzparticle momentum - z component [GeV/c]
etotal energy [GeV]
vxposition - x component [cm]
vyposition - y component [cm]
vzposition - z component [cm]
toftime of flight [s]
polxpolarization - x component
polypolarization - y component
polzpolarization - z component
mechcreator process VMC code
ntrtrack number (is filled by the stack
weightparticle weight
isgeneration status code

Definition at line 62 of file Ex03MCStack.cxx.

66{
67 /// Create a new particle and push into stack;
68 /// adds it to the particles array (fParticles) and if not done to the
69 /// stack (fStack).
70 /// Use TParticle::fMother[1] to store Track ID.
71 /// \param toBeDone 1 if particles should go to tracking, 0 otherwise
72 /// \param parent number of the parent track, -1 if track is primary
73 /// \param pdg PDG encoding
74 /// \param px particle momentum - x component [GeV/c]
75 /// \param py particle momentum - y component [GeV/c]
76 /// \param pz particle momentum - z component [GeV/c]
77 /// \param e total energy [GeV]
78 /// \param vx position - x component [cm]
79 /// \param vy position - y component [cm]
80 /// \param vz position - z component [cm]
81 /// \param tof time of flight [s]
82 /// \param polx polarization - x component
83 /// \param poly polarization - y component
84 /// \param polz polarization - z component
85 /// \param mech creator process VMC code
86 /// \param ntr track number (is filled by the stack
87 /// \param weight particle weight
88 /// \param is generation status code
89
90 const Int_t kFirstDaughter = -1;
91 const Int_t kLastDaughter = -1;
92
93 TClonesArray& particlesRef = *fParticles;
94 Int_t trackId = GetNtrack();
95 TParticle* particle = new (particlesRef[trackId]) TParticle(pdg, is, parent,
96 trackId, kFirstDaughter, kLastDaughter, px, py, pz, e, vx, vy, vz, tof);
97
98 particle->SetPolarisation(polx, poly, polz);
99 particle->SetWeight(weight);
100 particle->SetUniqueID(mech);
101
102 if (parent < 0) fNPrimary++;
103
104 if (toBeDone) fStack.push(particle);
105
106 ntr = GetNtrack() - 1;
107}
virtual Int_t GetNtrack() const
std::stack< TParticle * > fStack
The stack of particles (transient)
Definition Ex03MCStack.h:65

◆ PopNextTrack() [1/8]

TParticle * Ex03MCStack::PopNextTrack ( Int_t & track)
virtual

Get next particle for tracking from the stack.

Returns
The popped particle object
Parameters
trackThe index of the popped track

Definition at line 110 of file Ex03MCStack.cxx.

111{
112 /// Get next particle for tracking from the stack.
113 /// \return The popped particle object
114 /// \param track The index of the popped track
115
116 itrack = -1;
117 if (fStack.empty()) return 0;
118
119 TParticle* particle = fStack.top();
120 fStack.pop();
121
122 if (!particle) return 0;
123
124 fCurrentTrack = particle->GetSecondMother();
125 itrack = fCurrentTrack;
126
127 return particle;
128}

◆ PopPrimaryForTracking() [1/8]

TParticle * Ex03MCStack::PopPrimaryForTracking ( Int_t i)
virtual

Return i -th particle in fParticles.

Returns
The popped primary particle object
Parameters
iThe index of primary particle to be popped

Definition at line 131 of file Ex03MCStack.cxx.

132{
133 /// Return \em i -th particle in fParticles.
134 /// \return The popped primary particle object
135 /// \param i The index of primary particle to be popped
136
137 if (i < 0 || i >= fNPrimary)
138 Fatal("GetPrimaryForTracking", "Index out of range");
139
140 return (TParticle*)fParticles->At(i);
141}

◆ Print() [1/8]

void Ex03MCStack::Print ( Option_t * option = "") const
virtual

Print info for all particles.

Definition at line 144 of file Ex03MCStack.cxx.

145{
146 /// Print info for all particles.
147
148 cout << "Ex03MCStack Info " << endl;
149 cout << "Total number of particles: " << GetNtrack() << endl;
150 cout << "Number of primary particles: " << GetNprimary() << endl;
151
152 for (Int_t i = 0; i < GetNtrack(); i++) GetParticle(i)->Print();
153}
virtual Int_t GetNprimary() const
TParticle * GetParticle(Int_t id) const

◆ Reset() [1/8]

void Ex03MCStack::Reset ( )

Delete contained particles, reset particles array and stack.

Definition at line 156 of file Ex03MCStack.cxx.

157{
158 /// Delete contained particles, reset particles array and stack.
159
160 fCurrentTrack = -1;
161 fNPrimary = 0;
162 fParticles->Clear();
163}

◆ SetCurrentTrack() [1/8]

void Ex03MCStack::SetCurrentTrack ( Int_t track)
virtual

Set the current track number to a given value.

Parameters
trackThe current track number

Definition at line 166 of file Ex03MCStack.cxx.

167{
168 /// Set the current track number to a given value.
169 /// \param track The current track number
170
171 fCurrentTrack = track;
172}

◆ GetNtrack() [1/8]

Int_t Ex03MCStack::GetNtrack ( ) const
virtual
Returns
The total number of all tracks.

Definition at line 175 of file Ex03MCStack.cxx.

176{
177 /// \return The total number of all tracks.
178
179 return fParticles->GetEntriesFast();
180}

◆ GetNprimary() [1/8]

Int_t Ex03MCStack::GetNprimary ( ) const
virtual
Returns
The total number of primary tracks.

Definition at line 183 of file Ex03MCStack.cxx.

184{
185 /// \return The total number of primary tracks.
186
187 return fNPrimary;
188}

◆ GetCurrentTrack() [1/8]

TParticle * Ex03MCStack::GetCurrentTrack ( ) const
virtual
Returns
The current track particle

Definition at line 191 of file Ex03MCStack.cxx.

192{
193 /// \return The current track particle
194
195 TParticle* current = GetParticle(fCurrentTrack);
196
197 if (!current)
198 Warning("GetCurrentTrack", "Current track not found in the stack");
199
200 return current;
201}

◆ GetCurrentTrackNumber() [1/8]

Int_t Ex03MCStack::GetCurrentTrackNumber ( ) const
virtual
Returns
The current track number

Definition at line 204 of file Ex03MCStack.cxx.

205{
206 /// \return The current track number
207
208 return fCurrentTrack;
209}

◆ GetCurrentParentTrackNumber() [1/8]

Int_t Ex03MCStack::GetCurrentParentTrackNumber ( ) const
virtual
Returns
The current track parent ID.

Definition at line 212 of file Ex03MCStack.cxx.

213{
214 /// \return The current track parent ID.
215
216 TParticle* current = GetCurrentTrack();
217
218 if (current)
219 return current->GetFirstMother();
220 else
221 return -1;
222}
virtual TParticle * GetCurrentTrack() const

◆ GetParticle() [1/8]

TParticle * Ex03MCStack::GetParticle ( Int_t id) const
Returns
The id -th particle in fParticles
Parameters
idThe index of the particle to be returned

Definition at line 225 of file Ex03MCStack.cxx.

226{
227 /// \return The \em id -th particle in fParticles
228 /// \param id The index of the particle to be returned
229
230 if (id < 0 || id >= fParticles->GetEntriesFast())
231 Fatal("GetParticle", "Index out of range");
232
233 return (TParticle*)fParticles->At(id);
234}

◆ PushTrack() [2/8]

virtual void Ex03MCStack::PushTrack ( Int_t toBeDone,
Int_t parent,
Int_t pdg,
Double_t px,
Double_t py,
Double_t pz,
Double_t e,
Double_t vx,
Double_t vy,
Double_t vz,
Double_t tof,
Double_t polx,
Double_t poly,
Double_t polz,
TMCProcess mech,
Int_t & ntr,
Double_t weight,
Int_t is )
virtual

◆ PopNextTrack() [2/8]

virtual TParticle * Ex03MCStack::PopNextTrack ( Int_t & track)
virtual

◆ PopPrimaryForTracking() [2/8]

virtual TParticle * Ex03MCStack::PopPrimaryForTracking ( Int_t i)
virtual

◆ Print() [2/8]

virtual void Ex03MCStack::Print ( Option_t * option = "") const
virtual

◆ Reset() [2/8]

void Ex03MCStack::Reset ( )

◆ SetCurrentTrack() [2/8]

virtual void Ex03MCStack::SetCurrentTrack ( Int_t track)
virtual

◆ GetNtrack() [2/8]

virtual Int_t Ex03MCStack::GetNtrack ( ) const
virtual

◆ GetNprimary() [2/8]

virtual Int_t Ex03MCStack::GetNprimary ( ) const
virtual

◆ GetCurrentTrack() [2/8]

virtual TParticle * Ex03MCStack::GetCurrentTrack ( ) const
virtual

◆ GetCurrentTrackNumber() [2/8]

virtual Int_t Ex03MCStack::GetCurrentTrackNumber ( ) const
virtual

◆ GetCurrentParentTrackNumber() [2/8]

virtual Int_t Ex03MCStack::GetCurrentParentTrackNumber ( ) const
virtual

◆ GetParticle() [2/8]

TParticle * Ex03MCStack::GetParticle ( Int_t id) const

◆ PushTrack() [3/8]

virtual void Ex03MCStack::PushTrack ( Int_t toBeDone,
Int_t parent,
Int_t pdg,
Double_t px,
Double_t py,
Double_t pz,
Double_t e,
Double_t vx,
Double_t vy,
Double_t vz,
Double_t tof,
Double_t polx,
Double_t poly,
Double_t polz,
TMCProcess mech,
Int_t & ntr,
Double_t weight,
Int_t is )
virtual

◆ PopNextTrack() [3/8]

virtual TParticle * Ex03MCStack::PopNextTrack ( Int_t & track)
virtual

◆ PopPrimaryForTracking() [3/8]

virtual TParticle * Ex03MCStack::PopPrimaryForTracking ( Int_t i)
virtual

◆ Print() [3/8]

virtual void Ex03MCStack::Print ( Option_t * option = "") const
virtual

◆ Reset() [3/8]

void Ex03MCStack::Reset ( )

◆ SetCurrentTrack() [3/8]

virtual void Ex03MCStack::SetCurrentTrack ( Int_t track)
virtual

◆ GetNtrack() [3/8]

virtual Int_t Ex03MCStack::GetNtrack ( ) const
virtual

◆ GetNprimary() [3/8]

virtual Int_t Ex03MCStack::GetNprimary ( ) const
virtual

◆ GetCurrentTrack() [3/8]

virtual TParticle * Ex03MCStack::GetCurrentTrack ( ) const
virtual

◆ GetCurrentTrackNumber() [3/8]

virtual Int_t Ex03MCStack::GetCurrentTrackNumber ( ) const
virtual

◆ GetCurrentParentTrackNumber() [3/8]

virtual Int_t Ex03MCStack::GetCurrentParentTrackNumber ( ) const
virtual

◆ GetParticle() [3/8]

TParticle * Ex03MCStack::GetParticle ( Int_t id) const

◆ PushTrack() [4/8]

virtual void Ex03MCStack::PushTrack ( Int_t toBeDone,
Int_t parent,
Int_t pdg,
Double_t px,
Double_t py,
Double_t pz,
Double_t e,
Double_t vx,
Double_t vy,
Double_t vz,
Double_t tof,
Double_t polx,
Double_t poly,
Double_t polz,
TMCProcess mech,
Int_t & ntr,
Double_t weight,
Int_t is )
virtual

◆ PopNextTrack() [4/8]

virtual TParticle * Ex03MCStack::PopNextTrack ( Int_t & track)
virtual

◆ PopPrimaryForTracking() [4/8]

virtual TParticle * Ex03MCStack::PopPrimaryForTracking ( Int_t i)
virtual

◆ Print() [4/8]

virtual void Ex03MCStack::Print ( Option_t * option = "") const
virtual

◆ Reset() [4/8]

void Ex03MCStack::Reset ( )

◆ SetCurrentTrack() [4/8]

virtual void Ex03MCStack::SetCurrentTrack ( Int_t track)
virtual

◆ GetNtrack() [4/8]

virtual Int_t Ex03MCStack::GetNtrack ( ) const
virtual

◆ GetNprimary() [4/8]

virtual Int_t Ex03MCStack::GetNprimary ( ) const
virtual

◆ GetCurrentTrack() [4/8]

virtual TParticle * Ex03MCStack::GetCurrentTrack ( ) const
virtual

◆ GetCurrentTrackNumber() [4/8]

virtual Int_t Ex03MCStack::GetCurrentTrackNumber ( ) const
virtual

◆ GetCurrentParentTrackNumber() [4/8]

virtual Int_t Ex03MCStack::GetCurrentParentTrackNumber ( ) const
virtual

◆ GetParticle() [4/8]

TParticle * Ex03MCStack::GetParticle ( Int_t id) const

◆ PushTrack() [5/8]

virtual void Ex03MCStack::PushTrack ( Int_t toBeDone,
Int_t parent,
Int_t pdg,
Double_t px,
Double_t py,
Double_t pz,
Double_t e,
Double_t vx,
Double_t vy,
Double_t vz,
Double_t tof,
Double_t polx,
Double_t poly,
Double_t polz,
TMCProcess mech,
Int_t & ntr,
Double_t weight,
Int_t is )
virtual

◆ PopNextTrack() [5/8]

virtual TParticle * Ex03MCStack::PopNextTrack ( Int_t & track)
virtual

◆ PopPrimaryForTracking() [5/8]

virtual TParticle * Ex03MCStack::PopPrimaryForTracking ( Int_t i)
virtual

◆ Print() [5/8]

virtual void Ex03MCStack::Print ( Option_t * option = "") const
virtual

◆ Reset() [5/8]

void Ex03MCStack::Reset ( )

◆ SetCurrentTrack() [5/8]

virtual void Ex03MCStack::SetCurrentTrack ( Int_t track)
virtual

◆ GetNtrack() [5/8]

virtual Int_t Ex03MCStack::GetNtrack ( ) const
virtual

◆ GetNprimary() [5/8]

virtual Int_t Ex03MCStack::GetNprimary ( ) const
virtual

◆ GetCurrentTrack() [5/8]

virtual TParticle * Ex03MCStack::GetCurrentTrack ( ) const
virtual

◆ GetCurrentTrackNumber() [5/8]

virtual Int_t Ex03MCStack::GetCurrentTrackNumber ( ) const
virtual

◆ GetCurrentParentTrackNumber() [5/8]

virtual Int_t Ex03MCStack::GetCurrentParentTrackNumber ( ) const
virtual

◆ GetParticle() [5/8]

TParticle * Ex03MCStack::GetParticle ( Int_t id) const

◆ PushTrack() [6/8]

virtual void Ex03MCStack::PushTrack ( Int_t toBeDone,
Int_t parent,
Int_t pdg,
Double_t px,
Double_t py,
Double_t pz,
Double_t e,
Double_t vx,
Double_t vy,
Double_t vz,
Double_t tof,
Double_t polx,
Double_t poly,
Double_t polz,
TMCProcess mech,
Int_t & ntr,
Double_t weight,
Int_t is )
virtual

◆ PopNextTrack() [6/8]

virtual TParticle * Ex03MCStack::PopNextTrack ( Int_t & track)
virtual

◆ PopPrimaryForTracking() [6/8]

virtual TParticle * Ex03MCStack::PopPrimaryForTracking ( Int_t i)
virtual

◆ Print() [6/8]

virtual void Ex03MCStack::Print ( Option_t * option = "") const
virtual

◆ Reset() [6/8]

void Ex03MCStack::Reset ( )

◆ SetCurrentTrack() [6/8]

virtual void Ex03MCStack::SetCurrentTrack ( Int_t track)
virtual

◆ GetNtrack() [6/8]

virtual Int_t Ex03MCStack::GetNtrack ( ) const
virtual

◆ GetNprimary() [6/8]

virtual Int_t Ex03MCStack::GetNprimary ( ) const
virtual

◆ GetCurrentTrack() [6/8]

virtual TParticle * Ex03MCStack::GetCurrentTrack ( ) const
virtual

◆ GetCurrentTrackNumber() [6/8]

virtual Int_t Ex03MCStack::GetCurrentTrackNumber ( ) const
virtual

◆ GetCurrentParentTrackNumber() [6/8]

virtual Int_t Ex03MCStack::GetCurrentParentTrackNumber ( ) const
virtual

◆ GetParticle() [6/8]

TParticle * Ex03MCStack::GetParticle ( Int_t id) const

◆ PushTrack() [7/8]

virtual void Ex03MCStack::PushTrack ( Int_t toBeDone,
Int_t parent,
Int_t pdg,
Double_t px,
Double_t py,
Double_t pz,
Double_t e,
Double_t vx,
Double_t vy,
Double_t vz,
Double_t tof,
Double_t polx,
Double_t poly,
Double_t polz,
TMCProcess mech,
Int_t & ntr,
Double_t weight,
Int_t is )
virtual

◆ PopNextTrack() [7/8]

virtual TParticle * Ex03MCStack::PopNextTrack ( Int_t & track)
virtual

◆ PopPrimaryForTracking() [7/8]

virtual TParticle * Ex03MCStack::PopPrimaryForTracking ( Int_t i)
virtual

◆ Print() [7/8]

virtual void Ex03MCStack::Print ( Option_t * option = "") const
virtual

◆ Reset() [7/8]

void Ex03MCStack::Reset ( )

◆ SetCurrentTrack() [7/8]

virtual void Ex03MCStack::SetCurrentTrack ( Int_t track)
virtual

◆ GetNtrack() [7/8]

virtual Int_t Ex03MCStack::GetNtrack ( ) const
virtual

◆ GetNprimary() [7/8]

virtual Int_t Ex03MCStack::GetNprimary ( ) const
virtual

◆ GetCurrentTrack() [7/8]

virtual TParticle * Ex03MCStack::GetCurrentTrack ( ) const
virtual

◆ GetCurrentTrackNumber() [7/8]

virtual Int_t Ex03MCStack::GetCurrentTrackNumber ( ) const
virtual

◆ GetCurrentParentTrackNumber() [7/8]

virtual Int_t Ex03MCStack::GetCurrentParentTrackNumber ( ) const
virtual

◆ GetParticle() [7/8]

TParticle * Ex03MCStack::GetParticle ( Int_t id) const

◆ PushTrack() [8/8]

virtual void Ex03MCStack::PushTrack ( Int_t toBeDone,
Int_t parent,
Int_t pdg,
Double_t px,
Double_t py,
Double_t pz,
Double_t e,
Double_t vx,
Double_t vy,
Double_t vz,
Double_t tof,
Double_t polx,
Double_t poly,
Double_t polz,
TMCProcess mech,
Int_t & ntr,
Double_t weight,
Int_t is )
virtual

◆ PopNextTrack() [8/8]

virtual TParticle * Ex03MCStack::PopNextTrack ( Int_t & track)
virtual

◆ PopPrimaryForTracking() [8/8]

virtual TParticle * Ex03MCStack::PopPrimaryForTracking ( Int_t i)
virtual

◆ Print() [8/8]

virtual void Ex03MCStack::Print ( Option_t * option = "") const
virtual

◆ Reset() [8/8]

void Ex03MCStack::Reset ( )

◆ SetCurrentTrack() [8/8]

virtual void Ex03MCStack::SetCurrentTrack ( Int_t track)
virtual

◆ GetNtrack() [8/8]

virtual Int_t Ex03MCStack::GetNtrack ( ) const
virtual

◆ GetNprimary() [8/8]

virtual Int_t Ex03MCStack::GetNprimary ( ) const
virtual

◆ GetCurrentTrack() [8/8]

virtual TParticle * Ex03MCStack::GetCurrentTrack ( ) const
virtual

◆ GetCurrentTrackNumber() [8/8]

virtual Int_t Ex03MCStack::GetCurrentTrackNumber ( ) const
virtual

◆ GetCurrentParentTrackNumber() [8/8]

virtual Int_t Ex03MCStack::GetCurrentParentTrackNumber ( ) const
virtual

◆ GetParticle() [8/8]

TParticle * Ex03MCStack::GetParticle ( Int_t id) const

Member Data Documentation

◆ fStack

std::stack< TParticle * > Ex03MCStack::fStack
private

The stack of particles (transient)

Definition at line 65 of file Ex03MCStack.h.

◆ fParticles

TClonesArray * Ex03MCStack::fParticles
private

The array of particle (persistent)

Definition at line 66 of file Ex03MCStack.h.

◆ fCurrentTrack

Int_t Ex03MCStack::fCurrentTrack
private

The current track number.

Definition at line 67 of file Ex03MCStack.h.

◆ fNPrimary

Int_t Ex03MCStack::fNPrimary
private

The number of primaries.

Definition at line 68 of file Ex03MCStack.h.


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