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 |