]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - TGeant3/TGeant3.h
Added the address of GCBANK, not for Zebra stores, but to get access to
[u/mrichter/AliRoot.git] / TGeant3 / TGeant3.h
... / ...
CommitLineData
1#ifndef TGeant3_H
2#define TGeant3_H
3////////////////////////////////////////////////
4// C++ interface to Geant3 basic routines //
5////////////////////////////////////////////////
6
7#include <AliMC.h>
8
9//______________________________________________________________
10//
11// Geant3 prototypes for commons
12//
13//______________________________________________________________
14//
15
16//----------QUEST
17// COMMON/QUEST/IQUEST(100)
18typedef struct {
19 Int_t iquest[100];
20} Quest_t;
21
22//----------GCBANK
23// COMMON/GCBANK/NZEBRA,GVERSN,ZVERSN,IXSTOR,IXDIV,IXCONS,FENDQ(16)
24// + ,LMAIN,LR1,WS(KWBANK)
25typedef struct {
26 Int_t nzebra;
27 Float_t gversn;
28 Float_t zversn;
29 Int_t ixstor;
30 Int_t ixdiv;
31 Int_t ixcons;
32 Float_t fendq[16];
33 Int_t lmain;
34 Int_t lr1;
35} Gcbank_t;
36
37//----------GCLINK
38// COMMON/GCLINK/JDIGI ,JDRAW ,JHEAD ,JHITS ,JKINE ,JMATE ,JPART
39// + ,JROTM ,JRUNG ,JSET ,JSTAK ,JGSTAT,JTMED ,JTRACK,JVERTX
40// + ,JVOLUM,JXYZ ,JGPAR ,JGPAR2,JSKLT
41typedef struct {
42 Int_t jdigi;
43 Int_t jdraw;
44 Int_t jhead;
45 Int_t jhits;
46 Int_t jkine;
47 Int_t jmate;
48 Int_t jpart;
49 Int_t jrotm;
50 Int_t jrung;
51 Int_t jset;
52 Int_t jstak;
53 Int_t jgstat;
54 Int_t jtmed;
55 Int_t jtrack;
56 Int_t jvertx;
57 Int_t jvolum;
58 Int_t jxyz;
59 Int_t jgpar;
60 Int_t jgpar2;
61 Int_t jsklt;
62} Gclink_t;
63
64
65//----------GCFLAG
66// COMMON/GCFLAG/IDEBUG,IDEMIN,IDEMAX,ITEST,IDRUN,IDEVT,IEORUN
67// + ,IEOTRI,IEVENT,ISWIT(10),IFINIT(20),NEVENT,NRNDM(2)
68typedef struct {
69 Int_t idebug;
70 Int_t idemin;
71 Int_t idemax;
72 Int_t itest;
73 Int_t idrun;
74 Int_t idevt;
75 Int_t ieorun;
76 Int_t ieotri;
77 Int_t ievent;
78 Int_t iswit[10];
79 Int_t ifinit[20];
80 Int_t nevent;
81 Int_t nrndm[2];
82} Gcflag_t;
83
84//----------GCKINE
85// COMMON/GCKINE/IKINE,PKINE(10),ITRA,ISTAK,IVERT,IPART,ITRTYP
86// + ,NAPART(5),AMASS,CHARGE,TLIFE,VERT(3),PVERT(4),IPAOLD
87typedef struct {
88 Int_t ikine;
89 Float_t pkine[10];
90 Int_t itra;
91 Int_t istak;
92 Int_t ivert;
93 Int_t ipart;
94 Int_t itrtyp;
95 Int_t napart[5];
96 Float_t amass;
97 Float_t charge;
98 Float_t tlife;
99 Float_t vert[3];
100 Float_t pvert[4];
101 Int_t ipaold;
102} Gckine_t;
103
104//----------GCKING
105// COMMON/GCKING/KCASE,NGKINE,GKIN(5,MXGKIN),
106// + TOFD(MXGKIN),IFLGK(MXGKIN)
107#define MXGKIN 100
108typedef struct {
109 Int_t kcase;
110 Int_t ngkine;
111 Float_t gkin[MXGKIN][5];
112 Int_t tofd[MXGKIN];
113 Int_t iflgk[MXGKIN];
114} Gcking_t;
115
116//----------GCKIN2
117// COMMON/GCKIN2/NGPHOT,XPHOT(11,MXPHOT)
118#define MXPHOT 800
119typedef struct {
120 Int_t ngphot;
121 Float_t xphot[MXPHOT][11];
122} Gckin2_t;
123
124//----------GCKIN3
125// COMMON/GCKIN3/GPOS(3,MXGKIN)
126typedef struct {
127 Float_t gpos[MXGKIN][3];
128} Gckin3_t;
129
130//----------GCMATE
131// COMMON/GCMATE/NMAT,NAMATE(5),A,Z,DENS,RADL,ABSL
132typedef struct {
133 Int_t nmat;
134 Int_t namate[5];
135 Float_t a;
136 Float_t z;
137 Float_t dens;
138 Float_t radl;
139 Float_t absl;
140} Gcmate_t;
141
142//----------GCTMED
143// COMMON/GCTMED/NUMED,NATMED(5),ISVOL,IFIELD,FIELDM,TMAXFD,STEMAX
144// + ,DEEMAX,EPSIL,STMIN,CFIELD,PREC,IUPD,ISTPAR,NUMOLD
145typedef struct {
146 Int_t numed;
147 Int_t natmed[5];
148 Int_t isvol;
149 Int_t ifield;
150 Float_t fieldm;
151 Float_t tmaxfd;
152 Float_t stemax;
153 Float_t deemax;
154 Float_t epsil;
155 Float_t stmin;
156 Float_t cfield;
157 Float_t prec;
158 Int_t iupd;
159 Int_t istpar;
160 Int_t numold;
161} Gctmed_t;
162
163//----------GCTRAK
164#define MAXMEC 30
165// PARAMETER (MAXMEC=30)
166// COMMON/GCTRAK/VECT(7),GETOT,GEKIN,VOUT(7),NMEC,LMEC(MAXMEC)
167// + ,NAMEC(MAXMEC),NSTEP ,MAXNST,DESTEP,DESTEL,SAFETY,SLENG
168// + ,STEP ,SNEXT ,SFIELD,TOFG ,GEKRAT,UPWGHT,IGNEXT,INWVOL
169// + ,ISTOP ,IGAUTO,IEKBIN, ILOSL, IMULL,INGOTO,NLDOWN,NLEVIN
170// + ,NLVSAV,ISTORY
171typedef struct {
172 Float_t vect[7];
173 Float_t getot;
174 Float_t gekin;
175 Int_t vout[7];
176 Int_t nmec;
177 Int_t lmec[MAXMEC];
178 Int_t namec[MAXMEC];
179 Int_t nstep;
180 Int_t maxnst;
181 Float_t destep;
182 Float_t destel;
183 Float_t safety;
184 Float_t sleng;
185 Float_t step;
186 Float_t snext;
187 Float_t sfield;
188 Float_t tofg;
189 Float_t gekrat;
190 Float_t upwght;
191 Int_t ignext;
192 Int_t inwvol;
193 Int_t istop;
194 Int_t igauto;
195 Int_t iekbin;
196 Int_t ilosl;
197 Int_t imull;
198 Int_t ingoto;
199 Int_t nldown;
200 Int_t nlevin;
201 Int_t nlsav;
202 Int_t istory;
203} Gctrak_t;
204
205//----------GCVOLU
206// COMMON/GCVOLU/NLEVEL,NAMES(15),NUMBER(15),
207// +LVOLUM(15),LINDEX(15),INFROM,NLEVMX,NLDEV(15),LINMX(15),
208// +GTRAN(3,15),GRMAT(10,15),GONLY(15),GLX(3)
209typedef struct {
210 Int_t nlevel;
211 Int_t names[15];
212 Int_t number[15];
213 Int_t lvolum[15];
214 Int_t lindex[15];
215 Int_t infrom;
216 Int_t nlevmx;
217 Int_t nldev[15];
218 Int_t linmx[15];
219 Float_t gtran[15][3];
220 Float_t grmat[15][10];
221 Float_t gonly[15];
222 Float_t glx[3];
223} Gcvolu_t;
224
225//----------GCSETS
226// COMMON/GCSETS/IHSET,IHDET,ISET,IDET,IDTYPE,NVNAME,NUMBV(20)
227typedef struct {
228 Int_t ihset;
229 Int_t ihdet;
230 Int_t iset;
231 Int_t idet;
232 Int_t idtype;
233 Int_t nvname;
234 Int_t numbv[20];
235} Gcsets_t;
236
237//----------GCNUM
238// COMMON/GCNUM/NMATE ,NVOLUM,NROTM,NTMED,NTMULT,NTRACK,NPART
239// + ,NSTMAX,NVERTX,NHEAD,NBIT
240typedef struct {
241 Int_t nmate;
242 Int_t nvolum;
243 Int_t nrotm;
244 Int_t ntmed;
245 Int_t ntmult;
246 Int_t ntrack;
247 Int_t npart;
248 Int_t nstmax;
249 Int_t nvertx;
250 Int_t nhead;
251 Int_t nbit;
252} Gcnum_t;
253
254//----------GCCUTS
255// COMMON/GCCUTS/CUTGAM,CUTELE,CUTNEU,CUTHAD,CUTMUO,BCUTE,BCUTM
256// + ,DCUTE ,DCUTM ,PPCUTM,TOFMAX,GCUTS(5)
257typedef struct {
258 Float_t cutgam;
259 Float_t cutele;
260 Float_t cutneu;
261 Float_t cuthad;
262 Float_t cutmuo;
263 Float_t bcute;
264 Float_t bcutm;
265 Float_t dcute;
266 Float_t dcutm;
267 Float_t ppcutm;
268 Float_t tofmax;
269 Float_t gcuts[5];
270} Gccuts_t;
271
272//----------GCPHYS
273// COMMON/GCPHYS/IPAIR,SPAIR,SLPAIR,ZINTPA,STEPPA
274// + ,ICOMP,SCOMP,SLCOMP,ZINTCO,STEPCO
275// + ,IPHOT,SPHOT,SLPHOT,ZINTPH,STEPPH
276// + ,IPFIS,SPFIS,SLPFIS,ZINTPF,STEPPF
277// + ,IDRAY,SDRAY,SLDRAY,ZINTDR,STEPDR
278// + ,IANNI,SANNI,SLANNI,ZINTAN,STEPAN
279// + ,IBREM,SBREM,SLBREM,ZINTBR,STEPBR
280// + ,IHADR,SHADR,SLHADR,ZINTHA,STEPHA
281// + ,IMUNU,SMUNU,SLMUNU,ZINTMU,STEPMU
282// + ,IDCAY,SDCAY,SLIFE ,SUMLIF,DPHYS1
283// + ,ILOSS,SLOSS,SOLOSS,STLOSS,DPHYS2
284// + ,IMULS,SMULS,SOMULS,STMULS,DPHYS3
285// + ,IRAYL,SRAYL,SLRAYL,ZINTRA,STEPRA
286// COMMON/GCPHLT/ILABS,SLABS,SLLABS,ZINTLA,STEPLA
287// + ,ISYNC
288// + ,ISTRA
289typedef struct {
290 Int_t ipair;
291 Float_t spair;
292 Float_t slpair;
293 Float_t zintpa;
294 Float_t steppa;
295 Int_t icomp;
296 Float_t scomp;
297 Float_t slcomp;
298 Float_t zintco;
299 Float_t stepco;
300 Int_t iphot;
301 Float_t sphot;
302 Float_t slphot;
303 Float_t zintph;
304 Float_t stepph;
305 Int_t ipfis;
306 Float_t spfis;
307 Float_t slpfis;
308 Float_t zintpf;
309 Float_t steppf;
310 Int_t idray;
311 Float_t sdray;
312 Float_t sldray;
313 Float_t zintdr;
314 Float_t stepdr;
315 Int_t ianni;
316 Float_t sanni;
317 Float_t slanni;
318 Float_t zintan;
319 Float_t stepan;
320 Int_t ibrem;
321 Float_t sbrem;
322 Float_t slbrem;
323 Float_t zintbr;
324 Float_t stepbr;
325 Int_t ihadr;
326 Float_t shadr;
327 Float_t slhadr;
328 Float_t zintha;
329 Float_t stepha;
330 Int_t imunu;
331 Float_t smunu;
332 Float_t slmunu;
333 Float_t zintmu;
334 Float_t stepmu;
335 Int_t idcay;
336 Float_t sdcay;
337 Float_t slife;
338 Float_t sumlif;
339 Float_t dphys1;
340 Int_t iloss;
341 Float_t sloss;
342 Float_t soloss;
343 Float_t stloss;
344 Float_t dphys2;
345 Int_t imuls;
346 Float_t smuls;
347 Float_t somuls;
348 Float_t stmuls;
349 Float_t dphys3;
350 Int_t irayl;
351 Float_t srayl;
352 Float_t slrayl;
353 Float_t zintra;
354 Float_t stepra;
355} Gcphys_t;
356
357//----------GCOPTI
358// COMMON/GCOPTI/IOPTIM
359typedef struct {
360 Int_t ioptim;
361} Gcopti_t;
362
363//----------GCTLIT
364// COMMON/GCTLIT/THRIND,PMIN,DP,DNDL,JMIN,ITCKOV,IMCKOV,NPCKOV
365typedef struct {
366 Float_t thrind;
367 Float_t pmin;
368 Float_t dp;
369 Float_t dndl;
370 Int_t jmin;
371 Int_t itckov;
372 Int_t imckov;
373 Int_t npckov;
374} Gctlit_t;
375
376//----------GCVDMA
377// COMMON/GCVDMA/NVMANY,MANYLE(20),MANYNA(20,15),
378// +MANYNU(20,15),NFMANY,MYCOUN,IMYSE,RAYTRA,VECCOS(3)
379typedef struct {
380 Int_t vdma[624];
381 Float_t raytra;
382 Float_t veccos[3];
383} Gcvdma_t;
384
385//----------GCTPOL
386#define MAXME1 30
387// COMMON/GCTPOL/POLAR(3), NAMEC1(MAXME1)
388typedef struct {
389 Float_t polar[3];
390 Int_t namec1[MAXME1];
391} Gctpol_t;
392
393
394class TGeant3 : public AliMC {
395
396private:
397 Int_t fNextVol; // Iterator for GeomIter
398
399//--------------Declarations for ZEBRA---------------------
400 Int_t *fZiq, *fZlq;
401 Float_t *fZq;
402
403 Quest_t *fQuest;
404 Gcbank_t *fGcbank;
405 Gclink_t *fGclink;
406 Gccuts_t *fGccuts;
407 Gcmate_t *fGcmate;
408 Gctpol_t *fGctpol;
409 Gcnum_t *fGcnum;
410 Gcsets_t *fGcsets;
411 Gcopti_t *fGcopti;
412 Gctlit_t *fGctlit;
413 Gcvdma_t *fGcvdma;
414 Gcvolu_t *fGcvolu;
415 Gckine_t *fGckine;
416 Gcflag_t *fGcflag;
417 Gctmed_t *fGctmed;
418 Gcphys_t *fGcphys;
419 Gcking_t *fGcking;
420 Gckin2_t *fGckin2;
421 Gckin3_t *fGckin3;
422 Gctrak_t *fGctrak;
423
424
425
426public:
427 TGeant3();
428 TGeant3(const char *title, Int_t nwgeant=0);
429 virtual ~TGeant3() {}
430 virtual void LoadAddress();
431
432///////////////////////////////////////////////////////////////////////
433// //
434// //
435// Here are the service routines from the geometry //
436// which could be implemented also in other geometries //
437// //
438// //
439///////////////////////////////////////////////////////////////////////
440
441 void GeomIter();
442 Int_t CurrentMaterial(Float_t &a, Float_t &z, Float_t &dens, Float_t &radl, Float_t &absl) const;
443 Int_t NextVolUp(Text_t *name, Int_t &copy);
444 Int_t CurrentVol(Text_t *name, Int_t &copy) const;
445 Int_t CurrentVolOff(Int_t off, Text_t *name, Int_t &copy) const;
446 Int_t VolId(Text_t *name) const;
447 const char* VolName(Int_t id) const;
448 void TrackPosition(Float_t *xyz) const;
449 void TrackMomentum(Float_t *xyz) const;
450 Int_t NofVolumes() const;
451 Float_t TrackTime() const;
452 Float_t TrackCharge() const;
453 Float_t TrackMass() const;
454 Float_t TrackStep() const;
455 Float_t TrackLength() const;
456 Int_t TrackPid() const;
457 Bool_t TrackInside() const;
458 Bool_t TrackEntering() const;
459 Bool_t TrackExiting() const;
460 Bool_t TrackOut() const;
461 Bool_t TrackDisappear() const;
462 Bool_t TrackStop() const;
463 Bool_t TrackAlive() const;
464 Int_t NSecondaries() const;
465 Int_t CurrentEvent() const;
466 void ProdProcess(char*) const;
467 void GetSecondary(Int_t, Int_t&, Float_t*, Float_t*);
468 void StopTrack();
469 void StopEvent();
470 Float_t MaxStep() const;
471 void SetColors();
472 void SetMaxStep(Float_t maxstep);
473 void SetMaxNStep(Int_t maxnstp);
474 Int_t GetMaxNStep() const;
475 void GetParticle(const Int_t ipart, char *name, Float_t &mass) const;
476 virtual Int_t GetMedium() const;
477 virtual Float_t Edep() const;
478 virtual Float_t Etot() const;
479 virtual void Rndm(Float_t* r, const Int_t n) const;
480 virtual void Material(Int_t&, const char*, Float_t, Float_t, Float_t, Float_t,
481 Float_t, Float_t* buf=0, Int_t nwbuf=0);
482 virtual void Mixture(Int_t&, const char*, Float_t*, Float_t*, Float_t, Int_t, Float_t*);
483 virtual void Medium(Int_t&, const char*, Int_t, Int_t, Int_t, Float_t, Float_t,
484 Float_t, Float_t, Float_t, Float_t, Float_t* ubuf=0, Int_t nbuf=0);
485 virtual void Matrix(Int_t&, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t);
486
487/////////////////////////////////////////////////////////////////////////////////////////////
488// //
489// //
490// Here are the interface functions with GEANT3.21 //
491// //
492// //
493/////////////////////////////////////////////////////////////////////////////////////////////
494
495 // access functions to commons
496
497 virtual Quest_t* Quest() const {return fQuest;}
498 virtual Gcbank_t* Gcbank() const {return fGcbank;}
499 virtual Gclink_t* Gclink() const {return fGclink;}
500 virtual Gccuts_t* Gccuts() const {return fGccuts;}
501 virtual Gcmate_t* Gcmate() const {return fGcmate;}
502 virtual Gctpol_t* Gctpol() const {return fGctpol;}
503 virtual Gcnum_t* Gcnum() const {return fGcnum;}
504 virtual Gcsets_t* Gcsets() const {return fGcsets;}
505 virtual Gcopti_t* Gcopti() const {return fGcopti;}
506 virtual Gctlit_t* Gctlit() const {return fGctlit;}
507 virtual Gcvdma_t* Gcvdma() const {return fGcvdma;}
508 virtual Gcvolu_t* Gcvolu() const {return fGcvolu;}
509 virtual Gckine_t* Gckine() const {return fGckine;}
510 virtual Gcflag_t* Gcflag() const {return fGcflag;}
511 virtual Gctmed_t* Gctmed() const {return fGctmed;}
512 virtual Gcphys_t* Gcphys() const {return fGcphys;}
513 virtual Gcking_t* Gcking() const {return fGcking;}
514 virtual Gckin2_t* Gckin2() const {return fGckin2;}
515 virtual Gckin3_t* Gckin3() const {return fGckin3;}
516 virtual Gctrak_t* Gctrak() const {return fGctrak;}
517 virtual Int_t* Iq() const {return fZiq;}
518 virtual Int_t* Lq() const {return fZlq;}
519 virtual Float_t* Q() const {return fZq;}
520
521
522 // functions from GBASE
523 virtual void Gpcxyz();
524 virtual void Ggclos();
525 virtual void Gfile(const char *filename, const char *option="I");
526 virtual void Glast();
527 virtual void Gprint(const char *name);
528 virtual void Grun();
529 virtual void Gtrig();
530 virtual void Gtrigc();
531 virtual void Gtrigi();
532 virtual void Gwork(Int_t nwork);
533 virtual void Gzinit();
534
535 // functions from GCONS
536 virtual void Gfmate(Int_t imat, char *name, Float_t &a, Float_t &z, Float_t &dens,
537 Float_t &radl, Float_t &absl, Float_t* ubuf, Int_t& nbuf);
538 virtual void Gfpart(Int_t ipart, char *name, Int_t &itrtyp,
539 Float_t &amass, Float_t &charge, Float_t &tlife);
540 virtual void Gftmed(Int_t numed, char *name, Int_t &nmat, Int_t &isvol,
541 Int_t &ifield, Float_t &fieldm, Float_t &tmaxfd,
542 Float_t &stemax, Float_t &deemax, Float_t &epsil,
543 Float_t &stmin, Float_t *buf=0, Int_t *nbuf=0);
544 virtual void Gmate();
545 virtual void Gpart();
546 virtual void Gsckov(Int_t itmed, Int_t npckov, Float_t *ppckov,
547 Float_t *absco, Float_t *effic, Float_t *rindex);
548 virtual void Gsdk(Int_t ipart, Float_t *bratio, Int_t *mode);
549 virtual void Gsmate(Int_t imat, const char *name, Float_t a, Float_t z,
550 Float_t dens, Float_t radl, Float_t absl);
551 virtual void Gsmixt(Int_t imat, const char *name, Float_t *a, Float_t *z,
552 Float_t dens, Int_t nlmat, Float_t *wmat);
553 virtual void Gspart(Int_t ipart, const char *name, Int_t itrtyp,
554 Float_t amass, Float_t charge, Float_t tlife);
555 virtual void Gstmed(Int_t numed, const char *name, Int_t nmat, Int_t isvol,
556 Int_t ifield, Float_t fieldm, Float_t tmaxfd,
557 Float_t stemax, Float_t deemax, Float_t epsil,
558 Float_t stmin);
559 virtual void Gstpar(Int_t itmed, const char *param, Float_t parval);
560
561 // functions from GKINE
562 virtual void Gfkine(Int_t itra, Float_t *vert, Float_t *pvert,
563 Int_t &ipart, Int_t &nvert);
564 virtual void Gfvert(Int_t nvtx, Float_t *v, Int_t &ntbeam, Int_t &nttarg, Float_t &tofg);
565 virtual Int_t Gskine(Float_t *plab, Int_t ipart, Int_t nv, Float_t *ubuf=0, Int_t nwbuf=0);
566 virtual Int_t Gsvert(Float_t *v, Int_t ntbeam, Int_t nttarg, Float_t *ubuf=0, Int_t nwbuf=0);
567
568 // functions from GPHYS
569 virtual void Gphysi();
570
571 // functions from GTRAK
572 virtual void Gdebug();
573 virtual void Gekbin();
574 virtual void Gfinds();
575 virtual void Gsking(Int_t igk);
576 virtual void Gskpho(Int_t igk);
577 virtual void Gsstak(Int_t iflag);
578 virtual void Gsxyz();
579 virtual void Gtrack();
580 virtual void Gtreve();
581 virtual void Grndm(Float_t *rvec, const Int_t len) const;
582 virtual void Grndmq(Int_t &is1, Int_t &is2, const Int_t iseq, const Text_t *chopt);
583
584 // functions from GGEOM
585 virtual void Gdxyz(Int_t );
586 virtual void Gdcxyz();
587
588 // functions from GGEOM
589 virtual void Gdtom(Float_t *xd, Float_t *xm, Int_t iflag);
590 virtual void Glmoth(const char* iudet, Int_t iunum, Int_t &nlev,
591 Int_t *lvols, Int_t *lindx);
592 virtual void Gmedia(Float_t *x, Int_t &numed);
593 virtual void Gmtod(Float_t *xm, Float_t *xd, Int_t iflag);
594 virtual void Gsdvn(const char *name, const char *mother, Int_t ndiv, Int_t iaxis);
595 virtual void Gsdvn2(const char *name, const char *mother, Int_t ndiv, Int_t iaxis, Float_t c0i, Int_t numed);
596 virtual void Gsdvs(const char *name, const char *mother, Float_t step, Int_t iaxis, Int_t numed);
597 virtual void Gsdvs2(const char *name, const char *mother, Float_t step, Int_t iaxis, Float_t c0, Int_t numed);
598 virtual void Gsdvt(const char *name, const char *mother, Float_t step, Int_t iaxis, Int_t numed, Int_t ndvmx);
599 virtual void Gsdvt2(const char *name, const char *mother, Float_t step, Int_t iaxis,
600 Float_t c0, Int_t numed, Int_t ndvmx);
601 virtual void Gsord(const char *name, Int_t iax);
602 virtual void Gspos(const char *name, Int_t nr, const char *mother,
603 Float_t x, Float_t y, Float_t z, Int_t irot, const char *konly="ONLY");
604 virtual void Gsposp(const char *name, Int_t nr, const char *mother,
605 Float_t x, Float_t y, Float_t z, Int_t irot, const char *konly, Float_t *upar, Int_t np);
606 virtual void Gsrotm(Int_t nmat, Float_t theta1, Float_t phi1, Float_t theta2, Float_t phi2,
607 Float_t theta3, Float_t phi3);
608 virtual void Gprotm(Int_t nmat=0);
609 virtual Int_t Gsvolu(const char *name, const char *shape, Int_t nmed,
610 Float_t *upar, Int_t np);
611 virtual void Gsatt(const char *name, const char *att, Int_t val);
612 virtual void Gfpara(const char *name, Int_t number, Int_t intext, Int_t& npar,
613 Int_t& natt, Float_t* par, Float_t* att);
614 virtual void Gckpar(Int_t, Int_t, Float_t*);
615 virtual void Gckmat(Int_t, char*);
616
617 // functions from GDRAW
618 virtual void DefaultRange();
619 virtual void InitHIGZ();
620 virtual void Gdopen(Int_t view);
621 virtual void Gdclose();
622 virtual void Gdelete(Int_t view);
623 virtual void Gdshow(Int_t view);
624 virtual void Gdopt(const char *name,const char *value);
625 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);
626 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);
627 virtual void Gdrawx(const char *name,Float_t cutthe, Float_t cutphi, Float_t cutval,
628 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);
629 virtual void Gdhead(Int_t isel, const char *name, Float_t chrsiz=0.6);
630 virtual void Gdman(Float_t u0, Float_t v0, const char *type="MAN");
631 virtual void Gdspec(const char *name);
632 virtual void DrawOneSpec(const char *name);
633 virtual void Gdtree(const char *name,Int_t levmax=15,Int_t ispec=0);
634 virtual void GdtreeParent(const char *name,Int_t levmax=15,Int_t ispec=0);
635
636 virtual void WriteEuclid(const char*, const char*, Int_t, Int_t);
637
638 virtual void SetABAN(Int_t par=1);
639 virtual void SetANNI(Int_t par=1);
640 virtual void SetAUTO(Int_t par=1);
641 virtual void SetBOMB(Float_t bomb=1);
642 virtual void SetBREM(Int_t par=1);
643 virtual void SetCKOV(Int_t par=1);
644 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);
645 virtual void SetCOMP(Int_t par=1);
646 virtual void SetCUTS(Float_t cutgam,Float_t cutele,Float_t cutneu,Float_t cuthad,
647 Float_t cutmuo ,Float_t bcute ,Float_t bcutm ,Float_t dcute ,
648 Float_t dcutm ,Float_t ppcutm, Float_t tofmax);
649 virtual void SetDCAY(Int_t par=1);
650 virtual void SetDEBU(Int_t emin=1, Int_t emax=999, Int_t emod=1);
651 virtual void SetDRAY(Int_t par=1);
652 virtual void SetHADR(Int_t par=1);
653 virtual void SetKINE(Int_t kine, Float_t xk1=0, Float_t xk2=0, Float_t xk3=0, Float_t xk4=0,
654 Float_t xk5=0, Float_t xk6=0, Float_t xk7=0, Float_t xk8=0, Float_t xk9=0,
655 Float_t xk10=0);
656 virtual void SetLOSS(Int_t par=2);
657 virtual void SetMULS(Int_t par=1);
658 virtual void SetMUNU(Int_t par=1);
659 virtual void SetOPTI(Int_t par=2);
660 virtual void SetPAIR(Int_t par=1);
661 virtual void SetPFIS(Int_t par=1);
662 virtual void SetPHOT(Int_t par=1);
663 virtual void SetRAYL(Int_t par=1);
664 virtual void SetSWIT(Int_t sw, Int_t val=1);
665 virtual void SetTRIG(Int_t nevents=1);
666 virtual void SetUserDecay(Int_t ipart);
667
668 virtual void Vname(const char *name, char *vname);
669
670 virtual void InitLego();
671
672 ClassDef(TGeant3,1) //C++ interface to Geant basic routines
673};
674
675#endif