TVirtualMC


class description - source file - inheritance tree

class TVirtualMC : public TNamed

    private:
TVirtualMC& operator=(const TVirtualMC&) public:
virtual void ~TVirtualMC() virtual void BuildPhysics() static TClass* Class() virtual Int_t CurrentEvent() const virtual Int_t CurrentMaterial(Float_t& a, Float_t& z, Float_t& dens, Float_t& radl, Float_t& absl) const virtual Int_t CurrentVolID(Int_t& copyNo) const virtual const char* CurrentVolName() const virtual Int_t CurrentVolOffID(Int_t off, Int_t& copyNo) const virtual const char* CurrentVolOffName(Int_t off) const virtual void DefaultRange() virtual void DefineParticles() virtual void DrawOneSpec(const char* name) virtual Double_t Edep() const virtual Double_t Etot() const virtual void FinishGeometry() virtual void Gckmat(Int_t, char*) virtual void Gdhead(Int_t, const char*, Double_t = 0) virtual void Gdman(Double_t, Double_t, const char*) virtual void Gdopt(const char*, const char*) virtual void Gdraw(const char*, Double_t theta = 30, Double_t phi = 30, Double_t psi = 0, Double_t u0 = 10, Double_t v0 = 10, Double_t ul = 0.01, Double_t vl = 0.01) virtual void Gdtom(Float_t* xd, Float_t* xm, Int_t iflag) virtual void Gdtom(Double_t* xd, Double_t* xm, Int_t iflag) virtual TVirtualMCDecayer* GetDecayer() const virtual Int_t GetMaxNStep() const static TVirtualMC* GetMC() virtual Int_t GetMedium() const virtual TRandom* GetRandom() const virtual void GetSecondary(Int_t isec, Int_t& particleId, TLorentzVector& position, TLorentzVector& momentum) virtual TVirtualMCStack* GetStack() const virtual void Gfmate(Int_t imat, char* name, Float_t& a, Float_t& z, Float_t& dens, Float_t& radl, Float_t& absl, Float_t* ubuf, Int_t& nbuf) virtual void Gfmate(Int_t imat, char* name, Double_t& a, Double_t& z, Double_t& dens, Double_t& radl, Double_t& absl, Double_t* ubuf, Int_t& nbuf) virtual void Gfpart(Int_t, char*, Int_t&, Float_t&, Float_t&, Float_t&) virtual void Gmtod(Float_t* xm, Float_t* xd, Int_t iflag) virtual void Gmtod(Double_t* xm, Double_t* xd, Int_t iflag) virtual void Gsatt(const char* name, const char* att, Int_t val) virtual void Gsbool(const char* onlyVolName, const char* manyVolName) virtual void Gsdvn(const char* name, const char* mother, Int_t ndiv, Int_t iaxis) virtual void Gsdvn2(const char* name, const char* mother, Int_t ndiv, Int_t iaxis, Double_t c0i, Int_t numed) virtual void Gsdvt(const char* name, const char* mother, Double_t step, Int_t iaxis, Int_t numed, Int_t ndvmx) virtual void Gsdvt2(const char* name, const char* mother, Double_t step, Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx) virtual void Gsord(const char* name, Int_t iax) virtual void Gspart(Int_t, const char*, Int_t, Double_t, Double_t, Double_t) virtual void Gspos(const char* name, Int_t nr, const char* mother, Double_t x, Double_t y, Double_t z, Int_t irot, const char* konly = "ONLY") virtual void Gsposp(const char* name, Int_t nr, const char* mother, Double_t x, Double_t y, Double_t z, Int_t irot, const char* konly, Float_t* upar, Int_t np) virtual void Gsposp(const char* name, Int_t nr, const char* mother, Double_t x, Double_t y, Double_t z, Int_t irot, const char* konly, Double_t* upar, Int_t np) virtual void Gstpar(Int_t itmed, const char* param, Double_t parval) virtual Int_t Gsvolu(const char* name, const char* shape, Int_t nmed, Float_t* upar, Int_t np) virtual Int_t Gsvolu(const char* name, const char* shape, Int_t nmed, Double_t* upar, Int_t np) virtual void Gtreve() virtual void GtreveRoot() virtual Int_t IdFromPDG(Int_t id) const virtual void Init() virtual void InitLego() virtual TClass* IsA() const virtual Bool_t IsNewTrack() const virtual Bool_t IsTrackAlive() const virtual Bool_t IsTrackDisappeared() const virtual Bool_t IsTrackEntering() const virtual Bool_t IsTrackExiting() const virtual Bool_t IsTrackInside() const virtual Bool_t IsTrackOut() const virtual Bool_t IsTrackStop() const virtual void Material(Int_t& kmat, const char* name, Double_t a, Double_t z, Double_t dens, Double_t radl, Double_t absl, Float_t* buf, Int_t nwbuf) virtual void Material(Int_t& kmat, const char* name, Double_t a, Double_t z, Double_t dens, Double_t radl, Double_t absl, Double_t* buf, Int_t nwbuf) virtual void Matrix(Int_t& krot, Double_t thetaX, Double_t phiX, Double_t thetaY, Double_t phiY, Double_t thetaZ, Double_t phiZ) virtual Double_t MaxStep() const virtual void Medium(Int_t& kmed, const char* name, Int_t nmat, Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax, Double_t deemax, Double_t epsil, Double_t stmin, Float_t* ubuf, Int_t nbuf) virtual void Medium(Int_t& kmed, const char* name, Int_t nmat, Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax, Double_t deemax, Double_t epsil, Double_t stmin, Double_t* ubuf, Int_t nbuf) virtual void Mixture(Int_t& kmat, const char* name, Float_t* a, Float_t* z, Double_t dens, Int_t nlmat, Float_t* wmat) virtual void Mixture(Int_t& kmat, const char* name, Double_t* a, Double_t* z, Double_t dens, Int_t nlmat, Double_t* wmat) virtual Int_t NofVolumes() const virtual Int_t NSecondaries() const virtual Int_t PDGFromId(Int_t pdg) const virtual void ProcessEvent() virtual void ProcessRun(Int_t nevent) virtual TMCProcess ProdProcess(Int_t isec) const virtual void SetCerenkov(Int_t itmed, Int_t npckov, Float_t* ppckov, Float_t* absco, Float_t* effic, Float_t* rindex) virtual void SetCerenkov(Int_t itmed, Int_t npckov, Double_t* ppckov, Double_t* absco, Double_t* effic, Double_t* rindex) virtual void SetClipBox(const char*, Double_t = -9999, Double_t = 0, Double_t = -9999, Double_t = 0, Double_t = -9999, Double_t = 0) virtual void SetColors() virtual void SetCut(const char* cutName, Double_t cutValue) virtual void SetExternalDecayer(TVirtualMCDecayer* decayer) virtual void SetMaxNStep(Int_t) virtual void SetMaxStep(Double_t) virtual void SetProcess(const char* flagName, Int_t flagValue) virtual void SetRandom(TRandom* random) virtual void SetStack(TVirtualMCStack* stack) virtual void SetUserDecay(Int_t) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual Int_t StepProcesses(TArrayI& proc) const virtual void StopEvent() virtual void StopTrack() virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) virtual Double_t TrackCharge() const virtual Double_t TrackLength() const virtual Double_t TrackMass() const virtual void TrackMomentum(TLorentzVector& momentum) const virtual void TrackMomentum(Double_t& px, Double_t& py, Double_t& pz, Double_t& etot) const virtual Int_t TrackPid() const virtual void TrackPosition(TLorentzVector& position) const virtual void TrackPosition(Double_t& x, Double_t& y, Double_t& z) const virtual Double_t TrackStep() const virtual Double_t TrackTime() const virtual Int_t VolId(const Text_t* volName) const virtual Int_t VolId2Mate(Int_t id) const virtual const char* VolName(Int_t id) const virtual void WriteEuclid(const char*, const char*, Int_t, Int_t) virtual Double_t Xsec(char*, Double_t, Int_t, Int_t)

