5 * Revision 1.1.1.1 1995/10/24 10:21:14 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.40 by S.Giani
12 SUBROUTINE PCSDAT(LUNIN,LUNOUT,PRFLAG)
14 C *** PREPARATION OF DATA STMTS. FOR ELASTIC AND INELASTIC MEASURED ***
15 C *** CROSS SECTIONS OF PION,KAON AND PROTON/ANTIPROTON/NEUTRON ***
16 C *** ON PROTONS. CALCULATE FROM THIS CROSS SECTIONS FOR STRANGE ***
17 C *** BARYONS ON PROTONS USING ADDITIVE QUARK-QUARK SCATTERING MODEL ***
18 C *** NVE 22-FEB-1988 CERN GENEVA ***
20 C THE PROGRAM PRODUCES AN OUTPUT FILE WHICH CONTAINS THE DATA
21 C STATEMENTS FOR ALL THE NEEDED CROSS-SECTIONS IN SEQUENCE "/CSDAT"
22 C THESE DATA STATEMENTS MAY BE USED FOR ROUTINE "GHESIG"
24 C LUNIN = UNIT NUMBER FOR CROSS-SECTION DATA FILE
25 C LUNOUT = UNIT NUMBER FOR DATA STATEMENTS TO BE WRITTEN
26 C PRFLAG = PRINTOUT FLAG (TRUE/FALSE)
28 C ORIGIN : H.FESEFELDT 06-OCT-87 (ROUTINE CSDATA)
30 C QUARK SCATTERING AMPLITUDES
31 C <PP |PP > = <NN |NN > = P
32 C <PN |PN > = <NP |NP > = P
33 C <PN |NP > = <NP |PN > = 0
34 C <PL |PL > = <NL |NL > = P - S
35 C <PLB|PLB> = <NLB|NLB> = P - S
36 C <PL |LP > = <NL |LN > = 0
37 C <PBN|PBN> = <NBP|NBP> = P
38 C <PBP|PBP> = <NBN|NBN> = P + A
39 C <PBP|NBN> = <NBN|PBP> = A
40 C <LL |LL > = = (P - S)**2/P
41 C <LBL|LBL> = = (P + A)*(P + S)**2/P**2
42 C <PBP|LBL> = <NBN|LBL> = A*(P - S)/P
48 C K0S P = 6P + A/2- 3S
49 C K0L P = 6P + A/2- 3S
50 C K0 P = 6P - 3S ==> S(K0)=S(K+)
51 C K0B P = 6P + A - 3S ==> S(K0B)=S(K+)/4+S(K0L)/3+5S(K-)/12
57 C FOR THE FOLLOWING REACTIONS WE TOOK THE AMPLITUDES
60 C A = (S(PB P)-S(P P))/5
61 C S = 2S(P P)/9-S(K+ P)/3
70 C S-B P = 9P + 2A - 3S
71 C S+B P = 9P + 4A - 3S
74 C X0B P = 9P + 2A - 6S
77 #include "geant321/s_csdim.inc"
83 DIMENSION AX(9),LX(3),MX(3),BX(3),CX(9),EX(9)
84 DATA AX/423.,78.,-54.,78.,34.25,-7.5,-54.,-7.5,27./
86 C --- INITIALIZE ALL ARRAYS ---
92 IF (I .GT. 3) GO TO 8001
106 IF (J .GT. 15) GO TO 8002
139 CALL MINV(AX,3,DET,LX,MX)
140 EX(1)=AX(1)*CX(1)+AX(4)*CX(2)+AX(7)*CX(3)
141 EX(2)=AX(1)*CX(4)+AX(4)*CX(5)+AX(7)*CX(6)
142 EX(3)=AX(1)*CX(7)+AX(4)*CX(8)+AX(7)*CX(9)
143 EX(4)=AX(2)*CX(1)+AX(5)*CX(2)+AX(8)*CX(3)
144 EX(5)=AX(2)*CX(4)+AX(5)*CX(5)+AX(8)*CX(6)
145 EX(6)=AX(2)*CX(7)+AX(5)*CX(8)+AX(8)*CX(9)
146 EX(7)=AX(3)*CX(1)+AX(6)*CX(2)+AX(9)*CX(3)
147 EX(8)=AX(3)*CX(4)+AX(6)*CX(5)+AX(9)*CX(6)
148 EX(9)=AX(3)*CX(7)+AX(6)*CX(8)+AX(9)*CX(9)
149 IF(PRFLAG) PRINT 7001,AX,DET,EX
150 7001 FORMAT(1H ,'CSDATA MATRIX INVERSION ',9F10.6,2X,F10.1/
151 * 1H ,' UNIT MATRIX ',9F10.6)
152 1 READ(LUNIN,1001) IA
153 IF (IA(1:3) .EQ. 'END') GO TO 100
154 IF(PRFLAG) PRINT 1002,IA
156 IF(PRFLAG) PRINT 1002,IA
158 IF(PRFLAG) PRINT 1002,IA
160 1002 FORMAT(1H ,3X,A)
166 READ(LUNIN,1003) PLAB(I),(A(J,I),J=1,6)
167 IF(PRFLAG) PRINT 1004,PLAB(I),(A(J,I),J=1,6)
169 1004 FORMAT(1H ,7F10.2)
172 3 READ(LUNIN,1001) IA
173 IF(PRFLAG) PRINT 1002,IA
175 READ(LUNIN,1003) ELAB(I),(A(J,I),J=1,6)
176 IF(PRFLAG) PRINT 1010,ELAB(I),(A(J,I),J=1,6)
177 1010 FORMAT(1H ,F10.4,6F10.2)
179 5 IF(IP.EQ. 1) GOTO 20
201 40 IF(PRFLAG) PRINT 1008
202 1008 FORMAT(1H0,'QUARK PARTON SCATTERING AMPLITUDES'/
203 *1H ,' P(GEV/C) P A S P A
205 *1H ,' LEAST SQUARE FIT CALCULATED')
213 BX(1)= 6.*(CSEL( 7,I)+CSIN( 7,I))+ 6.*(CSEL( 9,I)+CSIN( 9,I))
214 * + 6.*(CSEL(10,I)+CSIN(10,I))+ 6.*(CSEL(12,I)+CSIN(12,I))
215 * + 6.*(CSEL(13,I)+CSIN(13,I))+ 9.*(CSEL(14,I)+CSIN(14,I))
216 * + 9.*(CSEL(15,I)+CSIN(15,I))+ 9.*(CSEL(16,I)+CSIN(16,I))
217 BX(2)= (CSEL( 7,I)+CSIN( 7,I))+ (CSEL( 9,I)+CSIN( 9,I))
218 * + .5*(CSEL(12,I)+CSIN(12,I))+ 5.*(CSEL(15,I)+CSIN(15,I))
219 BX(3)=- 3.*(CSEL(10,I)+CSIN(10,I))- 3.*(CSEL(12,I)+CSIN(12,I))
220 * - 3.*(CSEL(13,I)+CSIN(13,I))
221 PAM =AX(1)*BX(1)+AX(4)*BX(2)+AX(7)*BX(3)
222 AAM =AX(2)*BX(1)+AX(5)*BX(2)+AX(8)*BX(3)
223 SAM =AX(3)*BX(1)+AX(6)*BX(2)+AX(9)*BX(3)
224 C RATKP=CSEL(10,I)/(CSEL(10,I)+CSIN(10,I))
225 C RATKM=CSEL(13,I)/(CSEL(13,I)+CSIN(13,I))
226 RATP =CSEL(14,I)/(CSEL(14,I)+CSIN(14,I))
227 RATPB=CSEL(15,I)/(CSEL(15,I)+CSIN(15,I))
228 C CSEL(11,I)=(6.*PAM -3.*SAM ) * RATKP
229 C CSIN(11,I)=(6.*PAM -3.*SAM ) *(1.-RATKP)
230 C CSEL(12,I)=(6.*PAM + AAM -3.*SAM ) * RATKM
231 C CSIN(12,I)=(6.*PAM + AAM -3.*SAM ) *(1.-RATKM)
232 CSEL(11,I)= CSEL(10,I)
233 CSIN(11,I)= CSIN(10,I)
234 CSEL(12,I)= CSEL(10,I)/4.+CSEL(12,I)/3.+5.*CSEL(13,I)/12.
235 CSIN(12,I)= CSIN(10,I)/4.+CSIN(12,I)/3.+5.*CSIN(13,I)/12.
236 PAMP= (CSEL(14,I)+CSIN(14,I))/9.
237 AAMP= (CSEL(15,I)+CSIN(15,I)-CSEL(14,I)-CSIN(14,I))/5.
238 SAMP= 2.*(CSEL(14,I)+CSIN(14,I))/9.-(CSEL(10,I)+CSIN(10,I))/3.
239 IF(PLAB(I).LT.0.59) SAMP = 0.
240 IF(PRFLAG) PRINT 1009,PLAB(I),PAM,AAM,SAM,PAMP,AAMP,SAMP
241 1009 FORMAT(1H ,7F10.2)
242 CSEL(17,I)=(9.*PAMP +4.*AAMP ) *RATPB
243 CSIN(17,I)=(9.*PAMP +4.*AAMP ) *(1.-RATPB)
244 CSEL(18,I)=(9.*PAMP -3.*SAMP ) *RATP
245 CSIN(18,I)=(9.*PAMP -3.*SAMP ) *(1.-RATP)
246 CSEL(19,I)=(9.*PAMP +2.*AAMP -3.*SAMP ) *RATPB
247 CSIN(19,I)=(9.*PAMP +2.*AAMP -3.*SAMP ) *(1.-RATPB)
248 CSEL(20,I)=(9.*PAMP -3.*SAMP ) *RATP
249 CSIN(20,I)=(9.*PAMP -3.*SAMP ) *(1.-RATP)
250 CSEL(22,I)=(9.*PAMP -3.*SAMP ) *RATP
251 CSIN(22,I)=(9.*PAMP -3.*SAMP ) *(1.-RATP)
252 CSEL(23,I)=(9.*PAMP +4.*AAMP -3.*SAMP ) *RATPB
253 CSIN(23,I)=(9.*PAMP +4.*AAMP -3.*SAMP ) *(1.-RATPB)
254 CSEL(25,I)=(9.*PAMP +2.*AAMP -3.*SAMP ) *RATPB
255 CSIN(25,I)=(9.*PAMP +2.*AAMP -3.*SAMP ) *(1.-RATPB)
256 CSEL(26,I)=(9.*PAMP -6.*SAMP ) *RATP
257 CSIN(26,I)=(9.*PAMP -6.*SAMP ) *(1.-RATP)
258 CSEL(27,I)=(9.*PAMP -6.*SAMP ) *RATP
259 CSIN(27,I)=(9.*PAMP -6.*SAMP ) *(1.-RATP)
260 CSEL(28,I)=(9.*PAMP +2.*AAMP -6.*SAMP ) *RATPB
261 CSIN(28,I)=(9.*PAMP +2.*AAMP -6.*SAMP ) *(1.-RATPB)
262 CSEL(29,I)=(9.*PAMP + AAMP -6.*SAMP ) *RATPB
263 CSIN(29,I)=(9.*PAMP + AAMP -6.*SAMP ) *(1.-RATPB)
264 C --- SET CROSS SECTIONS FOR THE OMEGA AND ANTI-OMEGA TO THE VALUES ---
265 C --- AS FOR XI- AND ANTI XI- RESPECTIVELY ---
266 CSEL(33,I)=CSEL(27,I)
267 CSIN(33,I)=CSIN(27,I)
268 CSEL(34,I)=CSEL(29,I)
269 CSIN(34,I)=CSIN(29,I)
273 IF(CSEL(J,I).LT.0.) CSEL(J,I)=0.
274 IF(CSIN(J,I).LT.0.) CSIN(J,I)=0.
278 CSPIEL(1,I)=A(1,I)-A(2,I)
280 CSPIEL(2,I)=A(3,I)-A(4,I)
282 CSPIEL(3,I)=A(5,I)-A(6,I)
283 61 CSPIIN(3,I)=A(6,I)
286 CSPNEL(1,I)=A(1,I)-A(2,I)
288 CSPNEL(2,I)=A(3,I)-A(4,I)
290 CSPNEL(3,I)=A(5,I)-A(6,I)
291 71 CSPNIN(3,I)=A(6,I)
295 CNLWEL(IAT+1,I)=A(1,I)-A(2,I)
296 CNLWIN(IAT+1,I)=A(2,I)
297 CNLWEL(IAT+2,I)=A(3,I)-A(4,I)
298 CNLWIN(IAT+2,I)=A(4,I)
299 CNLWEL(IAT+3,I)=A(5,I)-A(6,I)
300 81 CNLWIN(IAT+3,I)=A(6,I)
308 READ(LUNIN,1011) IA,(CSCAP(J),J=I1,I2)
310 *PRINT 1011,IA,(CSCAP(J),J=I1,I2)
311 1011 FORMAT(A10,6F10.2)
314 95 READ(LUNIN,1001) IA
315 IF(PRFLAG) PRINT 1002,IA
317 READ(LUNIN,1012) EKFISS(I),(CSFISS(J,I),J=1,4)
318 IF(PRFLAG) PRINT 1012,EKFISS(I),(CSFISS(J,I),J=1,4)
319 1012 FORMAT(1X,F9.4,4F10.0)
322 100 IF(.NOT.PRFLAG) GOTO 200
324 1005 FORMAT(1H0,'LISTINGS OF ALL PARTICLE CROSS SECTIONS ON PROTONS MEA
325 *SURED OR CALCULATED')
330 1006 FORMAT(1H0,'IPART1 - IPART2',2X,I3,'-',I3)
332 PRINT 1007,PLAB(I),(CSEL(J,I),CSIN(J,I),J=K1,K2)
333 1007 FORMAT(1H ,F10.2,2X,5(2X,2F10.2))
339 C --- CHECK FOR UN-PHYSICAL VALUES ---
341 IF (PLAB(J) .LT. 0.0) PLAB(J)=0.0
343 IF (CSEL(I,J) .LT. 0.0) CSEL(I,J)=0.0
344 IF (CSIN(I,J) .LT. 0.0) CSIN(I,J)=0.0
345 IF (I .GT. 3) GO TO 9001
346 IF (CSPIEL(I,J) .LT. 0.0) CSPIEL(I,J)=0.0
347 IF (CSPIIN(I,J) .LT. 0.0) CSPIIN(I,J)=0.0
348 IF (CSPNEL(I,J) .LT. 0.0) CSPNEL(I,J)=0.0
349 IF (CSPNIN(I,J) .LT. 0.0) CSPNIN(I,J)=0.0
354 IF (ELAB(J) .LT. 0.0) ELAB(J)=0.0
356 IF (CNLWEL(I,J) .LT. 0.0) CNLWEL(I,J)=0.0
357 IF (CNLWIN(I,J) .LT. 0.0) CNLWIN(I,J)=0.0
359 IF (J .GT. 15) GO TO 9002
360 IF (CNLWAT(J) .LT. 0.0) CNLWAT(J)=0.0
364 IF (EKFISS(J) .LT. 0.0) EKFISS(J)=0.0
366 IF (CSFISS(I,J) .LT. 0.0) CSFISS(I,J)=0.0
371 IF (CSCAP(I) .LT. 0.0) CSCAP(I)=0.0
374 C --- WRITE OUT THE CROSS SECTIONS IN THE FORM OF DATA STMTS. ---
376 2001 FORMAT('+KEEP,/CSDAT.'/
377 $ 'C --- CROSS-SECTION DATA BY "PCSDAT" 01-FEB-1989 ---'/'C')
379 WRITE(LUNOUT,2010) (PLAB(I),I=1,41)
380 2010 FORMAT(6X,'DATA PLAB /'/
381 $ 8(5X,'$ ',5(G12.5,',')/),
385 WRITE(LUNOUT,2020) I,(CSEL(I,J),J=1,41)
386 2020 FORMAT(6X,'DATA (CSEL(',I2,',J),J=1,41) /'/
387 $ 8(5X,'$ ',5(G12.5,',')/),
392 WRITE(LUNOUT,2030) I,(CSIN(I,J),J=1,41)
393 2030 FORMAT(6X,'DATA (CSIN(',I2,',J),J=1,41) /'/
394 $ 8(5X,'$ ',5(G12.5,',')/),
399 WRITE(LUNOUT,2040) I,(CSPIEL(I,J),J=1,41)
400 2040 FORMAT(6X,'DATA (CSPIEL(',I2,',J),J=1,41) /'/
401 $ 8(5X,'$ ',5(G12.5,',')/),
406 WRITE(LUNOUT,2050) I,(CSPIIN(I,J),J=1,41)
407 2050 FORMAT(6X,'DATA (CSPIIN(',I2,',J),J=1,41) /'/
408 $ 8(5X,'$ ',5(G12.5,',')/),
413 WRITE(LUNOUT,2060) I,(CSPNEL(I,J),J=1,41)
414 2060 FORMAT(6X,'DATA (CSPNEL(',I2,',J),J=1,41) /'/
415 $ 8(5X,'$ ',5(G12.5,',')/),
420 WRITE(LUNOUT,2070) I,(CSPNIN(I,J),J=1,41)
421 2070 FORMAT(6X,'DATA (CSPNIN(',I2,',J),J=1,41) /'/
422 $ 8(5X,'$ ',5(G12.5,',')/),
426 WRITE(LUNOUT,2080) (ELAB(I),I=1,17)
427 2080 FORMAT(6X,'DATA ELAB /'/
428 $ 3(5X,'$ ',5(G12.5,',')/),
429 $ 5X,'$ ',G12.5,',',G12.5,'/')
431 WRITE(LUNOUT,2090) (CNLWAT(I),I=1,15)
432 2090 FORMAT(6X,'DATA CNLWAT /'/
433 $ 2(5X,'$ ',5(G12.5,',')/),
434 $ 5X,'$ ',4(G12.5,','),G12.5,'/')
437 WRITE(LUNOUT,2100) I,(CNLWEL(I,J),J=1,17)
438 2100 FORMAT(6X,'DATA (CNLWEL(',I2,',J),J=1,17) /'/
439 $ 3(5X,'$ ',5(G12.5,',')/),
440 $ 5X,'$ ',G12.5,',',G12.5,'/')
444 WRITE(LUNOUT,2110) I,(CNLWIN(I,J),J=1,17)
445 2110 FORMAT(6X,'DATA (CNLWIN(',I2,',J),J=1,17) /'/
446 $ 3(5X,'$ ',5(G12.5,',')/),
447 $ 5X,'$ ',G12.5,',',G12.5,'/')
450 C --- WRITE CSCAP IN TWO PARTS BECAUSE OF CONTINUATION CARD LIMIT ---
451 WRITE(LUNOUT,2120) (CSCAP(I),I=1,100)
452 2120 FORMAT(6X,'DATA (CSCAP(J),J=1,50) /'/
453 $ 9(5X,'$ ',5(G12.5,',')/),
454 $ 5X,'$ ',4(G12.5,','),G12.5,'/'/
455 $ 6X,'DATA (CSCAP(J),J=51,100) /'/
456 $ 9(5X,'$ ',5(G12.5,',')/),
457 $ 5X,'$ ',4(G12.5,','),G12.5,'/')
459 WRITE(LUNOUT,2130) (EKFISS(I),I=1,21)
460 2130 FORMAT(6X,'DATA EKFISS /'/
461 $ 4(5X,'$ ',5(G12.5,',')/),
465 WRITE(LUNOUT,2140) I,(CSFISS(I,J),J=1,21)
466 2140 FORMAT(6X,'DATA (CSFISS(',I2,',J),J=1,21) /'/
467 $ 4(5X,'$ ',5(G12.5,',')/),
472 2999 FORMAT('C --- END OF CROSS SECTION DATA STATEMENTS ---'/'C')