44#include "FairGenericStack.h"
47#include "TClonesArray.h"
48#include "TVirtualMCStack.h"
118 Int_t secondParentId);
175 virtual void Reset();
183 virtual void PrintStack(Int_t iVerbose)
const;
DetectorId
Unique identifier for all R3B detector systems.
virtual void PrintStack(Int_t iVerbose) const
Output to screen.
virtual void UpdateTrackIndex(TRefArray *detArray)
Update the track index in the MCTracks and MCPoints.
std::map< int, std::array< int, kLAST+1 > > fPointsMap
STL map from track index and detector ID to number of MCPoints.
virtual Int_t GetCurrentTrackNumber() const
Get the number of the current track Declared in TVirtualMCStack.
Int_t fIndex
Number of entries in fTracks.
void SelectTracks()
Mark tracks for output using selection criteria.
virtual void PushTrack(Int_t toBeDone, Int_t parentID, Int_t pdgCode, Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vx, Double_t vy, Double_t vz, Double_t time, Double_t polx, Double_t poly, Double_t polz, TMCProcess proc, Int_t &ntr, Double_t weight, Int_t is)
Add a TParticle to the stack.
virtual Int_t GetCurrentParentTrackNumber() const
Get the track number of the parent of the current track Declared in TVirtualMCStack.
TClonesArray * fParticles
Array of TParticles (contains all TParticles put into or created by the transport.
virtual void Register()
Register the MCTrack array to the Root Manager.
R3BStack & operator=(const R3BStack &)
Int_t fNParticles
Number of primary particles.
virtual void AddParticle(TParticle *part)
Add a TParticle to the fParticles array.
void SetMinPoints(Int_t min)
virtual TParticle * PopPrimaryForTracking(Int_t iPrim)
Get primary particle by index for tracking from stack Declared in TVirtualMCStack.
std::map< Int_t, Bool_t >::iterator fStoreIter
std::map< Int_t, Bool_t > fStoreMap
STL map from particle index to storage flag.
Bool_t fStoreSecondaries
index for MC units testing
TClonesArray * GetListOfParticles()
std::stack< TParticle * > fStack
STL stack (FILO) used to handle the TParticles for tracking.
virtual void Reset()
Resets arrays and stack and deletes particles and tracks.
virtual Int_t GetNtrack() const
Get total number of tracks Declared in TVirtualMCStack.
std::map< Int_t, Int_t >::iterator fIndexIter
void StoreSecondaries(Bool_t choice=kTRUE)
Modifiers.
Int_t fCurrentTrack
Some indizes and counters.
virtual TParticle * GetCurrentTrack() const
Get the current track's particle Declared in TVirtualMCStack.
std::map< Int_t, Int_t > fIndexMap
STL map from particle index to track index.
void StoreMothers(Bool_t choice=kTRUE)
virtual TParticle * PopNextTrack(Int_t &iTrack)
Get next particle for tracking from the stack.
void AddPoint(DetectorId iDet)
Increment number of points for the current track in a given detector.
virtual void SetCurrentTrack(Int_t iTrack)
Set the current track number Declared in TVirtualMCStack.
Int_t fMC
Used for merging.
void SetEnergyCut(Double_t eMin)
Int_t fNTracks
Number of entries in fParticles.
Int_t fNPrimaries
Index of current track.
virtual ~R3BStack()
Destructor.
TParticle * GetParticle(Int_t trackId) const
Accessors.
R3BStack(Int_t size=100)
Default constructor param size Estimated track number.
virtual void FillTrackArray()
Fill the MCTrack output array, applying filter criteria.
virtual Int_t GetNprimary() const
Get number of primary tracks Declared in TVirtualMCStack.
TClonesArray * fTracks
Array of R3BMCTracks containg the tracks written to the output.
R3BStack(const R3BStack &)