Import Geant4 8.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 14:44:26 +02:00
parent 8a51e0bc40
commit 216a75eeb1
8717 changed files with 360418 additions and 141343 deletions
@@ -15,7 +15,7 @@
DATA VERTEX/3*0./
DATA PLAB /3*0./
*
VERTEX(3) = - Z1 + 0.0001
VERTEX(3) = - Z1 + 0.0001
CALL GSVERT(VERTEX,0,0,0,0,NVERT)
*
JPA = LQ(JPART-IKINE)
@@ -49,19 +49,11 @@
SER2C(I) = SER2C(I) + DRC**2
BIN = (FLOAT(I)-0.5)*DRX0
CALL HFILL(10,BIN,100*DEDR(I)/(DRX0*PKINE(3)),1.)
CALL HFILL(7,BIN,100*DEDR(I)/(DRX0*PKINE(3)),1.)
BIN = FLOAT(I)*DRX0
CALL HFILL(11,BIN,100*DRC /PKINE(3),1.)
CALL HFILL(8,BIN,100*DRC /PKINE(3),1.)
3 CONTINUE
* particle flux
*
DO 14 IPAT = 1,3
DO 14 NPL = 1,NLTOT
BIN = FLOAT(NPL)*DLX0
CALL HFILL(6+IPAT,BIN,FNPAT(NPL,IPAT),1.)
14 CONTINUE
*
* energy deposited and track length
*
ESEEN = 100.*DLC/PKINE(3)
@@ -13,7 +13,6 @@
#include "pvolum.inc"
#include "celoss.inc"
*
SAVE NLOLD
*
* *** Debug event and strore track for drawing
IF (IDEBUG.NE.0) CALL GPCXYZ
@@ -25,8 +24,9 @@
*
* *** Energy deposited
IF (DESTEP.GT.0.)THEN
NR = NUMBER(NLEVEL-1)
NL = NUMBER(NLEVEL)
radius = sqrt(vect(1)**2 + vect(2)**2)
NR = 1 + radius/(DRX0*X0)
NL = 1 + (Z1 + vect(3))/(DLX0*X0)
DEDR(NR) = DEDR(NR) + DESTEP
DEDL(NL) = DEDL(NL) + DESTEP
ENDIF
@@ -38,16 +38,7 @@
ELSE
STRNE = STRNE + STEP
EDEPNE = EDEPNE + DESTEP
ENDIF
*
* *** Particle's flux
NL = NUMBER(NLEVEL)
IF(SLENG.LE.0.) NLOLD = NL
IF(NL.NE.NLOLD) THEN
NPL = (NL + NLOLD)/2
IF (IPART.LE.3) FNPAT(NPL,IPART) = FNPAT(NPL,IPART) + 1.
NLOLD = NL
ENDIF
ENDIF
*
* *** energy of particles contributing to edep
IF ((DESTEP).GT.0.)THEN
@@ -6,7 +6,7 @@
*
#include "celoss.inc"
*
CALL VZERO(DEDL,5*NBIN)
CALL VZERO(DEDL,2*NBIN)
STRCH = 0.
STRNE = 0.
*
@@ -38,19 +38,20 @@
*
CALL GSMIXT( 1,'Air' , AAir , ZAir , 1.29E-3, 2,WAir)
CALL GSMIXT( 2,'Water' , AH2O , ZH2O , 1.0 ,-2,WH2O)
CALL GSMATE( 3,'Ar Liquid', 40.00, 18. , 1.39 ,14.0 ,84.0,0,0)
CALL GSMATE( 4,'Aluminium', 26.98, 13. , 2.7 , 8.9 ,37.2,0,0)
CALL GSMATE( 3,'Ar Liquid', 40.00, 18. , 1.39 ,14.0 ,84.0,0,0)
CALL GSMATE( 4,'Aluminium', 26.98, 13. , 2.7 , 8.9 ,37.2,0,0)
CALL GSMATE( 5,'Iron' , 55.85, 26. , 7.87 , 1.76,17.1,0,0)
CALL GSMIXT( 6,'BGO' , ABGO , ZBGO , 7.1 ,-3,WBGO)
CALL GSMIXT( 7,'PbWO' , APbWO, ZPbWO, 8.28 ,-3,WPbWO)
CALL GSMIXT( 7,'PbWO4' , APbWO, ZPbWO, 8.28 ,-3,WPbWO)
CALL GSMATE( 8,'Lead ' ,207.19, 82. ,11.35 ,0.56,18.5,0,0)
CALL GSMATE( 9,'Tungsten' ,183.85, 74. ,19.30 ,0.35, 9.6,0,0)
CALL GSMATE( 9,'Tungsten' ,183.85, 74. ,19.30 ,0.35, 9.6,0,0)
*
* *** Defines USER tracking media parameters
FIELDM = 0.0
IFIELD = 0
TMAXFD = 10.0
STEMAX = 1000.
STEMAX = 1000.
IF (stepmax.gt.0.) STEMAX = stepmax
DEEMAX = 0.20
EPSIL = 0.001
STMIN = 0.010
@@ -67,10 +68,7 @@
PAR(1) = 0.
PAR(2) = R1
PAR(3) = Z1
CALL GSVOLU( 'ECAL' , 'TUBE' , 1, PAR , 3 , IVOL )
*
CALL GSDVN( 'RING' , 'ECAL' , NRTOT , 1)
CALL GSDVN( 'SLAB' , 'RING' , NLTOT , 3)
CALL GSVOLU( 'ECAL' , 'TUBE' , 1 , PAR , 3 , IVOL)
*
* *** Close geometry banks. (obligatory system routine)
CALL GGCLOS
@@ -22,14 +22,27 @@
*
* *** volumes and bins definition
CALL FFKEY('BINS',NLTOT,4,'MIXED')
*
* *** max allowed step size
CALL FFKEY('STEPMX',stepmax,1,'REAL')
*
* *** read data cards
CALL GFFGO
*
* *** check size of arrays
if (NLTOT.gt.NBIN) then
write (6,51) NLTOT, NBIN
NLTOT = NBIN
endif
if (NRTOT.gt.NBIN) then
write (6,52) NRTOT, NBIN
NRTOT = NBIN
endif
51 FORMAT (/,5x,'warning (uginit): NLTOT= ',I3,' truncated to ',I3)
52 FORMAT (/,5x,'warning (uginit): NRTOT= ',I3,' truncated to ',I3)
*
* *** achieve initialization
NLTOT = MIN(NLTOT,NBIN)
NRTOT = MIN(NRTOT,NBIN)
CALL VZERO(SEL1,13*NBIN+8)
CALL VZERO(SEL1,10*NBIN+8)
*
CALL GZINIT
CALL GPART
@@ -13,11 +13,6 @@
+ XSEL2(NBIN),XSEL2C(NBIN),XSER2(NBIN),XSER2C(NBIN)
DIMENSION EDIST(100),EDISTC(100)
*
CALL GLAST
*
* *** close HIGZ
CALL HPLEND
*
* *** Normalize and print energy distribution
XEVENT=IEVENT
@@ -43,7 +38,7 @@
XSER1C(I) = CNORM * SER1C(I)
XSER2C(I) = CNORM*SQRT(ABS(XEVENT*SER2C(I) - SER1C(I)**2))
3 CONTINUE
CALL HPAK (12,XSER2C)
CALL HPAK (9,XSER2C)
*
* *** total track length
CNORM = 1./(XEVENT*X0)
@@ -52,24 +47,26 @@
XTRNE1 = CNORM*STRNE1
XTRNE2 = CNORM*SQRT(ABS(XEVENT*STRNE2 - STRNE1**2))
*
* *** Print profiles
* *** Print profiles (under condition iswit(2).gt.0)
*
PRINT 749
PRINT 750
PRINT 751
DO 15 I=1,NLTOT
B0 = (I-1)*DLX0
B1 = I*DLX0
PRINT 754,B0,B1,XSEL1(I),XSEL2(I),B1,XSEL1C(I),XSEL2C(I)
15 CONTINUE
if (iswit(2).gt.0) then
PRINT 749
PRINT 750
PRINT 751
DO 15 I=1,NLTOT
B0 = (I-1)*DLX0
B1 = I*DLX0
PRINT 754,B0,B1,XSEL1(I),XSEL2(I),B1,XSEL1C(I),XSEL2C(I)
15 CONTINUE
PRINT 760
PRINT 751
DO 16 I=1,NRTOT
B0 = (I-1)*DRX0
B1 = I*DRX0
PRINT 754,B0,B1,XSER1(I),XSER2(I),B1,XSER1C(I),XSER2C(I)
16 CONTINUE
PRINT 760
PRINT 751
DO 16 I=1,NRTOT
B0 = (I-1)*DRX0
B1 = I*DRX0
PRINT 754,B0,B1,XSER1(I),XSER2(I),B1,XSER1C(I),XSER2C(I)
16 CONTINUE
endif
*
* *** normalize histo of energy ditribution of contributing particles
* and compute cumulative distribution
@@ -90,21 +87,26 @@
PRINT 774,EDEPCH
PRINT 775,EDEPNE
PRINT 772,XTRCH1,XTRCH2
PRINT 773,XTRNE1,XTRNE2
PRINT 773,XTRNE1,XTRNE2
PRINT 749
*
* *** Save selected histograms
IF (ISWIT(2).EQ.1) THEN
CALL HRPUT(0,'testem2.paw','N')
ENDIF
CALL HRPUT(0,'testem2.hbook','N')
*
749 FORMAT(///)
* *** terminaison
CALL GLAST
*
* *** close HIGZ
CALL HPLEND
*
749 FORMAT(//)
750 FORMAT(15X,'LATERAL PROFILE',35X,'CUMULATIVE LATERAL PROFILE'/)
751 FORMAT( 8X,'Bin',12X,' Mean ',5X,' rms',
* 19X,'Bin', 9X,' Mean ',5X,' rms',/)
754 FORMAT( 3X,F5.2,'->',F5.2,' radl: ',F7.2,'% ',F7.2,'%',
* 13X, '0->',F5.2,' radl: ',F7.2,'% ',F7.2,'%')
760 FORMAT(///,15X,'RADIAL PROFILE',35X,'CUMULATIVE RADIAL PROFILE'/)
770 FORMAT(///,30X,'SUMMARY',/)
770 FORMAT(/,30X,'SUMMARY',/)
771 FORMAT( 25X,'energy deposit : ',F7.2,' % E0 +- ',F7.2,' % E0')
772 FORMAT( 25X,'charged traklen: ',F7.2,' radl +- ',F7.2,' radl')
773 FORMAT( 25X,'neutral traklen: ',F7.2,' radl +- ',F7.2,' radl')
@@ -9,15 +9,15 @@
* *** Histograms for showers development
*
EDMIN=0.
EDMAX=100.
TRKMX=100.*PKINE(1)
EDMAX=110.
TRKMX=110.*PKINE(1)
*
CALL HBOOK1(1,'total energy deposition (in percent of E inc)'
*,100,EDMIN,EDMAX,0.0)
*,110,EDMIN,EDMAX,0.0)
CALL HBOOK1(2,'total charged tracklengh (in radl)'
*,100, 0. , TRKMX, 0.0)
*,110, 0. , TRKMX, 0.0)
CALL HBOOK1(3,'total neutral tracklengh (in radl)'
*,100, 0. , 10*TRKMX, 0.0)
*,110, 0. , 10*TRKMX, 0.0)
*
CALL HIDOPT(0,'STAT')
*
@@ -33,29 +33,20 @@
CALL HBPROF(5,'cumul longit energy dep. (in percent of E inc)'
*, NLTOT, ZMIN,ZMAX, 0., 100.,' ')
CALL HBOOK1(6,'resolution: cumul L energy dep. (% of E inc)'
*, NLTOT, ZMIN,ZMAX, 0.0)
*
* *** Particle flux
CALL HBPROF(7,'nb of gamma per plane'
*, NLTOT, ZMIN,ZMAX, 0., 1.E+6,' ')
CALL HBPROF(8,'nb of posit per plane'
*, NLTOT, ZMIN,ZMAX, 0., 1.E+6,' ')
CALL HBPROF(9,'nb of elect per plane'
*, NLTOT, ZMIN,ZMAX, 0., 1.E+6,' ')
*, NLTOT, ZMIN,ZMAX, 0.0)
*
* *** Radial profile
RMAX=NRTOT*DRX0
CALL HBPROF(10,'radial energy profile (in percent of E inc)'
CALL HBPROF(7,'radial energy profile (in percent of E inc)'
*, NRTOT, 0.,RMAX, 0., 1000.,' ')
*
RMIN = 0.5*DRX0
RMAX = RMIN + NRTOT*DRX0
CALL HBPROF(11,'cumul radial energy dep. (in percent of E inc)'
CALL HBPROF(8,'cumul radial energy dep. (in percent of E inc)'
*, NRTOT, RMIN,RMAX, 0., 100.,' ')
CALL HBOOK1(12,'resolution: cumul R energy dep. (% of E inc)'
CALL HBOOK1(9,'resolution: cumul R energy dep. (% of E inc)'
*, NRTOT, RMIN,RMAX, 0.0)
*