13 #ifndef ROOT_TGeoMCGeometry
14 #define ROOT_TGeoMCGeometry
31 class TGeoMCGeometry :
public TVirtualMCGeometry {
34 TGeoMCGeometry(
const char* name,
const char* title,
35 Bool_t g3CompatibleVolumeNames =
false);
37 virtual ~TGeoMCGeometry();
40 virtual void Material(Int_t& kmat,
const char* name, Double_t a,
41 Double_t z, Double_t dens, Double_t radl, Double_t absl,
42 Float_t* buf, Int_t nwbuf);
43 virtual void Material(Int_t& kmat,
const char* name, Double_t a,
44 Double_t z, Double_t dens, Double_t radl, Double_t absl,
45 Double_t* buf, Int_t nwbuf);
46 virtual void Mixture(Int_t& kmat,
const char *name, Float_t *a,
47 Float_t *z, Double_t dens, Int_t nlmat, Float_t *wmat);
48 virtual void Mixture(Int_t& kmat,
const char *name, Double_t *a,
49 Double_t *z, Double_t dens, Int_t nlmat, Double_t *wmat);
50 virtual void Medium(Int_t& kmed,
const char *name, Int_t nmat,
51 Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd,
52 Double_t stemax, Double_t deemax, Double_t epsil,
53 Double_t stmin, Float_t* ubuf, Int_t nbuf);
54 virtual void Medium(Int_t& kmed,
const char *name, Int_t nmat,
55 Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd,
56 Double_t stemax, Double_t deemax, Double_t epsil,
57 Double_t stmin, Double_t* ubuf, Int_t nbuf);
58 virtual void Matrix(Int_t& krot, Double_t thetaX, Double_t phiX,
59 Double_t thetaY, Double_t phiY, Double_t thetaZ,
63 virtual Int_t Gsvolu(
const char *name,
const char *shape, Int_t nmed,
64 Float_t *upar, Int_t np);
65 virtual Int_t Gsvolu(
const char *name,
const char *shape, Int_t nmed,
66 Double_t *upar, Int_t np);
67 virtual void Gsdvn(
const char *name,
const char *mother, Int_t ndiv,
69 virtual void Gsdvn2(
const char *name,
const char *mother, Int_t ndiv,
70 Int_t iaxis, Double_t c0i, Int_t numed);
71 virtual void Gsdvt(
const char *name,
const char *mother, Double_t step,
72 Int_t iaxis, Int_t numed, Int_t ndvmx);
73 virtual void Gsdvt2(
const char *name,
const char *mother, Double_t step,
74 Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx);
75 virtual void Gsord(
const char *name, Int_t iax);
76 virtual void Gspos(
const char *name, Int_t nr,
const char *mother,
77 Double_t x, Double_t y, Double_t z, Int_t irot,
79 virtual void Gsposp(
const char *name, Int_t nr,
const char *mother,
80 Double_t x, Double_t y, Double_t z, Int_t irot,
81 const char *konly, Float_t *upar, Int_t np);
82 virtual void Gsposp(
const char *name, Int_t nr,
const char *mother,
83 Double_t x, Double_t y, Double_t z, Int_t irot,
84 const char *konly, Double_t *upar, Int_t np);
85 virtual void Gsbool(
const char* ,
const char* ) {}
92 virtual Bool_t GetTransformation(
const TString& volumePath,
97 virtual Bool_t GetShape(
const TString& volumePath,
98 TString& shapeType, TArrayD& par);
102 virtual Bool_t GetMaterial(
const TString& volumeName,
103 TString& name, Int_t& imat,
104 Double_t& a, Double_t& z, Double_t& density,
105 Double_t& radl, Double_t& inter, TArrayD& par);
109 virtual Bool_t GetMedium(
const TString& volumeName,
110 TString& name, Int_t& imed,
111 Int_t& nmat, Int_t& isvol, Int_t& ifield,
112 Double_t& fieldm, Double_t& tmaxfd, Double_t& stemax,
113 Double_t& deemax, Double_t& epsil, Double_t& stmin,
126 virtual Int_t VolId(
const char* volName)
const;
127 virtual const char* VolName(Int_t
id)
const;
128 virtual Int_t MediumId(
const char* mediumName)
const;
129 virtual Int_t NofVolumes()
const;
130 virtual Int_t NofVolDaughters(
const char* volName)
const;
131 virtual const char* VolDaughterName(
const char* volName, Int_t i)
const;
132 virtual Int_t VolDaughterCopyNo(
const char* volName, Int_t i)
const;
133 virtual Int_t VolId2Mate(Int_t
id)
const;
136 TGeoMCGeometry(
const TGeoMCGeometry& );
137 TGeoMCGeometry& operator=(
const TGeoMCGeometry& );
139 TGeoManager* GetTGeoManager()
const;
141 Double_t* CreateDoubleArray(Float_t* array, Int_t size)
const;
142 void Vname(
const char *name,
char *vname)
const;
145 Bool_t fG3CompatibleVolumeNames;
147 static TGeoMCGeometry* fgInstance;
149 ClassDef(TGeoMCGeometry,2)