class TParticle;
class TString;
class TTree;
+#include <TClonesArray.h>
#include <TArrayI.h>
#include <TVirtualMCStack.h>
// methods
virtual void PushTrack(Int_t done, Int_t parent, Int_t pdg,
- Float_t *pmom, Float_t *vpos, Float_t *polar,
+ const Float_t *pmom, const Float_t *vpos, const Float_t *polar,
Float_t tof, TMCProcess mech, Int_t &ntr,
Float_t weight, Int_t is);
void ConnectTree(TTree* tree);
Bool_t GetEvent();
- void PurifyKine();
- void ReorderKine();
+ Bool_t PurifyKine();
+ Bool_t ReorderKine();
void FinishEvent();
void FlagTrack(Int_t track);
void KeepTrack(Int_t itrack);
Int_t GetNprimary() const;
virtual Int_t GetCurrentTrackNumber() const;
virtual Int_t GetCurrentParentTrackNumber() const;
- TObjArray* Particles() const;
TParticle* Particle(Int_t id);
Int_t GetPrimary(Int_t id);
- TTree* TreeK();
+ TTree* TreeK() const {return fTreeK;}
TParticle* ParticleFromTreeK(Int_t id) const;
Int_t TreeKEntry(Int_t id) const;
Bool_t IsPhysicalPrimary(Int_t i);
- Int_t TrackLabel(Int_t label) {return fTrackLabelMap[label];}
+ Int_t TrackLabel(Int_t label) const {return fTrackLabelMap[label];}
Int_t* TrackLabelMap() {return fTrackLabelMap.GetArray();}
-
+ const TObjArray* Particles() const;
+
protected:
// methods
void CleanParents();
void ResetArrays(Int_t size);
+ TParticle* GetParticleMapEntry(Int_t id) const;
TParticle* GetNextParticle();
- Bool_t KeepPhysics(TParticle* part);
+ Bool_t KeepPhysics(const TParticle* part);
Bool_t IsStable(Int_t pdg) const;
private:
void Copy(TObject &st) const;
// data members
- TClonesArray *fParticles; //! Pointer to list of particles
- TObjArray *fParticleMap; //! Map of particles in the supporting TClonesArray
+ TClonesArray fParticles; //! Pointer to list of particles
+ TObjArray fParticleMap; //! Map of particles in the supporting TClonesArray
TArrayI fParticleFileMap; // Map for particle ids
TParticle *fParticleBuffer; //! Pointer to current particle for writing
TParticle *fCurrentTrack; //! Pointer to particle currently transported
inline void AliStack::SetNtrack(Int_t ntrack)
{ fNtrack = ntrack; }
-inline void AliStack::SetCurrentTrack(Int_t track)
-{ fCurrent = track; }
-
inline Int_t AliStack::GetNtrack() const
{ return fNtrack; }
inline Int_t AliStack::GetCurrentTrackNumber() const
{ return fCurrent; }
-inline TObjArray* AliStack::Particles() const
-{ return fParticleMap; }
+inline const TObjArray* AliStack::Particles() const
+{ return &fParticleMap; }
+
+// inline protected
+
+inline TParticle* AliStack::GetParticleMapEntry(Int_t id) const
+{ return (TParticle*) fParticleMap.At(id); }
#endif //ALI_STACK_H