]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliStack.h
Merging the VirtualMC branch to the main development branch (HEAD)
[u/mrichter/AliRoot.git] / STEER / AliStack.h
index e46d1994fc275d8f34e2271d59490b60111a1c65..d0bdc6ad59f1033fa5f44b6fd7ed65b403424c92 100644 (file)
@@ -8,8 +8,8 @@
 #include <TObject.h>
 #include <TArrayI.h>
 #include <TStopwatch.h>
-
-#include "AliMCProcess.h"
+#include <TVirtualMCStack.h>
+#include <TMCProcess.h>
 
 class TObjArray;
 class TClonesArray;
@@ -20,7 +20,7 @@ class TTree;
 
 
 
-class AliStack : public TObject
+class AliStack : public TVirtualMCStack
 {
   public:
     // creators, destructors
@@ -29,22 +29,23 @@ class AliStack : public TObject
     virtual ~AliStack();
 
     // methods
+    virtual void  SetTrack(Int_t done, Int_t parent, Int_t pdg, 
+                     Float_t *pmom, Float_t *vpos, Float_t *polar, 
+                      Float_t tof, TMCProcess mech, Int_t &ntr,
+                      Float_t weight, Int_t is);
+    virtual void  SetTrack(Int_t done, 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* GetNextTrack(Int_t& track);
+    virtual TParticle* GetPrimaryForTracking(Int_t i);    
+
     void  MakeTree(Int_t event, const char *file);
     void  BeginEvent(Int_t event);
     void  FinishRun();
     Bool_t GetEvent(Int_t nevent);
-    void  SetTrack(Int_t done, Int_t parent, Int_t pdg, 
-                  Float_t *pmom, Float_t *vpos, Float_t *polar, 
-                   Float_t tof, AliMCProcess mech, Int_t &ntr,
-                   Float_t weight = 1, Int_t is = 0);
-    void  SetTrack(Int_t done, 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,
-                  AliMCProcess mech, Int_t &ntr, Float_t weight = 1,
-                  Int_t is = 0);
-    void  GetNextTrack(Int_t &mtrack, Int_t &ipart, Float_t *pmom,
-                  Float_t &e, Float_t *vpos, Float_t *polar, Float_t &tof);
     void  PurifyKine();
     void  FinishEvent();
     void  FlagTrack(Int_t track);
@@ -56,12 +57,12 @@ class AliStack : public TObject
 
     // set methods
     void  SetNtrack(Int_t ntrack);
-    void  SetCurrentTrack(Int_t track);                           
+    virtual void  SetCurrentTrack(Int_t track);                           
     void  SetHighWaterMark(Int_t hgwmk);    
     // get methods
-    Int_t       GetNtrack() const;
+    virtual Int_t GetNtrack() const;
     Int_t       GetNprimary() const;
-    Int_t       CurrentTrack() const;
+    virtual Int_t CurrentTrack() const;
     TObjArray*  Particles() const;
     TParticle*  Particle(Int_t id);
     Int_t       GetPrimary(Int_t id);
@@ -87,8 +88,8 @@ class AliStack : public TObject
     Int_t          fCurrentPrimary;    //! Last primary track returned from the stack
     Int_t          fHgwmk;             //! Last track purified
     Int_t          fLoadPoint;         //! Next free position in the particle buffer
-    TStopwatch     fTimer;             //! Timer object
-    ClassDef(AliStack,2) //Particles stack
+    
+    ClassDef(AliStack,3) //Particles stack
 };
 
 // inline