1 | SUBROUTINE PIGEN2
|
---|
2 | C
|
---|
3 | C*********************************************************************
|
---|
4 | C DESIGN : D. HECK IK3 FZK KARLSRUHE
|
---|
5 | C DATE : JUL 31, 1989
|
---|
6 | C*********************************************************************
|
---|
7 | C THIS SUBROUTINE DESCRIBES THE PHOTONUCLEAR REACTION
|
---|
8 | C GAMMA + NUCLEON -----> PION + PION + NUCLEON
|
---|
9 | C*********************************************************************
|
---|
10 | DOUBLE PRECISION BETA,DUMMY,ECM,ENUCL,GAMMA,PEIG,PTRANS
|
---|
11 | *KEEP,ELABCT.
|
---|
12 | COMMON /ELABCT/ ELCUT
|
---|
13 | DOUBLE PRECISION ELCUT(4)
|
---|
14 | *KEEP,PAM.
|
---|
15 | COMMON /PAM/ PAMA,SIGNUM
|
---|
16 | DOUBLE PRECISION PAMA(6000),SIGNUM(6000)
|
---|
17 | *KEEP,PARPAR.
|
---|
18 | COMMON /PARPAR/ CURPAR,SECPAR,PRMPAR,OUTPAR,C,
|
---|
19 | * E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
|
---|
20 | DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
|
---|
21 | * C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
|
---|
22 | INTEGER ITYPE,LEVL
|
---|
23 | *KEND.
|
---|
24 | DOUBLE PRECISION PI0MSQ
|
---|
25 | COMMON/PION/PI0MSQ,PITHR,PICMAS,PI0MAS,AMASK0,AMASKC,AMASPR,AMASNT
|
---|
26 | *
|
---|
27 | *KEEP,RANDPA.
|
---|
28 | COMMON /RANDPA/ FAC,U1,U2,RD,NSEQ,ISEED,KNOR
|
---|
29 | DOUBLE PRECISION FAC,U1,U2
|
---|
30 | REAL RD(3000)
|
---|
31 | INTEGER ISEED(103,10),NSEQ
|
---|
32 | LOGICAL KNOR
|
---|
33 | *KEEP,RUNPAR.
|
---|
34 | COMMON /RUNPAR/ FIXHEI,THICK0,HILOECM,HILOELB,
|
---|
35 | * STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
|
---|
36 | * MONIOU,MDEBUG,NUCNUC,
|
---|
37 | * CETAPE,
|
---|
38 | * SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
|
---|
39 | * N1STTR,MDBASE,
|
---|
40 | * DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
|
---|
41 | * FIX1I,FMUADD,FNKG,FPRINT,FDBASE
|
---|
42 | * ,GHEISH,GHESIG
|
---|
43 | COMMON /RUNPAC/ DSN,HOST,USER
|
---|
44 | DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
|
---|
45 | REAL STEPFC
|
---|
46 | INTEGER NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
|
---|
47 | * SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
|
---|
48 | * N1STTR,MDBASE
|
---|
49 | INTEGER CETAPE
|
---|
50 | CHARACTER*79 DSN
|
---|
51 | CHARACTER*20 HOST,USER
|
---|
52 |
|
---|
53 | LOGICAL DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
|
---|
54 | * FIX1I,FMUADD,FNKG,FPRINT,FDBASE
|
---|
55 | * ,GHEISH,GHESIG
|
---|
56 | *KEEP,STACKE.
|
---|
57 | COMMON/STACKE/ E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
|
---|
58 | DOUBLE PRECISION E(60),TIME(60)
|
---|
59 | REAL X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
|
---|
60 | INTEGER IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
|
---|
61 | *KEND.
|
---|
62 | COMMON/UPHIIN/SINC0,SINC1,SIN0(20002),SIN1(20002)
|
---|
63 | COMMON/UPHIOT/THETA,SINTHE,COSTHE,SINPHI, COSPHI,PI,TWOPI,PI5D2
|
---|
64 | COMMON/ACLOCK/NCLOCK,JCLOCK
|
---|
65 | C_____IF (NCLOCK.GT.JCLOCK) THEN
|
---|
66 | C______WRITE(MDEBUG,* )' PIGEN2:NP=',NP,' IR=',IR(NP),' IOBS=',IOBS(NP)
|
---|
67 | C______CALL AUSGB2
|
---|
68 | C_____END IF
|
---|
69 | IF(DEBUG)WRITE(MDEBUG,*)'PIGEN2: E=',E(NP)
|
---|
70 | PEIG=E(NP)
|
---|
71 | C*** NUMBERS AT THE VARIABLES MEAN :
|
---|
72 | C*** 1 INCOMING GAMMA RAY
|
---|
73 | C*** 2 HIT NUCLEON
|
---|
74 | C*** 3 FIRST PRODUCED PION
|
---|
75 | C*** 4 SECOND PRODUCED PION
|
---|
76 | C*** 5 RECOILING NUCLEON
|
---|
77 | CALL RMMAR(RD,2,2)
|
---|
78 | RNNO81=RD(1)
|
---|
79 | RNNO82=RD(2)
|
---|
80 | C*** LOOK WHICH TYPE OF REACTION
|
---|
81 | C*** 0.49923 IS THE FRACTION OF PROTONS IN AIR
|
---|
82 | IF (RNNO81.LE.0.49923) THEN
|
---|
83 | C *** HIT NUCLEON IS PROTON
|
---|
84 | AMASS2=AMASPR
|
---|
85 | C *** BRANCHING FOR COLLISION WITH PROTON
|
---|
86 | IF (RNNO82.LE.0.3) THEN
|
---|
87 | C *** PI(0) + PI(0) + PROTON
|
---|
88 | IQ(NP)= 7
|
---|
89 | IQ(NP+1)= 7
|
---|
90 | IQ(NP+2)= 14
|
---|
91 | ELSE IF(RNNO82.LE.0.6) THEN
|
---|
92 | C *** PI(+) + PI(-) + PROTON
|
---|
93 | IQ(NP)= 8
|
---|
94 | IQ(NP+1)= 9
|
---|
95 | IQ(NP+2)= 14
|
---|
96 | ELSE
|
---|
97 | C *** PI(+) + PI(0) + NEUTRON
|
---|
98 | IQ(NP)= 8
|
---|
99 | IQ(NP+1)= 7
|
---|
100 | IQ(NP+2)= 13
|
---|
101 | END IF
|
---|
102 | ELSE
|
---|
103 | C *** HIT NUCLEON IS NEUTRON
|
---|
104 | C *** BRANCHING FOR COLLISION WITH NEUTRON
|
---|
105 | AMASS2=AMASNT
|
---|
106 | IF (RNNO82.LE.0.3) THEN
|
---|
107 | C *** PI(0) + PI(0) + NEUTRON
|
---|
108 | IQ(NP)= 7
|
---|
109 | IQ(NP+1)= 7
|
---|
110 | IQ(NP+2)= 13
|
---|
111 | ELSE IF(RNNO82.LE.0.6) THEN
|
---|
112 | C *** PI(+) + PI(-) + NEUTRON
|
---|
113 | IQ(NP)= 8
|
---|
114 | IQ(NP+1)= 9
|
---|
115 | IQ(NP+2)= 13
|
---|
116 | ELSE
|
---|
117 | C *** PI(-) + PI(0) + PROTON
|
---|
118 | IQ(NP)= 9
|
---|
119 | IQ(NP+1)= 7
|
---|
120 | IQ(NP+2)= 14
|
---|
121 | END IF
|
---|
122 | END IF
|
---|
123 | C*** CALCULATE AUXILIARY PARAMETERS
|
---|
124 | ECM=SQRT(AMASS2*(AMASS2+2.D0*PEIG))
|
---|
125 | C*** NOTE: THE ENERGIES IN EGS ARE IN MEV, IN CORSIKA IN GEV
|
---|
126 | AMASS3=PAMA(IQ(NP))*1.D3
|
---|
127 | AMASS4=PAMA(IQ(NP+1))*1.D3
|
---|
128 | AMASS5=PAMA(IQ(NP+2))*1.D3
|
---|
129 | AUX1=(AMASS3+AMASS4)**2
|
---|
130 | AUX2A=(ECM - AMASS5)**2
|
---|
131 | AUX2=AUX2A-AUX1
|
---|
132 | AUX3=(AMASS3+AMASS5)**2
|
---|
133 | AUX4A=(ECM - AMASS4)**2
|
---|
134 | AUX4=AUX4A-AUX3
|
---|
135 | AUX5=AMASS3**2-AMASS4**2
|
---|
136 | AUX6=ECM**2-AMASS5**2
|
---|
137 | AUX7=0.5/ECM
|
---|
138 | AUX8=(ECM - AMASS3)**2
|
---|
139 | BETA=PEIG/(AMASS2+PEIG)
|
---|
140 | GAMMA=2.*(PEIG+AMASS2)*AUX7
|
---|
141 | 230 CONTINUE
|
---|
142 | CALL RMMAR(RD,2,2)
|
---|
143 | RNNO84=RD(1)
|
---|
144 | RNNO85=RD(2)
|
---|
145 | C*** ARE INVARIANT MASS SQUARES INSIDE BOUNDARY OF DALITZ PLOT?
|
---|
146 | AM34SQ=AUX2*RNNO84+AUX1
|
---|
147 | AM35SQ=AUX4*RNNO85+AUX3
|
---|
148 | AM34I=0.5/SQRT(AM34SQ)
|
---|
149 | E3STAR=(AUX5+AM34SQ)*AM34I
|
---|
150 | E5STAR=(AUX6-AM34SQ)*AM34I
|
---|
151 | ROOT1=SQRT(E3STAR**2-AMASS3**2)
|
---|
152 | ROOT2=SQRT(E5STAR**2-AMASS5**2)
|
---|
153 | C*** REJECT RANDOM NUMBERS, IF NOT INSIDE KINEMATIC BOUNDARY
|
---|
154 | DISCR=AM35SQ-(E3STAR+E5STAR)**2
|
---|
155 | IF((DISCR.GT.-(ROOT1-ROOT2)**2))GOTO 230
|
---|
156 | IF((DISCR.LT.-(ROOT1+ROOT2)**2))GOTO 230
|
---|
157 | C*** E3CM,E4CM,E5CM ARE ENERGIES IN C.M. SYSTEM
|
---|
158 | E4CM=(ECM**2+AMASS4**2-AM35SQ)*AUX7
|
---|
159 | E5CM=(ECM**2+AMASS5**2-AM34SQ)*AUX7
|
---|
160 | C*** NOW TAKE PION WITH HIGHEST ENERGY AS PARTICLE 3
|
---|
161 | E3CM=ECM-E4CM-E5CM
|
---|
162 | IF (E4CM.GT.E3CM) THEN
|
---|
163 | C *** INTERCHANGE PARTICLE 3 AND 4
|
---|
164 | HELP=E3CM
|
---|
165 | E3CM=E4CM
|
---|
166 | E4CM=HELP
|
---|
167 | HELP=AMASS3
|
---|
168 | AMASS3=AMASS4
|
---|
169 | AMASS4=HELP
|
---|
170 | IHELP=IQ(NP)
|
---|
171 | IQ(NP)=IQ(NP+1)
|
---|
172 | IQ(NP+1)=IHELP
|
---|
173 | END IF
|
---|
174 | C*** P3CM,P4CM,P5CM ARE MOMENTA IN C.M. SYSTEM
|
---|
175 | C*** P3SQ,P4SQ,P5SQ ARE SQUARED MOMENTA IN C.M. SYSTEM
|
---|
176 | P3SQ=E3CM**2-AMASS3**2
|
---|
177 | P3CM=SQRT(MAX(0.,P3SQ))
|
---|
178 | P4SQ=E4CM**2-AMASS4**2
|
---|
179 | P4CM=SQRT(MAX(0.,P4SQ))
|
---|
180 | P5SQ=E5CM**2-AMASS5**2
|
---|
181 | P5CM=SQRT(MAX(0.,P5SQ))
|
---|
182 | COSA=(P5SQ-P3SQ-P4SQ)/(2.*P3CM*P4CM)
|
---|
183 | SINA=-SQRT(MAX(0.,1.-COSA**2))
|
---|
184 | COSB=(P4SQ-P3SQ-P5SQ)/(2.*P3CM*P5CM)
|
---|
185 | SINB= SQRT(MAX(0.,1.-COSB**2))
|
---|
186 | C*** NOW SELECT THE THREE INDEPENDENT ANGLES IN C.M. SYSTEM
|
---|
187 | PT3=1.D3*PTRANS(DUMMY)
|
---|
188 | SIN3CM=MIN(1.,PT3/P3CM)
|
---|
189 | COS3CM=SQRT(1.-SIN3CM**2)
|
---|
190 | CALL RMMAR(RNNO86,1,2)
|
---|
191 | PSI=TWOPI*RNNO86
|
---|
192 | LPSI=SINC1*PSI+SINC0
|
---|
193 | SINPSI=SIN1(LPSI)*PSI+SIN0(LPSI)
|
---|
194 | CPSI=PI5D2-PSI
|
---|
195 | LCPSI=SINC1*CPSI+SINC0
|
---|
196 | COSPSI=SIN1(LCPSI)*CPSI+SIN0(LCPSI)
|
---|
197 | C*** THIRD INDEPENDENT ANGLE PHI IS CHOOSEN LATER IN SUBROUTINE UPHI
|
---|
198 | C*** NOW MAKE LORENTZ-TRANSFORMATION FOR PARTICLE 3 (PION)
|
---|
199 | E(NP)=GAMMA*(E3CM+BETA*P3CM*COS3CM)
|
---|
200 | C*** COSTHE AND SINTHE ARE ANGLES IN LAB SYSTEM FOR PARTICLE 3 (PION)
|
---|
201 | COSTHE= MIN((BETA*E3CM+P3CM*COS3CM)*GAMMA/ SQRT(MAX(0.D0,E(NP)**2
|
---|
202 | *-AMASS3**2)),1.D0)
|
---|
203 | SINTHE=SQRT(MAX(0.0,1.-COSTHE**2))
|
---|
204 | C*** SINPHI AND COSPHI ARE NOW SET IN SUBROUTINE UPHI
|
---|
205 | CALL UPHI(2,1)
|
---|
206 | SINFI3=SINPHI
|
---|
207 | COSFI3=COSPHI
|
---|
208 | C*** NOW MAKE LORENTZ-TRANSFORMATION FOR PARTICLE 4 = PION
|
---|
209 | COS4CM=COS3CM*COSA-SIN3CM*COSPSI*SINA
|
---|
210 | NP=NP+1
|
---|
211 | E(NP)=GAMMA*(E4CM+BETA*P4CM*COS4CM)
|
---|
212 | SINT4=SQRT(MAX(0.,1.-COS4CM**2))
|
---|
213 | IF (SINT4.NE.0.) THEN
|
---|
214 | SINT4I =1./SINT4
|
---|
215 | AUXA=COS3CM*COSPSI*SINA+SIN3CM*COSA
|
---|
216 | C *** COSPHI AND SINPHI ARE IN LAB SYSTEM FOR PARTICLE 4 (PION)
|
---|
217 | COSPHI=(COSFI3*AUXA-SINFI3*SINPSI*SINA)*SINT4I
|
---|
218 | SINPHI=(SINFI3*AUXA+COSFI3*SINPSI*SINA)*SINT4I
|
---|
219 | ELSE
|
---|
220 | COSPHI=0.
|
---|
221 | SINPHI=1.
|
---|
222 | END IF
|
---|
223 | C*** COSTHE AND SINTHE ARE IN LAB SYSTEM FOR PARTICLE 4 (PION)
|
---|
224 | COSTHE= MIN((BETA*E4CM+P4CM*COS4CM)*GAMMA/ SQRT(MAX(0.D0,E(NP)**2
|
---|
225 | *-AMASS4**2)),1.D0)
|
---|
226 | SINTHE=SQRT(MAX(0.0,1.-COSTHE**2))
|
---|
227 | CALL UPHI(3,2)
|
---|
228 | C*** NOW MAKE LORENTZ-TRANSFORMATION FOR PARTICLE 5 = RECOIL NUCLEON
|
---|
229 | COS5CM=COS3CM*COSB-SIN3CM*COSPSI*SINB
|
---|
230 | ENUCL=GAMMA*(E5CM+BETA*P5CM*COS5CM)
|
---|
231 | IF ((ENUCL-AMASS5).GT.ELCUT(1)*1000.D0) THEN
|
---|
232 | C *** RECOIL NUCLEON IS ABOVE THRESHOLD AND MUST BE TREATED
|
---|
233 | NP=NP+1
|
---|
234 | E(NP)=ENUCL
|
---|
235 | SINT5=SQRT(MAX(0.,1.-COS5CM**2))
|
---|
236 | IF (SINT5.NE.0.) THEN
|
---|
237 | SINT5I =1./SINT5
|
---|
238 | AUXB=COS3CM*COSPSI*SINB+SIN3CM*COSB
|
---|
239 | C *** COSPHI AND SINPHI ARE IN LAB SYSTEM FOR PART. 5 (NUCLEON)
|
---|
240 | COSPHI=(COSFI3*AUXB-SINFI3*SINPSI*SINB)*SINT5I
|
---|
241 | SINPHI=(SINFI3*AUXB+COSFI3*SINPSI*SINB)*SINT5I
|
---|
242 | ELSE
|
---|
243 | COSPHI=0.
|
---|
244 | SINPHI=1.
|
---|
245 | END IF
|
---|
246 | C *** COSTHE AND SINTHE ARE IN LAB SYSTEM FOR PARTICLE 5 (NUCLEON)
|
---|
247 | COSTHE=MIN((BETA*E5CM+P5CM*COS5CM)*GAMMA/SQRT(ENUCL**2-AMASS5**2)
|
---|
248 | * , 1.D0)
|
---|
249 | SINTHE=SQRT(MAX(0.0,1.-COSTHE**2))
|
---|
250 | CALL UPHI(3,2)
|
---|
251 | IF (W(NP).GT.C(29)) THEN
|
---|
252 | C *** ANGLE WITH RESPECT TO X AXIS
|
---|
253 | IF (U(NP)**2+V(NP)**2.GT.3.E-38) THEN
|
---|
254 | ANGLEX = -ATAN2(V(NP),U(NP))
|
---|
255 | ELSE
|
---|
256 | ANGLEX = 0.
|
---|
257 | END IF
|
---|
258 | C *** ADD NUCLEON TO CORSIKA STACK
|
---|
259 | SECPAR(1)=IQ(NP)
|
---|
260 | SECPAR(2)=E(NP)/AMASS5
|
---|
261 | SECPAR(3)=W(NP)
|
---|
262 | SECPAR(4)=ANGLEX
|
---|
263 | SECPAR(5)=-Z(NP)
|
---|
264 | SECPAR(6)=TIME(NP)
|
---|
265 | SECPAR(7)=X(NP)
|
---|
266 | SECPAR(8)=-Y(NP)
|
---|
267 | SECPAR(11)=1.D0
|
---|
268 | SECPAR(12)=0.D0
|
---|
269 | CALL TSTOUT
|
---|
270 | END IF
|
---|
271 | C *** ELIMINATE NUCLEON FROM EGS-STACK
|
---|
272 | NP=NP-1
|
---|
273 | END IF
|
---|
274 | C*** END OF RECOIL NUCLEON TREATEMENT CASE
|
---|
275 | RETURN
|
---|
276 | END
|
---|