13 #ifndef ROOT_TVirtualMC
14 #define ROOT_TVirtualMC
193 virtual void Gsdvn(
const char *name,
const char *mother,
Int_t ndiv,
200 virtual void Gsdvn2(
const char *name,
const char *mother,
Int_t ndiv,
211 virtual void Gsdvt(
const char *name,
const char *mother,
Double_t step,
222 virtual void Gsdvt2(
const char *name,
const char *mother,
Double_t step,
228 virtual void Gsord(
const char *name,
Int_t iax) = 0;
240 virtual void Gspos(
const char *name,
Int_t nr,
const char *mother,
242 const char *konly=
"ONLY") = 0;
246 virtual void Gsposp(
const char *name,
Int_t nr,
const char *mother,
251 virtual void Gsposp(
const char *name,
Int_t nr,
const char *mother,
259 virtual void Gsbool(
const char* onlyVolName,
const char* manyVolName) = 0;
307 const char* vol1Name,
int vol1CopyNo,
308 const char* vol2Name,
int vol2CopyNo,
309 const char* opSurfaceName) = 0;
318 const char* opSurfaceName) = 0;
328 Int_t itmed,
const char* propertyName,
337 Int_t itmed,
const char* propertyName,
348 const char* surfaceName,
const char* propertyName,
396 virtual void WriteEuclid(
const char* filnam,
const char* topvol,
414 virtual Int_t VolId(
const char* volName)
const = 0;
798 virtual void Init() = 0;
866 #if !defined(__CINT__)
880 #define gMC (TVirtualMC::GetMC())
882 #endif //ROOT_TVirtualMC
virtual Bool_t IsTrackExiting() const =0
virtual void Gsdvn(const char *name, const char *mother, Int_t ndiv, Int_t iaxis)=0
virtual void SetUserParameters(Bool_t isUserParameters)=0
virtual Bool_t SetCut(const char *cutName, Double_t cutValue)=0
virtual Int_t VolDaughterCopyNo(const char *volName, Int_t i) const =0
virtual void Gsord(const char *name, Int_t iax)=0
virtual TVirtualMCStack * GetStack() const
virtual Double_t Etot() const =0
virtual Double_t ParticleLifeTime(Int_t pdg) const =0
virtual TMCProcess ProdProcess(Int_t isec) const =0
virtual Int_t VolId2Mate(Int_t id) const =0
TVirtualMC & operator=(const TVirtualMC &)
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)=0
virtual const char * VolName(Int_t id) const =0
virtual Int_t IdFromPDG(Int_t pdg) const =0
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")=0
TRandom * fRandom
External decayer.
virtual Int_t CurrentMedium() const =0
virtual void SetMaxNStep(Int_t)=0
virtual void StopTrack()=0
TVirtualMCDecayer * fDecayer
Particles stack.
virtual Int_t MediumId(const char *mediumName) const =0
virtual Double_t ParticleMass(Int_t pdg) const =0
static TMCThreadLocal TVirtualMC * fgMC
virtual Bool_t GetMaterial(Int_t imat, TString &name, Double_t &a, Double_t &z, Double_t &density, Double_t &radl, Double_t &inter, TArrayD &par)=0
virtual Double_t TrackTime() const =0
virtual void TrackMomentum(TLorentzVector &momentum) const =0
virtual void SetRootGeometry()=0
virtual void InitLego()=0
virtual TVirtualMCDecayer * GetDecayer() const
virtual Bool_t DefineIon(const char *name, Int_t Z, Int_t A, Int_t Q, Double_t excEnergy, Double_t mass=0.)=0
virtual Double_t TrackCharge() const =0
virtual Bool_t CurrentBoundaryNormal(Double_t &x, Double_t &y, Double_t &z) const =0
virtual Int_t GetMaxNStep() const =0
virtual void ForceDecayTime(Float_t)=0
virtual void Gdtom(Float_t *xd, Float_t *xm, Int_t iflag)=0
Array of integers (32 bits per element).
virtual const char * CurrentVolName() const =0
virtual Bool_t GetShape(const TString &volumePath, TString &shapeType, TArrayD &par)=0
virtual ~TVirtualMC()
Destructor.
virtual Bool_t IsTrackAlive() const =0
#define ClassDef(name, id)
TVirtualMC()
Default constructor.
This is the base class for the ROOT Random number generators.
virtual void TrackPosition(TLorentzVector &position) const =0
The TNamed class is the base class for all named ROOT classes.
virtual Bool_t GetTransformation(const TString &volumePath, TGeoHMatrix &matrix)=0
virtual void Gsbool(const char *onlyVolName, const char *manyVolName)=0
virtual Int_t NSecondaries() const =0
virtual void DefineOpSurface(const char *name, EMCOpSurfaceModel model, EMCOpSurfaceType surfaceType, EMCOpSurfaceFinish surfaceFinish, Double_t sigmaAlpha)=0
virtual void Gmtod(Float_t *xm, Float_t *xd, Int_t iflag)=0
virtual void WriteEuclid(const char *filnam, const char *topvol, Int_t number, Int_t nlevel)=0
virtual Int_t CurrentVolOffID(Int_t off, Int_t ©No) const =0
virtual void SetCollectTracks(Bool_t collectTracks)=0
virtual Int_t CurrentEvent() const =0
virtual void SetBorderSurface(const char *name, const char *vol1Name, int vol1CopyNo, const char *vol2Name, int vol2CopyNo, const char *opSurfaceName)=0
virtual Double_t Edep() const =0
virtual Bool_t SecondariesAreOrdered() const =0
virtual Bool_t IsTrackInside() const =0
virtual Int_t CurrentVolID(Int_t ©No) const =0
virtual Int_t StepProcesses(TArrayI &proc) const =0
virtual Double_t TrackStep() const =0
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)=0
TVirtualMCApplication * fApplication
TVirtualMagField * fMagField
Random number generator.
virtual Double_t TrackLength() const =0
virtual Double_t TrackMass() const =0
virtual Bool_t IsNewTrack() const =0
virtual Int_t PDGFromId(Int_t id) const =0
virtual Double_t MaxStep() const =0
virtual void GetSecondary(Int_t isec, Int_t &particleId, TLorentzVector &position, TLorentzVector &momentum)=0
virtual Bool_t IsTrackDisappeared() const =0
virtual void SetUserDecay(Int_t pdg)=0
virtual void SetCerenkov(Int_t itmed, Int_t npckov, Float_t *ppckov, Float_t *absco, Float_t *effic, Float_t *rindex)=0
virtual const char * CurrentVolOffName(Int_t off) const =0
virtual Int_t Gsvolu(const char *name, const char *shape, Int_t nmed, Float_t *upar, Int_t np)=0
virtual Bool_t SetProcess(const char *flagName, Int_t flagValue)=0
virtual void StopEvent()=0
virtual Bool_t ProcessRun(Int_t nevent)=0
virtual const char * CurrentVolPath()=0
virtual void Mixture(Int_t &kmat, const char *name, Float_t *a, Float_t *z, Double_t dens, Int_t nlmat, Float_t *wmat)=0
virtual void SetSkinSurface(const char *name, const char *volName, const char *opSurfaceName)=0
virtual Double_t ParticleCharge(Int_t pdg) const =0
virtual void SetMaterialProperty(Int_t itmed, const char *propertyName, Int_t np, Double_t *pp, Double_t *values)=0
virtual Bool_t IsMT() const
virtual TString ParticleName(Int_t pdg) const =0
virtual void SetMagField(TVirtualMagField *field)
Set magnetic field.
virtual void ProcessEvent()=0
virtual void SetRandom(TRandom *random)
Set random number generator.
virtual TMCParticleType ParticleMCType(Int_t pdg) const =0
virtual Bool_t IsCollectTracks() const =0
virtual Double_t Xsec(char *, Double_t, Int_t, Int_t)=0
virtual const char * VolDaughterName(const char *volName, Int_t i) const =0
virtual void BuildPhysics()=0
Array of doubles (64 bits per element).
virtual Bool_t DefineParticle(Int_t pdg, const char *name, TMCParticleType mcType, Double_t mass, Double_t charge, Double_t lifetime)=0
virtual Bool_t IsTrackEntering() const =0
virtual void Gsdvt(const char *name, const char *mother, Double_t step, Int_t iaxis, Int_t numed, Int_t ndvmx)=0
virtual void SetExternalDecayer(TVirtualMCDecayer *decayer)
Set external decayer.
virtual void Gstpar(Int_t itmed, const char *param, Double_t parval)=0
virtual Int_t CurrentMaterial(Float_t &a, Float_t &z, Float_t &dens, Float_t &radl, Float_t &absl) const =0
virtual void SetStack(TVirtualMCStack *stack)
Set particles stack.
virtual Bool_t IsTrackOut() const =0
virtual Int_t TrackPid() const =0
virtual void Gsdvn2(const char *name, const char *mother, Int_t ndiv, Int_t iaxis, Double_t c0i, Int_t numed)=0
virtual void SetMaxStep(Double_t)=0
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)=0
virtual Int_t NofVolumes() const =0
virtual Bool_t SetDecayMode(Int_t pdg, Float_t bratio[6], Int_t mode[6][3])=0
virtual void Gsdvt2(const char *name, const char *mother, Double_t step, Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx)=0
std::complex< float_v > Z
virtual void Matrix(Int_t &krot, Double_t thetaX, Double_t phiX, Double_t thetaY, Double_t phiY, Double_t thetaZ, Double_t phiZ)=0
virtual Int_t VolId(const char *volName) const =0
virtual TRandom * GetRandom() const
virtual Bool_t GetMedium(const TString &volumeName, TString &name, Int_t &imed, 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, TArrayD &par)=0
virtual TVirtualMagField * GetMagField() const
virtual Int_t NofVolDaughters(const char *volName) const =0
static TVirtualMC * GetMC()
static: return virtual MC object
virtual Bool_t IsTrackStop() const =0
virtual Bool_t IsRootGeometrySupported() const =0