Data Members

    private:
static TVirtualMC* fgMC Monte Carlo singleton instance TVirtualMCStack* fStack ! Particles stack TVirtualMCDecayer* fDecayer ! External decayer TRandom* fRandom ! Random number generator protected:
TVirtualMCApplication* fApplication ! User MC application

Class Description

   Virtual MC provides a virtual interface to Monte Carlo.
   It enables the user to build a virtual Monte Carlo application
   independent of any actual underlying Monte Carlo implementation itself.

   A user will have to implement a class derived from the abstract
   Monte Carlo application class, and provide functions like
   ConstructGeometry(), BeginEvent(), FinishEvent(), ... .
   The concrete Monte Carlo (Geant3, Geant4) is selected at run time -
   when processing a ROOT macro where the concrete Monte Carlo is instantiated.
______________________________________________________________________________

~TVirtualMC()
 Destructor


void SetStack(TVirtualMCStack* stack)
 Set particles stack.


void SetExternalDecayer(TVirtualMCDecayer* decayer)
 Set external decayer.


void SetRandom(TRandom* random)
 Set random number generator.




Inline Functions


               TVirtualMC* GetMC()
                      void Gfmate(Int_t imat, char* name, Float_t& a, Float_t& z, Float_t& dens, Float_t& radl, Float_t& absl, Float_t* ubuf, Int_t& nbuf)
                      void Gfmate(Int_t imat, char* name, Double_t& a, Double_t& z, Double_t& dens, Double_t& radl, Double_t& absl, Double_t* ubuf, Int_t& nbuf)
                      void Material(Int_t& kmat, const char* name, Double_t a, Double_t z, Double_t dens, Double_t radl, Double_t absl, Float_t* buf, Int_t nwbuf)
                      void Material(Int_t& kmat, const char* name, Double_t a, Double_t z, Double_t dens, Double_t radl, Double_t absl, Double_t* buf, Int_t nwbuf)
                      void Mixture(Int_t& kmat, const char* name, Float_t* a, Float_t* z, Double_t dens, Int_t nlmat, Float_t* wmat)
                      void Mixture(Int_t& kmat, const char* name, Double_t* a, Double_t* z, Double_t dens, Int_t nlmat, Double_t* wmat)
                      void Medium(Int_t& kmed, const char* name, Int_t nmat, Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax, Double_t deemax, Double_t epsil, Double_t stmin, Float_t* ubuf, Int_t nbuf)
                      void Medium(Int_t& kmed, const char* name, Int_t nmat, Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax, Double_t deemax, Double_t epsil, Double_t stmin, Double_t* ubuf, Int_t nbuf)
                      void Matrix(Int_t& krot, Double_t thetaX, Double_t phiX, Double_t thetaY, Double_t phiY, Double_t thetaZ, Double_t phiZ)
                      void Gstpar(Int_t itmed, const char* param, Double_t parval)
                     Int_t Gsvolu(const char* name, const char* shape, Int_t nmed, Float_t* upar, Int_t np)
                     Int_t Gsvolu(const char* name, const char* shape, Int_t nmed, Double_t* upar, Int_t np)
                      void Gsdvn(const char* name, const char* mother, Int_t ndiv, Int_t iaxis)
                      void Gsdvn2(const char* name, const char* mother, Int_t ndiv, Int_t iaxis, Double_t c0i, Int_t numed)
                      void Gsdvt(const char* name, const char* mother, Double_t step, Int_t iaxis, Int_t numed, Int_t ndvmx)
                      void Gsdvt2(const char* name, const char* mother, Double_t step, Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx)
                      void Gsord(const char* name, Int_t iax)
                      void Gspos(const char* name, Int_t nr, const char* mother, Double_t x, Double_t y, Double_t z, Int_t irot, const char* konly = "ONLY")
                      void Gsposp(const char* name, Int_t nr, const char* mother, Double_t x, Double_t y, Double_t z, Int_t irot, const char* konly, Float_t* upar, Int_t np)
                      void Gsposp(const char* name, Int_t nr, const char* mother, Double_t x, Double_t y, Double_t z, Int_t irot, const char* konly, Double_t* upar, Int_t np)
                      void Gsbool(const char* onlyVolName, const char* manyVolName)
                      void SetCerenkov(Int_t itmed, Int_t npckov, Float_t* ppckov, Float_t* absco, Float_t* effic, Float_t* rindex)
                      void SetCerenkov(Int_t itmed, Int_t npckov, Double_t* ppckov, Double_t* absco, Double_t* effic, Double_t* rindex)
                      void DrawOneSpec(const char* name)
                      void Gsatt(const char* name, const char* att, Int_t val)
                      void Gdraw(const char*, Double_t theta = 30, Double_t phi = 30, Double_t psi = 0, Double_t u0 = 10, Double_t v0 = 10, Double_t ul = 0.01, Double_t vl = 0.01)
                      void WriteEuclid(const char*, const char*, Int_t, Int_t)
                     Int_t VolId(const Text_t* volName) const
               const char* VolName(Int_t id) const
                     Int_t NofVolumes() const
                     Int_t VolId2Mate(Int_t id) const
                      void SetCut(const char* cutName, Double_t cutValue)
                      void SetProcess(const char* flagName, Int_t flagValue)
                  Double_t Xsec(char*, Double_t, Int_t, Int_t)
                     Int_t IdFromPDG(Int_t id) const
                     Int_t PDGFromId(Int_t pdg) const
                      void DefineParticles()
                      void StopTrack()
                      void StopEvent()
                      void SetMaxStep(Double_t)
                      void SetMaxNStep(Int_t)
                      void SetUserDecay(Int_t)
                     Int_t CurrentVolID(Int_t& copyNo) const
                     Int_t CurrentVolOffID(Int_t off, Int_t& copyNo) const
               const char* CurrentVolName() const
               const char* CurrentVolOffName(Int_t off) const
                     Int_t CurrentMaterial(Float_t& a, Float_t& z, Float_t& dens, Float_t& radl, Float_t& absl) const
                     Int_t CurrentEvent() const
                      void Gmtod(Float_t* xm, Float_t* xd, Int_t iflag)
                      void Gmtod(Double_t* xm, Double_t* xd, Int_t iflag)
                      void Gdtom(Float_t* xd, Float_t* xm, Int_t iflag)
                      void Gdtom(Double_t* xd, Double_t* xm, Int_t iflag)
                  Double_t MaxStep() const
                     Int_t GetMaxNStep() const
                     Int_t GetMedium() const
                      void TrackPosition(TLorentzVector& position) const
                      void TrackPosition(Double_t& x, Double_t& y, Double_t& z) const
                      void TrackMomentum(TLorentzVector& momentum) const
                      void TrackMomentum(Double_t& px, Double_t& py, Double_t& pz, Double_t& etot) const
                  Double_t TrackStep() const
                  Double_t TrackLength() const
                  Double_t TrackTime() const
                  Double_t Edep() const
                     Int_t TrackPid() const
                  Double_t TrackCharge() const
                  Double_t TrackMass() const
                  Double_t Etot() const
                    Bool_t IsNewTrack() const
                    Bool_t IsTrackInside() const
                    Bool_t IsTrackEntering() const
                    Bool_t IsTrackExiting() const
                    Bool_t IsTrackOut() const
                    Bool_t IsTrackDisappeared() const
                    Bool_t IsTrackStop() const
                    Bool_t IsTrackAlive() const
                     Int_t NSecondaries() const
                      void GetSecondary(Int_t isec, Int_t& particleId, TLorentzVector& position, TLorentzVector& momentum)
                TMCProcess ProdProcess(Int_t isec) const
                     Int_t StepProcesses(TArrayI& proc) const
                      void Gdopt(const char*, const char*)
                      void SetClipBox(const char*, Double_t = -9999, Double_t = 0, Double_t = -9999, Double_t = 0, Double_t = -9999, Double_t = 0)
                      void DefaultRange()
                      void Gdhead(Int_t, const char*, Double_t = 0)
                      void Gdman(Double_t, Double_t, const char*)
                      void SetColors()
                      void Gtreve()
                      void GtreveRoot()
                      void Gckmat(Int_t, char*)
                      void InitLego()
                      void Gfpart(Int_t, char*, Int_t&, Float_t&, Float_t&, Float_t&)
                      void Gspart(Int_t, const char*, Int_t, Double_t, Double_t, Double_t)
                      void Init()
                      void FinishGeometry()
                      void BuildPhysics()
                      void ProcessEvent()
                      void ProcessRun(Int_t nevent)
          TVirtualMCStack* GetStack() const
        TVirtualMCDecayer* GetDecayer() const
                  TRandom* GetRandom() const
               TVirtualMC& operator=(const TVirtualMC&)
                   TClass* Class()
                   TClass* IsA() const
                      void ShowMembers(TMemberInspector& insp, char* parent)
                      void Streamer(TBuffer& b)
                      void StreamerNVirtual(TBuffer& b)


Last update: root/mc:$Name: $:$Id: TVirtualMC.cxx,v 1.5 2002/11/15 17:53:14 brun Exp $
Copyright (c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *


ROOT page - Class index - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.