| 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 |