13 #ifndef ROOT_TVirtualMCStack 
   14 #define ROOT_TVirtualMCStack 
   26 class TVirtualMCStack : 
public TObject {
 
   33    virtual ~TVirtualMCStack();
 
   52    virtual void  PushTrack(Int_t toBeDone, Int_t parent, Int_t pdg,
 
   53                            Double_t px, Double_t py, Double_t pz, Double_t e,
 
   54                            Double_t vx, Double_t vy, Double_t vz, Double_t tof,
 
   55                            Double_t polx, Double_t poly, Double_t polz,
 
   56                            TMCProcess mech, Int_t& ntr, Double_t weight,
 
   62    virtual TParticle* PopNextTrack(Int_t& itrack) = 0;
 
   67    virtual TParticle* PopPrimaryForTracking(Int_t i) = 0;
 
   74    virtual void       SetCurrentTrack(Int_t trackNumber) = 0;
 
   81    virtual Int_t      GetNtrack()    
const = 0;
 
   84    virtual Int_t      GetNprimary()  
const = 0;
 
   87    virtual TParticle* GetCurrentTrack() 
const= 0;
 
   90    virtual Int_t      GetCurrentTrackNumber() 
const = 0;
 
   93    virtual Int_t      GetCurrentParentTrackNumber() 
const = 0;
 
   95    ClassDef(TVirtualMCStack,1) 
 
   98 #endif //ROOT_TVirtualMCStack