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"
27 REAL MASPAR,LAMB,NUCSUP
28 DIMENSION MASPAR(8),BP(8),PTEX(8),C1PAR(5),G1PAR(5),TAVAI(2),
29 $ SIDE(MXGKCU),IAVAI(2),BINL(20),DNDL(20),TWSUP(8),
30 $ NUCSUP(6),PSUP(6),IPAX(100)
32 DATA MASPAR/0.75,0.70,0.65,0.60,0.50,0.40,0.75,0.20/
33 DATA BP/3.50,3.50,3.50,6.00,5.00,4.00,3.50,3.50/
34 DATA PTEX/1.70,1.70,1.50,1.70,1.40,1.20,1.70,1.20/
35 DATA C1PAR/0.6,0.6,0.35,0.15,0.10/
36 DATA G1PAR/2.6,2.6,1.80,1.30,1.20/
37 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
38 $ ,1.43,1.67,2.0,2.5,3.33,5.00,10.00/
39 DATA TWSUP/1.,1.,0.7,0.5,0.3,0.2,0.1,0.0/
40 DATA NUCSUP/1.00,0.7,0.5,0.4,0.35,0.3/
41 DATA PSUP/3.,6.,20.,50.,100.,1000./
46 CALL HIGXPT(IPPP,NFL,AVERN)
50 C** FOR ANNIHILATION INTERACTIONS INTRODUCE PROPER KINEMATICS
52 CALL CORANH(NIHIL,NFL)
55 C** CHECK FIRST MASS-INDICES
64 IF(IPA(I).EQ.0) GOTO 1
68 CALL VZERO(IPA(NT+1),MXGKCU-NT)
69 CALL UCOPY(IPA(1),IPAX(1),100)
71 C** FOR LOW MULTIPLICITY USE TWO-BODY RESONANCE MODEL OR SINGLE/DOUBLE
72 C** DIFFRACTION MODEL (--> TWOCLU (--> TWOB (--> COSCAT)))
74 CFA=0.025*((ATNO2-1.)/120.)*EXP(-(ATNO2-1.)/120.)
75 IF(NIHIL.GT.0) GOTO 200
80 IF(IPART.GE.10.AND.IPART.LE.13.AND.RAN.LT.0.5) GOTO 200
84 IF(RAN.GT.WSUP) GOTO 200
85 60 CALL UCOPY(IPAX,IPA,100)
86 CALL TWOCLU(IPPP,NFL,AVERN)
89 C** SET EFFECTIVE 4-MOMENTUM OF PRIMARY PARTICLE
108 PV( 8,MXGKPV-1)=IPART
110 PV(10,MXGKPV-1)=USERW
113 C** SOME RANDOMISATION OF ORDER OF FINAL STATE PARTICLES
117 IPX=IFIX(3.+RNDM(1)*(NT-2.))
123 C** DISTRIBUTE IN FORWARD AND BACKWARD HEMISPHERE IN CMS
129 IF(IPART.LT.10.OR.IPART.GT.13) GOTO 53
131 IF(RNDM(1).LT.0.7) GOTO 53
136 IF(IPART.LT.10.OR.IPART.EQ.14.OR.IPART.EQ.16) GOTO 532
138 IF(IPA1.LT.10.OR.IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 531
142 IF(IPA1.LT.10.OR.IPA1.EQ.14.OR.IPA1.EQ.16) GOTO 532
148 IF(RNDM(1).LT.0.5) SIDE(I)=-1.
149 IF(SIDE(I).LT.-0.5) NTB=NTB+1
154 IF(RS.LT.(2.0+RNDM(1))) TB=(2.*NTB+NT)/2.
156 IF(NFL .EQ. 1)ZNOL = ZNOL -1
159 C** ADD PARTICLES FROM INTRANUCLEAR CASCADE
161 AFC=0.312+0.200*LOG(LOG(S))+S**1.5/6000.
162 IF(AFC.GT.0.75) AFC=0.75
163 XTARG=AFC*(ATNO2**0.33 -1.0)*TB
164 IF(XTARG.LE.0.) XTARG=0.01
165 CALL POISSO(XTARG,NTARG)
171 IF (NPRT(4)) WRITE(NEWBCD,3001) NTARG,NT
173 IF(NTARG.EQ.0) GOTO 51
175 C** CHECK NUMBER OF EXTRA NUCLEONS AND PIONS
178 IF(P.LE.PSUP(IPX)) GOTO 882
182 IF(ATNOL .GT. 0.99)THEN
185 IF(RAN.LT.NUCSUP(IPX)) GOTO 52
188 IPA(I)=-(7+IFIX(RNDM(1)*3.0))
193 IF(RNDM(1).GT.PNRAT)THEN
202 C** CHOOSE MASSES AND CHARGES FOR ALL PARTICLES
209 IF(PV(5,I).LT.0.) PV(7,I)=-1.
213 C** CHECK AVAILABLE KINETIC ENERGY, IN THIS MODEL CONSERVATION OF
214 C** KINETIC ENERGY IN FORWARD AND BACKWARD HEMISPHERE IS ASSUMED
216 6 IF(NT.LE.1) GOTO 60
218 TAVAI(2)=(TARG+1.)*RS/2.
223 IF(SIDE(I).LT.0.) L=2
225 TAVAI(L)=TAVAI(L)-ABS(PV(5,I))
230 $ WRITE(NEWBCD,3002) TAVAI,IAVAI,(IPA(I),SIDE(I),I=1,NTH)
231 IF(IAVAI(1).LE.0) GOTO 60
232 IF(IAVAI(2).LE.0) GOTO 60
233 IF(TAVAI(1).GT.0.) GOTO 11
235 ISKIP=IFIX(RNDM(1)*(IAVAI(1)-1))+1
239 IF(SIDE(II).LT.0.) GOTO 10
241 IF(IS.NE.ISKIP) GOTO 10
257 11 IF(TAVAI(2).GT.0.) GOTO 15
259 ISKIP=IFIX(RNDM(1)*(IAVAI(2)-1))+1
263 IF(SIDE(II).GT.0.) GOTO 14
265 IF(IS.NE.ISKIP) GOTO 14
266 IF(SIDE(II).LT.-1.5) NTARG=NTARG-1
267 IF(NTARG.LT.0) NTARG=0
283 15 IF(NT.LE.1) GOTO 60
291 C** NOW THE PREPARATION IS FINISHED.
292 C** DEFINE INITIAL STATE VECTORS FOR LORENTZ TRANSFORMATIONS.
297 PV( 4,MX1)=SQRT(P*P+AMAS*AMAS)
307 PV( 4,MX4)=MP*(1.+TARG)
315 CALL ADD(MX1,MX2,MX3)
316 CALL ADD(MX4,MX1,MX4)
317 CALL LOR(MX1,MX3,MX1)
318 CALL LOR(MX2,MX3,MX2)
320 C** MAIN LOOP FOR 4-MOMENTUM GENERATION , SEE PITHA-REPORT (AACHEN)
321 C** FOR A DETAILED DESCRIPTION OF THE METHOD.
336 C** COUNT NUMBER OF BACKWARD NUCLEONS
339 IF(SIDE(I).LT.-1.5.AND.IPA1.GE.14) GOTO 301
342 IF(NPG.GT.18) GOTO 38
350 IF(SIDE(I).LT.-1.5) J=7
351 IF(J.EQ.7.AND.IPA1.GE.14) J=8
353 C** SET PT - AND PHI VALUES, THEY ARE CHANGED SOMEWHAT IN THE ITERATION
354 C** LOOP, SET MASS PARAMETER FOR LAMBDA FRAGMENTATION MODEL
364 IF(PT.LT.0.001) PT=0.001
371 73 BINL(J)=RLMAX*(J-1)/19.
373 IF(SIDE(I).LT.0.) THEN
379 C** START OF BIG ITERATION LOOP
382 IF(NTRIAL.GT. 2) GOTO 169
385 X=(BINL(L)+BINL(L-1))/2.
386 IF(PV(10,I).LT.0.001) PV(10,I)=0.001
387 IF(X.GT.1./PV(10,I)) GOTO 17
389 DNDL(L)=ASPAR/SQRT((1.+(ASPAR*X)**2)**3)
390 DNDL(L)=ET*DNDL(L)/SQRT((X*PV(10,I)*ET)**2+PV(10,I)**2
393 17 DNDL(L)=DNDL(L-1)+DNDL(L)
395 31 CALL GRNDM(RNDM,1)
398 IF(RAN.LT.DNDL(L)) GOTO 19
401 C** START OF SMALL ITERATION LOOP
407 LAMB=BINL(L-1)+RAN*DX/2.
410 X=X*SIDE(I)/ABS(SIDE(I))
412 PV(4,I)=PV(3,I)**2+PV(10,I)**2+PV(5,I)**2
413 PV(4,I)=SQRT(PV(4,I))
414 IF(SIDE(I).LT.0.) GOTO 165
418 IF(EKIN.LT.0.) EKIN=0.04*ABS(RAN)
419 PV(4,I)=ABS(PV(5,I))+EKIN
420 RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
424 IF (PP1 .GE. 1.0E-6) GO TO 8000
428 PV(1,I)=PP*SIN(RTHNVE)*COS(PHINVE)
429 PV(2,I)=PP*SIN(RTHNVE)*SIN(PHINVE)
430 PV(3,I)=PP*COS(RTHNVE)
433 PV(1,I)=PV(1,I)*PP/PP1
434 PV(2,I)=PV(2,I)*PP/PP1
435 PV(3,I)=PV(3,I)*PP/PP1
440 20 EKIN=EKIN1+PV(4,I)-ABS(PV(5,I))
441 IF(EKIN.LT.0.95*TAVAI(1)) GOTO 161
442 IF(NTRI.GT. 5) GOTO 167
443 PV(10,I)=PV(10,I)*0.9
444 PV( 1,I)=PV( 1,I)*0.9
445 PV( 2,I)=PV( 2,I)*0.9
446 DNDL(20)=DNDL(20)*0.9
447 IF((TAVAI(2)-ABS(PV(5,I))).LT.0.) GOTO 31
449 TAVAI(1)=TAVAI(1)+ABS(PV(5,I))
450 TAVAI(2)=TAVAI(2)-ABS(PV(5,I))
452 161 CALL ADD(MX5,I,MX5)
453 EKIN1=EKIN1+PV(4,I)-ABS(PV(5,I))
455 165 EKIN=EKIN2+PV(4,I)-ABS(PV(5,I))
456 XXX=0.95+0.05*TARG/20.
457 IF(XXX.GT.0.999) X=0.999
458 IF(EKIN.LT.XXX*TAVAI(2)) GOTO 166
459 IF(NTRI.GT. 5) GOTO 167
460 PV(10,I)=PV(10,I)*0.9
461 PV( 1,I)=PV( 1,I)*0.9
462 PV( 2,I)=PV( 2,I)*0.9
463 DNDL(20)=DNDL(20)*0.9
464 IF((TAVAI(1)-ABS(PV(5,I))).LT.0.) GOTO 31
466 TAVAI(1)=TAVAI(1)-ABS(PV(5,I))
467 TAVAI(2)=TAVAI(2)+ABS(PV(5,I))
469 166 CALL ADD(MX6,I,MX6)
470 EKIN2=EKIN2+PV(4,I)-ABS(PV(5,I))
471 163 CALL ADD(MX5,MX6,MX7)
473 CALL ANG(MX7,MX9,COST,PHIS)
474 IF(PV(2,MX7).LT.0.) PHIS=TWPI-PHIS
478 IF(PHI.GT.TWPI) PHI=PHI-TWPI
479 IF(PHI.LT.0.) PHI=TWPI-PHI
482 C** PARTICLE MOMENTUM ZERO, REDUCE KINETIC ENERGY OF ALL OTHER
491 IF(ABS(IPA(L)).GE.14.AND.SIDE(L).LT.0.) GOTO 168
492 PV(4,L)=PV(4,L)*0.95+0.05*ABS(PV(5,L))
493 IF(PV(4,L).LT.ABS(PV(5,L))) PV(4,L)=ABS(PV(5,L))
494 RNVE=ABS(PV(4,L)**2-PV(5,L)**2)
498 IF (PP1 .GE. 1.0E-6) GO TO 8002
502 PV(1,L)=PP*SIN(RTHNVE)*COS(PHINVE)
503 PV(2,L)=PP*SIN(RTHNVE)*SIN(PHINVE)
504 PV(3,L)=PP*COS(RTHNVE)
507 PV(1,L)=PV(1,L)*PP/PP1
508 PV(2,L)=PV(2,L)*PP/PP1
509 PV(3,L)=PV(3,L)*PP/PP1
512 PV(10,L)=SQRT(PV(1,L)**2+PV(2,L)**2)
513 IF(SIDE(L).LT.0.) GOTO 164
514 EKIN1=EKIN1+PV(4,L)-ABS(PV(5,L))
517 164 EKIN2=EKIN2+PV(4,L)-ABS(PV(5,L))
520 C *** NEXT STMT. CHANGED TO PREVENT FROM INFINITE LOOPING ***
521 C************* GOTO 38
524 C** SKIP PARTICLE, IF NOT ENOUGH ENERGY
534 IF(IPA(I).EQ.0) GOTO 320
543 C** BACKWARD NUCLEONS PRODUCED WITH A CLUSTER MODEL
545 CALL LOR(MX4,MX3,MX7)
546 CALL SUB(MX7,MX5,MX7)
547 CALL SUB(MX7,MX6,MX7)
548 IF(TARG1.GT.1.5) GOTO 310
553 IF(EKIN.GT.EKINM) EKIN=EKINM
555 IF(EKIN.LT.0.04) EKIN=0.04*ABS(RAN)
556 PV(4,I)=ABS(PV(5,I))+EKIN
557 RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
561 IF (PP1 .GE. 1.0E-6) GO TO 8004
565 PV(1,I)=PP*SIN(RTHNVE)*COS(PHINVE)
566 PV(2,I)=PP*SIN(RTHNVE)*SIN(PHINVE)
567 PV(3,I)=PP*COS(RTHNVE)
570 PV(1,I)=PV(1,MX7)*PP/PP1
571 PV(2,I)=PV(2,MX7)*PP/PP1
572 PV(3,I)=PV(3,MX7)*PP/PP1
577 310 ITARG1=IFIX(TARG1+0.1)
578 IF(ITARG1.GT.5) ITARG1=5
582 IF(SIDE(I).GT.-2.5) GOTO 311
584 RMB0=RMB0+ABS(PV(5,I))
586 IF(NPG.LT.2) GOTO 322
592 RMB=RMB0+RMB**CPAR/GPAR
594 IF(PV(5,MX7).GT.PV(4,MX7)) PV(5,MX7)=PV(4,MX7)
595 RNVE=ABS(PV(4,MX7)**2-PV(5,MX7)**2)
599 IF (PP1 .GE. 1.0E-6) GO TO 8006
603 PV(1,MX7)=PP*SIN(RTHNVE)*COS(PHINVE)
604 PV(2,MX7)=PP*SIN(RTHNVE)*SIN(PHINVE)
605 PV(3,MX7)=PP*COS(RTHNVE)
608 PV(1,MX7)=PV(1,MX7)*PP/PP1
609 PV(2,MX7)=PV(2,MX7)*PP/PP1
610 PV(3,MX7)=PV(3,MX7)*PP/PP1
614 IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
622 IF(SIDE(I).GT.-2.5)GOTO 312
624 AMASS(NPG)=ABS(PV(5,I))
629 IF(SIDE(I).GT.-2.5) GOTO 314
639 $ WRITE(NEWBCD,2002) NTRIAL,EKIN1,EKIN2,TAVAI(1),TAVAI(2)
640 175 IF (.NOT.NPRT(4)) GOTO 36
641 CALL ADD(MX5,MX6,MX7)
642 EKIN1=PV(4,MX1)+PV(4,MX2)
643 EKIN2=PV(4,MX5)+PV(4,MX6)
644 WRITE(NEWBCD,2000) EKIN1,EKIN2
646 WRITE(NEWBCD,2001) I,(PV(J,I),J=1,4)
648 WRITE(NEWBCD,2001) I,(PV(J,I),J=1,4)
650 WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
652 WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
654 37 WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
656 C** LORENTZ TRANSFORMATION IN LAB SYSTEM
658 36 IF(NT.LE.2) GOTO 60
661 IF(PV(5,I).GT.0.5) TARG=TARG+1.
664 IF(ABS(AMAS) .GT. 0.5)TARG = TARG - 1.
665 IF(NIHIL .GT. 0)TARG = TARG + 2
666 IF(TARG.LT.0.5) TARG=1.
667 IF(LEAD.EQ.0) GOTO 6085
669 IF(ABS(IPA(I)).EQ.LEAD) GOTO 6085
672 IF(LEAD.GE.14.AND.ABS(IPA(2)).GE.14) I=2
673 IF(LEAD.LT.14.AND.ABS(IPA(2)).LT.14) I=2
675 EKIN=PV(4,I)-ABS(PV(5,I))
678 IF(PV(5,I).LT.0.) PV(7,I)=-1.
683 RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
685 PV(1,I)=PP1*PV(1,I)/PP
686 PV(2,I)=PP1*PV(2,I)/PP
687 PV(3,I)=PP1*PV(3,I)/PP
692 PV(4,MX4)=SQRT(P*P+AMAS*AMAS)
694 EKIN0=PV(4,MX4)-PV(5,MX4)
700 EKIN=PV(4,MX4)+PV(4,MX5)
702 IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
704 IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,5)
705 CALL ADD(MX4,MX5,MX6)
706 CALL LOR(MX4,MX6,MX4)
707 CALL LOR(MX5,MX6,MX5)
708 TECM=PV(4,MX4)+PV(4,MX5)
717 IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
719 EKIN1=EKIN1+PV(4,I)-PV(5,I)
724 IF(NPG.GT.18) GOTO 597
733 CALL LOR(MX7,MX5,MX7)
734 599 EKIN=EKIN+PV(4,MX7)-PV(5,MX7)
735 CALL ANG(MX8,MX4,COST,TETA)
736 IF (NPRT(4)) WRITE(NEWBCD,2003) TETA,EKIN0,EKIN1,EKIN
738 C** MAKE SHURE, THAT KINETIC ENERGIES ARE CORRECT.
739 C** EKIN= KINETIC ENERGY THEORETICALLY
740 C** EKIN1= KINETIC ENERGY SIMULATED
742 597 IF(EKIN1.EQ.0.) GOTO 600
754 RNVE=ABS(PV(4,I)**2-PV(5,I)**2)
758 IF (PP1 .GE. 1.0E-6) GO TO 8008
762 PV(1,I)=PP*SIN(RTHNVE)*COS(PHINVE)
763 PV(2,I)=PP*SIN(RTHNVE)*SIN(PHINVE)
764 PV(3,I)=PP*COS(RTHNVE)
767 PV(1,I)=PV(1,I)*PP/PP1
768 PV(2,I)=PV(2,I)*PP/PP1
769 PV(3,I)=PV(3,I)*PP/PP1
775 CALL ANG(MX7,MX4,COST,TETA)
776 IF (NPRT(4)) WRITE(NEWBCD,2003) TETA,EKIN0,EKIN1
778 C** ROTATE IN DIRECTION OF Z-AXIS, THIS DOES DISTURB IN SOME WAY OUR
779 C** INCLUSIVE DISTRIBUTIONS, BUT IT IS NESSACARY FOR MOMENTUM CONSER-
788 596 CALL ADD(MX7,I,MX7)
790 C** SOME SMEARING IN TRANSVERSE DIRECTION FROM FERMI MOTION
792 * call rannor(ran1,ran2)
800 PV(1,MX7)=PV(1,MX7)+RAN1*0.020*TARG
801 PV(2,MX7)=PV(2,MX7)+RAN2*0.020*TARG
802 CALL DEFS(MX4,MX7,MX8)
810 595 CALL ADD(MX7,I,MX7)
811 CALL ANG(MX7,MX4,COST,TETA)
812 IF (NPRT(4)) WRITE(NEWBCD,2003) TETA
814 C** ROTATE IN DIRECTION OF PRIMARY PARTICLE, SUBTRACT BINDING ENERGIES
815 C** AND MAKE SOME FURTHER CORRECTIONS IF REQUIRED (STEEP, STEEQ)
821 CALL DEFS1(I,MXGKPV-1,I)
822 IF (NPRT(4)) WRITE(NEWBCD,2001) I,(PV(J,I),J=1,10),IPA(I),SIDE(I)
823 IF(ATNO2.LT.1.5) GOTO 21
825 EKIN=PV(4,I)-ABS(PV(5,I))
827 EKIN=EKIN-CFA*(1.+0.5*RAN)
828 IF (EKIN .LT. 1.0E-6) EKIN=1.0E-6
830 DEKIN=DEKIN+EKIN*(1.-XXH)
832 IF(ABS(IPA(I)).GE.7.AND.ABS(IPA(I)).LE.9) NPIONS=NPIONS+1
833 IF(ABS(IPA(I)).GE.7.AND.ABS(IPA(I)).LE.9) EK1=EK1+EKIN
834 PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
835 PV(4,I)=EKIN+ABS(PV(5,I))
837 IF (PP .GE. 1.0E-6) GO TO 8010
841 PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
842 PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
843 PV(3,I)=PP1*COS(RTHNVE)
846 PV(1,I)=PV(1,I)*PP1/PP
847 PV(2,I)=PV(2,I)*PP1/PP
848 PV(3,I)=PV(3,I)*PP1/PP
852 IF(EK1.EQ.0.) GOTO 23
853 IF(NPIONS.EQ.0) GOTO 23
856 IF(ABS(IPA(I)).LT.7.OR.ABS(IPA(I)).GT.9) GOTO 22
858 EKIN=PV(4,I)-ABS(PV(5,I))
860 IF (EKIN .LT. 1.0E-6) EKIN=1.0E-6
861 PP1=SQRT(EKIN*(EKIN+2.*ABS(PV(5,I))))
862 PV(4,I)=EKIN+ABS(PV(5,I))
864 IF (PP .GE. 1.0E-6) GO TO 8012
868 PV(1,I)=PP1*SIN(RTHNVE)*COS(PHINVE)
869 PV(2,I)=PP1*SIN(RTHNVE)*SIN(PHINVE)
870 PV(3,I)=PP1*COS(RTHNVE)
873 PV(1,I)=PV(1,I)*PP1/PP
874 PV(2,I)=PV(2,I)*PP1/PP
875 PV(3,I)=PV(3,I)*PP1/PP
880 C** ADD BLACK TRACK PARTICLES, THE TOTAL NUMBER OF PARTICLES PRODUCED
881 C** IS RESTRICTED TO 198, THIS MAY HAVE INFLUENCE ON VERY HIGH ENERGY
882 C** FIRST PROTONS AND NEUTRONS
884 23 IF(ATNO2.LT.1.5) GOTO 40
888 IF(TEX.LT.0.001) GOTO 445
889 BLACK=(1.5+1.25*TARG)*ENP(1)/(ENP(1)+ENP(3))
890 CALL POISSO(BLACK,NBL)
891 IF (NPRT(4)) WRITE(NEWBCD,3003) NBL,TEX
892 IF(NBL.GT.ATNOL) NBL=ATNOL
893 IF(NT+NBL.GT.MXGKPV-10) NBL=MXGKPV-10-NT
894 IF(NBL.LE.0) GOTO 445
900 IF(RNDM(1).LT.SPROB) GOTO 441
901 IF(NT.EQ.MXGKPV-10) GOTO 441
902 IF(EKIN2.GT.TEX) GOTO 443
906 EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
907 IF(EKIN1.LT.0.0) EKIN1=-0.010*LOG(RAN1)
910 IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
911 IF (EKIN1 .LT. 0.0) EKIN1=1.0E-6
915 IF(RNDM(1).GT.PNRAT)THEN
923 SINT=SQRT(ABS(1.-COST*COST))
927 PV(5,NT)=ABS(RMASS(IPA1))
928 PV(6,NT)=RCHARG(IPA1)
930 PV(4,NT)=EKIN1+PV(5,NT)
931 RNVE=ABS(PV(4,NT)**2-PV(5,NT)**2)
933 PV(1,NT)=PP*SINT*SIN(PHI)
934 PV(2,NT)=PP*SINT*COS(PHI)
937 443 IF(ATNO2.LT.10.) GOTO 445
938 IF(EK.GT.2.0) GOTO 445
942 IF(EKA.GT.1.) EKA=EKA*EKA
943 IF(EKA.LT.0.1) EKA=0.1
944 IKA=3.6*EXP((ZNO2**2/ATNO2-35.56)/6.45)/EKA
945 IF(IKA.LE.0) GO TO 445
948 IF(IPA(II).NE.-14) GOTO 444
952 PV(5,II)=ABS(RMASS(IPA1))
953 PV(6,II)=RCHARG(IPA1)
955 IF(KK.GT.IKA) GOTO 445
958 C** THEN ALSO DEUTERONS, TRITONS AND ALPHAS
961 IF(TEX.LT.0.001) GOTO 40
962 IF(ATNOL .LT. ZNOL + 1.)GOTO 40
963 IF(ZNOL .LT. 1.)GOTO 40
964 BLACK=(1.5+1.25*TARG)*ENP(3)/(ENP(1)+ENP(3))
965 CALL POISSO(BLACK,NBL)
966 IF(NT+NBL.GT.MXGKPV-10) NBL=MXGKPV-10-NT
971 IF (NPRT(4)) WRITE(NEWBCD,3004) NBL,TEX
973 IF(ATNOL .LT. ZNOL + 1.)GOTO 40
974 IF(ZNOL .LT. 1.)GOTO 40
976 IF(RNDM(1).LT.SPROB) GOTO 442
977 IF(NT.EQ.MXGKPV-10) GOTO 442
978 IF(EKIN2.GT.TEX) GOTO 40
982 EKIN1=-EKIN*LOG(RAN1)-CFA*(1.+0.5*RAN2)
983 IF(EKIN1.LT.0.0) EKIN1=-0.010*LOG(RAN1)
986 IF(EKIN2.GT.TEX) EKIN1=TEX-(EKIN2-EKIN1)
987 IF (EKIN1 .LT. 0.0) EKIN1=1.0E-6
990 SINT=SQRT(ABS(1.-COST*COST))
997 IF(ATNOL .GT. ZNOL + 0.9)THEN
1001 IF( (ATNOL .GT. 0.9) .AND. (ZNOL .GT. 0.9))THEN
1010 PV(5,NT+1)=(ABS(IPA(NT+1))-28)*MP
1011 SPALL=SPALL+PV(5,NT+1)*1.066
1014 IF(IPA(NT).EQ.-32) PV(6,NT)=2.
1016 PV(4,NT)=PV(5,NT)+EKIN1
1017 RNVE=ABS(PV(4,NT)**2-PV(5,NT)**2)
1019 PV(1,NT)=PP*SINT*SIN(PHI)
1020 PV(2,NT)=PP*SINT*COS(PHI)
1024 C** STORE ON EVENT COMMON
1027 42 EKIN=PV(4,MXGKPV)-ABS(PV(5,MXGKPV))
1028 EKIN1=PV(4,MXGKPV-1)-ABS(PV(5,MXGKPV-1))
1033 TOF=TOF-TOF1*LOG(RAN)
1035 EKIN2=EKIN2+PV(4,I)-ABS(PV(5,I))
1036 IF(PV(7,I).LT.0.) PV(5,I)=-PV(5,I)
1041 IF (NPRT(4)) WRITE(NEWBCD,2006) NT,EKIN,ENP(1),ENP(3),EKIN1,EKIN2
1045 IF(NT.EQ.1) GO TO 9999
1048 IF(NTOT.LT.NSIZE/12) GOTO 43
1053 2002 FORMAT(' *GENXPT* PRODUCTION OF FINAL STATE KINEMATIC AFTER ',I3,
1054 $ ' TRIALS. KINETIC ENERGIES ',2F6.2,' OUT OF ',2F6.2)
1055 2000 FORMAT(' *GENXPT* CMS PARAMETERS OF FINAL STATE PARTICLES,',
1056 $ ' ENERGIES IN INITIAL AND FINAL STATE ',2F6.2)
1057 2001 FORMAT(' *GENXPT* TRACK',2X,I3,2X,10F8.3,2X,I3,2X,F4.0)
1058 2003 FORMAT(' *GENXPT* TETA,EKIN0,EKIN1,EKIN ',4F10.4)
1059 2006 FORMAT(' *GENXPT* COMP.',1X,I5,1X,5F7.2)
1060 3001 FORMAT(' *GENXPT* NUCLEAR EXCITATION',I5,
1061 $ ' PARTICLES PRODUCED IN ADDITION TO ',I5,' NORMAL PARTICLES')
1062 3002 FORMAT(' *GENXPT* AVAILABLE ENERGIES ',2F10.4,
1063 $ ' FOR ',2I3,' PARTICLES IN BEAM/TARGET FRAGM. REGION',
1064 $ ' WITH IPA/SIDE ARRAY '/
1065 $ 1H ,5X,10(I3,2X,F3.0,4X))
1066 3003 FORMAT(' *GENXPT* ',I3,' BLACK TRACK PARTICLES PRODUCED',
1067 $ ' WITH TOTAL KINETIC ENERGY OF ',F8.3,' GEV')
1068 3004 FORMAT(' *GENXPT* ',I5,' HEAVY FRAGMENTS PRODUCED',
1069 $ ' WITH TOTAL ENERGY OF',F8.4,' GEV')