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