5 * Revision 1.1.1.1 1995/10/24 10:21:04 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.39 by S.Giani
12 SUBROUTINE GENXPT(IPPP,NFL,AVERN)
14 C *** GENERATION OF X- AND PT- VALUES FOR ALL PRODUCED PARTICLES ***
15 C *** NVE 02-MAY-1988 CERN GENEVA ***
17 C ORIGIN : H.FESEFELDT 11-OCT-1987
19 C A SIMPLE SINGLE VARIABLE DESCRIPTION E D3S/DP3= F(Q) WITH
20 C Q**2 = (M*X)**2 + PT**2 IS USED. FINAL STATE KINEMATIC IS PRODUCED
21 C BY AN FF-TYPE ITERATIVE CASCADE METHOD
23 #include "geant321/s_defcom.inc"
24 #include "geant321/s_genio.inc"
26 REAL MASPAR,LAMB,NUCSUP
27 DIMENSION MASPAR(8),BP(8),PTEX(8),C1PAR(5),G1PAR(5),TAVAI(2),
28 $ SIDE(MXGKCU),IAVAI(2),BINL(20),DNDL(20),TWSUP(8),
29 $ NUCSUP(6),PSUP(6),IPAX(100)
31 DATA MASPAR/0.75,0.70,0.65,0.60,0.50,0.40,0.75,0.20/
32 DATA BP/3.50,3.50,3.50,6.00,5.00,4.00,3.50,3.50/
33 DATA PTEX/1.70,1.70,1.50,1.70,1.40,1.20,1.70,1.20/
34 DATA C1PAR/0.6,0.6,0.35,0.15,0.10/
35 DATA G1PAR/2.6,2.6,1.80,1.30,1.20/
36 DATA BINL/0.,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.11,1.25
37 $ ,1.43,1.67,2.0,2.5,3.33,5.00,10.00/
38 DATA TWSUP/1.,1.,0.7,0.5,0.3,0.2,0.1,0.0/
39 DATA NUCSUP/1.00,0.7,0.5,0.4,0.35,0.3/
40 DATA PSUP/3.,6.,20.,50.,100.,1000./
45 CALL HIGXPT(IPPP,NFL,AVERN)
49 C** FOR ANNIHILATION INTERACTIONS INTRODUCE PROPER KINEMATICS
51 CALL CORANH(NIHIL,NFL)
54 C** CHECK FIRST MASS-INDICES
63 IF(IPA(I).EQ.0) GOTO 1
67 CALL VZERO(IPA(NT+1),MXGKCU-NT)
68 CALL UCOPY(IPA(1),IPAX(1),100)
70 C** FOR LOW MULTIPLICITY USE TWO-BODY RESONANCE MODEL OR SINGLE/DOUBLE
71 C** DIFFRACTION MODEL (--> TWOCLU (--> TWOB (--> COSCAT)))
73 CFA=0.025*((ATNO2-1.)/120.)*EXP(-(ATNO2-1.)/120.)
74 IF(NIHIL.GT.0) GOTO 200
79 IF(IPART.GE.10.AND.IPART.LE.13.AND.RAN.LT.0.5) GOTO 200
83 IF(RAN.GT.WSUP) GOTO 200
84 60 CALL UCOPY(IPAX,IPA,100)
85 CALL TWOCLU(IPPP,NFL,AVERN)
88 C** SET EFFECTIVE 4-MOMENTUM OF PRIMARY PARTICLE
107 PV( 8,MXGKPV-1)=IPART
109 PV(10,MXGKPV-1)=USERW
112 C** SOME RANDOMISATION OF ORDER OF FINAL STATE PARTICLES
116 IPX=IFIX(3.+RNDM(1)*(NT-2.))
122 C** DISTRIBUTE IN FORWARD AND BACKWARD HEMISPHERE IN CMS
128 IF(IPART.LT.10.OR.IPART.GT.13) GOTO 53
130 IF(RNDM(1).LT.0.7) GOTO 53
135 IF(IPART.LT.10.OR.IPART.EQ.14.OR.IPART.EQ.16) GOTO 532
137 IF(IPA1.LT.10.OR.IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 531
141 IF(IPA1.LT.10.OR.IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 532
147 IF(RNDM(1).LT.0.5) SIDE(I)=-1.
148 IF(SIDE(I).LT.-0.5) NTB=NTB+1
153 IF(RS.LT.(2.0+RNDM(1))) TB=(2.*NTB+NT)/2.
155 C** ADD PARTICLES FROM INTRANUCLEAR CASCADE
157 AFC=0.312+0.200*LOG(LOG(S))+S**1.5/6000.
158 IF(AFC.GT.0.75) AFC=0.75
159 XTARG=AFC*(ATNO2**0.33 -1.0)*TB
160 IF(XTARG.LE.0.) XTARG=0.01
161 CALL POISSO(XTARG,NTARG)
167 IF (NPRT(4)) WRITE(NEWBCD,3001) NTARG,NT
169 IF(NTARG.EQ.0) GOTO 51
171 C** CHECK NUMBER OF EXTRA NUCLEONS AND PIONS
174 IF(P.LE.PSUP(IPX)) GOTO 882
180 IF(RAN.LT.NUCSUP(IPX)) GOTO 52
182 IPA(I)=-(7+IFIX(RNDM(1)*3.0))
187 IF(RNDM(1).GT.PNRAT) IPA(I)=-14
192 C** CHOOSE MASSES AND CHARGES FOR ALL PARTICLES
199 IF(PV(5,I).LT.0.) PV(7,I)=-1.
203 C** CHECK AVAILABLE KINETIC ENERGY, IN THIS MODEL CONSERVATION OF
204 C** KINETIC ENERGY IN FORWARD AND BACKWARD HEMISPHERE IS ASSUMED
206 6 IF(NT.LE.1) GOTO 60
208 TAVAI(2)=(TARG+1.)*RS/2.
213 IF(SIDE(I).LT.0.) L=2
215 TAVAI(L)=TAVAI(L)-ABS(PV(5,I))
220 $ WRITE(NEWBCD,3002) TAVAI,IAVAI,(IPA(I),SIDE(I),I=1,NTH)
221 IF(IAVAI(1).LE.0) GOTO 60
222 IF(IAVAI(2).LE.0) GOTO 60
223 IF(TAVAI(1).GT.0.) GOTO 11
225 ISKIP=IFIX(RNDM(1)*(IAVAI(1)-1))+1
229 IF(SIDE(II).LT.0.) GOTO 10
231 IF(IS.NE.ISKIP) GOTO 10
247 11 IF(TAVAI(2).GT.0.) GOTO 15
249 ISKIP=IFIX(RNDM(1)*(IAVAI(2)-1))+1
253 IF(SIDE(II).GT.0.) GOTO 14
255 IF(IS.NE.ISKIP) GOTO 14
256 IF(SIDE(II).LT.-1.5) NTARG=NTARG-1
257 IF(NTARG.LT.0) NTARG=0
273 15 IF(NT.LE.1) GOTO 60
281 C** NOW THE PREPARATION IS FINISHED.
282 C** DEFINE INITIAL STATE VECTORS FOR LORENTZ TRANSFORMATIONS.
287 PV( 4,MX1)=SQRT(P*P+AMAS*AMAS)
297 PV( 4,MX4)=MP*(1.+TARG)
305 CALL ADD(MX1,MX2,MX3)
306 CALL ADD(MX4,MX1,MX4)
307 CALL LOR(MX1,MX3,MX1)
308 CALL LOR(MX2,MX3,MX2)
310 C** MAIN LOOP FOR 4-MOMENTUM GENERATION , SEE PITHA-REPORT (AACHEN)
311 C** FOR A DETAILED DESCRIPTION OF THE METHOD.
326 C** COUNT NUMBER OF BACKWARD NUCLEONS
329 IF(SIDE(I).LT.-1.5.AND.IPA1.GE.14) GOTO 301
332 IF(NPG.GT.18) GOTO 38
340 IF(SIDE(I).LT.-1.5) J=7
341 IF(J.EQ.7.AND.IPA1.GE.14) J=8
343 C** SET PT - AND PHI VALUES, THEY ARE CHANGED SOMEWHAT IN THE ITERATION
344 C** LOOP, SET MASS PARAMETER FOR LAMBDA FRAGMENTATION MODEL
354 IF(PT.LT.0.001) PT=0.001
361 73 BINL(J)=RLMAX*(J-1)/19.
363 IF(SIDE(I).LT.0.) THEN
369 C** START OF BIG ITERATION LOOP
372 IF(NTRIAL.GT. 2) GOTO 169
375 X=(BINL(L)+BINL(L-1))/2.
376 IF(PV(10,I).LT.0.001) PV(10,I)=0.001
377 IF(X.GT.1./PV(10,I)) GOTO 17
379 DNDL(L)=ASPAR/SQRT((1.+(ASPAR*X)**2)**3)
380 DNDL(L)=ET*DNDL(L)/SQRT((X*PV(10,I)*ET)**2+PV(10,I)**2
383 17 DNDL(L)=DNDL(L-1)+DNDL(L)
385 31 CALL GRNDM(RNDM,1)
388 IF(RAN.LT.DNDL(L)) GOTO 19
391 C** START OF SMALL ITERATION LOOP
397 LAMB=BINL(L-1)+RAN*DX/2.
400 X=X*SIDE(I)/ABS(SIDE(I))
402 PV(4,I)=PV(3,I)**2+PV(10,I)**2+PV(5,I)**2
403 PV(4,I)=SQRT(PV(4,I))
404 IF(SIDE(I).LT.0.) GOTO 165
408 IF(EKIN.LT.0.) EKIN=0.04*ABS(RAN)
409 PV(4,I)=ABS(PV(5,I))+EKIN
410 RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
414 IF (PP1 .GE. 1.0E-6) GO TO 8000
418 PV(1,I)=PP*SIN(RTHNVE)*COS(PHINVE)
419 PV(2,I)=PP*SIN(RTHNVE)*SIN(PHINVE)
420 PV(3,I)=PP*COS(RTHNVE)
423 PV(1,I)=PV(1,I)*PP/PP1
424 PV(2,I)=PV(2,I)*PP/PP1
425 PV(3,I)=PV(3,I)*PP/PP1
430 20 EKIN=EKIN1+PV(4,I)-ABS(PV(5,I))
431 IF(EKIN.LT.0.95*TAVAI(1)) GOTO 161
432 IF(NTRI.GT. 5) GOTO 167
433 PV(10,I)=PV(10,I)*0.9
434 PV( 1,I)=PV( 1,I)*0.9
435 PV( 2,I)=PV( 2,I)*0.9
436 DNDL(20)=DNDL(20)*0.9
437 IF((TAVAI(2)-ABS(PV(5,I))).LT.0.) GOTO 31
439 TAVAI(1)=TAVAI(1)+ABS(PV(5,I))
440 TAVAI(2)=TAVAI(2)-ABS(PV(5,I))
442 161 CALL ADD(MX5,I,MX5)
443 EKIN1=EKIN1+PV(4,I)-ABS(PV(5,I))
445 165 EKIN=EKIN2+PV(4,I)-ABS(PV(5,I))
446 XXX=0.95+0.05*TARG/20.
447 IF(XXX.GT.0.999) X=0.999
448 IF(EKIN.LT.XXX*TAVAI(2)) GOTO 166
449 IF(NTRI.GT. 5) GOTO 167
450 PV(10,I)=PV(10,I)*0.9
451 PV( 1,I)=PV( 1,I)*0.9
452 PV( 2,I)=PV( 2,I)*0.9
453 DNDL(20)=DNDL(20)*0.9
454 IF((TAVAI(1)-ABS(PV(5,I))).LT.0.) GOTO 31
456 TAVAI(1)=TAVAI(1)-ABS(PV(5,I))
457 TAVAI(2)=TAVAI(2)+ABS(PV(5,I))
459 166 CALL ADD(MX6,I,MX6)
460 EKIN2=EKIN2+PV(4,I)-ABS(PV(5,I))
461 163 CALL ADD(MX5,MX6,MX7)
463 CALL ANG(MX7,MX9,COST,PHIS)
464 IF(PV(2,MX7).LT.0.) PHIS=TWPI-PHIS
468 IF(PHI.GT.TWPI) PHI=PHI-TWPI
469 IF(PHI.LT.0.) PHI=TWPI-PHI
472 C** PARTICLE MOMENTUM ZERO, REDUCE KINETIC ENERGY OF ALL OTHER
481 IF(ABS(IPA(L)).GE.14.AND.SIDE(L).LT.0.) GOTO 168
482 PV(4,L)=PV(4,L)*0.95+0.05*ABS(PV(5,L))
483 IF(PV(4,L).LT.ABS(PV(5,L))) PV(4,L)=ABS(PV(5,L))
484 RNVE=ABS(PV(4,L)**2-PV(5,L)**2)
488 IF (PP1 .GE. 1.0E-6) GO TO 8002
492 PV(1,L)=PP*SIN(RTHNVE)*COS(PHINVE)
493 PV(2,L)=PP*SIN(RTHNVE)*SIN(PHINVE)
494 PV(3,L)=PP*COS(RTHNVE)
497 PV(1,L)=PV(1,L)*PP/PP1
498 PV(2,L)=PV(2,L)*PP/PP1
499 PV(3,L)=PV(3,L)*PP/PP1
502 PV(10,L)=SQRT(PV(1,L)**2+PV(2,L)**2)
503 IF(SIDE(L).LT.0.) GOTO 164
504 EKIN1=EKIN1+PV(4,L)-ABS(PV(5,L))
507 164 EKIN2=EKIN2+PV(4,L)-ABS(PV(5,L))
510 C *** NEXT STMT. CHANGED TO PREVENT FROM INFINITE LOOPING ***
511 C************* GOTO 38
514 C** SKIP PARTICLE, IF NOT ENOUGH ENERGY
524 IF(IPA(I).EQ.0) GOTO 320
533 C** BACKWARD NUCLEONS PRODUCED WITH A CLUSTER MODEL
535 CALL LOR(MX4,MX3,MX7)
536 CALL SUB(MX7,MX5,MX7)
537 CALL SUB(MX7,MX6,MX7)
538 IF(TARG1.GT.1.5) GOTO 310
543 IF(EKIN.GT.EKINM) EKIN=EKINM
545 IF(EKIN.LT.0.04) EKIN=0.04*ABS(RAN)
546 PV(4,I)=ABS(PV(5,I))+EKIN
547 RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
551 IF (PP1 .GE. 1.0E-6) GO TO 8004
555 PV(1,I)=PP*SIN(RTHNVE)*COS(PHINVE)
556 PV(2,I)=PP*SIN(RTHNVE)*SIN(PHINVE)
557 PV(3,I)=PP*COS(RTHNVE)
560 PV(1,I)=PV(1,MX7)*PP/PP1
561 PV(2,I)=PV(2,MX7)*PP/PP1
562 PV(3,I)=PV(3,MX7)*PP/PP1
567 310 ITARG1=IFIX(TARG1+0.1)
568 IF(ITARG1.GT.5) ITARG1=5
572 IF(SIDE(I).GT.-2.5) GOTO 311
574 RMB0=RMB0+ABS(PV(5,I))
576 IF(NPG.LT.2) GOTO 322
582 RMB=RMB0+RMB**CPAR/GPAR
584 IF(PV(5,MX7).GT.PV(4,MX7)) PV(5,MX7)=PV(4,MX7)
585 RNVE=ABS(PV(4,MX7)**2-PV(5,MX7)**2)
589 IF (PP1 .GE. 1.0E-6) GO TO 8006
593 PV(1,MX7)=PP*SIN(RTHNVE)*COS(PHINVE)
594 PV(2,MX7)=PP*SIN(RTHNVE)*SIN(PHINVE)
595 PV(3,MX7)=PP*COS(RTHNVE)
598 PV(1,MX7)=PV(1,MX7)*PP/PP1
599 PV(2,MX7)=PV(2,MX7)*PP/PP1
600 PV(3,MX7)=PV(3,MX7)*PP/PP1
604 IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
612 IF(SIDE(I).GT.-2.5)GOTO 312
614 AMASS(NPG)=ABS(PV(5,I))
619 IF(SIDE(I).GT.-2.5) GOTO 314
629 $ WRITE(NEWBCD,2002) NTRIAL,EKIN1,EKIN2,TAVAI(1),TAVAI(2)
630 175 IF (.NOT.NPRT(4)) GOTO 36
631 CALL ADD(MX5,MX6,MX7)
632 EKIN1=PV(4,MX1)+PV(4,MX2)
633 EKIN2=PV(4,MX5)+PV(4,MX6)
634 WRITE(NEWBCD,2000) EKIN1,EKIN2
636 WRITE(NEWBCD,2001) I,(PV(J,I),J=1,4)
638 WRITE(NEWBCD,2001) I,(PV(J,I),J=1,4)
640 WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
642 WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
644 37 WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
646 C** LORENTZ TRANSFORMATION IN LAB SYSTEM
648 36 IF(NT.LE.2) GOTO 60
651 IF(PV(5,I).GT.0.5) TARG=TARG+1.
654 IF(TARG.LT.0.5) TARG=1.
655 IF(LEAD.EQ.0) GOTO 6085
657 IF(ABS(IPA(I)).EQ.LEAD) GOTO 6085
660 IF(LEAD.GE.14.AND.ABS(IPA(2)).GE.14) I=2
661 IF(LEAD.LT.14.AND.ABS(IPA(2)).LT.14) I=2
663 EKIN=PV(4,I)-ABS(PV(5,I))
666 IF(PV(5,I).LT.0.) PV(7,I)=-1.
671 RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
673 PV(1,I)=PP1*PV(1,I)/PP
674 PV(2,I)=PP1*PV(2,I)/PP
675 PV(3,I)=PP1*PV(3,I)/PP
680 PV(4,MX4)=SQRT(P*P+AMAS*AMAS)
682 EKIN0=PV(4,MX4)-PV(5,MX4)
688 EKIN=PV(4,MX4)+PV(4,MX5)
690 IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
692 IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
693 CALL ADD(MX4,MX5,MX6)
694 CALL LOR(MX4,MX6,MX4)
695 CALL LOR(MX5,MX6,MX5)
696 TECM=PV(4,MX4)+PV(4,MX5)
705 IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
707 EKIN1=EKIN1+PV(4,I)-PV(5,I)
712 IF(NPG.GT.18) GOTO 597
721 CALL LOR(MX7,MX5,MX7)
722 599 EKIN=EKIN+PV(4,MX7)-PV(5,MX7)
723 CALL ANG(MX8,MX4,COST,TETA)
724 IF (NPRT(4)) WRITE(NEWBCD,2003) TETA,EKIN0,EKIN1,EKIN
726 C** MAKE SHURE, THAT KINETIC ENERGIES ARE CORRECT.
727 C** EKIN= KINETIC ENERGY THEORETICALLY
728 C** EKIN1= KINETIC ENERGY SIMULATED
730 597 IF(EKIN1.EQ.0.) GOTO 600
742 RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
746 IF (PP1 .GE. 1.0E-6) GO TO 8008
750 PV(1,I)=PP*SIN(RTHNVE)*COS(PHINVE)
751 PV(2,I)=PP*SIN(RTHNVE)*SIN(PHINVE)
752 PV(3,I)=PP*COS(RTHNVE)
755 PV(1,I)=PV(1,I)*PP/PP1
756 PV(2,I)=PV(2,I)*PP/PP1
757 PV(3,I)=PV(3,I)*PP/PP1
763 CALL ANG(MX7,MX4,COST,TETA)
764 IF (NPRT(4)) WRITE(NEWBCD,2003) TETA,EKIN0,EKIN1
766 C** ROTATE IN DIRECTION OF Z-AXIS, THIS DOES DISTURB IN SOME WAY OUR
767 C** INCLUSIVE DISTRIBUTIONS, BUT IT IS NESSACARY FOR MOMENTUM CONSER-
776 596 CALL ADD(MX7,I,MX7)
778 C** SOME SMEARING IN TRANSVERSE DIRECTION FROM FERMI MOTION
780 * call rannor(ran1,ran2)
788 PV(1,MX7)=PV(1,MX7)+RAN1*0.020*TARG
789 PV(2,MX7)=PV(2,MX7)+RAN2*0.020*TARG
790 CALL DEFS(MX4,MX7,MX8)
798 595 CALL ADD(MX7,I,MX7)
799 CALL ANG(MX7,MX4,COST,TETA)
800 IF (NPRT(4)) WRITE(NEWBCD,2003) TETA
802 C** ROTATE IN DIRECTION OF PRIMARY PARTICLE, SUBTRACT BINDING ENERGIES
803 C** AND MAKE SOME FURTHER CORRECTIONS IF REQUIRED (STEEP, STEEQ)
809 CALL DEFS1(I,MXGKPV-1,I)
810 IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
811 IF(ATNO2.LT.1.5) GOTO 21
813 EKIN=PV(4,I)-ABS(PV(5,I))
815 EKIN=EKIN-CFA*(1.+0.5*RAN)
816 IF (EKIN .LT. 1.0E-6) EKIN=1.0E-6
818 DEKIN=DEKIN+EKIN*(1.-XXH)
820 IF(ABS(IPA(I)).GE.7.AND.ABS(IPA(I)).LE.9) NPIONS=NPIONS+1
821 IF(ABS(IPA(I)).GE.7.AND.ABS(IPA(I)).LE.9) EK1=EK1+EKIN
822 PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
823 PV(4,I)=EKIN+ABS(PV(5,I))
825 IF (PP .GE. 1.0E-6) GO TO 8010
829 PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
830 PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
831 PV(3,I)=PP1*COS(RTHNVE)
834 PV(1,I)=PV(1,I)*PP1/PP
835 PV(2,I)=PV(2,I)*PP1/PP
836 PV(3,I)=PV(3,I)*PP1/PP
840 IF(EK1.EQ.0.) GOTO 23
841 IF(NPIONS.EQ.0) GOTO 23
844 IF(ABS(IPA(I)).LT.7.OR.ABS(IPA(I)).GT.9) GOTO 22
846 EKIN=PV(4,I)-ABS(PV(5,I))
848 IF (EKIN .LT. 1.0E-6) EKIN=1.0E-6
849 PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
850 PV(4,I)=EKIN+ABS(PV(5,I))
852 IF (PP .GE. 1.0E-6) GO TO 8012
856 PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
857 PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
858 PV(3,I)=PP1*COS(RTHNVE)
861 PV(1,I)=PV(1,I)*PP1/PP
862 PV(2,I)=PV(2,I)*PP1/PP
863 PV(3,I)=PV(3,I)*PP1/PP
868 C** ADD BLACK TRACK PARTICLES, THE TOTAL NUMBER OF PARTICLES PRODUCED
869 C** IS RESTRICTED TO 198, THIS MAY HAVE INFLUENCE ON VERY HIGH ENERGY
870 C** FIRST PROTONS AND NEUTRONS
872 23 IF(ATNO2.LT.1.5) GOTO 40
876 IF(TEX.LT.0.001) GOTO 445
877 BLACK=(1.5+1.25*TARG)*ENP(1)/(ENP(1)+ENP(3))
878 CALL POISSO(BLACK,NBL)
879 IF (NPRT(4)) WRITE(NEWBCD,3003) NBL,TEX
880 IF(IFIX(TARG)+NBL.GT.ATNO2) NBL=ATNO2-TARG
881 IF(NT+NBL.GT.MXGKPV-10) NBL=MXGKPV-10-NT
882 IF(NBL.LE.0) GOTO 445
888 IF(RNDM(1).LT.SPROB) GOTO 441
889 IF(NT.EQ.MXGKPV-10) GOTO 441
890 IF(EKIN2.GT.TEX) GOTO 443
894 EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
895 IF(EKIN1.LT.0.0) EKIN1=-0.010*LOG(RAN1)
898 IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
899 IF (EKIN1 .LT. 0.0) EKIN1=1.0E-6
903 IF(RNDM(1).GT.PNRAT) IPA1=14
907 SINT=SQRT(ABS(1.-COST*COST))
911 PV(5,NT)=ABS(RMASS(IPA1))
912 PV(6,NT)=RCHARG(IPA1)
914 PV(4,NT)=EKIN1+PV(5,NT)
915 RNVE=ABS(PV(4,NT)**2-PV(5,NT)**2)
917 PV(1,NT)=PP*SINT*SIN(PHI)
918 PV(2,NT)=PP*SINT*COS(PHI)
921 443 IF(ATNO2.LT.10.) GOTO 445
922 IF(EK.GT.2.0) GOTO 445
926 IF(EKA.GT.1.) EKA=EKA*EKA
927 IF(EKA.LT.0.1) EKA=0.1
928 IKA=3.6*EXP((ZNO2**2/ATNO2-35.56)/6.45)/EKA
929 IF(IKA.LE.0) GO TO 445
932 IF(IPA(II).NE.-14) GOTO 444
935 PV(5,II)=ABS(RMASS(IPA1))
936 PV(6,II)=RCHARG(IPA1)
938 IF(KK.GT.IKA) GOTO 445
941 C** THEN ALSO DEUTERONS, TRITONS AND ALPHAS
944 IF(TEX.LT.0.001) GOTO 40
945 BLACK=(1.5+1.25*TARG)*ENP(3)/(ENP(1)+ENP(3))
946 CALL POISSO(BLACK,NBL)
947 IF(NT+NBL.GT.MXGKPV-10) NBL=MXGKPV-10-NT
952 IF (NPRT(4)) WRITE(NEWBCD,3004) NBL,TEX
955 IF(RNDM(1).LT.SPROB) GOTO 442
956 IF(NT.EQ.MXGKPV-10) GOTO 442
957 IF(EKIN2.GT.TEX) GOTO 40
961 EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
962 IF(EKIN1.LT.0.0) EKIN1=-0.010*LOG(RAN1)
965 IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
966 IF (EKIN1 .LT. 0.0) EKIN1=1.0E-6
969 SINT=SQRT(ABS(1.-COST*COST))
973 IF(RAN.GT.0.60) IPA(NT+1)=-31
974 IF(RAN.GT.0.90) IPA(NT+1)=-32
976 PV(5,NT+1)=(ABS(IPA(NT+1))-28)*MP
977 SPALL=SPALL+PV(5,NT+1)*1.066
978 IF(SPALL.GT.ATNO2) GOTO 40
981 IF(IPA(NT).EQ.-32) PV(6,NT)=2.
983 PV(4,NT)=PV(5,NT)+EKIN1
984 RNVE=ABS(PV(4,NT)**2-PV(5,NT)**2)
986 PV(1,NT)=PP*SINT*SIN(PHI)
987 PV(2,NT)=PP*SINT*COS(PHI)
991 C** STORE ON EVENT COMMON
993 40 CALL GRNDM(RNDM,1)
994 IF(RS.GT.(4.+RNDM(1))) GOTO 42
999 PV(4,I)=SQRT(PV(5,I)**2+ETF**2)
1005 42 EKIN=PV(4,MXGKPV)-ABS(PV(5,MXGKPV))
1006 EKIN1=PV(4,MXGKPV-1)-ABS(PV(5,MXGKPV-1))
1011 TOF=TOF-TOF1*LOG(RAN)
1013 EKIN2=EKIN2+PV(4,I)-ABS(PV(5,I))
1014 IF(PV(7,I).LT.0.) PV(5,I)=-PV(5,I)
1019 IF (NPRT(4)) WRITE(NEWBCD,2006) NT,EKIN,ENP(1),ENP(3),EKIN1,EKIN2
1023 IF(NT.EQ.1) GO TO 9999
1026 IF(NTOT.LT.NSIZE/12) GOTO 43
1031 2002 FORMAT(' *GENXPT* PRODUCTION OF FINAL STATE KINEMATIC AFTER ',I3,
1032 $ ' TRIALS. KINETIC ENERGIES ',2F6.2,' OUT OF ',2F6.2)
1033 2000 FORMAT(' *GENXPT* CMS PARAMETERS OF FINAL STATE PARTICLES,',
1034 $ ' ENERGIES IN INITIAL AND FINAL STATE ',2F6.2)
1035 2001 FORMAT(' *GENXPT* TRACK',2X,I3,2X,10F8.3,2X,I3,2X,F4.0)
1036 2003 FORMAT(' *GENXPT* TETA,EKIN0,EKIN1,EKIN ',4F10.4)
1037 2006 FORMAT(' *GENXPT* COMP.',1X,I5,1X,5F7.2)
1038 3001 FORMAT(' *GENXPT* NUCLEAR EXCITATION',I5,
1039 $ ' PARTICLES PRODUCED IN ADDITION TO ',I5,' NORMAL PARTICLES')
1040 3002 FORMAT(' *GENXPT* AVAILABLE ENERGIES ',2F10.4,
1041 $ ' FOR ',2I3,' PARTICLES IN BEAM/TARGET FRAGM. REGION',
1042 $ ' WITH IPA/SIDE ARRAY '/
1043 $ 1H ,5X,10(I3,2X,F3.0,4X))
1044 3003 FORMAT(' *GENXPT* ',I3,' BLACK TRACK PARTICLES PRODUCED',
1045 $ ' WITH TOTAL KINETIC ENERGY OF ',F8.3,' GEV')
1046 3004 FORMAT(' *GENXPT* ',I5,' HEAVY FRAGMENTS PRODUCED',
1047 $ ' WITH TOTAL ENERGY OF',F8.4,' GEV')