]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliStack.h
Corrected protection.
[u/mrichter/AliRoot.git] / STEER / AliStack.h
index 5e1f05c220fc5c13a38f0d6ead6657769f5b52b3..2c72b9dd6e16a5411e1f58b640d1c92c9d98a1e5 100644 (file)
@@ -15,6 +15,7 @@ class TObjArray;
 class TParticle;
 class TString;
 class TTree;
+#include <TClonesArray.h>
 #include <TArrayI.h>
 #include <TVirtualMCStack.h>
 
@@ -36,7 +37,7 @@ class AliStack : public TVirtualMCStack
     // 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);
 
@@ -53,8 +54,8 @@ class AliStack : public TVirtualMCStack
 
     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); 
@@ -73,29 +74,30 @@ class AliStack : public TVirtualMCStack
     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
@@ -115,9 +117,6 @@ class AliStack : public TVirtualMCStack
 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; }
 
@@ -127,7 +126,12 @@ inline Int_t AliStack::GetNprimary() const
 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