Latest version
[u/mrichter/AliRoot.git] / GEODB / AliGEODB.h
CommitLineData
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
15class AliGEODB : public AliMC {
16
17public:
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 &copy);
34 Int_t CurrentVol(Text_t *name, Int_t &copy) const;
35 Int_t CurrentVolOff(Int_t off, Text_t *name, Int_t &copy) 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;
65fb704d 56 AliMCProcess ProdProcess() const;
ab2f6604 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