From 6991054d7f9a036092f53a81e1312a830152f6f3 Mon Sep 17 00:00:00 2001 From: fca Date: Tue, 3 Aug 1999 19:51:46 +0000 Subject: [PATCH] Introduce wrappers for GEANE --- TGeant3/TGeant3.cxx | 26 +++++++++ TGeant3/TGeant3.h | 117 +++++++++++++++++++++++++++++++++++++++ TGeant3/TGeant3Dummy.cxx | 6 ++ 3 files changed, 149 insertions(+) diff --git a/TGeant3/TGeant3.cxx b/TGeant3/TGeant3.cxx index 05d16ee16f7..ac2f19bcab2 100644 --- a/TGeant3/TGeant3.cxx +++ b/TGeant3/TGeant3.cxx @@ -104,6 +104,9 @@ # define gckmat gckmat_ # define geditv geditv_ # define mzdrop mzdrop_ + +# define ertrak ertrak_ +# define ertrgo ertrgo_ # define setbomb setbomb_ # define setclip setclip_ @@ -197,6 +200,9 @@ # define geditv GEDITV # define mzdrop MZDROP +# define ertrak ERTRAK +# define ertrgo ERTRGO + # define setbomb SETBOMB # define setclip SETCLIP # define gcomad GCOMAD @@ -409,6 +415,12 @@ extern "C" void type_of_call setclip(DEFCHARD, Float_t &,Float_t &,Float_t &,Float_t &, Float_t &, Float_t & DEFCHARL); void type_of_call gcomad(DEFCHARD, Int_t*& DEFCHARL); + + void type_of_call ertrak(const Float_t *const x1, const Float_t *const p1, + const Float_t *x2, const Float_t *p2, + const Int_t &ipa, DEFCHARD DEFCHARL); + + void type_of_call ertrgo(); } // @@ -3313,6 +3325,20 @@ void TGeant3::Vname(const char *name, char *vname) vname[4] = 0; } +//______________________________________________________________________________ +void TGeant3::Ertrgo() +{ + ertrgo(); +} + +//______________________________________________________________________________ +void TGeant3::Ertrak(const Float_t *const x1, const Float_t *const p1, + const Float_t *x2, const Float_t *p2, + Int_t ipa, Option_t *chopt) +{ + ertrak(x1,p1,x2,p2,ipa,PASSCHARD(chopt) PASSCHARL(chopt)); +} + //_____________________________________________________________________________ void TGeant3::WriteEuclid(const char* filnam, const char* topvol, Int_t number, Int_t nlevel) diff --git a/TGeant3/TGeant3.h b/TGeant3/TGeant3.h index b44b77ebb07..a2e26129c5f 100644 --- a/TGeant3/TGeant3.h +++ b/TGeant3/TGeant3.h @@ -390,6 +390,100 @@ typedef struct { Int_t namec1[MAXME1]; } Gctpol_t; +/************************************************************************ + * * + * Commons for GEANE * + * * + ************************************************************************/ + +//------------ERTRIO +// INTEGER MXPRED +// PARAMETER (MXPRED = 10) +// DOUBLE PRECISION ERDTRP +// REAL ERRIN, ERROUT, ERTRSP, ERXIN, ERXOUT, ERPIN, +// + ERPOUT +// INTEGER NEPRED, INLIST, ILPRED, IEPRED +// COMMON /ERTRIO/ ERDTRP(5,5,MXPRED), ERRIN(15), ERROUT(15,MXPRED), +// + ERTRSP(5,5,MXPRED), ERXIN( 3), ERXOUT( 3,MXPRED), +// + ERPIN(3), ERPOUT(3,MXPRED), NEPRED,INLIST,ILPRED, +// + IEPRED(MXPRED) +// + +#define MXPRED 10 +typedef struct { + Double_t erdtrp[MXPRED*5*5]; + Float_t errin[5]; + Float_t errout[MXPRED*15]; + Float_t ertrsp[MXPRED*5*5]; + Float_t erxin[3]; + Float_t erxout[MXPRED*3]; + Float_t erpin[3]; + Float_t erpout[MXPRED*3]; + Int_t nepred; + Int_t inlist; + Int_t ilpred; + Int_t iepred; +} Ertrio_t; + +//-----------EROTPS +// CHARACTER*8 CHOPTI +// LOGICAL LEEXAC, LELENG, LEONLY, LEPLAN, LEPOIN, LEVOLU +// REAL ERPLI, ERPLO, ERLENG +// INTEGER NAMEER, NUMVER, IOVLER +// COMMON /EROPTS/ ERPLI(3,2), ERPLO(3,4,MXPRED), ERLENG(MXPRED), +// + NAMEER(MXPRED), NUMVER(MXPRED), IOVLER(MXPRED), +// + LEEXAC, LELENG, LEONLY, LEPLAN, LEPOIN, LEVOLU +// COMMON /EROPTC/CHOPTI + +typedef struct { + Float_t erpli[3*2]; + Float_t erplo[MXPRED*3*4]; + Float_t erleng[MXPRED]; + Int_t nameer[MXPRED]; + Int_t numver[MXPRED]; + Int_t iovler[MXPRED]; + Bool_t leexac; + Bool_t leleng; + Bool_t leonly; + Bool_t leplan; + Bool_t lepoin; + Bool_t levolu; +} Eropts_t; + +typedef struct { + char chopti[8]; +} Eroptc_t; + +//-------ERWORK +// DOUBLE PRECISION EI, EF, ASDSC +// COMMON /ERWORK/ EI(15), EF(15), ASDSC(5,5), +// + XI(3), PPI(3), HI(9), +// + XF(3), PF(3), HF(9), +// + CHTR, DEDX2, BACKTR, CUTEK, TLGCM2, TLRAD + +typedef struct { + Double_t ei[15]; + Double_t ef[15]; + Double_t asdsc[5*5]; + Float_t xi[3]; + Float_t ppi[3]; + Float_t hi[9]; + Float_t xf[3]; + Float_t pf[3]; + Float_t hf[9]; + Float_t chtr; + Float_t dedx2; + Float_t backtr; + Float_t cutek; + Float_t tlgcm2; + Float_t tlrad; +} Erwork_t; + +/************************************************************************ + * * + * Commons for GEANE * + * * + ************************************************************************/ class TGeant3 : public AliMC { @@ -421,6 +515,13 @@ private: Gckin3_t *fGckin3; Gctrak_t *fGctrak; + + // commons for GEANE + Ertrio_t *fErtrio; + Eropts_t *fEropts; + Eroptc_t *fEroptc; + Erwork_t *fErwork; + enum {kMaxParticles = 100}; Int_t fNPDGCodes; @@ -528,6 +629,15 @@ public: virtual Float_t* Q() const {return fZq;} + // Access to GEANE commons + + virtual Ertrio_t* Ertrio() const {return fErtrio;} + virtual Eropts_t* Eropts() const {return fEropts;} + virtual Eroptc_t* Eroptc() const {return fEroptc;} + virtual Erwork_t* Erwork() const {return fErwork;} + + + // functions from GBASE virtual void Gpcxyz(); virtual void Ggclos(); @@ -678,6 +788,13 @@ public: virtual void Vname(const char *name, char *vname); virtual void InitLego(); + + // Routines from GEANE + + virtual void Ertrgo(); + virtual void Ertrak(const Float_t *const x1, const Float_t *const p1, + const Float_t *x2, const Float_t *p2, + Int_t ipa, Option_t *chopt); ClassDef(TGeant3,1) //C++ interface to Geant basic routines }; diff --git a/TGeant3/TGeant3Dummy.cxx b/TGeant3/TGeant3Dummy.cxx index b70bb67202c..56f67fdfab0 100644 --- a/TGeant3/TGeant3Dummy.cxx +++ b/TGeant3/TGeant3Dummy.cxx @@ -240,6 +240,12 @@ void TGeant3::SetTRIG(Int_t) {} void TGeant3::SetUserDecay(Int_t) {} void TGeant3::Vname(const char *, char *) {} void TGeant3::InitLego() {} +void TGeant3::Ertrgo() {} +void TGeant3::Ertrak(const Float_t *const , const Float_t *const , + const Float_t *, const Float_t *, + Int_t , Option_t *) {} + + #include "AliCallf77.h" -- 2.39.3