+++ /dev/null
-*CMZ : 22/01/99 15.54.06 by Rene Brun
-*-- Author : Federico Carminati 28/11/98
- SUBROUTINE GCOMAD(CHCOMM,IADD)
-*#include "geant321/gcasho.inc"
- COMMON/GCASHO/ZMED,AMED,DMED,E0MED,ZSMED(50),ESMED(50),ALFA,
- * STEPALT,PLIN,PLOG,BE2,PLASM,TRNSMA,
-* * STEP,PLIN,PLOG,BE2,PLASM,TRNSMA,
- * BOSC(50),AOSC(50),EOSC(50),ZOSC(50),EMEAN,
- * CMGO(2000),EMGO,EMGOMI,
- * NSMED,IOSC(50),NOSC,NMGO,NMGOMA
-C
- REAL ZMED,AMED,DMED,E0MED,ZSMED,ESMED,ALFA,
- * STEPALT,PLIN,PLOG,BE2,PLASM,TRNSMA,
-* * STEP,PLIN,PLOG,BE2,PLASM,TRNSMA,
- * BOSC,AOSC,EOSC,ZOSC,EMEAN,CMGO,EMGO,EMGOMI
- INTEGER NSMED,IOSC,NOSC,NMGO,NMGOMA
-C
-#include "geant321/gcbank.inc"
-#include "geant321/gccurs.inc"
-#include "geant321/gccuts.inc"
-#include "geant321/gcdraw.inc"
-#include "geant321/gcfdim.inc"
-#include "geant321/gcflag.inc"
-#include "geant321/gcgobj.inc"
-#include "geant321/gchil2.inc"
-#include "geant321/gchiln.inc"
-#include "geant321/gchvir.inc"
-#include "geant321/gcjloc.inc"
-#include "geant321/gcjump.inc"
-#include "geant321/gckine.inc"
-#include "geant321/gcking.inc"
-#include "geant321/gclist.inc"
-#include "geant321/gclund.inc"
-#include "geant321/gcmate.inc"
-#include "geant321/gcmulo.inc"
-#include "geant321/gcmutr.inc"
-#include "geant321/gcmzfo.inc"
-#include "geant321/gcnum.inc"
-*#include "geant321/gcomis.inc"
-* COMMON/GCOMIS/JUINIT,JUGEOM,JUKINE,JUSTEP,JUOUT,JULAST
- COMMON/GCOMIS/KUINIT,KUGEOM,KUKINE,KUSTEP,KUOUT,KULAST
- DIMENSION JPCOMS(6)
- EQUIVALENCE (JPCOMS,JUINIT)
-*
-#include "geant321/gconst.inc"
-#include "geant321/gcopti.inc"
-#include "geant321/gcpara.inc"
-#include "geant321/gcparm.inc"
-#include "geant321/gcpmxz.inc"
-#include "geant321/gcphnr.inc"
-#include "geant321/gcphpr.inc"
-#include "geant321/gcphrd.inc"
-#include "geant321/gcphxs.inc"
-#include "geant321/gcphys.inc"
-#include "geant321/gcpixe.inc"
-#include "geant321/gcpoly.inc"
-#include "geant321/gcpush.inc"
-#include "geant321/gcrayt.inc"
-#include "geant321/gcrz.inc"
-#include "geant321/gcscal.inc"
-#include "geant321/gcscan.inc"
-#include "geant321/gcsets.inc"
-#include "geant321/gcshpt.inc"
-*#include "geant321/gcspee.inc"
-*
-* REAL S1,S2,S3,SS1,SS2,SS3,SRAGMX,SRAGMN,
- REAL S1,S2ALT,S3,SS1,SS2,SS3,SRAGMX,SRAGMN,
- + RAINT1,RAINT2,RMIN1,RMIN2,RMAX1,RMAX2
- INTEGER ISCOP,NTIM,NTFLAG,IOLDCU,ITSTCU,ISUBLI,IPORLI
- INTEGER LPASS,JPORJJ,LEP,JSC
-*
-* COMMON/GCSPEE/S1,S2,S3,SS1,SS2,SS3,LEP,IPORLI,ISUBLI,
- COMMON/GCSPEE/S1,S2ALT,S3,SS1,SS2,SS3,LEP,IPORLI,ISUBLI,
- + SRAGMX,SRAGMN,RAINT1,RAINT2,RMIN1,RMIN2,
- + RMAX1,RMAX2,JPORJJ,ITSTCU,IOLDCU,ISCOP,
- + NTIM,NTFLAG,LPASS,JSC
-*
-
-#include "geant321/gcstak.inc"
-#include "geant321/gcstra.inc"
-#include "geant321/gctime.inc"
-#include "geant321/gctmed.inc"
-#include "geant321/gctrak.inc"
-#include "geant321/gcunit.inc"
-#include "geant321/gcursb.inc"
-#include "geant321/gcvdma.inc"
-#include "geant321/gcvol1.inc"
-#include "geant321/gcvol2.inc"
-#include "geant321/gcvolu.inc"
-#include "geant321/gcxlun.inc"
-#include "geant321/gfkdis.inc"
-#include "geant321/gsecti.inc"
-*
-* Commons for GEANE
-#include "geant321/ertrio.inc"
-#include "geant321/eropts.inc"
-#include "geant321/erwork.inc"
-* Commons for GEANE
-*
- COMMON / QUEST / IQUEST(100)
-*
- CHARACTER *(*) CHCOMM
-#if defined(CERNLIB_DECS)
- INTEGER*8 GCADDI, GCADDF, GCADDL, GCADDC, GCADDD, IADD
-#else
- INTEGER GCADDI, GCADDF, GCADDL, GCADDC, GCADDD
-#endif
-*
- IF(CHCOMM.EQ.'GCASHO') THEN
- IADD=GCADDF(ZMED)
- ELSE IF(CHCOMM.EQ.'IQ') THEN
- IADD=GCADDI(LQ(8))
- ELSE IF(CHCOMM.EQ.'LQ') THEN
- IADD=GCADDF(FENDQ(16))
- ELSE IF(CHCOMM.EQ.'GCCURS') THEN
- IADD=GCADDI(INTFLA)
- ELSE IF(CHCOMM.EQ.'GCCUTS') THEN
- IADD=GCADDF(CUTGAM)
- ELSE IF(CHCOMM.EQ.'GCDRAW') THEN
- IADD=GCADDI(NUMNOD)
- ELSE IF(CHCOMM.EQ.'GCFDIM') THEN
- IADD=GCADDI(NPROC)
- ELSE IF(CHCOMM.EQ.'GCFLAG') THEN
- IADD=GCADDI(IDEBUG)
- ELSE IF(CHCOMM.EQ.'GCGOBJ') THEN
- IADD=GCADDI(IST)
- ELSE IF(CHCOMM.EQ.'GCBLIM') THEN
- IADD=GCADDI(IHOLE)
- ELSE IF(CHCOMM.EQ.'GCHIL2') THEN
- IADD=GCADDI(LARETT)
- ELSE IF(CHCOMM.EQ.'GCHILN') THEN
- IADD=GCADDI(LARECG)
- ELSE IF(CHCOMM.EQ.'GCHVIR') THEN
- IADD=GCADDI(JVIRT)
- ELSE IF(CHCOMM.EQ.'GCJLOC') THEN
- IADD=GCADDI(NJLOC)
- ELSE IF(CHCOMM.EQ.'GCJLCK') THEN
- IADD=GCADDI(NJLCK)
- ELSE IF(CHCOMM.EQ.'GCJUMP') THEN
- IADD=GCADDI(JUDCAY)
- ELSE IF(CHCOMM.EQ.'GCKINE') THEN
- IADD=GCADDI(IKINE)
- ELSE IF(CHCOMM.EQ.'GCKING') THEN
- IADD=GCADDI(KCASE)
- ELSE IF(CHCOMM.EQ.'GCKIN2') THEN
- IADD=GCADDI(NGPHOT)
- ELSE IF(CHCOMM.EQ.'GCKIN3') THEN
- IADD=GCADDF(GPOS)
- ELSE IF(CHCOMM.EQ.'GCLINK') THEN
- IADD=GCADDI(JDIGI)
- ELSE IF(CHCOMM.EQ.'GCLIST') THEN
- IADD=GCADDI(NHSTA)
- ELSE IF(CHCOMM.EQ.'GCLUND') THEN
- IADD=GCADDI(IFLUND)
- ELSE IF(CHCOMM.EQ.'GCMATE') THEN
- IADD=GCADDI(NMAT)
- ELSE IF(CHCOMM.EQ.'GCMULO') THEN
- IADD=GCADDF(SINMUL)
- ELSE IF(CHCOMM.EQ.'GCMUTR') THEN
- IADD=GCADDI(NCVOLS)
- ELSE IF(CHCOMM.EQ.'GCMUTC') THEN
- IADD=GCADDC(GNASH)
- ELSE IF(CHCOMM.EQ.'GCMZFO') THEN
- IADD=GCADDI(IOMATE)
- ELSE IF(CHCOMM.EQ.'GCNUM') THEN
- IADD=GCADDI(NMATE)
- ELSE IF(CHCOMM.EQ.'GCOMIS') THEN
- IADD=GCADDI(KUINIT)
- ELSE IF(CHCOMM.EQ.'GCONST') THEN
- IADD=GCADDF(PI)
- ELSE IF(CHCOMM.EQ.'GCOPTI') THEN
- IADD=GCADDI(IOPTIM)
- ELSE IF(CHCOMM.EQ.'GCPARA') THEN
- IADD=GCADDF(EPSIX0)
- ELSE IF(CHCOMM.EQ.'GCPARM') THEN
- IADD=GCADDI(IPARAM)
- ELSE IF(CHCOMM.EQ.'GCPHNR') THEN
- IADD=GCADDI(IGNRFN)
- ELSE IF(CHCOMM.EQ.'GCPHPR') THEN
- IADD=GCADDF(GFLUPR)
- ELSE IF(CHCOMM.EQ.'GCPHRD') THEN
- IADD=GCADDF(GPHRAT)
- ELSE IF(CHCOMM.EQ.'GCPXRN') THEN
- IADD=GCADDC(CRNGUP)
- ELSE IF(CHCOMM.EQ.'GCPXCF') THEN
- IADD=GCADDF(COFS)
- ELSE IF(CHCOMM.EQ.'GCPHYS') THEN
- IADD=GCADDI(IPAIR)
- ELSE IF(CHCOMM.EQ.'GCPHLT') THEN
- IADD=GCADDI(ILABS)
- ELSE IF(CHCOMM.EQ.'GCPIXE') THEN
- IADD=GCADDI(LIMPRE)
- ELSE IF(CHCOMM.EQ.'GCPOLY') THEN
- IADD=GCADDI(IZSEC)
- ELSE IF(CHCOMM.EQ.'GCPUSH') THEN
- IADD=GCADDI(NCVERT)
- ELSE IF(CHCOMM.EQ.'GCRAYT') THEN
- IADD=GCADDI(INTEN)
- ELSE IF(CHCOMM.EQ.'GCRZ1') THEN
- IADD=GCADDI(NRECRZ)
- ELSE IF(CHCOMM.EQ.'GCRZ2') THEN
- IADD=GCADDC(RZTAGS)
- ELSE IF(CHCOMM.EQ.'GCSCAL') THEN
- IADD=GCADDI(ISLINK)
- ELSE IF(CHCOMM.EQ.'GCSCAN') THEN
- IADD=GCADDL(SCANFL)
- ELSE IF(CHCOMM.EQ.'GCSCAC') THEN
- IADD=GCADDC(SFIN)
- ELSE IF(CHCOMM.EQ.'GCSETS') THEN
- IADD=GCADDI(IHSET)
- ELSE IF(CHCOMM.EQ.'GCSHPT') THEN
- IADD=GCADDI(NSHLST)
- ELSE IF(CHCOMM.EQ.'GCSPEE') THEN
- IADD=GCADDF(S1)
- ELSE IF(CHCOMM.EQ.'GCSTAK') THEN
- IADD=GCADDI(NJTMAX)
- ELSE IF(CHCOMM.EQ.'GCSTRA') THEN
- IADD=GCADDF(EMAX)
- ELSE IF(CHCOMM.EQ.'GCTIME') THEN
- IADD=GCADDF(TIMINT)
- ELSE IF(CHCOMM.EQ.'GCTMED') THEN
- IADD=GCADDI(NUMED)
- ELSE IF(CHCOMM.EQ.'GCTRAK') THEN
- IADD=GCADDF(VECT)
- ELSE IF(CHCOMM.EQ.'GCTPOL') THEN
- IADD=GCADDF(POLAR)
- ELSE IF(CHCOMM.EQ.'GCUNIT') THEN
- IADD=GCADDI(LIN)
- ELSE IF(CHCOMM.EQ.'GCURSB') THEN
- IADD=GCADDI(NUMNDS)
- ELSE IF(CHCOMM.EQ.'GCVDMA') THEN
- IADD=GCADDI(NVMANY)
- ELSE IF(CHCOMM.EQ.'GCVOL1') THEN
- IADD=GCADDI(NLEVL1)
- ELSE IF(CHCOMM.EQ.'GCVOL2') THEN
- IADD=GCADDI(NLEVE2)
- ELSE IF(CHCOMM.EQ.'GCVOLU') THEN
- IADD=GCADDI(NLEVEL)
- ELSE IF(CHCOMM.EQ.'GCXLUN') THEN
- IADD=GCADDI(LUNIT)
- ELSE IF(CHCOMM.EQ.'GFKDIS') THEN
- IADD=GCADDF(ZINE)
- ELSE IF(CHCOMM.EQ.'GSECTI') THEN
- IADD=GCADDF(AIEL)
- ELSE IF(CHCOMM.EQ.'GCTLIT') THEN
- IADD=GCADDF(THRIND)
- ELSE IF(CHCOMM.EQ.'QUEST') THEN
- IADD=GCADDI(IQUEST)
- ELSE IF(CHCOMM.EQ.'ERTRIO') THEN
- IADD=GCADDD(ERDTRP)
- ELSE IF(CHCOMM.EQ.'EROPTS') THEN
- IADD=GCADDF(ERPLI)
- ELSE IF(CHCOMM.EQ.'EROPTC') THEN
- IADD=GCADDC(CHOPTI)
- ELSE IF(CHCOMM.EQ.'ERWORK') THEN
- IADD=GCADDD(EI)
- ELSE IF(CHCOMM.EQ.'GCBANK') THEN
- IADD=GCADDI(NZEBRA)
- ELSE
- WRITE(6,123) CHCOMM
- IADD=0
- ENDIF
-*
- 123 FORMAT(' *** GCOMAD: cannot load common ',A)
- END
/*
$Log$
+Revision 1.41 2000/12/18 11:33:50 alibrary
+New call frequence histograms per module and volume
+
Revision 1.40 2000/12/06 10:06:58 morsch
Add all D and B baryons produced by HIJING to PDG DataBase.
// //
///////////////////////////////////////////////////////////////////////////////
-#include "TGeant3.h"
+#include "dlfcn.h"
+#include "ctype.h"
+
#include "TROOT.h"
+#include "TDatabasePDG.h"
+#include "TLorentzVector.h"
+
#include "THIGZ.h"
-#include "ctype.h"
-#include <TDatabasePDG.h>
+#include "TGeant3.h"
+
#include "AliCallf77.h"
#include "AliDecayer.h"
-#include "TLorentzVector.h"
#ifndef WIN32
# define gzebra gzebra_
# define setbomb setbomb_
# define setclip setclip_
-# define gcomad gcomad_
# define gbrelm gbrelm_
# define gprelm gprelm_
# define setbomb SETBOMB
# define setclip SETCLIP
-# define gcomad GCOMAD
# define gbrelm GBRELM
# define gprelm GPRELM
void type_of_call setbomb(Float_t &);
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,
// Assigns the address of the GEANT common blocks to the structures
// that allow their access from C++
//
- Int_t *addr;
- gcomad(PASSCHARD("QUEST"), (int*&) fQuest PASSCHARL("QUEST"));
- gcomad(PASSCHARD("GCBANK"),(int*&) fGcbank PASSCHARL("GCBANK"));
- gcomad(PASSCHARD("GCLINK"),(int*&) fGclink PASSCHARL("GCLINK"));
- gcomad(PASSCHARD("GCCUTS"),(int*&) fGccuts PASSCHARL("GCCUTS"));
- gcomad(PASSCHARD("GCMULO"),(int*&) fGcmulo PASSCHARL("GCMULO"));
- gcomad(PASSCHARD("GCFLAG"),(int*&) fGcflag PASSCHARL("GCFLAG"));
- gcomad(PASSCHARD("GCKINE"),(int*&) fGckine PASSCHARL("GCKINE"));
- gcomad(PASSCHARD("GCKING"),(int*&) fGcking PASSCHARL("GCKING"));
- gcomad(PASSCHARD("GCKIN2"),(int*&) fGckin2 PASSCHARL("GCKIN2"));
- gcomad(PASSCHARD("GCKIN3"),(int*&) fGckin3 PASSCHARL("GCKIN3"));
- gcomad(PASSCHARD("GCMATE"),(int*&) fGcmate PASSCHARL("GCMATE"));
- gcomad(PASSCHARD("GCTMED"),(int*&) fGctmed PASSCHARL("GCTMED"));
- gcomad(PASSCHARD("GCTRAK"),(int*&) fGctrak PASSCHARL("GCTRAK"));
- gcomad(PASSCHARD("GCTPOL"),(int*&) fGctpol PASSCHARL("GCTPOL"));
- gcomad(PASSCHARD("GCVOLU"),(int*&) fGcvolu PASSCHARL("GCVOLU"));
- gcomad(PASSCHARD("GCNUM"), (int*&) fGcnum PASSCHARL("GCNUM"));
- gcomad(PASSCHARD("GCSETS"),(int*&) fGcsets PASSCHARL("GCSETS"));
- gcomad(PASSCHARD("GCPHYS"),(int*&) fGcphys PASSCHARL("GCPHYS"));
- gcomad(PASSCHARD("GCPHLT"),(int*&) fGcphlt PASSCHARL("GCPHLT"));
- gcomad(PASSCHARD("GCOPTI"),(int*&) fGcopti PASSCHARL("GCOPTI"));
- gcomad(PASSCHARD("GCTLIT"),(int*&) fGctlit PASSCHARL("GCTLIT"));
- gcomad(PASSCHARD("GCVDMA"),(int*&) fGcvdma PASSCHARL("GCVDMA"));
-
+ void *handle = dlopen (NULL, RTLD_LAZY);
+
+#ifndef WIN32
+ fQuest = (Quest_t *) dlsym(handle,"quest_");
+ fGcbank = (Gcbank_t *) dlsym(handle,"gcbank_");
+ fGclink = (Gclink_t *) dlsym(handle,"gclink_");
+ fGccuts = (Gccuts_t *) dlsym(handle,"gccuts_");
+ fGcmulo = (Gcmulo_t *) dlsym(handle,"gcmulo_");
+ fGcflag = (Gcflag_t *) dlsym(handle,"gcflag_");
+ fGckine = (Gckine_t *) dlsym(handle,"gckine_");
+ fGcking = (Gcking_t *) dlsym(handle,"gcking_");
+ fGckin2 = (Gckin2_t *) dlsym(handle,"gckin2_");
+ fGckin3 = (Gckin3_t *) dlsym(handle,"gckin3_");
+ fGcmate = (Gcmate_t *) dlsym(handle,"gcmate_");
+ fGctmed = (Gctmed_t *) dlsym(handle,"gctmed_");
+ fGctrak = (Gctrak_t *) dlsym(handle,"gctrak_");
+ fGctpol = (Gctpol_t *) dlsym(handle,"gctpol_");
+ fGcvolu = (Gcvolu_t *) dlsym(handle,"gcvolu_");
+ fGcnum = (Gcnum_t *) dlsym(handle,"gcnum_");
+ fGcsets = (Gcsets_t *) dlsym(handle,"gcsets_");
+ fGcphys = (Gcphys_t *) dlsym(handle,"gcphys_");
+ fGcphlt = (Gcphlt_t *) dlsym(handle,"gcphlt_");
+ fGcopti = (Gcopti_t *) dlsym(handle,"gcopti_");
+ fGctlit = (Gctlit_t *) dlsym(handle,"gctlit_");
+ fGcvdma = (Gcvdma_t *) dlsym(handle,"gcvdma_");
+
// Commons for GEANE
- gcomad(PASSCHARD("ERTRIO"),(int*&) fErtrio PASSCHARL("ERTRIO"));
- gcomad(PASSCHARD("EROPTS"),(int*&) fEropts PASSCHARL("EROPTS"));
- gcomad(PASSCHARD("EROPTC"),(int*&) fEroptc PASSCHARL("EROPTC"));
- gcomad(PASSCHARD("ERWORK"),(int*&) fErwork PASSCHARL("ERWORK"));
-
+ fErtrio = (Ertrio_t *) dlsym(handle,"ertrio_");
+ fEropts = (Eropts_t *) dlsym(handle,"eropts_");
+ fEroptc = (Eroptc_t *) dlsym(handle,"eroptc_");
+ fErwork = (Erwork_t *) dlsym(handle,"erwork_");
+#else
+ fQuest = (Quest_t *) dlsym(handle,"QUEST");
+ fGcbank = (Gcbank_t *) dlsym(handle,"GCBANK");
+ fGclink = (Gclink_t *) dlsym(handle,"GCLINK");
+ fGccuts = (Gccuts_t *) dlsym(handle,"GCCUTS");
+ fGcmulo = (Gcmulo_t *) dlsym(handle,"GCMULO");
+ fGcflag = (Gcflag_t *) dlsym(handle,"GCFLAG");
+ fGckine = (Gckine_t *) dlsym(handle,"GCKINE");
+ fGcking = (Gcking_t *) dlsym(handle,"GCKING");
+ fGckin2 = (Gckin2_t *) dlsym(handle,"GCKIN2");
+ fGckin3 = (Gckin3_t *) dlsym(handle,"GCKIN3");
+ fGcmate = (Gcmate_t *) dlsym(handle,"GCMATE");
+ fGctmed = (Gctmed_t *) dlsym(handle,"GCTMED");
+ fGctrak = (Gctrak_t *) dlsym(handle,"GCTRAK");
+ fGctpol = (Gctpol_t *) dlsym(handle,"GCTPOL");
+ fGcvolu = (Gcvolu_t *) dlsym(handle,"GCVOLU");
+ fGcnum = (Gcnum_t *) dlsym(handle,"GCNUM");
+ fGcsets = (Gcsets_t *) dlsym(handle,"GCSETS");
+ fGcphys = (Gcphys_t *) dlsym(handle,"GCPHYS");
+ fGcphlt = (Gcphlt_t *) dlsym(handle,"GCPHLT");
+ fGcopti = (Gcopti_t *) dlsym(handle,"GCOPTI");
+ fGctlit = (Gctlit_t *) dlsym(handle,"GCTLIT");
+ fGcvdma = (Gcvdma_t *) dlsym(handle,"GCVDMA");
+
+ // Commons for GEANE
+ fErtrio = (Ertrio_t *) dlsym(handle,"ERTRIO");
+ fEropts = (Eropts_t *) dlsym(handle,"EROPTS");
+ fEroptc = (Eroptc_t *) dlsym(handle,"EROPTC");
+ fErwork = (Erwork_t *) dlsym(handle,"ERWORK");
+#endif
+
// Variables for ZEBRA store
- gcomad(PASSCHARD("IQ"), addr PASSCHARL("IQ"));
- fZiq = addr;
- gcomad(PASSCHARD("LQ"), addr PASSCHARL("LQ"));
- fZlq = addr;
- fZq = (float*)fZiq;
+ //
+ fZlq = (Int_t *) &(fGcbank->lmain)-1;
+ fZiq = (Int_t *) &(fGcbank->lmain)+7;
+ fZq = (Float_t *)fZiq;
+
}
//_____________________________________________________________________________