All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
TGeant3.h
Go to the documentation of this file.
1 #ifndef ROOT_TGeant3
2 #define ROOT_TGeant3
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 
7 ////////////////////////////////////////////////
8 // C++ interface to Geant3 basic routines //
9 ////////////////////////////////////////////////
10 
11 #define WITHG3
12 #ifdef WITHROOT
13 #undef WITHG3
14 #endif
15 #ifdef WITHBOTH
16 #undef WITHG3
17 #undef WITHROOT
18 #endif
19 
20 #include <stdexcept> // std::logic_error
21 #include "TVirtualMC.h"
22 #include "TMCProcess.h"
23 #include "TMCParticleType.h"
24 #include "TGeoMCGeometry.h"
25 #include "TObjArray.h"
26 #include "TArrayI.h"
27 
28 class TGeoHMatrix;
29 class TArrayD;
30 class TString;
31 
32 //______________________________________________________________
33 //
34 // Geant3 prototypes for commons
35 //
36 //______________________________________________________________
37 //
38 
39 //----------GCONST
40 // COMMON/GCONST/PI,TWOPI,PIBY2,DEGRAD,RADDEG,CLIGHT,BIG,EMASS
41 typedef struct {
42  Float_t pi;
43  Float_t twopi;
44  Float_t piby2;
45  Float_t degrad;
46  Float_t raddeg;
47  Float_t clight;
48  Float_t big;
49  Float_t emass;
50 }Gconst_t;
51 
52 //----------GCONSX
53 // COMMON/GCONSX/EMMU,PMASS,AVO
54 typedef struct {
55  Float_t emmu;
56  Float_t pmass;
57  Float_t avo;
58 } Gconsx_t;
59 
60 //---------- GCJUMP
61 // PARAMETER (MAXJMP=30)
62 // COMMON/GCJUMP/JUDCAY, JUDIGI, JUDTIM, JUFLD , JUHADR, JUIGET,
63 // + JUINME, JUINTI, JUKINE, JUNEAR, JUOUT , JUPHAD,
64 // + JUSKIP, JUSTEP, JUSWIM, JUTRAK, JUTREV, JUVIEW,
65 // + JUPARA
66 // DIMENSION JMPADR(MAXJMP)
67 // EQUIVALENCE (JMPADR(1), JUDCAY)
68 typedef struct {
69  Int_t judcay;
70  Int_t judigi;
71  Int_t judtim;
72  Int_t jufld ;
73  Int_t juhadr;
74  Int_t juiget;
75  Int_t juinme;
76  Int_t juinti;
77  Int_t jukine;
78  Int_t junear;
79  Int_t juout ;
80  Int_t juphad;
81  Int_t juskip;
82  Int_t justep;
83  Int_t juswim;
84  Int_t jutrak;
85  Int_t jutrev;
86  Int_t juview;
87  Int_t jupara;
88  Int_t jmpadr[30];
89 } Gcjump_t;
90 
91 //----------QUEST
92 // COMMON/QUEST/IQUEST(100)
93 typedef struct {
94  Int_t iquest[100];
95 } Quest_t;
96 
97 //----------GCBANK
98 // COMMON/GCBANK/NZEBRA,GVERSN,ZVERSN,IXSTOR,IXDIV,IXCONS,FENDQ(16)
99 // + ,LMAIN,LR1,WS(KWBANK)
100 typedef struct {
101  Int_t nzebra;
102  Float_t gversn;
103  Float_t zversn;
104  Int_t ixstor;
105  Int_t ixdiv;
106  Int_t ixcons;
107  Float_t fendq[16];
108  Int_t lmain;
109  Int_t lr1;
110 } Gcbank_t;
111 
112 //----------GCLINK
113 // COMMON/GCLINK/JDIGI ,JDRAW ,JHEAD ,JHITS ,JKINE ,JMATE ,JPART
114 // + ,JROTM ,JRUNG ,JSET ,JSTAK ,JGSTAT,JTMED ,JTRACK,JVERTX
115 // + ,JVOLUM,JXYZ ,JGPAR ,JGPAR2,JSKLT
116 typedef struct {
117  Int_t jdigi;
118  Int_t jdraw;
119  Int_t jhead;
120  Int_t jhits;
121  Int_t jkine;
122  Int_t jmate;
123  Int_t jpart;
124  Int_t jrotm;
125  Int_t jrung;
126  Int_t jset;
127  Int_t jstak;
128  Int_t jgstat;
129  Int_t jtmed;
130  Int_t jtrack;
131  Int_t jvertx;
132  Int_t jvolum;
133  Int_t jxyz;
134  Int_t jgpar;
135  Int_t jgpar2;
136  Int_t jsklt;
137 } Gclink_t;
138 
139 
140 //----------GCFLAG
141 // COMMON/GCFLAG/IDEBUG,IDEMIN,IDEMAX,ITEST,IDRUN,IDEVT,IEORUN
142 // + ,IEOTRI,IEVENT,ISWIT(10),IFINIT(20),NEVENT,NRNDM(2)
143 typedef struct {
144  Int_t idebug;
145  Int_t idemin;
146  Int_t idemax;
147  Int_t itest;
148  Int_t idrun;
149  Int_t idevt;
150  Int_t ieorun;
151  Int_t ieotri;
152  Int_t ievent;
153  Int_t iswit[10];
154  Int_t ifinit[20];
155  Int_t nevent;
156  Int_t nrndm[2];
157 } Gcflag_t;
158 
159 //----------GCKINE
160 // COMMON/GCKINE/IKINE,PKINE(10),ITRA,ISTAK,IVERT,IPART,ITRTYP
161 // + ,NAPART(5),AMASS,CHARGE,TLIFE,VERT(3),PVERT(4),IPAOLD
162 typedef struct {
163  Int_t ikine;
164  Float_t pkine[10];
165  Int_t itra;
166  Int_t istak;
167  Int_t ivert;
168  Int_t ipart;
169  Int_t itrtyp;
170  Int_t napart[5];
171  Float_t amass;
172  Float_t charge;
173  Float_t tlife;
174  Float_t vert[3];
175  Float_t pvert[4];
176  Int_t ipaold;
177 } Gckine_t;
178 
179 //----------GCKING
180 // COMMON/GCKING/KCASE,NGKINE,GKIN(5,MXGKIN),
181 // + TOFD(MXGKIN),IFLGK(MXGKIN)
182 #define MXGKIN 100
183 typedef struct {
184  Int_t kcase;
185  Int_t ngkine;
186  Float_t gkin[MXGKIN][5];
187  Float_t tofd[MXGKIN];
188  Int_t iflgk[MXGKIN];
189 } Gcking_t;
190 
191 //----------GCKIN2
192 // COMMON/GCKIN2/NGPHOT,XPHOT(11,MXPHOT)
193 #define MXPHOT 800
194 typedef struct {
195  Int_t ngphot;
196  Float_t xphot[MXPHOT][11];
197 } Gckin2_t;
198 
199 //----------GCKIN3
200 // COMMON/GCKIN3/GPOS(3,MXGKIN)
201 typedef struct {
202  Float_t gpos[MXGKIN][3];
203 } Gckin3_t;
204 
205 //----------GCMATE
206 // COMMON/GCMATE/NMAT,NAMATE(5),A,Z,DENS,RADL,ABSL
207 typedef struct {
208  Int_t nmat;
209  Int_t namate[5];
210  Float_t a;
211  Float_t z;
212  Float_t dens;
213  Float_t radl;
214  Float_t absl;
215 } Gcmate_t;
216 
217 //----------GCTMED
218 // COMMON/GCTMED/NUMED,NATMED(5),ISVOL,IFIELD,FIELDM,TMAXFD,STEMAX
219 // + ,DEEMAX,EPSIL,STMIN,CFIELD,PREC,IUPD,ISTPAR,NUMOLD
220 typedef struct {
221  Int_t numed;
222  Int_t natmed[5];
223  Int_t isvol;
224  Int_t ifield;
225  Float_t fieldm;
226  Float_t tmaxfd;
227  Float_t stemax;
228  Float_t deemax;
229  Float_t epsil;
230  Float_t stmin;
231  Float_t cfield;
232  Float_t prec;
233  Int_t iupd;
234  Int_t istpar;
235  Int_t numold;
236 } Gctmed_t;
237 
238 //----------GCTRAK
239 #define MAXMEC 30
240 // PARAMETER (MAXMEC=30)
241 // COMMON/GCTRAK/VECT(7),GETOT,GEKIN,VOUT(7),NMEC,LMEC(MAXMEC)
242 // + ,NAMEC(MAXMEC),NSTEP ,MAXNST,DESTEP,DESTEL,SAFETY,SLENG
243 // + ,STEP ,SNEXT ,SFIELD,TOFG ,GEKRAT,UPWGHT,IGNEXT,INWVOL
244 // + ,ISTOP ,IGAUTO,IEKBIN, ILOSL, IMULL,INGOTO,NLDOWN,NLEVIN
245 // + ,NLVSAV,ISTORY
246 typedef struct {
247  Float_t vect[7];
248  Float_t getot;
249  Float_t gekin;
250  Float_t vout[7];
251  Int_t nmec;
252  Int_t lmec[MAXMEC];
253  Int_t namec[MAXMEC];
254  Int_t nstep;
255  Int_t maxnst;
256  Float_t destep;
257  Float_t destel;
258  Float_t safety;
259  Float_t sleng;
260  Float_t step;
261  Float_t snext;
262  Float_t sfield;
263  Float_t tofg;
264  Float_t gekrat;
265  Float_t upwght;
266  Int_t ignext;
267  Int_t inwvol;
268  Int_t istop;
269  Int_t igauto;
270  Int_t iekbin;
271  Int_t ilosl;
272  Int_t imull;
273  Int_t ingoto;
274  Int_t nldown;
275  Int_t nlevin;
276  Int_t nlsav;
277  Int_t istory;
278 } Gctrak_t;
279 
280 //----------GCVOLU
281 // COMMON/GCVOLU/NLEVEL,NAMES(15),NUMBER(15),
282 // +LVOLUM(15),LINDEX(15),INFROM,NLEVMX,NLDEV(15),LINMX(15),
283 // +GTRAN(3,15),GRMAT(10,15),GONLY(15),GLX(3)
284 typedef struct {
285  Int_t nlevel;
286  Int_t names[15];
287  Int_t number[15];
288  Int_t lvolum[15];
289  Int_t lindex[15];
290  Int_t infrom;
291  Int_t nlevmx;
292  Int_t nldev[15];
293  Int_t linmx[15];
294  Float_t gtran[15][3];
295  Float_t grmat[15][10];
296  Float_t gonly[15];
297  Float_t glx[3];
298 } Gcvolu_t;
299 
300 //----------GCSETS
301 // COMMON/GCSETS/IHSET,IHDET,ISET,IDET,IDTYPE,NVNAME,NUMBV(20)
302 typedef struct {
303  Int_t ihset;
304  Int_t ihdet;
305  Int_t iset;
306  Int_t idet;
307  Int_t idtype;
308  Int_t nvname;
309  Int_t numbv[20];
310 } Gcsets_t;
311 
312 //----------GCNUM
313 // COMMON/GCNUM/NMATE ,NVOLUM,NROTM,NTMED,NTMULT,NTRACK,NPART
314 // + ,NSTMAX,NVERTX,NHEAD,NBIT
315 typedef struct {
316  Int_t nmate;
317  Int_t nvolum;
318  Int_t nrotm;
319  Int_t ntmed;
320  Int_t ntmult;
321  Int_t ntrack;
322  Int_t npart;
323  Int_t nstmax;
324  Int_t nvertx;
325  Int_t nhead;
326  Int_t nbit;
327 } Gcnum_t;
328 
329 //----------GCCUTS
330 // COMMON/GCCUTS/CUTGAM,CUTELE,CUTNEU,CUTHAD,CUTMUO,BCUTE,BCUTM
331 // + ,DCUTE ,DCUTM ,PPCUTM,TOFMAX,GCUTS(5)
332 typedef struct {
333  Float_t cutgam;
334  Float_t cutele;
335  Float_t cutneu;
336  Float_t cuthad;
337  Float_t cutmuo;
338  Float_t bcute;
339  Float_t bcutm;
340  Float_t dcute;
341  Float_t dcutm;
342  Float_t ppcutm;
343  Float_t tofmax;
344  Float_t gcuts[5];
345 } Gccuts_t;
346 
347 //----------GCMORE
348 // COMMON/GCMORE/GCALPHA,ICLOSE,PFINAL(3),DSTRT,WIRE1(3),WIRE2(3),
349 // + P1(3),P2(3),P3(3),CLENG(3)
350 typedef struct {
351  Float_t gcalpha;
352  Int_t iclose;
353  Float_t pfinal[3];
354  Float_t dstrt;
355  Float_t wire1[3];
356  Float_t wire2[3];
357  Float_t p1[3];
358  Float_t p2[3];
359  Float_t p3[3];
360  Float_t cleng[3];
361 } Gcmore_t;
362 
363 //----------GCMULO
364 // COMMON/GCMULO/SINMUL(101),COSMUL(101),SQRMUL(101),OMCMOL,CHCMOL
365 // + ,EKMIN,EKMAX,NEKBIN,NEK1,EKINV,GEKA,GEKB,EKBIN(200),ELOW(200)
366 typedef struct {
367  Float_t sinmul[101];
368  Float_t cosmul[101];
369  Float_t sqrmul[101];
370  Float_t omcmol;
371  Float_t chcmol;
372  Float_t ekmin;
373  Float_t ekmax;
374  Int_t nekbin;
375  Int_t nek1;
376  Float_t ekinv;
377  Float_t geka;
378  Float_t gekb;
379  Float_t ekbin[200];
380  Float_t elow[200];
381 } Gcmulo_t;
382 
383 //----------GCPHYS
384 // COMMON/GCPHYS/IPAIR,SPAIR,SLPAIR,ZINTPA,STEPPA
385 // + ,ICOMP,SCOMP,SLCOMP,ZINTCO,STEPCO
386 // + ,IPHOT,SPHOT,SLPHOT,ZINTPH,STEPPH
387 // + ,IPFIS,SPFIS,SLPFIS,ZINTPF,STEPPF
388 // + ,IDRAY,SDRAY,SLDRAY,ZINTDR,STEPDR
389 // + ,IANNI,SANNI,SLANNI,ZINTAN,STEPAN
390 // + ,IBREM,SBREM,SLBREM,ZINTBR,STEPBR
391 // + ,IHADR,SHADR,SLHADR,ZINTHA,STEPHA
392 // + ,IMUNU,SMUNU,SLMUNU,ZINTMU,STEPMU
393 // + ,IDCAY,SDCAY,SLIFE ,SUMLIF,DPHYS1
394 // + ,ILOSS,SLOSS,SOLOSS,STLOSS,DPHYS2
395 // + ,IMULS,SMULS,SOMULS,STMULS,DPHYS3
396 // + ,IRAYL,SRAYL,SLRAYL,ZINTRA,STEPRA
397 typedef struct {
398  Int_t ipair;
399  Float_t spair;
400  Float_t slpair;
401  Float_t zintpa;
402  Float_t steppa;
403  Int_t icomp;
404  Float_t scomp;
405  Float_t slcomp;
406  Float_t zintco;
407  Float_t stepco;
408  Int_t iphot;
409  Float_t sphot;
410  Float_t slphot;
411  Float_t zintph;
412  Float_t stepph;
413  Int_t ipfis;
414  Float_t spfis;
415  Float_t slpfis;
416  Float_t zintpf;
417  Float_t steppf;
418  Int_t idray;
419  Float_t sdray;
420  Float_t sldray;
421  Float_t zintdr;
422  Float_t stepdr;
423  Int_t ianni;
424  Float_t sanni;
425  Float_t slanni;
426  Float_t zintan;
427  Float_t stepan;
428  Int_t ibrem;
429  Float_t sbrem;
430  Float_t slbrem;
431  Float_t zintbr;
432  Float_t stepbr;
433  Int_t ihadr;
434  Float_t shadr;
435  Float_t slhadr;
436  Float_t zintha;
437  Float_t stepha;
438  Int_t imunu;
439  Float_t smunu;
440  Float_t slmunu;
441  Float_t zintmu;
442  Float_t stepmu;
443  Int_t idcay;
444  Float_t sdcay;
445  Float_t slife;
446  Float_t sumlif;
447  Float_t dphys1;
448  Int_t iloss;
449  Float_t sloss;
450  Float_t soloss;
451  Float_t stloss;
452  Float_t dphys2;
453  Int_t imuls;
454  Float_t smuls;
455  Float_t somuls;
456  Float_t stmuls;
457  Float_t dphys3;
458  Int_t irayl;
459  Float_t srayl;
460  Float_t slrayl;
461  Float_t zintra;
462  Float_t stepra;
463 } Gcphys_t;
464 
465 //----------GCPHLT
466 // COMMON/GCPHLT/ILABS,SLABS,SLLABS,ZINTLA,STEPLA
467 // + ,ISYNC
468 // + ,ISTRA
469 typedef struct {
470  Int_t ilabs;
471  Float_t slabs;
472  Float_t sllabs;
473  Float_t zintla;
474  Float_t stepla;
475  Int_t isync;
476  Int_t istra;
477 } Gcphlt_t;
478 
479 //----------GCOPTI
480 // COMMON/GCOPTI/IOPTIM
481 typedef struct {
482  Int_t ioptim;
483 } Gcopti_t;
484 
485 //----------GCTLIT
486 // COMMON/GCTLIT/THRIND,PMIN,DP,DNDL,JMIN,ITCKOV,IMCKOV,NPCKOV
487 typedef struct {
488  Float_t thrind;
489  Float_t pmin;
490  Float_t dp;
491  Float_t dndl;
492  Int_t jmin;
493  Int_t itckov;
494  Int_t imckov;
495  Int_t npckov;
496 } Gctlit_t;
497 
498 //----------GCVDMA
499 // COMMON/GCVDMA/NVMANY,MANYLE(20),MANYNA(20,15),
500 // +MANYNU(20,15),NFMANY,MYCOUN,IMYSE,RAYTRA,VECCOS(3)
501 typedef struct {
502  Int_t vdma[624];
503  Float_t raytra;
504  Float_t veccos[3];
505 } Gcvdma_t;
506 
507 //----------GCTPOL
508 #define MAXME1 30
509 // COMMON/GCTPOL/POLAR(3), NAMEC1(MAXME1)
510 typedef struct {
511  Float_t polar[3];
512  Int_t namec1[MAXME1];
513 } Gctpol_t;
514 
515 /************************************************************************
516  * *
517  * Commons for GEANE *
518  * *
519  ************************************************************************/
520 
521 //------------ERTRIO
522 // INTEGER MXPRED
523 // PARAMETER (MXPRED = 10)
524 // DOUBLE PRECISION ERDTRP
525 // REAL ERRIN, ERROUT, ERTRSP, ERXIN, ERXOUT, ERPIN,
526 // + ERPOUT
527 // INTEGER NEPRED, INLIST, ILPRED, IEPRED
528 // COMMON /ERTRIO/ ERDTRP(5,5,MXPRED), ERRIN(15), ERROUT(15,MXPRED),
529 // + ERTRSP(5,5,MXPRED), ERXIN( 3), ERXOUT( 3,MXPRED),
530 // + ERPIN(3), ERPOUT(3,MXPRED), NEPRED,INLIST,ILPRED,
531 // + IEPRED(MXPRED)
532 //
533 
534 #define MXPRED 10
535 typedef struct {
536  Double_t erdtrp[MXPRED*5*5];
537  Float_t errin[15];
538  Float_t errout[MXPRED*15];
539  Float_t ertrsp[MXPRED*5*5];
540  Float_t erxin[3];
541  Float_t erxout[MXPRED*3];
542  Float_t erpin[3];
543  Float_t erpout[MXPRED*3];
544  Int_t nepred;
545  Int_t inlist;
546  Int_t ilpred;
547  Int_t iepred;
548 } Ertrio_t;
549 
550 typedef struct {
551  Int_t iertr;
552  Int_t iertr1;
553  Int_t iertr2;
554 } Ertrio1_t;
555 
556 //-----------EROTPS
557 // CHARACTER*8 CHOPTI
558 // LOGICAL LEEXAC, LELENG, LEONLY, LEPLAN, LEPOIN, LEVOLU
559 // REAL ERPLI, ERPLO, ERLENG
560 // INTEGER NAMEER, NUMVER, IOVLER
561 // COMMON /EROPTS/ ERPLI(3,2), ERPLO(3,4,MXPRED), ERLENG(MXPRED),
562 // + NAMEER(MXPRED), NUMVER(MXPRED), IOVLER(MXPRED),
563 // + LEEXAC, LELENG, LEONLY, LEPLAN, LEPOIN, LEVOLU
564 // COMMON /EROPTC/CHOPTI
565 
566 typedef struct {
567  Float_t erpli[3*2];
568  Float_t erplo[MXPRED*3*4];
569  Float_t erleng[MXPRED];
570  Int_t nameer[MXPRED];
571  Int_t numver[MXPRED];
572  Int_t iovler[MXPRED];
573  Int_t leexac;
574  Int_t leleng;
575  Int_t leonly;
576  Int_t leplan;
577  Int_t lepoin;
578  Int_t levolu;
579 } Eropts_t;
580 
581 typedef struct {
582  char chopti[8];
583 } Eroptc_t;
584 
585 //-------TRCOM3: A. Panzarasa
586 // COMMON /TRCOM3/ A(5,5),B(5,5),S(15),TN(3),T(5),
587 // COSL,SINL,COSP,SINP,COSLI,NEW
588 //
589 typedef struct {
590  Double_t a[5][5];
591  Double_t b[5][5];
592  Double_t s[15];
593  Double_t tn[3];
594  Double_t t[5];
595  Double_t cosl;
596  Double_t sinl;
597  Double_t cosp;
598  Double_t sinp;
599  Double_t cosl1;
600  Int_t NEW;
601 } Trcom3_t;
602 
603 
604 //-------ERWORK
605 // DOUBLE PRECISION EI, EF, ASDSC
606 // COMMON /ERWORK/ EI(15), EF(15), ASDSC(5,5),
607 // + XI(3), PPI(3), HI(9),
608 // + XF(3), PF(3), HF(9),
609 // + CHTR, DEDX2, BACKTR, CUTEK, TLGCM2, TLRAD
610 
611 typedef struct {
612  Double_t ei[15];
613  Double_t ef[15];
614  Double_t asdsc[5*5];
615  Float_t xi[3];
616  Float_t ppi[3];
617  Float_t hi[9];
618  Float_t xf[3];
619  Float_t pf[3];
620  Float_t hf[9];
621  Float_t chtr;
622  Float_t dedx2;
623  Float_t backtr;
624  Float_t cutek;
625  Float_t tlgcm2;
626  Float_t tlrad;
627 } Erwork_t;
628 
629 //----------GCCHAN
630 // COMMON/GCCHAN/LSAMVL
631 typedef struct {
632  Int_t lsamvl;
633 } Gcchan_t;
634 
635 /************************************************************************
636  * *
637  * Commons for GEANE *
638  * *
639  ************************************************************************/
640 
641 class TGeant3 : public TVirtualMC {
642 
643 public:
644  TGeant3();
645  TGeant3(const char *title, Int_t nwgeant=0);
646  virtual ~TGeant3();
647 
648  virtual void LoadAddress();
649  virtual Bool_t IsRootGeometrySupported() const {return kFALSE;}
650 
651 ///////////////////////////////////////////////////////////////////////
652 // //
653 // //
654 // Here are the service routines from the geometry //
655 // which could be implemented also in other geometries //
656 // //
657 // //
658 ///////////////////////////////////////////////////////////////////////
659 
660  void GeomIter();
661  Int_t CurrentMaterial(Float_t &a, Float_t &z, Float_t &dens,
662  Float_t &radl, Float_t &absl) const;
663  Int_t NextVolUp(Text_t *name, Int_t &copy);
664  Int_t CurrentVolID(Int_t &copy) const;
665  Int_t CurrentVolOffID(Int_t off, Int_t &copy) const;
666  const char* CurrentVolName() const;
667  const char *CurrentVolOffName(Int_t off) const;
668  const char* CurrentVolPath();
669  Int_t VolId(const Text_t *name) const;
670  Int_t MediumId(const Text_t *name) const;
671  Int_t IdFromPDG(Int_t pdg) const;
672  Int_t PDGFromId(Int_t pdg) const;
673  const char* VolName(Int_t id) const;
674  Double_t Xsec(char* reac, Double_t energy, Int_t part, Int_t mate);
675  void TrackPosition(TLorentzVector &xyz) const;
676  void TrackPosition(Double_t &x, Double_t &y, Double_t &z) const;
677  void TrackMomentum(TLorentzVector &xyz) const;
678  void TrackMomentum(Double_t &px, Double_t &py, Double_t &pz,
679  Double_t &etot) const;
680  Int_t NofVolumes() const;
681  Int_t NofVolDaughters(const char* volName) const;
682  const char* VolDaughterName(const char* volName, Int_t i) const;
683  Int_t VolDaughterCopyNo(const char* volName, Int_t i) const;
684  Int_t VolId2Mate(Int_t id) const;
685  Double_t TrackTime() const;
686  Double_t TrackCharge() const;
687  Double_t TrackMass() const;
688  Double_t TrackStep() const;
689  Double_t TrackLength() const;
690  Int_t TrackPid() const;
691  Bool_t IsNewTrack() const;
692  Bool_t IsTrackInside() const;
693  Bool_t IsTrackEntering() const;
694  Bool_t IsTrackExiting() const;
695  Bool_t IsTrackOut() const;
696  Bool_t IsTrackDisappeared() const;
697  Bool_t IsTrackStop() const;
698  Bool_t IsTrackAlive() const;
699  Int_t NSecondaries() const;
700  Int_t CurrentEvent() const;
701  TMCProcess ProdProcess(Int_t isec) const;
702  Int_t StepProcesses(TArrayI &proc) const;
703  void GetSecondary(Int_t isec, Int_t& ipart, TLorentzVector &x,
704  TLorentzVector &p);
705  Bool_t SecondariesAreOrdered() const {return kTRUE;}
706  void StopTrack();
707  void StopEvent();
708  void StopRun();
709  Double_t MaxStep() const;
710  void SetMaxStep(Double_t maxstep);
711  void SetMaxNStep(Int_t maxnstp);
712  Int_t GetMaxNStep() const;
713  void ForceDecayTime(Float_t time);
714  void SetSkipNeutrinos(Bool_t flag) {fSkipNeutrinos = flag;}
715  Bool_t SkipNeutrinos() {return fSkipNeutrinos;}
716  Bool_t SetCut(const char* cutName, Double_t cutValue);
717  Bool_t SetProcess(const char* flagName, Int_t flagValue);
718  const char *GetPath();
719  const char *GetNodeName();
720  Bool_t DefineParticle(Int_t pdg, const char* name,
721  TMCParticleType mcType,
722  Double_t mass, Double_t charge, Double_t lifetime);
723  Bool_t DefineParticle(Int_t pdg, const char* name,
724  TMCParticleType mcType,
725  Double_t mass, Double_t charge, Double_t lifetime,
726  const TString& /*pType*/, Double_t /*width*/,
727  Int_t /*iSpin*/, Int_t /*iParity*/, Int_t /*iConjugation*/,
728  Int_t /*iIsospin*/, Int_t /*iIsospinZ*/, Int_t /*gParity*/,
729  Int_t /*lepton*/, Int_t /*baryon*/,
730  Bool_t /*stable*/, Bool_t /*shortlived*/ = kFALSE,
731  const TString& /*subType*/ = "",
732  Int_t /*antiEncoding*/ = 0, Double_t /*magMoment*/ = 0.0,
733  Double_t /*excitation*/ = 0.0);
734  Bool_t DefineIon(const char* name, Int_t Z, Int_t A, Int_t Q,
735  Double_t excEnergy, Double_t mass);
736  virtual TString ParticleName(Int_t pdg) const;
737  virtual Double_t ParticleMass(Int_t pdg) const;
738  virtual Double_t ParticleCharge(Int_t pdg) const;
739  virtual Double_t ParticleLifeTime(Int_t pdg) const;
740  virtual TMCParticleType ParticleMCType(Int_t pdg) const;
741 
742  virtual Int_t CurrentMedium() const;
743  virtual Int_t GetMedium() const;
744  virtual Double_t Edep() const;
745  virtual Double_t Etot() const;
746 
747  virtual void Material(Int_t& kmat, const char* name, Double_t a, Double_t z,
748  Double_t dens, Double_t radl, Double_t absl,
749  Float_t* buf=0, Int_t nwbuf=0);
750  virtual void Material(Int_t& kmat, const char* name, Double_t a, Double_t z,
751  Double_t dens, Double_t radl, Double_t absl,
752  Double_t* buf, Int_t nwbuf);
753  virtual void Mixture(Int_t& kmat, const char* name, Float_t* a,Float_t* z,
754  Double_t dens, Int_t nlmat, Float_t* wmat);
755  virtual void Mixture(Int_t& kmat, const char* name, Double_t* a,Double_t* z,
756  Double_t dens, Int_t nlmat, Double_t* wmat);
757  virtual void Medium(Int_t& kmed, const char* name, Int_t nmat, Int_t isvol,
758  Int_t ifield, Double_t fieldm, Double_t tmaxfd,
759  Double_t stemax, Double_t deemax, Double_t epsil,
760  Double_t stmin, Float_t* ubuf=0, Int_t nbuf=0);
761  virtual void Medium(Int_t& kmed, const char* name, Int_t nmat, Int_t isvol,
762  Int_t ifield, Double_t fieldm, Double_t tmaxfd,
763  Double_t stemax, Double_t deemax, Double_t epsil,
764  Double_t stmin, Double_t* ubuf, Int_t nbuf);
765  virtual void Matrix(Int_t& krot, Double_t thex, Double_t phix, Double_t they,
766  Double_t phiy, Double_t thez, Double_t phiz);
767 
768  virtual void SetRootGeometry();
769  virtual void SetUserParameters(Bool_t isUserParameters);
770 
771 ////////////////////////////////////////////////////////////////////////
772 // //
773 // Here are the new functions to get geometry information //
774 // By: Bjorn S. Nilsen //
775 // //
776 ////////////////////////////////////////////////////////////////////////
777  // Returns the Transformation maxtrix between the volume specified by
778  // the path volumePath and the Top or master volume.
779  Bool_t GetTransformation(const TString &volumePath,TGeoHMatrix &mat);
780  // Returns the name of the shape and its parameters for the volume
781  // specified by the volumePath and the Top or master volume.
782  Bool_t GetShape(const TString &volumePath,TString &shapeType,TArrayD &par);
783  // Returns the material parameters for the volume specified by
784  // the volume name.
785  Bool_t GetMaterial(const TString &volumeName,
786  TString &name,Int_t &imat,
787  Double_t &a,Double_t &z,Double_t &den,
788  Double_t &radl,Double_t &inter,TArrayD &par);
789  // Returns the medium parameters for the volume specified by the
790  // volume name.
791  Bool_t GetMedium(const TString &volumeName,TString &name,Int_t &imed,
792  Int_t &nmat,Int_t &isvol,Int_t &ifield,
793  Double_t &fieldm,Double_t &tmaxfd,Double_t &stemax,
794  Double_t &deemax,Double_t &epsil, Double_t &stmin,
795  TArrayD &par);
796 
797 ////////////////////////////////////////////////////////////////////////
798 // //
799 // //
800 // Here are the interface functions with GEANT3.21 //
801 // //
802 // //
803 ////////////////////////////////////////////////////////////////////////
804 
805  // access functions to commons
806 
807  virtual Quest_t* Quest() const {return fQuest;}
808  virtual Gcbank_t* Gcbank() const {return fGcbank;}
809  virtual Gclink_t* Gclink() const {return fGclink;}
810  virtual Gccuts_t* Gccuts() const {return fGccuts;}
811  virtual Gcmore_t* Gcmore() const {return fGcmore;}
812  virtual Gcmulo_t* Gcmulo() const {return fGcmulo;}
813  virtual Gcmate_t* Gcmate() const {return fGcmate;}
814  virtual Gctpol_t* Gctpol() const {return fGctpol;}
815  virtual Gcnum_t* Gcnum() const {return fGcnum;}
816  virtual Gcsets_t* Gcsets() const {return fGcsets;}
817  virtual Gcopti_t* Gcopti() const {return fGcopti;}
818  virtual Gctlit_t* Gctlit() const {return fGctlit;}
819  virtual Gcvdma_t* Gcvdma() const {return fGcvdma;}
820  virtual Gcvolu_t* Gcvolu() const {return fGcvolu;}
821  virtual Gckine_t* Gckine() const {return fGckine;}
822  virtual Gcflag_t* Gcflag() const {return fGcflag;}
823  virtual Gctmed_t* Gctmed() const {return fGctmed;}
824  virtual Gcphys_t* Gcphys() const {return fGcphys;}
825  virtual Gcphlt_t* Gcphlt() const {return fGcphlt;}
826  virtual Gcking_t* Gcking() const {return fGcking;}
827  virtual Gckin2_t* Gckin2() const {return fGckin2;}
828  virtual Gckin3_t* Gckin3() const {return fGckin3;}
829  virtual Gctrak_t* Gctrak() const {return fGctrak;}
830  virtual Int_t* Iq() const {return fZiq;}
831  virtual Int_t* Lq() const {return fZlq;}
832  virtual Float_t* Q() const {return fZq;}
833 
834  // Access to GEANE commons
835 
836  virtual Ertrio_t* Ertrio() const {return fErtrio;}
837  virtual Eropts_t* Eropts() const {return fEropts;}
838  virtual Eroptc_t* Eroptc() const {return fEroptc;}
839  virtual Erwork_t* Erwork() const {return fErwork;}
840  virtual Trcom3_t* Trcom3() const {return fTrcom3;}
841  virtual Gconst_t* Gconst() const {return fGconst;}
842  virtual Gconsx_t* Gconsx() const {return fGconsx;}
843  virtual Gcjump_t* Gcjump() const {return fGcjump;}
844 
845 
846  // functions from GBASE
847  virtual void Gpcxyz();
848  virtual void Ggclos();
849  virtual void Gfile(const char *filename, const char *option="I");
850  virtual void Glast();
851  virtual void Gprint(const char *name);
852  virtual void Grun();
853  virtual void Gtrig();
854  virtual void Gtrigc();
855  virtual void Gtrigi();
856  virtual void Gwork(Int_t nwork);
857  virtual void Gzinit();
858 
859  // functions from GCONS
860  virtual void Gfmate(Int_t imat, char *name, Float_t &a, Float_t &z,
861  Float_t &dens, Float_t &radl, Float_t &absl,
862  Float_t* ubuf, Int_t& nbuf);
863  virtual void Gfmate(Int_t imat, char *name, Double_t &a, Double_t &z,
864  Double_t &dens, Double_t &radl, Double_t &absl,
865  Double_t* ubuf, Int_t& nbuf);
866  virtual void Gfpart(Int_t ipart, char *name, Int_t &itrtyp,
867  Float_t &amass,Float_t &charge,Float_t &tlife) const;
868  virtual void Gftmed(Int_t numed, char *name, Int_t &nmat, Int_t &isvol,
869  Int_t &ifield, Float_t &fieldm, Float_t &tmaxfd,
870  Float_t &stemax, Float_t &deemax, Float_t &epsil,
871  Float_t &stmin, Float_t *buf=0, Int_t *nbuf=0);
872  virtual void Gftmat(Int_t imate, Int_t ipart, char *chmeca, Int_t kdim,
873  Float_t* tkin, Float_t* value, Float_t* pcut,
874  Int_t &ixst);
875  virtual Float_t Gbrelm(Float_t z, Float_t t, Float_t cut);
876  virtual Float_t Gprelm(Float_t z, Float_t t, Float_t cut);
877  virtual void Gmate();
878  virtual void Gpart();
879  virtual void Gsckov(Int_t itmed, Int_t npckov, Float_t *ppckov,
880  Float_t *absco, Float_t *effic, Float_t *rindex);
881  virtual void Gsdk(Int_t ipart, Float_t *bratio, Int_t *mode);
882  virtual void Gsmate(Int_t imat, const char *name, Float_t a, Float_t z,
883  Float_t dens, Float_t radl, Float_t absl);
884  virtual void Gfang( Float_t* p, Float_t& costh, Float_t& sinth,
885  Float_t& cosph, Float_t& sinph, Int_t& rotate);
886  virtual void Gsmixt(Int_t imat, const char *name, Float_t *a, Float_t *z,
887  Float_t dens, Int_t nlmat, Float_t *wmat);
888  virtual void Gspart(Int_t ipart, const char *name, Int_t itrtyp,
889  Double_t amass, Double_t charge, Double_t tlife);
890  virtual void Gstmed(Int_t numed,const char *name,Int_t nmat, Int_t isvol,
891  Int_t ifield, Float_t fieldm, Float_t tmaxfd,
892  Float_t stemax, Float_t deemax, Float_t epsil,
893  Float_t stmin);
894  virtual void Gstpar(Int_t itmed, const char *param, Double_t parval);
895 
896  virtual void SetCerenkov(Int_t itmed, Int_t npckov, Float_t *ppckov,
897  Float_t *absco, Float_t *effic, Float_t *rindex);
898  virtual void SetCerenkov(Int_t itmed, Int_t npckov, Double_t *ppckov,
899  Double_t *absco, Double_t *effic, Double_t *rindex);
900 
901  // functions for definition of surfaces
902  // and material properties for optical physics
903  virtual void DefineOpSurface(const char* name,
904  EMCOpSurfaceModel model,
905  EMCOpSurfaceType surfaceType,
906  EMCOpSurfaceFinish surfaceFinish,
907  Double_t sigmaAlpha);
908  virtual void SetBorderSurface(const char* name,
909  const char* vol1Name, int vol1CopyNo,
910  const char* vol2Name, int vol2CopyNo,
911  const char* opSurfaceName);
912  virtual void SetSkinSurface(const char* name,
913  const char* volName,
914  const char* opSurfaceName);
915  virtual void SetMaterialProperty(
916  Int_t itmed, const char* propertyName,
917  Int_t np, Double_t* pp, Double_t* values);
918  virtual void SetMaterialProperty(
919  Int_t itmed, const char* propertyName,
920  Double_t value);
921  virtual void SetMaterialProperty(
922  const char* surfaceName, const char* propertyName,
923  Int_t np, Double_t* pp, Double_t* values);
924 
925  // functions from GKINE
926  virtual void Gfkine(Int_t itra, Float_t *vert, Float_t *pvert,
927  Int_t &ipart, Int_t &nvert);
928  virtual void Gfvert(Int_t nvtx,Float_t *v,Int_t &ntbeam,Int_t &nttarg,
929  Float_t &tofg);
930  virtual Int_t Gskine(Float_t *plab, Int_t ipart, Int_t nv,
931  Float_t *ubuf=0, Int_t nwbuf=0);
932  virtual Int_t Gsvert(Float_t *v, Int_t ntbeam, Int_t nttarg,
933  Float_t *ubuf=0, Int_t nwbuf=0);
934 
935  // functions from GPHYS
936  virtual void Gphysi();
937 
938  // functions from GTRAK
939  virtual void Gdebug();
940  virtual void Gekbin();
941  virtual void Gfinds();
942  virtual void Gsking(Int_t igk);
943  virtual void Gskpho(Int_t igk);
944  virtual void Gsstak(Int_t iflag);
945  virtual void Gsxyz();
946  virtual void Gtrack();
947  virtual void Gtreve();
948  virtual void GtreveRoot();
949  virtual void Grndm(Float_t *rvec, Int_t len) const;
950  virtual void Grndmq(Int_t &is1, Int_t &is2, Int_t iseq,
951  const Text_t *chopt);
952 
953  // functions from GGEOM
954  virtual void Gdxyz(Int_t it);
955  virtual void Gdcxyz();
956 
957  // functions from GGEOM
958  virtual void Gdtom(Float_t *xd, Float_t *xm, Int_t iflag);
959  virtual void Gdtom(Double_t *xd, Double_t *xm, Int_t iflag);
960  virtual void Glmoth(const char* iudet, Int_t iunum, Int_t &nlev,
961  Int_t *lvols, Int_t *lindx);
962  virtual void Gmedia(Float_t *x, Int_t &numed);
963  virtual void Gmtod(Float_t *xm, Float_t *xd, Int_t iflag);
964  virtual void Gmtod(Double_t *xm, Double_t *xd, Int_t iflag);
965  virtual void Gsdvn(const char *name, const char *mother,
966  Int_t ndiv, Int_t iaxis);
967  virtual void Gsdvn2(const char *name, const char *mother,
968  Int_t ndiv, Int_t iaxis, Double_t c0i, Int_t numed);
969  virtual void Gsdvs(const char *name, const char *mother,
970  Float_t step, Int_t iaxis, Int_t numed);
971  virtual void Gsdvs2(const char *name, const char *mother,
972  Float_t step, Int_t iaxis, Float_t c0, Int_t numed);
973  virtual void Gsdvt(const char *name, const char *mother,
974  Double_t step, Int_t iaxis, Int_t numed, Int_t ndvmx);
975  virtual void Gsdvt2(const char *name, const char *mother,
976  Double_t step, Int_t iaxis,
977  Double_t c0, Int_t numed, Int_t ndvmx);
978  virtual void Gsord(const char *name, Int_t iax);
979  virtual void Gspos(const char *name, Int_t nr, const char *mother,
980  Double_t x, Double_t y, Double_t z, Int_t irot,
981  const char *konly="ONLY");
982  virtual void Gsposp(const char *name, Int_t nr, const char *mother,
983  Double_t x, Double_t y, Double_t z, Int_t irot,
984  const char *konly, Float_t *upar, Int_t np);
985  virtual void Gsposp(const char *name, Int_t nr, const char *mother,
986  Double_t x, Double_t y, Double_t z, Int_t irot,
987  const char *konly, Double_t *upar, Int_t np);
988  virtual void Gsrotm(Int_t nmat, Float_t theta1, Float_t phi1,
989  Float_t theta2, Float_t phi2,
990  Float_t theta3, Float_t phi3);
991  virtual void Gprotm(Int_t nmat=0);
992  virtual Int_t Gsvolu(const char *name, const char *shape, Int_t nmed,
993  Float_t *upar, Int_t np);
994  virtual Int_t Gsvolu(const char *name, const char *shape, Int_t nmed,
995  Double_t *upar, Int_t np);
996  virtual void Gsatt(const char *name, const char *att, Int_t val);
997  virtual void Gfpara(const char *name,Int_t number,Int_t intext,Int_t& npar,
998  Int_t& natt, Float_t* par, Float_t* att);
999  virtual void Gckpar(Int_t ish, Int_t npar, Float_t *par);
1000  virtual void Gckmat(Int_t itmed, char *natmed);
1001  virtual Int_t Glvolu(Int_t nlev, Int_t *lnam,Int_t *lnum);
1002  virtual void Gsbool(const char* /*onlyVolName*/,
1003  const char* /*manyVolName*/) {}
1004 
1005  // functions from GDRAW
1006  virtual void DefaultRange();
1007  virtual void InitHIGZ();
1008  virtual void Gdopen(Int_t view);
1009  virtual void Gdclose();
1010  virtual void Gdelete(Int_t view);
1011  virtual void Gdshow(Int_t view);
1012  virtual void Gdopt(const char *name,const char *value);
1013  virtual void Gdraw(const char *name,Double_t theta=30, Double_t phi=30,
1014  Double_t psi=0,Double_t u0=10,Double_t v0=10,
1015  Double_t ul=0.01,Double_t vl=0.01);
1016  virtual void Gdrawc(const char *name,Int_t axis=1, Float_t cut=0,
1017  Float_t u0=10,Float_t v0=10,Float_t ul=0.01,
1018  Float_t vl=0.01);
1019  virtual void Gdrawx(const char *name,Float_t cutthe, Float_t cutphi,
1020  Float_t cutval, Float_t theta=30, Float_t phi=30,
1021  Float_t u0=10,Float_t v0=10,Float_t ul=0.01,
1022  Float_t vl=0.01);
1023  virtual void Gdhead(Int_t isel, const char *name, Double_t chrsiz=0.6);
1024  virtual void Gdman(Double_t u0, Double_t v0, const char *type="MAN");
1025  virtual void Gdspec(const char *name);
1026  virtual void DrawOneSpec(const char *name);
1027  virtual void Gdtree(const char *name,Int_t levmax=15,Int_t ispec=0);
1028  virtual void GdtreeParent(const char *name,Int_t levmax=15,Int_t ispec=0);
1029 
1030  virtual void WriteEuclid(const char* filnam, const char* topvol,
1031  Int_t number, Int_t nlevel);
1032 
1033  virtual void SetABAN(Int_t par=1);
1034  virtual void SetANNI(Int_t par=1);
1035  virtual void SetAUTO(Int_t par=1);
1036  virtual void SetBOMB(Float_t bomb=1);
1037  virtual void SetBREM(Int_t par=1);
1038  virtual void SetCKOV(Int_t par=1);
1039  virtual void SetClipBox(const char *name,Double_t xmin=-9999,
1040  Double_t xmax=0, Double_t ymin=-9999,
1041  Double_t ymax=0,Double_t zmin=-9999,
1042  Double_t zmax=0);
1043  virtual void SetCOMP(Int_t par=1);
1044  //modified by Andrea Fontana and Alberto Rotondi - march 2007
1045  //added array of 5 user definable cuts (like in old Geant)
1046  virtual void SetCUTS(Float_t cutgam,Float_t cutele,Float_t cutneu,
1047  Float_t cuthad,Float_t cutmuo ,Float_t bcute ,
1048  Float_t bcutm ,Float_t dcute ,
1049  Float_t dcutm ,Float_t ppcutm, Float_t tofmax, Float_t
1050  *gcuts);
1051  virtual void InitGEANE();
1052  virtual void SetClose(Int_t iclose,Float_t *pf,Float_t dstrt,
1053  Float_t *w1,Float_t *w2,
1054  Float_t *p1,Float_t *p2,Float_t *p3,Float_t *cl);
1055  virtual void GetClose(Float_t *p1,Float_t *p2,Float_t *p3, Float_t *len);
1056  virtual void SetECut(Float_t gcalpha);
1057  virtual void SetDCAY(Int_t par=1);
1058  virtual void SetDEBU(Int_t emin=1, Int_t emax=999, Int_t emod=1);
1059  virtual void SetDRAY(Int_t par=1);
1060  virtual void SetERAN(Float_t ekmin=1.e-5, Float_t ekmax=1.e4,
1061  Int_t nekbin=90);
1062  virtual void SetHADR(Int_t par=1);
1063  virtual void SetKINE(Int_t kine, Float_t xk1=0, Float_t xk2=0,
1064  Float_t xk3=0, Float_t xk4=0,
1065  Float_t xk5=0, Float_t xk6=0, Float_t xk7=0,
1066  Float_t xk8=0, Float_t xk9=0, Float_t xk10=0);
1067  virtual void SetLOSS(Int_t par=2);
1068  virtual void SetMULS(Int_t par=1);
1069  virtual void SetMUNU(Int_t par=1);
1070  virtual void SetOPTI(Int_t par=2);
1071  virtual void SetPAIR(Int_t par=1);
1072  virtual void SetPFIS(Int_t par=1);
1073  virtual void SetPHOT(Int_t par=1);
1074  virtual void SetRAYL(Int_t par=1);
1075  virtual void SetSTRA(Int_t par=0);
1076  virtual void SetSWIT(Int_t sw, Int_t val=1);
1077  virtual void SetTRIG(Int_t nevents=1);
1078  virtual void SetUserDecay(Int_t ipart);
1079  virtual Bool_t SetDecayMode(Int_t pdg, Float_t bratio[6], Int_t mode[6][3]);
1080  virtual void Vname(const char *name, char *vname);
1081  virtual void InitLego();
1082 
1083  // Routines from GEANE
1084 
1085  virtual void Ertrgo();
1086  virtual void Ertrak(const Float_t *x1, const Float_t *p1,
1087  const Float_t *x2, const Float_t *p2,
1088  Int_t ipa, Option_t *chopt);
1089  virtual void Erxyzc();
1090  virtual void Eufill(Int_t n,Float_t *ein,Float_t *xlf);
1091  virtual void Eufilp(const Int_t n, Float_t *ein,
1092  Float_t *pli, Float_t *plf);
1093  virtual void Eufilv(Int_t n, Float_t *ein,
1094  Char_t *namv, Int_t *numv,Int_t *iovl);
1095  virtual void Trscsd(Float_t *pc,Float_t *rc,Float_t *pd,Float_t *rd,Float_t *h,
1096  Float_t ch,Int_t ierr,Float_t spu,Float_t *dj,Float_t *dk);
1097  virtual void Trsdsc(Float_t *pd,Float_t *rd,Float_t *pc,Float_t *rc,Float_t *h,
1098  Float_t *ch,Int_t *ierr,Float_t *spu,Float_t *dj,Float_t *dk);
1099  virtual void Trscsp(Float_t *ps,Float_t *rs,Float_t *pc,Float_t *rc,Float_t *h,
1100  Float_t *ch,Int_t *ierr,Float_t *spx);
1101  virtual void Trspsc(Float_t *ps,Float_t *rs,Float_t *pc,Float_t *rc,Float_t *h,
1102  Float_t *ch,Int_t *ierr,Float_t *spx);
1103 
1104 
1105  // Control Methods
1106 
1107  virtual void FinishGeometry();
1108  virtual void BuildPhysics();
1109  virtual void Init();
1110  virtual void ProcessEvent();
1111  virtual Bool_t ProcessRun(Int_t nevent);
1112  virtual void AddParticlesToPdgDataBase() const;
1113 
1114  //
1115  virtual void SetColors();
1116 
1117  void SetTrack(Int_t done, Int_t parent, Int_t pdg,
1118  Float_t *pmom, Float_t *vpos, Float_t *polar,
1119  Float_t tof, TMCProcess mech, Int_t &ntr,
1120  Float_t weight, Int_t is);
1121 
1122  Ertrio_t *fErtrio; //! ERTRIO common structure
1123  Ertrio1_t *fErtrio1; //! ERTRIO1 common structure
1124  Eropts_t *fEropts; //! EROPTS common structure
1125  Eroptc_t *fEroptc; //! EROPTC common structure
1126  Erwork_t *fErwork; //! ERWORK common structure
1127  Trcom3_t *fTrcom3; //! TRCOM3 common structure
1128 
1129 
1130 private:
1131  Int_t ConvertVolumePathString(const TString &volumeName,Int_t **lnam,
1132  Int_t **lnum);
1133 
1134 
1135 
1136 protected:
1137  Int_t fNextVol; // Iterator for GeomIter
1138  char fPath[512]; // Current path of G3
1139 //--------------Declarations for ZEBRA---------------------
1140  Int_t *fZiq; //! Good Old IQ of Zebra
1141  Int_t *fZlq; //! Good Old LQ of Zebra
1142  Float_t *fZq; //! Good Old Q of Zebra
1143 
1144  Quest_t *fQuest; //! QUEST common structure
1145  Gcbank_t *fGcbank; //! GCBANK common structure
1146  Gclink_t *fGclink; //! GCLINK common structure
1147  Gccuts_t *fGccuts; //! GCCUTS common structure
1148  Gcmore_t *fGcmore; //! GCMORE common structure
1149  Gcmulo_t *fGcmulo; //! GCMULO common structure
1150  Gcmate_t *fGcmate; //! GCMATE common structure
1151  Gctpol_t *fGctpol; //! GCTPOL common structure
1152  Gcnum_t *fGcnum; //! GCNUM common structure
1153  Gcsets_t *fGcsets; //! GCSETS common structure
1154  Gcopti_t *fGcopti; //! GCOPTI common structure
1155  Gctlit_t *fGctlit; //! GCTLIT common structure
1156  Gcvdma_t *fGcvdma; //! GCVDMA common structure
1157  Gcvolu_t *fGcvolu; //! GCVOLU common structure
1158  Gckine_t *fGckine; //! GCKINE common structure
1159  Gcflag_t *fGcflag; //! GCFLAG common structure
1160  Gctmed_t *fGctmed; //! GCTMED common structure
1161  Gcphys_t *fGcphys; //! GCPHYS common structure
1162  Gcphlt_t *fGcphlt; //! GCPHLT common structure
1163  Gcking_t *fGcking; //! GCKING common structure
1164  Gckin2_t *fGckin2; //! GCKIN2 common structure
1165  Gckin3_t *fGckin3; //! GCKIN3 common structure
1166  Gctrak_t *fGctrak; //! GCTRAK common structure
1167  Gcchan_t *fGcchan; //! GCCHAN common structure
1168 
1169 
1170  // commons for GEANE
1171  Gconst_t *fGconst; //! GCONST common structure
1172  Gconsx_t *fGconsx; //! GCONSX common structure
1173  Gcjump_t *fGcjump; //! GCJUMP common structure
1174 
1175 
1176 
1177 
1178  //Put here all volume names
1179 
1180  char (*fVolNames)[5]; //! Names of geant volumes as C++ chars
1181  TObjArray fMedNames; //! Names of geant medias as TObjString
1182 
1183  Int_t fNG3Particles; // Number of G3 particles
1184  Int_t fNPDGCodes; // Number of PDG codes known by G3
1185 
1186  TArrayI fPDGCode;// Translation table of PDG codes
1187  TGeoMCGeometry* fMCGeo; // Implementation of TVirtualMCGeometry for TGeo
1188  Bool_t fImportRootGeometry; // Option to import geometry from TGeo
1189  // (materials and medias are filled
1190  // in FinishGeometry()
1191  Bool_t fStopRun; // The flag for stopping run by a user
1192  Bool_t fSkipNeutrinos; // The flag for skipping neutrinos from decays
1193 
1194  TMCProcess G3toVMC(Int_t iproc) const;
1195 
1196  void DefineParticles();
1197  Int_t TransportMethod(TMCParticleType particleType) const;
1198  TString ParticleClass(TMCParticleType particleType) const;
1199  TMCParticleType ParticleType(Int_t itrtyp) const;
1200 
1201  enum {kTRIG = BIT(14),
1202  kSWIT = BIT(15),
1203  kDEBU = BIT(16),
1204  kAUTO = BIT(17),
1205  kABAN = BIT(18),
1206  kOPTI = BIT(19),
1207  kERAN = BIT(20)
1208  };
1209  TGeant3(const TGeant3 &) : TVirtualMC() {}
1210  TGeant3 & operator=(const TGeant3&) {return *this;}
1211 
1212  // array conversion
1213  Float_t* CreateFloatArray(Float_t* array, Int_t size) const;
1214  Float_t* CreateFloatArray(Double_t* array, Int_t size) const;
1215  Int_t NextKmat() const;
1216 
1217  // functions for building geometry with different interface
1218  // for double and single precision
1219  void G3Material(Int_t& kmat, const char* name, Double_t a, Double_t z,
1220  Double_t dens, Double_t radl, Double_t absl,
1221  Float_t* buf=0, Int_t nwbuf=0);
1222  void G3Mixture(Int_t& kmat, const char* name, Float_t* a,Float_t* z,
1223  Double_t dens, Int_t nlmat, Float_t* wmat);
1224  void G3Medium(Int_t& kmed, const char* name, Int_t nmat, Int_t isvol,
1225  Int_t ifield, Double_t fieldm, Double_t tmaxfd,
1226  Double_t stemax, Double_t deemax, Double_t epsil,
1227  Double_t stmin, Float_t* ubuf=0, Int_t nbuf=0);
1228  Int_t G3Gsvolu(const char *name, const char *shape, Int_t nmed,
1229  Float_t *upar, Int_t np);
1230  void G3Gsposp(const char *name, Int_t nr, const char *mother,
1231  Double_t x, Double_t y, Double_t z, Int_t irot,
1232  const char *konly, Float_t *upar, Int_t np);
1233 
1234  // particles definition
1235  Int_t GetIonPdg(Int_t z, Int_t a, Int_t i = 0) const;
1236  Int_t GetSpecialPdg(Int_t number) const;
1237 
1238 private:
1239  virtual Bool_t GetMaterial
1240  (Int_t, TString&, Double_t&, Double_t&, Double_t&, Double_t&, Double_t&, TArrayD&)
1241  { throw std::logic_error(std::string(__func__) + "::setData(TMatrixT, GFDetPlane, TMatrixT) not available"); }
1242 
1243  ClassDef(TGeant3,1) //C++ interface to Geant basic routines
1244 };
1245 
1246 #endif //ROOT_TGeant3
Float_t spfis
Definition: TGeant3.h:414
Int_t nlevmx
Definition: TGeant3.h:291
void SetSkipNeutrinos(Bool_t flag)
Definition: TGeant3.h:714
Int_t istop
Definition: TGeant3.h:268
Int_t iclose
Definition: TGeant3.h:352
Double_t sinl
Definition: TGeant3.h:596
Float_t somuls
Definition: TGeant3.h:455
Int_t ngphot
Definition: TGeant3.h:195
Gcflag_t * fGcflag
GCKINE common structure.
Definition: TGeant3.h:1159
Int_t nepred
Definition: TGeant3.h:544
Int_t ihset
Definition: TGeant3.h:303
Float_t slhadr
Definition: TGeant3.h:435
Float_t ekinv
Definition: TGeant3.h:376
Int_t idcay
Definition: TGeant3.h:443
#define MXPHOT
Definition: TGeant3.h:193
Float_t slmunu
Definition: TGeant3.h:440
Gcphlt_t * fGcphlt
GCPHYS common structure.
Definition: TGeant3.h:1162
Int_t npart
Definition: TGeant3.h:322
virtual Gctmed_t * Gctmed() const
Definition: TGeant3.h:823
Float_t stepla
Definition: TGeant3.h:474
Int_t juview
Definition: TGeant3.h:86
Float_t cutek
Definition: TGeant3.h:624
Int_t npckov
Definition: TGeant3.h:495
virtual Gcmulo_t * Gcmulo() const
Definition: TGeant3.h:812
Float_t sdcay
Definition: TGeant3.h:444
Eropts_t * fEropts
ERTRIO1 common structure.
Definition: TGeant3.h:1124
virtual Gctpol_t * Gctpol() const
Definition: TGeant3.h:814
Float_t zintpf
Definition: TGeant3.h:416
Float_t big
Definition: TGeant3.h:48
virtual Bool_t IsRootGeometrySupported() const
Definition: TGeant3.h:649
Int_t jmin
Definition: TGeant3.h:492
Gcjump_t * fGcjump
GCONSX common structure.
Definition: TGeant3.h:1173
Quest_t * fQuest
Good Old Q of Zebra.
Definition: TGeant3.h:1144
Float_t emass
Definition: TGeant3.h:49
Int_t judtim
Definition: TGeant3.h:71
Int_t jutrak
Definition: TGeant3.h:84
Int_t juiget
Definition: TGeant3.h:74
Float_t thrind
Definition: TGeant3.h:488
Float_t steppa
Definition: TGeant3.h:402
Float_t stepan
Definition: TGeant3.h:427
Float_t stepbr
Definition: TGeant3.h:432
static const double ps
Definition: Units.h:103
Gctlit_t * fGctlit
GCOPTI common structure.
Definition: TGeant3.h:1155
Int_t nvname
Definition: TGeant3.h:308
Int_t iepred
Definition: TGeant3.h:547
virtual Erwork_t * Erwork() const
Definition: TGeant3.h:839
Int_t iset
Definition: TGeant3.h:305
Int_t iekbin
Definition: TGeant3.h:270
Gcvolu_t * fGcvolu
GCVDMA common structure.
Definition: TGeant3.h:1157
Float_t gekrat
Definition: TGeant3.h:264
Float_t geka
Definition: TGeant3.h:377
Float_t safety
Definition: TGeant3.h:258
Float_t slanni
Definition: TGeant3.h:425
Int_t ignext
Definition: TGeant3.h:266
Float_t tmaxfd
Definition: TGeant3.h:226
std::string string
Definition: nybbler.cc:12
Int_t fNG3Particles
Names of geant medias as TObjString.
Definition: TGeant3.h:1183
Int_t idebug
Definition: TGeant3.h:144
Int_t iloss
Definition: TGeant3.h:448
Float_t slife
Definition: TGeant3.h:445
Int_t ievent
Definition: TGeant3.h:152
Gcnum_t * fGcnum
GCTPOL common structure.
Definition: TGeant3.h:1152
Float_t stepha
Definition: TGeant3.h:437
Int_t lr1
Definition: TGeant3.h:109
virtual Gckine_t * Gckine() const
Definition: TGeant3.h:821
TArrayI fPDGCode
Definition: TGeant3.h:1186
Int_t judigi
Definition: TGeant3.h:70
Int_t ioptim
Definition: TGeant3.h:482
Float_t z
Definition: TGeant3.h:211
Int_t isvol
Definition: TGeant3.h:223
Int_t jufld
Definition: TGeant3.h:72
Int_t juphad
Definition: TGeant3.h:80
Int_t ixdiv
Definition: TGeant3.h:105
Int_t nmate
Definition: TGeant3.h:316
Bool_t SecondariesAreOrdered() const
Definition: TGeant3.h:705
Int_t itra
Definition: TGeant3.h:165
Float_t * fZq
Good Old LQ of Zebra.
Definition: TGeant3.h:1142
virtual Gcmate_t * Gcmate() const
Definition: TGeant3.h:813
Gccuts_t * fGccuts
GCLINK common structure.
Definition: TGeant3.h:1147
Int_t imuls
Definition: TGeant3.h:453
virtual Gckin3_t * Gckin3() const
Definition: TGeant3.h:828
#define MAXMEC
Definition: TGeant3.h:239
Int_t leleng
Definition: TGeant3.h:574
Float_t sbrem
Definition: TGeant3.h:429
Int_t juhadr
Definition: TGeant3.h:73
Float_t raddeg
Definition: TGeant3.h:46
virtual Gcvolu_t * Gcvolu() const
Definition: TGeant3.h:820
virtual Gcjump_t * Gcjump() const
Definition: TGeant3.h:843
Gcbank_t * fGcbank
QUEST common structure.
Definition: TGeant3.h:1145
virtual void Gsbool(const char *, const char *)
Definition: TGeant3.h:1002
Eroptc_t * fEroptc
EROPTS common structure.
Definition: TGeant3.h:1125
Float_t slpair
Definition: TGeant3.h:400
Gcphys_t * fGcphys
GCTMED common structure.
Definition: TGeant3.h:1161
Float_t avo
Definition: TGeant3.h:57
Int_t juskip
Definition: TGeant3.h:81
Int_t nldown
Definition: TGeant3.h:274
virtual Gconsx_t * Gconsx() const
Definition: TGeant3.h:842
Float_t pmin
Definition: TGeant3.h:489
Int_t maxnst
Definition: TGeant3.h:255
Erwork_t * fErwork
EROPTC common structure.
Definition: TGeant3.h:1126
Float_t deemax
Definition: TGeant3.h:228
Float_t cutneu
Definition: TGeant3.h:335
Int_t numold
Definition: TGeant3.h:235
Float_t upwght
Definition: TGeant3.h:265
Float_t sldray
Definition: TGeant3.h:420
Int_t ilosl
Definition: TGeant3.h:271
Int_t ilpred
Definition: TGeant3.h:546
Float_t sphot
Definition: TGeant3.h:409
Int_t iupd
Definition: TGeant3.h:233
Int_t ntrack
Definition: TGeant3.h:321
Float_t piby2
Definition: TGeant3.h:44
Int_t icomp
Definition: TGeant3.h:403
Float_t pi
Definition: TGeant3.h:42
Int_t iphot
Definition: TGeant3.h:408
Int_t justep
Definition: TGeant3.h:82
virtual Gcvdma_t * Gcvdma() const
Definition: TGeant3.h:819
Int_t ikine
Definition: TGeant3.h:163
string filename
Definition: train.py:213
Float_t tlife
Definition: TGeant3.h:173
Int_t juinme
Definition: TGeant3.h:75
Int_t itckov
Definition: TGeant3.h:493
Int_t ianni
Definition: TGeant3.h:423
virtual Gcopti_t * Gcopti() const
Definition: TGeant3.h:817
Float_t ekmin
Definition: TGeant3.h:372
virtual Gcking_t * Gcking() const
Definition: TGeant3.h:826
Float_t zintmu
Definition: TGeant3.h:441
Float_t raytra
Definition: TGeant3.h:503
Float_t gekin
Definition: TGeant3.h:249
Int_t idrun
Definition: TGeant3.h:148
Int_t istra
Definition: TGeant3.h:476
Int_t ihadr
Definition: TGeant3.h:433
Int_t leplan
Definition: TGeant3.h:576
Float_t stemax
Definition: TGeant3.h:227
Int_t nbit
Definition: TGeant3.h:326
Int_t ibrem
Definition: TGeant3.h:428
Float_t epsil
Definition: TGeant3.h:229
Float_t a
Definition: TGeant3.h:210
Float_t chtr
Definition: TGeant3.h:621
Float_t chcmol
Definition: TGeant3.h:371
Int_t nstep
Definition: TGeant3.h:254
Int_t NEW
Definition: TGeant3.h:600
Int_t nvertx
Definition: TGeant3.h:324
Float_t slbrem
Definition: TGeant3.h:430
Int_t junear
Definition: TGeant3.h:78
Float_t shadr
Definition: TGeant3.h:434
Int_t infrom
Definition: TGeant3.h:290
Gcking_t * fGcking
GCPHLT common structure.
Definition: TGeant3.h:1163
Float_t destep
Definition: TGeant3.h:256
Int_t istpar
Definition: TGeant3.h:234
Int_t nek1
Definition: TGeant3.h:375
Int_t ntmult
Definition: TGeant3.h:320
Float_t stepdr
Definition: TGeant3.h:422
double y
Bool_t SkipNeutrinos()
Definition: TGeant3.h:715
Int_t imckov
Definition: TGeant3.h:494
virtual Gcmore_t * Gcmore() const
Definition: TGeant3.h:811
Int_t idtype
Definition: TGeant3.h:307
#define MXGKIN
Definition: TGeant3.h:182
Float_t zintco
Definition: TGeant3.h:406
Float_t cuthad
Definition: TGeant3.h:336
Float_t srayl
Definition: TGeant3.h:459
Float_t pmass
Definition: TGeant3.h:56
Gclink_t * fGclink
GCBANK common structure.
Definition: TGeant3.h:1146
Int_t leexac
Definition: TGeant3.h:573
Int_t * fZlq
Good Old IQ of Zebra.
Definition: TGeant3.h:1141
Float_t soloss
Definition: TGeant3.h:450
const double e
auto array(Array const &a)
Returns a manipulator which will print the specified array.
Definition: DumpUtils.h:228
Gcmore_t * fGcmore
GCCUTS common structure.
Definition: TGeant3.h:1148
Float_t sleng
Definition: TGeant3.h:259
Float_t emmu
Definition: TGeant3.h:55
Int_t ihdet
Definition: TGeant3.h:304
Int_t nzebra
Definition: TGeant3.h:101
Int_t idray
Definition: TGeant3.h:418
Float_t zintla
Definition: TGeant3.h:473
virtual Gcnum_t * Gcnum() const
Definition: TGeant3.h:815
Float_t sanni
Definition: TGeant3.h:424
virtual Gckin2_t * Gckin2() const
Definition: TGeant3.h:827
Int_t ingoto
Definition: TGeant3.h:273
Float_t zintbr
Definition: TGeant3.h:431
Float_t steppf
Definition: TGeant3.h:417
Float_t tlrad
Definition: TGeant3.h:626
Int_t ipair
Definition: TGeant3.h:398
virtual Gconst_t * Gconst() const
Definition: TGeant3.h:841
virtual Gctlit_t * Gctlit() const
Definition: TGeant3.h:818
std::string ParticleName(int pigid)
Returns a string with the name of particle the specified with PDG ID.
Int_t jukine
Definition: TGeant3.h:77
Int_t idemax
Definition: TGeant3.h:146
Int_t ipart
Definition: TGeant3.h:168
Float_t stmin
Definition: TGeant3.h:230
Int_t itest
Definition: TGeant3.h:147
double z
Float_t radl
Definition: TGeant3.h:213
Float_t tofg
Definition: TGeant3.h:263
Float_t cutmuo
Definition: TGeant3.h:337
virtual Gctrak_t * Gctrak() const
Definition: TGeant3.h:829
Float_t dphys3
Definition: TGeant3.h:457
Float_t clight
Definition: TGeant3.h:47
Float_t tofmax
Definition: TGeant3.h:343
Float_t zintdr
Definition: TGeant3.h:421
Int_t istak
Definition: TGeant3.h:166
Float_t zintpa
Definition: TGeant3.h:401
Bool_t fStopRun
Definition: TGeant3.h:1191
Int_t kcase
Definition: TGeant3.h:184
Float_t gekb
Definition: TGeant3.h:378
Int_t nmat
Definition: TGeant3.h:208
Float_t cutgam
Definition: TGeant3.h:333
Int_t nlsav
Definition: TGeant3.h:276
Int_t idemin
Definition: TGeant3.h:145
Gckin2_t * fGckin2
GCKING common structure.
Definition: TGeant3.h:1164
Float_t charge
Definition: TGeant3.h:172
Float_t degrad
Definition: TGeant3.h:45
Int_t ieorun
Definition: TGeant3.h:150
Int_t ixstor
Definition: TGeant3.h:104
Float_t smuls
Definition: TGeant3.h:454
Gckin3_t * fGckin3
GCKIN2 common structure.
Definition: TGeant3.h:1165
Int_t nlevin
Definition: TGeant3.h:275
Int_t juout
Definition: TGeant3.h:79
Float_t stepph
Definition: TGeant3.h:412
Float_t dens
Definition: TGeant3.h:212
Int_t nvolum
Definition: TGeant3.h:317
Int_t istory
Definition: TGeant3.h:277
Float_t dphys1
Definition: TGeant3.h:447
Int_t lepoin
Definition: TGeant3.h:577
Float_t step
Definition: TGeant3.h:260
Int_t imunu
Definition: TGeant3.h:438
Int_t imull
Definition: TGeant3.h:272
void Init(void)
Definition: gXSecComp.cxx:138
Double_t cosl
Definition: TGeant3.h:595
Float_t gversn
Definition: TGeant3.h:102
virtual Gcsets_t * Gcsets() const
Definition: TGeant3.h:816
Int_t inlist
Definition: TGeant3.h:545
Gconsx_t * fGconsx
GCONST common structure.
Definition: TGeant3.h:1172
Int_t nrotm
Definition: TGeant3.h:318
Float_t stepmu
Definition: TGeant3.h:442
Int_t juswim
Definition: TGeant3.h:83
Int_t lsamvl
Definition: TGeant3.h:632
Int_t lmain
Definition: TGeant3.h:108
Int_t ipaold
Definition: TGeant3.h:176
Int_t nmec
Definition: TGeant3.h:251
virtual Gcphys_t * Gcphys() const
Definition: TGeant3.h:824
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition: pointer.h:1124
Float_t sloss
Definition: TGeant3.h:449
Float_t bcutm
Definition: TGeant3.h:339
Gcopti_t * fGcopti
GCSETS common structure.
Definition: TGeant3.h:1154
Float_t scomp
Definition: TGeant3.h:404
Int_t ifield
Definition: TGeant3.h:224
#define MAXME1
Definition: TGeant3.h:508
p
Definition: test.py:223
Int_t iertr
Definition: TGeant3.h:551
Float_t stepra
Definition: TGeant3.h:462
Int_t nevent
Definition: TGeant3.h:155
Bool_t fSkipNeutrinos
Definition: TGeant3.h:1192
Float_t dndl
Definition: TGeant3.h:491
Float_t fieldm
Definition: TGeant3.h:225
Int_t ixcons
Definition: TGeant3.h:106
Int_t nekbin
Definition: TGeant3.h:374
Float_t amass
Definition: TGeant3.h:171
virtual Ertrio_t * Ertrio() const
Definition: TGeant3.h:836
Float_t gcalpha
Definition: TGeant3.h:351
Int_t juinti
Definition: TGeant3.h:76
Float_t ekmax
Definition: TGeant3.h:373
Float_t stepco
Definition: TGeant3.h:407
Double_t sinp
Definition: TGeant3.h:598
virtual Quest_t * Quest() const
Definition: TGeant3.h:807
Gcmulo_t * fGcmulo
GCMORE common structure.
Definition: TGeant3.h:1149
virtual Float_t * Q() const
Definition: TGeant3.h:832
Int_t numed
Definition: TGeant3.h:221
Gcmate_t * fGcmate
GCMULO common structure.
Definition: TGeant3.h:1150
Float_t dphys2
Definition: TGeant3.h:452
Float_t cfield
Definition: TGeant3.h:231
Gckine_t * fGckine
GCVOLU common structure.
Definition: TGeant3.h:1158
Int_t idevt
Definition: TGeant3.h:149
Float_t smunu
Definition: TGeant3.h:439
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1225
Float_t omcmol
Definition: TGeant3.h:370
Float_t stloss
Definition: TGeant3.h:451
Int_t fNextVol
Definition: TGeant3.h:1137
Float_t destel
Definition: TGeant3.h:257
Gctpol_t * fGctpol
GCMATE common structure.
Definition: TGeant3.h:1151
Gctmed_t * fGctmed
GCFLAG common structure.
Definition: TGeant3.h:1160
Int_t nlevel
Definition: TGeant3.h:285
TObjArray fMedNames
Names of geant volumes as C++ chars.
Definition: TGeant3.h:1181
Float_t spair
Definition: TGeant3.h:399
Float_t dcutm
Definition: TGeant3.h:341
Float_t dcute
Definition: TGeant3.h:340
Int_t ntmed
Definition: TGeant3.h:319
virtual Int_t * Lq() const
Definition: TGeant3.h:831
TGeant3 & operator=(const TGeant3 &)
Definition: TGeant3.h:1210
Float_t snext
Definition: TGeant3.h:261
Float_t getot
Definition: TGeant3.h:248
Int_t levolu
Definition: TGeant3.h:578
Float_t zintra
Definition: TGeant3.h:461
Int_t irayl
Definition: TGeant3.h:458
Float_t slpfis
Definition: TGeant3.h:415
Int_t jupara
Definition: TGeant3.h:87
Float_t zintan
Definition: TGeant3.h:426
Gcchan_t * fGcchan
GCTRAK common structure.
Definition: TGeant3.h:1167
virtual Gccuts_t * Gccuts() const
Definition: TGeant3.h:810
Float_t zintha
Definition: TGeant3.h:436
T copy(T const &v)
Int_t fNPDGCodes
Definition: TGeant3.h:1184
Float_t backtr
Definition: TGeant3.h:623
Float_t zintph
Definition: TGeant3.h:411
Ertrio1_t * fErtrio1
ERTRIO common structure.
Definition: TGeant3.h:1123
Gcvdma_t * fGcvdma
GCTLIT common structure.
Definition: TGeant3.h:1156
Int_t inwvol
Definition: TGeant3.h:267
list x
Definition: train.py:276
Int_t ieotri
Definition: TGeant3.h:151
Int_t ipfis
Definition: TGeant3.h:413
weight
Definition: test.py:257
Float_t slrayl
Definition: TGeant3.h:460
Double_t cosp
Definition: TGeant3.h:597
Bool_t fImportRootGeometry
Definition: TGeant3.h:1188
virtual Gcphlt_t * Gcphlt() const
Definition: TGeant3.h:825
Float_t tlgcm2
Definition: TGeant3.h:625
static const double s
Definition: Units.h:99
Int_t ivert
Definition: TGeant3.h:167
Float_t slcomp
Definition: TGeant3.h:405
TGeant3(const TGeant3 &)
Definition: TGeant3.h:1209
#define MXPRED
Definition: TGeant3.h:534
Int_t iertr2
Definition: TGeant3.h:553
Int_t itrtyp
Definition: TGeant3.h:169
Float_t slabs
Definition: TGeant3.h:471
Float_t twopi
Definition: TGeant3.h:43
Int_t ilabs
Definition: TGeant3.h:470
Float_t dp
Definition: TGeant3.h:490
Float_t sllabs
Definition: TGeant3.h:472
Int_t jutrev
Definition: TGeant3.h:85
Float_t dstrt
Definition: TGeant3.h:354
virtual Eropts_t * Eropts() const
Definition: TGeant3.h:837
Int_t leonly
Definition: TGeant3.h:575
Float_t stmuls
Definition: TGeant3.h:456
Int_t idet
Definition: TGeant3.h:306
Float_t slphot
Definition: TGeant3.h:410
Trcom3_t * fTrcom3
ERWORK common structure.
Definition: TGeant3.h:1127
Int_t judcay
Definition: TGeant3.h:69
Int_t nstmax
Definition: TGeant3.h:323
Float_t bcute
Definition: TGeant3.h:338
TGeoMCGeometry * fMCGeo
Definition: TGeant3.h:1187
Int_t nhead
Definition: TGeant3.h:325
Float_t sdray
Definition: TGeant3.h:419
Float_t ppcutm
Definition: TGeant3.h:342
Int_t ngkine
Definition: TGeant3.h:185
virtual Trcom3_t * Trcom3() const
Definition: TGeant3.h:840
virtual Gclink_t * Gclink() const
Definition: TGeant3.h:809
Float_t sfield
Definition: TGeant3.h:262
Int_t iertr1
Definition: TGeant3.h:552
Gconst_t * fGconst
GCCHAN common structure.
Definition: TGeant3.h:1171
Int_t isync
Definition: TGeant3.h:475
Int_t igauto
Definition: TGeant3.h:269
Float_t sumlif
Definition: TGeant3.h:446
Gctrak_t * fGctrak
GCKIN3 common structure.
Definition: TGeant3.h:1166
Float_t zversn
Definition: TGeant3.h:103
Gcsets_t * fGcsets
GCNUM common structure.
Definition: TGeant3.h:1153
Float_t cutele
Definition: TGeant3.h:334
Float_t prec
Definition: TGeant3.h:232
Int_t * fZiq
Definition: TGeant3.h:1140
virtual Gcbank_t * Gcbank() const
Definition: TGeant3.h:808
h
training ###############################
Definition: train_cnn.py:186
virtual Gcflag_t * Gcflag() const
Definition: TGeant3.h:822
virtual Int_t * Iq() const
Definition: TGeant3.h:830
Float_t dedx2
Definition: TGeant3.h:622
Double_t cosl1
Definition: TGeant3.h:599
Ertrio_t * fErtrio
Definition: TGeant3.h:1122
virtual Eroptc_t * Eroptc() const
Definition: TGeant3.h:838
Float_t absl
Definition: TGeant3.h:214