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