20#ifndef ROOT_TVirtualMCStack
21#define ROOT_TVirtualMCStack
59 virtual void PushTrack(Int_t toBeDone, Int_t parent, Int_t pdg, Double_t px, Double_t py, Double_t pz, Double_t e,
60 Double_t vx, Double_t vy, Double_t vz, Double_t tof, Double_t polx, Double_t poly,
61 Double_t polz,
TMCProcess mech, Int_t &ntr, Double_t weight, Int_t is) = 0;
TMCProcess
VMC physics process codes.
Interface to a user defined particles stack.
virtual ~TVirtualMCStack()
Destructor.
virtual TParticle * PopNextTrack(Int_t &itrack)=0
The stack has to provide two pop mechanisms: The first pop mechanism required.
TVirtualMCStack()
Default constructor.
virtual Int_t GetNprimary() const =0
Total number of primary tracks.
virtual Int_t GetCurrentTrackNumber() const =0
Current track number.
virtual TParticle * GetCurrentTrack() const =0
Current track particle.
virtual Int_t GetNtrack() const =0
Total number of tracks.
virtual void SetCurrentTrack(Int_t trackNumber)=0
Set the current track number.
virtual void PushTrack(Int_t toBeDone, 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)=0
Create a new particle and push into stack;.
virtual TParticle * PopPrimaryForTracking(Int_t i)=0
The second pop mechanism required.
virtual Int_t GetCurrentParentTrackNumber() const =0
Number of the parent of the current track.