]>
Commit | Line | Data |
---|---|---|
ab2f6604 | 1 | #ifndef AliGEODB_H |
2 | #define AliGEODB_H | |
3da30618 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
ab2f6604 | 8 | //////////////////////////////////////////////// |
9 | // C++ interface to Geant3 basic routines // | |
10 | //////////////////////////////////////////////// | |
11 | ||
12 | #include <AliMC.h> | |
13 | #include "AliGNode.h" | |
14 | ||
15 | class AliGEODB : public AliMC { | |
16 | ||
17 | public: | |
18 | AliGEODB() {} | |
19 | AliGEODB(const char *title, Int_t nwgeant=0); | |
20 | virtual ~AliGEODB() {} | |
21 | ||
22 | /////////////////////////////////////////////////////////////////////// | |
23 | // // | |
24 | // // | |
25 | // Here are the service routines from the geometry // | |
26 | // which could be implemented also in other geometries // | |
27 | // // | |
28 | // // | |
29 | /////////////////////////////////////////////////////////////////////// | |
30 | ||
31 | void GeomIter(); | |
32 | Int_t CurrentMaterial(Float_t &a, Float_t &z, Float_t &dens, Float_t &radl, Float_t &absl) const; | |
33 | Int_t NextVolUp(Text_t *name, Int_t ©); | |
34 | Int_t CurrentVol(Text_t *name, Int_t ©) const; | |
35 | Int_t CurrentVolOff(Int_t off, Text_t *name, Int_t ©) const; | |
36 | Int_t VolId(Text_t *name) const; | |
37 | const char* VolName(Int_t id) const; | |
38 | void TrackPosition(Float_t *xyz) const; | |
39 | void TrackMomentum(Float_t *xyz) const; | |
40 | Int_t NofVolumes() const; | |
41 | Float_t TrackTime() const; | |
42 | Float_t TrackCharge() const; | |
43 | Float_t TrackMass() const; | |
44 | Float_t TrackStep() const; | |
45 | Float_t TrackLength() const; | |
46 | Int_t TrackPid() const; | |
47 | Bool_t TrackInside() const; | |
48 | Bool_t TrackEntering() const; | |
49 | Bool_t TrackExiting() const; | |
50 | Bool_t TrackOut() const; | |
51 | Bool_t TrackDisappear() const; | |
52 | Bool_t TrackStop() const; | |
53 | Bool_t TrackAlive() const; | |
54 | Int_t NSecondaries() const; | |
55 | Int_t CurrentEvent() const; | |
56 | void ProdProcess(char*) const; | |
57 | void GetSecondary(Int_t, Int_t&, Float_t*, Float_t*); | |
58 | void StopTrack(); | |
59 | void StopEvent(); | |
60 | Float_t MaxStep() const; | |
61 | void SetColors(); | |
62 | void SetMaxStep(Float_t maxstep); | |
63 | void SetMaxNStep(Int_t maxnstp); | |
64 | Int_t GetMaxNStep() const; | |
65 | void GetParticle(const Int_t ipart, char *name, Float_t &mass) const; | |
66 | virtual Int_t GetMedium() const; | |
67 | virtual Float_t Edep() const; | |
68 | virtual Float_t Etot() const; | |
69 | virtual void Rndm(Float_t* r, const Int_t n) const; | |
70 | virtual void Material(Int_t&, const char*, Float_t, Float_t, Float_t, Float_t, | |
71 | Float_t, Float_t* buf=0, Int_t nwbuf=0); | |
72 | virtual void Mixture(Int_t&, const char*, Float_t*, Float_t*, Float_t, Int_t, Float_t*); | |
73 | virtual void Medium(Int_t&, const char*, Int_t, Int_t, Int_t, Float_t, Float_t, | |
74 | Float_t, Float_t, Float_t, Float_t, Float_t* ubuf=0, Int_t nbuf=0); | |
75 | virtual void Matrix(Int_t&, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t); | |
76 | ||
77 | // functions from GBASE | |
78 | virtual void Gpcxyz(); | |
79 | virtual void Ggclos(); | |
80 | ||
81 | virtual void SetVisibility(Text_t* name, Int_t val); | |
82 | virtual void DrawTree( AliGNode* topnode, Int_t tabs ); | |
83 | ||
84 | virtual void Gfile(const char *filename, const char *option="I"); | |
85 | virtual void Glast(); | |
86 | virtual void Gprint(const char *name); | |
87 | virtual void Grun(); | |
88 | virtual void Gtrig(); | |
89 | virtual void Gtrigc(); | |
90 | virtual void Gtrigi(); | |
91 | virtual void Gwork(Int_t nwork); | |
92 | virtual void Gzinit(); | |
93 | ||
94 | // functions from GCONS | |
95 | virtual void Gfmate(Int_t imat, char *name, Float_t &a, Float_t &z, Float_t &dens, | |
96 | Float_t &radl, Float_t &absl, Float_t* ubuf, Int_t& nbuf); | |
97 | virtual void Gfpart(Int_t ipart, char *name, Int_t &itrtyp, | |
98 | Float_t &amass, Float_t &charge, Float_t &tlife); | |
99 | virtual void Gftmed(Int_t numed, char *name, Int_t &nmat, Int_t &isvol, | |
100 | Int_t &ifield, Float_t &fieldm, Float_t &tmaxfd, | |
101 | Float_t &stemax, Float_t &deemax, Float_t &epsil, | |
102 | Float_t &stmin, Float_t *buf=0, Int_t *nbuf=0); | |
103 | virtual void Gmate(); | |
104 | virtual void Gpart(); | |
105 | virtual void Gsckov(Int_t itmed, Int_t npckov, Float_t *ppckov, | |
106 | Float_t *absco, Float_t *effic, Float_t *rindex); | |
107 | virtual void Gsdk(Int_t ipart, Float_t *bratio, Int_t *mode); | |
108 | virtual void Gsmate(Int_t imat, const char *name, Float_t a, Float_t z, | |
109 | Float_t dens, Float_t radl, Float_t absl); | |
110 | virtual void Gsmixt(Int_t imat, const char *name, Float_t *a, Float_t *z, | |
111 | Float_t dens, Int_t nlmat, Float_t *wmat); | |
112 | virtual void Gspart(Int_t ipart, const char *name, Int_t itrtyp, | |
113 | Float_t amass, Float_t charge, Float_t tlife); | |
114 | virtual void Gstmed(Int_t numed, const char *name, Int_t nmat, Int_t isvol, | |
115 | Int_t ifield, Float_t fieldm, Float_t tmaxfd, | |
116 | Float_t stemax, Float_t deemax, Float_t epsil, | |
117 | Float_t stmin); | |
118 | virtual void Gstpar(Int_t itmed, const char *param, Float_t parval); | |
119 | ||
120 | // functions from GKINE | |
121 | virtual void Gfkine(Int_t itra, Float_t *vert, Float_t *pvert, | |
122 | Int_t &ipart, Int_t &nvert); | |
123 | virtual void Gfvert(Int_t nvtx, Float_t *v, Int_t &ntbeam, Int_t &nttarg, Float_t &tofg); | |
124 | virtual Int_t Gskine(Float_t *plab, Int_t ipart, Int_t nv, Float_t *ubuf=0, Int_t nwbuf=0); | |
125 | virtual Int_t Gsvert(Float_t *v, Int_t ntbeam, Int_t nttarg, Float_t *ubuf=0, Int_t nwbuf=0); | |
126 | ||
127 | // functions from GPHYS | |
128 | virtual void Gphysi(); | |
129 | ||
130 | // functions from GTRAK | |
131 | virtual void Gdebug(); | |
132 | virtual void Gekbin(); | |
133 | virtual void Gfinds(); | |
134 | virtual void Gsking(Int_t igk); | |
135 | virtual void Gskpho(Int_t igk); | |
136 | virtual void Gsstak(Int_t iflag); | |
137 | virtual void Gsxyz(); | |
138 | virtual void Gtrack(); | |
139 | virtual void Gtreve(); | |
140 | virtual void Grndm(Float_t *rvec, const Int_t len) const; | |
141 | virtual void Grndmq(Int_t &is1, Int_t &is2, const Int_t iseq, const Text_t *chopt); | |
142 | ||
143 | // functions from GGEOM | |
144 | virtual void Gdxyz(Int_t ); | |
145 | virtual void Gdcxyz(); | |
146 | ||
147 | // functions from GGEOM | |
148 | virtual void Gdtom(Float_t *xd, Float_t *xm, Int_t iflag); | |
149 | virtual void Glmoth(const char* iudet, Int_t iunum, Int_t &nlev, | |
150 | Int_t *lvols, Int_t *lindx); | |
151 | virtual void Gmedia(Float_t *x, Int_t &numed); | |
152 | virtual void Gmtod(Float_t *xm, Float_t *xd, Int_t iflag); | |
153 | virtual void Gsdvn(const char *name, const char *mother, Int_t ndiv, Int_t iaxis); | |
154 | virtual void Gsdvn2(const char *name, const char *mother, Int_t ndiv, Int_t iaxis, Float_t c0i, Int_t numed); | |
155 | virtual void Gsdvs(const char *name, const char *mother, Float_t step, Int_t iaxis, Int_t numed); | |
156 | virtual void Gsdvs2(const char *name, const char *mother, Float_t step, Int_t iaxis, Float_t c0, Int_t numed); | |
157 | virtual void Gsdvt(const char *name, const char *mother, Float_t step, Int_t iaxis, Int_t numed, Int_t ndvmx); | |
158 | virtual void Gsdvt2(const char *name, const char *mother, Float_t step, Int_t iaxis, | |
159 | Float_t c0, Int_t numed, Int_t ndvmx); | |
160 | virtual void Gsord(const char *name, Int_t iax); | |
161 | virtual void Gspos(const char *name, Int_t nr, const char *mother, | |
162 | Float_t x, Float_t y, Float_t z, Int_t irot, const char *konly="ONLY"); | |
163 | virtual void Gsposp(const char *nodename, Int_t nr, const char *mother, | |
164 | Float_t x, Float_t y, Float_t z, Int_t irot, const char *konly, Float_t *upar, Int_t np); | |
165 | virtual void Gsrotm(Int_t nmat, Float_t theta1, Float_t phi1, Float_t theta2, Float_t phi2, | |
166 | Float_t theta3, Float_t phi3); | |
167 | virtual void Gprotm(Int_t nmat=0); | |
168 | virtual Int_t Gsvolu(const char *name, const char *shape, Int_t nmed, | |
169 | Float_t *upar, Int_t np); | |
170 | virtual void Gsatt(const char *name, const char *att, Int_t val); | |
171 | virtual void Gfpara(const char *name, Int_t number, Int_t intext, Int_t& npar, | |
172 | Int_t& natt, Float_t* par, Float_t* att); | |
173 | virtual void Gckpar(Int_t, Int_t, Float_t*); | |
174 | virtual void Gckmat(Int_t, char*); | |
175 | ||
176 | // functions from GDRAW | |
177 | virtual void DefaultRange(); | |
178 | virtual void InitHIGZ(); | |
179 | virtual void Gdopen(Int_t view); | |
180 | virtual void Gdclose(); | |
181 | virtual void Gdelete(Int_t view); | |
182 | virtual void Gdshow(Int_t view); | |
183 | virtual void Gdopt(const char *name,const char *value); | |
184 | virtual void Gdraw(const char *name,Float_t theta=30, Float_t phi=30, Float_t psi=0,Float_t u0=10,Float_t v0=10,Float_t ul=0.01,Float_t vl=0.01); | |
185 | virtual void Gdrawc(const char *name,Int_t axis=1, Float_t cut=0,Float_t u0=10,Float_t v0=10,Float_t ul=0.01,Float_t vl=0.01); | |
186 | virtual void Gdrawx(const char *name,Float_t cutthe, Float_t cutphi, Float_t cutval, | |
187 | Float_t theta=30, Float_t phi=30,Float_t u0=10,Float_t v0=10,Float_t ul=0.01,Float_t vl=0.01); | |
188 | virtual void Gdhead(Int_t isel, const char *name, Float_t chrsiz=0.6); | |
189 | virtual void Gdman(Float_t u0, Float_t v0, const char *type="MAN"); | |
190 | virtual void Gdspec(const char *name); | |
191 | virtual void DrawOneSpec(const char *name); | |
192 | virtual void Gdtree(const char *name,Int_t levmax=15,Int_t ispec=0); | |
193 | virtual void GdtreeParent(const char *name,Int_t levmax=15,Int_t ispec=0); | |
194 | ||
195 | virtual void WriteEuclid(const char*, const char*, Int_t, Int_t); | |
196 | ||
197 | virtual void SetABAN(Int_t par=1); | |
198 | virtual void SetANNI(Int_t par=1); | |
199 | virtual void SetAUTO(Int_t par=1); | |
200 | virtual void SetBOMB(Float_t bomb=1); | |
201 | virtual void SetBREM(Int_t par=1); | |
202 | virtual void SetCKOV(Int_t par=1); | |
203 | virtual void SetClipBox(const char *name,Float_t xmin=-9999,Float_t xmax=0, Float_t ymin=-9999,Float_t ymax=0,Float_t zmin=-9999,Float_t zmax=0); | |
204 | virtual void SetCOMP(Int_t par=1); | |
205 | virtual void SetCUTS(Float_t cutgam,Float_t cutele,Float_t cutneu,Float_t cuthad, | |
206 | Float_t cutmuo ,Float_t bcute ,Float_t bcutm ,Float_t dcute , | |
207 | Float_t dcutm ,Float_t ppcutm, Float_t tofmax); | |
208 | virtual void SetDCAY(Int_t par=1); | |
209 | virtual void SetDEBU(Int_t emin=1, Int_t emax=999, Int_t emod=1); | |
210 | virtual void SetDRAY(Int_t par=1); | |
211 | virtual void SetHADR(Int_t par=1); | |
212 | virtual void SetKINE(Int_t kine, Float_t xk1=0, Float_t xk2=0, Float_t xk3=0, Float_t xk4=0, | |
213 | Float_t xk5=0, Float_t xk6=0, Float_t xk7=0, Float_t xk8=0, Float_t xk9=0, | |
214 | Float_t xk10=0); | |
215 | virtual void SetLOSS(Int_t par=2); | |
216 | virtual void SetMULS(Int_t par=1); | |
217 | virtual void SetMUNU(Int_t par=1); | |
218 | virtual void SetOPTI(Int_t par=2); | |
219 | virtual void SetPAIR(Int_t par=1); | |
220 | virtual void SetPFIS(Int_t par=1); | |
221 | virtual void SetPHOT(Int_t par=1); | |
222 | virtual void SetRAYL(Int_t par=1); | |
223 | virtual void SetSWIT(Int_t sw, Int_t val=1); | |
224 | virtual void SetTRIG(Int_t nevents=1); | |
225 | ||
226 | virtual void Vname(const char *name, char *vname); | |
227 | ||
228 | virtual void InitLego(); | |
229 | ||
230 | ClassDef(AliGEODB,1) //C++ interface to Geant basic routines | |
231 | }; | |
232 | ||
233 | #endif |