| 1 |
cafagna |
1.1 |
SUBROUTINE GUHADR |
| 2 |
|
|
C=========== This will work only with GCALOR V1.01/15 and up ====== |
| 3 |
|
|
C*************************************************************** |
| 4 |
|
|
C |
| 5 |
|
|
C CALOR-GEANT Interface common |
| 6 |
|
|
C |
| 7 |
|
|
C parameters of incident particle : |
| 8 |
|
|
C IPinc = particle type a la CALOR |
| 9 |
|
|
C Einc = kinetic energy |
| 10 |
|
|
C Uinc(3) = direction cosines |
| 11 |
|
|
C material parameters: |
| 12 |
|
|
C NCEL = number of elements in mixture (NMTC) |
| 13 |
|
|
C GEANT material no. for MICAP |
| 14 |
|
|
C Amed(I) = mass number |
| 15 |
|
|
C Zmed(I) = charge number |
| 16 |
|
|
C Dmed(I) = Atoms/cm**3 * 1E-24 |
| 17 |
|
|
C Hden = Atoms/cm**3 * 1E-24 |
| 18 |
|
|
C of H-Atoms in mixture |
| 19 |
|
|
C |
| 20 |
|
|
C particle stack: |
| 21 |
|
|
C NPHETC = number of particles |
| 22 |
|
|
C Ekinet(1:NPHETC) = kinetic energy of part. |
| 23 |
|
|
C IPCAL(1:NPHETC) = particle type a la CALOR (extended) |
| 24 |
|
|
C UCAL(1:NPHETC,3) = direction cosines |
| 25 |
|
|
C CALTIM(1:NPHETC) = age of particle (nsec) |
| 26 |
|
|
C |
| 27 |
|
|
C ATARGT = A no. of target nucleus |
| 28 |
|
|
C ZTARGT = Z no of target nucleus |
| 29 |
|
|
C |
| 30 |
|
|
C return of residual nucleus information |
| 31 |
|
|
C NRECOL = no. of heavy recoil products |
| 32 |
|
|
C Amed(I) = mass number of residual nucleus |
| 33 |
|
|
C Zmed(I) = charge number " " |
| 34 |
|
|
C EXmed = exitation energy of nucleus |
| 35 |
|
|
C ERmed(I)= recoil energy of nucleus |
| 36 |
|
|
C IntCal = type of interaction (GEANT NAMEC index) |
| 37 |
|
|
C return of cross section of hadronic interaction (CALSIG called) |
| 38 |
|
|
C SIG = x-section |
| 39 |
|
|
C |
| 40 |
|
|
C set by CALSIG: |
| 41 |
|
|
C ICPROC = -1 undefined |
| 42 |
|
|
C = 0 NMTC called for cross-section |
| 43 |
|
|
C = 1 MICAP called for cross-section |
| 44 |
|
|
C = 2 SKALE(NMTC at 3 GeV) called for cross-section |
| 45 |
|
|
C = 3 FLUKA called for cross-section |
| 46 |
|
|
C KCALL : same coding as ICPROC, but is only valid after a |
| 47 |
|
|
C call to GCALOR |
| 48 |
|
|
C 19/5/92 C.Zeitnitz University of Arizona |
| 49 |
|
|
C**************************************************************** |
| 50 |
|
|
C |
| 51 |
|
|
PARAMETER(EMAXP = 3.495) |
| 52 |
|
|
PARAMETER(EMAXPI = 2.495) |
| 53 |
|
|
C transition upper limit (GeV) NMTC-FLUKA |
| 54 |
|
|
PARAMETER(ESKALE = 10.0) |
| 55 |
|
|
PARAMETER(MXCP = 300) |
| 56 |
|
|
C |
| 57 |
|
|
COMMON/ CALGEA / IPINC , EINC , UINC(3) ,NCEL , |
| 58 |
|
|
+ HDEN , AMED(100) , ZMED(100) ,DMED(100) , |
| 59 |
|
|
+ NPHETC ,EKINET(MXCP),IPCAL(MXCP),UCAL(MXCP,3), |
| 60 |
|
|
+ INTCAL , EXMED , ERMED(100),SIG , |
| 61 |
|
|
+ CALTIM(MXCP), ICPROC, NRECOL ,KCALL , |
| 62 |
|
|
+ ATARGT , ZTARGT |
| 63 |
|
|
C |
| 64 |
|
|
C |
| 65 |
|
|
Real*8 AMNTAR, AMMTAR, AMNZM1, AMMZM1, AMNNM1, AMMNM1, |
| 66 |
|
|
& ANOW, ZNOW, ANCOLL, ZNCOLL, ERES, EKRES, |
| 67 |
|
|
& AMNRES, AMMRES, PTRES, PXRES, PYRES, PZRES, |
| 68 |
|
|
& PTRES2 |
| 69 |
|
|
|
| 70 |
|
|
COMMON /FKRESN/ AMNTAR, AMMTAR, AMNZM1, AMMZM1, AMNNM1, AMMNM1, |
| 71 |
|
|
& ANOW, ZNOW, ANCOLL, ZNCOLL, ERES, EKRES, |
| 72 |
|
|
& AMNRES, AMMRES, PTRES, PXRES, PYRES, PZRES, |
| 73 |
|
|
& PTRES2, KTARP, KTARN, IGREYP, IGREYN, ICRES, |
| 74 |
|
|
& IBRES, IEVAPL, IEVAPH, IEVNEU, IEVPRO, IEVDEU, |
| 75 |
|
|
& IEVTRI, IEV3HE, IEV4HE, IDEEXG, IBTAR, ICHTAR, |
| 76 |
|
|
& IOTHER |
| 77 |
|
|
C |
| 78 |
|
|
*KEEP,GCKING. |
| 79 |
|
|
INTEGER MXGKIN |
| 80 |
|
|
PARAMETER (MXGKIN=100) |
| 81 |
|
|
COMMON/GCKING/KCASE,NGKINE,GKIN(5,MXGKIN), |
| 82 |
|
|
+ TOFD(MXGKIN),IFLGK(MXGKIN) |
| 83 |
|
|
INTEGER KCASE,NGKINE ,IFLGK |
| 84 |
|
|
REAL GKIN,TOFD |
| 85 |
|
|
C |
| 86 |
|
|
C |
| 87 |
|
|
Logical FFLUKA,FMICAP,FNMTC,FSKALE |
| 88 |
|
|
SAVE |
| 89 |
|
|
C |
| 90 |
|
|
C now call GEANT-CALOR interface |
| 91 |
|
|
CALL GCALOR |
| 92 |
|
|
C which program has been called ? |
| 93 |
|
|
FFLUKA = KCALL .EQ. 3 .and. ngkine .gt. 0 |
| 94 |
|
|
FMICAP = KCALL .EQ. 1 .and. ngkine .gt. 0 |
| 95 |
|
|
FNMTC = KCALL .EQ. 0 .and. ngkine .gt. 0 |
| 96 |
|
|
FSKALE = KCALL .EQ. 2 .and. ngkine .gt. 0 |
| 97 |
|
|
IF(FFLUKA) THEN |
| 98 |
|
|
C Fluka calculated the interaction |
| 99 |
|
|
C Recoil nucleus information in: |
| 100 |
|
|
C EKRES : kinetic energy (GeV) |
| 101 |
|
|
C ANOW : A of recoil nucleus |
| 102 |
|
|
C ZNOW : Z of recoil nucleus |
| 103 |
|
|
Call Hfill(100+kcall,sngl(ekres),1.,1.) |
| 104 |
|
|
Call Hfill(200+kcall,sngl(anow),1.,1.) |
| 105 |
|
|
Call Hfill(300+kcall,sngl(znow),1.,1.) |
| 106 |
|
|
ELSE IF(FMICAP.or.FNMTC.or.FSKALE) THEN |
| 107 |
|
|
C HETC or MICAP calculated the interaction |
| 108 |
|
|
C Recoil nucleus information in: |
| 109 |
|
|
C ERMED(I) : kinetic energy (MeV) |
| 110 |
|
|
C AMED(I) : A of recoil nucleus |
| 111 |
|
|
C ZMED(I) : Z of recoil nucleus |
| 112 |
|
|
C NRECOL : number of heavy recoil products |
| 113 |
|
|
C ATARGT : A of target nucleus |
| 114 |
|
|
C ZTARGT : Z of target nucleus |
| 115 |
|
|
do i=1,nrecol |
| 116 |
|
|
Call Hfill(100+kcall,ermed(i)/1000.,1.,1.) |
| 117 |
|
|
Call Hfill(200+kcall,amed(i),1.,1.) |
| 118 |
|
|
Call Hfill(300+kcall,zmed(i),1.,1.) |
| 119 |
|
|
enddo |
| 120 |
|
|
ENDIF |
| 121 |
|
|
RETURN |
| 122 |
|
|
END |