1 c....................art1f.f
2 **************************************
6 * A relativistic transport (ART) model for heavy-ion collisions
9 * calculates K+K- from phi decay, dimuons from phi decay
10 * has finite baryon density & possibilites of varying Kaon
11 * in-medium mass in phiproduction-annhilation channel only.
14 * RELEASING DATE: JAN., 1997
15 ***************************************
17 * Bao-An Li & Che Ming Ko
18 * Cyclotron Institute, Texas A&M University.
19 * Phone: (409) 845-1411
20 * e-mail: Bali@comp.tamu.edu & Ko@comp.tamu.edu
21 * http://wwwcyc.tamu.edu/~bali
22 ***************************************
23 * Speical notice on the limitation of the code:
25 * (1) ART is a hadronic transport model
27 * (2) E_beam/A <= 15 GeV
29 * (3) The mass of the colliding system is limited by the dimensions of arrays
30 * which can be extended purposely. Presently the dimensions are large enough
31 * for running Au+Au at 15 GeV/A.
33 * (4) The production and absorption of antiparticles (e.g., ki-, anti-nucleons,
34 * etc) are not fully included in this version of the model. They, however,
35 * have essentially no effect on the reaction dynamics and observables
36 * related to nucleons, pions and kaons (K+) at and below AGS energies.
38 * (5) Bose enhancement for mesons and Pauli blocking for fermions are
41 *********************************
43 * USEFUL REFERENCES ON PHYSICS AND NUMERICS OF NUCLEAR TRANSPORT MODELS:
44 * G.F. BERTSCH AND DAS GUPTA, PHYS. REP. 160 (1988) 189.
45 * B.A. LI AND W. BAUER, PHYS. REV. C44 (1991) 450.
46 * B.A. LI, W. BAUER AND G.F. BERTSCH, PHYS. REV. C44 (1991) 2095.
47 * P. DANIELEWICZ AND G.F. BERTSCH, NUCL. PHYS. A533 (1991) 712.
49 * MAIN REFERENCES ON THIS VERSION OF ART MODEL:
50 * B.A. LI AND C.M. KO, PHYS. REV. C52 (1995) 2037;
51 * NUCL. PHYS. A601 (1996) 457.
53 **********************************
54 **********************************
55 * VARIABLES IN INPUT-SECTION: *
57 * 1) TARGET-RELATED QUANTITIES *
58 * MASSTA, ZTA - TARGET MASS IN AMU, TARGET CHARGE (INTEGER) *
60 * 2) PROJECTILE-RELATED QUANTITIES *
61 * MASSPR, ZPR - PROJECTILE MASS IN AMU, PROJ. CHARGE(INTEGER) *
62 * ELAB - BEAM ENERGY IN [MEV/NUCLEON] (REAL) *
63 * ZEROPT - DISPLACEMENT OF THE SYSTEM IN Z-DIREC. [FM](REAL) *
64 * B - IMPACT PARAMETER [FM] (REAL) *
66 * 3) PROGRAM-CONTROL PARAMETERS *
67 * ISEED - SEED FOR RANDOM NUMBER GENERATOR (INTEGER) *
68 * DT - TIME-STEP-SIZE [FM/C] (REAL) *
69 * NTMAX - TOTAL NUMBER OF TIMESTEPS (INTEGER) *
70 * ICOLL - (= 1 -> MEAN FIELD ONLY, *
71 * - =-1 -> CACADE ONLY, ELSE FULL ART) (INTEGER) *
72 * NUM - NUMBER OF TESTPARTICLES PER NUCLEON (INTEGER) *
73 * INSYS - (=0 -> LAB-SYSTEM, ELSE C.M. SYSTEM) (INTEGER) *
74 * IPOT - 1 -> SIGMA=2; 2 -> SIGMA=4/3; 3 -> SIGMA=7/6 *
75 * IN MEAN FIELD POTENTIAL (INTEGER) *
76 * MODE - (=1 -> interpolation for pauli-blocking, *
77 * =2 -> local lookup, other -> unblocked)(integer) *
78 * DX,DY,DZ - widths of cell for paulat in coor. sp. [fm](real) *
79 * DPX,DPY,DPZ-widths of cell for paulat in mom. sp.[GeV/c](real) *
80 * IAVOID - (=1 -> AVOID FIRST COLL. WITHIN SAME NUCL. *
81 * =0 -> ALLOW THEM) (INTEGER) *
82 * IMOMEN - FLAG FOR CHOICE OF INITIAL MOMENTUM DISTRIBUTION *
83 * (=1 -> WOODS-SAXON DENSITY AND LOCAL THOMAS-FERMI *
84 * =2 -> NUCLEAR MATTER DEN. AND LOCAL THOMAS-FERMI *
85 * =3 -> COHERENT BOOST IN Z-DIRECTION) (INTEGER) *
86 * 4) CONTROL-PRINTOUT OPTIONS *
87 * NFREQ - NUMBER OF TIMSTEPS AFTER WHICH PRINTOUT *
88 * IS REQUIRED OR ON-LINE ANALYSIS IS PERFORMED *
89 * ICFLOW =1 PERFORM ON-LINE FLOW ANALYSIS EVERY NFREQ STEPS *
90 * ICRHO =1 PRINT OUT THE BARYON,PION AND ENERGY MATRIX IN *
91 * THE REACTION PLANE EVERY NFREQ TIME-STEPS *
93 * CYCBOX - ne.0 => cyclic boundary conditions;boxsize CYCBOX *
95 **********************************
96 * Lables of particles used in this code *
97 **********************************
99 * LB(I) IS USED TO LABEL PARTICLE'S CHARGE STATE
105 * -13 anti-N*(+1)(1535),s_11
106 * -12 anti-N*0(1535),s_11
107 * -11 anti-N*(+1)(1440),p_11
108 * -10 anti-N*0(1440), p_11
130 * 11 N*(+1)(1440),p_11
132 * 13 N*(+1)(1535),s_11
134 * 15 sigma-, since we used isospin averaged xsection for
135 * 16 sigma0 sigma associated K+ production, sigma0 and
136 * 17 sigma+ sigma+ are counted as sigma-
158 * -45 Omega baryon(bar)
161 * 42 Deuteron (same in ampt.dat)
162 * -42 anti-Deuteron (same in ampt.dat)
164 * ++ ------- SEE BAO-AN LI'S NOTE BOOK
165 **********************************
170 **********************************
172 * MAXPAR - MAXIMUM NUMBER OF PARTICLES PROGRAM CAN HANDLE *
173 * MAXP - MAXIMUM NUMBER OF CREATED MESONS PROGRAM CAN HANDLE *
174 * MAXR - MAXIMUM NUMBER OF EVENTS AT EACH IMPACT PARAMETER *
175 * MAXX - NUMBER OF MESHPOINTS IN X AND Y DIRECTION = 2 MAXX + 1 *
176 * MAXZ - NUMBER OF MESHPOINTS IN Z DIRECTION = 2 MAXZ + 1 *
177 * AMU - 1 ATOMIC MASS UNIT "GEV/C**2" *
178 * MX,MY,MZ - MESH SIZES IN COORDINATE SPACE [FM] FOR PAULI LATTICE *
179 * MPX,MPY,MPZ- MESH SIZES IN MOMENTUM SPACE [GEV/C] FOR PAULI LATTICE *
180 *---------------------------------------------------------------------- *
181 clin PARAMETER (maxpar=200000,MAXR=50,AMU= 0.9383,
182 PARAMETER (MAXSTR=150001,MAXR=1,AMU= 0.9383,
183 1 AKA=0.498,etaM=0.5475)
184 PARAMETER (MAXX = 20, MAXZ = 24)
185 PARAMETER (ISUM = 1001, IGAM = 1100)
186 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
187 clin PARAMETER (MAXP = 14000)
188 *----------------------------------------------------------------------*
189 INTEGER OUTPAR, zta,zpr
190 COMMON /AA/ R(3,MAXSTR)
192 COMMON /BB/ P(3,MAXSTR)
194 COMMON /CC/ E(MAXSTR)
196 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
197 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
198 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
200 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
202 COMMON /HH/ PROPER(MAXSTR)
204 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
206 common /gg/ dx,dy,dz,dpx,dpy,dpz
208 COMMON /INPUT/ NSTAR,NDIRCT,DIR
210 COMMON /PP/ PRHO(-20:20,-24:24)
211 COMMON /QQ/ PHRHO(-MAXZ:MAXZ,-24:24)
212 COMMON /RR/ MASSR(0:MAXR)
214 common /ss/ inout(20)
221 c COMMON /KKK/ TKAON(7),EKAON(7,0:200)
222 COMMON /KKK/ TKAON(7),EKAON(7,0:2000)
224 COMMON /KAON/ AK(3,50,36),SPECK(50,36,7),MF
226 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
228 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
230 COMMON /DDpi/ piRHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
232 common /tt/ PEL(-maxx:maxx,-maxx:maxx,-maxz:maxz)
233 &,rxy(-maxx:maxx,-maxx:maxx,-maxz:maxz)
236 c DIMENSION TEMP(3,MAXSTR),SKAON(7),SEKAON(7,0:200)
237 DIMENSION TEMP(3,MAXSTR),SKAON(7),SEKAON(7,0:2000)
239 COMMON /INPUT2/ ILAB, MANYB, NTMAX, ICOLL, INSYS, IPOT, MODE,
240 & IMOMEN, NFREQ, ICFLOW, ICRHO, ICOU, KPOTEN, KMUL
242 COMMON /INPUT3/ PLAB, ELAB, ZEROPT, B0, BI, BM, DENCUT, CYCBOX
246 COMMON /ARPRNT/ ARPAR1(100), IAPAR2(50), ARINT1(100), IAINT2(50)
249 c.....note in the below, since a common block in ART is called EE,
250 c.....the variable EE in /ARPRC/is changed to PEAR.
251 clin-9/29/03 changed name in order to distinguish from /prec2/
252 c COMMON /ARPRC/ ITYPAR(MAXSTR),
253 c & GXAR(MAXSTR), GYAR(MAXSTR), GZAR(MAXSTR), FTAR(MAXSTR),
254 c & PXAR(MAXSTR), PYAR(MAXSTR), PZAR(MAXSTR), PEAR(MAXSTR),
258 COMMON /ARERCP/PRO1(MAXSTR, MAXR)
260 COMMON /ARERC1/MULTI1(MAXR)
262 COMMON /ARPRC1/ITYP1(MAXSTR, MAXR),
263 & GX1(MAXSTR, MAXR), GY1(MAXSTR, MAXR), GZ1(MAXSTR, MAXR),
265 & PX1(MAXSTR, MAXR), PY1(MAXSTR, MAXR), PZ1(MAXSTR, MAXR),
266 & EE1(MAXSTR, MAXR), XM1(MAXSTR, MAXR)
270 DIMENSION RT(3, MAXSTR, MAXR), PT(3, MAXSTR, MAXR)
271 & , ET(MAXSTR, MAXR), LT(MAXSTR, MAXR), PROT(MAXSTR, MAXR)
273 EXTERNAL IARFLV, INVFLV
275 common /lastt/itimeh,bimp
277 common/snn/efrm,npart1,npart2
279 COMMON/hbt/lblast(MAXSTR),xlast(4,MAXSTR),plast(4,MAXSTR),nlast
281 common/resdcy/NSAV,iksdcy
285 COMMON/FTMAX/ftsv(MAXSTR),ftsvt(MAXSTR, MAXR)
286 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
287 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
288 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
289 COMMON/HPARNT/HIPR1(100),IHPR2(50),HINT1(100),IHNT2(50)
290 clin-4/2008 zet() expanded to avoid out-of-bound errors:
295 3 1.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
296 2 -1.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
297 1 0.,0.,0.,-1.,0.,1.,0.,-1.,0.,-1.,
298 s 0.,-2.,-1.,0.,1.,0.,0.,0.,0.,-1.,
300 s 1.,0.,-1.,0.,1.,-1.,0.,1.,2.,0.,
301 1 1.,0.,1.,0.,-1.,0.,1.,0.,0.,0.,
302 2 -1.,0.,1.,0.,-1.,0.,1.,0.,0.,1.,
303 3 0.,0.,0.,0.,0.,0.,0.,0.,0.,-1.,
314 clin-4/2008 bugs pointed out by Vander Molen & Westfall:
322 *-------------------------------------------------------------------*
323 * Input information about the reaction system and contral parameters*
324 *-------------------------------------------------------------------*
325 * input section starts here *
326 *-------------------------------------------------------------------*
329 c.....input section is moved to subroutine ARTSET
332 *-----------------------------------------------------------------------*
333 * input section ends here *
334 *-----------------------------------------------------------------------*
335 * read in the table for gengrating the transverse momentum
336 * IN THE NN-->DDP PROCESS
338 * several control parameters, keep them fixed in this code.
346 *----------------------------------------------------------------------*
347 c CALL FRONT(12,MASSTA,MASSPR,ELAB)
348 *----------------------------------------------------------------------*
349 RADTA = 1.124 * FLOAT(MASSTA)**(1./3.)
350 RADPR = 1.124 * FLOAT(MASSPR)**(1./3.)
351 ZDIST = RADTA + RADPR
352 c if ( cycbox.ne.0 ) zdist=0
354 MASS = MASSTA + MASSPR
357 IF (NTOTAL .GT. MAXSTR) THEN
358 WRITE(12,'(//10X,''**** FATAL ERROR: TOO MANY TEST PART. ****'//
363 *-----------------------------------------------------------------------
364 * RELATIVISTIC KINEMATICS
368 ETA = FLOAT(MASSTA) * AMU
373 EPR = FLOAT(MASSPR) * (AMU + 0.001 * ELAB)
374 PZPR = SQRT( EPR**2 - (AMU * FLOAT(MASSPR))**2 )
376 GAMMPR = 1.0 / SQRT( 1.0 - BETAPR**2 )
378 * BETAC AND GAMMAC OF THE C.M. OBSERVED IN THE LAB. FRAME
379 BETAC=(PZPR+PZTA)/(EPR+ETA)
380 GAMMC=1.0 / SQRT(1.-BETAC**2)
382 c WRITE(12,'(/10x,''**** KINEMATICAL PARAMETERS ****''/)')
383 c WRITE(12,'(10x,''1) LAB-FRAME: TARGET PROJECTILE'')')
384 c WRITE(12,'(10x,'' ETOTAL "GEV" '',2F11.4)') ETA, EPR
385 c WRITE(12,'(10x,'' P "GEV/C" '',2F11.4)') PZTA, PZPR
386 c WRITE(12,'(10x,'' BETA '',2F11.4)') BETATA, BETAPR
387 c WRITE(12,'(10x,'' GAMMA '',2F11.4)') GAMMTA, GAMMPR
388 IF (INSYS .NE. 0) THEN
392 S = (EPR+ETA)**2 - PZPR**2
393 xx1=4.*alog(float(massta))
394 xx2=4.*alog(float(masspr))
397 PSQARE = (S**2 + (xx1+ xx2) * AMU**4
398 & - 2.0 * S * AMU**2 * FLOAT(MASSTA**2 + MASSPR**2)
399 & - 2.0 * FLOAT(MASSTA**2 * MASSPR**2) * AMU**4)
402 ETA = SQRT ( PSQARE + (FLOAT(MASSTA) * AMU)**2 )
403 PZTA = - SQRT(PSQARE)
405 GAMMTA = 1.0 / SQRT( 1.0 - BETATA**2 )
407 EPR = SQRT ( PSQARE + (FLOAT(MASSPR) * AMU)**2 )
410 GAMMPR = 1.0 / SQRT( 1.0 - BETAPR**2 )
412 c WRITE(12,'(10x,''2) C.M.-FRAME: '')')
413 c WRITE(12,'(10x,'' ETOTAL "GEV" '',2F11.4)') ETA, EPR
414 c WRITE(12,'(10x,'' P "GEV/C" '',2F11.4)') PZTA, PZPR
415 c WRITE(12,'(10x,'' BETA '',2F11.4)') BETATA, BETAPR
416 c WRITE(12,'(10x,'' GAMMA '',2F11.4)') GAMMTA, GAMMPR
417 c WRITE(12,'(10x,''S "GEV**2" '',F11.4)') S
418 c WRITE(12,'(10x,''PSQARE "GEV/C"2 '',E14.3)') PSQARE
419 c WRITE(12,'(/10x,''*** CALCULATION DONE IN CM-FRAME ***''/)')
421 c WRITE(12,'(/10x,''*** CALCULATION DONE IN LAB-FRAME ***''/)')
423 * MOMENTUM PER PARTICLE
424 PZTA = PZTA / FLOAT(MASSTA)
425 PZPR = PZPR / FLOAT(MASSPR)
426 * total initial energy in the N-N cms frame
428 *-----------------------------------------------------------------------
430 * Start loop over many runs of different impact parameters
431 * IF MANYB=1, RUN AT A FIXED IMPACT PARAMETER B0, OTHERWISE GENERATE
432 * MINIMUM BIAS EVENTS WITHIN THE IMPACT PARAMETER RANGE OF B_MIN AND B_MAX
433 DO 50000 IMANY=1,MANYB
434 *------------------------------------------------------------------------
435 * Initialize the impact parameter B
436 if (manyb. gt.1) then
437 111 BX=1.0-2.0*RANART(NSEED)
438 BY=1.0-2.0*RANART(NSEED)
440 IF(B2.GT.1.0) GO TO 111
441 B=SQRT(B2)*(BM-BI)+BI
445 c WRITE(12,'(///10X,''RUN NUMBER:'',I6)') IMANY
446 c WRITE(12,'(//10X,''IMPACT PARAMETER B FOR THIS RUN:'',
447 c & F9.3,'' FM''/10X,49(''*'')/)') B
449 *-----------------------------------------------------------------------
451 *1 INITIALIZATION IN ISOSPIN SPACE FOR BOTH THE PROJECTILE AND TARGET
452 call coulin(masspr,massta,NUM)
453 *2 INITIALIZATION IN PHASE SPACE FOR THE TARGET
454 CALL INIT(1 ,MASSTA ,NUM ,RADTA,
455 & B/2. ,ZEROPT+ZDIST/2. ,PZTA,
456 & GAMMTA ,ISEED ,MASS ,IMOMEN)
457 *3.1 INITIALIZATION IN PHASE SPACE FOR THE PROJECTILE
458 CALL INIT(1+MASSTA,MASS ,NUM ,RADPR,
459 & -B/2. ,ZEROPT-ZDIST/2. ,PZPR,
460 & GAMMPR ,ISEED ,MASS ,IMOMEN)
461 *3.2 OUTPAR IS THE NO. OF ESCAPED PARTICLES
463 *3.3 INITIALIZATION FOR THE NO. OF PARTICLES IN EACH SAMPLE
464 * THIS IS NEEDED DUE TO THE FACT THAT PIONS CAN BE PRODUCED OR ABSORBED
469 *3.4 INITIALIZation FOR THE KAON SPECTRUM
470 * CALL KSPEC0(BETAC,GAMMC)
471 * calculate the local baryon density matrix
472 CALL DENS(IPOT,MASS,NUM,OUTPAR)
474 *-----------------------------------------------------------------------
475 * CONTROL PRINTOUT OF INITIAL CONFIGURATION
477 * WRITE(12,'(''********** INITIAL CONFIGURATION **********''/)')
479 c print out the INITIAL density matrix in the reaction plane
482 c write(1053,992)ix,iz,rho(ix,0,iz)/0.168
485 *-----------------------------------------------------------------------
486 * CALCULATE MOMENTA FOR T = 0.5 * DT
487 * (TO OBTAIN 2ND DEGREE ACCURACY!)
488 * "Reference: J. AICHELIN ET AL., PHYS. REV. C31, 1730 (1985)"
490 IF (ICOLL .NE. -1) THEN
495 clin-4/2008 check bounds:
496 IF(IX.GE.MAXX.OR.IY.GE.MAXX.OR.IZ.GE.MAXZ
497 1 .OR.IX.LE.-MAXX.OR.IY.LE.-MAXX.OR.IZ.LE.-MAXZ) goto 700
498 CALL GRADU(IPOT,IX,IY,IZ,GRADX,GRADY,GRADZ)
499 P(1,I) = P(1,I) - (0.5 * DT) * GRADX
500 P(2,I) = P(2,I) - (0.5 * DT) * GRADY
501 P(3,I) = P(3,I) - (0.5 * DT) * GRADZ
504 *-----------------------------------------------------------------------
505 *-----------------------------------------------------------------------
506 *4 INITIALIZATION OF TIME-LOOP VARIABLES
507 *4.1 COLLISION NUMBER COUNTERS
526 *4.11 KAON PRODUCTION PROBABILITY COUNTER FOR PERTURBATIVE CALCULATIONS ONLY
533 *4.12 anti-proton and anti-kaon counters
538 * ============== LOOP OVER ALL TIME STEPS ================ *
540 * ======================================================== *
542 IF (IAPAR2(1) .NE. 1) THEN
543 DO 1016 I = 1, MAXSTR
566 DO 1018 J = 1, MAXSTR
583 DO 10000 NT = 1,NTMAX
585 *TEMPORARY PARTICLE COUNTERS
586 *4.2 PION COUNTERS : LP1,LP2 AND LP3 ARE THE NO. OF P+,P0 AND P-
590 *4.3 DELTA COUNTERS : LD1,LD2,LD3 AND LD4 ARE THE NO. OF D++,D+,D0 AND D-
595 *4.4 N*(1440) COUNTERS : LN1 AND LN2 ARE THE NO. OF N*+ AND N*0
598 *4.5 N*(1535) counters
609 *-----------------------------------------------------------------------
610 IF (ICOLL .NE. 1) THEN
611 * STUDYING BINARY COLLISIONS AMONG PARTICLES DURING THIS TIME INTERVAL *
612 clin-10/25/02 get rid of argument usage mismatch in relcol(.nt.):
614 CALL RELCOL(LCOLL,LBLOC,LCNNE,LDD,LPP,lppk,
615 & LPN,lpd,LRHO,LOMEGA,LKN,LNNK,LDDK,LNDK,LCNND,
616 & LCNDN,LDIRT,LDECAY,LRES,LDOU,LDDRHO,LNNRHO,
617 & LNNOM,numnt,ntmax,sp,akaon,sk)
618 c & LNNOM,NT,ntmax,sp,akaon,sk)
620 *-----------------------------------------------------------------------
622 c dilepton production from Dalitz decay
623 c of pi0 at final time
624 * if(nt .eq. ntmax) call dalitz_pi(nt,ntmax)
626 **********************************
627 * Lables of collision channels *
628 **********************************
629 * LCOLL - NUMBER OF COLLISIONS (INTEGER,OUTPUT) *
630 * LBLOC - NUMBER OF PULI-BLOCKED COLLISIONS (INTEGER,OUTPUT) *
631 * LCNNE - NUMBER OF ELASTIC COLLISION (INTEGER,OUTPUT) *
632 * LCNND - NUMBER OF N+N->N+DELTA REACTION (INTEGER,OUTPUT) *
633 * LCNDN - NUMBER OF N+DELTA->N+N REACTION (INTEGER,OUTPUT) *
634 * LDD - NUMBER OF RESONANCE+RESONANCE COLLISIONS
635 * LPP - NUMBER OF PION+PION elastic COLIISIONS
636 * lppk - number of pion(RHO,OMEGA)+pion(RHO,OMEGA)
638 * LPN - NUMBER OF PION+N-->KAON+X
639 * lpd - number of pion+n-->delta+pion
640 * lrho - number of pion+n-->Delta+rho
641 * lomega - number of pion+n-->Delta+omega
642 * LKN - NUMBER OF KAON RESCATTERINGS
643 * LNNK - NUMBER OF bb-->kAON PROCESS
644 * LDDK - NUMBER OF DD-->KAON PROCESS
645 * LNDK - NUMBER OF ND-->KAON PROCESS
646 ***********************************
647 * TIME-INTEGRATED COLLISIONS NUMBERS OF VARIOUS PROCESSES
648 RCOLL = RCOLL + FLOAT(LCOLL)/num
649 RBLOC = RBLOC + FLOAT(LBLOC)/num
650 RCNNE = RCNNE + FLOAT(LCNNE)/num
651 RDD = RDD + FLOAT(LDD)/num
652 RPP = RPP + FLOAT(LPP)/NUM
653 rppk =rppk + float(lppk)/num
654 RPN = RPN + FLOAT(LPN)/NUM
655 rpd =rpd + float(lpd)/num
656 RKN = RKN + FLOAT(LKN)/NUM
657 RNNK =RNNK + FLOAT(LNNK)/NUM
658 RDDK =RDDK + FLOAT(LDDK)/NUM
659 RNDK =RNDK + FLOAT(LNDK)/NUM
660 RCNND = RCNND + FLOAT(LCNND)/num
661 RCNDN = RCNDN + FLOAT(LCNDN)/num
662 RDIRT = RDIRT + FLOAT(LDIRT)/num
663 RDECAY= RDECAY+ FLOAT(LDECAY)/num
664 RRES = RRES + FLOAT(LRES)/num
665 * AVERAGE RATES OF VARIOUS COLLISIONS IN THE CURRENT TIME STEP
667 ACOLL=(LCOLL-LBLOC)/DT/num
687 * PRINT OUT THE VARIOUS COLLISION RATES
689 c WRITE(1010,9991)NT*DT,ACNND,ADOU,ADIRT,ADDRHO,ANNRHO+ANNOM
690 c9991 FORMAT(6(E10.3,2X))
691 * (2)PION-N COLLISIONS
692 c WRITE(1011,'(5(E10.3,2X))')NT*DT,apd,ARH,AOM,APN
693 * (3)KAON PRODUCTION CHANNELS
694 c WRITE(1012,9993)NT*DT,ANNK,ADDK,ANDK,APN,Appk
695 * (4)D(N*)+D(N*) COLLISION
696 c WRITE(1013,'(4(E10.3,2X))')NT*DT,ADDK,ADD,ADD+ADDK
698 c WRITE(1014,'(4(E10.3,2X))')NT*DT,APPK,APP,APP+APPK
699 * (6)DECAY AND RESONANCE
700 c WRITE(1016,'(3(E10.3,2X))')NT*DT,ARES,ADECAY
702 c WRITE(1017,'(4(E10.3,2X))')NT*DT,ACNDN,ANDK,ACNDN+ANDK
703 c9992 FORMAT(5(E10.3,2X))
704 c9993 FORMAT(6(E10.3,2X))
705 * PRINT OUT TIME-INTEGRATED COLLISION INFORMATION
707 c write(1018,'(5(e10.3,2x),/, 4(e10.3,2x))')
708 c & RCNNE,RCNND,RCNDN,RDIRT,rpd,
709 c & RDECAY,RRES,RDD,RPP
710 c write(1018,'(6(e10.3,2x),/, 5(e10.3,2x))')
711 c & NT*DT,RCNNE,RCNND,RCNDN,RDIRT,rpd,
712 c & NT*DT,RDECAY,RRES,RDD,RPP
714 * PRINT OUT TIME-INTEGRATED KAON MULTIPLICITIES FROM DIFFERENT CHANNELS
715 c WRITE(1019,'(7(E10.3,2X))')NT*DT,RNNK,RDDK,RNDK,RPN,Rppk,
716 c & RNNK+RDDK+RNDK+RPN+Rppk
721 * UPDATE BARYON DENSITY
723 CALL DENS(IPOT,MASS,NUM,OUTPAR)
725 * UPDATE POSITIONS FOR ALL THE PARTICLES PRESENT AT THIS TIME
730 ISO=ISO+MASSR(MRUN-1)
731 DO 201 I0=1,MASSR(MRUN)
733 ETOTAL = SQRT( E(I)**2 + P(1,I)**2 + P(2,I)**2 +P(3,I)**2 )
735 C for kaons, if there is a potential
736 C CALCULATE THE ENERGY OF THE KAON ACCORDING TO THE IMPULSE APPROXIMATION
737 C REFERENCE: B.A. LI AND C.M. KO, PHYS. REV. C 54 (1996) 3283.
738 if(kpoten.ne.0.and.lb(i).eq.23)then
744 c IF (ABS(IX) .LT. MAXX .AND. ABS(IY) .LT. MAXX .AND.
745 c & ABS(IZ) .LT. MAXZ) den=rho(ix,iy,iz)
746 IF(IX.LT.MAXX.AND.IY.LT.MAXX.AND.IZ.LT.MAXZ
747 1 .AND.IX.GT.-MAXX.AND.IY.GT.-MAXX.AND.IZ.GT.-MAXZ)
749 c ecor=0.1973**2*0.255*kmul*4*3.14159*(1.+0.4396/0.938)
750 c etotal=sqrt(etotal**2+ecor*den)
751 c** G.Q Li potential form with n_s = n_b and pot(n_0)=29 MeV, m^*=m
757 ecor = - akg*rnsg + (bkg*den)**2
758 etotal = sqrt(etotal**2 + ecor)
761 if(kpoten.ne.0.and.lb(i).eq.21)then
767 c IF (ABS(IX) .LT. MAXX .AND. ABS(IY) .LT. MAXX .AND.
768 c & ABS(IZ) .LT. MAXZ) den=rho(ix,iy,iz)
769 IF(IX.LT.MAXX.AND.IY.LT.MAXX.AND.IZ.LT.MAXZ
770 1 .AND.IX.GT.-MAXX.AND.IY.GT.-MAXX.AND.IZ.GT.-MAXZ)
772 c* for song potential no effect on position
773 c** G.Q Li potential form with n_s = n_b and pot(n_0)=29 MeV, m^*=m
779 ecor = - akg*rnsg + (bkg*den)**2
780 etotal = sqrt(etotal**2 + ecor)
784 R(1,I) = R(1,I) + DT*P(1,I)/ETOTAL
785 R(2,I) = R(2,I) + DT*P(2,I)/ETOTAL
786 R(3,I) = R(3,I) + DT*P(3,I)/ETOTAL
787 c use cyclic boundary conitions
788 if ( cycbox.ne.0 ) then
789 if ( r(1,i).gt. cycbox/2 ) r(1,i)=r(1,i)-cycbox
790 if ( r(1,i).le.-cycbox/2 ) r(1,i)=r(1,i)+cycbox
791 if ( r(2,i).gt. cycbox/2 ) r(2,i)=r(2,i)-cycbox
792 if ( r(2,i).le.-cycbox/2 ) r(2,i)=r(2,i)+cycbox
793 if ( r(3,i).gt. cycbox/2 ) r(3,i)=r(3,i)-cycbox
794 if ( r(3,i).le.-cycbox/2 ) r(3,i)=r(3,i)+cycbox
796 * UPDATE THE DELTA, N* AND PION COUNTERS
799 IF(LB1.EQ.9)LD1=LD1+1
801 IF(LB1.EQ.8)LD2=LD2+1
803 IF(LB1.EQ.7)LD3=LD3+1
805 IF(LB1.EQ.6)LD4=LD4+1
807 IF(LB1.EQ.11)LN1=LN1+1
809 IF(LB1.EQ.10)LN2=LN2+1
811 IF((LB1.EQ.13).OR.(LB1.EQ.12))LN5=LN5+1
815 IF(LB1.EQ.23)LKAON=LKAON+1
816 clin-11/09/00: FOR KAON*
817 IF(LB1.EQ.30)LKAONS=LKAONS+1
819 * UPDATE PION COUNTER
821 IF(LB1.EQ.5)LP1=LP1+1
823 IF(LB1.EQ.4)LP2=LP2+1
825 IF(LB1.EQ.3)LP3=LP3+1
830 ALP=FLOAT(LP)/FLOAT(NUM)
831 ALD=FLOAT(LD)/FLOAT(NUM)
832 ALN=FLOAT(LN)/FLOAT(NUM)
833 ALN5=FLOAT(LN5)/FLOAT(NUM)
834 ATOTAL=ALP+ALD+ALN+0.5*ALN5
835 ALE=FLOAT(LE)/FLOAT(NUM)
836 ALKAON=FLOAT(LKAON)/FLOAT(NUM)
837 * UPDATE MOMENTUM DUE TO COULOMB INTERACTION
838 if (icou .eq. 1) then
839 * with Coulomb interaction
842 iso=iso+massr(irun-1)
843 do 1021 il = 1,massr(irun)
848 do 1023 il = 1, massr(irun)
850 if (zet(lb(i)).ne.0) then
853 if (zet(lb(j)).ne.0) then
857 rdiff = sqrt(ddx**2+ddy**2+ddz**2)
858 if (rdiff .le. 1.) rdiff = 1.
859 grp=zet(lb(i))*zet(lb(j))/rdiff**3
863 temp(1,il)=temp(1,il)+ddx
864 temp(2,il)=temp(2,il)+ddy
865 temp(3,il)=temp(3,il)+ddz
866 temp(1,jl)=temp(1,jl)-ddx
867 temp(2,jl)=temp(2,jl)-ddy
868 temp(3,jl)=temp(3,jl)-ddz
873 do 1025 il = 1,massr(irun)
875 if (zet(lb(i)).ne.0) then
877 p(idir,i) = p(idir,i) + temp(idir,il)
884 * In the following, we shall:
885 * (1) UPDATE MOMENTA DUE TO THE MEAN FIELD FOR BARYONS AND KAONS,
886 * (2) calculate the thermalization, temperature in a sphere of
887 * radius 2.0 fm AROUND THE CM
888 * (3) AND CALCULATE THE NUMBER OF PARTICLES IN THE HIGH DENSITY REGION
904 MEAN=MEAN+MASSR(IRUN-1)
905 DO 5800 J = 1,MASSR(irun)
909 radut = sqrt(r(1,i)**2+r(2,i)**2)
910 if( radut .le. rads )then
911 if( abs(r(3,i)) .le. zras*nt*dt )then
912 c vols = 3.14159*radut**2*abs(r(3,i)) ! cylinder pi*r^2*l
914 vols = 3.14159*rads**2*zras
915 engs=sqrt(p(1,i)**2+p(2,i)**2+p(3,i)**2+e(i)**2)
917 if(e(i).ne.0.)gammas=engs/e(i)
919 denst = denst + 1./gammas/vols
921 edenst = edenst + engs/gammas/gammas/vols
926 drr=sqrt(r(1,i)**2+r(2,i)**2+r(3,i)**2)
928 spt=spt+p(1,i)**2+p(2,i)**2
931 ekin=ekin+sqrt(p(1,i)**2+p(2,i)**2+p(3,i)**2+e(i)**2)-e(i)
936 C calculate the No. of particles in the high density region
938 c IF (ABS(IX) .LT. MAXX .AND. ABS(IY) .LT. MAXX .AND.
939 c & ABS(IZ) .LT. MAXZ) THEN
940 IF(IX.LT.MAXX.AND.IY.LT.MAXX.AND.IZ.LT.MAXZ
941 1 .AND.IX.GT.-MAXX.AND.IY.GT.-MAXX.AND.IZ.GT.-MAXZ) THEN
942 if(rho(ix,iy,iz)/0.168.gt.dencut)go to 5800
943 if((rho(ix,iy,iz)/0.168.gt.5.).and.(e(i).gt.0.9))
945 if(pel(ix,iy,iz).gt.2.0)nquark=nquark+1
948 c If there is a kaon potential, propogating kaons
949 if(kpoten.ne.0.and.lb(i).eq.23)then
952 c IF (ABS(IX) .LT. MAXX .AND. ABS(IY) .LT. MAXX .AND.
953 c & ABS(IZ) .LT. MAXZ)then
954 IF(IX.LT.MAXX.AND.IY.LT.MAXX.AND.IZ.LT.MAXZ
955 1 .AND.IX.GT.-MAXX.AND.IY.GT.-MAXX.AND.IZ.GT.-MAXZ) THEN
957 c ecor=0.1973**2*0.255*kmul*4*3.14159*(1.+0.4396/0.938)
958 c etotal=sqrt(P(1,i)**2+p(2,I)**2+p(3,i)**2+e(i)**2+ecor*den)
959 c** for G.Q Li potential form with n_s = n_b and pot(n_0)=29 MeV
965 ecor = - akg*rnsg + (bkg*den)**2
966 etotal = sqrt(P(1,i)**2+p(2,I)**2+p(3,i)**2+e(i)**2 + ecor)
967 ecor = - akg + 2.*bkg**2*den + 2.*bkg*etotal
968 c** G.Q. Li potential (END)
969 CALL GRADUK(IX,IY,IZ,GRADXk,GRADYk,GRADZk)
970 P(1,I) = P(1,I) - DT * GRADXk*ecor/(2.*etotal)
971 P(2,I) = P(2,I) - DT * GRADYk*ecor/(2.*etotal)
972 P(3,I) = P(3,I) - DT * GRADZk*ecor/(2.*etotal)
976 if(kpoten.ne.0.and.lb(i).eq.21)then
979 c IF (ABS(IX) .LT. MAXX .AND. ABS(IY) .LT. MAXX .AND.
980 c & ABS(IZ) .LT. MAXZ)then
981 IF(IX.LT.MAXX.AND.IY.LT.MAXX.AND.IZ.LT.MAXZ
982 1 .AND.IX.GT.-MAXX.AND.IY.GT.-MAXX.AND.IZ.GT.-MAXZ) THEN
984 CALL GRADUK(IX,IY,IZ,GRADXk,GRADYk,GRADZk)
985 c P(1,I) = P(1,I) - DT * GRADXk*(-0.12/0.168) !! song potential
986 c P(2,I) = P(2,I) - DT * GRADYk*(-0.12/0.168)
987 c P(3,I) = P(3,I) - DT * GRADZk*(-0.12/0.168)
988 c** for G.Q Li potential form with n_s = n_b and pot(n_0)=29 MeV
994 ecor = - akg*rnsg + (bkg*den)**2
995 etotal = sqrt(P(1,i)**2+p(2,I)**2+p(3,i)**2+e(i)**2 + ecor)
996 ecor = - akg + 2.*bkg**2*den - 2.*bkg*etotal
997 P(1,I) = P(1,I) - DT * GRADXk*ecor/(2.*etotal)
998 P(2,I) = P(2,I) - DT * GRADYk*ecor/(2.*etotal)
999 P(3,I) = P(3,I) - DT * GRADZk*ecor/(2.*etotal)
1000 c** G.Q. Li potential (END)
1004 c for other mesons, there is no potential
1005 if(j.gt.mass)go to 5800
1006 c with mean field interaction for baryons (open endif below) !!sp05
1007 ** if( (iabs(lb(i)).eq.1.or.iabs(lb(i)).eq.2) .or.
1008 ** & (iabs(lb(i)).ge.6.and.iabs(lb(i)).le.17) .or.
1009 ** & iabs(lb(i)).eq.40.or.iabs(lb(i)).eq.41 )then
1010 IF (ICOLL .NE. -1) THEN
1011 * check if the baryon has run off the lattice
1012 * IX0=NINT(R(1,I)/DX)
1013 * IY0=NINT(R(2,I)/DY)
1014 * IZ0=NINT(R(3,I)/DZ)
1015 * IPX0=NINT(P(1,I)/DPX)
1016 * IPY0=NINT(P(2,I)/DPY)
1017 * IPZ0=NINT(P(3,I)/DPZ)
1018 * if ( (abs(ix0).gt.mx) .or. (abs(iy0).gt.my) .or. (abs(iz0).gt.mz)
1019 * & .or. (abs(ipx0).gt.mpx) .or. (abs(ipy0)
1020 * & .or. (ipz0.lt.-mpz) .or. (ipz0.gt.mpzp)) NLOST=NLOST+1
1022 c IF (ABS(IX) .LT. MAXX .AND. ABS(IY) .LT. MAXX .AND.
1023 c & ABS(IZ) .LT. MAXZ ) THEN
1024 IF(IX.LT.MAXX.AND.IY.LT.MAXX.AND.IZ.LT.MAXZ
1025 1 .AND.IX.GT.-MAXX.AND.IY.GT.-MAXX.AND.IZ.GT.-MAXZ) THEN
1026 CALL GRADU(IPOT,IX,IY,IZ,GRADX,GRADY,GRADZ)
1035 CALL GRADUP(IX,IY,IZ,GRADXP,GRADYP,GRADZP)
1036 CALL GRADUN(IX,IY,IZ,GRADXN,GRADYN,GRADZN)
1037 IF(ZET(LB(I)).NE.0)TZ=-1
1038 IF(ZET(LB(I)).EQ.0)TZ= 1
1040 if(iabs(lb(i)).ge.14.and.iabs(lb(i)).le.17)then
1042 elseif(iabs(lb(i)).eq.40.or.iabs(lb(i)).eq.41)then
1047 P(1,I) = P(1,I) - facl*DT * (GRADX+asy*(GRADXN-GRADXP)*TZ)
1048 P(2,I) = P(2,I) - facl*DT * (GRADY+asy*(GRADYN-GRADYP)*TZ)
1049 P(3,I) = P(3,I) - facl*DT * (GRADZ+asy*(GRADZN-GRADZP)*TZ)
1055 c print out the average no. of particles in regions where the local
1056 c baryon density is higher than 5*rho0
1057 c write(1072,'(e10.3,2x,e10.3)')nt*dt,float(nbaryn)/float(num)
1058 C print out the average no. of particles in regions where the local
1059 c energy density is higher than 2 GeV/fm^3.
1060 c write(1073,'(e10.3,2x,e10.3)')nt*dt,float(nquark)/float(num)
1061 c print out the no. of particles that have run off the lattice
1062 * IF (NLOST .NE. 0 .AND. (NT/NFREQ)*NFREQ .EQ. NT) THEN
1063 * WRITE(12,'(5X,''***'',I7,'' TESTPARTICLES LOST AFTER '',
1064 * & ''TIME STEP NUMBER'',I4)') NLOST, NT
1067 * update phase space density
1068 * call platin(mode,mass,num,dx,dy,dz,dpx,dpy,dpz,fnorm)
1070 * CONTROL-PRINTOUT OF CONFIGURATION (IF REQUIRED)
1072 * if (inout(5) .eq. 2) CALL ENERGY(NT,IPOT,NUM,MASS,EMIN,EMAX)
1075 * print out central baryon density as a function of time
1076 CDEN=RHO(0,0,0)/0.168
1077 cc WRITE(1002,990)FLOAT(NT)*DT,CDEN
1078 c WRITE(1002,1990)FLOAT(NT)*DT,CDEN,denst/real(num)
1079 * print out the central energy density as a function of time
1080 cc WRITE(1003,990)FLOAT(NT)*DT,PEL(0,0,0)
1081 c WRITE(1003,1990)FLOAT(NT)*DT,PEL(0,0,0),edenst/real(num)
1082 * print out the no. of pion-like particles as a function of time
1083 c WRITE(1004,9999)FLOAT(NT)*DT,ALD,ALN,ALP,ALN5,
1084 c & ALD+ALN+ALP+0.5*ALN5
1085 * print out the no. of eta-like particles as a function of time
1086 c WRITE(1005,991)FLOAT(NT)*DT,ALN5,ALE,ALE+0.5*ALN5
1087 c990 FORMAT(E10.3,2X,E10.3)
1088 c1990 FORMAT(E10.3,2X,E10.3,2X,E10.3)
1089 c991 FORMAT(E10.3,2X,E10.3,2X,E10.3,2X,E10.3)
1090 c9999 FORMAT(e10.3,2X,e10.3,2X,E10.3,2X,E10.3,2X,
1092 C THE FOLLOWING OUTPUTS CAN BE TURNED ON/OFF by setting icflow and icrho=0
1093 c print out the baryon and meson density matrix in the reaction plane
1094 IF ((NT/NFREQ)*NFREQ .EQ. NT ) THEN
1095 if(icflow.eq.1)call flow(nt)
1097 c if(icrho.ne.1)go to 10000
1098 c if (icrho .eq. 1) then
1102 c write(1053,992)ix,iz,rho(ix,0,iz)/0.168
1103 c write(1054,992)ix,iz,pirho(ix,0,iz)/0.168
1104 c write(1055,992)ix,iz,pel(ix,0,iz)
1110 c992 format(i3,i3,e11.4)
1112 c print out the ENERGY density matrix in the reaction plane
1113 C CHECK LOCAL MOMENTUM EQUILIBRIUM IN EACH CELL,
1114 C AND PERFORM ON-LINE FLOW ANALYSIS AT A FREQUENCY OF NFREQ
1115 c IF ((NT/NFREQ)*NFREQ .EQ. NT ) THEN
1117 c call equ(ipot,mass,num,outpar)
1120 c write(1055,992)ix,iz,pel(ix,0,iz)
1121 c write(1056,992)ix,iz,rxy(ix,0,iz)
1125 C calculate the volume of high BARYON AND ENERGY density
1126 C matter as a function of time
1132 c if(rho(ix,iy,iz)/0.168.gt.5.)vbrho=vbrho+1.
1133 c if(pel(ix,iy,iz).gt.2.)verho=verho+1.
1137 c write(1081,993)dt*nt,vbrho
1138 c write(1082,993)dt*nt,verho
1139 c993 format(e11.4,2x,e11.4)
1140 *-----------------------------------------------------------------------
1142 c.....for read-in initial conditions produce particles from read-in
1144 c.....note that this part is only for cascade with number of test particles
1146 IF (IAPAR2(1) .NE. 1) THEN
1150 c DO WHILE (FTAR(NPI) .GT. CT - DT .AND. FTAR(NPI) .LE. CT)
1152 c R(1, NP) = GXAR(NPI) + PXAR(NPI) / PEAR(NPI) * (CT - FTAR(NPI))
1153 c R(2, NP) = GYAR(NPI) + PYAR(NPI) / PEAR(NPI) * (CT - FTAR(NPI))
1154 c R(3, NP) = GZAR(NPI) + PZAR(NPI) / PEAR(NPI) * (CT - FTAR(NPI))
1155 c P(1, NP) = PXAR(NPI)
1156 c P(2, NP) = PYAR(NPI)
1157 c P(3, NP) = PZAR(NPI)
1159 c LB(NP) = IARFLV(ITYPAR(NPI))
1164 DO 1028 IRUN = 1, NUM
1165 DO 1027 IC = 1, MASSR(IRUN)
1167 RT(1, IC, IRUN) = R(1, IE)
1168 RT(2, IC, IRUN) = R(2, IE)
1169 RT(3, IC, IRUN) = R(3, IE)
1170 PT(1, IC, IRUN) = P(1, IE)
1171 PT(2, IC, IRUN) = P(2, IE)
1172 PT(3, IC, IRUN) = P(3, IE)
1173 ET(IC, IRUN) = E(IE)
1174 LT(IC, IRUN) = LB(IE)
1176 PROT(IC, IRUN) = PROPER(IE)
1178 dpertt(IC, IRUN)=dpertp(IE)
1184 c DO WHILE (FT1(NP1, IRUN) .GT. CT - DT .AND.
1185 c & FT1(NP1, IRUN) .LE. CT)
1187 c DO WHILE (NPI(IRUN).LE.MULTI1(IRUN).AND.
1189 clin-11/13/00 finally read in all unformed particles and do the decays in ART:
1190 c DO WHILE (NP1.LE.MULTI1(IRUN).AND.
1191 c & FT1(NP1, IRUN) .GT. CT - DT .AND.
1192 c & FT1(NP1, IRUN) .LE. CT)
1195 if(nt .eq. (ntmax-1))then
1197 elseif(nt .eq. ntmax)then
1200 DO WHILE (NP1.LE.MULTI1(IRUN).AND.
1201 & FT1(NP1, IRUN) .GT. (CT - DT) .AND.
1202 & FT1(NP1, IRUN) .LE. ctlong)
1204 UDT = (CT - FT1(NP1, IRUN)) / EE1(NP1, IRUN)
1205 clin-10/28/03 since all unformed hadrons at time ct are read in at nt=ntmax-1,
1206 c their positions should not be propagated to time ct:
1207 if(nt.eq.(ntmax-1)) then
1208 ftsvt(NP,IRUN)=FT1(NP1, IRUN)
1209 if(FT1(NP1, IRUN).gt.ct) UDT=0.
1211 RT(1, NP, IRUN) = GX1(NP1, IRUN) +
1212 & PX1(NP1, IRUN) * UDT
1213 RT(2, NP, IRUN) = GY1(NP1, IRUN) +
1214 & PY1(NP1, IRUN) * UDT
1215 RT(3, NP, IRUN) = GZ1(NP1, IRUN) +
1216 & PZ1(NP1, IRUN) * UDT
1217 PT(1, NP, IRUN) = PX1(NP1, IRUN)
1218 PT(2, NP, IRUN) = PY1(NP1, IRUN)
1219 PT(3, NP, IRUN) = PZ1(NP1, IRUN)
1220 ET(NP, IRUN) = XM1(NP1, IRUN)
1221 LT(NP, IRUN) = IARFLV(ITYP1(NP1, IRUN))
1223 dpertt(NP,IRUN)=dpp1(NP1,IRUN)
1224 clin-4/30/03 ctest off
1225 c record initial phi,K*,Lambda(1520) resonances formed during the timestep:
1226 c if(LT(NP, IRUN).eq.29.or.iabs(LT(NP, IRUN)).eq.30)
1227 c 1 write(17,112) 'formed',LT(NP, IRUN),PX1(NP1, IRUN),
1228 c 2 PY1(NP1, IRUN),PZ1(NP1, IRUN),XM1(NP1, IRUN),nt
1229 c 112 format(a10,1x,I4,4(1x,f9.3),1x,I4)
1238 IA = IA + MASSR(IRUN)
1242 DO 1030 IRUN = 1, NUM
1243 IA = IA + MASSR(IRUN - 1)
1244 DO 1029 IC = 1, MASSR(IRUN)
1246 R(1, IE) = RT(1, IC, IRUN)
1247 R(2, IE) = RT(2, IC, IRUN)
1248 R(3, IE) = RT(3, IC, IRUN)
1249 P(1, IE) = PT(1, IC, IRUN)
1250 P(2, IE) = PT(2, IC, IRUN)
1251 P(3, IE) = PT(3, IC, IRUN)
1252 E(IE) = ET(IC, IRUN)
1253 LB(IE) = LT(IC, IRUN)
1255 PROPER(IE) = PROT(IC, IRUN)
1256 if(nt.eq.(ntmax-1)) ftsv(IE)=ftsvt(IC,IRUN)
1258 dpertp(IE)=dpertt(IC, IRUN)
1260 clin-3/2009 Moved here to better take care of freezeout spacetime:
1261 call hbtout(MASSR(IRUN),nt,ntmax)
1267 clin-5/2009 ctest off:
1273 * ============== END OF TIME STEP LOOP ================ *
1275 ************************************
1276 * WRITE OUT particle's MOMENTA ,and/OR COORDINATES ,
1277 * label and/or their local baryon density in the final state
1280 iss=iss+massr(lrun-1)
1281 do 1031 l0=1,massr(lrun)
1287 IF (IAPAR2(1) .NE. 1) THEN
1289 c NSH = MASSR(1) - NPI + 1
1290 c IAINT2(1) = IAINT2(1) + NSH
1291 c.....to shift the unformed particles to the end of the common block
1292 c IF (NSH .GT. 0) THEN
1296 c ELSE IF (NSH .LT. 0) THEN
1301 c IF (NSH .NE. 0) THEN
1304 c ITYPAR(I) = ITYPAR(J)
1317 c.....to copy ART particle info to COMMON /ARPRC/
1318 c DO I = 1, MASSR(1)
1319 c ITYPAR(I) = INVFLV(LB(I))
1328 c PEAR(I) = SQRT(PXAR(I) ** 2 + PYAR(I) ** 2 + PZAR(I) ** 2
1332 DO 1035 IRUN = 1, NUM
1333 IA = IA + MASSR(IRUN - 1)
1335 NSH = MASSR(IRUN) - NP1 + 1
1336 MULTI1(IRUN) = MULTI1(IRUN) + NSH
1337 c.....to shift the unformed particles to the end of the common block
1338 IF (NSH .GT. 0) THEN
1340 IE = MASSR(IRUN) + 1
1342 ELSE IF (NSH .LT. 0) THEN
1343 IB = MASSR(IRUN) + 1
1347 IF (NSH .NE. 0) THEN
1348 DO 1033 I = IB, IE, II
1350 ITYP1(I, IRUN) = ITYP1(J, IRUN)
1351 GX1(I, IRUN) = GX1(J, IRUN)
1352 GY1(I, IRUN) = GY1(J, IRUN)
1353 GZ1(I, IRUN) = GZ1(J, IRUN)
1354 FT1(I, IRUN) = FT1(J, IRUN)
1355 PX1(I, IRUN) = PX1(J, IRUN)
1356 PY1(I, IRUN) = PY1(J, IRUN)
1357 PZ1(I, IRUN) = PZ1(J, IRUN)
1358 EE1(I, IRUN) = EE1(J, IRUN)
1359 XM1(I, IRUN) = XM1(J, IRUN)
1361 PRO1(I, IRUN) = PRO1(J, IRUN)
1363 dpp1(I,IRUN)=dpp1(J,IRUN)
1367 c.....to copy ART particle info to COMMON /ARPRC1/
1368 DO 1034 I = 1, MASSR(IRUN)
1370 ITYP1(I, IRUN) = INVFLV(LB(IB))
1371 GX1(I, IRUN) = R(1, IB)
1372 GY1(I, IRUN) = R(2, IB)
1373 GZ1(I, IRUN) = R(3, IB)
1375 c since all unformed hadrons at time ct are read in at nt=ntmax-1,
1376 c their formation time ft1 should be kept to determine their freezeout(x,t):
1378 if(FT1(I, IRUN).lt.CT) FT1(I, IRUN) = CT
1379 PX1(I, IRUN) = P(1, IB)
1380 PY1(I, IRUN) = P(2, IB)
1381 PZ1(I, IRUN) = P(3, IB)
1382 XM1(I, IRUN) = E(IB)
1383 EE1(I, IRUN) = SQRT(PX1(I, IRUN) ** 2 +
1384 & PY1(I, IRUN) ** 2 +
1385 & PZ1(I, IRUN) ** 2 +
1386 & XM1(I, IRUN) ** 2)
1388 PRO1(I, IRUN) = PROPER(IB)
1395 **********************************
1397 * ======= END OF MANY LOOPS OVER IMPACT PARAMETERS ========== *
1399 **********************************
1402 *-----------------------------------------------------------------------
1403 * ==== ART COMPLETED ====
1404 *-----------------------------------------------------------------------
1410 **********************************
1411 subroutine coulin(masspr,massta,NUM)
1413 * purpose: initialization of array zet() and lb() for all runs *
1414 * lb(i) = 1 => proton *
1415 * lb(i) = 2 => neutron *
1416 **********************************
1418 PARAMETER (MAXSTR=150001)
1419 common /EE/ ID(MAXSTR),LB(MAXSTR)
1426 do 100 i = 1+(IRUN-1)*MASS,zta+(IRUN-1)*MASS
1429 do 200 i = zta+1+(IRUN-1)*MASS,massta+(IRUN-1)*MASS
1432 do 300 i = massta+1+(IRUN-1)*MASS,massta+zpr+(IRUN-1)*MASS
1435 do 400 i = massta+zpr+1+(IRUN-1)*MASS,
1436 1 massta+masspr+(IRUN-1)*MASS
1442 **********************************
1444 SUBROUTINE RELCOL(LCOLL,LBLOC,LCNNE,LDD,LPP,lppk,
1445 &LPN,lpd,lrho,lomega,LKN,LNNK,LDDK,LNDK,LCNND,LCNDN,
1446 &LDIRT,LDECAY,LRES,LDOU,LDDRHO,LNNRHO,LNNOM,
1447 &NT,ntmax,sp,akaon,sk)
1449 * PURPOSE: CHECK CONDITIONS AND CALCULATE THE KINEMATICS *
1450 * FOR BINARY COLLISIONS AMONG PARTICLES *
1451 * - RELATIVISTIC FORMULA USED *
1453 * REFERENCES: HAGEDORN, RELATIVISTIC KINEMATICS (1963) *
1456 * MASSPR - NUMBER OF NUCLEONS IN PROJECTILE (INTEGER,INPUT) *
1457 * MASSTA - NUMBER OF NUCLEONS IN TARGET (INTEGER,INPUT) *
1458 * NUM - NUMBER OF TESTPARTICLES PER NUCLEON(INTEGER,INPUT) *
1459 * ISEED - SEED FOR RANDOM NUMBER GENERATOR (INTEGER,INPUT) *
1460 * IAVOID - (= 1 => AVOID FIRST CLLISIONS WITHIN THE SAME *
1461 * NUCLEUS, ELSE ALL COLLISIONS) (INTEGER,INPUT) *
1462 * DELTAR - MAXIMUM SPATIAL DISTANCE FOR WHICH A COLLISION *
1463 * STILL CAN OCCUR (REAL,INPUT) *
1464 * DT - TIME STEP SIZE (REAL,INPUT) *
1465 * LCOLL - NUMBER OF COLLISIONS (INTEGER,OUTPUT) *
1466 * LBLOC - NUMBER OF PULI-BLOCKED COLLISIONS (INTEGER,OUTPUT) *
1467 * LCNNE - NUMBER OF ELASTIC COLLISION (INTEGER,OUTPUT) *
1468 * LCNND - NUMBER OF N+N->N+DELTA REACTION (INTEGER,OUTPUT) *
1469 * LCNDN - NUMBER OF N+DELTA->N+N REACTION (INTEGER,OUTPUT) *
1470 * LDD - NUMBER OF RESONANCE+RESONANCE COLLISIONS
1471 * LPP - NUMBER OF PION+PION elastic COLIISIONS
1472 * lppk - number of pion(RHO,OMEGA)+pion(RHO,OMEGA)
1473 * -->K+K- collisions
1474 * LPN - NUMBER OF PION+N-->KAON+X
1475 * lpd - number of pion+n-->delta+pion
1476 * lrho - number of pion+n-->Delta+rho
1477 * lomega - number of pion+n-->Delta+omega
1478 * LKN - NUMBER OF KAON RESCATTERINGS
1479 * LNNK - NUMBER OF bb-->kAON PROCESS
1480 * LDDK - NUMBER OF DD-->KAON PROCESS
1481 * LNDK - NUMBER OF ND-->KAON PROCESS
1482 * LB(I) IS USED TO LABEL PARTICLE'S CHARGE STATE
1485 * -45 Omega baryon(bar)
1495 * -13 anti-N*(+1)(1535),s_11
1496 * -12 anti-N*0(1535),s_11
1497 * -11 anti-N*(+1)(1440),p_11
1498 * -10 anti-N*0(1440), p_11
1517 * 10 N*0(1440), p_11
1518 * 11 N*(+1)(1440),p_11
1520 * 13 N*(+1)(1535),s_11
1526 clin-2/23/03 22 Kaon0Long (converted at the last timestep)
1528 * 24 Kaon0short (converted at the last timestep then decay)
1542 * ++ ------- SEE NOTE BOOK
1543 * NSTAR=1 INCLUDING N* RESORANCE
1544 * ELSE DELTA RESORANCE ONLY
1545 * NDIRCT=1 INCLUDING DIRECT PROCESS,ELSE NOT
1546 * DIR - PERCENTAGE OF DIRECT PION PRODUCTION PROCESS
1547 **********************************
1548 PARAMETER (MAXSTR=150001,MAXR=1,PI=3.1415926)
1549 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
1550 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,aks=0.895)
1551 PARAMETER (AA1=1.26,APHI=1.02,AP1=0.13496)
1552 parameter (maxx=20,maxz=24)
1553 parameter (rrkk=0.6,prkk=0.3,srhoks=5.,ESBIN=0.04)
1554 DIMENSION MASSRN(0:MAXR),RT(3,MAXSTR),PT(3,MAXSTR),ET(MAXSTR)
1555 DIMENSION LT(MAXSTR), PROT(MAXSTR)
1556 COMMON /AA/ R(3,MAXSTR)
1558 COMMON /BB/ P(3,MAXSTR)
1560 COMMON /CC/ E(MAXSTR)
1562 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
1563 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
1564 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
1566 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
1568 COMMON /HH/ PROPER(MAXSTR)
1570 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
1572 common /gg/ dx,dy,dz,dpx,dpy,dpz
1574 COMMON /INPUT/ NSTAR,NDIRCT,DIR
1578 COMMON /RR/ MASSR(0:MAXR)
1580 common /ss/ inout(20)
1582 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
1586 COMMON /PA/RPION(3,MAXSTR,MAXR)
1588 COMMON /PB/PPION(3,MAXSTR,MAXR)
1590 COMMON /PC/EPION(MAXSTR,MAXR)
1592 COMMON /PD/LPION(MAXSTR,MAXR)
1594 COMMON /PE/PROPI(MAXSTR,MAXR)
1596 COMMON /KKK/TKAON(7),EKAON(7,0:2000)
1598 COMMON /KAON/ AK(3,50,36),SPECK(50,36,7),MF
1600 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
1602 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
1604 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
1605 1 px1n,py1n,pz1n,dp1n
1607 COMMON/tdecay/tfdcy(MAXSTR),tfdpi(MAXSTR,MAXR),tft(MAXSTR)
1609 common /lastt/itimeh,bimp
1612 COMMON/ppbmas/niso(15),nstate,ppbm(15,2),thresh(15),weight(15)
1614 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
1616 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
1618 COMMON/hbt/lblast(MAXSTR),xlast(4,MAXSTR),plast(4,MAXSTR),nlast
1620 common/resdcy/NSAV,iksdcy
1624 COMMON/FTMAX/ftsv(MAXSTR),ftsvt(MAXSTR, MAXR)
1625 dimension ftpisv(MAXSTR,MAXR),fttemp(MAXSTR)
1627 common/phidcy/iphidcy,pttrig,ntrig,maxmiss
1629 DIMENSION dptemp(MAXSTR)
1630 common /para8/ idpert,npertd,idxsec
1631 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
1632 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
1633 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
1639 3 1.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
1640 2 -1.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
1641 1 0.,0.,0.,-1.,0.,1.,0.,-1.,0.,-1.,
1642 s 0.,-2.,-1.,0.,1.,0.,0.,0.,0.,-1.,
1644 s 1.,0.,-1.,0.,1.,-1.,0.,1.,2.,0.,
1645 1 1.,0.,1.,0.,-1.,0.,1.,0.,0.,0.,
1646 2 -1.,0.,1.,0.,-1.,0.,1.,0.,0.,1.,
1647 3 0.,0.,0.,0.,0.,0.,0.,0.,0.,-1.,
1650 clin-2/19/03 initialize n and nsav for resonance decay at each timestep
1651 c in order to prevent integer overflow:
1654 c OFF skip ART collisions to reproduce HJ:
1655 cc if(nt.ne.ntmax) return
1657 clin-11/07/00 rrkk is assumed to be 0.6mb(default) for mm->KKbar
1658 c with m=rho or omega, estimated from Ko's paper:
1660 c prkk: cross section of pi (rho or omega) -> K* Kbar (AND) K*bar K:
1662 c cross section in mb for (rho or omega) K* -> pi K:
1667 *-----------------------------------------------------------------------
1668 * INITIALIZATION OF COUNTING VARIABLES
1699 * COM: MSUM IS USED TO COUNT THE TOTAL NO. OF PARTICLES
1700 * IN PREVIOUS IRUN-1 RUNS
1727 *-----------------------------------------------------------------------
1728 * LOOP OVER ALL PARALLEL RUNS
1730 c MASS=MASSPR+MASSTA
1733 DO 1000 IRUN = 1,NUM
1735 MSUM=MSUM+MASSR(IRUN-1)
1736 * LOOP OVER ALL PSEUDOPARTICLES 1 IN THE SAME RUN
1738 IF(NT.EQ.NTMAX)J10=1
1740 ctest off skips the check of energy conservation after each timestep:
1742 c do ip=1,MASSR(IRUN)
1743 c if(e(ip).ne.0.or.lb(ip).eq.10022) enetot=enetot
1744 c 1 +sqrt(p(1,ip)**2+p(2,ip)**2+p(3,ip)**2+e(ip)**2)
1746 c write(91,*) 'A:',nt,enetot,massr(irun),bimp
1748 DO 800 J1 = J10,MASSR(IRUN)
1750 * E(I)=0 are for pions having been absorbed or photons which do not enter here:
1751 IF(E(I1).EQ.0.)GO TO 800
1753 c To include anti-(Delta,N*1440 and N*1535):
1754 c IF ((LB(I1) .LT. -13 .OR. LB(I1) .GT. 28)
1755 c 1 .and.iabs(LB(I1)) .ne. 30 ) GOTO 800
1756 IF (LB(I1) .LT. -45 .OR. LB(I1) .GT. 45) GOTO 800
1765 E1 = SQRT( EM1**2 + PX1**2 + PY1**2 + PZ1**2 )
1769 c generate k0short and k0long from K+ and K- at the last timestep:
1770 if(nt.eq.ntmax.and.(lb1.eq.21.or.lb1.eq.23)) then
1772 if(pk0.lt.0.25) then
1774 elseif(pk0.lt.0.50) then
1780 clin-8/07/02 these particles don't decay strongly, so skip decay routines:
1781 c IF( (lb1.ge.-2.and.lb1.le.5) .OR. lb1.eq.31 .OR.
1782 c & (iabs(lb1).ge.14.and.iabs(lb1).le.24) .OR.
1783 c & (iabs(lb1).ge.40.and.iabs(lb1).le.45) .or.
1784 c & lb1.eq.31)GO TO 1
1785 c only decay K0short when iksdcy=1:
1786 if(lb1.eq.0.or.lb1.eq.25.or.lb1.eq.26.or.lb1.eq.27
1787 & .or.lb1.eq.28.or.lb1.eq.29.or.iabs(lb1).eq.30
1788 & .or.(iabs(lb1).ge.6.and.iabs(lb1).le.13)
1789 & .or.(iksdcy.eq.1.and.lb1.eq.24)
1790 & .or.iabs(lb1).eq.16) then
1795 * IF I1 IS A RESONANCE, CHECK WHETHER IT DECAYS DURING THIS TIME STEP
1796 IF(lb1.ge.25.and.lb1.le.27) then
1798 ELSEIF(lb1.eq.28) then
1800 ELSEIF(lb1.eq.29) then
1802 ELSEIF(iabs(LB1).eq.30) then
1804 ELSEIF(lb1.eq.0) then
1806 c to give K0short ct0=2.676cm:
1807 ELSEIF(iksdcy.eq.1.and.lb1.eq.24) then
1809 clin-4/29/03 add Sigma0 decay to Lambda, ct0=2.22E-11m:
1810 ELSEIF(iabs(lb1).eq.16) then
1812 csp-07/25/01 test a1 resonance:
1813 cc ELSEIF(LB1.EQ.32) then
1815 ELSEIF(LB1.EQ.32) then
1816 call WIDA1(EM1,rhomp,WID,iseed)
1817 ELSEIF(iabs(LB1).ge.6.and.iabs(LB1).le.9) then
1819 ELSEIF((iabs(LB1).EQ.10).OR.(iabs(LB1).EQ.11)) then
1821 ELSEIF((iabs(LB1).EQ.12).OR.(iabs(LB1).EQ.13)) then
1825 * if it is the last time step, FORCE all resonance to strong-decay
1826 * and go out of the loop
1829 clin-5b/2008 forbid phi decay at the end of hadronic cascade:
1830 if(iphidcy.eq.0.and.iabs(LB1).eq.29) pdecay=0.
1836 PDECAY=1.-EXP(-DT/T0)
1841 XDECAY=RANART(NSEED)
1843 cc dilepton production from rho0, omega, phi decay
1844 cc if(lb1.eq.26 .or. lb1.eq.28 .or. lb1.eq.29)
1845 cc & call dec_ceres(nt,ntmax,irun,i1)
1847 IF(XDECAY.LT.PDECAY) THEN
1848 clin-10/25/02 get rid of argument usage mismatch in rhocay():
1851 clin-10/28/03 keep formation time of hadrons unformed at nt=ntmax-1:
1852 if(nt.eq.ntmax.and.ftsv(i1).gt.((ntmax-1)*dt))
1857 * use PYTHIA to perform decays of eta,rho,omega,phi,K*,(K0s) and Delta:
1858 if(lb1.eq.0.or.lb1.eq.25.or.lb1.eq.26.or.lb1.eq.27
1859 & .or.lb1.eq.28.or.lb1.eq.29.or.iabs(lb1).eq.30
1860 & .or.(iabs(lb1).ge.6.and.iabs(lb1).le.9)
1861 & .or.(iksdcy.eq.1.and.lb1.eq.24)
1862 & .or.iabs(lb1).eq.16) then
1863 c previous rho decay performed in rhodecay():
1865 c call rhodecay(idecay,i1,nnn,iseed)
1867 ctest off record decays of phi,K*,Lambda(1520) resonances:
1868 c if(lb1.eq.29.or.iabs(lb1).eq.30)
1869 c 1 write(18,112) 'decay',lb1,px1,py1,pz1,am1,nt
1870 call resdec(i1,nt,nnn,wid,idecay)
1876 c add decay time to freezeout positions & time at the last timestep:
1877 if(nt.eq.ntmax) then
1884 * decay number for baryon resonance or L/S decay
1885 if(iabs(lb1).ge.6.and.iabs(lb1).le.9) then
1890 c elseif(lb1.eq.32)then
1892 c call a1decay(idecay,i1,nnn,iseed,rhomp)
1895 elseif(iabs(LB1).EQ.10.OR.iabs(LB1).EQ.11) THEN
1899 IF(E(I1).GT.1.22)PNSTAR=0.6
1900 IF(RANART(NSEED).LE.PNSTAR)THEN
1901 * (1) DECAY TO SINGLE PION+NUCLEON
1902 CALL DECAY(idecay,I1,NNN,ISEED,wid,nt)
1904 * (2) DECAY TO TWO PIONS + NUCLEON
1905 CALL DECAY2(idecay,I1,NNN,ISEED,wid,nt)
1908 c for N*(1535) decay
1909 elseif(iabs(LB1).eq.12.or.iabs(LB1).eq.13) then
1911 CALL DECAY(idecay,I1,NNN,ISEED,wid,nt)
1915 *COM: AT HIGH ENERGIES WE USE VERY SHORT TIME STEPS,
1916 * IN ORDER TO TAKE INTO ACCOUNT THE FINITE FORMATIOM TIME, WE
1917 * DO NOT ALLOW PARTICLES FROM THE DECAY OF RESONANCE TO INTERACT
1918 * WITH OTHERS IN THE SAME TIME STEP. CHANGE 9000 TO REVERSE THIS
1919 * ASSUMPTION. EFFECTS OF THIS ASSUMPTION CAN BE STUDIED BY CHANGING
1920 * THE STATEMENT OF 9000. See notebook for discussions on effects of
1921 * changing statement 9000.
1923 c kaons from K* decay are converted to k0short (and k0long),
1924 c phi decay may produce rho, K0S or eta, N*(1535) decay may produce eta,
1925 c and these decay daughters need to decay again if at the last timestep:
1926 c (note: these daughters have been assigned to lb(i1) only, not to lpion)
1927 c if(nt.eq.ntmax.and.(lb1.eq.29.or.iabs(lb1).eq.30
1928 c 1 .iabs(lb1).eq.12.or.iabs(lb1).eq.13)) then
1929 if(nt.eq.ntmax) then
1930 if(lb(i1).eq.25.or.lb(i1).eq.26.or.lb(i1).eq.27) then
1932 elseif(lb(i1).eq.0) then
1934 elseif(lb(i1).eq.24.and.iksdcy.eq.1) then
1944 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
1945 call resdec(i1,nt,nnn,wid,idecay)
1957 * negelecting the Pauli blocking at high energies
1960 * LOOP OVER ALL PSEUDOPARTICLES 2 IN THE SAME RUN
1961 * SAVE ALL THE COORDINATES FOR POSSIBLE CHANGE IN THE FOLLOWING COLLISION
1962 1 if(nt.eq.ntmax)go to 800
1969 * IF I2 IS A MESON BEING ABSORBED, THEN GO OUT OF THE LOOP
1970 IF(E(I2).EQ.0.) GO TO 600
1971 clin-5/2008 in case the first particle is already destroyed:
1972 IF(E(I1).EQ.0.) GO TO 800
1973 IF (LB(I2) .LT. -45 .OR. LB(I2) .GT. 45) GOTO 600
1974 clin-7/26/03 improve speed
1979 clin-9/2008 deuteron+nucleon elastic cross sections could reach ~2810mb:
1982 IF(ilb1.EQ.42.or.ilb2.EQ.42) THEN
1983 if((ILB1.GE.1.AND.ILB1.LE.2)
1984 1 .or.(ILB1.GE.6.AND.ILB1.LE.13)
1985 2 .or.(ILB2.GE.1.AND.ILB2.LE.2)
1986 3 .or.(ILB2.GE.6.AND.ILB2.LE.13)) then
1987 if((lb(i1)*lb(i2)).gt.0) dr0max=10.
1991 if(((X1-X2)**2+(Y1-Y2)**2+(Z1-Z2)**2).GT.dr0max**2)
1993 IF (ID(I1)*ID(I2).EQ.IAVOID) GOTO 400
2006 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
2026 clin-2/26/03 ctest off check energy conservation after each binary search:
2027 eini=SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
2028 1 +SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
2029 pxini=P(1,I1)+P(1,I2)
2030 pyini=P(2,I1)+P(2,I2)
2031 pzini=P(3,I1)+P(3,I2)
2034 clin-4/30/03 initialize value:
2037 * TO SAVE COMPUTING TIME we do the following
2038 * (1) make a ROUGH estimate to see whether particle i2 will collide with
2039 * particle I1, and (2) skip the particle pairs for which collisions are
2040 * not modeled in the code.
2041 * FOR MESON-BARYON AND MESON-MESON COLLISIONS, we use a maximum
2042 * interaction distance DELTR0=2.6
2043 * for ppbar production from meson (pi rho omega) interactions:
2046 if( (iabs(lb1).ge.14.and.iabs(lb1).le.17) .or.
2047 & (iabs(lb1).ge.30.and.iabs(lb1).le.45) ) DELTR0=5.0
2048 if( (iabs(lb2).ge.14.and.iabs(lb2).le.17) .or.
2049 & (iabs(lb2).ge.30.and.iabs(lb2).le.45) ) DELTR0=5.0
2051 if(lb1.eq.28.and.lb2.eq.28) DELTR0=4.84
2052 clin-10/08/00 to include pi pi -> rho rho:
2053 if((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5)) then
2054 E2=SQRT(EM2**2+PX2**2+PY2**2+PZ2**2)
2055 spipi=(e1+e2)**2-(px1+px2)**2-(py1+py2)**2-(pz1+pz2)**2
2056 if(spipi.ge.(4*0.77**2)) DELTR0=3.5
2060 IF (LB1.EQ.23 .AND. (LB2.GE.14.AND.LB2.LE.17)) GOTO 3699
2061 IF (LB2.EQ.23 .AND. (LB1.GE.14.AND.LB1.LE.17)) GOTO 3699
2063 * K(K*) + Kbar(K*bar) scattering including
2064 * K(K*) + Kbar(K*bar) --> phi + pi(rho,omega) and pi pi(rho,omega)
2065 if(lb1.eq.21.and.lb2.eq.23)go to 3699
2066 if(lb2.eq.21.and.lb1.eq.23)go to 3699
2067 if(lb1.eq.30.and.lb2.eq.21)go to 3699
2068 if(lb2.eq.30.and.lb1.eq.21)go to 3699
2069 if(lb1.eq.-30.and.lb2.eq.23)go to 3699
2070 if(lb2.eq.-30.and.lb1.eq.23)go to 3699
2071 if(lb1.eq.-30.and.lb2.eq.30)go to 3699
2072 if(lb2.eq.-30.and.lb1.eq.30)go to 3699
2075 c kaon+rho(omega,eta) collisions:
2076 if(lb1.eq.21.or.lb1.eq.23) then
2077 if(lb2.eq.0.or.(lb2.ge.25.and.lb2.le.28)) then
2080 elseif(lb2.eq.21.or.lb2.eq.23) then
2081 if(lb1.eq.0.or.(lb1.ge.25.and.lb1.le.28)) then
2086 clin-8/14/02 K* (pi, rho, omega, eta) collisions:
2087 if(iabs(lb1).eq.30 .and.
2088 1 (lb2.eq.0.or.(lb2.ge.25.and.lb2.le.28)
2089 2 .or.(lb2.ge.3.and.lb2.le.5))) then
2091 elseif(iabs(lb2).eq.30 .and.
2092 1 (lb1.eq.0.or.(lb1.ge.25.and.lb1.le.28)
2093 2 .or.(lb1.ge.3.and.lb1.le.5))) then
2096 c K*/K*-bar + baryon/antibaryon collisions:
2097 elseif( iabs(lb1).eq.30 .and.
2098 1 (iabs(lb2).eq.1.or.iabs(lb2).eq.2.or.
2099 2 (iabs(lb2).ge.6.and.iabs(lb2).le.13)) )then
2102 if( iabs(lb2).eq.30 .and.
2103 1 (iabs(lb1).eq.1.or.iabs(lb1).eq.2.or.
2104 2 (iabs(lb1).ge.6.and.iabs(lb1).le.13)) )then
2107 * K^+ baryons and antibaryons:
2108 c** K+ + B-bar --> La(Si)-bar + pi
2109 * K^- and antibaryons, note K^- and baryons are included in newka():
2110 * note that we fail to satisfy charge conjugation for these cross sections:
2111 if((lb1.eq.23.or.lb1.eq.21).and.
2112 1 (iabs(lb2).eq.1.or.iabs(lb2).eq.2.or.
2113 2 (iabs(lb2).ge.6.and.iabs(lb2).le.13))) then
2115 elseif((lb2.eq.23.or.lb2.eq.21).and.
2116 1 (iabs(lb1).eq.1.or.iabs(lb1).eq.2.or.
2117 2 (iabs(lb1).ge.6.and.iabs(lb1).le.13))) then
2121 * For anti-nucleons annihilations:
2123 * (1) for collisions involving a p_bar or n_bar,
2124 * we allow only collisions between a p_bar and a baryon or a baryon
2125 * resonance (as well as a n_bar and a baryon or a baryon resonance),
2126 * we skip all other reactions involving a p_bar or n_bar,
2127 * such as collisions between p_bar (n_bar) and mesons,
2128 * and collisions between two p_bar's (n_bar's).
2129 * (2) we introduce a new parameter rppmax: the maximum interaction
2130 * distance to make the quick collision check,rppmax=3.57 fm
2131 * corresponding to a cutoff of annihilation xsection= 400mb which is
2132 * also used consistently in the actual annihilation xsection to be
2133 * used in the following as given in the subroutine xppbar(srt)
2135 * anti-baryon on baryons
2136 if((lb1.eq.-1.or.lb1.eq.-2.or.(lb1.ge.-13.and.lb1.le.-6))
2137 1 .and.(lb2.eq.1.or.lb2.eq.2.or.(lb2.ge.6.and.lb2.le.13))) then
2140 else if((lb2.eq.-1.or.lb2.eq.-2.or.(lb2.ge.-13.and.lb2.le.-6))
2141 1 .and.(lb1.eq.1.or.lb1.eq.2.or.(lb1.ge.6.and.lb1.le.13))) then
2146 c* ((anti) lambda, cascade, omega should not be rejected)
2147 if( (iabs(lb1).ge.14.and.iabs(lb1).le.17) .or.
2148 & (iabs(lb2).ge.14.and.iabs(lb2).le.17) )go to 3699
2150 clin-9/2008 maximum sigma~2810mb for deuteron+nucleon elastic collisions:
2151 IF (iabs(LB1).EQ.42.or.iabs(LB2).EQ.42) THEN
2154 if((ILB1.GE.1.AND.ILB1.LE.2)
2155 1 .or.(ILB1.GE.6.AND.ILB1.LE.13)
2156 2 .or.(ILB2.GE.1.AND.ILB2.LE.2)
2157 3 .or.(ILB2.GE.6.AND.ILB2.LE.13)) then
2158 if((lb1*lb2).gt.0) deltr0=9.5
2162 if( (iabs(lb1).ge.40.and.iabs(lb1).le.45) .or.
2163 & (iabs(lb2).ge.40.and.iabs(lb2).le.45) )go to 3699
2165 c* phi channel --> elastic + inelastic scatt.
2166 IF( (lb1.eq.29 .and.((lb2.ge.1.and.lb2.le.13).or.
2167 & (lb2.ge.21.and.lb2.le.28).or.iabs(lb2).eq.30)) .OR.
2168 & (lb2.eq.29 .and.((lb1.ge.1.and.lb1.le.13).or.
2169 & (lb1.ge.21.and.lb1.le.28).or.iabs(lb1).eq.30)) )THEN
2174 c La/Si, Cas, Om (bar)-meson elastic colln
2175 * pion vs. La & Ca (bar) coll. are treated in resp. subroutines
2177 * SKIP all other K* RESCATTERINGS
2178 If(iabs(lb1).eq.30.or.iabs(lb2).eq.30) go to 400
2179 * SKIP KAON(+) RESCATTERINGS WITH particles other than pions and baryons
2180 If(lb1.eq.23.and.(lb2.lt.1.or.lb2.gt.17))go to 400
2181 If(lb2.eq.23.and.(lb1.lt.1.or.lb1.gt.17))go to 400
2183 c anti-baryon proccess: B-bar+M, N-bar+R-bar, N-bar+N-bar, R-bar+R-bar
2185 if( ((lb1.le.-1.and.lb1.ge.-13)
2186 & .and.(lb2.eq.0.or.(lb2.ge.3.and.lb2.le.5)
2187 & .or.(lb2.ge.25.and.lb2.le.28)))
2188 & .OR.((lb2.le.-1.and.lb2.ge.-13)
2189 & .and.(lb1.eq.0.or.(lb1.ge.3.and.lb1.le.5)
2190 & .or.(lb1.ge.25.and.lb1.le.28))) ) then
2191 elseIF( ((LB1.eq.-1.or.lb1.eq.-2).
2192 & and.(LB2.LT.-5.and.lb2.ge.-13))
2193 & .OR. ((LB2.eq.-1.or.lb2.eq.-2).
2194 & and.(LB1.LT.-5.and.lb1.ge.-13)) )then
2195 elseIF((LB1.eq.-1.or.lb1.eq.-2)
2196 & .AND.(LB2.eq.-1.or.lb2.eq.-2))then
2197 elseIF((LB1.LT.-5.and.lb1.ge.-13).AND.
2198 & (LB2.LT.-5.and.lb2.ge.-13)) then
2199 c elseif((lb1.lt.0).or.(lb2.lt.0)) then
2204 * for baryon-baryon collisions
2205 IF (LB1 .EQ. 1 .OR. LB1 .EQ. 2 .OR. (LB1 .GE. 6 .AND.
2206 & LB1 .LE. 17)) THEN
2207 IF (LB2 .EQ. 1 .OR. LB2 .EQ. 2 .OR. (LB2 .GE. 6 .AND.
2208 & LB2 .LE. 17)) THEN
2213 3699 RSQARE = (X1-X2)**2 + (Y1-Y2)**2 + (Z1-Z2)**2
2214 IF (RSQARE .GT. DELTR0**2) GO TO 400
2215 *NOW PARTICLES ARE CLOSE ENOUGH TO EACH OTHER !
2216 * KEEP ALL COORDINATES FOR POSSIBLE PHASE SPACE CHANGE
2220 ipx2 = nint(px2/dpx)
2221 ipy2 = nint(py2/dpy)
2222 ipz2 = nint(pz2/dpz)
2223 * FIND MOMENTA OF PARTICLES IN THE CMS OF THE TWO COLLIDING PARTICLES
2224 * AND THE CMS ENERGY SRT
2225 CALL CMS(I1,I2,PCX,PCY,PCZ,SRT)
2226 clin-7/26/03 improve speed
2228 call distc0(drmax,deltr0,DT,
2229 1 Ifirst,PCX,PCY,PCZ,
2230 2 x1,y1,z1,px1,py1,pz1,em1,x2,y2,z2,px2,py2,pz2,em2)
2231 if(Ifirst.eq.-1) goto 400
2234 clin-4/2008 use last bin if ISS is out of EKAON's upper bound of 2000:
2235 if(ISS.gt.2000) ISS=2000
2238 clin-8/2008 Deuteron+Meson->B+B;
2239 c meson=(pi,rho,omega,eta), B=(n,p,Delta,N*1440,N*1535):
2240 IF (iabs(LB1).EQ.42.or.iabs(LB2).EQ.42) THEN
2243 if(LB1.eq.0.or.(LB1.GE.3.AND.LB1.LE.5)
2244 1 .or.(LB1.GE.25.AND.LB1.LE.28)
2246 3 LB2.eq.0.or.(LB2.GE.3.AND.LB2.LE.5)
2247 4 .or.(LB2.GE.25.AND.LB2.LE.28)) then
2249 clin-9/2008 Deuteron+Baryon or antiDeuteron+antiBaryon elastic collisions:
2250 elseif(((ILB1.GE.1.AND.ILB1.LE.2)
2251 1 .or.(ILB1.GE.6.AND.ILB1.LE.13)
2252 2 .or.(ILB2.GE.1.AND.ILB2.LE.2)
2253 3 .or.(ILB2.GE.6.AND.ILB2.LE.13))
2254 4 .and.(lb1*lb2).gt.0) then
2261 * K+ + (N,N*,D)-bar --> L/S-bar + pi
2262 if( ((lb1.eq.23.or.lb1.eq.30).and.
2263 & (lb2.eq.-1.or.lb2.eq.-2.or.(lb2.ge.-13.and.lb2.le.-6)))
2264 & .OR.((lb2.eq.23.or.lb2.eq.30).and.
2265 & (lb1.eq.-1.or.lb1.eq.-2.or.(lb1.ge.-13.and.lb1.le.-6))) )
2268 if(srt.le.(bmass+aka)) then
2271 pkaon=sqrt(((srt**2-(aka**2+bmass**2))
2272 1 /2./bmass)**2-aka**2)
2274 clin-10/31/02 cross sections are isospin-averaged, same as those in newka
2275 c for K- + (N,N*,D) --> L/S + pi:
2276 sigela = 0.5 * (AKPEL(PKAON) + AKNEL(PKAON))
2277 SIGSGM = 1.5 * AKPSGM(PKAON) + AKNSGM(PKAON)
2278 SIG = sigela + SIGSGM + AKPLAM(PKAON)
2279 if(sig.gt.1.e-7) then
2280 c ! K+ + N-bar reactions
2292 c meson + hyperon-bar -> K+ + N-bar
2293 if(((lb1.ge.-17.and.lb1.le.-14).and.(lb2.ge.3.and.lb2.le.5))
2294 & .OR.((lb2.ge.-17.and.lb2.le.-14)
2295 & .and.(lb1.ge.3.and.lb1.le.5)))then
2298 C* first classify the reactions due to total charge.
2299 if((lb1.eq.-15.and.(lb2.eq.5.or.lb2.eq.27)).OR.
2300 & (lb2.eq.-15.and.(lb1.eq.5.or.lb1.eq.27))) then
2306 if( (lb1.eq.-15.and.(lb2.eq.0.or.lb2.eq.4.or.lb2.eq.26.or.
2307 & lb2.eq.28)).OR.(lb2.eq.-15.and.(lb1.eq.0.or.
2308 & lb1.eq.4.or.lb1.eq.26.or.lb1.eq.28)).OR.
2309 & ((lb1.eq.-14.or.lb1.eq.-16).and.(lb2.eq.5.or.lb2.eq.27)).OR.
2310 & ((lb2.eq.-14.or.lb2.eq.-16).and.(lb1.eq.5.or.lb1.eq.27)) )then
2316 if( (lb1.eq.-15.and.(lb2.eq.3.or.lb2.eq.25)).OR.
2317 & (lb2.eq.-15.and.(lb1.eq.3.or.lb1.eq.25)).OR.
2318 & (lb1.eq.-17.and.(lb2.eq.5.or.lb2.eq.27)).OR.
2319 & (lb2.eq.-17.and.(lb1.eq.5.or.lb1.eq.27)).OR.
2320 & ((lb1.eq.-14.or.lb1.eq.-16).and.(lb2.eq.0.or.lb2.eq.4
2321 & .or.lb2.eq.26.or.lb2.eq.28)).OR.
2322 & ((lb2.eq.-14.or.lb2.eq.-16).and.(lb1.eq.0.or.lb1.eq.4
2323 & .or.lb1.eq.26.or.lb1.eq.28)) )then
2329 if( (lb1.eq.-17.and.(lb2.eq.0.or.lb2.eq.4.or.lb2.eq.26.or.
2330 & lb2.eq.28)).OR.(lb2.eq.-17.and.(lb1.eq.0.or.
2331 & lb1.eq.4.or.lb1.eq.26.or.lb1.eq.28)).OR.
2332 & ((lb1.eq.-14.or.lb1.eq.-16).and.(lb2.eq.3.or.lb2.eq.25)).OR.
2333 & ((lb2.eq.-14.or.lb2.eq.-16).and.(lb1.eq.3.or.lb1.eq.25)))then
2339 c 110 if(nchrg.ne.-100.and.srt.ge.(aka+bmass))then !! for elastic
2342 if(nchrg.ne.-100.and.srt.ge.(aka+bmass))then
2343 cc110 if(nchrg.eq.-100.or.srt.lt.(aka+bmass)) go to 400
2344 c ! PI + La(Si)-bar => K+ + N-bar reactions
2346 cc pkaon=sqrt(((srt**2-(aka**2+bmass**2))/2./bmass)**2-aka**2)
2347 pkaon=sqrt(((srt**2-(aka**2+0.938**2))/2./0.938)**2-aka**2)
2349 if(lb1.eq.-14.or.lb2.eq.-14) then
2350 if(nchrg.ge.0) sigma0=akPlam(pkaon)
2351 if(nchrg.lt.0) sigma0=akNlam(pkaon)
2355 if(nchrg.ge.0) sigma0=akPsgm(pkaon)
2357 if(nchrg.lt.0) sigma0=akNsgm(pkaon)
2358 SIGMA0 = 1.5 * AKPSGM(PKAON) + AKNSGM(PKAON)
2360 sig=(srt**2-(aka+bmass)**2)*(srt**2-(aka-bmass)**2)/
2361 & (srt**2-(em1+em2)**2)/(srt**2-(em1-em2)**2)*sigma0
2363 if(nchrg.eq.-2.or.nchrg.eq.2) sig=2.*sig
2364 C* the factor 2 comes from spin of delta, which is 3/2
2365 C* detailed balance. copy from Page 423 of N.P. A614 1997
2366 IF (LB1 .EQ. -14 .OR. LB2 .EQ. -14) THEN
2367 SIG = 4.0 / 3.0 * SIG
2368 ELSE IF (NCHRG .EQ. -2 .OR. NCHRG .EQ. 2) THEN
2369 SIG = 8.0 / 9.0 * SIG
2371 SIG = 4.0 / 9.0 * SIG
2376 cc if(sig.lt.1.e-7) go to 400
2379 c ! PI + La(Si)-bar => elastic included
2390 ** MULTISTRANGE PARTICLE (Cas,Omega -bar) PRODUCTION - (NON)PERTURBATIVE
2392 * K-/K*0bar + La/Si --> cascade + pi/eta
2393 if( ((lb1.eq.21.or.lb1.eq.-30).and.(lb2.ge.14.and.lb2.le.17)).OR.
2394 & ((lb2.eq.21.or.lb2.eq.-30).and.(lb1.ge.14.and.lb1.le.17)) )then
2398 c K+/K*0 + La/Si(bar) --> cascade-bar + pi/eta
2399 if( ((lb1.eq.23.or.lb1.eq.30).and.(lb2.le.-14.and.lb2.ge.-17)).OR.
2400 & ((lb2.eq.23.or.lb2.eq.30).and.(lb1.le.-14.and.lb1.ge.-17)) )then
2404 * K-/K*0bar + cascade --> omega + pi
2405 if( ((lb1.eq.21.or.lb1.eq.-30).and.(lb2.eq.40.or.lb2.eq.41)).OR.
2406 & ((lb2.eq.21.or.lb2.eq.-30).and.(lb1.eq.40.or.lb1.eq.41)) )then
2410 * K+/K*0 + cascade-bar --> omega-bar + pi
2411 if( ((lb1.eq.23.or.lb1.eq.30).and.(lb2.eq.-40.or.lb2.eq.-41)).OR.
2412 & ((lb2.eq.23.or.lb2.eq.30).and.(lb1.eq.-40.or.lb1.eq.-41)) )then
2416 * Omega + Omega --> Di-Omega + photon(eta)
2417 cc if( lb1.eq.45.and.lb2.eq.45 ) go to 3455
2419 c annhilation of cascade(bar), omega(bar)
2421 * K- + L/S <-- cascade(bar) + pi/eta
2422 if( (((lb1.ge.3.and.lb1.le.5).or.lb1.eq.0)
2423 & .and.(iabs(lb2).eq.40.or.iabs(lb2).eq.41))
2424 & .OR. (((lb2.ge.3.and.lb2.le.5).or.lb2.eq.0)
2425 & .and.(iabs(lb1).eq.40.or.iabs(lb1).eq.41)) )go to 3455
2426 * K- + cascade(bar) <-- omega(bar) + pi
2427 * if( (lb1.eq.0.and.iabs(lb2).eq.45)
2428 * & .OR. (lb2.eq.0.and.iabs(lb1).eq.45) )go to 3455
2429 if( ((lb1.ge.3.and.lb1.le.5).and.iabs(lb2).eq.45)
2430 & .OR.((lb2.ge.3.and.lb2.le.5).and.iabs(lb1).eq.45) )go to 3455
2433 *** MULTISTRANGE PARTICLE PRODUCTION (END)
2435 c* K+ + La(Si) --> Meson + B
2436 IF (LB1.EQ.23 .AND. (LB2.GE.14.AND.LB2.LE.17)) GOTO 5699
2437 IF (LB2.EQ.23 .AND. (LB1.GE.14.AND.LB1.LE.17)) GOTO 5699
2438 c* K- + La(Si)-bar --> Meson + B-bar
2439 IF (LB1.EQ.21 .AND. (LB2.GE.-17.AND.LB2.LE.-14)) GOTO 5699
2440 IF (LB2.EQ.21 .AND. (LB1.GE.-17.AND.LB1.LE.-14)) GOTO 5699
2442 c La/Si-bar + B --> pi + K+
2443 IF( (((LB1.eq.1.or.LB1.eq.2).or.(LB1.ge.6.and.LB1.le.13))
2444 & .AND.(LB2.GE.-17.AND.LB2.LE.-14)) .OR.
2445 & (((LB2.eq.1.or.LB2.eq.2).or.(LB2.ge.6.and.LB2.le.13))
2446 & .AND.(LB1.GE.-17.AND.LB1.LE.-14)) )go to 5999
2447 c La/Si + B-bar --> pi + K-
2448 IF( (((LB1.eq.-1.or.LB1.eq.-2).or.(LB1.le.-6.and.LB1.ge.-13))
2449 & .AND.(LB2.GE.14.AND.LB2.LE.17)) .OR.
2450 & (((LB2.eq.-1.or.LB2.eq.-2).or.(LB2.le.-6.and.LB2.ge.-13))
2451 & .AND.(LB1.GE.14.AND.LB1.LE.17)) )go to 5999
2454 * K(K*) + Kbar(K*bar) --> phi + pi(rho,omega), M + M (M=pi,rho,omega,eta)
2455 if(lb1.eq.21.and.lb2.eq.23) go to 8699
2456 if(lb2.eq.21.and.lb1.eq.23) go to 8699
2457 if(lb1.eq.30.and.lb2.eq.21) go to 8699
2458 if(lb2.eq.30.and.lb1.eq.21) go to 8699
2459 if(lb1.eq.-30.and.lb2.eq.23) go to 8699
2460 if(lb2.eq.-30.and.lb1.eq.23) go to 8699
2461 if(lb1.eq.-30.and.lb2.eq.30) go to 8699
2462 if(lb2.eq.-30.and.lb1.eq.30) go to 8699
2463 c* (K,K*)-bar + rho(omega) --> phi +(K,K*)-bar, piK and elastic
2464 IF( ((lb1.eq.23.or.lb1.eq.21.or.iabs(lb1).eq.30) .and.
2465 & (lb2.ge.25.and.lb2.le.28)) .OR.
2466 & ((lb2.eq.23.or.lb2.eq.21.or.iabs(lb2).eq.30) .and.
2467 & (lb1.ge.25.and.lb1.le.28)) ) go to 8799
2469 c* K*(-bar) + pi --> phi + (K,K*)-bar
2470 IF( (iabs(lb1).eq.30.and.(lb2.ge.3.and.lb2.le.5)) .OR.
2471 & (iabs(lb2).eq.30.and.(lb1.ge.3.and.lb1.le.5)) )go to 8799
2474 c* phi + N --> pi+N(D), rho+N(D), K+ +La
2475 c* phi + D --> pi+N(D), rho+N(D)
2476 IF( (lb1.eq.29 .and.(lb2.eq.1.or.lb2.eq.2.or.
2477 & (lb2.ge.6.and.lb2.le.9))) .OR.
2478 & (lb2.eq.29 .and.(lb1.eq.1.or.lb1.eq.2.or.
2479 & (lb1.ge.6.and.lb1.le.9))) )go to 7222
2481 c* phi + (pi,rho,ome,K,K*-bar) --> K+K, K+K*, K*+K*, (pi,rho,omega)+(K,K*-bar)
2482 IF( (lb1.eq.29 .and.((lb2.ge.3.and.lb2.le.5).or.
2483 & (lb2.ge.21.and.lb2.le.28).or.iabs(lb2).eq.30)) .OR.
2484 & (lb2.eq.29 .and.((lb1.ge.3.and.lb1.le.5).or.
2485 & (lb1.ge.21.and.lb1.le.28).or.iabs(lb1).eq.30)) )THEN
2490 * La/Si, Cas, Om (bar)-(rho,omega,phi) elastic colln
2491 * pion vs. La, Ca, Omega-(bar) elastic coll. treated in resp. subroutines
2492 if( ((iabs(lb1).ge.14.and.iabs(lb1).le.17).or.iabs(lb1).ge.40)
2493 & .and.((lb2.ge.25.and.lb2.le.29).or.lb2.eq.0) )go to 888
2494 if( ((iabs(lb2).ge.14.and.iabs(lb2).le.17).or.iabs(lb2).ge.40)
2495 & .and.((lb1.ge.25.and.lb1.le.29).or.lb1.eq.0) )go to 888
2497 c K+/K* (N,R) OR K-/K*- (N,R)-bar elastic scatt
2498 if( ((lb1.eq.23.or.lb1.eq.30).and.(lb2.eq.1.or.lb2.eq.2.or.
2499 & (lb2.ge.6.and.lb2.le.13))) .OR.
2500 & ((lb2.eq.23.or.lb2.eq.30).and.(lb1.eq.1.or.lb1.eq.2.or.
2501 & (lb1.ge.6.and.lb1.le.13))) ) go to 888
2502 if( ((lb1.eq.21.or.lb1.eq.-30).and.(lb2.eq.-1.or.lb2.eq.-2.or.
2503 & (lb2.ge.-13.and.lb2.le.-6))) .OR.
2504 & ((lb2.eq.21.or.lb2.eq.-30).and.(lb1.eq.-1.or.lb1.eq.-2.or.
2505 & (lb1.ge.-13.and.lb1.le.-6))) ) go to 888
2507 * L/S-baryon elastic collision
2508 If( ((lb1.ge.14.and.lb1.le.17).and.(lb2.ge.6.and.lb2.le.13))
2509 & .OR.((lb2.ge.14.and.lb2.le.17).and.(lb1.ge.6.and.lb1.le.13)) )
2511 If(((lb1.le.-14.and.lb1.ge.-17).and.(lb2.le.-6.and.lb2.ge.-13))
2512 &.OR.((lb2.le.-14.and.lb2.ge.-17).and.(lb1.le.-6.and.lb1.ge.-13)))
2515 c skip other collns with perturbative particles or hyperon-bar
2516 if( iabs(lb1).ge.40 .or. iabs(lb2).ge.40
2517 & .or. (lb1.le.-14.and.lb1.ge.-17)
2518 & .or. (lb2.le.-14.and.lb2.ge.-17) )go to 400
2521 * anti-baryon on baryon resonaces
2522 if((lb1.eq.-1.or.lb1.eq.-2.or.(lb1.ge.-13.and.lb1.le.-6))
2523 1 .and.(lb2.eq.1.or.lb2.eq.2.or.(lb2.ge.6.and.lb2.le.13))) then
2525 else if((lb2.eq.-1.or.lb2.eq.-2.or.(lb2.ge.-13.and.lb2.le.-6))
2526 1 .and.(lb1.eq.1.or.lb1.eq.2.or.(lb1.ge.6.and.lb1.le.13))) then
2530 clin-10/25/02 get rid of argument usage mismatch in newka():
2532 c call newka(icase,irun,iseed,dt,nt,
2533 clin-5/01/03 set iblock value in art1f.f, necessary for resonance studies:
2534 c call newka(icase,inewka,iseed,dt,nt,
2535 c & ictrl,i1,i2,srt,pcx,pcy,pcz)
2536 call newka(icase,inewka,iseed,dt,nt,
2537 & ictrl,i1,i2,srt,pcx,pcy,pcz,iblock)
2540 IF (ICTRL .EQ. 1) GOTO 400
2542 * SEPARATE NUCLEON+NUCLEON( BARYON RESONANCE+ BARYON RESONANCE ELASTIC
2543 * COLLISION), BARYON RESONANCE+NUCLEON AND BARYON-PION
2544 * COLLISIONS INTO THREE PARTS TO CHECK IF THEY ARE GOING TO SCATTER,
2545 * WE only allow L/S to COLLIDE elastically with a nucleon and meson
2546 if((iabs(lb1).ge.14.and.iabs(lb1).le.17).
2547 & or.(iabs(lb2).ge.14.and.iabs(lb2).le.17))go to 400
2548 * IF PION+PION COLLISIONS GO TO 777
2549 * if pion+eta, eta+eta to create kaons go to 777
2550 IF((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5))GO TO 777
2551 if(lb1.eq.0.and.(lb2.ge.3.and.lb2.le.5)) go to 777
2552 if(lb2.eq.0.and.(lb1.ge.3.and.lb1.le.5)) go to 777
2553 if(lb1.eq.0.and.lb2.eq.0)go to 777
2554 * we assume that rho and omega behave the same way as pions in
2556 * (1) rho(omega)+rho(omega)
2557 if( (lb1.ge.25.and.lb1.le.28).and.
2558 & (lb2.ge.25.and.lb2.le.28) )goto 777
2559 * (2) rho(omega)+pion
2560 If((lb1.ge.25.and.lb1.le.28).and.(lb2.ge.3.and.lb2.le.5))go to 777
2561 If((lb2.ge.25.and.lb2.le.28).and.(lb1.ge.3.and.lb1.le.5))go to 777
2562 * (3) rho(omega)+eta
2563 if((lb1.ge.25.and.lb1.le.28).and.lb2.eq.0)go to 777
2564 if((lb2.ge.25.and.lb2.le.28).and.lb1.eq.0)go to 777
2566 * if kaon+pion collisions go to 889
2567 if((lb1.eq.23.or.lb1.eq.21).and.(lb2.ge.3.and.lb2.le.5))go to 889
2568 if((lb2.eq.23.or.lb2.eq.21).and.(lb1.ge.3.and.lb1.le.5))go to 889
2570 clin-2/06/03 skip all other (K K* Kbar K*bar) channels:
2571 * SKIP all other K and K* RESCATTERINGS
2572 If(iabs(lb1).eq.30.or.iabs(lb2).eq.30) go to 400
2573 If(lb1.eq.21.or.lb2.eq.21) go to 400
2574 If(lb1.eq.23.or.lb2.eq.23) go to 400
2576 * IF PION+baryon COLLISION GO TO 3
2577 IF( (LB1.ge.3.and.LB1.le.5) .and.
2578 & (iabs(LB2).eq.1.or.iabs(LB2).eq.2.or.
2579 & (iabs(LB2).ge.6.and.iabs(LB2).le.13)) )GO TO 3
2580 IF( (LB2.ge.3.and.LB2.le.5) .and.
2581 & (iabs(LB1).eq.1.or.iabs(LB1).eq.2.or.
2582 & (iabs(LB1).ge.6.and.iabs(LB1).le.13)) )GO TO 3
2584 * IF rho(omega)+NUCLEON (baryon resonance) COLLISION GO TO 33
2585 IF( (LB1.ge.25.and.LB1.le.28) .and.
2586 & (iabs(LB2).eq.1.or.iabs(LB2).eq.2.or.
2587 & (iabs(LB2).ge.6.and.iabs(LB2).le.13)) )GO TO 33
2588 IF( (LB2.ge.25.and.LB2.le.28) .and.
2589 & (iabs(LB1).eq.1.or.iabs(LB1).eq.2.or.
2590 & (iabs(LB1).ge.6.and.iabs(LB1).le.13)) )GO TO 33
2592 * IF ETA+NUCLEON (baryon resonance) COLLISIONS GO TO 547
2594 & (iabs(LB2).eq.1.or.iabs(LB2).eq.2.or.
2595 & (iabs(LB2).ge.6.and.iabs(LB2).le.13)) )GO TO 547
2597 & (iabs(LB1).eq.1.or.iabs(LB1).eq.2.or.
2598 & (iabs(LB1).ge.6.and.iabs(LB1).le.13)) )GO TO 547
2600 * IF NUCLEON+BARYON RESONANCE COLLISION GO TO 44
2601 IF((LB1.eq.1.or.lb1.eq.2).
2602 & AND.(LB2.GT.5.and.lb2.le.13))GOTO 44
2603 IF((LB2.eq.1.or.lb2.eq.2).
2604 & AND.(LB1.GT.5.and.lb1.le.13))GOTO 44
2605 IF((LB1.eq.-1.or.lb1.eq.-2).
2606 & AND.(LB2.LT.-5.and.lb2.ge.-13))GOTO 44
2607 IF((LB2.eq.-1.or.lb2.eq.-2).
2608 & AND.(LB1.LT.-5.and.lb1.ge.-13))GOTO 44
2610 * IF NUCLEON+NUCLEON COLLISION GO TO 4
2611 IF((LB1.eq.1.or.lb1.eq.2).AND.(LB2.eq.1.or.lb2.eq.2))GOTO 4
2612 IF((LB1.eq.-1.or.lb1.eq.-2).AND.(LB2.eq.-1.or.lb2.eq.-2))GOTO 4
2614 * IF BARYON RESONANCE+BARYON RESONANCE COLLISION GO TO 444
2615 IF((LB1.GT.5.and.lb1.le.13).AND.
2616 & (LB2.GT.5.and.lb2.le.13)) GOTO 444
2617 IF((LB1.LT.-5.and.lb1.ge.-13).AND.
2618 & (LB2.LT.-5.and.lb2.ge.-13)) GOTO 444
2620 * if L/S+L/S or L/s+nucleon go to 400
2621 * otherwise, develop a model for their collisions
2622 if((lb1.lt.3).and.(lb2.ge.14.and.lb2.le.17))goto 400
2623 if((lb2.lt.3).and.(lb1.ge.14.and.lb1.le.17))goto 400
2624 if((lb1.ge.14.and.lb1.le.17).and.
2625 & (lb2.ge.14.and.lb2.le.17))goto 400
2627 * otherwise, go out of the loop
2631 547 IF(LB1*LB2.EQ.0)THEN
2632 * (1) FOR ETA+NUCLEON SYSTEM, we allow both elastic collision,
2633 * i.e. N*(1535) formation and kaon production
2634 * the total kaon production cross section is
2635 * ASSUMED to be THE SAME AS PION+NUCLEON COLLISIONS
2636 * (2) for eta+baryon resonance we only allow kaon production
2637 ece=(em1+em2+0.02)**2
2639 if(srt.ge.1.63.AND.SRT.LE.1.7)xkaon0=pnlka(srt)
2640 IF(SRT.GT.1.7)XKAON0=PNLKA(SRT)+pnska(srt)
2642 XKAON0 = 2.0 * XKAON0
2643 cbz3/7/99 neutralk end
2645 * Here we negelect eta+n inelastic collisions other than the
2646 * kaon production, therefore the total inelastic cross section
2647 * xkaon equals to the xkaon0 (kaon production cross section)
2649 * note here the xkaon is in unit of fm**2
2650 XETA=XN1535(I1,I2,0)
2651 If((iabs(LB(I1)).ge.6.and.iabs(LB(I1)).le.13).or.
2652 & (iabs(LB(I2)).ge.6.and.iabs(LB(I2)).le.13)) xeta=0.
2653 IF((XETA+xkaon).LE.1.e-06)GO TO 400
2654 DSE=SQRT((XETA+XKAON)/PI)
2659 * CHECK IF N*(1535) resonance CAN BE FORMED
2660 CALL DISTCE(I1,I2,DELTRE,DSE,DT,ECE,SRT,IC,
2662 IF(IC.EQ.-1) GO TO 400
2663 ekaon(4,iss)=ekaon(4,iss)+1
2664 IF(XKAON0/(XKAON+XETA).GT.RANART(NSEED))then
2665 * kaon production, USE CREN TO CALCULATE THE MOMENTUM OF L/S K+
2666 CALL CREN(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
2668 IF(IBLOCK.EQ.7) then
2670 elseIF(IBLOCK.EQ.-7) then
2677 * N*(1535) FORMATION
2681 *IF PION+NUCLEON (baryon resonance) COLLISION THEN
2686 * the total kaon production cross section for pion+baryon (resonance) is
2687 * assumed to be the same as in pion+nucleon
2689 if(srt.ge.1.63.AND.SRT.LE.1.7)xkaon0=pnlka(srt)
2690 IF(SRT.GT.1.7)XKAON0=PNLKA(SRT)+pnska(srt)
2691 XKAON0 = 2.0 * XKAON0
2693 c sp11/21/01 phi production: pi +N(D) -> phi + N(D)
2695 if( ( ((lb1.ge.1.and.lb1.le.2).or.
2696 & (lb1.ge.6.and.lb1.le.9))
2697 & .OR.((lb2.ge.1.and.lb2.le.2).or.
2698 & (lb2.ge.6.and.lb2.le.9)) )
2699 & .AND. srt.gt.1.958)
2700 & call pibphi(srt,lb1,lb2,em1,em2,Xphi,xphin)
2703 * if a pion collide with a baryon resonance,
2704 * we only allow kaon production AND the reabsorption
2705 * processes: Delta+pion-->N+pion, N*+pion-->N+pion
2706 * Later put in pion+baryon resonance elastic
2707 * cross through forming higher resonances implicitly.
2708 c If(em1.gt.1.or.em2.gt.1.)go to 31
2709 If((iabs(LB(I1)).ge.6.and.iabs(LB(I1)).le.13).or.
2710 & (iabs(LB(I2)).ge.6.and.iabs(LB(I2)).le.13)) go to 31
2711 * For pion+nucleon collisions:
2712 * using the experimental pion+nucleon inelastic cross section, we assume it
2713 * is exhausted by the Delta+pion, Delta+rho and Delta+omega production
2714 * and kaon production. In the following we first check whether
2715 * inelastic pion+n collision can happen or not, then determine in
2716 * crpn whether it is through pion production or through kaon production
2717 * note that the xkaon0 is the kaon production cross section
2718 * Note in particular that:
2719 * xkaon in the following is the total pion+nucleon inelastic cross section
2720 * note here the xkaon is in unit of fm**2, xnpi is also in unit of fm**2
2721 * FOR PION+NUCLEON SYSTEM, THE MINIMUM S IS 1.2056 the minimum srt for
2722 * elastic scattering, and it is 1.60 for pion production, 1.63 for LAMBDA+kaon
2723 * production and 1.7 FOR SIGMA+KAON
2724 * (EC = PION MASS+NUCLEON MASS+20MEV)**2
2725 EC=(em1+em2+0.02)**2
2727 if(srt.gt.1.23)xkaon=(pionpp(srt)+PIPP1(SRT))/2.
2728 * pion+nucleon elastic cross section is divided into two parts:
2729 * (1) forming D(1232)+N*(1440) +N*(1535)
2730 * (2) cross sections forming higher resonances are calculated as
2731 * the difference between the total elastic and (1), this part is
2732 * treated as direct process since we do not explicitLY include
2733 * higher resonances.
2734 * the following is the resonance formation cross sections.
2735 *1. PION(+)+PROTON-->DELTA++,PION(-)+NEUTRON-->DELTA(-)
2736 IF( (LB1*LB2.EQ.5.OR.((LB1*LB2.EQ.6).AND.
2737 & (LB1.EQ.3.OR.LB2.EQ.3)))
2738 & .OR. (LB1*LB2.EQ.-3.OR.((LB1*LB2.EQ.-10).AND.
2739 & (LB1.EQ.5.OR.LB2.EQ.5))) )then
2746 *2. PION(-)+PROTON-->DELTA0,PION(+)+NEUTRON-->DELTA+
2747 * or N*(+)(1440) or N*(+)(1535)
2748 * note the factor 2/3 is from the isospin consideration and
2749 * the factor 0.6 or 0.5 is the branching ratio for the resonance to decay
2751 IF( (LB1*LB2.EQ.3.OR.((LB1*LB2.EQ.10).AND.
2752 & (LB1.EQ.5.OR.LB2.EQ.5)))
2753 & .OR. (LB1*LB2.EQ.-5.OR.((LB1*LB2.EQ.-6).AND.
2754 & (LB1.EQ.3.OR.LB2.EQ.3))) )then
2757 xmaxn1=2./3.*40.*0.5
2761 *3. PION0+PROTON-->DELTA+,PION0+NEUTRON-->DELTA0, or N*(0)(1440) or N*(0)(1535)
2762 IF((LB1.EQ.4.OR.LB2.EQ.4).AND.
2763 & (iabs(LB1*LB2).EQ.4.OR.iabs(LB1*LB2).EQ.8))then
2772 XNPID=XNPI(I1,I2,1,XMAX)
2773 if(xmaxn1.ne.0)xnpin1=XNPI(i1,i2,2,XMAXN1)
2774 if(xmaxn.ne.0)XNPIN=XNPI(I1,I2,0,XMAXN)
2776 xres=xnpid+xnpin+xnpin1
2780 * For pion + baryon resonance the reabsorption
2781 * cross section is calculated from the detailed balance
2782 * using reab(i1,i2,srt,ictrl), ictrl=1, 2 and 3
2783 * for pion, rho and omega + baryon resonance
2784 31 ec=(em1+em2+0.02)**2
2785 xreab=reab(i1,i2,srt,1)
2787 clin-12/02/00 to satisfy detailed balance, forbid N* absorptions:
2788 if((iabs(lb1).ge.10.and.iabs(lb1).le.13)
2789 1 .or.(iabs(lb2).ge.10.and.iabs(lb2).le.13)) XREAB = 0.
2792 * a constant of 10 mb IS USED FOR PION + N* RESONANCE,
2793 IF((iabs(LB1).GT.9.AND.iabs(LB1).LE.13) .OR.
2794 & (iabs(LB2).GT.9.AND.iabs(LB2).LE.13))THEN
2797 XNELAS=DPION(EM1,EM2,LB1,LB2,SRT)
2800 34 IF((Xnelas+xkaon+Xphi).LE.0.000001)GO TO 400
2801 DS=SQRT((Xnelas+xkaon+Xphi)/PI)
2803 c totcr = xnelas+xkaon
2804 c if(srt .gt. 3.5)totcr = max1(totcr,3.)
2809 CALL DISTCE(I1,I2,DELTAR,DS,DT,EC,SRT,IC,
2811 IF(IC.EQ.-1) GO TO 400
2812 ekaon(4,iss)=ekaon(4,iss)+1
2814 * check what kind of collision has happened
2815 * (1) pion+baryon resonance
2816 * if direct elastic process
2819 if(xnelas/(xnelas+xkaon+Xphi).ge.RANART(NSEED))then
2820 c call Crdir(PX1CM,PY1CM,PZ1CM,SRT,I1,I2)
2821 call Crdir(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
2824 * for inelastic process, go to 96 to check
2825 * kaon production and pion reabsorption : pion+D(N*)-->pion+N
2830 * CHECK IF inELASTIC COLLISION IS POSSIBLE FOR PION+N COLLISIONS
2831 clin-8/17/00 typo corrected, many other occurences:
2832 c IF(XKAON/(XKAON+Xnelas).GT.RANART(NSEED))GO TO 95
2833 IF((XKAON+Xphi)/(XKAON+Xphi+Xnelas).GT.RANART(NSEED))GO TO 95
2836 if(xdirct/xnelas.ge.RANART(NSEED))then
2837 c call Crdir(PX1CM,PY1CM,PZ1CM,SRT,I1,I2)
2838 call Crdir(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
2841 * now resonance formation or direct process (higher resonances)
2842 IF( (LB1*LB2.EQ.5.OR.((LB1*LB2.EQ.6).AND.
2843 & (LB1.EQ.3.OR.LB2.EQ.3)))
2844 & .OR. (LB1*LB2.EQ.-3.OR.((LB1*LB2.EQ.-10).AND.
2845 & (LB1.EQ.5.OR.LB2.EQ.5))) )then
2847 * ONLY DELTA RESONANCE IS POSSIBLE, go to 99
2850 * NOW BOTH DELTA AND N* RESORANCE ARE POSSIBLE
2851 * DETERMINE THE RESORANT STATE BY USING THE MONTRE CARLO METHOD
2852 XX=(XNPIN+xnpin1)/xres
2853 IF(RANART(NSEED).LT.XX)THEN
2854 * N* RESONANCE IS SELECTED
2855 * decide N*(1440) or N*(1535) formation
2856 xx0=xnpin/(xnpin+xnpin1)
2857 if(RANART(NSEED).lt.xx0)then
2859 * N*(1440) formation
2862 * N*(1535) formation
2867 * DELTA RESONANCE IS SELECTED
2872 IF(RESONA.EQ.0.)THEN
2873 *N*(1440) IS PRODUCED,WE DETERMINE THE CHARGE STATE OF THE PRODUCED N*
2876 * (0.1) n+pion(+)-->N*(+)
2877 IF( (LB1*LB2.EQ.10.AND.(LB1.EQ.5.OR.LB2.EQ.5))
2878 & .OR.(LB1*LB2.EQ.-6.AND.(LB1.EQ.3.OR.LB2.EQ.3)) )THEN
2882 * (0.2) p+pion(0)-->N*(+)
2883 c IF(LB(I1)*LB(I2).EQ.4.AND.(LB(I1).EQ.1.OR.LB(I2).EQ.1))THEN
2884 IF(iabs(LB(I1)*LB(I2)).EQ.4.AND.
2885 & (LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
2889 * (0.3) n+pion(0)-->N*(0)
2890 c IF(LB(I1)*LB(I2).EQ.8.AND.(LB(I1).EQ.2.OR.LB(I2).EQ.2))THEN
2891 IF(iabs(LB(I1)*LB(I2)).EQ.8.AND.
2892 & (LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
2896 * (0.4) p+pion(-)-->N*(0)
2897 c IF(LB(I1)*LB(I2).EQ.3)THEN
2898 IF( (LB(I1)*LB(I2).EQ.3)
2899 & .OR.(LB(I1)*LB(I2).EQ.-5) )THEN
2902 303 CALL DRESON(I1,I2)
2903 if(LB1.lt.0.or.LB2.lt.0) LB(I)=-LB(I)
2906 *COM: GO TO 101 TO CHANGE THE PHASE SPACE DENSITY OF THE NUCLEON
2908 98 IF(RESONA.EQ.1.)THEN
2909 *N*(1535) IS PRODUCED, WE DETERMINE THE CHARGE STATE OF THE PRODUCED N*
2912 * note: this condition applies to both eta and pion
2913 * (0.1) n+pion(+)-->N*(+)
2914 c IF(LB1*LB2.EQ.10.AND.(LB1.EQ.2.OR.LB2.EQ.2))THEN
2915 IF( (LB1*LB2.EQ.10.AND.(LB1.EQ.5.OR.LB2.EQ.5))
2916 & .OR.(LB1*LB2.EQ.-6.AND.(LB1.EQ.3.OR.LB2.EQ.3)) )THEN
2920 * (0.2) p+pion(0)-->N*(+)
2921 c IF(LB(I1)*LB(I2).EQ.4.AND.(LB(I1).EQ.1.OR.LB(I2).EQ.1))THEN
2922 IF(iabs(LB(I1)*LB(I2)).EQ.4.AND.
2923 & (LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
2927 * (0.3) n+pion(0)-->N*(0)
2928 c IF(LB(I1)*LB(I2).EQ.8.AND.(LB(I1).EQ.2.OR.LB(I2).EQ.2))THEN
2929 IF(iabs(LB(I1)*LB(I2)).EQ.8.AND.
2930 & (LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
2934 * (0.4) p+pion(-)-->N*(0)
2935 c IF(LB(I1)*LB(I2).EQ.3)THEN
2936 IF( (LB(I1)*LB(I2).EQ.3)
2937 & .OR.(LB(I1)*LB(I2).EQ.-5) )THEN
2941 * (0.5) p+eta-->N*(+)(1535),n+eta-->N*(0)(1535)
2942 if(lb(i1)*lb(i2).eq.0)then
2943 c if((lb(i1).eq.1).or.(lb(i2).eq.1))then
2944 if(iabs(lb(i1)).eq.1.or.iabs(lb(i2)).eq.1)then
2951 304 CALL DRESON(I1,I2)
2952 if(LB1.lt.0.or.LB2.lt.0) LB(I)=-LB(I)
2955 *COM: GO TO 101 TO CHANGE THE PHASE SPACE DENSITY OF THE NUCLEON
2957 *DELTA IS PRODUCED,IN THE FOLLOWING WE DETERMINE THE
2958 *CHARGE STATE OF THE PRODUCED DELTA
2962 * (1) p+pion(+)-->DELTA(++)
2963 c IF(LB(I1)*LB(I2).EQ.5)THEN
2964 IF( (LB(I1)*LB(I2).EQ.5)
2965 & .OR.(LB(I1)*LB(I2).EQ.-3) )THEN
2969 * (2) p+pion(0)-->delta(+)
2970 c IF(LB(I1)*LB(I2).EQ.4.AND.(LB(I1).EQ.1.OR.LB(I2).EQ.1))then
2971 IF(iabs(LB(I1)*LB(I2)).EQ.4.AND.(LB(I1).EQ.4.OR.LB(I2).EQ.4))then
2975 * (3) n+pion(+)-->delta(+)
2976 c IF(LB(I1)*LB(I2).EQ.10.AND.(LB(I1).EQ.2.OR.LB(I2).EQ.2))THEN
2977 IF( (LB(I1)*LB(I2).EQ.10.AND.(LB(I1).EQ.5.OR.LB(I2).EQ.5))
2978 & .OR.(LB(I1)*LB(I2).EQ.-6.AND.(LB(I1).EQ.3.OR.LB(I2).EQ.3)) )THEN
2982 * (4) n+pion(0)-->delta(0)
2983 c IF(LB(I1)*LB(I2).EQ.8.AND.(LB(I1).EQ.2.OR.LB(I2).EQ.2))THEN
2984 IF(iabs(LB(I1)*LB(I2)).EQ.8.AND.(LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
2988 * (5) p+pion(-)-->delta(0)
2989 c IF(LB(I1)*LB(I2).EQ.3)THEN
2990 IF( (LB(I1)*LB(I2).EQ.3)
2991 & .OR.(LB(I1)*LB(I2).EQ.-5) )THEN
2995 * (6) n+pion(-)-->delta(-)
2996 c IF(LB(I1)*LB(I2).EQ.6.AND.(LB(I1).EQ.2.OR.LB(I2).EQ.2))THEN
2997 IF( (LB(I1)*LB(I2).EQ.6.AND.(LB(I1).EQ.3.OR.LB(I2).EQ.3))
2998 & .OR.(LB(I1)*LB(I2).EQ.-10.AND.(LB(I1).EQ.5.OR.LB(I2).EQ.5)) )THEN
3001 305 CALL DRESON(I1,I2)
3002 if(LB1.lt.0.or.LB2.lt.0) LB(I)=-LB(I)
3006 * FOR kaON+pion COLLISIONS, form K* (bar) or
3007 c La/Si-bar + N <-- pi + K+
3008 c La/Si + N-bar <-- pi + K-
3009 c phi + K <-- pi + K
3010 clin (rho,omega) + K* <-- pi + K
3015 EC=(em1+em2+0.02)**2
3016 * the cross section is from C.M. Ko, PRC 23, 2760 (1981).
3017 spika=60./(1.+4.*(srt-0.895)**2/(0.05)**2)
3019 cc if(lb(i1).eq.23.or.lb(i2).eq.23)then !! block K- + pi->La + B-bar
3021 call Crkpla(PX1CM,PY1CM,PZ1CM,EC,SRT,spika,
3022 & emm1,emm2,lbp1,lbp2,I1,I2,icase,srhoks)
3024 c* only K* or K*bar formation
3026 c DSkn=SQRT(spika/PI/10.)
3028 c CALL DISTCE(I1,I2,dsknr,DSkn,DT,EC,SRT,IC,
3029 c 1 PX1CM,PY1CM,PZ1CM)
3030 c IF(IC.EQ.-1) GO TO 400
3034 if(icase .eq. 0) then
3039 if(icase .eq. 1)then
3041 clin-4/30/03 give non-zero iblock for resonance selections:
3043 ctest off for resonance (phi, K*) studies:
3044 c if(iabs(lb(i1)).eq.30) then
3045 c write(17,112) 'ks',lb(i1),p(1,i1),p(2,i1),p(3,i1),e(i1),nt
3046 c elseif(iabs(lb(i2)).eq.30) then
3047 c write(17,112) 'ks',lb(i2),p(1,i2),p(2,i2),p(3,i2),e(i2),nt
3052 elseif(icase .eq. 2)then
3055 * La/Si (bar) formation
3057 elseif(iabs(icase).eq.5)then
3077 * (1) if rho or omega collide with a nucleon we allow both elastic
3078 * scattering and kaon production to happen if collision conditions
3080 * (2) if rho or omega collide with a baryon resonance we allow
3081 * kaon production, pion reabsorption: rho(omega)+D(N*)-->pion+N
3082 * and NO elastic scattering to happen
3084 if((lb1.ge.25.and.lb1.le.28).and.
3085 & (iabs(lb2).eq.1.or.iabs(lb2).eq.2))
3086 & xelstc=ERHON(EM1,EM2,LB1,LB2,SRT)
3087 if((lb2.ge.25.and.lb2.le.28).and.
3088 & (iabs(lb1).eq.1.or.iabs(lb1).eq.2))
3089 & xelstc=ERHON(EM1,EM2,LB1,LB2,SRT)
3090 ec=(em1+em2+0.02)**2
3091 * the kaon production cross section is
3093 if(srt.ge.1.63.AND.SRT.LE.1.7)xkaon0=pnlka(srt)
3094 IF(SRT.GT.1.7)XKAON0=PNLKA(SRT)+pnska(srt)
3095 if(xkaon0.lt.0)xkaon0=0
3098 XKAON0 = 2.0 * XKAON0
3099 cbz3/7/99 neutralk end
3101 * the total inelastic cross section for rho(omega)+N is
3104 * the total inelastic cross section for rho (omega)+D(N*) is
3105 * xkaon=xkaon0+reab(**)
3107 c sp11/21/01 phi production: rho + N(D) -> phi + N(D)
3109 if( ( (((lb1.ge.1.and.lb1.le.2).or.
3110 & (lb1.ge.6.and.lb1.le.9))
3111 & .and.(lb2.ge.25.and.lb2.le.27))
3112 & .OR.(((lb2.ge.1.and.lb2.le.2).or.
3113 & (lb2.ge.6.and.lb2.le.9))
3114 & .and.(lb1.ge.25.and.lb1.le.27)) ).AND. srt.gt.1.958)
3115 & call pibphi(srt,lb1,lb2,em1,em2,Xphi,xphin)
3118 if((iabs(lb1).ge.6.and.lb2.ge.25).or.
3119 & (lb1.ge.25.and.iabs(lb2).ge.6))then
3122 if(lb1.eq.28.or.lb2.eq.28)ictrl=3
3123 xreab=reab(i1,i2,srt,ictrl)
3125 clin-12/02/00 to satisfy detailed balance, forbid N* absorptions:
3126 if((iabs(lb1).ge.10.and.iabs(lb1).le.13)
3127 1 .or.(iabs(lb2).ge.10.and.iabs(lb2).le.13)) XREAB = 0.
3129 if(xreab.lt.0)xreab=1.E-06
3133 DS=SQRT((XKAON+Xphi+xelstc)/PI)
3136 c totcr = xelstc+xkaon
3137 c if(srt .gt. 3.5)totcr = max1(totcr,3.)
3145 * CHECK IF the collision can happen
3146 CALL DISTCE(I1,I2,DELTAR,DS,DT,EC,SRT,IC,
3148 IF(IC.EQ.-1) GO TO 400
3149 ekaon(4,iss)=ekaon(4,iss)+1
3151 * NOW rho(omega)+N or D(N*) COLLISION IS POSSIBLE
3152 * (1) check elastic collision
3153 if(xelstc/(xelstc+xkaon+Xphi).gt.RANART(NSEED))then
3154 c call crdir(px1CM,py1CM,pz1CM,srt,I1,i2)
3155 call crdir(px1CM,py1CM,pz1CM,srt,I1,i2,IBLOCK)
3158 * (2) check pion absorption or kaon production
3159 CALL CRRD(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3160 1 IBLOCK,xkaon0,xkaon,Xphi,xphin)
3164 IF(IBLOCK.EQ.7) then
3166 elseIF(IBLOCK.EQ.-7) then
3170 if(iblock.eq.81) lrhor=lrhor+1
3172 if(iblock.eq.82) lomgar=lomgar+1
3176 * for pion+n now using the subroutine crpn to change
3177 * the particle label and set the new momentum of L/S+K final state
3179 * NOW PION+N INELASTIC COLLISION IS POSSIBLE
3180 * check pion production or kaon production
3181 CALL CRPN(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3182 1 IBLOCK,xkaon0,xkaon,Xphi,xphin)
3186 IF(IBLOCK.EQ.7) then
3188 elseIF(IBLOCK.EQ.-7) then
3192 if(iblock.eq.77) lpd=lpd+1
3194 if(iblock.eq.78) lrho=lrho+1
3196 if(iblock.eq.79) lomega=lomega+1
3200 * for pion+D(N*) now using the subroutine crpd to
3201 * (1) check kaon production or pion reabsorption
3202 * (2) change the particle label and set the new
3203 * momentum of L/S+K final state
3205 CALL CRPD(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3206 1 IBLOCK,xkaon0,xkaon,Xphi,xphin)
3210 IF(IBLOCK.EQ.7) then
3212 elseIF(IBLOCK.EQ.-7) then
3216 if(iblock.eq.80) lpdr=lpdr+1
3220 * CALCULATE KAON PRODUCTION PROBABILITY FROM PION + N COLLISIONS
3221 C IF(SRT.GT.1.615)THEN
3222 C CALL PKAON(SRT,XXp,PK)
3223 C TKAON(7)=TKAON(7)+PK
3224 C EKAON(7,ISS)=EKAON(7,ISS)+1
3225 c CALL KSPEC1(SRT,PK)
3226 C call LK(3,srt,iseed,pk)
3228 * negelecting the pauli blocking at high energies
3231 IF(E(I2).EQ.0.)GO TO 600
3232 IF(E(I1).EQ.0.)GO TO 800
3233 * IF NUCLEON+BARYON RESONANCE COLLISIONS
3235 * CALCULATE THE TOTAL CROSS SECTION OF NUCLEON+ BARYON RESONANCE COLLISION
3236 * WE ASSUME THAT THE ELASTIC CROSS SECTION IS THE SAME AS NUCLEON+NUCLEON
3237 * COM: WE USE THE PARAMETERISATION BY CUGNON FOR LOW ENERGIES
3238 * AND THE PARAMETERIZATIONS FROM CERN DATA BOOK FOR HIGHER
3239 * ENERGIES. THE CUTOFF FOR THE TOTAL CROSS SECTION IS 55 MB
3241 IF(SRT.LE.CUTOFF)GO TO 400
3242 IF(SRT.GT.2.245)THEN
3245 SIGNN = 35.0 / (1. + (SRT - CUTOFF) * 100.0) + 20.0
3247 call XND(pcx,pcy,pcz,srt,I1,I2,xinel,
3248 & sigk,xsk1,xsk2,xsk3,xsk4,xsk5)
3250 * For nucleon+baryon resonance collision, the minimum cms**2 energy is
3251 EC=(EM1+EM2+0.02)**2
3252 * CHECK THE DISTENCE BETWEEN THE TWO PARTICLES
3257 clin-6/2008 Deuteron production:
3259 if(lb(i1).lt.0 .and. lb(i2).lt.0) ianti=1
3260 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
3262 clin-6/2008 perturbative treatment of deuterons:
3264 if(idpert.eq.1) then
3267 dspert=sqrt(sigr0/pi/10.)
3269 CALL DISTCE(I1,I2,dsrpert,dspert,DT,EC,SRT,IC,
3270 1 PX1CM,PY1CM,PZ1CM)
3271 IF(IC.EQ.-1) GO TO 363
3273 CALL CRND(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3274 & IBLOCK,SIGNN0,SIGr0,sigk,xsk1,xsk2,xsk3,xsk4,xsk5,NT,ipert1)
3275 c & IBLOCK,SIGNN,SIG,sigk,xsk1,xsk2,xsk3,xsk4,xsk5)
3280 if(idpert.eq.2) ipert1=1
3282 DS=SQRT(SIG/(10.*PI))
3284 CALL DISTCE(I1,I2,DELTAR,DS,DT,EC,SRT,IC,
3285 1 PX1CM,PY1CM,PZ1CM)
3286 c IF(IC.EQ.-1)GO TO 400
3288 if(ipdflag.eq.1) iblock=501
3292 ekaon(3,iss)=ekaon(3,iss)+1
3293 * CALCULATE KAON PRODUCTION PROBABILITY FROM NUCLEON + BARYON RESONANCE
3297 * CHECK WHAT KIND OF COLLISION HAS HAPPENED
3299 CALL CRND(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3300 & IBLOCK,SIGNN,SIG,sigk,xsk1,xsk2,xsk3,xsk4,xsk5,NT,ipert1)
3301 c & IBLOCK,SIGNN,SIG,sigk,xsk1,xsk2,xsk3,xsk4,xsk5)
3302 IF(iblock.eq.0.and.ipdflag.eq.1) iblock=501
3303 IF(IBLOCK.EQ.11)THEN
3306 c elseIF(IBLOCK.EQ.-11) then
3307 elseIF(IBLOCK.EQ.-11.or.iblock.eq.501) then
3310 if(iblock .eq. 222)then
3317 * IF NUCLEON+NUCLEON OR BARYON RESONANCE+BARYON RESONANCE COLLISIONS
3319 * PREPARE THE EALSTIC CROSS SECTION FOR BARYON+BARYON COLLISIONS
3320 * COM: WE USE THE PARAMETERISATION BY CUGNON FOR SRT LEQ 2.0 GEV
3321 * AND THE PARAMETERIZATIONS FROM CERN DATA BOOK FOR HIGHER
3322 * ENERGIES. THE CUTOFF FOR THE TOTAL CROSS SECTION IS 55 MB
3323 * WITH LOW-ENERGY-CUTOFF
3325 * AT HIGH ENERGIES THE ISOSPIN DEPENDENCE IS NEGLIGIBLE
3326 * THE TOTAL CROSS SECTION IS TAKEN AS THAT OF THE PP
3327 * ABOVE E_KIN=800 MEV, WE USE THE ISOSPIN INDEPENDNET XSECTION
3328 IF(SRT.GT.2.245)THEN
3332 * AT LOW ENERGIES THE ISOSPIN DEPENDENCE FOR NN COLLISION IS STRONG
3334 IF(ZET(LB(I1))*ZET(LB(I2)).LE.0)SIG=XNP(SRT)
3335 IF(ZET(LB(I1))*ZET(LB(I2)).GT.0)SIG=XPP(SRT)
3336 IF(ZET(LB(I1)).EQ.0.
3337 & AND.ZET(LB(I2)).EQ.0)SIG=XPP(SRT)
3338 if((lb(i1).eq.-1.and.lb(i2).eq.-2) .or.
3339 & (lb(i2).eq.-1.and.lb(i1).eq.-2))sig=xnp(srt)
3340 * WITH LOW-ENERGY-CUTOFF
3341 IF (SRT .LT. 1.897) THEN
3344 SIGNN = 35.0 / (1. + (SRT - 1.897) * 100.0) + 20.0
3350 clin-5/2008 Deuteron production cross sections were not included
3351 c in the previous parameterized inelastic cross section of NN collisions
3352 c (SIGinel=SIG-SIGNN), so they are added here:
3354 if(lb(i1).lt.0 .and. lb(i2).lt.0) ianti=1
3355 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
3358 clin-5/2008 perturbative treatment of deuterons:
3360 if(idpert.eq.1) then
3361 c For idpert=1: ipert1=1 means we will first treat deuteron perturbatively,
3362 c then we set ipert1=0 to treat regular NN or NbarNbar collisions including
3363 c the regular deuteron productions.
3364 c ipdflag=1 means perturbative deuterons are produced here:
3367 c Use the same cross section for NN/NNBAR collisions
3368 c to trigger perturbative production
3370 c One can also trigger with X*sbbdm() so the weight will not be too small;
3371 c but make sure to limit the maximum trigger Xsec:
3373 c if(sigr0.ge.100.) sigr0=100.
3374 dspert=sqrt(sigr0/pi/10.)
3376 CALL DISTCE(I1,I2,dsrpert,dspert,DT,EC,SRT,IC,
3377 1 PX1CM,PY1CM,PZ1CM)
3378 IF(IC.EQ.-1) GO TO 365
3380 CALL CRNN(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK,
3381 1 NTAG,signn0,sigr0,NT,ipert1)
3386 if(idpert.eq.2) ipert1=1
3388 clin-5/2008 in case perturbative deuterons are produced for idpert=1:
3389 c IF(SIGNN.LE.0)GO TO 400
3391 if(ipdflag.eq.1) iblock=501
3398 IF((E(I1).GE.1.).AND.(e(I2).GE.1.))EC=4.75
3399 CALL DISTCE(I1,I2,dsr,ds,DT,EC,SRT,IC,
3400 1 PX1CM,PY1CM,PZ1CM)
3401 clin-5/2008 in case perturbative deuterons are produced above:
3402 c IF(IC.EQ.-1) GO TO 400
3404 if(ipdflag.eq.1) iblock=501
3408 * CALCULATE KAON PRODUCTION PROBABILITY FROM NUCLEON+NUCLEON OR
3409 * RESONANCE+RESONANCE COLLISIONS
3412 C CHECK WHAT KIND OF COLLISION HAS HAPPENED
3413 362 ekaon(1,iss)=ekaon(1,iss)+1
3414 CALL CRNN(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK,
3415 1 NTAG,SIGNN,SIG,NT,ipert1)
3416 clin-5/2008 give iblock # in case pert deuterons are produced for idpert=1:
3417 IF(iblock.eq.0.and.ipdflag.eq.1) iblock=501
3418 clin-5/2008 add iblock # for deuteron formation:
3419 c IF(IBLOCK.EQ.4.OR.IBLOCK.Eq.9.or.iblock.ge.44.OR.IBLOCK.EQ.-9
3420 c & .or.iblock.eq.222)THEN
3421 IF(IBLOCK.EQ.4.OR.IBLOCK.Eq.9.or.iblock.ge.44.OR.IBLOCK.EQ.-9
3422 & .or.iblock.eq.222.or.iblock.eq.501)THEN
3424 c !! sp12/17/01 above
3425 * momentum of the three particles in the final state have been calculated
3426 * in the crnn, go out of the loop
3430 elseif(iblock.eq.44)then
3432 elseif(iblock.eq.45)then
3434 elseif(iblock.eq.46)then
3436 elseif(iblock .eq. 222)then
3437 elseIF(IBLOCK.EQ.9) then
3439 elseIF(IBLOCK.EQ.-9) then
3447 clin-8/2008 B+B->Deuteron+Meson over
3449 clin-8/2008 Deuteron+Meson->B+B collisions:
3452 if(lb(i1).lt.0 .or. lb(i2).lt.0) ianti=1
3453 call sdmbb(SRT,sdm,ianti)
3457 c minimum srt**2, note a 2.012GeV lower cutoff is used in N+N->Deuteron+pi:
3461 CALL DISTCE(I1,I2,dsr,ds,DT,EC,SRT,IC,PX1CM,PY1CM,PZ1CM)
3462 IF(IC.EQ.-1) GO TO 400
3463 CALL crdmbb(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK,
3464 1 NTAG,sdm,NT,ianti)
3467 clin-8/2008 Deuteron+Meson->B+B collisions over
3469 clin-9/2008 Deuteron+Baryon elastic collisions:
3472 if(lb(i1).lt.0 .or. lb(i2).lt.0) ianti=1
3473 call sdbelastic(SRT,sdb)
3477 c minimum srt**2, note a 2.012GeV lower cutoff is used in N+N->Deuteron+pi:
3481 CALL DISTCE(I1,I2,dsr,ds,DT,EC,SRT,IC,PX1CM,PY1CM,PZ1CM)
3482 IF(IC.EQ.-1) GO TO 400
3483 CALL crdbel(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK,
3484 1 NTAG,sdb,NT,ianti)
3487 clin-9/2008 Deuteron+Baryon elastic collisions over
3489 * IF BARYON RESONANCE+BARYON RESONANCE COLLISIONS
3491 * PREPARE THE EALSTIC CROSS SECTION FOR BARYON+BARYON COLLISIONS
3493 * AT HIGH ENERGIES THE ISOSPIN DEPENDENCE IS NEGLIGIBLE
3494 * THE TOTAL CROSS SECTION IS TAKEN AS THAT OF THE PP
3495 IF(SRT.LE.CUTOFF)GO TO 400
3496 IF(SRT.GT.2.245)THEN
3499 SIGNN = 35.0 / (1. + (SRT - CUTOFF) * 100.0) + 20.0
3501 IF(SIGNN.LE.0)GO TO 400
3502 CALL XDDIN(PCX,PCY,PCZ,SRT,I1,I2,
3503 &XINEL,SIGK,XSK1,XSK2,XSK3,XSK4,XSK5)
3505 EC=(EM1+EM2+0.02)**2
3510 clin-6/2008 Deuteron production:
3512 if(lb(i1).lt.0 .and. lb(i2).lt.0) ianti=1
3513 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
3515 clin-6/2008 perturbative treatment of deuterons:
3517 if(idpert.eq.1) then
3520 dspert=sqrt(sigr0/pi/10.)
3522 CALL DISTCE(I1,I2,dsrpert,dspert,DT,EC,SRT,IC,
3523 1 PX1CM,PY1CM,PZ1CM)
3524 IF(IC.EQ.-1) GO TO 367
3526 CALL CRDD(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3527 1 IBLOCK,NTAG,SIGNN0,SIGr0,NT,ipert1)
3528 c 1 IBLOCK,NTAG,SIGNN,SIG)
3533 if(idpert.eq.2) ipert1=1
3537 CALL DISTCE(I1,I2,dsr,ds,DT,EC,SRT,IC,
3538 1 PX1CM,PY1CM,PZ1CM)
3539 c IF(IC.EQ.-1) GO TO 400
3541 if(ipdflag.eq.1) iblock=501
3545 * CALCULATE KAON PRODUCTION PROBABILITY FROM NUCLEON+NUCLEON OR
3546 * RESONANCE+RESONANCE COLLISIONS
3549 C CHECK WHAT KIND OF COLLISION HAS HAPPENED
3550 364 ekaon(2,iss)=ekaon(2,iss)+1
3551 * for resonance+resonance
3553 CALL CRDD(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3554 1 IBLOCK,NTAG,SIGNN,SIG,NT,ipert1)
3555 c 1 IBLOCK,NTAG,SIGNN,SIG)
3556 IF(iblock.eq.0.and.ipdflag.eq.1) iblock=501
3558 IF(iabs(IBLOCK).EQ.10)THEN
3559 * momentum of the three particles in the final state have been calculated
3560 * in the crnn, go out of the loop
3562 IF(IBLOCK.EQ.10)THEN
3564 elseIF(IBLOCK.EQ.-10) then
3569 c if(iblock .eq. 222)then
3570 if(iblock .eq. 222.or.iblock.eq.501)then
3577 * FOR PION+PION,pion+eta, eta+eta and rho(omega)+pion(rho,omega) or eta
3582 * energy thresh for collisions
3584 IF(SRT.LE.ec0)GO TO 400
3585 ec=(em1+em2+0.02)**2
3586 * we negelect the elastic collision between mesons except that betwen
3587 * two pions because of the lack of information about these collisions
3588 * However, we do let them to collide inelastically to produce kaons
3589 clin-8/15/02 ppel=1.e-09
3592 if(lb1.lt.3.or.lb1.gt.5.or.lb2.lt.3.or.lb2.gt.5)go to 778
3593 CALL PPXS(LB1,LB2,SRT,PPSIG,spprho,IPP)
3595 778 ppink=pipik(srt)
3597 * pi+eta and eta+eta are assumed to be the same as pipik( for pi+pi -> K+K-)
3598 * estimated from Ko's paper:
3600 if(lb1.ge.25.and.lb2.ge.25) ppink=rrkk
3602 clin-2/13/03 include omega the same as rho, eta the same as pi:
3603 c if(((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.25.and.lb2.le.27))
3604 c 1 .or.((lb2.ge.3.and.lb2.le.5).and.(lb1.ge.25.and.lb1.le.27)))
3605 if( ( (lb1.eq.0.or.(lb1.ge.3.and.lb1.le.5))
3606 1 .and.(lb2.ge.25.and.lb2.le.28))
3607 2 .or. ( (lb2.eq.0.or.(lb2.ge.3.and.lb2.le.5))
3608 3 .and.(lb1.ge.25.and.lb1.le.28))) then
3610 if(srt.ge.(aka+aks)) ppink = prkk
3613 c pi pi <-> rho rho:
3614 call spprr(lb1,lb2,srt)
3615 clin-4/03/02 pi pi <-> eta eta:
3616 call sppee(lb1,lb2,srt)
3617 clin-4/03/02 pi pi <-> pi eta:
3618 call spppe(lb1,lb2,srt)
3619 clin-4/03/02 rho pi <-> rho eta:
3620 call srpre(lb1,lb2,srt)
3621 clin-4/03/02 omega pi <-> omega eta:
3622 call sopoe(lb1,lb2,srt)
3623 clin-4/03/02 rho rho <-> eta eta:
3624 call srree(lb1,lb2,srt)
3627 if(srt.gt.thresh(1)) then
3629 if(lb1.ge.3.and.lb1.le.5.and.lb2.ge.3.and.lb2.le.5) then
3631 elseif((lb1.ge.3.and.lb1.le.5.and.lb2.ge.25.and.lb2.le.27)
3632 1 .or.(lb2.ge.3.and.lb2.le.5.and.lb1.ge.25.and.lb1.le.27)) then
3634 elseif(lb1.ge.25.and.lb1.le.27
3635 1 .and.lb2.ge.25.and.lb2.le.27) then
3637 elseif((lb1.ge.3.and.lb1.le.5.and.lb2.eq.28)
3638 1 .or.(lb2.ge.3.and.lb2.le.5.and.lb1.eq.28)) then
3640 elseif((lb1.ge.25.and.lb1.le.27.and.lb2.eq.28)
3641 1 .or.(lb2.ge.25.and.lb2.le.27.and.lb1.eq.28)) then
3643 elseif(lb1.eq.28.and.lb2.eq.28) then
3646 if(lb1.ne.0.and.lb2.ne.0)
3647 1 write(6,*) 'missed MM lb1,lb2=',lb1,lb2
3650 ppin=ppink+ppinnb+pprr+ppee+pppe+rpre+xopoe+rree
3652 * check if a collision can happen
3653 if((ppel+ppin).le.0.01)go to 400
3654 DSPP=SQRT((ppel+ppin)/31.4)
3656 CALL DISTCE(I1,I2,dsppr,DSPP,DT,EC,SRT,IC,
3657 1 PX1CM,PY1CM,PZ1CM)
3658 IF(IC.EQ.-1) GO TO 400
3659 if(ppel.eq.0)go to 400
3660 * the collision can happen
3661 * check what kind collision has happened
3662 ekaon(5,iss)=ekaon(5,iss)+1
3663 CALL CRPP(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3664 1 IBLOCK,ppel,ppin,spprho,ipp)
3666 * rho formation, go to 400
3667 c if(iblock.eq.666)go to 600
3668 if(iblock.eq.666)go to 555
3669 if(iblock.eq.6)LPP=LPP+1
3670 if(iblock.eq.66)then
3672 elseif(iblock.eq.366)then
3674 elseif(iblock.eq.367)then
3681 * In this block we treat annihilations of
3682 clin-9/28/00* an anti-nucleon and a baryon or baryon resonance
3683 * an anti-baryon and a baryon (including resonances)
3688 EC=(em1+em2+0.02)**2
3689 clin assume the same cross section (as a function of sqrt s) as for PPbar:
3691 clin-ctest annih maximum
3692 c DSppb=SQRT(amin1(xppbar(srt),30.)/PI/10.)
3693 DSppb=SQRT(xppbar(srt)/PI/10.)
3695 CALL DISTCE(I1,I2,dsppbr,DSppb,DT,EC,SRT,IC,
3696 1 PX1CM,PY1CM,PZ1CM)
3697 IF(IC.EQ.-1) GO TO 400
3698 CALL Crppba(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3707 EC=(em1+em2+0.02)**2
3708 DSkk=SQRT(SIG/PI/10.)
3710 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3711 1 PX1CM,PY1CM,PZ1CM)
3712 IF(IC.EQ.-1) GO TO 400
3713 CALL Crlaba(PX1CM,PY1CM,PZ1CM,SRT,brel,brsgm,
3714 & I1,I2,nt,IBLOCK,nchrg,icase)
3719 c perturbative production of cascade and omega
3723 call pertur(PX1CM,PY1CM,PZ1CM,SRT,IRUN,I1,I2,nt,kp,icontp)
3724 if(icontp .eq. 0)then
3725 c inelastic collisions:
3731 c elastic collisions:
3732 if (e(i1) .eq. 0.) go to 800
3733 if (e(i2) .eq. 0.) go to 600
3736 c* phi + N --> pi+N(D), N(D,N*)+N(D,N*), K+ +La
3737 c* phi + D --> pi+N(D)
3742 EC=(em1+em2+0.02)**2
3743 CALL XphiB(LB1, LB2, EM1, EM2, SRT,
3744 & XSK1, XSK2, XSK3, XSK4, XSK5, SIGP)
3745 DSkk=SQRT(SIGP/PI/10.)
3747 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3748 1 PX1CM,PY1CM,PZ1CM)
3749 IF(IC.EQ.-1) GO TO 400
3750 CALL CRPHIB(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3751 & XSK1, XSK2, XSK3, XSK4, XSK5, SIGP, IBLOCK)
3756 c* phi + M --> K+ + K* .....
3761 EC=(em1+em2+0.02)**2
3762 CALL PHIMES(I1, I2, SRT, XSK1, XSK2, XSK3, XSK4, XSK5,
3763 1 XSK6, XSK7, SIGPHI)
3764 DSkk=SQRT(SIGPHI/PI/10.)
3766 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3767 1 PX1CM,PY1CM,PZ1CM)
3768 IF(IC.EQ.-1) GO TO 400
3770 PZRT = p(3,i1)+p(3,i2)
3771 ER1 = sqrt( p(1,i1)**2+p(2,i1)**2+p(3,i1)**2+E(i1)**2 )
3772 ER2 = sqrt( p(1,i2)**2+p(2,i2)**2+p(3,i2)**2+E(i2)**2 )
3774 yy = 0.5*log( (ERT+PZRT)/(ERT-PZRT) )
3776 CALL CRPHIM(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3777 & XSK1, XSK2, XSK3, XSK4, XSK5, XSK6, SIGPHI, IKKG, IKKL, IBLOCK)
3782 c lambda-N elastic xsection, Li & Ko, PRC 54(1996)1897.
3787 EC=(em1+em2+0.02)**2
3788 call lambar(i1,i2,srt,siglab)
3789 DShn=SQRT(siglab/PI/10.)
3791 CALL DISTCE(I1,I2,dshnr,DShn,DT,EC,SRT,IC,
3792 1 PX1CM,PY1CM,PZ1CM)
3793 IF(IC.EQ.-1) GO TO 400
3794 CALL Crhb(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
3799 c* K+ + La(Si) --> Meson + B
3800 c* K- + La(Si)-bar --> Meson + B-bar
3805 EC=(em1+em2+0.02)**2
3806 CALL XKHYPE(I1, I2, SRT, XKY1, XKY2, XKY3, XKY4, XKY5,
3807 & XKY6, XKY7, XKY8, XKY9, XKY10, XKY11, XKY12, XKY13,
3808 & XKY14, XKY15, XKY16, XKY17, SIGK)
3811 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3812 1 PX1CM,PY1CM,PZ1CM)
3813 IF(IC.EQ.-1) GO TO 400
3815 if(lb(i1).eq.23 .or. lb(i2).eq.23)then
3820 CALL Crkhyp(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3821 & XKY1, XKY2, XKY3, XKY4, XKY5,
3822 & XKY6, XKY7, XKY8, XKY9, XKY10, XKY11, XKY12, XKY13,
3823 & XKY14, XKY15, XKY16, XKY17, SIGK, IKMP,
3830 csp11/03/01 La/Si-bar + N --> pi + K+
3831 c La/Si + N-bar --> pi + K-
3836 EC=(em1+em2+0.02)**2
3838 c if((lb1.ge.14.and.lb1.le.17)
3839 c & .or.(lb2.ge.14.and.lb2.le.17))sigkp=10.
3840 DSkk=SQRT(SIGKP/PI/10.)
3842 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3843 1 PX1CM,PY1CM,PZ1CM)
3844 IF(IC.EQ.-1) GO TO 400
3846 CALL CRLAN(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
3852 * K(K*) + K(K*) --> phi + pi(rho,omega)
3857 EC=(em1+em2+0.02)**2
3858 * CALL CROSSKKPHI(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK) used for KK*->phi+rho
3860 CALL Crkphi(PX1CM,PY1CM,PZ1CM,EC,SRT,IBLOCK,
3861 & emm1,emm2,lbp1,lbp2,I1,I2,ikk,icase,rrkk,prkk)
3862 if(icase .eq. 0) then
3868 if(lbp1.eq.29.or.lbp2.eq.29) then
3869 PZRT = p(3,i1)+p(3,i2)
3870 ER1 = sqrt( p(1,i1)**2+p(2,i1)**2+p(3,i1)**2+E(i1)**2 )
3871 ER2 = sqrt( p(1,i2)**2+p(2,i2)**2+p(3,i2)**2+E(i2)**2 )
3873 yy = 0.5*log( (ERT+PZRT)/(ERT-PZRT) )
3887 * rho(omega) + K(K*) --> phi + K(K*)
3892 EC=(em1+em2+0.02)**2
3893 * CALL CROSSKKPHI(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK) used for KK*->phi+rho
3894 CALL Crksph(PX1CM,PY1CM,PZ1CM,EC,SRT,
3895 & emm1,emm2,lbp1,lbp2,I1,I2,ikkg,ikkl,iblock,icase,srhoks)
3896 if(icase .eq. 0) then
3901 if(lbp1.eq.29.or.lbp2.eq.20) then
3903 PZRT = p(3,i1)+p(3,i2)
3904 ER1 = sqrt( p(1,i1)**2+p(2,i1)**2+p(3,i1)**2+E(i1)**2 )
3905 ER2 = sqrt( p(1,i2)**2+p(2,i2)**2+p(3,i2)**2+E(i2)**2 )
3907 yy = 0.5*log( (ERT+PZRT)/(ERT-PZRT) )
3918 * for kaon+baryon scattering, using a constant xsection of 10 mb.
3923 EC=(em1+em2+0.02)**2
3925 if(iabs(lb1).eq.14.or.iabs(lb2).eq.14 .or.
3926 & iabs(lb1).eq.30.or.iabs(lb2).eq.30)sig=20.
3927 if(lb1.eq.29.or.lb2.eq.29)sig=5.0
3929 DSkn=SQRT(sig/PI/10.)
3931 CALL DISTCE(I1,I2,dsknr,DSkn,DT,EC,SRT,IC,
3932 1 PX1CM,PY1CM,PZ1CM)
3933 IF(IC.EQ.-1) GO TO 400
3934 CALL Crkn(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3942 * IBLOCK = 0 ; NOTHING HAS HAPPENED
3943 * IBLOCK = 1 ; ELASTIC N-N COLLISION
3944 * IBLOCK = 2 ; N + N -> N + DELTA
3945 * IBLOCK = 3 ; N + DELTA -> N + N
3946 * IBLOCK = 4 ; N + N -> d + d + PION,DIRECT PROCESS
3947 * IBLOCK = 5 ; D(N*)+D(N*) COLLISIONS
3948 * IBLOCK = 6 ; PION+PION COLLISIONS
3949 * iblock = 7 ; pion+nucleon-->l/s+kaon
3950 * iblock =77; pion+nucleon-->delta+pion
3951 * iblock = 8 ; kaon+baryon rescattering
3952 * IBLOCK = 9 ; NN-->KAON+X
3953 * IBLOCK = 10; DD-->KAON+X
3954 * IBLOCK = 11; ND-->KAON+X
3957 * iblock - 1902 annihilation-->pion(+)+pion(-) (2 pion)
3958 * iblock - 1903 annihilation-->pion(+)+rho(-) (3 pion)
3959 * iblock - 1904 annihilation-->rho(+)+rho(-) (4 pion)
3960 * iblock - 1905 annihilation-->rho(0)+omega (5 pion)
3961 * iblock - 1906 annihilation-->omega+omega (6 pion)
3963 * iblock - 1907 K+K- to pi+pi-
3966 * iblock - 1908 K+Y -> piN
3967 cbz3/9/99 khyperon end
3970 clin-9/28/00 Processes: m(pi rho omega)+m(pi rho omega)
3971 c to anti-(p n D N*1 N*2)+(p n D N*1 N*2):
3972 * iblock - 1801 mm -->pbar p
3973 * iblock - 18021 mm -->pbar n
3974 * iblock - 18022 mm -->nbar p
3975 * iblock - 1803 mm -->nbar n
3976 * iblock - 18041 mm -->pbar Delta
3977 * iblock - 18042 mm -->anti-Delta p
3978 * iblock - 18051 mm -->nbar Delta
3979 * iblock - 18052 mm -->anti-Delta n
3980 * iblock - 18061 mm -->pbar N*(1400)
3981 * iblock - 18062 mm -->anti-N*(1400) p
3982 * iblock - 18071 mm -->nbar N*(1400)
3983 * iblock - 18072 mm -->anti-N*(1400) n
3984 * iblock - 1808 mm -->anti-Delta Delta
3985 * iblock - 18091 mm -->pbar N*(1535)
3986 * iblock - 18092 mm -->anti-N*(1535) p
3987 * iblock - 18101 mm -->nbar N*(1535)
3988 * iblock - 18102 mm -->anti-N*(1535) n
3989 * iblock - 18111 mm -->anti-Delta N*(1440)
3990 * iblock - 18112 mm -->anti-N*(1440) Delta
3991 * iblock - 18121 mm -->anti-Delta N*(1535)
3992 * iblock - 18122 mm -->anti-N*(1535) Delta
3993 * iblock - 1813 mm -->anti-N*(1440) N*(1440)
3994 * iblock - 18141 mm -->anti-N*(1440) N*(1535)
3995 * iblock - 18142 mm -->anti-N*(1535) N*(1440)
3996 * iblock - 1815 mm -->anti-N*(1535) N*(1535)
3999 clin-10/08/00 Processes: pi pi <-> rho rho
4000 * iblock - 1850 pi pi -> rho rho
4001 * iblock - 1851 rho rho -> pi pi
4004 clin-08/14/02 Processes: pi pi <-> eta eta
4005 * iblock - 1860 pi pi -> eta eta
4006 * iblock - 1861 eta eta -> pi pi
4007 * Processes: pi pi <-> pi eta
4008 * iblock - 1870 pi pi -> pi eta
4009 * iblock - 1871 pi eta -> pi pi
4010 * Processes: rho pi <-> rho eta
4011 * iblock - 1880 pi pi -> pi eta
4012 * iblock - 1881 pi eta -> pi pi
4013 * Processes: omega pi <-> omega eta
4014 * iblock - 1890 pi pi -> pi eta
4015 * iblock - 1891 pi eta -> pi pi
4016 * Processes: rho rho <-> eta eta
4017 * iblock - 1895 rho rho -> eta eta
4018 * iblock - 1896 eta eta -> rho rho
4021 clin-11/07/00 Processes:
4022 * iblock - 366 pi rho -> K* Kbar or K*bar K
4023 * iblock - 466 pi rho <- K* Kbar or K*bar K
4025 clin-9/2008 Deuteron:
4026 * iblock - 501 B+B -> Deuteron+Meson
4027 * iblock - 502 Deuteron+Meson -> B+B
4028 * iblock - 503 Deuteron+Baryon elastic
4029 * iblock - 504 Deuteron+Meson elastic
4031 IF(IBLOCK.EQ.0) GOTO 400
4032 *COM: FOR DIRECT PROCESS WE HAVE TREATED THE PAULI BLOCKING AND FIND
4033 * THE MOMENTUM OF PARTICLES IN THE ''LAB'' FRAME. SO GO TO 400
4034 * A COLLISION HAS TAKEN PLACE !!
4036 * WAS COLLISION PAULI-FORBIDEN? IF YES, NTAG = -1
4039 * LORENTZ-TRANSFORMATION INTO CMS FRAME
4040 E1CM = SQRT (EM1**2 + PX1CM**2 + PY1CM**2 + PZ1CM**2)
4041 P1BETA = PX1CM*BETAX + PY1CM*BETAY + PZ1CM*BETAZ
4042 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
4043 Pt1I1 = BETAX * TRANSF + PX1CM
4044 Pt2I1 = BETAY * TRANSF + PY1CM
4045 Pt3I1 = BETAZ * TRANSF + PZ1CM
4046 * negelect the pauli blocking at high energies
4049 clin-10/25/02-comment out following, since there is no path to it:
4050 c*CHECK IF PARTICLE #1 IS PAULI BLOCKED
4051 c CALL PAULat(I1,occup)
4052 c if (RANART(NSEED) .lt. occup) then
4060 *IF PARTICLE #1 IS NOT PAULI BLOCKED
4061 c IF (NTAG .NE. -1) THEN
4062 E2CM = SQRT (EM2**2 + PX1CM**2 + PY1CM**2 + PZ1CM**2)
4063 TRANSF = GAMMA * (-GAMMA*P1BETA / (GAMMA + 1.) + E2CM)
4064 Pt1I2 = BETAX * TRANSF - PX1CM
4065 Pt2I2 = BETAY * TRANSF - PY1CM
4066 Pt3I2 = BETAZ * TRANSF - PZ1CM
4069 clin-10/25/02-comment out following, since there is no path to it:
4070 c*CHECK IF PARTICLE #2 IS PAULI BLOCKED
4071 c CALL PAULat(I2,occup)
4072 c if (RANART(NSEED) .lt. occup) then
4078 c* IF COLLISION IS BLOCKED,RESTORE THE MOMENTUM,MASSES
4079 c* AND LABELS OF I1 AND I2
4080 cc IF (NTAG .EQ. -1) THEN
4095 90003 IF(IBLOCK.EQ.1) LCNNE=LCNNE+1
4096 IF(IBLOCK.EQ.5) LDD=LDD+1
4097 if(iblock.eq.2) LCNND=LCNND+1
4098 IF(IBLOCK.EQ.8) LKN=LKN+1
4099 if(iblock.eq.43) Ldou=Ldou+1
4100 c IF(IBLOCK.EQ.2) THEN
4101 * CALCULATE THE AVERAGE SRT FOR N + N---> N + DELTA PROCESS
4105 IF(IBLOCK.EQ.3) LCNDN=LCNDN+1
4106 * assign final momenta to particles while keep the leadng particle
4108 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
4132 E1 = SQRT( EM1**2 + PX1**2 + PY1**2 + PZ1**2 )
4135 clin-10/25/02-comment out following, since there is no path to it:
4136 c* change phase space density FOR NUCLEONS INVOLVED :
4137 c* NOTE THAT f is the phase space distribution function for nucleons only
4138 c if ((abs(ix1).le.mx) .and. (abs(iy1).le.my) .and.
4139 c & (abs(iz1).le.mz)) then
4140 c ipx1p = nint(p(1,i1)/dpx)
4141 c ipy1p = nint(p(2,i1)/dpy)
4142 c ipz1p = nint(p(3,i1)/dpz)
4143 c if ((ipx1p.ne.ipx1) .or. (ipy1p.ne.ipy1) .or.
4144 c & (ipz1p.ne.ipz1)) then
4145 c if ((abs(ipx1).le.mpx) .and. (abs(ipy1).le.my)
4146 c & .and. (ipz1.ge.-mpz) .and. (ipz1.le.mpzp)
4147 c & .AND. (AM1.LT.1.))
4148 c & f(ix1,iy1,iz1,ipx1,ipy1,ipz1) =
4149 c & f(ix1,iy1,iz1,ipx1,ipy1,ipz1) - 1.
4150 c if ((abs(ipx1p).le.mpx) .and. (abs(ipy1p).le.my)
4151 c & .and. (ipz1p.ge.-mpz).and. (ipz1p.le.mpzp)
4152 c & .AND. (EM1.LT.1.))
4153 c & f(ix1,iy1,iz1,ipx1p,ipy1p,ipz1p) =
4154 c & f(ix1,iy1,iz1,ipx1p,ipy1p,ipz1p) + 1.
4157 c if ((abs(ix2).le.mx) .and. (abs(iy2).le.my) .and.
4158 c & (abs(iz2).le.mz)) then
4159 c ipx2p = nint(p(1,i2)/dpx)
4160 c ipy2p = nint(p(2,i2)/dpy)
4161 c ipz2p = nint(p(3,i2)/dpz)
4162 c if ((ipx2p.ne.ipx2) .or. (ipy2p.ne.ipy2) .or.
4163 c & (ipz2p.ne.ipz2)) then
4164 c if ((abs(ipx2).le.mpx) .and. (abs(ipy2).le.my)
4165 c & .and. (ipz2.ge.-mpz) .and. (ipz2.le.mpzp)
4166 c & .AND. (AM2.LT.1.))
4167 c & f(ix2,iy2,iz2,ipx2,ipy2,ipz2) =
4168 c & f(ix2,iy2,iz2,ipx2,ipy2,ipz2) - 1.
4169 c if ((abs(ipx2p).le.mpx) .and. (abs(ipy2p).le.my)
4170 c & .and. (ipz2p.ge.-mpz) .and. (ipz2p.le.mpzp)
4171 c & .AND. (EM2.LT.1.))
4172 c & f(ix2,iy2,iz2,ipx2p,ipy2p,ipz2p) =
4173 c & f(ix2,iy2,iz2,ipx2p,ipy2p,ipz2p) + 1.
4186 clin-6/10/03 skips the info output on resonance creations:
4188 cclin-4/30/03 study phi,K*,Lambda(1520) resonances at creation:
4189 cc note that no decays give these particles, so don't need to consider nnn:
4190 c if(iblock.ne.0.and.(lb(i1).eq.29.or.iabs(lb(i1)).eq.30
4191 c 1 .or.lb(i2).eq.29.or.iabs(lb(i2)).eq.30
4192 c 2 .or.lb1i.eq.29.or.iabs(lb1i).eq.30
4193 c 3 .or.lb2i.eq.29.or.iabs(lb2i).eq.30)) then
4202 c if(lb1i.eq.29) then
4204 c elseif(lb1i.eq.30) then
4206 c elseif(lb1i.eq.-30) then
4209 c if(lb2i.eq.29) then
4211 c elseif(lb2i.eq.30) then
4213 c elseif(lb2i.eq.-30) then
4222 c if(lb1now.eq.29) then
4224 c elseif(lb1now.eq.30) then
4226 c elseif(lb1now.eq.-30) then
4229 c if(lb2now.eq.29) then
4231 c elseif(lb2now.eq.30) then
4233 c elseif(lb2now.eq.-30) then
4237 c if(nphi.eq.2.or.nksp.eq.2.or.nksm.eq.2) then
4238 c write(91,*) '2 same resonances in one reaction!'
4239 c write(91,*) nphi,nksp,nksm,iblock
4242 cc All reactions create or destroy no more than 1 these resonance,
4243 cc otherwise file "fort.91" warns us:
4245 c if(ires.eq.1.and.nphi.ne.nphi0) then
4247 c elseif(ires.eq.2.and.nksp.ne.nksp0) then
4249 c elseif(ires.eq.3.and.nksm.ne.nksm0) then
4254 cctest off for resonance (phi, K*) studies:
4255 cc if(lb1now.eq.idr) then
4256 cc write(17,112) 'collision',lb1now,P(1,I1),P(2,I1),P(3,I1),e(I1),nt
4257 cc elseif(lb2now.eq.idr) then
4258 cc write(17,112) 'collision',lb2now,P(1,I2),P(2,I2),P(3,I2),e(I2),nt
4259 cc elseif(lb1i.eq.idr) then
4260 cc write(18,112) 'collision',lb1i,px1i,py1i,pz1i,em1i,nt
4261 cc elseif(lb2i.eq.idr) then
4262 cc write(18,112) 'collision',lb2i,px2i,py2i,pz2i,em2i,nt
4268 cc 112 format(a10,I4,4(1x,f9.3),1x,I4)
4270 clin-2/26/03 skips the check of energy conservation after each binary search:
4276 c if(e(i1).ne.0.or.lb(i1).eq.10022) then
4277 c efin=efin+SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
4278 c pxfin=pxfin+P(1,I1)
4279 c pyfin=pyfin+P(2,I1)
4280 c pzfin=pzfin+P(3,I1)
4282 c if(e(i2).ne.0.or.lb(i2).eq.10022) then
4283 c efin=efin+SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
4284 c pxfin=pxfin+P(1,I2)
4285 c pyfin=pyfin+P(2,I2)
4286 c pzfin=pzfin+P(3,I2)
4288 c if((nnn-nnnini).ge.1) then
4289 c do imore=nnnini+1,nnn
4290 c if(EPION(imore,IRUN).ne.0) then
4291 c efin=efin+SQRT(EPION(imore,IRUN)**2
4292 c 1 +PPION(1,imore,IRUN)**2+PPION(2,imore,IRUN)**2
4293 c 2 +PPION(3,imore,IRUN)**2)
4294 c pxfin=pxfin+PPION(1,imore,IRUN)
4295 c pyfin=pyfin+PPION(2,imore,IRUN)
4296 c pzfin=pzfin+PPION(3,imore,IRUN)
4300 c devio=sqrt((pxfin-pxini)**2+(pyfin-pyini)**2
4301 c 1 +(pzfin-pzini)**2+(efin-eini)**2)
4303 c if(devio.ge.0.1) then
4304 c write(92,'a20,5(1x,i6),2(1x,f8.3)') 'iblock,lb,npi=',
4305 c 1 iblock,lb1i,lb2i,lb(i1),lb(i2),e(i1),e(i2)
4306 c do imore=nnnini+1,nnn
4307 c if(EPION(imore,IRUN).ne.0) then
4308 c write(92,'a10,2(1x,i6)') 'ipi,lbm=',
4309 c 1 imore,LPION(imore,IRUN)
4312 c write(92,'a3,4(1x,f8.3)') 'I:',eini,pxini,pyini,pzini
4313 c write(92,'a3,5(1x,f8.3)')
4314 c 1 'F:',efin,pxfin,pyfin,pzfin,devio
4318 ctest off only one collision for the same 2 particles in the same timestep:
4319 c if(iblock.ne.0) then
4322 ctest off collisions history:
4323 c if(iblock.ne.0) then
4324 c write(10,*) nt,i1,i2,iblock,x1,z1,x2,z2
4329 * RELABLE MESONS LEFT IN THIS RUN EXCLUDING THOSE BEING CREATED DURING
4330 * THIS TIME STEP AND COUNT THE TOTAL NO. OF PARTICLES IN THIS RUN
4331 * note that the first mass=mta+mpr particles are baryons
4332 c write(*,*)'I: NNN,massr ', nnn,massr(irun)
4334 DO 1005 N=N0+1,MASSR(IRUN)+MSUM
4336 clin-2/19/03 lb>5000: keep particles with no LB codes in ART(photon,lepton,..):
4337 c IF(E(N).GT.0.)THEN
4338 IF(E(N) .GT. 0. .OR. LB(N) .GT. 5000)THEN
4341 RPION(1,NNN,IRUN)=R(1,N)
4342 RPION(2,NNN,IRUN)=R(2,N)
4343 RPION(3,NNN,IRUN)=R(3,N)
4345 if(nt.eq.ntmax) then
4346 ftpisv(NNN,IRUN)=ftsv(N)
4347 tfdpi(NNN,IRUN)=tfdcy(N)
4350 PPION(1,NNN,IRUN)=P(1,N)
4351 PPION(2,NNN,IRUN)=P(2,N)
4352 PPION(3,NNN,IRUN)=P(3,N)
4353 EPION(NNN,IRUN)=E(N)
4354 LPION(NNN,IRUN)=LB(N)
4356 PROPI(NNN,IRUN)=PROPER(N)
4358 dppion(NNN,IRUN)=dpertp(N)
4360 c & write(*,*)'IN-1 NT,NNN,LB,P ',nt,NNN,lb(n),proper(n)
4363 MASSRN(IRUN)=NNN+MASS
4364 c write(*,*)'F: NNN,massrn ', nnn,massrn(irun)
4366 * CALCULATE THE AVERAGE SRT FOR N + N--->N +DELTA PROCESSES
4367 C IF(NODELT.NE.0)THEN
4368 C AVSRT=SUMSRT/FLOAT(NODELT)
4372 C WRITE(1097,'(F8.2,2X,E10.3)')FLOAT(NT)*DT,AVSRT
4373 * RELABLE ALL THE PARTICLES EXISTING AFTER THIS TIME STEP
4378 IB=IB+MASSRN(IRUN-1)
4379 DO 10001 IC=1,MASSRN(IRUN)
4387 if(nt.eq.ntmax) then
4399 dptemp(IG)=dpertp(IE)
4402 RT(1,IG)=RPION(1,I0,IRUN)
4403 RT(2,IG)=RPION(2,I0,IRUN)
4404 RT(3,IG)=RPION(3,I0,IRUN)
4406 if(nt.eq.ntmax) then
4407 fttemp(IG)=ftpisv(I0,IRUN)
4408 tft(IG)=tfdpi(I0,IRUN)
4411 PT(1,IG)=PPION(1,I0,IRUN)
4412 PT(2,IG)=PPION(2,I0,IRUN)
4413 PT(3,IG)=PPION(3,I0,IRUN)
4414 ET(IG)=EPION(I0,IRUN)
4415 LT(IG)=LPION(I0,IRUN)
4416 PROT(IG)=PROPI(I0,IRUN)
4418 dptemp(IG)=dppion(I0,IRUN)
4424 c DO 10002 IRUN=1,NUM
4427 MASSR(IRUN)=MASSRN(IRUN)
4429 DO 10002 IM=1,MASSR(IRUN)
4435 if(nt.eq.ntmax) then
4446 dpertp(IN)=dptemp(IN)
4447 IF(LB(IN).LT.1.OR.LB(IN).GT.2)ID(IN)=0
4449 clin-ctest off check energy conservation after each timestep
4451 c do ip=1,MASSR(IRUN)
4452 c if(e(ip).ne.0.or.lb(ip).eq.10022) enetot=enetot
4453 c 1 +sqrt(p(1,ip)**2+p(2,ip)**2+p(3,ip)**2+e(ip)**2)
4455 c write(91,*) 'B:',nt,enetot,massr(irun),bimp
4456 clin-3/2009 move to the end of a timestep to take care of freezeout spacetime:
4457 c call hbtout(MASSR(IRUN),nt,ntmax)
4462 ****************************************
4463 SUBROUTINE CMS(I1,I2,PX1CM,PY1CM,PZ1CM,SRT)
4464 * PURPOSE : FIND THE MOMENTA OF PARTICLES IN THE CMS OF THE
4465 * TWO COLLIDING PARTICLES
4467 *****************************************
4468 PARAMETER (MAXSTR=150001)
4469 COMMON /AA/ R(3,MAXSTR)
4471 COMMON /BB/ P(3,MAXSTR)
4473 COMMON /CC/ E(MAXSTR)
4475 COMMON /BG/ BETAX,BETAY,BETAZ,GAMMA
4486 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
4487 E2=SQRT(EM2**2 + PX2**2 + PY2**2 + PZ2**2 )
4488 S=(E1+E2)**2-(PX1+PX2)**2-(PY1+PY2)**2-(PZ1+PZ2)**2
4490 *LORENTZ-TRANSFORMATION IN I1-I2-C.M. SYSTEM
4492 BETAX = (PX1+PX2) / ETOTAL
4493 BETAY = (PY1+PY2) / ETOTAL
4494 BETAZ = (PZ1+PZ2) / ETOTAL
4495 GAMMA = 1.0 / SQRT(1.0-BETAX**2-BETAY**2-BETAZ**2)
4496 *TRANSFORMATION OF MOMENTA (PX1CM = - PX2CM)
4497 P1BETA = PX1*BETAX + PY1*BETAY + PZ1 * BETAZ
4498 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) - E1 )
4499 PX1CM = BETAX * TRANSF + PX1
4500 PY1CM = BETAY * TRANSF + PY1
4501 PZ1CM = BETAZ * TRANSF + PZ1
4504 ***************************************
4505 SUBROUTINE DISTCE(I1,I2,DELTAR,DS,DT,EC,SRT
4506 1 ,IC,PX1CM,PY1CM,PZ1CM)
4507 * PURPOSE : CHECK IF THE COLLISION BETWEEN TWO PARTICLES CAN HAPPEN
4509 * (1) IF THE DISTANCE BETWEEN THEM IS SMALLER
4510 * THAN THE MAXIMUM DISTANCE DETERMINED FROM THE CROSS SECTION.
4511 * (2) IF PARTICLE WILL PASS EACH OTHER WITHIN
4512 * TWO HARD CORE RADIUS.
4513 * (3) IF PARTICLES WILL GET CLOSER.
4515 * IC=1 COLLISION HAPPENED
4516 * IC=-1 COLLISION CAN NOT HAPPEN
4517 *****************************************
4518 PARAMETER (MAXSTR=150001)
4519 COMMON /AA/ R(3,MAXSTR)
4521 COMMON /BB/ P(3,MAXSTR)
4523 COMMON /CC/ E(MAXSTR)
4525 COMMON /BG/ BETAX,BETAY,BETAZ,GAMMA
4526 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
4528 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
4529 1 px1n,py1n,pz1n,dp1n
4547 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
4548 c IF (ABS(X1-X2) .GT. DELTAR) GO TO 400
4549 c IF (ABS(Y1-Y2) .GT. DELTAR) GO TO 400
4550 c IF (ABS(Z1-Z2) .GT. DELTAR) GO TO 400
4551 RSQARE = (X1-X2)**2 + (Y1-Y2)**2 + (Z1-Z2)**2
4552 IF (RSQARE .GT. DELTAR**2) GO TO 400
4553 *NOW PARTICLES ARE CLOSE ENOUGH TO EACH OTHER !
4554 E2 = SQRT ( EM2**2 + PX2**2 + PY2**2 + PZ2**2 )
4556 IF (S .LT. EC) GO TO 400
4557 *NOW THERE IS ENOUGH ENERGY AVAILABLE !
4558 *LORENTZ-TRANSFORMATION IN I1-I2-C.M. SYSTEM
4559 * BETAX, BETAY, BETAZ AND GAMMA HAVE BEEN GIVEN IN THE SUBROUTINE CMS
4560 *TRANSFORMATION OF MOMENTA (PX1CM = - PX2CM)
4561 P1BETA = PX1*BETAX + PY1*BETAY + PZ1 * BETAZ
4562 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) - E1 )
4563 PRCM = SQRT (PX1CM**2 + PY1CM**2 + PZ1CM**2)
4564 IF (PRCM .LE. 0.00001) GO TO 400
4565 *TRANSFORMATION OF SPATIAL DISTANCE
4566 DRBETA = BETAX*(X1-X2) + BETAY*(Y1-Y2) + BETAZ*(Z1-Z2)
4567 TRANSF = GAMMA * GAMMA * DRBETA / (GAMMA + 1)
4568 DXCM = BETAX * TRANSF + X1 - X2
4569 DYCM = BETAY * TRANSF + Y1 - Y2
4570 DZCM = BETAZ * TRANSF + Z1 - Z2
4571 *DETERMINING IF THIS IS THE POINT OF CLOSEST APPROACH
4572 DRCM = SQRT (DXCM**2 + DYCM**2 + DZCM**2 )
4573 DZZ = (PX1CM*DXCM + PY1CM*DYCM + PZ1CM*DZCM) / PRCM
4574 if ((drcm**2 - dzz**2) .le. 0.) then
4577 BBB = SQRT (DRCM**2 - DZZ**2)
4579 *WILL PARTICLE PASS EACH OTHER WITHIN 2 * HARD CORE RADIUS ?
4580 IF (BBB .GT. DS) GO TO 400
4581 RELVEL = PRCM * (1.0/E1 + 1.0/E2)
4582 DDD = RELVEL * DT * 0.5
4583 *WILL PARTICLES GET CLOSER ?
4584 IF (ABS(DDD) .LT. ABS(DZZ)) GO TO 400
4591 ****************************************
4594 SUBROUTINE CRNN(IRUN,PX,PY,PZ,SRT,I1,I2,IBLOCK,
4595 1NTAG,SIGNN,SIG,NT,ipert1)
4597 * DEALING WITH NUCLEON-NUCLEON COLLISIONS *
4600 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
4602 * NSTAR =1 INCLUDING N* RESORANCE,ELSE NOT *
4603 * NDIRCT=1 INCLUDING DIRECT PION PRODUCTION PROCESS *
4604 * IBLOCK - THE INFORMATION BACK *
4605 * 0-> COLLISION CANNOT HAPPEN *
4606 * 1-> N-N ELASTIC COLLISION *
4607 * 2-> N+N->N+DELTA,OR N+N->N+N* REACTION *
4608 * 3-> N+DELTA->N+N OR N+N*->N+N REACTION *
4609 * 4-> N+N->D+D+pion reaction
4610 * 43->N+N->D(N*)+D(N*) reaction
4611 * 44->N+N->D+D+rho reaction
4613 * 46->N+N->N+N+omega
4614 * N12 - IS USED TO SPECIFY BARYON-BARYON REACTION *
4615 * CHANNELS. M12 IS THE REVERSAL CHANNEL OF N12 *
4617 * M12=1 FOR p+n-->delta(+)+ n *
4618 * 2 p+n-->delta(0)+ p *
4619 * 3 p+p-->delta(++)+n *
4620 * 4 p+p-->delta(+)+p *
4621 * 5 n+n-->delta(0)+n *
4622 * 6 n+n-->delta(-)+p *
4623 * 7 n+p-->N*(0)(1440)+p *
4624 * 8 n+p-->N*(+)(1440)+n *
4625 * 9 p+p-->N*(+)(1535)+p *
4626 * 10 n+n-->N*(0)(1535)+n *
4627 * 11 n+p-->N*(+)(1535)+n *
4628 * 12 n+p-->N*(0)(1535)+p
4629 * 13 D(++)+D(-)-->N*(+)(1440)+n
4630 * 14 D(++)+D(-)-->N*(0)(1440)+p
4631 * 15 D(+)+D(0)--->N*(+)(1440)+n
4632 * 16 D(+)+D(0)--->N*(0)(1440)+p
4633 * 17 D(++)+D(0)-->N*(+)(1535)+p
4634 * 18 D(++)+D(-)-->N*(0)(1535)+p
4635 * 19 D(++)+D(-)-->N*(+)(1535)+n
4636 * 20 D(+)+D(+)-->N*(+)(1535)+p
4637 * 21 D(+)+D(0)-->N*(+)(1535)+n
4638 * 22 D(+)+D(0)-->N*(0)(1535)+p
4639 * 23 D(+)+D(-)-->N*(0)(1535)+n
4640 * 24 D(0)+D(0)-->N*(0)(1535)+n
4641 * 25 N*(+)(14)+N*(+)(14)-->N*(+)(15)+p
4642 * 26 N*(0)(14)+N*(0)(14)-->N*(0)(15)+n
4643 * 27 N*(+)(14)+N*(0)(14)-->N*(+)(15)+n
4644 * 28 N*(+)(14)+N*(0)(14)-->N*(0)(15)+p
4645 * 29 N*(+)(14)+D+-->N*(+)(15)+p
4646 * 30 N*(+)(14)+D0-->N*(+)(15)+n
4647 * 31 N*(+)(14)+D(-)-->N*(0)(1535)+n
4648 * 32 N*(0)(14)+D++--->N*(+)(15)+p
4649 * 33 N*(0)(14)+D+--->N*(+)(15)+n
4650 * 34 N*(0)(14)+D+--->N*(0)(15)+p
4651 * 35 N*(0)(14)+D0-->N*(0)(15)+n
4652 * 36 N*(+)(14)+D0--->N*(0)(15)+p
4653 * ++ see the note book for more listing
4656 * NOTE ABOUT N*(1440) RESORANCE IN Nucleon+NUCLEON COLLISION: *
4657 * As it has been discussed in VerWest's paper,I= 1(initial isospin)*
4658 * channel can all be attributed to delta resorance while I= 0 *
4659 * channel can all be attribured to N* resorance.Only in n+p *
4660 * one can have I=0 channel so is the N*(1440) resonance *
4663 * J. CUGNON ET AL., NUCL. PHYS. A352, 505 (1981) *
4664 * Y. KITAZOE ET AL., PHYS. LETT. 166B, 35 (1986) *
4665 * B. VerWest el al., PHYS. PRV. C25 (1982)1979 *
4666 * Gy. Wolf et al, Nucl Phys A517 (1990) 615; *
4667 * Nucl phys A552 (1993) 349. *
4668 **********************************
4669 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
4670 1 AMP=0.93828,AP1=0.13496,aka=0.498,AP2=0.13957,AM0=1.232,
4671 2 PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383,APHI=1.020)
4672 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
4673 parameter (xmd=1.8756,npdmax=10000)
4674 COMMON /AA/ R(3,MAXSTR)
4676 COMMON /BB/ P(3,MAXSTR)
4678 COMMON /CC/ E(MAXSTR)
4680 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
4682 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
4684 common /gg/ dx,dy,dz,dpx,dpy,dpz
4686 COMMON /INPUT/ NSTAR,NDIRCT,DIR
4690 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
4694 COMMON /PA/RPION(3,MAXSTR,MAXR)
4696 COMMON /PB/PPION(3,MAXSTR,MAXR)
4698 COMMON /PC/EPION(MAXSTR,MAXR)
4700 COMMON /PD/LPION(MAXSTR,MAXR)
4702 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
4704 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
4706 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
4707 1 px1n,py1n,pz1n,dp1n
4712 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
4713 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
4714 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
4715 common /para8/ idpert,npertd,idxsec
4716 dimension ppd(3,npdmax),lbpd(npdmax)
4718 *-----------------------------------------------------------------------
4725 PR=SQRT( PX**2 + PY**2 + PZ**2 )
4729 if(lb(i1).lt.0 .and. lb(i2).lt.0) ianti=1
4730 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
4731 clin-5/2008 Production of perturbative deuterons for idpert=1:
4732 if(idpert.eq.1.and.ipert1.eq.1) then
4733 IF (SRT .LT. 2.012) RETURN
4734 if((iabs(lb(i1)).eq.1.or.iabs(lb(i1)).eq.2)
4735 1 .and.(iabs(lb(i2)).eq.1.or.iabs(lb(i2)).eq.2)) then
4742 *-----------------------------------------------------------------------
4743 *COM: TEST FOR ELASTIC SCATTERING (EITHER N-N OR DELTA-DELTA 0R
4744 * N-DELTA OR N*-N* or N*-Delta)
4745 c IF (X1 .LE. SIGNN/SIG) THEN
4746 IF (X1.LE.(SIGNN/SIG)) THEN
4747 *COM: PARAMETRISATION IS TAKEN FROM THE CUGNON-PAPER
4748 AS = ( 3.65 * (SRT - 1.8766) )**6
4749 A = 6.0 * AS / (1.0 + AS)
4752 clin-10/24/02 T1 = DLOG( (1-X) * DEXP(dble(A)*dble(TA)) + X ) / A
4753 T1 = sngl(DLOG(dble(1.-X)*DEXP(dble(A)*dble(TA))+dble(X)))/ A
4755 T1 = 2.0 * PI * RANART(NSEED)
4759 *COM: TEST FOR INELASTIC SCATTERING
4760 * IF THE AVAILABLE ENERGY IS LESS THAN THE PION-MASS, NOTHING
4761 * CAN HAPPEN ANY MORE ==> RETURN (2.012 = 2*AVMASS + PI-MASS)
4762 clin-5/2008: Mdeuteron+Mpi=2.0106 to 2.0152 GeV/c2, so we can still use this:
4763 IF (SRT .LT. 2.012) RETURN
4764 * calculate the N*(1535) production cross section in N+N collisions
4765 * note that the cross sections in this subroutine are in units of mb
4766 * as only ratios of the cross sections are used to determine the
4768 call N1535(iabs(lb(i1)),iabs(lb(i2)),srt,x1535)
4769 *COM: HERE WE HAVE A PROCESS N+N ==> N+DELTA,OR N+N==>N+N*(144) or N*(1535)
4771 * 3 pi channel : N+N==>d1+d2+PION
4772 SIG3=3.*(X3pi(SRT)+x33pi(srt))
4773 * 2 pi channel : N+N==>d1+d2+d1*n*+n*n*
4775 * 4 pi channel : N+N==>d1+d2+rho
4777 * N+N-->NN+rho channel
4781 * CROSS SECTION FOR KAON PRODUCTION from the four channels
4795 if(srt.le.t1nlk)go to 222
4800 if(srt.le.t1dlk)go to 222
4802 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
4808 if(srt.le.t1nsk)go to 222
4809 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
4811 XSK2=1.5*(PPK1(srt)+PPK0(srt))
4815 if(srt.le.t1dsk)go to 222
4816 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
4818 XSK4=1.5*(PPK1(srt)+PPK0(srt))
4821 if(srt.le.(2.*amn+aphi))go to 222
4822 c !! mb put the correct form
4826 * THE TOTAL KAON+ PRODUCTION CROSS SECTION IS THEN
4827 222 SIGK=XSK1+XSK2+XSK3+XSK4
4834 SIGK = 2.0 * SIGK + xsk5
4835 cbz3/7/99 neutralk end
4837 ** FOR P+P or L/S+L/S COLLISION:
4842 IF((LB(I1)*LB(I2).EQ.1).or.
4843 & ((lb1.le.17.and.lb1.ge.14).and.(lb2.le.17.and.lb2.ge.14)).
4844 & or.((lb1.le.2).and.(lb2.le.17.and.lb2.ge.14)).
4845 & or.((lb2.le.2).and.(lb1.le.17.and.lb1.ge.14)))THEN
4846 clin-8/2008 PP->d+meson here:
4847 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
4848 SIG1=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
4849 SIG2=1.5*SIGMA(SRT,1,1,1)
4850 SIGND=SIG1+SIG2+SIG3+SIG4+X1535+SIGK+s4pi+srho+somega
4852 c IF (X1.GT.(SIGNN+SIGND)/SIG)RETURN
4853 IF (X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
4855 IF(RANART(NSEED).LE.DIR)GO TO 106
4856 IF(RANART(NSEED).LE.SIGK/(SIGK+X1535+SIG4+SIG2+SIG1
4857 & +s4pi+srho+somega))GO TO 306
4858 if(RANART(NSEED).le.s4pi/(x1535+sig4+sig2+sig1
4859 & +s4pi+srho+somega))go to 307
4860 if(RANART(NSEED).le.srho/(x1535+sig4+sig2+sig1
4861 & +srho+somega))go to 308
4862 if(RANART(NSEED).le.somega/(x1535+sig4+sig2+sig1
4863 & +somega))go to 309
4864 if(RANART(NSEED).le.x1535/(sig1+sig2+sig4+x1535))then
4865 * N*(1535) production
4868 IF(RANART(NSEED).LE.SIG4/(SIG1+sig2+sig4))THEN
4869 * DOUBLE DELTA PRODUCTION
4875 IF (RANART(NSEED).GT.SIG1/(SIG1+SIG2))N12=4
4880 ** FOR N+N COLLISION:
4881 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
4882 clin-8/2008 NN->d+meson here:
4883 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
4884 SIG1=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
4885 SIG2=1.5*SIGMA(SRT,1,1,1)
4886 SIGND=SIG1+SIG2+X1535+SIG3+SIG4+SIGK+s4pi+srho+somega
4888 c IF (X1.GT.(SIGNN+SIGND)/SIG)RETURN
4889 IF (X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
4891 IF(RANART(NSEED).LE.DIR)GO TO 106
4892 IF(RANART(NSEED).LE.SIGK/(SIGK+X1535+SIG4+SIG2+SIG1
4893 & +s4pi+srho+somega))GO TO 306
4894 if(RANART(NSEED).le.s4pi/(x1535+sig4+sig2+sig1
4895 & +s4pi+srho+somega))go to 307
4896 if(RANART(NSEED).le.srho/(x1535+sig4+sig2+sig1
4897 & +srho+somega))go to 308
4898 if(RANART(NSEED).le.somega/(x1535+sig4+sig2+sig1
4899 & +somega))go to 309
4900 IF(RANART(NSEED).LE.X1535/(x1535+sig1+sig2+sig4))THEN
4901 * N*(1535) PRODUCTION
4904 if(RANART(NSEED).le.sig4/(sig1+sig2+sig4))then
4905 * double delta production
4911 IF (RANART(NSEED).GT.SIG1/(SIG1+SIG2))N12=5
4916 ** FOR N+P COLLISION
4917 IF(LB(I1)*LB(I2).EQ.2)THEN
4918 clin-5/2008 NP->d+meson here:
4919 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
4920 SIG1=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
4922 SIG2=(3./4.)*SIGMA(SRT,2,0,1)
4926 SIGND=2.*(SIG1+SIG2+X1535)+sig3+sig4+SIGK+s4pi+srho+somega
4928 c IF (X1.GT.(SIGNN+SIGND)/SIG)RETURN
4929 IF (X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
4931 IF(RANART(NSEED).LE.DIR)GO TO 106
4932 IF(RANART(NSEED).LE.SIGK/(SIGND-SIG3))GO TO 306
4933 if(RANART(NSEED).le.s4pi/(signd-sig3-sigk))go to 307
4934 if(RANART(NSEED).le.srho/(signd-sig3-sigk-s4pi))go to 308
4935 if(RANART(NSEED).le.somega/(signd-sig3-sigk-s4pi-srho))
4937 IF(RANART(NSEED).LT.X1535/(SIG1+SIG2+X1535+0.5*sig4))THEN
4938 * N*(1535) PRODUCTION
4940 IF(RANART(NSEED).LE.0.5)N12=12
4942 if(RANART(NSEED).le.sig4/(sig4+2.*(sig1+sig2)))then
4943 * double resonance production
4947 IF(RANART(NSEED).LE.SIG1/(SIG1+SIG2))THEN
4950 IF(RANART(NSEED).GE.0.5)N12=1
4952 * N*(1440) PRODUCTION
4954 IF(RANART(NSEED).GE.0.5)N12=7
4961 *PARAMETRIZATION OF THE SHAPE OF THE DELTA RESONANCE ACCORDING
4962 * TO kitazoe's or J.D.JACKSON'S MASS FORMULA AND BREIT WIGNER
4963 * FORMULA FOR N* RESORANCE
4964 * DETERMINE DELTA MASS VIA REJECTION METHOD.
4965 DMAX = SRT - AVMASS-0.005
4966 DMAX = SRT - AVMASS-0.005
4969 * Delta(1232) production
4970 IF(DMAX.LT.1.232) THEN
4974 clin-10/25/02 get rid of argument usage mismatch in FDE():
4976 c FM=FDE(1.232,SRT,1.)
4977 FM=FDE(xdmass,SRT,1.)
4981 IF(FM.EQ.0.)FM=1.E-09
4983 10 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
4985 IF((RANART(NSEED) .GT. FDE(DM,SRT,1.)/FM).AND.
4986 1 (NTRY1.LE.30)) GOTO 10
4988 clin-2/26/03 limit the Delta mass below a certain value
4989 c (here taken as its central value + 2* B-W fullwidth):
4990 if(dm.gt.1.47) goto 10
4994 IF((n12.eq.7).or.(n12.eq.8))THEN
4995 * N*(1440) production
4996 IF(DMAX.LT.1.44) THEN
5000 clin-10/25/02 get rid of argument usage mismatch in FNS():
5002 c FM=FNS(1.44,SRT,1.)
5003 FM=FNS(xdmass,SRT,1.)
5007 IF(FM.EQ.0.)FM=1.E-09
5009 11 DM=RANART(NSEED)*(DMAX-DMIN)+DMIN
5011 IF((RANART(NSEED).GT.FNS(DM,SRT,1.)/FM).AND.
5012 1 (NTRY2.LE.10)) GO TO 11
5014 clin-2/26/03 limit the N* mass below a certain value
5015 c (here taken as its central value + 2* B-W fullwidth):
5016 if(dm.gt.2.14) goto 11
5021 * N*(1535) production
5022 IF(DMAX.LT.1.535) THEN
5026 clin-10/25/02 get rid of argument usage mismatch in FNS():
5028 c FM=FD5(1.535,SRT,1.)
5029 FM=FD5(xdmass,SRT,1.)
5033 IF(FM.EQ.0.)FM=1.E-09
5035 12 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
5037 IF((RANART(NSEED) .GT. FD5(DM,SRT,1.)/FM).AND.
5038 1 (NTRY1.LE.10)) GOTO 12
5040 clin-2/26/03 limit the N* mass below a certain value
5041 c (here taken as its central value + 2* B-W fullwidth):
5042 if(dm.gt.1.84) goto 12
5046 * CALCULATE THE MASSES OF BARYON RESONANCES IN THE DOUBLE RESONANCE
5047 * PRODUCTION PROCESS AND RELABLE THE PARTICLES
5049 call Rmasdd(srt,1.232,1.232,1.08,
5050 & 1.08,ISEED,1,dm1,dm2)
5051 call Rmasdd(srt,1.232,1.44,1.08,
5052 & 1.08,ISEED,3,dm1n,dm2n)
5054 *(1) PP-->DOUBLE RESONANCES
5055 * DETERMINE THE FINAL STATE
5056 XFINAL=RANART(NSEED)
5057 IF(XFINAL.LE.0.25)THEN
5064 * go to 200 to set the new momentum
5066 IF((XFINAL.gt.0.25).and.(xfinal.le.0.5))THEN
5073 * go to 200 to set the new momentum
5075 IF((XFINAL.gt.0.5).and.(xfinal.le.0.75))THEN
5082 * go to 200 to set the new momentum
5084 IF(XFINAL.gt.0.75)then
5091 * go to 200 to set the new momentum
5095 call Rmasdd(srt,1.232,1.232,1.08,
5096 & 1.08,ISEED,1,dm1,dm2)
5097 call Rmasdd(srt,1.232,1.44,1.08,
5098 & 1.08,ISEED,3,dm1n,dm2n)
5100 *(2) NN-->DOUBLE RESONANCES
5101 * DETERMINE THE FINAL STATE
5102 XFINAL=RANART(NSEED)
5103 IF(XFINAL.LE.0.25)THEN
5110 * go to 200 to set the new momentum
5112 IF((XFINAL.gt.0.25).and.(xfinal.le.0.5))THEN
5119 * go to 200 to set the new momentum
5121 IF((XFINAL.gt.0.5).and.(xfinal.le.0.75))THEN
5128 * go to 200 to set the new momentum
5130 IF(XFINAL.gt.0.75)then
5137 * go to 200 to set the new momentum
5141 call Rmasdd(srt,1.232,1.232,1.08,
5142 & 1.08,ISEED,1,dm1,dm2)
5143 call Rmasdd(srt,1.232,1.44,1.08,
5144 & 1.08,ISEED,3,dm1n,dm2n)
5146 *(3) NP-->DOUBLE RESONANCES
5147 * DETERMINE THE FINAL STATE
5148 XFINAL=RANART(NSEED)
5149 IF(XFINAL.LE.0.25)THEN
5156 * go to 200 to set the new momentum
5158 IF((XFINAL.gt.0.25).and.(xfinal.le.0.5))THEN
5165 * go to 200 to set the new momentum
5167 IF((XFINAL.gt.0.5).and.(xfinal.le.0.75))THEN
5174 * go to 200 to set the new momentum
5176 IF(XFINAL.gt.0.75)then
5183 * go to 200 to set the new momentum
5187 *-------------------------------------------------------
5188 * RELABLE BARYON I1 AND I2
5189 *1. p+n-->delta(+)+n
5191 IF(iabs(LB(I1)).EQ.1)THEN
5204 IF(iabs(LB(I1)).EQ.2)THEN
5215 *3 p+p-->delta(++)+n
5230 *5 n+n--> delta(0)+n
5237 *6 n+n--> delta(-)+p
5247 IF(iabs(LB(I1)).EQ.1)THEN
5260 IF(iabs(LB(I1)).EQ.1)THEN
5271 *9 p+p--> N*(+)(1535)+p
5273 IF(RANART(NSEED).le.0.5)THEN
5284 *10 n+n--> N*(0)(1535)+n
5286 IF(RANART(NSEED).le.0.5)THEN
5297 *11 n+p--> N*(+)(1535)+n
5299 IF(iabs(LB(I1)).EQ.2)THEN
5310 *12 n+p--> N*(0)(1535)+p
5312 IF(iabs(LB(I1)).EQ.1)THEN
5323 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
5324 * ENERGY CONSERVATION
5327 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
5328 1 - 4.0 * (EM1*EM2)**2
5329 IF(PR2.LE.0.)PR2=1.e-09
5330 PR=SQRT(PR2)/(2.*SRT)
5331 if(srt.le.2.14)C1= 1.0 - 2.0 * RANART(NSEED)
5332 if(srt.gt.2.14.and.srt.le.2.4)c1=ang(srt,iseed)
5335 clin-10/25/02 get rid of argument usage mismatch in PTR():
5337 c cc1=ptr(0.33*pr,iseed)
5341 c1=sqrt(pr**2-cc1**2)/pr
5343 T1 = 2.0 * PI * RANART(NSEED)
5344 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
5349 *FOR THE NN-->D1+D2+PI PROCESS, FIND MOMENTUM OF THE FINAL TWO
5350 *DELTAS AND PION IN THE NUCLEUS-NUCLEUS CMS.
5353 123 CALL DDP2(SRT,ISEED,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
5354 & PPX,PPY,PPZ,icou1)
5356 if((icou1.lt.0).AND.(NTRY1.LE.40))GO TO 123
5357 C if(icou1.lt.0)return
5358 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
5359 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
5360 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
5361 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
5363 * DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
5366 IF(LB(I1)*LB(I2).EQ.1)THEN
5368 * (1.1)P+P-->D+++D0+PION(0)
5375 * (1.2)P+P -->D++D+PION(0)
5376 IF((XDIR.LE.0.4).AND.(XDIR.GT.0.2))THEN
5383 * (1.3)P+P-->D+++D+PION(-)
5384 IF((XDIR.LE.0.6).AND.(XDIR.GT.0.4))THEN
5391 IF((XDIR.LE.0.8).AND.(XDIR.GT.0.6))THEN
5407 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
5409 * (2.1)N+N-->D++D-+PION(0)
5416 * (2.2)N+N -->D+++D-+PION(-)
5417 IF((XDIR.LE.0.4).AND.(XDIR.GT.0.2))THEN
5424 * (2.3)P+P-->D0+D-+PION(+)
5425 IF((XDIR.GT.0.4).AND.(XDIR.LE.0.6))THEN
5432 * (2.4)P+P-->D0+D0+PION(0)
5433 IF((XDIR.GT.0.6).AND.(XDIR.LE.0.8))THEN
5440 * (2.5)P+P-->D0+D++PION(-)
5450 IF(LB(I1)*LB(I2).EQ.2)THEN
5451 IF(XDIR.Le.0.17)then
5452 * (3.1)N+P-->D+++D-+PION(0)
5459 * (3.2)N+P -->D+++D0+PION(-)
5460 IF((XDIR.LE.0.34).AND.(XDIR.GT.0.17))THEN
5467 * (3.3)N+P-->D++D-+PION(+)
5468 IF((XDIR.GT.0.34).AND.(XDIR.LE.0.51))THEN
5475 * (3.4)N+P-->D++D++PION(-)
5476 IF((XDIR.GT.0.51).AND.(XDIR.LE.0.68))THEN
5483 * (3.5)N+P-->D0+D++PION(0)
5484 IF((XDIR.GT.0.68).AND.(XDIR.LE.0.85))THEN
5491 * (3.6)N+P-->D0+D0+PION(+)
5492 IF(XDIR.GT.0.85)THEN
5499 * FIND THE MOMENTUM OF PARTICLES IN THE FINAL STATE IN THE NUCLEUS-
5500 * NUCLEUS CMS. FRAME
5501 * LORENTZ-TRANSFORMATION INTO LAB FRAME FOR DELTA1
5502 205 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
5503 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
5504 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
5505 Pt1i1 = BETAX * TRANSF + PX3
5506 Pt2i1 = BETAY * TRANSF + PY3
5507 Pt3i1 = BETAZ * TRANSF + PZ3
5510 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
5513 if(LPION(NNN,IRUN) .eq. 3)then
5515 elseif(LPION(NNN,IRUN) .eq. 5)then
5522 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
5523 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
5524 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
5525 Pt1I2 = BETAX * TRANSF + PX4
5526 Pt2I2 = BETAY * TRANSF + PY4
5527 Pt3I2 = BETAZ * TRANSF + PZ4
5530 * assign delta1 and delta2 to i1 or i2 to keep the leadng particle
5532 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
5551 * GET PION'S MOMENTUM AND COORDINATES IN NUCLEUS-NUCLEUS CMS. FRAME
5552 EPCM=SQRT(EPION(NNN,IRUN)**2+PPX**2+PPY**2+PPZ**2)
5553 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
5554 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
5555 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
5556 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
5557 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
5559 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
5560 clin-5/2008 do not allow smearing in position of produced particles
5561 c to avoid immediate reinteraction with the particle I1, I2 or themselves:
5562 c2002 X01 = 1.0 - 2.0 * RANART(NSEED)
5563 c Y01 = 1.0 - 2.0 * RANART(NSEED)
5564 c Z01 = 1.0 - 2.0 * RANART(NSEED)
5565 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2002
5566 c RPION(1,NNN,IRUN)=R(1,I1)+0.5*x01
5567 c RPION(2,NNN,IRUN)=R(2,I1)+0.5*y01
5568 c RPION(3,NNN,IRUN)=R(3,I1)+0.5*z01
5569 RPION(1,NNN,IRUN)=R(1,I1)
5570 RPION(2,NNN,IRUN)=R(2,I1)
5571 RPION(3,NNN,IRUN)=R(3,I1)
5574 clin-5/2008 N+N->Deuteron+pi:
5575 * FIND MOMENTUM OF THE FINAL PARTICLES IN THE NUCLEUS-NUCLEUS CMS.
5577 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
5578 c For idpert=1: we produce npertd pert deuterons:
5580 elseif(idpert.eq.2.and.npertd.ge.1) then
5581 c For idpert=2: we first save information for npertd pert deuterons;
5582 c at the last ndloop we create the regular deuteron+pi
5583 c and those pert deuterons:
5586 c Just create the regular deuteron+pi:
5590 dprob1=sdprod/sig/float(npertd)
5592 CALL bbdangle(pxd,pyd,pzd,nt,ipert1,ianti,idloop,pfinal,
5594 CALL ROTATE(PX,PY,PZ,PXd,PYd,PZd)
5595 * LORENTZ-TRANSFORMATION OF THE MOMENTUM OF PARTICLES IN THE FINAL STATE
5596 * FROM THE NN CMS FRAME INTO THE GLOBAL CMS FRAME:
5599 E1dCM=SQRT(xmass**2+PXd**2+PYd**2+PZd**2)
5600 P1dBETA=PXd*BETAX+PYd*BETAY+PZd*BETAZ
5601 TRANSF=GAMMA*(GAMMA*P1dBETA/(GAMMA+1.)+E1dCM)
5602 pxi1=BETAX*TRANSF+PXd
5603 pyi1=BETAY*TRANSF+PYd
5604 pzi1=BETAZ*TRANSF+PZd
5610 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
5611 cccc Perturbative production for idpert=1:
5613 PPION(1,NNN,IRUN)=pxi1
5614 PPION(2,NNN,IRUN)=pyi1
5615 PPION(3,NNN,IRUN)=pzi1
5618 RPION(1,NNN,IRUN)=R(1,I1)
5619 RPION(2,NNN,IRUN)=R(2,I1)
5620 RPION(3,NNN,IRUN)=R(3,I1)
5621 clin-5/2008 assign the perturbative probability:
5622 dppion(NNN,IRUN)=sdprod/sig/float(npertd)
5623 elseif(idpert.eq.2.and.idloop.le.npertd) then
5624 clin-5/2008 For idpert=2, we produce NPERTD perturbative (anti)deuterons
5625 c only when a regular (anti)deuteron+pi is produced in NN collisions.
5626 c First save the info for the perturbative deuterons:
5632 cccc Regular production:
5633 c For the regular pion: do LORENTZ-TRANSFORMATION:
5635 E2piCM=SQRT(xmm**2+PXd**2+PYd**2+PZd**2)
5636 P2piBETA=-PXd*BETAX-PYd*BETAY-PZd*BETAZ
5637 TRANSF=GAMMA*(GAMMA*P2piBETA/(GAMMA+1.)+E2piCM)
5638 pxi2=BETAX*TRANSF-PXd
5639 pyi2=BETAY*TRANSF-PYd
5640 pzi2=BETAZ*TRANSF-PZd
5644 c Remove regular pion to check the equivalence
5645 c between the perturbative and regular deuteron results:
5655 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
5657 c For the regular deuteron:
5666 c For idpert=2: create the perturbative deuterons:
5667 if(idpert.eq.2.and.idloop.eq.ndloop) then
5670 PPION(1,NNN,IRUN)=ppd(1,ipertd)
5671 PPION(2,NNN,IRUN)=ppd(2,ipertd)
5672 PPION(3,NNN,IRUN)=ppd(3,ipertd)
5674 LPION(NNN,IRUN)=lbpd(ipertd)
5675 RPION(1,NNN,IRUN)=R(1,I1)
5676 RPION(2,NNN,IRUN)=R(2,I1)
5677 RPION(3,NNN,IRUN)=R(3,I1)
5678 clin-5/2008 assign the perturbative probability:
5679 dppion(NNN,IRUN)=1./float(npertd)
5686 clin-5/2008 N+N->Deuteron+pi over
5687 * FOR THE NN-->KAON+X PROCESS, FIND MOMENTUM OF THE FINAL PARTICLES IN
5688 * THE NUCLEUS-NUCLEUS CMS.
5690 csp11/21/01 phi production
5691 if(XSK5/sigK.gt.RANART(NSEED))then
5694 LB(I1) = 1 + int(2 * RANART(NSEED))
5695 LB(I2) = 1 + int(2 * RANART(NSEED))
5698 EPION(NNN,IRUN)=APHI
5704 if(ianti .eq. 1)iblock=-9
5708 * DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
5713 * only lambda production is possible
5714 * (1.1)P+P-->p+L+kaon+
5716 LB(I1) = 1 + int(2 * RANART(NSEED))
5720 if(srt.le.2.74.and.srt.gt.2.63)then
5721 * both Lambda and sigma production are possible
5722 if(XSK1/(XSK1+XSK2).gt.RANART(NSEED))then
5725 LB(I1) = 1 + int(2 * RANART(NSEED))
5729 LB(I1) = 1 + int(2 * RANART(NSEED))
5730 LB(I2) = 15 + int(3 * RANART(NSEED))
5735 if(srt.le.2.77.and.srt.gt.2.74)then
5736 * then pp-->Delta lamda kaon can happen
5737 if(xsk1/(xsk1+xsk2+xsk3).
5738 1 gt.RANART(NSEED))then
5739 * * (1.1)P+P-->p+L+kaon+
5741 LB(I1) = 1 + int(2 * RANART(NSEED))
5745 if(xsk2/(xsk2+xsk3).gt.RANART(NSEED))then
5748 LB(I1) = 1 + int(2 * RANART(NSEED))
5749 LB(I2) = 15 + int(3 * RANART(NSEED))
5753 LB(I1) = 6 + int(4 * RANART(NSEED))
5760 * all four channels are possible
5761 if(xsk1/(xsk1+xsk2+xsk3+xsk4).gt.RANART(NSEED))then
5762 * p lambda k production
5764 LB(I1) = 1 + int(2 * RANART(NSEED))
5768 if(xsk3/(xsk2+xsk3+xsk4).gt.RANART(NSEED))then
5769 * delta l K production
5771 LB(I1) = 6 + int(4 * RANART(NSEED))
5775 if(xsk2/(xsk2+xsk4).gt.RANART(NSEED))then
5776 * n sigma k production
5777 LB(I1) = 1 + int(2 * RANART(NSEED))
5778 LB(I2) = 15 + int(3 * RANART(NSEED))
5782 LB(I1) = 6 + int(4 * RANART(NSEED))
5783 LB(I2) = 15 + int(3 * RANART(NSEED))
5790 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
5793 if(LPION(NNN,IRUN) .eq. 23)LPION(NNN,IRUN)=21
5795 * KEEP ALL COORDINATES OF PARTICLE 2 FOR POSSIBLE PHASE SPACE CHANGE
5797 127 CALL BBKAON(ic,SRT,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
5798 & PPX,PPY,PPZ,icou1)
5800 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 127
5801 c if(icou1.lt.0)return
5802 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
5803 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
5804 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
5805 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
5806 * FIND THE MOMENTUM OF PARTICLES IN THE FINAL STATE IN THE NUCLEUS-
5807 * NUCLEUS CMS. FRAME
5808 * (1) for the necleon/delta
5809 * LORENTZ-TRANSFORMATION INTO LAB FRAME FOR DELTA1
5810 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
5811 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
5812 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
5813 Pt1i1 = BETAX * TRANSF + PX3
5814 Pt2i1 = BETAY * TRANSF + PY3
5815 Pt3i1 = BETAZ * TRANSF + PZ3
5818 * (2) for the lambda/sigma
5819 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
5820 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
5821 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
5822 Pt1I2 = BETAX * TRANSF + PX4
5823 Pt2I2 = BETAY * TRANSF + PY4
5824 Pt3I2 = BETAZ * TRANSF + PZ4
5827 * GET the kaon'S MOMENTUM AND COORDINATES IN NUCLEUS-NUCLEUS CMS. FRAME
5828 EPCM=SQRT(aka**2+PPX**2+PPY**2+PPZ**2)
5829 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
5830 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
5831 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
5832 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
5833 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
5835 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
5837 c2003 X01 = 1.0 - 2.0 * RANART(NSEED)
5838 c Y01 = 1.0 - 2.0 * RANART(NSEED)
5839 c Z01 = 1.0 - 2.0 * RANART(NSEED)
5840 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2003
5841 c RPION(1,NNN,IRUN)=R(1,I1)+0.5*x01
5842 c RPION(2,NNN,IRUN)=R(2,I1)+0.5*y01
5843 c RPION(3,NNN,IRUN)=R(3,I1)+0.5*z01
5844 RPION(1,NNN,IRUN)=R(1,I1)
5845 RPION(2,NNN,IRUN)=R(2,I1)
5846 RPION(3,NNN,IRUN)=R(3,I1)
5848 * assign the nucleon/delta and lambda/sigma to i1 or i2 to keep the
5849 * leadng particle behaviour
5850 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
5869 * FOR THE NN-->Delta+Delta+rho PROCESS, FIND MOMENTUM OF THE FINAL
5870 * PARTICLES IN THE NUCLEUS-NUCLEUS CMS.
5873 125 CALL DDrho(SRT,ISEED,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
5874 & PPX,PPY,PPZ,amrho,icou1)
5876 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 125
5877 C if(icou1.lt.0)return
5878 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
5879 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
5880 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
5881 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
5884 * DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
5887 IF(LB(I1)*LB(I2).EQ.1)THEN
5889 * (1.1)P+P-->D+++D0+rho(0)
5891 EPION(NNN,IRUN)=Arho
5896 * (1.2)P+P -->D++D+rho(0)
5897 IF((XDIR.LE.0.4).AND.(XDIR.GT.0.2))THEN
5899 EPION(NNN,IRUN)=Arho
5904 * (1.3)P+P-->D+++D+arho(-)
5905 IF((XDIR.LE.0.6).AND.(XDIR.GT.0.4))THEN
5907 EPION(NNN,IRUN)=Arho
5912 IF((XDIR.LE.0.8).AND.(XDIR.GT.0.6))THEN
5914 EPION(NNN,IRUN)=Arho
5921 EPION(NNN,IRUN)=Arho
5928 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
5930 * (2.1)N+N-->D++D-+rho(0)
5932 EPION(NNN,IRUN)=Arho
5937 * (2.2)N+N -->D+++D-+rho(-)
5938 IF((XDIR.LE.0.4).AND.(XDIR.GT.0.2))THEN
5940 EPION(NNN,IRUN)=Arho
5945 * (2.3)P+P-->D0+D-+rho(+)
5946 IF((XDIR.GT.0.4).AND.(XDIR.LE.0.6))THEN
5948 EPION(NNN,IRUN)=Arho
5953 * (2.4)P+P-->D0+D0+rho(0)
5954 IF((XDIR.GT.0.6).AND.(XDIR.LE.0.8))THEN
5956 EPION(NNN,IRUN)=Arho
5961 * (2.5)P+P-->D0+D++rho(-)
5964 EPION(NNN,IRUN)=Arho
5971 IF(LB(I1)*LB(I2).EQ.2)THEN
5972 IF(XDIR.Le.0.17)then
5973 * (3.1)N+P-->D+++D-+rho(0)
5975 EPION(NNN,IRUN)=Arho
5980 * (3.2)N+P -->D+++D0+rho(-)
5981 IF((XDIR.LE.0.34).AND.(XDIR.GT.0.17))THEN
5983 EPION(NNN,IRUN)=Arho
5988 * (3.3)N+P-->D++D-+rho(+)
5989 IF((XDIR.GT.0.34).AND.(XDIR.LE.0.51))THEN
5991 EPION(NNN,IRUN)=Arho
5996 * (3.4)N+P-->D++D++rho(-)
5997 IF((XDIR.GT.0.51).AND.(XDIR.LE.0.68))THEN
5999 EPION(NNN,IRUN)=Arho
6004 * (3.5)N+P-->D0+D++rho(0)
6005 IF((XDIR.GT.0.68).AND.(XDIR.LE.0.85))THEN
6007 EPION(NNN,IRUN)=Arho
6012 * (3.6)N+P-->D0+D0+rho(+)
6013 IF(XDIR.GT.0.85)THEN
6015 EPION(NNN,IRUN)=Arho
6020 * FIND THE MOMENTUM OF PARTICLES IN THE FINAL STATE IN THE NUCLEUS-
6021 * NUCLEUS CMS. FRAME
6022 * LORENTZ-TRANSFORMATION INTO LAB FRAME FOR DELTA1
6023 2051 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
6024 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
6025 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
6026 Pt1i1 = BETAX * TRANSF + PX3
6027 Pt2i1 = BETAY * TRANSF + PY3
6028 Pt3i1 = BETAZ * TRANSF + PZ3
6031 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
6034 if(LPION(NNN,IRUN) .eq. 25)then
6036 elseif(LPION(NNN,IRUN) .eq. 27)then
6043 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
6044 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
6045 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
6046 Pt1I2 = BETAX * TRANSF + PX4
6047 Pt2I2 = BETAY * TRANSF + PY4
6048 Pt3I2 = BETAZ * TRANSF + PZ4
6051 * assign delta1 and delta2 to i1 or i2 to keep the leadng particle
6053 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
6072 * GET rho'S MOMENTUM AND COORDINATES IN NUCLEUS-NUCLEUS CMS. FRAME
6073 EPCM=SQRT(EPION(NNN,IRUN)**2+PPX**2+PPY**2+PPZ**2)
6074 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
6075 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
6076 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
6077 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
6078 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
6080 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
6082 c2004 X01 = 1.0 - 2.0 * RANART(NSEED)
6083 c Y01 = 1.0 - 2.0 * RANART(NSEED)
6084 c Z01 = 1.0 - 2.0 * RANART(NSEED)
6085 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2004
6086 c RPION(1,NNN,IRUN)=R(1,I1)+0.5*x01
6087 c RPION(2,NNN,IRUN)=R(2,I1)+0.5*y01
6088 c RPION(3,NNN,IRUN)=R(3,I1)+0.5*z01
6089 RPION(1,NNN,IRUN)=R(1,I1)
6090 RPION(2,NNN,IRUN)=R(2,I1)
6091 RPION(3,NNN,IRUN)=R(3,I1)
6094 * FOR THE NN-->N+N+rho PROCESS, FIND MOMENTUM OF THE FINAL
6095 * PARTICLES IN THE NUCLEUS-NUCLEUS CMS.
6098 126 CALL pprho(SRT,ISEED,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
6099 & PPX,PPY,PPZ,amrho,icou1)
6101 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 126
6102 C if(icou1.lt.0)return
6103 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
6104 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
6105 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
6106 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
6109 * DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
6112 IF(LB(I1)*LB(I2).EQ.1)THEN
6114 * (1.1)P+P-->P+P+rho(0)
6116 EPION(NNN,IRUN)=Arho
6121 * (1.2)P+P -->p+n+rho(+)
6123 EPION(NNN,IRUN)=Arho
6130 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
6132 * (2.1)N+N-->N+N+rho(0)
6134 EPION(NNN,IRUN)=Arho
6139 * (2.2)N+N -->N+P+rho(-)
6141 EPION(NNN,IRUN)=Arho
6148 IF(LB(I1)*LB(I2).EQ.2)THEN
6149 IF(XDIR.Le.0.33)then
6150 * (3.1)N+P-->N+P+rho(0)
6152 EPION(NNN,IRUN)=Arho
6156 * (3.2)N+P -->P+P+rho(-)
6157 else IF((XDIR.LE.0.67).AND.(XDIR.GT.0.34))THEN
6159 EPION(NNN,IRUN)=Arho
6164 * (3.3)N+P-->N+N+rho(+)
6166 EPION(NNN,IRUN)=Arho
6172 * FIND THE MOMENTUM OF PARTICLES IN THE FINAL STATE IN THE NUCLEUS-
6173 * NUCLEUS CMS. FRAME
6174 * LORENTZ-TRANSFORMATION INTO LAB FRAME FOR DELTA1
6175 2052 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
6176 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
6177 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
6178 Pt1i1 = BETAX * TRANSF + PX3
6179 Pt2i1 = BETAY * TRANSF + PY3
6180 Pt3i1 = BETAZ * TRANSF + PZ3
6183 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
6186 if(LPION(NNN,IRUN) .eq. 25)then
6188 elseif(LPION(NNN,IRUN) .eq. 27)then
6195 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
6196 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
6197 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
6198 Pt1I2 = BETAX * TRANSF + PX4
6199 Pt2I2 = BETAY * TRANSF + PY4
6200 Pt3I2 = BETAZ * TRANSF + PZ4
6203 * assign p1 and p2 to i1 or i2 to keep the leadng particle
6205 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
6224 * GET rho'S MOMENTUM AND COORDINATES IN NUCLEUS-NUCLEUS CMS. FRAME
6225 EPCM=SQRT(EPION(NNN,IRUN)**2+PPX**2+PPY**2+PPZ**2)
6226 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
6227 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
6228 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
6229 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
6230 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
6232 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
6234 c2005 X01 = 1.0 - 2.0 * RANART(NSEED)
6235 c Y01 = 1.0 - 2.0 * RANART(NSEED)
6236 c Z01 = 1.0 - 2.0 * RANART(NSEED)
6237 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2005
6238 c RPION(1,NNN,IRUN)=R(1,I1)+0.5*x01
6239 c RPION(2,NNN,IRUN)=R(2,I1)+0.5*y01
6240 c RPION(3,NNN,IRUN)=R(3,I1)+0.5*z01
6241 RPION(1,NNN,IRUN)=R(1,I1)
6242 RPION(2,NNN,IRUN)=R(2,I1)
6243 RPION(3,NNN,IRUN)=R(3,I1)
6246 * FOR THE NN-->p+p+omega PROCESS, FIND MOMENTUM OF THE FINAL
6247 * PARTICLES IN THE NUCLEUS-NUCLEUS CMS.
6250 138 CALL ppomga(SRT,ISEED,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
6251 & PPX,PPY,PPZ,icou1)
6253 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 138
6254 C if(icou1.lt.0)return
6255 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
6256 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
6257 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
6258 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
6261 * DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
6263 IF(LB(I1)*LB(I2).EQ.1)THEN
6264 * (1.1)P+P-->P+P+omega(0)
6266 EPION(NNN,IRUN)=Aomega
6272 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
6273 * (2.1)N+N-->N+N+omega(0)
6275 EPION(NNN,IRUN)=Aomega
6281 IF(LB(I1)*LB(I2).EQ.2)THEN
6282 * (3.1)N+P-->N+P+omega(0)
6284 EPION(NNN,IRUN)=Aomega
6289 * FIND THE MOMENTUM OF PARTICLES IN THE FINAL STATE IN THE NUCLEUS-
6290 * NUCLEUS CMS. FRAME
6291 * LORENTZ-TRANSFORMATION INTO LAB FRAME FOR DELTA1
6292 2053 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
6293 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
6294 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
6295 Pt1i1 = BETAX * TRANSF + PX3
6296 Pt2i1 = BETAY * TRANSF + PY3
6297 Pt3i1 = BETAZ * TRANSF + PZ3
6299 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
6305 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
6306 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
6307 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
6308 Pt1I2 = BETAX * TRANSF + PX4
6309 Pt2I2 = BETAY * TRANSF + PY4
6310 Pt3I2 = BETAZ * TRANSF + PZ4
6313 * assign delta1 and delta2 to i1 or i2 to keep the leadng particle
6315 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
6334 * GET omega'S MOMENTUM AND COORDINATES IN NUCLEUS-NUCLEUS CMS. FRAME
6335 EPCM=SQRT(EPION(NNN,IRUN)**2+PPX**2+PPY**2+PPZ**2)
6336 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
6337 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
6338 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
6339 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
6340 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
6342 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
6344 c2006 X01 = 1.0 - 2.0 * RANART(NSEED)
6345 c Y01 = 1.0 - 2.0 * RANART(NSEED)
6346 c Z01 = 1.0 - 2.0 * RANART(NSEED)
6347 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2006
6348 c RPION(1,NNN,IRUN)=R(1,I1)+0.5*x01
6349 c RPION(2,NNN,IRUN)=R(2,I1)+0.5*y01
6350 c RPION(3,NNN,IRUN)=R(3,I1)+0.5*z01
6351 RPION(1,NNN,IRUN)=R(1,I1)
6352 RPION(2,NNN,IRUN)=R(2,I1)
6353 RPION(3,NNN,IRUN)=R(3,I1)
6356 * change phase space density FOR NUCLEONS AFTER THE PROCESS
6358 clin-10/25/02-comment out following, since there is no path to it:
6359 clin-8/16/02 used before set
6360 c IX1,IY1,IZ1,IPX1,IPY1,IPZ1, IX2,IY2,IZ2,IPX2,IPY2,IPZ2:
6361 c if ((abs(ix1).le.mx) .and. (abs(iy1).le.my) .and.
6362 c & (abs(iz1).le.mz)) then
6363 c ipx1p = nint(p(1,i1)/dpx)
6364 c ipy1p = nint(p(2,i1)/dpy)
6365 c ipz1p = nint(p(3,i1)/dpz)
6366 c if ((ipx1p.ne.ipx1) .or. (ipy1p.ne.ipy1) .or.
6367 c & (ipz1p.ne.ipz1)) then
6368 c if ((abs(ipx1).le.mpx) .and. (abs(ipy1).le.my)
6369 c & .and. (ipz1.ge.-mpz) .and. (ipz1.le.mpzp))
6370 c & f(ix1,iy1,iz1,ipx1,ipy1,ipz1) =
6371 c & f(ix1,iy1,iz1,ipx1,ipy1,ipz1) - 1.
6372 c if ((abs(ipx1p).le.mpx) .and. (abs(ipy1p).le.my)
6373 c & .and. (ipz1p.ge.-mpz).and. (ipz1p.le.mpzp))
6374 c & f(ix1,iy1,iz1,ipx1p,ipy1p,ipz1p) =
6375 c & f(ix1,iy1,iz1,ipx1p,ipy1p,ipz1p) + 1.
6378 c if ((abs(ix2).le.mx) .and. (abs(iy2).le.my) .and.
6379 c & (abs(iz2).le.mz)) then
6380 c ipx2p = nint(p(1,i2)/dpx)
6381 c ipy2p = nint(p(2,i2)/dpy)
6382 c ipz2p = nint(p(3,i2)/dpz)
6383 c if ((ipx2p.ne.ipx2) .or. (ipy2p.ne.ipy2) .or.
6384 c & (ipz2p.ne.ipz2)) then
6385 c if ((abs(ipx2).le.mpx) .and. (abs(ipy2).le.my)
6386 c & .and. (ipz2.ge.-mpz) .and. (ipz2.le.mpzp))
6387 c & f(ix2,iy2,iz2,ipx2,ipy2,ipz2) =
6388 c & f(ix2,iy2,iz2,ipx2,ipy2,ipz2) - 1.
6389 c if ((abs(ipx2p).le.mpx) .and. (abs(ipy2p).le.my)
6390 c & .and. (ipz2p.ge.-mpz) .and. (ipz2p.le.mpzp))
6391 c & f(ix2,iy2,iz2,ipx2p,ipy2p,ipz2p) =
6392 c & f(ix2,iy2,iz2,ipx2p,ipy2p,ipz2p) + 1.
6399 *-----------------------------------------------------------------------
6400 *COM: SET THE NEW MOMENTUM COORDINATES
6401 107 IF(PX .EQ. 0.0 .AND. PY .EQ. 0.0) THEN
6409 S2 = SQRT( 1.0 - C2**2 )
6414 PZ = PR * ( C1*C2 - S1*S2*CT1 )
6415 SS = C2 * S1 * CT1 + S2 * C1
6416 PX = PR * ( SS*CT2 - S1*ST1*ST2 )
6417 PY = PR * ( SS*ST2 + S1*ST1*CT2 )
6420 clin-5/2008 CRNN over
6422 **********************************
6423 **********************************
6427 SUBROUTINE CRPP(PX,PY,PZ,SRT,I1,I2,IBLOCK,
6428 &ppel,ppin,spprho,ipp)
6430 * DEALING WITH PION-PION COLLISIONS *
6432 * VALID ONLY FOR PION-PION-DISTANCES LESS THAN 2.5 FM *
6434 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
6436 * IBLOCK - THE INFORMATION BACK *
6437 * 6-> Meson+Meson elastic
6438 * 66-> Meson+meson-->K+K-
6439 **********************************
6440 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
6441 1 AMP=0.93828,AP1=0.13496,
6442 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
6443 PARAMETER (AKA=0.498,aks=0.895)
6444 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
6445 COMMON /AA/ R(3,MAXSTR)
6447 COMMON /BB/ P(3,MAXSTR)
6449 COMMON /CC/ E(MAXSTR)
6451 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
6453 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
6455 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
6457 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
6470 *-----------------------------------------------------------------------
6471 * check Meson+Meson inelastic collisions
6473 c if((srt.gt.1.).and.(ppin/(ppin+ppel).gt.RANART(NSEED)))then
6481 c if(srt.gt.1.and.(ppin/(ppin+ppel)).gt.RANART(NSEED)) then
6483 if(srt.gt.(2*aka).and.(ppin/(ppin+ppel)).gt.RANART(NSEED)) then
6484 c if(ppin/(ppin+ppel).gt.RANART(NSEED)) then
6488 if((pprr/ppin).ge.ranpi) then
6490 c 1) pi pi <-> rho rho:
6491 call pi2ro2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6493 clin-4/03/02 eta equilibration:
6494 elseif((pprr+ppee)/ppin.ge.ranpi) then
6495 c 4) pi pi <-> eta eta:
6496 call pi2et2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6497 elseif(((pprr+ppee+pppe)/ppin).ge.ranpi) then
6498 c 5) pi pi <-> pi eta:
6499 call pi3eta(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6500 elseif(((pprr+ppee+pppe+rpre)/ppin).ge.ranpi) then
6501 c 6) rho pi <-> pi eta:
6502 call rpiret(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6503 elseif(((pprr+ppee+pppe+rpre+xopoe)/ppin).ge.ranpi) then
6504 c 7) omega pi <-> omega eta:
6505 call opioet(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6506 elseif(((pprr+ppee+pppe+rpre+xopoe+rree)
6507 1 /ppin).ge.ranpi) then
6508 c 8) rho rho <-> eta eta:
6509 call ro2et2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6512 c 2) BBbar production:
6513 elseif(((pprr+ppee+pppe+rpre+xopoe+rree+ppinnb)/ppin)
6516 call bbarfs(lbb1,lbb2,ei1,ei2,iblock,iseed)
6517 c 3) KKbar production:
6524 clin-11/07/00 pi rho -> K* Kbar and K*bar K productions:
6527 clin-2/13/03 include omega the same as rho, eta the same as pi:
6528 c if(((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.25.and.lb2.le.27))
6529 c 1 .or.((lb2.ge.3.and.lb2.le.5).and.(lb1.ge.25.and.lb1.le.27)))
6530 if( ( (lb1.eq.0.or.(lb1.ge.3.and.lb1.le.5))
6531 1 .and.(lb2.ge.25.and.lb2.le.28))
6532 2 .or. ( (lb2.eq.0.or.(lb2.ge.3.and.lb2.le.5))
6533 3 .and.(lb1.ge.25.and.lb1.le.28))) then
6536 if(RANART(NSEED).ge.0.5) then
6557 c.....for meson+meson elastic srt.le.2Mk, if not pi+pi collision return
6558 if ((lb(i1).lt.3.or.lb(i1).gt.5).and.
6559 & (lb(i2).lt.3.or.lb(i2).gt.5)) return
6562 * check Meson+Meson elastic collisions
6565 if(ipp.eq.1.or.ipp.eq.4.or.ipp.eq.6)go to 10
6566 if(spprho/ppel.gt.RANART(NSEED))go to 20
6572 *-----------------------------------------------------------------------
6573 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
6574 * ENERGY CONSERVATION
6575 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
6576 1 - 4.0 * (EM1*EM2)**2
6577 IF(PR2.LE.0.)PR2=1.e-09
6578 PR=SQRT(PR2)/(2.*SRT)
6579 C1 = 1.0 - 2.0 * RANART(NSEED)
6580 T1 = 2.0 * PI * RANART(NSEED)
6581 S1 = SQRT( 1.0 - C1**2 )
6587 * for isotropic distribution no need to ROTATE THE MOMENTUM
6590 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
6595 * treat rho formation in pion+pion collisions
6596 * calculate the mass and momentum of rho in the nucleus-nucleus frame
6598 if(ipp.eq.2)lb(i1)=27
6599 if(ipp.eq.3)lb(i1)=26
6600 if(ipp.eq.5)lb(i1)=25
6603 **********************************
6604 **********************************
6607 SUBROUTINE CRND(IRUN,PX,PY,PZ,SRT,I1,I2,IBLOCK,
6608 &SIGNN,SIG,sigk,xsk1,xsk2,xsk3,xsk4,xsk5,NT,ipert1)
6610 * DEALING WITH NUCLEON-BARYON RESONANCE COLLISIONS *
6612 * VALID ONLY FOR BARYON-BARYON-DISTANCES LESS THAN 1.32 FM *
6613 * (1.32 = 2 * HARD-CORE-RADIUS [HRC] ) *
6615 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
6617 * NSTAR =1 INCLUDING N* RESORANCE,ELSE NOT *
6618 * NDIRCT=1 INCLUDING DIRECT PION PRODUCTION PROCESS *
6619 * IBLOCK - THE INFORMATION BACK *
6620 * 0-> COLLISION CANNOT HAPPEN *
6621 * 1-> N-N ELASTIC COLLISION *
6622 * 2-> N+N->N+DELTA,OR N+N->N+N* REACTION *
6623 * 3-> N+DELTA->N+N OR N+N*->N+N REACTION *
6624 * 4-> N+N->N+N+PION,DIRTCT PROCESS *
6625 * N12 - IS USED TO SPECIFY BARYON-BARYON REACTION *
6626 * CHANNELS. M12 IS THE REVERSAL CHANNEL OF N12 *
6628 * M12=1 FOR p+n-->delta(+)+ n *
6629 * 2 p+n-->delta(0)+ p *
6630 * 3 p+p-->delta(++)+n *
6631 * 4 p+p-->delta(+)+p *
6632 * 5 n+n-->delta(0)+n *
6633 * 6 n+n-->delta(-)+p *
6634 * 7 n+p-->N*(0)(1440)+p *
6635 * 8 n+p-->N*(+)(1440)+n *
6636 * 9 p+p-->N*(+)(1535)+p *
6637 * 10 n+n-->N*(0)(1535)+n *
6638 * 11 n+p-->N*(+)(1535)+n *
6639 * 12 n+p-->N*(0)(1535)+p
6640 * 13 D(++)+D(-)-->N*(+)(1440)+n
6641 * 14 D(++)+D(-)-->N*(0)(1440)+p
6642 * 15 D(+)+D(0)--->N*(+)(1440)+n
6643 * 16 D(+)+D(0)--->N*(0)(1440)+p
6644 * 17 D(++)+D(0)-->N*(+)(1535)+p
6645 * 18 D(++)+D(-)-->N*(0)(1535)+p
6646 * 19 D(++)+D(-)-->N*(+)(1535)+n
6647 * 20 D(+)+D(+)-->N*(+)(1535)+p
6648 * 21 D(+)+D(0)-->N*(+)(1535)+n
6649 * 22 D(+)+D(0)-->N*(0)(1535)+p
6650 * 23 D(+)+D(-)-->N*(0)(1535)+n
6651 * 24 D(0)+D(0)-->N*(0)(1535)+n
6652 * 25 N*(+)(14)+N*(+)(14)-->N*(+)(15)+p
6653 * 26 N*(0)(14)+N*(0)(14)-->N*(0)(15)+n
6654 * 27 N*(+)(14)+N*(0)(14)-->N*(+)(15)+n
6655 * 28 N*(+)(14)+N*(0)(14)-->N*(0)(15)+p
6656 * 29 N*(+)(14)+D+-->N*(+)(15)+p
6657 * 30 N*(+)(14)+D0-->N*(+)(15)+n
6658 * 31 N*(+)(14)+D(-)-->N*(0)(1535)+n
6659 * 32 N*(0)(14)+D++--->N*(+)(15)+p
6660 * 33 N*(0)(14)+D+--->N*(+)(15)+n
6661 * 34 N*(0)(14)+D+--->N*(0)(15)+p
6662 * 35 N*(0)(14)+D0-->N*(0)(15)+n
6663 * 36 N*(+)(14)+D0--->N*(0)(15)+p
6664 * ++ see the note book for more listing
6665 **********************************
6666 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
6667 1 AMP=0.93828,AP1=0.13496,AKA=0.498,APHI=1.020,
6668 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
6669 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
6670 parameter (xmd=1.8756,npdmax=10000)
6671 COMMON /AA/ R(3,MAXSTR)
6673 COMMON /BB/ P(3,MAXSTR)
6675 COMMON /CC/ E(MAXSTR)
6677 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
6679 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
6681 common /gg/ dx,dy,dz,dpx,dpy,dpz
6683 COMMON /INPUT/ NSTAR,NDIRCT,DIR
6687 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
6691 COMMON /PA/RPION(3,MAXSTR,MAXR)
6693 COMMON /PB/PPION(3,MAXSTR,MAXR)
6695 COMMON /PC/EPION(MAXSTR,MAXR)
6697 COMMON /PD/LPION(MAXSTR,MAXR)
6699 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
6701 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
6702 1 px1n,py1n,pz1n,dp1n
6706 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
6707 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
6708 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
6710 common /para8/ idpert,npertd,idxsec
6711 dimension ppd(3,npdmax),lbpd(npdmax)
6713 *-----------------------------------------------------------------------
6720 PR = SQRT( PX**2 + PY**2 + PZ**2 )
6724 if(lb(i1).lt.0 .and. lb(i2).lt.0)ianti=1
6726 clin-6/2008 Production of perturbative deuterons for idpert=1:
6727 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
6728 if(idpert.eq.1.and.ipert1.eq.1) then
6729 IF (SRT .LT. 2.012) RETURN
6730 if((iabs(lb(i1)).eq.1.or.iabs(lb(i1)).eq.2)
6731 1 .and.(iabs(lb(i2)).ge.6.and.iabs(lb(i2)).le.13)) then
6733 elseif((iabs(lb(i2)).eq.1.or.iabs(lb(i2)).eq.2)
6734 1 .and.(iabs(lb(i1)).ge.6.and.iabs(lb(i1)).le.13)) then
6740 *-----------------------------------------------------------------------
6741 *COM: TEST FOR ELASTIC SCATTERING (EITHER N-N OR DELTA-DELTA 0R
6742 * N-DELTA OR N*-N* or N*-Delta)
6743 IF (X1 .LE. SIGNN/SIG) THEN
6744 *COM: PARAMETRISATION IS TAKEN FROM THE CUGNON-PAPER
6745 AS = ( 3.65 * (SRT - 1.8766) )**6
6746 A = 6.0 * AS / (1.0 + AS)
6749 clin-10/24/02 T1 = ALOG( (1-X) * DEXP(dble(A)*dble(TA)) + X ) / A
6750 T1 = sngl(DLOG(dble(1.-X)*DEXP(dble(A)*dble(TA))+dble(X)))/ A
6752 T1 = 2.0 * PI * RANART(NSEED)
6756 *COM: TEST FOR INELASTIC SCATTERING
6757 * IF THE AVAILABLE ENERGY IS LESS THAN THE PION-MASS, NOTHING
6758 * CAN HAPPEN ANY MORE ==> RETURN (2.04 = 2*AVMASS + PI-MASS+0.02)
6759 IF (SRT .LT. 2.04) RETURN
6760 clin-6/2008 add d+meson production for n*N*(0)(1440) and p*N*(+)(1440) channels
6761 c (they did not have any inelastic reactions before):
6762 if(((iabs(LB(I1)).EQ.2.or.iabs(LB(I2)).EQ.2).AND.
6763 1 (LB(I1)*LB(I2)).EQ.20).or.(LB(I1)*LB(I2)).EQ.13) then
6764 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6767 * Resonance absorption or Delta + N-->N*(1440), N*(1535)
6768 * COM: TEST FOR DELTA OR N* ABSORPTION
6769 * IN THE PROCESS DELTA+N-->NN, N*+N-->NN
6770 PRF=SQRT(0.25*SRT**2-AVMASS**2)
6776 RENOM=DELTAM*PRF**2/DENOM(SRT,1.)/PR
6777 RENOMN=DELTAM*PRF**2/DENOM(SRT,2.)/PR
6778 RENOM1=DELTAM*PRF**2/DENOM(SRT,-1.)/PR
6779 * avoid the inelastic collisions between n+delta- -->N+N
6780 * and p+delta++ -->N+N due to charge conservation,
6781 * but they can scatter to produce kaons
6782 if((iabs(lb(i1)).eq.2).and.(iabs(lb(i2)).eq.6)) renom=0.
6783 if((iabs(lb(i2)).eq.2).and.(iabs(lb(i1)).eq.6)) renom=0.
6784 if((iabs(lb(i1)).eq.1).and.(iabs(lb(i2)).eq.9)) renom=0.
6785 if((iabs(lb(i2)).eq.1).and.(iabs(lb(i1)).eq.9)) renom=0.
6786 Call M1535(iabs(lb(i1)),iabs(lb(i2)),srt,x1535)
6787 X1440=(3./4.)*SIGMA(SRT,2,0,1)
6788 * CROSS SECTION FOR KAON PRODUCTION from the four channels
6790 * avoid the inelastic collisions between n+delta- -->N+N
6791 * and p+delta++ -->N+N due to charge conservation,
6792 * but they can scatter to produce kaons
6793 if(((iabs(lb(i1)).eq.2).and.(iabs(lb(i2)).eq.6)).OR.
6794 & ((iabs(lb(i2)).eq.2).and.(iabs(lb(i1)).eq.6)).OR.
6795 & ((iabs(lb(i1)).eq.1).and.(iabs(lb(i2)).eq.9)).OR.
6796 & ((iabs(lb(i2)).eq.1).and.(iabs(lb(i1)).eq.9)))THEN
6798 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6799 c IF((SIGK+SIGNN)/SIG.GE.X1)GO TO 306
6800 IF((SIGK+SIGNN+sdprod)/SIG.GE.X1)GO TO 306
6803 * WE DETERMINE THE REACTION CHANNELS IN THE FOLLOWING
6804 * FOR n+delta(++)-->p+p or n+delta(++)-->n+N*(+)(1440),n+N*(+)(1535)
6805 * REABSORPTION OR N*(1535) PRODUCTION LIKE IN P+P OR N*(1440) LIKE PN,
6806 IF(LB(I1)*LB(I2).EQ.18.AND.
6807 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))then
6808 SIGND=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
6809 SIGDN=0.25*SIGND*RENOM
6811 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6812 c IF(X1.GT.(SIGNN+SIGDN+X1440+X1535+SIGK)/SIG)RETURN
6813 IF(X1.GT.(SIGNN+SIGDN+X1440+X1535+SIGK+sdprod)/SIG)RETURN
6815 IF(SIGK/(SIGK+SIGDN+X1440+X1535).GT.RANART(NSEED))GO TO 306
6817 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1440+X1535))THEN
6822 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
6827 clin-2/26/03 why is the above commented out? leads to M12=0 but
6828 c particle mass is changed after 204 (causes energy violation).
6829 c replace by elastic process (return):
6836 * FOR p+delta(-)-->n+n or p+delta(-)-->n+N*(0)(1440),n+N*(0)(1535)
6837 * REABSORPTION OR N*(1535) PRODUCTION LIKE IN P+P OR N*(1440) LIKE PN,
6838 IF(LB(I1)*LB(I2).EQ.6.AND.
6839 & ((iabs(LB(I1)).EQ.1).OR.(iabs(LB(I2)).EQ.1)))then
6840 SIGND=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
6841 SIGDN=0.25*SIGND*RENOM
6843 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6844 c IF (X1.GT.(SIGNN+SIGDN+X1440+X1535+SIGK)/SIG)RETURN
6845 IF (X1.GT.(SIGNN+SIGDN+X1440+X1535+SIGK+sdprod)/SIG)RETURN
6847 IF(SIGK/(SIGK+SIGDN+X1440+X1535).GT.RANART(NSEED))GO TO 306
6849 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1440+X1535))THEN
6854 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
6859 clin-2/26/03 causes energy violation, replace by elastic process (return):
6866 * FOR p+delta(+)-->p+p, N*(+)(144)+p, N*(+)(1535)+p
6867 IF(LB(I1)*LB(I2).EQ.8.AND.
6868 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))THEN
6869 SIGND=1.5*SIGMA(SRT,1,1,1)
6870 SIGDN=0.25*SIGND*RENOM
6872 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6873 c IF(X1.GT.(SIGNN+SIGDN+x1440+x1535+SIGK)/SIG)RETURN
6874 IF(X1.GT.(SIGNN+SIGDN+x1440+x1535+SIGK+sdprod)/SIG)RETURN
6876 IF(SIGK/(SIGK+SIGDN+X1440+X1535).GT.RANART(NSEED))GO TO 306
6877 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1440+X1535))THEN
6881 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
6890 * FOR n+delta(0)-->n+n, N*(0)(144)+n, N*(0)(1535)+n
6891 IF(LB(I1)*LB(I2).EQ.14.AND.
6892 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))THEN
6893 SIGND=1.5*SIGMA(SRT,1,1,1)
6894 SIGDN=0.25*SIGND*RENOM
6896 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6897 c IF(X1.GT.(SIGNN+SIGDN+x1440+x1535+SIGK)/SIG)RETURN
6898 IF(X1.GT.(SIGNN+SIGDN+x1440+x1535+SIGK+sdprod)/SIG)RETURN
6900 IF(SIGK/(SIGK+SIGDN+X1440+X1535).GT.RANART(NSEED))GO TO 306
6901 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1440+X1535))THEN
6905 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
6914 * FOR n+delta(+)-->n+p, N*(+)(1440)+n,N*(0)(1440)+p,
6915 * N*(+)(1535)+n,N*(0)(1535)+p
6916 IF(LB(I1)*LB(I2).EQ.16.AND.
6917 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))THEN
6918 SIGND=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
6919 SIGDN=0.5*SIGND*RENOM
6921 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6922 c IF(X1.GT.(SIGNN+SIGDN+2.*x1440+2.*x1535+SIGK)/SIG)RETURN
6923 IF(X1.GT.(SIGNN+SIGDN+2.*x1440+2.*x1535+SIGK+sdprod)/SIG)RETURN
6925 IF(SIGK/(SIGK+SIGDN+2*X1440+2*X1535).GT.RANART(NSEED))GO TO 306
6926 IF(RANART(NSEED).LT.SIGDN/(SIGDN+2.*X1440+2.*X1535))THEN
6930 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
6932 IF(RANART(NSEED).LE.0.5)M12=43
6935 IF(RANART(NSEED).LE.0.5)M12=44
6940 * FOR p+delta(0)-->n+p, N*(+)(1440)+n,N*(0)(1440)+p,
6941 * N*(+)(1535)+n,N*(0)(1535)+p
6942 IF(LB(I1)*LB(I2).EQ.7)THEN
6943 SIGND=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
6944 SIGDN=0.5*SIGND*RENOM
6946 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6947 c IF(X1.GT.(SIGNN+SIGDN+2.*x1440+2.*x1535+SIGK)/SIG)RETURN
6948 IF(X1.GT.(SIGNN+SIGDN+2.*x1440+2.*x1535+SIGK+sdprod)/SIG)RETURN
6950 IF(SIGK/(SIGK+SIGDN+2*X1440+2*X1535).GT.RANART(NSEED))GO TO 306
6951 IF(RANART(NSEED).LT.SIGDN/(SIGDN+2.*X1440+2.*X1535))THEN
6955 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
6957 IF(RANART(NSEED).LE.0.5)M12=51
6960 IF(RANART(NSEED).LE.0.5)M12=53
6965 * FOR p+N*(0)(14)-->p+n, N*(+)(1535)+n,N*(0)(1535)+p
6966 * OR P+N*(0)(14)-->D(+)+N, D(0)+P,
6967 IF(LB(I1)*LB(I2).EQ.10.AND.
6968 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))then
6969 SIGND=(3./4.)*SIGMA(SRT,2,0,1)
6972 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6973 c IF(X1.GT.(SIGNN+SIGDN+X1535+SIGK)/SIG)RETURN
6974 IF(X1.GT.(SIGNN+SIGDN+X1535+SIGK+sdprod)/SIG)RETURN
6976 IF(SIGK/(SIGK+SIGDN+X1535).GT.RANART(NSEED))GO TO 306
6977 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1535))THEN
6982 IF(RANART(NSEED).LE.0.5)M12=55
6986 * FOR n+N*(+)-->p+n, N*(+)(1535)+n,N*(0)(1535)+p
6987 IF(LB(I1)*LB(I2).EQ.22.AND.
6988 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))then
6989 SIGND=(3./4.)*SIGMA(SRT,2,0,1)
6992 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6993 c IF(X1.GT.(SIGNN+SIGDN+X1535+SIGK)/SIG)RETURN
6994 IF(X1.GT.(SIGNN+SIGDN+X1535+SIGK+sdprod)/SIG)RETURN
6996 IF(SIGK/(SIGK+SIGDN+X1535).GT.RANART(NSEED))GO TO 306
6997 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1535))THEN
7002 IF(RANART(NSEED).LE.0.5)M12=57
7006 * FOR N*(1535)+N-->N+N COLLISIONS
7007 IF((iabs(LB(I1)).EQ.12).OR.(iabs(LB(I1)).EQ.13).OR.
7008 1 (iabs(LB(I2)).EQ.12).OR.(iabs(LB(I2)).EQ.13))THEN
7012 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
7013 c IF(X1.GT.(SIGNN+SIGDN+SIGK)/SIG)RETURN
7014 IF(X1.GT.(SIGNN+SIGDN+SIGK+sdprod)/SIG)RETURN
7016 IF(SIGK/(SIGK+SIGDN).GT.RANART(NSEED))GO TO 306
7017 IF(LB(I1)*LB(I2).EQ.24)M12=10
7018 IF(LB(I1)*LB(I2).EQ.12)M12=12
7019 IF(LB(I1)*LB(I2).EQ.26)M12=11
7020 IF(LB(I1)*LB(I2).EQ.13)M12=9
7024 * (1) GENERATE THE MASS FOR THE N*(1440) AND N*(1535)
7025 * (2) CALCULATE THE FINAL MOMENTUM OF THE n+N* SYSTEM
7026 * (3) RELABLE THE FINAL STATE PARTICLES
7027 *PARAMETRIZATION OF THE SHAPE OF THE N* RESONANCE ACCORDING
7028 * TO kitazoe's or J.D.JACKSON'S MASS FORMULA AND BREIT WIGNER
7029 * FORMULA FOR N* RESORANCE
7030 * DETERMINE DELTA MASS VIA REJECTION METHOD.
7031 DMAX = SRT - AVMASS-0.005
7033 IF((M12.eq.37).or.(M12.eq.39).or.
7034 1 (M12.eQ.41).OR.(M12.eQ.43).OR.(M12.EQ.46).
7035 2 OR.(M12.EQ.48).OR.(M12.EQ.50).OR.(M12.EQ.51))then
7036 * N*(1440) production
7037 IF(DMAX.LT.1.44) THEN
7041 clin-10/25/02 get rid of argument usage mismatch in FNS():
7043 c FM=FNS(1.44,SRT,1.)
7044 FM=FNS(xdmass,SRT,1.)
7048 IF(FM.EQ.0.)FM=1.E-09
7050 11 DM=RANART(NSEED)*(DMAX-DMIN)+DMIN
7052 IF((RANART(NSEED).GT.FNS(DM,SRT,1.)/FM).AND.
7053 1 (NTRY2.LE.10)) GO TO 11
7055 clin-2/26/03 limit the N* mass below a certain value
7056 c (here taken as its central value + 2* B-W fullwidth):
7057 if(dm.gt.2.14) goto 11
7061 * N*(1535) production
7062 IF(DMAX.LT.1.535) THEN
7066 clin-10/25/02 get rid of argument usage mismatch in FNS():
7068 c FM=FD5(1.535,SRT,1.)
7069 FM=FD5(xdmass,SRT,1.)
7073 IF(FM.EQ.0.)FM=1.E-09
7075 12 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
7077 IF((RANART(NSEED) .GT. FD5(DM,SRT,1.)/FM).AND.
7078 1 (NTRY1.LE.10)) GOTO 12
7080 clin-2/26/03 limit the N* mass below a certain value
7081 c (here taken as its central value + 2* B-W fullwidth):
7082 if(dm.gt.1.84) goto 12
7086 * (2) DETERMINE THE FINAL MOMENTUM
7088 PF2=((SRT**2-DM**2+AVMASS**2)/(2.*SRT))**2-AVMASS**2
7089 IF(PF2.GT.0.)PRF=SQRT(PF2)
7090 * (3) RELABLE FINAL STATE PARTICLES
7091 * 37 D(++)+n-->N*(+)(14)+p
7093 IF(iabs(LB(I1)).EQ.9)THEN
7106 * 38 D(++)+n-->N*(+)(15)+p
7108 IF(iabs(LB(I1)).EQ.9)THEN
7121 * 39 D(+)+P-->N*(+)(14)+p
7123 IF(iabs(LB(I1)).EQ.8)THEN
7136 * 40 D(+)+P-->N*(+)(15)+p
7138 IF(iabs(LB(I1)).EQ.8)THEN
7151 * 41 D(+)+N-->N*(+)(14)+N
7153 IF(iabs(LB(I1)).EQ.8)THEN
7166 * 42 D(+)+N-->N*(+)(15)+N
7168 IF(iabs(LB(I1)).EQ.8)THEN
7181 * 43 D(+)+N-->N*(0)(14)+P
7183 IF(iabs(LB(I1)).EQ.8)THEN
7196 * 44 D(+)+N-->N*(0)(15)+P
7198 IF(iabs(LB(I1)).EQ.8)THEN
7211 * 46 D(-)+P-->N*(0)(14)+N
7213 IF(iabs(LB(I1)).EQ.6)THEN
7226 * 47 D(-)+P-->N*(0)(15)+N
7228 IF(iabs(LB(I1)).EQ.6)THEN
7241 * 48 D(0)+N-->N*(0)(14)+N
7243 IF(iabs(LB(I1)).EQ.7)THEN
7256 * 49 D(0)+N-->N*(0)(15)+N
7258 IF(iabs(LB(I1)).EQ.7)THEN
7271 * 50 D(0)+P-->N*(0)(14)+P
7273 IF(iabs(LB(I1)).EQ.7)THEN
7286 * 51 D(0)+P-->N*(+)(14)+N
7288 IF(iabs(LB(I1)).EQ.7)THEN
7301 * 52 D(0)+P-->N*(0)(15)+P
7303 IF(iabs(LB(I1)).EQ.7)THEN
7316 * 53 D(0)+P-->N*(+)(15)+N
7318 IF(iabs(LB(I1)).EQ.7)THEN
7331 * 54 N*(0)(14)+P-->N*(+)(15)+N
7333 IF(iabs(LB(I1)).EQ.10)THEN
7346 * 55 N*(0)(14)+P-->N*(0)(15)+P
7348 IF(iabs(LB(I1)).EQ.10)THEN
7361 * 56 N*(+)(14)+N-->N*(+)(15)+N
7363 IF(iabs(LB(I1)).EQ.11)THEN
7376 * 57 N*(+)(14)+N-->N*(0)(15)+P
7378 IF(iabs(LB(I1)).EQ.11)THEN
7391 *------------------------------------------------
7392 * RELABLE NUCLEONS AFTER DELTA OR N* BEING ABSORBED
7393 *(1) n+delta(+)-->n+p
7394 206 IF(M12.EQ.1)THEN
7395 IF(iabs(LB(I1)).EQ.8)THEN
7406 *(2) p+delta(0)-->p+n
7408 IF(iabs(LB(I1)).EQ.7)THEN
7419 *(3) n+delta(++)-->p+p
7427 *(4) p+delta(+)-->p+p
7435 *(5) n+delta(0)-->n+n
7443 *(6) p+delta(-)-->n+n
7453 IF(iabs(LB(I1)).EQ.1)THEN
7468 IF(iabs(LB(I1)).EQ.2)THEN
7483 *(9) N*(+)(1535) p-->pp
7509 *(12) N*(0)(1535) p-->Np
7516 *----------------------------------------------
7518 C1 = 1.0 - 2.0 * RANART(NSEED)
7519 if(srt.le.2.14)C1= 1.0 - 2.0 * RANART(NSEED)
7520 if(srt.gt.2.14.and.srt.le.2.4)c1=ang(srt,iseed)
7523 clin-10/25/02 get rid of argument usage mismatch in PTR():
7525 c cc1=ptr(0.33*pr,iseed)
7529 c1=sqrt(pr**2-cc1**2)/pr
7531 T1 = 2.0 * PI * RANART(NSEED)
7534 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
7539 *-----------------------------------------------------------------------
7540 *COM: SET THE NEW MOMENTUM COORDINATES
7541 107 IF(PX .EQ. 0.0 .AND. PY .EQ. 0.0) THEN
7546 S1 = SQRT( 1.0 - C1**2 )
7547 S2 = SQRT( 1.0 - C2**2 )
7552 PZ = PR * ( C1*C2 - S1*S2*CT1 )
7553 SS = C2 * S1 * CT1 + S2 * C1
7554 PX = PR * ( SS*CT2 - S1*ST1*ST2 )
7555 PY = PR * ( SS*ST2 + S1*ST1*CT2 )
7557 * FOR THE NN-->KAON+X PROCESS, FIND MOMENTUM OF THE FINAL PARTICLES IN
7558 * THE NUCLEUS-NUCLEUS CMS.
7560 csp11/21/01 phi production
7561 if(XSK5/sigK.gt.RANART(NSEED))then
7564 LB(I1) = 1 + int(2 * RANART(NSEED))
7565 LB(I2) = 1 + int(2 * RANART(NSEED))
7568 EPION(NNN,IRUN)=APHI
7574 if(ianti .eq. 1)iblock=-11
7578 * DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
7583 * only lambda production is possible
7584 * (1.1)P+P-->p+L+kaon+
7587 LB(I1) = 1 + int(2 * RANART(NSEED))
7591 if(srt.le.2.74.and.srt.gt.2.63)then
7592 * both Lambda and sigma production are possible
7593 if(XSK1/(XSK1+XSK2).gt.RANART(NSEED))then
7597 LB(I1) = 1 + int(2 * RANART(NSEED))
7602 LB(I1) = 1 + int(2 * RANART(NSEED))
7603 LB(I2) = 15 + int(3 * RANART(NSEED))
7608 if(srt.le.2.77.and.srt.gt.2.74)then
7609 * then pp-->Delta lamda kaon can happen
7610 if(xsk1/(xsk1+xsk2+xsk3).
7611 1 gt.RANART(NSEED))then
7612 * * (1.1)P+P-->p+L+kaon+
7615 LB(I1) = 1 + int(2 * RANART(NSEED))
7619 if(xsk2/(xsk2+xsk3).gt.RANART(NSEED))then
7623 LB(I1) = 1 + int(2 * RANART(NSEED))
7624 LB(I2) = 15 + int(3 * RANART(NSEED))
7630 LB(I1) = 6 + int(4 * RANART(NSEED))
7637 * all four channels are possible
7638 if(xsk1/(xsk1+xsk2+xsk3+xsk4).gt.RANART(NSEED))then
7639 * p lambda k production
7642 LB(I1) = 1 + int(2 * RANART(NSEED))
7646 if(xsk3/(xsk2+xsk3+xsk4).gt.RANART(NSEED))then
7647 * delta l K production
7650 LB(I1) = 6 + int(4 * RANART(NSEED))
7654 if(xsk2/(xsk2+xsk4).gt.RANART(NSEED))then
7655 * n sigma k production
7657 LB(I1) = 1 + int(2 * RANART(NSEED))
7658 LB(I2) = 15 + int(3 * RANART(NSEED))
7664 LB(I1) = 6 + int(4 * RANART(NSEED))
7665 LB(I2) = 15 + int(3 * RANART(NSEED))
7673 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
7676 if(LPION(NNN,IRUN) .eq. 23)LPION(NNN,IRUN)=21
7680 * KEEP ALL COORDINATES OF PARTICLE 2 FOR POSSIBLE PHASE SPACE CHANGE
7682 128 CALL BBKAON(ic,SRT,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
7683 & PPX,PPY,PPZ,icou1)
7685 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 128
7686 c if(icou1.lt.0)return
7687 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
7688 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
7689 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
7690 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
7691 * FIND THE MOMENTUM OF PARTICLES IN THE FINAL STATE IN THE NUCLEUS-
7692 * NUCLEUS CMS. FRAME
7693 * (1) for the necleon/delta
7694 * LORENTZ-TRANSFORMATION INTO LAB FRAME FOR DELTA1
7695 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
7696 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
7697 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
7698 Pt1i1 = BETAX * TRANSF + PX3
7699 Pt2i1 = BETAY * TRANSF + PY3
7700 Pt3i1 = BETAZ * TRANSF + PZ3
7702 * (2) for the lambda/sigma
7703 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
7704 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
7705 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
7706 Pt1I2 = BETAX * TRANSF + PX4
7707 Pt2I2 = BETAY * TRANSF + PY4
7708 Pt3I2 = BETAZ * TRANSF + PZ4
7710 * GET the kaon'S MOMENTUM AND COORDINATES IN NUCLEUS-NUCLEUS CMS. FRAME
7711 EPCM=SQRT(aka**2+PPX**2+PPY**2+PPZ**2)
7712 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
7713 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
7714 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
7715 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
7716 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
7718 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
7720 c2008 X01 = 1.0 - 2.0 * RANART(NSEED)
7721 c Y01 = 1.0 - 2.0 * RANART(NSEED)
7722 c Z01 = 1.0 - 2.0 * RANART(NSEED)
7723 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2008
7724 c RPION(1,NNN,IRUN)=R(1,I1)+0.5*x01
7725 c RPION(2,NNN,IRUN)=R(2,I1)+0.5*y01
7726 c RPION(3,NNN,IRUN)=R(3,I1)+0.5*z01
7727 RPION(1,NNN,IRUN)=R(1,I1)
7728 RPION(2,NNN,IRUN)=R(2,I1)
7729 RPION(3,NNN,IRUN)=R(3,I1)
7731 * assign the nucleon/delta and lambda/sigma to i1 or i2 to keep the
7732 * leadng particle behaviour
7733 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
7751 if(LPION(NNN,IRUN) .ne. 29) IBLOCK=11
7756 E1= SQRT( EM1**2 + PX1**2 + PY1**2 + PZ1**2 )
7759 clin-6/2008 N+D->Deuteron+pi:
7760 * FIND MOMENTUM OF THE FINAL PARTICLES IN THE NUCLEUS-NUCLEUS CMS.
7762 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
7763 c For idpert=1: we produce npertd pert deuterons:
7765 elseif(idpert.eq.2.and.npertd.ge.1) then
7766 c For idpert=2: we first save information for npertd pert deuterons;
7767 c at the last ndloop we create the regular deuteron+pi
7768 c and those pert deuterons:
7771 c Just create the regular deuteron+pi:
7775 dprob1=sdprod/sig/float(npertd)
7777 CALL bbdangle(pxd,pyd,pzd,nt,ipert1,ianti,idloop,pfinal,
7779 CALL ROTATE(PX,PY,PZ,PXd,PYd,PZd)
7780 * LORENTZ-TRANSFORMATION OF THE MOMENTUM OF PARTICLES IN THE FINAL STATE
7781 * FROM THE NN CMS FRAME INTO THE GLOBAL CMS FRAME:
7784 E1dCM=SQRT(xmass**2+PXd**2+PYd**2+PZd**2)
7785 P1dBETA=PXd*BETAX+PYd*BETAY+PZd*BETAZ
7786 TRANSF=GAMMA*(GAMMA*P1dBETA/(GAMMA+1.)+E1dCM)
7787 pxi1=BETAX*TRANSF+PXd
7788 pyi1=BETAY*TRANSF+PYd
7789 pzi1=BETAZ*TRANSF+PZd
7795 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
7796 cccc Perturbative production for idpert=1:
7798 PPION(1,NNN,IRUN)=pxi1
7799 PPION(2,NNN,IRUN)=pyi1
7800 PPION(3,NNN,IRUN)=pzi1
7803 RPION(1,NNN,IRUN)=R(1,I1)
7804 RPION(2,NNN,IRUN)=R(2,I1)
7805 RPION(3,NNN,IRUN)=R(3,I1)
7806 clin-6/2008 assign the perturbative probability:
7807 dppion(NNN,IRUN)=sdprod/sig/float(npertd)
7808 elseif(idpert.eq.2.and.idloop.le.npertd) then
7809 clin-6/2008 For idpert=2, we produce NPERTD perturbative (anti)deuterons
7810 c only when a regular (anti)deuteron+pi is produced in NN collisions.
7811 c First save the info for the perturbative deuterons:
7817 cccc Regular production:
7818 c For the regular pion: do LORENTZ-TRANSFORMATION:
7820 E2piCM=SQRT(xmm**2+PXd**2+PYd**2+PZd**2)
7821 P2piBETA=-PXd*BETAX-PYd*BETAY-PZd*BETAZ
7822 TRANSF=GAMMA*(GAMMA*P2piBETA/(GAMMA+1.)+E2piCM)
7823 pxi2=BETAX*TRANSF-PXd
7824 pyi2=BETAY*TRANSF-PYd
7825 pzi2=BETAZ*TRANSF-PZd
7829 c Remove regular pion to check the equivalence
7830 c between the perturbative and regular deuteron results:
7840 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
7842 c For the regular deuteron:
7851 c For idpert=2: create the perturbative deuterons:
7852 if(idpert.eq.2.and.idloop.eq.ndloop) then
7855 PPION(1,NNN,IRUN)=ppd(1,ipertd)
7856 PPION(2,NNN,IRUN)=ppd(2,ipertd)
7857 PPION(3,NNN,IRUN)=ppd(3,ipertd)
7859 LPION(NNN,IRUN)=lbpd(ipertd)
7860 RPION(1,NNN,IRUN)=R(1,I1)
7861 RPION(2,NNN,IRUN)=R(2,I1)
7862 RPION(3,NNN,IRUN)=R(3,I1)
7863 clin-6/2008 assign the perturbative probability:
7864 dppion(NNN,IRUN)=1./float(npertd)
7871 clin-6/2008 N+D->Deuteron+pi over
7874 **********************************
7877 SUBROUTINE CRDD(IRUN,PX,PY,PZ,SRT,I1,I2,IBLOCK,
7878 1NTAG,SIGNN,SIG,NT,ipert1)
7881 * DEALING WITH BARYON RESONANCE-BARYON RESONANCE COLLISIONS*
7884 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
7886 * NSTAR =1 INCLUDING N* RESORANCE,ELSE NOT *
7887 * NDIRCT=1 INCLUDING DIRECT PION PRODUCTION PROCESS *
7888 * IBLOCK - THE INFORMATION BACK *
7889 * 0-> COLLISION CANNOT HAPPEN *
7890 * 1-> N-N ELASTIC COLLISION *
7891 * 2-> N+N->N+DELTA,OR N+N->N+N* REACTION *
7892 * 3-> N+DELTA->N+N OR N+N*->N+N REACTION *
7893 * 4-> N+N->N+N+PION,DIRTCT PROCESS *
7894 * 5-> DELTA(N*)+DELTA(N*) TOTAL COLLISIONS *
7895 * N12 - IS USED TO SPECIFY BARYON-BARYON REACTION *
7896 * CHANNELS. M12 IS THE REVERSAL CHANNEL OF N12 *
7898 * M12=1 FOR p+n-->delta(+)+ n *
7899 * 2 p+n-->delta(0)+ p *
7900 * 3 p+p-->delta(++)+n *
7901 * 4 p+p-->delta(+)+p *
7902 * 5 n+n-->delta(0)+n *
7903 * 6 n+n-->delta(-)+p *
7904 * 7 n+p-->N*(0)(1440)+p *
7905 * 8 n+p-->N*(+)(1440)+n *
7906 * 9 p+p-->N*(+)(1535)+p *
7907 * 10 n+n-->N*(0)(1535)+n *
7908 * 11 n+p-->N*(+)(1535)+n *
7909 * 12 n+p-->N*(0)(1535)+p
7910 * 13 D(++)+D(-)-->N*(+)(1440)+n
7911 * 14 D(++)+D(-)-->N*(0)(1440)+p
7912 * 15 D(+)+D(0)--->N*(+)(1440)+n
7913 * 16 D(+)+D(0)--->N*(0)(1440)+p
7914 * 17 D(++)+D(0)-->N*(+)(1535)+p
7915 * 18 D(++)+D(-)-->N*(0)(1535)+p
7916 * 19 D(++)+D(-)-->N*(+)(1535)+n
7917 * 20 D(+)+D(+)-->N*(+)(1535)+p
7918 * 21 D(+)+D(0)-->N*(+)(1535)+n
7919 * 22 D(+)+D(0)-->N*(0)(1535)+p
7920 * 23 D(+)+D(-)-->N*(0)(1535)+n
7921 * 24 D(0)+D(0)-->N*(0)(1535)+n
7922 * 25 N*(+)(14)+N*(+)(14)-->N*(+)(15)+p
7923 * 26 N*(0)(14)+N*(0)(14)-->N*(0)(15)+n
7924 * 27 N*(+)(14)+N*(0)(14)-->N*(+)(15)+n
7925 * 28 N*(+)(14)+N*(0)(14)-->N*(0)(15)+p
7926 * 29 N*(+)(14)+D+-->N*(+)(15)+p
7927 * 30 N*(+)(14)+D0-->N*(+)(15)+n
7928 * 31 N*(+)(14)+D(-)-->N*(0)(1535)+n
7929 * 32 N*(0)(14)+D++--->N*(+)(15)+p
7930 * 33 N*(0)(14)+D+--->N*(+)(15)+n
7931 * 34 N*(0)(14)+D+--->N*(0)(15)+p
7932 * 35 N*(0)(14)+D0-->N*(0)(15)+n
7933 * 36 N*(+)(14)+D0--->N*(0)(15)+p
7935 * AND MORE CHANNELS AS LISTED IN THE NOTE BOOK
7937 * NOTE ABOUT N*(1440) RESORANCE: *
7938 * As it has been discussed in VerWest's paper,I= 1 (initial isospin)
7939 * channel can all be attributed to delta resorance while I= 0 *
7940 * channel can all be attribured to N* resorance.Only in n+p *
7941 * one can have I=0 channel so is the N*(1440) resorance *
7942 * REFERENCES: J. CUGNON ET AL., NUCL. PHYS. A352, 505 (1981) *
7943 * Y. KITAZOE ET AL., PHYS. LETT. 166B, 35 (1986) *
7944 * B. VerWest el al., PHYS. PRV. C25 (1982)1979 *
7945 * Gy. Wolf et al, Nucl Phys A517 (1990) 615 *
7946 * CUTOFF = 2 * AVMASS + 20 MEV *
7948 * for N*(1535) we use the parameterization by Gy. Wolf et al *
7949 * Nucl phys A552 (1993) 349, added May 18, 1994 *
7950 **********************************
7951 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
7952 1 AMP=0.93828,AP1=0.13496,AKA=0.498,APHI=1.020,
7953 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
7954 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
7955 parameter (xmd=1.8756,npdmax=10000)
7956 COMMON /AA/ R(3,MAXSTR)
7958 COMMON /BB/ P(3,MAXSTR)
7960 COMMON /CC/ E(MAXSTR)
7962 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
7964 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
7966 common /gg/ dx,dy,dz,dpx,dpy,dpz
7968 COMMON /INPUT/ NSTAR,NDIRCT,DIR
7972 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
7976 COMMON /PA/RPION(3,MAXSTR,MAXR)
7978 COMMON /PB/PPION(3,MAXSTR,MAXR)
7980 COMMON /PC/EPION(MAXSTR,MAXR)
7982 COMMON /PD/LPION(MAXSTR,MAXR)
7984 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
7986 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
7987 1 px1n,py1n,pz1n,dp1n
7991 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
7992 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
7993 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
7995 common /para8/ idpert,npertd,idxsec
7996 dimension ppd(3,npdmax),lbpd(npdmax)
7998 *-----------------------------------------------------------------------
8005 PR = SQRT( PX**2 + PY**2 + PZ**2 )
8007 IF(PX .EQ. 0.0 .AND. PY .EQ. 0.0) THEN
8014 if(lb(i1).lt.0 .and. lb(i2).lt.0)ianti=1
8016 clin-6/2008 Production of perturbative deuterons for idpert=1:
8017 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
8018 if(idpert.eq.1.and.ipert1.eq.1) then
8019 IF (SRT .LT. 2.012) RETURN
8020 if((iabs(lb(i1)).ge.6.and.iabs(lb(i1)).le.13)
8021 1 .and.(iabs(lb(i2)).ge.6.and.iabs(lb(i2)).le.13)) then
8028 *-----------------------------------------------------------------------
8029 *COM: TEST FOR ELASTIC SCATTERING (EITHER N-N OR DELTA-DELTA 0R
8030 * N-DELTA OR N*-N* or N*-Delta)
8031 IF (X1 .LE. SIGNN/SIG) THEN
8032 *COM: PARAMETRISATION IS TAKEN FROM THE CUGNON-PAPER
8033 AS = ( 3.65 * (SRT - 1.8766) )**6
8034 A = 6.0 * AS / (1.0 + AS)
8037 clin-10/24/02 T1 = DLOG( (1-X) * DEXP(dble(A)*dble(TA)) + X ) / A
8038 T1 = sngl(DLOG(dble(1.-X)*DEXP(dble(A)*dble(TA))+dble(X)))/ A
8040 T1 = 2.0 * PI * RANART(NSEED)
8044 *COM: TEST FOR INELASTIC SCATTERING
8045 * IF THE AVAILABLE ENERGY IS LESS THAN THE PION-MASS, NOTHING
8046 * CAN HAPPEN ANY MORE ==> RETURN (2.15 = 2*AVMASS +2*PI-MASS)
8047 IF (SRT .LT. 2.15) RETURN
8048 * IF THERE WERE 2 N*(1535) AND THEY DIDN'T SCATT. ELAST.,
8049 * ALLOW THEM TO PRODUCE KAONS. NO OTHER INELASTIC CHANNELS
8051 C if((lb(i1).ge.12).and.(lb(i2).ge.12))return
8052 * ALL the inelastic collisions between N*(1535) and Delta as well
8053 * as N*(1440) TO PRODUCE KAONS, NO OTHER CHANNELS ARE KNOWN
8054 C if((lb(i1).ge.12).and.(lb(i2).ge.3))return
8055 C if((lb(i2).ge.12).and.(lb(i1).ge.3))return
8056 * calculate the N*(1535) production cross section in I1+I2 collisions
8057 call N1535(iabs(lb(i1)),iabs(lb(i2)),srt,X1535)
8059 * for Delta+Delta-->N*(1440 OR 1535)+N AND N*(1440)+N*(1440)-->N*(1535)+X
8060 * AND DELTA+N*(1440)-->N*(1535)+X
8061 * WE ASSUME THEY HAVE THE SAME CROSS SECTIONS as CORRESPONDING N+N COLLISION):
8062 * FOR D++D0, D+D+,D+D-,D0D0,N*+N*+,N*0N*0,N*(+)D+,N*(+)D(-),N*(0)D(0)
8063 * N*(1535) production, kaon production and reabsorption through
8064 * D(N*)+D(N*)-->NN are ALLOWED.
8065 * CROSS SECTION FOR KAON PRODUCTION from the four channels are
8079 if(srt.le.t1nlk)go to 222
8084 if(srt.le.t1dlk)go to 222
8086 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
8092 if(srt.le.t1nsk)go to 222
8093 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
8095 XSK2=1.5*(PPK1(srt)+PPK0(srt))
8099 if(srt.le.t1dsk)go to 222
8100 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
8102 XSK4=1.5*(PPK1(srt)+PPK0(srt))
8105 if(srt.le.(2.*amn+aphi))go to 222
8106 c !! mb put the correct form
8109 * THE TOTAL KAON+ PRODUCTION CROSS SECTION IS THEN
8110 222 SIGK=XSK1+XSK2+XSK3+XSK4
8117 SIGK = 2.0 * SIGK + xsk5
8118 cbz3/7/99 neutralk end
8120 * The reabsorption cross section for the process
8121 * D(N*)D(N*)-->NN is
8122 s2d=reab2d(i1,i2,srt)
8128 *(1) N*(1535)+D(N*(1440)) reactions
8129 * we allow kaon production and reabsorption only
8130 if(((iabs(lb(i1)).ge.12).and.(iabs(lb(i2)).ge.12)).OR.
8131 & ((iabs(lb(i1)).ge.12).and.(iabs(lb(i2)).ge.6)).OR.
8132 & ((iabs(lb(i2)).ge.12).and.(iabs(lb(i1)).ge.6)))THEN
8135 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
8136 c if(x1.gt.(signd+signn)/sig)return
8137 if(x1.gt.(signd+signn+sdprod)/sig)return
8139 * if kaon production
8141 c IF(SIGK/SIG.GE.RANART(NSEED))GO TO 306
8142 IF((SIGK+sdprod)/SIG.GE.RANART(NSEED))GO TO 306
8147 IDD=iabs(LB(I1)*LB(I2))
8148 * channels have the same charge as pp
8149 IF((IDD.EQ.63).OR.(IDD.EQ.64).OR.(IDD.EQ.48).
8150 1 OR.(IDD.EQ.49).OR.(IDD.EQ.11*11).OR.(IDD.EQ.10*10).
8151 2 OR.(IDD.EQ.88).OR.(IDD.EQ.66).
8152 3 OR.(IDD.EQ.90).OR.(IDD.EQ.70))THEN
8153 SIGND=X1535+SIGK+s2d
8155 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
8156 c IF (X1.GT.(SIGNN+SIGND)/SIG)RETURN
8157 IF (X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
8159 * if kaon production
8160 IF(SIGK/SIGND.GT.RANART(NSEED))GO TO 306
8162 if(s2d/(x1535+s2d).gt.RANART(NSEED))go to 1012
8163 * if N*(1535) production
8168 IF(IDD.EQ.121)N12=25
8169 IF(IDD.EQ.100)N12=26
8176 * IN DELTA+N*(1440) and N*(1440)+N*(1440) COLLISIONS,
8177 * N*(1535), kaon production and reabsorption are ALLOWED
8178 * IN N*(1440)+N*(1440) COLLISIONS, ONLY N*(1535) IS ALLOWED
8179 IF((IDD.EQ.110).OR.(IDD.EQ.77).OR.(IDD.EQ.80))THEN
8181 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
8182 c IF(X1.GT.(SIGNN+X1535+SIGK+s2d)/SIG)RETURN
8183 IF(X1.GT.(SIGNN+X1535+SIGK+s2d+sdprod)/SIG)RETURN
8185 IF(SIGK/(X1535+SIGK+s2d).GT.RANART(NSEED))GO TO 306
8186 if(s2d/(x1535+s2d).gt.RANART(NSEED))go to 1012
8188 IF((IDD.EQ.77).AND.(RANART(NSEED).LE.0.5))N12=36
8190 IF((IDD.EQ.80).AND.(RANART(NSEED).LE.0.5))N12=35
8191 IF(IDD.EQ.110)N12=27
8192 IF((IDD.EQ.110).AND.(RANART(NSEED).LE.0.5))N12=28
8195 IF((IDD.EQ.54).OR.(IDD.EQ.56))THEN
8196 * LIKE FOR N+P COLLISION,
8197 * IN DELTA+DELTA COLLISIONS BOTH N*(1440) AND N*(1535) CAN BE PRODUCED
8198 SIG2=(3./4.)*SIGMA(SRT,2,0,1)
8199 SIGND=2.*(SIG2+X1535)+SIGK+s2d
8201 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
8202 c IF(X1.GT.(SIGNN+SIGND)/SIG)RETURN
8203 IF(X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
8205 IF(SIGK/SIGND.GT.RANART(NSEED))GO TO 306
8206 if(s2d/(2.*(sig2+x1535)+s2d).gt.RANART(NSEED))go to 1012
8207 IF(RANART(NSEED).LT.X1535/(SIG2+X1535))THEN
8208 * N*(1535) PRODUCTION
8210 IF((IDD.EQ.54).AND.(RANART(NSEED).LE.0.5))N12=19
8212 IF((IDD.EQ.56).AND.(RANART(NSEED).LE.0.5))N12=22
8214 * N*(144) PRODUCTION
8216 IF((IDD.EQ.54).AND.(RANART(NSEED).LE.0.5))N12=14
8218 IF((IDD.EQ.56).AND.(RANART(NSEED).LE.0.5))N12=16
8223 *PARAMETRIZATION OF THE SHAPE OF THE N*(1440) AND N*(1535)
8224 * RESONANCE ACCORDING
8225 * TO kitazoe's or J.D.JACKSON'S MASS FORMULA AND BREIT WIGNER
8226 * FORMULA FOR N* RESORANCE
8227 * DETERMINE DELTA MASS VIA REJECTION METHOD.
8228 DMAX = SRT - AVMASS-0.005
8230 IF((n12.ge.13).and.(n12.le.16))then
8231 * N*(1440) production
8232 IF(DMAX.LT.1.44) THEN
8236 clin-10/25/02 get rid of argument usage mismatch in FNS():
8238 c FM=FNS(1.44,SRT,1.)
8239 FM=FNS(xdmass,SRT,1.)
8243 IF(FM.EQ.0.)FM=1.E-09
8245 11 DM=RANART(NSEED)*(DMAX-DMIN)+DMIN
8247 IF((RANART(NSEED).GT.FNS(DM,SRT,1.)/FM).AND.
8248 1 (NTRY2.LE.10)) GO TO 11
8250 clin-2/26/03 limit the N* mass below a certain value
8251 c (here taken as its central value + 2* B-W fullwidth):
8252 if(dm.gt.2.14) goto 11
8256 IF((n12.ge.17).AND.(N12.LE.36))then
8257 * N*(1535) production
8258 IF(DMAX.LT.1.535) THEN
8262 clin-10/25/02 get rid of argument usage mismatch in FNS():
8264 c FM=FD5(1.535,SRT,1.)
8265 FM=FD5(xdmass,SRT,1.)
8269 IF(FM.EQ.0.)FM=1.E-09
8271 12 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
8273 IF((RANART(NSEED) .GT. FD5(DM,SRT,1.)/FM).AND.
8274 1 (NTRY1.LE.10)) GOTO 12
8276 clin-2/26/03 limit the N* mass below a certain value
8277 c (here taken as its central value + 2* B-W fullwidth):
8278 if(dm.gt.1.84) goto 12
8282 *-------------------------------------------------------
8283 * RELABLE BARYON I1 AND I2
8284 *13 D(++)+D(-)--> N*(+)(14)+n
8286 IF(RANART(NSEED).LE.0.5)THEN
8299 *14 D(++)+D(-)--> N*(0)(14)+P
8301 IF(RANART(NSEED).LE.0.5)THEN
8314 *15 D(+)+D(0)--> N*(+)(14)+n
8316 IF(RANART(NSEED).LE.0.5)THEN
8329 *16 D(+)+D(0)--> N*(0)(14)+P
8331 IF(RANART(NSEED).LE.0.5)THEN
8344 *17 D(++)+D(0)--> N*(+)(14)+P
8352 *18 D(++)+D(-)--> N*(0)(15)+P
8354 IF(RANART(NSEED).LE.0.5)THEN
8367 *19 D(++)+D(-)--> N*(+)(15)+N
8369 IF(RANART(NSEED).LE.0.5)THEN
8382 *20 D(+)+D(+)--> N*(+)(15)+P
8384 IF(RANART(NSEED).LE.0.5)THEN
8397 *21 D(+)+D(0)--> N*(+)(15)+N
8399 IF(RANART(NSEED).LE.0.5)THEN
8412 *22 D(+)+D(0)--> N*(0)(15)+P
8414 IF(RANART(NSEED).LE.0.5)THEN
8427 *23 D(+)+D(-)--> N*(0)(15)+N
8429 IF(RANART(NSEED).LE.0.5)THEN
8442 *24 D(0)+D(0)--> N*(0)(15)+N
8450 *25 N*(+)+N*(+)--> N*(0)(15)+P
8458 *26 N*(0)+N*(0)--> N*(0)(15)+N
8466 *27 N*(+)+N*(0)--> N*(+)(15)+N
8468 IF(RANART(NSEED).LE.0.5)THEN
8481 *28 N*(+)+N*(0)--> N*(0)(15)+P
8483 IF(RANART(NSEED).LE.0.5)THEN
8496 *27 N*(+)+N*(0)--> N*(+)(15)+N
8498 IF(RANART(NSEED).LE.0.5)THEN
8511 *29 N*(+)+D(+)--> N*(+)(15)+P
8513 IF(RANART(NSEED).LE.0.5)THEN
8526 *30 N*(+)+D(0)--> N*(+)(15)+N
8528 IF(RANART(NSEED).LE.0.5)THEN
8541 *31 N*(+)+D(-)--> N*(0)(15)+N
8543 IF(RANART(NSEED).LE.0.5)THEN
8556 *32 N*(0)+D(++)--> N*(+)(15)+P
8558 IF(RANART(NSEED).LE.0.5)THEN
8571 *33 N*(0)+D(+)--> N*(+)(15)+N
8573 IF(RANART(NSEED).LE.0.5)THEN
8586 *34 N*(0)+D(+)--> N*(0)(15)+P
8588 IF(RANART(NSEED).LE.0.5)THEN
8601 *35 N*(0)+D(0)--> N*(0)(15)+N
8603 IF(RANART(NSEED).LE.0.5)THEN
8616 *36 N*(+)+D(0)--> N*(0)(15)+P
8618 IF(RANART(NSEED).LE.0.5)THEN
8636 *-------------------------------------------------------
8637 * RELABLE BARYON I1 AND I2 in the reabsorption processes
8638 *37 D(++)+D(-)--> n+p
8640 IF(RANART(NSEED).LE.0.5)THEN
8653 *38 D(+)+D(0)--> n+p
8655 IF(RANART(NSEED).LE.0.5)THEN
8668 *39 D(++)+D(0)--> p+p
8676 *40 D(+)+D(+)--> p+p
8684 *41 D(+)+D(-)--> n+n
8692 *42 D(0)+D(0)--> n+n
8700 *43 N*(+)+N*(+)--> p+p
8701 IF(ich.EQ.11*11.or.ich.eq.13*13.or.ich.eq.11*13)THEN
8708 *44 N*(0)(1440)+N*(0)--> n+n
8709 IF(ich.EQ.10*10.or.ich.eq.12*12.or.ich.eq.10*12)THEN
8716 *45 N*(+)+N*(0)--> n+p
8717 IF(ich.EQ.10*11.or.ich.eq.12*13.or.ich.
8718 & eq.10*13.or.ich.eq.11*12)THEN
8719 IF(RANART(NSEED).LE.0.5)THEN
8732 *46 N*(+)+D(+)--> p+p
8733 IF(ich.eq.11*8.or.ich.eq.13*8)THEN
8740 *47 N*(+)+D(0)--> n+p
8741 IF(ich.EQ.11*7.or.ich.eq.13*7)THEN
8742 IF(RANART(NSEED).LE.0.5)THEN
8755 *48 N*(+)+D(-)--> n+n
8756 IF(ich.EQ.11*6.or.ich.eq.13*6)THEN
8763 *49 N*(0)+D(++)--> p+p
8764 IF(ich.EQ.10*9.or.ich.eq.12*9)THEN
8771 *50 N*(0)+D(0)--> n+n
8772 IF(ich.EQ.10*7.or.ich.eq.12*7)THEN
8779 *51 N*(0)+D(+)--> n+p
8780 IF(ich.EQ.10*8.or.ich.eq.12*8)THEN
8781 IF(RANART(NSEED).LE.0.5)THEN
8798 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
8799 * ENERGY CONSERVATION
8800 * resonance production or absorption in resonance+resonance collisions is
8801 * assumed to have the same pt distribution as pp
8804 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
8805 1 - 4.0 * (EM1*EM2)**2
8806 IF(PR2.LE.0.)PR2=1.e-09
8807 PR=SQRT(PR2)/(2.*SRT)
8808 if(srt.le.2.14)C1= 1.0 - 2.0 * RANART(NSEED)
8809 if(srt.gt.2.14.and.srt.le.2.4)c1=ang(srt,iseed)
8812 clin-10/25/02 get rid of argument usage mismatch in PTR():
8814 c cc1=ptr(0.33*pr,iseed)
8818 c1=sqrt(pr**2-cc1**2)/pr
8820 T1 = 2.0 * PI * RANART(NSEED)
8821 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
8826 *COM: SET THE NEW MOMENTUM COORDINATES
8827 107 S1 = SQRT( 1.0 - C1**2 )
8828 S2 = SQRT( 1.0 - C2**2 )
8833 PZ = PR * ( C1*C2 - S1*S2*CT1 )
8834 SS = C2 * S1 * CT1 + S2 * C1
8835 PX = PR * ( SS*CT2 - S1*ST1*ST2 )
8836 PY = PR * ( SS*ST2 + S1*ST1*CT2 )
8838 * FOR THE DD-->KAON+X PROCESS, FIND MOMENTUM OF THE FINAL PARTICLES IN
8839 * THE NUCLEUS-NUCLEUS CMS.
8841 csp11/21/01 phi production
8842 if(XSK5/sigK.gt.RANART(NSEED))then
8845 LB(I1) = 1 + int(2 * RANART(NSEED))
8846 LB(I2) = 1 + int(2 * RANART(NSEED))
8849 EPION(NNN,IRUN)=APHI
8854 if(ianti .eq. 1)iblock=-10
8857 * DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
8862 * only lambda production is possible
8863 * (1.1)P+P-->p+L+kaon+
8865 LB(I1) = 1 + int(2 * RANART(NSEED))
8869 if(srt.le.2.74.and.srt.gt.2.63)then
8870 * both Lambda and sigma production are possible
8871 if(XSK1/(XSK1+XSK2).gt.RANART(NSEED))then
8874 LB(I1) = 1 + int(2 * RANART(NSEED))
8878 LB(I1) = 1 + int(2 * RANART(NSEED))
8879 LB(I2) = 15 + int(3 * RANART(NSEED))
8884 if(srt.le.2.77.and.srt.gt.2.74)then
8885 * then pp-->Delta lamda kaon can happen
8886 if(xsk1/(xsk1+xsk2+xsk3).gt.RANART(NSEED))then
8887 * * (1.1)P+P-->p+L+kaon+
8889 LB(I1) = 1 + int(2 * RANART(NSEED))
8893 if(xsk2/(xsk2+xsk3).gt.RANART(NSEED))then
8896 LB(I1) = 1 + int(2 * RANART(NSEED))
8897 LB(I2) = 15 + int(3 * RANART(NSEED))
8901 LB(I1) = 6 + int(4 * RANART(NSEED))
8908 * all four channels are possible
8909 if(xsk1/(xsk1+xsk2+xsk3+xsk4).gt.RANART(NSEED))then
8910 * p lambda k production
8912 LB(I1) = 1 + int(2 * RANART(NSEED))
8916 if(xsk3/(xsk2+xsk3+xsk4).gt.RANART(NSEED))then
8917 * delta l K production
8919 LB(I1) = 6 + int(4 * RANART(NSEED))
8923 if(xsk2/(xsk2+xsk4).gt.RANART(NSEED))then
8924 * n sigma k production
8925 LB(I1) = 1 + int(2 * RANART(NSEED))
8926 LB(I2) = 15 + int(3 * RANART(NSEED))
8931 LB(I1) = 6 + int(4 * RANART(NSEED))
8932 LB(I2) = 15 + int(3 * RANART(NSEED))
8939 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
8942 if(LPION(NNN,IRUN) .eq. 23)LPION(NNN,IRUN)=21
8946 * KEEP ALL COORDINATES OF PARTICLE 2 FOR POSSIBLE PHASE SPACE CHANGE
8948 129 CALL BBKAON(ic,SRT,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
8949 & PPX,PPY,PPZ,icou1)
8951 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 129
8952 c if(icou1.lt.0)return
8953 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
8954 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
8955 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
8956 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
8957 * FIND THE MOMENTUM OF PARTICLES IN THE FINAL STATE IN THE NUCLEUS-
8958 * NUCLEUS CMS. FRAME
8959 * (1) for the necleon/delta
8960 * LORENTZ-TRANSFORMATION INTO LAB FRAME FOR DELTA1
8961 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
8962 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
8963 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
8964 Pt1i1 = BETAX * TRANSF + PX3
8965 Pt2i1 = BETAY * TRANSF + PY3
8966 Pt3i1 = BETAZ * TRANSF + PZ3
8968 * (2) for the lambda/sigma
8969 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
8970 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
8971 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
8972 Pt1I2 = BETAX * TRANSF + PX4
8973 Pt2I2 = BETAY * TRANSF + PY4
8974 Pt3I2 = BETAZ * TRANSF + PZ4
8976 * GET the kaon'S MOMENTUM AND COORDINATES IN NUCLEUS-NUCLEUS CMS. FRAME
8977 EPCM=SQRT(aka**2+PPX**2+PPY**2+PPZ**2)
8978 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
8979 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
8980 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
8981 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
8982 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
8984 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
8986 c2007 X01 = 1.0 - 2.0 * RANART(NSEED)
8987 c Y01 = 1.0 - 2.0 * RANART(NSEED)
8988 c Z01 = 1.0 - 2.0 * RANART(NSEED)
8989 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2007
8990 c RPION(1,NNN,IRUN)=R(1,I1)+0.5*x01
8991 c RPION(2,NNN,IRUN)=R(2,I1)+0.5*y01
8992 c RPION(3,NNN,IRUN)=R(3,I1)+0.5*z01
8993 RPION(1,NNN,IRUN)=R(1,I1)
8994 RPION(2,NNN,IRUN)=R(2,I1)
8995 RPION(3,NNN,IRUN)=R(3,I1)
8997 * assign the nucleon/delta and lambda/sigma to i1 or i2 to keep the
8998 * leadng particle behaviour
8999 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
9021 E1= SQRT( EM1**2 + PX1**2 + PY1**2 + PZ1**2 )
9024 clin-6/2008 D+D->Deuteron+pi:
9025 * FIND MOMENTUM OF THE FINAL PARTICLES IN THE NUCLEUS-NUCLEUS CMS.
9027 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
9028 c For idpert=1: we produce npertd pert deuterons:
9030 elseif(idpert.eq.2.and.npertd.ge.1) then
9031 c For idpert=2: we first save information for npertd pert deuterons;
9032 c at the last ndloop we create the regular deuteron+pi
9033 c and those pert deuterons:
9036 c Just create the regular deuteron+pi:
9040 dprob1=sdprod/sig/float(npertd)
9042 CALL bbdangle(pxd,pyd,pzd,nt,ipert1,ianti,idloop,pfinal,
9044 CALL ROTATE(PX,PY,PZ,PXd,PYd,PZd)
9045 * LORENTZ-TRANSFORMATION OF THE MOMENTUM OF PARTICLES IN THE FINAL STATE
9046 * FROM THE NN CMS FRAME INTO THE GLOBAL CMS FRAME:
9049 E1dCM=SQRT(xmass**2+PXd**2+PYd**2+PZd**2)
9050 P1dBETA=PXd*BETAX+PYd*BETAY+PZd*BETAZ
9051 TRANSF=GAMMA*(GAMMA*P1dBETA/(GAMMA+1.)+E1dCM)
9052 pxi1=BETAX*TRANSF+PXd
9053 pyi1=BETAY*TRANSF+PYd
9054 pzi1=BETAZ*TRANSF+PZd
9060 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
9061 cccc Perturbative production for idpert=1:
9063 PPION(1,NNN,IRUN)=pxi1
9064 PPION(2,NNN,IRUN)=pyi1
9065 PPION(3,NNN,IRUN)=pzi1
9068 RPION(1,NNN,IRUN)=R(1,I1)
9069 RPION(2,NNN,IRUN)=R(2,I1)
9070 RPION(3,NNN,IRUN)=R(3,I1)
9071 clin-6/2008 assign the perturbative probability:
9072 dppion(NNN,IRUN)=sdprod/sig/float(npertd)
9073 elseif(idpert.eq.2.and.idloop.le.npertd) then
9074 clin-6/2008 For idpert=2, we produce NPERTD perturbative (anti)deuterons
9075 c only when a regular (anti)deuteron+pi is produced in NN collisions.
9076 c First save the info for the perturbative deuterons:
9082 cccc Regular production:
9083 c For the regular pion: do LORENTZ-TRANSFORMATION:
9085 E2piCM=SQRT(xmm**2+PXd**2+PYd**2+PZd**2)
9086 P2piBETA=-PXd*BETAX-PYd*BETAY-PZd*BETAZ
9087 TRANSF=GAMMA*(GAMMA*P2piBETA/(GAMMA+1.)+E2piCM)
9088 pxi2=BETAX*TRANSF-PXd
9089 pyi2=BETAY*TRANSF-PYd
9090 pzi2=BETAZ*TRANSF-PZd
9094 c Remove regular pion to check the equivalence
9095 c between the perturbative and regular deuteron results:
9105 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
9107 c For the regular deuteron:
9116 c For idpert=2: create the perturbative deuterons:
9117 if(idpert.eq.2.and.idloop.eq.ndloop) then
9120 PPION(1,NNN,IRUN)=ppd(1,ipertd)
9121 PPION(2,NNN,IRUN)=ppd(2,ipertd)
9122 PPION(3,NNN,IRUN)=ppd(3,ipertd)
9124 LPION(NNN,IRUN)=lbpd(ipertd)
9125 RPION(1,NNN,IRUN)=R(1,I1)
9126 RPION(2,NNN,IRUN)=R(2,I1)
9127 RPION(3,NNN,IRUN)=R(3,I1)
9128 clin-6/2008 assign the perturbative probability:
9129 dppion(NNN,IRUN)=1./float(npertd)
9136 clin-6/2008 D+D->Deuteron+pi over
9139 **********************************
9140 **********************************
9142 SUBROUTINE INIT(MINNUM,MAXNUM,NUM,RADIUS,X0,Z0,P0,
9143 & GAMMA,ISEED,MASS,IOPT)
9145 * PURPOSE: PROVIDING INITIAL CONDITIONS FOR PHASE-SPACE *
9146 * DISTRIBUTION OF TESTPARTICLES *
9147 * VARIABLES: (ALL INPUT) *
9148 * MINNUM - FIRST TESTPARTICLE TREATED IN ONE RUN (INTEGER) *
9149 * MAXNUM - LAST TESTPARTICLE TREATED IN ONE RUN (INTEGER) *
9150 * NUM - NUMBER OF TESTPARTICLES PER NUCLEON (INTEGER) *
9151 * RADIUS - RADIUS OF NUCLEUS "FM" (REAL) *
9152 * X0,Z0 - DISPLACEMENT OF CENTER OF NUCLEUS IN X,Z- *
9153 * DIRECTION "FM" (REAL) *
9154 * P0 - MOMENTUM-BOOST IN C.M. FRAME "GEV/C" (REAL) *
9155 * GAMMA - RELATIVISTIC GAMMA-FACTOR (REAL) *
9156 * ISEED - SEED FOR RANDOM-NUMBER GENERATOR (INTEGER) *
9157 * MASS - TOTAL MASS OF THE SYSTEM (INTEGER) *
9158 * IOPT - OPTION FOR DIFFERENT OCCUPATION OF MOMENTUM *
9161 **********************************
9162 PARAMETER (MAXSTR=150001, AMU = 0.9383)
9163 PARAMETER (MAXX = 20, MAXZ = 24)
9164 PARAMETER (PI=3.1415926)
9167 COMMON /AA/ R(3,MAXSTR)
9169 COMMON /BB/ P(3,MAXSTR)
9171 COMMON /CC/ E(MAXSTR)
9173 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9174 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9175 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9177 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
9179 common /ss/ inout(20)
9184 *----------------------------------------------------------------------
9185 * PREPARATION FOR LORENTZ-TRANSFORMATIONS
9188 IF (P0 .NE. 0.) THEN
9193 BETA = SIGN * SQRT(GAMMA**2-1.)/GAMMA
9194 *-----------------------------------------------------------------------
9195 * TARGET-ID = 1 AND PROJECTILE-ID = -1
9197 IF (MINNUM .EQ. 1) THEN
9202 *-----------------------------------------------------------------------
9203 * IDENTIFICATION OF TESTPARTICLES AND ASSIGMENT OF RESTMASS
9205 * LOOP OVER ALL PARALLEL RUNS:
9207 DO 100 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9211 *-----------------------------------------------------------------------
9212 * OCCUPATION OF COORDINATE-SPACE
9214 DO 300 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9216 X = 1.0 - 2.0 * RANART(NSEED)
9217 Y = 1.0 - 2.0 * RANART(NSEED)
9218 Z = 1.0 - 2.0 * RANART(NSEED)
9219 IF ((X*X+Y*Y+Z*Z) .GT. 1.0) GOTO 200
9225 *=======================================================================
9226 IF (IOPT .NE. 3) THEN
9228 * OPTION 1: USE WOODS-SAXON PARAMETRIZATION FOR DENSITY AND
9229 *----- CALCULATE LOCAL FERMI-MOMENTUM
9232 DO 1000 IRUN = 1,NUM
9233 DO 600 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9235 PX = 1.0 - 2.0 * RANART(NSEED)
9236 PY = 1.0 - 2.0 * RANART(NSEED)
9237 PZ = 1.0 - 2.0 * RANART(NSEED)
9238 IF (PX*PX+PY*PY+PZ*PZ .GT. 1.0) GOTO 500
9239 RDIST = SQRT( R(1,I)**2 + R(2,I)**2 + R(3,I)**2 )
9240 RHOWS = RHOW0 / ( 1.0 + EXP( (RDIST-RADIUS) / 0.55 ) )
9241 PFERMI = 0.197 * (1.5 * PI*PI * RHOWS)**(1./3.)
9243 * OPTION 2: NUCLEAR MATTER CASE
9244 IF(IOPT.EQ.2) PFERMI=0.27
9245 if(iopt.eq.4) pfermi=0.
9247 P(1,I) = PFERMI * PX
9248 P(2,I) = PFERMI * PY
9249 P(3,I) = PFERMI * PZ
9252 * SET TOTAL MOMENTUM TO 0 IN REST FRAME AND BOOST
9258 DO 900 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9261 PTOT(IDIR) = PTOT(IDIR) + P(IDIR,I)
9264 DO 950 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9266 P(IDIR,I) = P(IDIR,I) - PTOT(IDIR) / FLOAT(NPART)
9269 IF ((IOPT .EQ. 1).or.(iopt.eq.2)) THEN
9270 EPART = SQRT(P(1,I)**2+P(2,I)**2+P(3,I)**2+AMU**2)
9271 P(3,I) = GAMMA*(P(3,I) + BETA*EPART)
9273 P(3,I) = P(3,I) + P0
9280 * OPTION 3: GIVE ALL NUCLEONS JUST A Z-MOMENTUM ACCORDING TO
9281 * THE BOOST OF THE NUCLEI
9283 DO 1200 IRUN = 1,NUM
9284 DO 1100 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9292 *=======================================================================
9293 * PUT PARTICLES IN THEIR POSITION IN COORDINATE-SPACE
9294 * (SHIFT AND RELATIVISTIC CONTRACTION)
9296 DO 1400 IRUN = 1,NUM
9297 DO 1300 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9298 R(1,I) = R(1,I) + X0
9299 * two nuclei in touch after contraction
9300 R(3,I) = (R(3,I)+Z0)/ GAMMA
9301 * two nuclei in touch before contraction
9302 c R(3,I) = R(3,I) / GAMMA + Z0
9308 **********************************
9310 SUBROUTINE DENS(IPOT,MASS,NUM,NESC)
9312 * PURPOSE: CALCULATION OF LOCAL BARYON, MESON AND ENERGY *
9313 * DENSITY FROM SPATIAL DISTRIBUTION OF TESTPARTICLES*
9315 * VARIABLES (ALL INPUT, ALL INTEGER) *
9316 * MASS - MASS NUMBER OF THE SYSTEM *
9317 * NUM - NUMBER OF TESTPARTICLES PER NUCLEON *
9319 * NESC - NUMBER OF ESCAPED PARTICLES (INTEGER,OUTPUT) *
9321 **********************************
9322 PARAMETER (MAXSTR= 150001,MAXR=1)
9323 PARAMETER (MAXX = 20, MAXZ = 24)
9325 dimension pxl(-maxx:maxx,-maxx:maxx,-maxz:maxz),
9326 1 pyl(-maxx:maxx,-maxx:maxx,-maxz:maxz),
9327 2 pzl(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9328 COMMON /AA/ R(3,MAXSTR)
9330 COMMON /BB/ P(3,MAXSTR)
9332 COMMON /CC/ E(MAXSTR)
9334 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9335 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9336 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9338 COMMON /DDpi/ piRHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9340 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
9342 common /ss/ inout(20)
9344 COMMON /RR/ MASSR(0:MAXR)
9346 common /tt/ PEL(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9347 &,rxy(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9349 common /bbb/ bxx(-maxx:maxx,-maxx:maxx,-maxz:maxz),
9350 &byy(-maxx:maxx,-maxx:maxx,-maxz:maxz),
9351 &bzz(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9357 3 1.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
9358 2 -1.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
9359 1 0.,0.,0.,-1.,0.,1.,0.,-1.,0.,-1.,
9360 s 0.,-2.,-1.,0.,1.,0.,0.,0.,0.,-1.,
9362 s 1.,0.,-1.,0.,1.,-1.,0.,1.,2.,0.,
9363 1 1.,0.,1.,0.,-1.,0.,1.,0.,0.,0.,
9364 2 -1.,0.,1.,0.,-1.,0.,1.,0.,0.,1.,
9365 3 0.,0.,0.,0.,0.,0.,0.,0.,0.,-1.,
9368 DO 300 IZ = -MAXZ,MAXZ
9369 DO 200 IY = -MAXX,MAXX
9370 DO 100 IX = -MAXX,MAXX
9372 RHOn(IX,IY,IZ) = 0.0
9373 RHOp(IX,IY,IZ) = 0.0
9374 piRHO(IX,IY,IZ) = 0.0
9387 BIG = 1.0 / ( 3.0 * FLOAT(NUM) )
9388 SMALL = 1.0 / ( 9.0 * FLOAT(NUM) )
9392 MSUM=MSUM+MASSR(IRUN-1)
9393 DO 400 J=1,MASSr(irun)
9398 IF( IX .LE. -MAXX .OR. IX .GE. MAXX .OR.
9399 & IY .LE. -MAXX .OR. IY .GE. MAXX .OR.
9400 & IZ .LE. -MAXZ .OR. IZ .GE. MAXZ ) THEN
9404 csp01/04/02 include baryon density
9405 if(j.gt.mass)go to 30
9406 c if( (lb(i).eq.1.or.lb(i).eq.2) .or.
9407 c & (lb(i).ge.6.and.lb(i).le.17) )then
9408 * (1) baryon density
9409 RHO(IX, IY, IZ ) = RHO(IX, IY, IZ ) + BIG
9410 RHO(IX+1,IY, IZ ) = RHO(IX+1,IY, IZ ) + SMALL
9411 RHO(IX-1,IY, IZ ) = RHO(IX-1,IY, IZ ) + SMALL
9412 RHO(IX, IY+1,IZ ) = RHO(IX, IY+1,IZ ) + SMALL
9413 RHO(IX, IY-1,IZ ) = RHO(IX, IY-1,IZ ) + SMALL
9414 RHO(IX, IY, IZ+1) = RHO(IX, IY, IZ+1) + SMALL
9415 RHO(IX, IY, IZ-1) = RHO(IX, IY, IZ-1) + SMALL
9416 * (2) CALCULATE THE PROTON DENSITY
9417 IF(ZET(LB(I)).NE.0)THEN
9418 RHOP(IX, IY, IZ ) = RHOP(IX, IY, IZ ) + BIG
9419 RHOP(IX+1,IY, IZ ) = RHOP(IX+1,IY, IZ ) + SMALL
9420 RHOP(IX-1,IY, IZ ) = RHOP(IX-1,IY, IZ ) + SMALL
9421 RHOP(IX, IY+1,IZ ) = RHOP(IX, IY+1,IZ ) + SMALL
9422 RHOP(IX, IY-1,IZ ) = RHOP(IX, IY-1,IZ ) + SMALL
9423 RHOP(IX, IY, IZ+1) = RHOP(IX, IY, IZ+1) + SMALL
9424 RHOP(IX, IY, IZ-1) = RHOP(IX, IY, IZ-1) + SMALL
9427 * (3) CALCULATE THE NEUTRON DENSITY
9428 IF(ZET(LB(I)).EQ.0)THEN
9429 RHON(IX, IY, IZ ) = RHON(IX, IY, IZ ) + BIG
9430 RHON(IX+1,IY, IZ ) = RHON(IX+1,IY, IZ ) + SMALL
9431 RHON(IX-1,IY, IZ ) = RHON(IX-1,IY, IZ ) + SMALL
9432 RHON(IX, IY+1,IZ ) = RHON(IX, IY+1,IZ ) + SMALL
9433 RHON(IX, IY-1,IZ ) = RHON(IX, IY-1,IZ ) + SMALL
9434 RHON(IX, IY, IZ+1) = RHON(IX, IY, IZ+1) + SMALL
9435 RHON(IX, IY, IZ-1) = RHON(IX, IY, IZ-1) + SMALL
9438 c else !! sp01/04/02
9440 30 piRHO(IX, IY, IZ ) = piRHO(IX, IY, IZ ) + BIG
9441 piRHO(IX+1,IY, IZ ) = piRHO(IX+1,IY, IZ ) + SMALL
9442 piRHO(IX-1,IY, IZ ) = piRHO(IX-1,IY, IZ ) + SMALL
9443 piRHO(IX, IY+1,IZ ) = piRHO(IX, IY+1,IZ ) + SMALL
9444 piRHO(IX, IY-1,IZ ) = piRHO(IX, IY-1,IZ ) + SMALL
9445 piRHO(IX, IY, IZ+1) = piRHO(IX, IY, IZ+1) + SMALL
9446 piRHO(IX, IY, IZ-1) = piRHO(IX, IY, IZ-1) + SMALL
9447 c endif !! sp01/04/02
9448 * to calculate the Gamma factor in each cell
9450 40 pxl(ix,iy,iz)=pxl(ix,iy,iz)+p(1,I)*BIG
9451 pxl(ix+1,iy,iz)=pxl(ix+1,iy,iz)+p(1,I)*SMALL
9452 pxl(ix-1,iy,iz)=pxl(ix-1,iy,iz)+p(1,I)*SMALL
9453 pxl(ix,iy+1,iz)=pxl(ix,iy+1,iz)+p(1,I)*SMALL
9454 pxl(ix,iy-1,iz)=pxl(ix,iy-1,iz)+p(1,I)*SMALL
9455 pxl(ix,iy,iz+1)=pxl(ix,iy,iz+1)+p(1,I)*SMALL
9456 pxl(ix,iy,iz-1)=pxl(ix,iy,iz-1)+p(1,I)*SMALL
9458 pYl(ix,iy,iz)=pYl(ix,iy,iz)+p(2,I)*BIG
9459 pYl(ix+1,iy,iz)=pYl(ix+1,iy,iz)+p(2,I)*SMALL
9460 pYl(ix-1,iy,iz)=pYl(ix-1,iy,iz)+p(2,I)*SMALL
9461 pYl(ix,iy+1,iz)=pYl(ix,iy+1,iz)+p(2,I)*SMALL
9462 pYl(ix,iy-1,iz)=pYl(ix,iy-1,iz)+p(2,I)*SMALL
9463 pYl(ix,iy,iz+1)=pYl(ix,iy,iz+1)+p(2,I)*SMALL
9464 pYl(ix,iy,iz-1)=pYl(ix,iy,iz-1)+p(2,I)*SMALL
9466 pZl(ix,iy,iz)=pZl(ix,iy,iz)+p(3,I)*BIG
9467 pZl(ix+1,iy,iz)=pZl(ix+1,iy,iz)+p(3,I)*SMALL
9468 pZl(ix-1,iy,iz)=pZl(ix-1,iy,iz)+p(3,I)*SMALL
9469 pZl(ix,iy+1,iz)=pZl(ix,iy+1,iz)+p(3,I)*SMALL
9470 pZl(ix,iy-1,iz)=pZl(ix,iy-1,iz)+p(3,I)*SMALL
9471 pZl(ix,iy,iz+1)=pZl(ix,iy,iz+1)+p(3,I)*SMALL
9472 pZl(ix,iy,iz-1)=pZl(ix,iy,iz-1)+p(3,I)*SMALL
9474 pel(ix,iy,iz)=pel(ix,iy,iz)
9475 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*BIG
9476 pel(ix+1,iy,iz)=pel(ix+1,iy,iz)
9477 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*SMALL
9478 pel(ix-1,iy,iz)=pel(ix-1,iy,iz)
9479 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*SMALL
9480 pel(ix,iy+1,iz)=pel(ix,iy+1,iz)
9481 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*SMALL
9482 pel(ix,iy-1,iz)=pel(ix,iy-1,iz)
9483 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*SMALL
9484 pel(ix,iy,iz+1)=pel(ix,iy,iz+1)
9485 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*SMALL
9486 pel(ix,iy,iz-1)=pel(ix,iy,iz-1)
9487 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*SMALL
9491 DO 301 IZ = -MAXZ,MAXZ
9492 DO 201 IY = -MAXX,MAXX
9493 DO 101 IX = -MAXX,MAXX
9494 IF((RHO(IX,IY,IZ).EQ.0).OR.(PEL(IX,IY,IZ).EQ.0))
9496 SMASS2=PEL(IX,IY,IZ)**2-PXL(IX,IY,IZ)**2
9497 1-PYL(IX,IY,IZ)**2-PZL(IX,IY,IZ)**2
9498 IF(SMASS2.LE.0)SMASS2=1.E-06
9500 IF(SMASS.EQ.0.)SMASS=1.e-06
9501 GAMMA=PEL(IX,IY,IZ)/SMASS
9502 if(gamma.eq.0)go to 101
9503 bxx(ix,iy,iz)=pxl(ix,iy,iz)/pel(ix,iy,iz)
9504 byy(ix,iy,iz)=pyl(ix,iy,iz)/pel(ix,iy,iz)
9505 bzz(ix,iy,iz)=pzl(ix,iy,iz)/pel(ix,iy,iz)
9506 RHO(IX,IY,IZ) = RHO(IX,IY,IZ)/GAMMA
9507 RHOn(IX,IY,IZ) = RHOn(IX,IY,IZ)/GAMMA
9508 RHOp(IX,IY,IZ) = RHOp(IX,IY,IZ)/GAMMA
9509 piRHO(IX,IY,IZ) = piRHO(IX,IY,IZ)/GAMMA
9510 pEL(IX,IY,IZ) = pEL(IX,IY,IZ)/(GAMMA**2)
9516 IF(IPOT.EQ.1.or.ipot.eq.6)THEN
9522 IF(IPOT.EQ.2.or.ipot.eq.7)THEN
9534 denr=rho(ix,iy,iz)/rho0
9537 if(denr.le.4.or.denr.gt.7)then
9540 a=-b*denr**(1./6.)-2.*0.036/3.*denr**(-0.333)
9544 60 U = 0.5*A*RHO(IX,IY,IZ)**2/RHO0
9545 1 + B/(1+S) * (RHO(IX,IY,IZ)/RHO0)**S*RHO(IX,IY,IZ)
9546 70 PEL(IX,IY,IZ)=PEL(IX,IY,IZ)+U
9553 **********************************
9555 SUBROUTINE GRADU(IOPT,IX,IY,IZ,GRADX,GRADY,GRADZ)
9557 * PURPOSE: DETERMINE GRAD(U(RHO(X,Y,Z))) *
9559 * IOPT - METHOD FOR EVALUATING THE GRADIENT *
9561 * IX, IY, IZ - COORDINATES OF POINT (INTEGER,INPUT) *
9562 * GRADX, GRADY, GRADZ - GRADIENT OF U (REAL,OUTPUT) *
9564 **********************************
9565 PARAMETER (MAXX = 20, MAXZ = 24)
9566 PARAMETER (RHO0 = 0.167)
9568 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9569 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9570 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9572 common /ss/ inout(20)
9574 common /tt/ PEL(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9575 &,rxy(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9579 RXPLUS = RHO(IX+1,IY, IZ ) / RHO0
9580 RXMINS = RHO(IX-1,IY, IZ ) / RHO0
9581 RYPLUS = RHO(IX, IY+1,IZ ) / RHO0
9582 RYMINS = RHO(IX, IY-1,IZ ) / RHO0
9583 RZPLUS = RHO(IX, IY, IZ+1) / RHO0
9584 RZMINS = RHO(IX, IY, IZ-1) / RHO0
9585 den0 = RHO(IX, IY, IZ) / RHO0
9586 ene0 = pel(IX, IY, IZ)
9587 *-----------------------------------------------------------------------
9588 GOTO (1,2,3,4,5) IOPT
9589 if(iopt.eq.6)go to 6
9590 if(iopt.eq.7)go to 7
9593 * POTENTIAL USED IN 1) (STIFF):
9594 * U = -.124 * RHO/RHO0 + .0705 (RHO/RHO0)**2 GEV
9596 GRADX = -0.062 * (RXPLUS - RXMINS) + 0.03525 * (RXPLUS**2 -
9598 GRADY = -0.062 * (RYPLUS - RYMINS) + 0.03525 * (RYPLUS**2 -
9600 GRADZ = -0.062 * (RZPLUS - RZMINS) + 0.03525 * (RZPLUS**2 -
9605 * POTENTIAL USED IN 2):
9606 * U = -.218 * RHO/RHO0 + .164 (RHO/RHO0)**(4/3) GEV
9609 GRADX = -0.109 * (RXPLUS - RXMINS)
9610 & + 0.082 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9611 GRADY = -0.109 * (RYPLUS - RYMINS)
9612 & + 0.082 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9613 GRADZ = -0.109 * (RZPLUS - RZMINS)
9614 & + 0.082 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9618 * POTENTIAL USED IN 3) (SOFT):
9619 * U = -.356 * RHO/RHO0 + .303 * (RHO/RHO0)**(7/6) GEV
9623 GRADX = -acoef * (RXPLUS - RXMINS)
9624 & + 0.1515 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9625 GRADY = -acoef * (RYPLUS - RYMINS)
9626 & + 0.1515 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9627 GRADZ = -acoef * (RZPLUS - RZMINS)
9628 & + 0.1515 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9633 * POTENTIAL USED IN 4) (super-soft in the mixed phase of 4 < rho/rho <7):
9634 * U1 = -.356 * RHO/RHO0 + .303 * (RHO/RHO0)**(7/6) GEV
9635 * normal phase, soft eos of iopt=3
9636 * U2 = -.02 * (RHO/RHO0)**(2/3) -0.0253 * (RHO/RHO0)**(7/6) GEV
9642 denr=rho(ix,iy,iz)/rho0
9643 if(denr.le.eh.or.denr.ge.eqgp)then
9644 GRADX = -acoef * (RXPLUS - RXMINS)
9645 & + 0.1515 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9646 GRADY = -acoef * (RYPLUS - RYMINS)
9647 & + 0.1515 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9648 GRADZ = -acoef * (RZPLUS - RZMINS)
9649 & + 0.1515 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9654 GRADX =-acoef1* (RXPLUS**EXPNT-RXMINS**EXPNT)
9655 & -acoef2* (RXPLUS**expnt2 - RXMINS**expnt2)
9656 GRADy =-acoef1* (RyPLUS**EXPNT-RyMINS**EXPNT)
9657 & -acoef2* (RyPLUS**expnt2 - RyMINS**expnt2)
9658 GRADz =-acoef1* (RzPLUS**EXPNT-RzMINS**EXPNT)
9659 & -acoef2* (RzPLUS**expnt2 - RzMINS**expnt2)
9664 * POTENTIAL USED IN 5) (SUPER STIFF):
9665 * U = -.10322 * RHO/RHO0 + .04956 * (RHO/RHO0)**(2.77) GEV
9668 GRADX = -0.0516 * (RXPLUS - RXMINS)
9669 & + 0.02498 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9670 GRADY = -0.0516 * (RYPLUS - RYMINS)
9671 & + 0.02498 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9672 GRADZ = -0.0516 * (RZPLUS - RZMINS)
9673 & + 0.02498 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9677 * POTENTIAL USED IN 6) (STIFF-qgp):
9678 * U = -.124 * RHO/RHO0 + .0705 (RHO/RHO0)**2 GEV
9681 GRADX = -0.062 * (RXPLUS - RXMINS) + 0.03525 * (RXPLUS**2 -
9683 GRADY = -0.062 * (RYPLUS - RYMINS) + 0.03525 * (RYPLUS**2 -
9685 GRADZ = -0.062 * (RZPLUS - RZMINS) + 0.03525 * (RZPLUS**2 -
9689 if(ene0.gt.0.5.and.ene0.le.1.5)then
9690 * U=c1-ef*rho/rho0**2/3
9692 GRADX = -0.5*ef* (RXPLUS**0.67-RXMINS**0.67)
9693 GRADy = -0.5*ef* (RyPLUS**0.67-RyMINS**0.67)
9694 GRADz = -0.5*ef* (RzPLUS**0.67-RzMINS**0.67)
9698 * U=800*(rho/rho0)**1/3.-Ef*(rho/rho0)**2/3.-c2
9701 GRADX =0.5*cf0*(rxplus**0.333-rxmins**0.333)
9702 & -0.5*ef* (RXPLUS**0.67-RXMINS**0.67)
9703 GRADy =0.5*cf0*(ryplus**0.333-rymins**0.333)
9704 & -0.5*ef* (RyPLUS**0.67-RyMINS**0.67)
9705 GRADz =0.5*cf0*(rzplus**0.333-rzmins**0.333)
9706 & -0.5*ef* (RzPLUS**0.67-RzMINS**0.67)
9711 * POTENTIAL USED IN 7) (Soft-qgp):
9713 * POTENTIAL USED is the same as IN 3) (SOFT):
9714 * U = -.356 * RHO/RHO0 + .303 * (RHO/RHO0)**(7/6) GEV
9718 GRADX = -acoef * (RXPLUS - RXMINS)
9719 & + 0.1515 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9720 GRADY = -acoef * (RYPLUS - RYMINS)
9721 & + 0.1515 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9722 GRADZ = -acoef * (RZPLUS - RZMINS)
9723 & + 0.1515 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9726 if(den0.gt.4.5.and.den0.le.5.1)then
9727 * U=c1-ef*rho/rho0**2/3
9729 GRADX = -0.5*ef* (RXPLUS**0.67-RXMINS**0.67)
9730 GRADy = -0.5*ef* (RyPLUS**0.67-RyMINS**0.67)
9731 GRADz = -0.5*ef* (RzPLUS**0.67-RzMINS**0.67)
9735 * U=800*(rho/rho0)**1/3.-Ef*(rho/rho0)**2/3.-c2
9738 GRADX =0.5*cf0*(rxplus**0.333-rxmins**0.333)
9739 & -0.5*ef* (RXPLUS**0.67-RXMINS**0.67)
9740 GRADy =0.5*cf0*(ryplus**0.333-rymins**0.333)
9741 & -0.5*ef* (RyPLUS**0.67-RyMINS**0.67)
9742 GRADz =0.5*cf0*(rzplus**0.333-rzmins**0.333)
9743 & -0.5*ef* (RzPLUS**0.67-RzMINS**0.67)
9747 **********************************
9749 SUBROUTINE GRADUK(IX,IY,IZ,GRADXk,GRADYk,GRADZk)
9751 * PURPOSE: DETERMINE the baryon density gradient for *
9752 * proporgating kaons in a mean field caused by *
9753 * surrounding baryons *
9755 * IX, IY, IZ - COORDINATES OF POINT (INTEGER,INPUT) *
9756 * GRADXk, GRADYk, GRADZk (REAL,OUTPUT) *
9758 **********************************
9759 PARAMETER (MAXX = 20, MAXZ = 24)
9760 PARAMETER (RHO0 = 0.168)
9762 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9763 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9764 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9766 common /ss/ inout(20)
9770 RXPLUS = RHO(IX+1,IY, IZ )
9771 RXMINS = RHO(IX-1,IY, IZ )
9772 RYPLUS = RHO(IX, IY+1,IZ )
9773 RYMINS = RHO(IX, IY-1,IZ )
9774 RZPLUS = RHO(IX, IY, IZ+1)
9775 RZMINS = RHO(IX, IY, IZ-1)
9776 GRADXk = (RXPLUS - RXMINS)/2.
9777 GRADYk = (RYPLUS - RYMINS)/2.
9778 GRADZk = (RZPLUS - RZMINS)/2.
9781 *-----------------------------------------------------------------------
9782 SUBROUTINE GRADUP(IX,IY,IZ,GRADXP,GRADYP,GRADZP)
9784 * PURPOSE: DETERMINE THE GRADIENT OF THE PROTON DENSITY *
9787 * IX, IY, IZ - COORDINATES OF POINT (INTEGER,INPUT) *
9788 * GRADXP, GRADYP, GRADZP - GRADIENT OF THE PROTON *
9789 * DENSITY(REAL,OUTPUT) *
9791 **********************************
9792 PARAMETER (MAXX = 20, MAXZ = 24)
9793 PARAMETER (RHO0 = 0.168)
9795 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9796 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9797 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9799 common /ss/ inout(20)
9803 RXPLUS = RHOP(IX+1,IY, IZ ) / RHO0
9804 RXMINS = RHOP(IX-1,IY, IZ ) / RHO0
9805 RYPLUS = RHOP(IX, IY+1,IZ ) / RHO0
9806 RYMINS = RHOP(IX, IY-1,IZ ) / RHO0
9807 RZPLUS = RHOP(IX, IY, IZ+1) / RHO0
9808 RZMINS = RHOP(IX, IY, IZ-1) / RHO0
9809 *-----------------------------------------------------------------------
9811 GRADXP = (RXPLUS - RXMINS)/2.
9812 GRADYP = (RYPLUS - RYMINS)/2.
9813 GRADZP = (RZPLUS - RZMINS)/2.
9816 *-----------------------------------------------------------------------
9817 SUBROUTINE GRADUN(IX,IY,IZ,GRADXN,GRADYN,GRADZN)
9819 * PURPOSE: DETERMINE THE GRADIENT OF THE NEUTRON DENSITY *
9822 * IX, IY, IZ - COORDINATES OF POINT (INTEGER,INPUT) *
9823 * GRADXN, GRADYN, GRADZN - GRADIENT OF THE NEUTRON *
9824 * DENSITY(REAL,OUTPUT) *
9826 **********************************
9827 PARAMETER (MAXX = 20, MAXZ = 24)
9828 PARAMETER (RHO0 = 0.168)
9830 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9831 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9832 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9834 common /ss/ inout(20)
9838 RXPLUS = RHON(IX+1,IY, IZ ) / RHO0
9839 RXMINS = RHON(IX-1,IY, IZ ) / RHO0
9840 RYPLUS = RHON(IX, IY+1,IZ ) / RHO0
9841 RYMINS = RHON(IX, IY-1,IZ ) / RHO0
9842 RZPLUS = RHON(IX, IY, IZ+1) / RHO0
9843 RZMINS = RHON(IX, IY, IZ-1) / RHO0
9844 *-----------------------------------------------------------------------
9846 GRADXN = (RXPLUS - RXMINS)/2.
9847 GRADYN = (RYPLUS - RYMINS)/2.
9848 GRADZN = (RZPLUS - RZMINS)/2.
9852 *-----------------------------------------------------------------------------
9853 *FUNCTION FDE(DMASS) GIVES DELTA MASS DISTRIBUTION BY USING OF
9855 REAL FUNCTION FDE(DMASS,SRT,CON)
9860 FD=4.*(AM0**2)*WIDTH(DMASS)/((DMASS**2-1.232**2)**2
9861 1 +AM0**2*WIDTH(DMASS)**2)
9863 P11=(SRT**2+DMASS**2-AMN**2)**2
9864 1 /(4.*SRT**2)-DMASS**2
9865 if(p11.le.0)p11=1.E-06
9869 P11=(SRT**2+DMASS**2-AMN**2)**2
9870 1 /(4.*SRT**2)-DMASS**2
9871 if(p11.le.0)p11=1.E-06
9877 *-------------------------------------------------------------
9878 *FUNCTION FDE(DMASS) GIVES N*(1535) MASS DISTRIBUTION BY USING OF
9880 REAL FUNCTION FD5(DMASS,SRT,CON)
9885 FD=4.*(AM0**2)*W1535(DMASS)/((DMASS**2-1.535**2)**2
9886 1 +AM0**2*W1535(DMASS)**2)
9888 P1=SQRT((SRT**2+DMASS**2-AMN**2)**2
9889 1 /(4.*SRT**2)-DMASS**2)
9892 P1=SQRT((SRT**2+DMASS**2-AMN**2)**2
9893 1 /(4.*SRT**2)-DMASS**2)
9898 *--------------------------------------------------------------------------
9899 *FUNCTION FNS(DMASS) GIVES N* MASS DISTRIBUTION
9900 c BY USING OF BREIT-WIGNER FORMULA
9901 REAL FUNCTION FNS(DMASS,SRT,CON)
9907 FN=4.*(AN0**2)*WIDTH/((DMASS**2-1.44**2)**2+AN0**2*WIDTH**2)
9909 P1=SQRT((SRT**2+DMASS**2-AMN**2)**2
9910 1 /(4.*SRT**2)-DMASS**2)
9913 P1=SQRT((SRT**2+DMASS**2-AMN**2)**2
9914 1 /(4.*SRT**2)-DMASS**2)
9919 *-----------------------------------------------------------------------------
9920 *-----------------------------------------------------------------------------
9921 * PURPOSE:1. SORT N*(1440) and N*(1535) 2-body DECAY PRODUCTS
9922 * 2. DETERMINE THE MOMENTUM AND COORDINATES OF NUCLEON AND PION
9923 * AFTER THE DELTA OR N* DECAYING
9924 * DATE : JAN. 24,1990, MODIFIED ON MAY 17, 1994 TO INCLUDE ETA
9925 SUBROUTINE DECAY(IRUN,I,NNN,ISEED,wid,nt)
9926 PARAMETER (MAXSTR=150001,MAXR=1,
9927 1 AMN=0.939457,ETAM=0.5475,AMP=0.93828,AP1=0.13496,
9928 2 AP2=0.13957,AM0=1.232,PI=3.1415926)
9929 COMMON /AA/ R(3,MAXSTR)
9931 COMMON /BB/ P(3,MAXSTR)
9933 COMMON /CC/ E(MAXSTR)
9935 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
9939 COMMON /PA/RPION(3,MAXSTR,MAXR)
9941 COMMON /PB/PPION(3,MAXSTR,MAXR)
9943 COMMON /PC/EPION(MAXSTR,MAXR)
9945 COMMON /PD/LPION(MAXSTR,MAXR)
9947 COMMON /INPUT2/ ILAB, MANYB, NTMAX, ICOLL, INSYS, IPOT, MODE,
9948 & IMOMEN, NFREQ, ICFLOW, ICRHO, ICOU, KPOTEN, KMUL
9951 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
9952 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
9953 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
9959 *1. FOR N*+(1440) DECAY
9960 IF(iabs(LB(I)).EQ.11)THEN
9962 IF(X3.GT.(1./3.))THEN
9973 *2. FOR N*0(1440) DECAY
9974 ELSEIF(iabs(LB(I)).EQ.10)THEN
9976 IF(X4.GT.(1./3.))THEN
9987 * N*(1535) CAN DECAY TO A PION OR AN ETA IF DM > 1.49 GeV
9988 *3 N*(0)(1535) DECAY
9989 ELSEIF(iabs(LB(I)).EQ.12)THEN
9991 IF(DM.lE.1.49)ctrl=-1.
9994 * DECAY TO PION+NUCLEON
9996 IF(X6.GT.(1./3.))THEN
10000 EPION(NNN,IRUN)=AP2
10005 EPION(NNN,IRUN)=AP1
10008 * DECAY TO ETA+NEUTRON
10012 EPION(NNN,IRUN)=ETAM
10014 *4. FOR N*+(1535) DECAY
10015 ELSEIF(iabs(LB(I)).EQ.13)THEN
10017 IF(DM.lE.1.49)ctrl=-1.
10020 * DECAY TO PION+NUCLEON
10022 IF(X8.GT.(1./3.))THEN
10026 EPION(NNN,IRUN)=AP2
10031 EPION(NNN,IRUN)=AP1
10034 * DECAY TO ETA+NUCLEON
10038 EPION(NNN,IRUN)=ETAM
10042 CALL DKINE(IRUN,I,NNN,NLAB,ISEED,wid,nt)
10044 c anti-particle ID for anti-N* decays:
10045 if(lbanti.lt.0) then
10047 if(lbi.eq.1.or.lbi.eq.2) then
10049 elseif(lbi.eq.3) then
10051 elseif(lbi.eq.5) then
10056 lbi=LPION(NNN,IRUN)
10059 elseif(lbi.eq.5) then
10061 elseif(lbi.eq.1.or.lbi.eq.2) then
10064 LPION(NNN,IRUN)=lbi
10067 if(nt.eq.ntmax) then
10068 c at the last timestep, assign rho or eta (decay daughter)
10069 c to lb(i1) only (not to lpion) in order to decay them again:
10070 lbm=LPION(NNN,IRUN)
10071 if(lbm.eq.0.or.lbm.eq.25
10072 1 .or.lbm.eq.26.or.lbm.eq.27) then
10073 c switch rho or eta with baryon, positions are the same (no change needed):
10075 xmsave=EPION(NNN,IRUN)
10076 pxsave=PPION(1,NNN,IRUN)
10077 pysave=PPION(2,NNN,IRUN)
10078 pzsave=PPION(3,NNN,IRUN)
10080 dpsave=dppion(NNN,IRUN)
10081 LPION(NNN,IRUN)=LB(I)
10082 EPION(NNN,IRUN)=E(I)
10083 PPION(1,NNN,IRUN)=P(1,I)
10084 PPION(2,NNN,IRUN)=P(2,I)
10085 PPION(3,NNN,IRUN)=P(3,I)
10087 dppion(NNN,IRUN)=dpertp(I)
10101 *-------------------------------------------------------------------
10102 *-------------------------------------------------------------------
10104 * CALCULATE THE MOMENTUM OF NUCLEON AND PION (OR ETA)
10105 * IN THE LAB. FRAME AFTER DELTA OR N* DECAY
10106 * DATE : JAN. 24,1990, MODIFIED ON MAY 17, 1994 TO INCLUDE ETA PRODUCTION
10107 SUBROUTINE DKINE(IRUN,I,NNN,NLAB,ISEED,wid,nt)
10108 PARAMETER (hbarc=0.19733)
10109 PARAMETER (MAXSTR=150001,MAXR=1,
10110 1 AMN=0.939457,AMP=0.93828,ETAM=0.5475,
10111 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10112 COMMON /AA/ R(3,MAXSTR)
10114 COMMON /BB/ P(3,MAXSTR)
10116 COMMON /CC/ E(MAXSTR)
10118 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10122 COMMON /PA/RPION(3,MAXSTR,MAXR)
10124 COMMON /PB/PPION(3,MAXSTR,MAXR)
10126 COMMON /PC/EPION(MAXSTR,MAXR)
10128 COMMON /PD/LPION(MAXSTR,MAXR)
10130 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
10131 1 px1n,py1n,pz1n,dp1n
10133 COMMON/tdecay/tfdcy(MAXSTR),tfdpi(MAXSTR,MAXR),tft(MAXSTR)
10135 COMMON /INPUT2/ ILAB, MANYB, NTMAX, ICOLL, INSYS, IPOT, MODE,
10136 & IMOMEN, NFREQ, ICFLOW, ICRHO, ICOU, KPOTEN, KMUL
10138 COMMON/RNDF77/NSEED
10140 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
10141 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
10142 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
10143 EXTERNAL IARFLV, INVFLV
10146 * READ IN THE COORDINATES OF DELTA OR N* UNDERGOING DECAY
10154 EDELTA=SQRT(DM**2+PX**2+PY**2+PZ**2)
10157 IF(NLAB.EQ.2)AM=AMN
10158 * FIND OUT THE MOMENTUM AND ENERGY OF PION AND NUCLEON IN DELTA REST FRAME
10159 * THE MAGNITUDE OF MOMENTUM IS DETERMINED BY ENERGY CONSERVATION ,THE FORMULA
10160 * CAN BE FOUND ON PAGE 716,W BAUER P.R.C40,1989
10161 * THE DIRECTION OF THE MOMENTUM IS ASSUMED ISOTROPIC. NOTE THAT P(PION)=-P(N)
10162 Q2=((DM**2-AM**2+PM**2)/(2.*DM))**2-PM**2
10163 IF(Q2.LE.0.)Q2=1.e-09
10165 11 QX=1.-2.*RANART(NSEED)
10166 QY=1.-2.*RANART(NSEED)
10167 QZ=1.-2.*RANART(NSEED)
10168 QS=QX**2+QY**2+QZ**2
10169 IF(QS.GT.1.) GO TO 11
10173 EP=SQRT(Q**2+PM**2)
10177 EN=SQRT(Q**2+AM**2)
10178 * TRANSFORM INTO THE LAB. FRAME. THE GENERAL LORENTZ TRANSFORMATION CAN
10179 * BE FOUND ON PAGE 34 OF R. HAGEDORN " RELATIVISTIC KINEMATICS"
10185 BPP=BDX*PXP+BDY*PYP+BDZ*PZP
10186 BPN=BDX*PXN+BDY*PYN+BDZ*PZN
10187 P(1,I)=PXN+BDX*GD*(FGD*BPN+EN)
10188 P(2,I)=PYN+BDY*GD*(FGD*BPN+EN)
10189 P(3,I)=PZN+BDZ*GD*(FGD*BPN+EN)
10191 * WE ASSUME THAT THE SPACIAL COORDINATE OF THE NUCLEON
10192 * IS THAT OF THE DELTA
10193 PPION(1,NNN,IRUN)=PXP+BDX*GD*(FGD*BPP+EP)
10194 PPION(2,NNN,IRUN)=PYP+BDY*GD*(FGD*BPP+EP)
10195 PPION(3,NNN,IRUN)=PZP+BDZ*GD*(FGD*BPP+EP)
10197 dppion(NNN,IRUN)=dpertp(I)
10198 * WE ASSUME THE PION OR ETA COMING FROM DELTA DECAY IS LOCATED ON THE SPHERE
10199 * OF RADIUS 0.5FM AROUND DELTA, THIS POINT NEED TO BE CHECKED
10200 * AND OTHER CRIERTION MAY BE TRIED
10201 clin-2/20/03 no additional smearing for position of decay daughters:
10202 c200 X0 = 1.0 - 2.0 * RANART(NSEED)
10203 c Y0 = 1.0 - 2.0 * RANART(NSEED)
10204 c Z0 = 1.0 - 2.0 * RANART(NSEED)
10205 c IF ((X0*X0+Y0*Y0+Z0*Z0) .GT. 1.0) GOTO 200
10206 c RPION(1,NNN,IRUN)=R(1,I)+0.5*x0
10207 c RPION(2,NNN,IRUN)=R(2,I)+0.5*y0
10208 c RPION(3,NNN,IRUN)=R(3,I)+0.5*z0
10209 RPION(1,NNN,IRUN)=R(1,I)
10210 RPION(2,NNN,IRUN)=R(2,I)
10211 RPION(3,NNN,IRUN)=R(3,I)
10213 devio=SQRT(EPION(NNN,IRUN)**2+PPION(1,NNN,IRUN)**2
10214 1 +PPION(2,NNN,IRUN)**2+PPION(3,NNN,IRUN)**2)
10215 2 +SQRT(E(I)**2+P(1,I)**2+P(2,I)**2+P(3,I)**2)-e1
10216 c if(abs(devio).gt.0.02) write(93,*) 'decay(): nt=',nt,devio,lb1
10218 c add decay time to daughter's formation time at the last timestep:
10219 if(nt.eq.ntmax) then
10221 taudcy=tau0*(-1.)*alog(1.-RANART(NSEED))
10223 taudcy=taudcy*e1/em1
10225 xfnl=xfnl+px1/e1*taudcy
10226 yfnl=yfnl+py1/e1*taudcy
10227 zfnl=zfnl+pz1/e1*taudcy
10232 RPION(1,NNN,IRUN)=xfnl
10233 RPION(2,NNN,IRUN)=yfnl
10234 RPION(3,NNN,IRUN)=zfnl
10235 tfdpi(NNN,IRUN)=tfnl
10238 cc 200 format(a30,2(1x,e10.4))
10239 cc 210 format(i6,5(1x,f8.3))
10240 cc 220 format(a2,i5,5(1x,f8.3))
10245 *-----------------------------------------------------------------------------
10246 *-----------------------------------------------------------------------------
10247 * PURPOSE:1. N*-->N+PION+PION DECAY PRODUCTS
10248 * 2. DETERMINE THE MOMENTUM AND COORDINATES OF NUCLEON AND PION
10249 * AFTER THE DELTA OR N* DECAYING
10250 * DATE : NOV.7,1994
10251 *----------------------------------------------------------------------------
10252 SUBROUTINE DECAY2(IRUN,I,NNN,ISEED,wid,nt)
10253 PARAMETER (MAXSTR=150001,MAXR=1,
10254 1 AMN=0.939457,ETAM=0.5475,AMP=0.93828,AP1=0.13496,
10255 2 AP2=0.13957,AM0=1.232,PI=3.1415926)
10256 COMMON /AA/ R(3,MAXSTR)
10258 COMMON /BB/ P(3,MAXSTR)
10260 COMMON /CC/ E(MAXSTR)
10262 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10266 COMMON /PA/RPION(3,MAXSTR,MAXR)
10268 COMMON /PB/PPION(3,MAXSTR,MAXR)
10270 COMMON /PC/EPION(MAXSTR,MAXR)
10272 COMMON /PD/LPION(MAXSTR,MAXR)
10274 COMMON/RNDF77/NSEED
10281 * DETERMINE THE DECAY PRODUCTS
10282 * FOR N*+(1440) DECAY
10283 IF(iabs(LB(I)).EQ.11)THEN
10285 IF(X3.LT.(1./3))THEN
10289 EPION(NNN,IRUN)=AP2
10290 LPION(NNN+1,IRUN)=4
10291 EPION(NNN+1,IRUN)=AP1
10292 ELSEIF(X3.LT.2./3.AND.X3.GT.1./3.)THEN
10296 EPION(NNN,IRUN)=AP2
10297 LPION(NNN+1,IRUN)=3
10298 EPION(NNN+1,IRUN)=AP2
10303 EPION(NNN,IRUN)=AP1
10304 LPION(NNN+1,IRUN)=4
10305 EPION(NNN+1,IRUN)=AP1
10307 * FOR N*0(1440) DECAY
10308 ELSEIF(iabs(LB(I)).EQ.10)THEN
10310 IF(X3.LT.(1./3))THEN
10314 EPION(NNN,IRUN)=AP1
10315 LPION(NNN+1,IRUN)=4
10316 EPION(NNN+1,IRUN)=AP1
10317 ELSEIF(X3.LT.2./3.AND.X3.GT.1./3.)THEN
10321 EPION(NNN,IRUN)=AP2
10322 LPION(NNN+1,IRUN)=4
10323 EPION(NNN+1,IRUN)=AP1
10328 EPION(NNN,IRUN)=AP2
10329 LPION(NNN+1,IRUN)=3
10330 EPION(NNN+1,IRUN)=AP2
10334 CALL DKINE2(IRUN,I,NNN,NLAB,ISEED,wid,nt)
10336 c anti-particle ID for anti-N* decays:
10337 if(lbanti.lt.0) then
10339 if(lbi.eq.1.or.lbi.eq.2) then
10341 elseif(lbi.eq.3) then
10343 elseif(lbi.eq.5) then
10348 lbi=LPION(NNN,IRUN)
10351 elseif(lbi.eq.5) then
10353 elseif(lbi.eq.1.or.lbi.eq.2) then
10356 LPION(NNN,IRUN)=lbi
10358 lbi=LPION(NNN+1,IRUN)
10361 elseif(lbi.eq.5) then
10363 elseif(lbi.eq.1.or.lbi.eq.2) then
10366 LPION(NNN+1,IRUN)=lbi
10371 *-------------------------------------------------------------------
10372 *--------------------------------------------------------------------------
10373 * CALCULATE THE MOMENTUM OF NUCLEON AND PION (OR ETA)
10374 * IN THE LAB. FRAME AFTER DELTA OR N* DECAY
10375 * DATE : JAN. 24,1990, MODIFIED ON MAY 17, 1994 TO INCLUDE ETA PRODUCTION
10376 *--------------------------------------------------------------------------
10377 SUBROUTINE DKINE2(IRUN,I,NNN,NLAB,ISEED,wid,nt)
10378 PARAMETER (hbarc=0.19733)
10379 PARAMETER (MAXSTR=150001,MAXR=1,
10380 1 AMN=0.939457,AMP=0.93828,ETAM=0.5475,
10381 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10382 COMMON /AA/ R(3,MAXSTR)
10384 COMMON /BB/ P(3,MAXSTR)
10386 COMMON /CC/ E(MAXSTR)
10388 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10392 COMMON /PA/RPION(3,MAXSTR,MAXR)
10394 COMMON /PB/PPION(3,MAXSTR,MAXR)
10396 COMMON /PC/EPION(MAXSTR,MAXR)
10398 COMMON /PD/LPION(MAXSTR,MAXR)
10400 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
10401 1 px1n,py1n,pz1n,dp1n
10403 COMMON/tdecay/tfdcy(MAXSTR),tfdpi(MAXSTR,MAXR),tft(MAXSTR)
10405 COMMON /INPUT2/ ILAB, MANYB, NTMAX, ICOLL, INSYS, IPOT, MODE,
10406 & IMOMEN, NFREQ, ICFLOW, ICRHO, ICOU, KPOTEN, KMUL
10408 EXTERNAL IARFLV, INVFLV
10409 COMMON/RNDF77/NSEED
10411 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
10412 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
10413 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
10417 * READ IN THE COORDINATES OF THE N*(1440) UNDERGOING DECAY
10425 EDELTA=SQRT(DM**2+PX**2+PY**2+PZ**2)
10426 PM1=EPION(NNN,IRUN)
10427 PM2=EPION(NNN+1,IRUN)
10429 IF(NLAB.EQ.1)AM=AMP
10430 * THE MAXIMUM MOMENTUM OF THE NUCLEON FROM THE DECAY OF A N*
10431 PMAX2=(DM**2-(AM+PM1+PM2)**2)*(DM**2-(AM-PM1-PM2)**2)/4/DM**2
10433 * GENERATE THE MOMENTUM OF THE NUCLEON IN THE N* REST FRAME
10434 CSS=1.-2.*RANART(NSEED)
10436 FAI=2*PI*RANART(NSEED)
10437 PX0=PMAX*SSS*COS(FAI)
10438 PY0=PMAX*SSS*SIN(FAI)
10440 EP0=SQRT(PX0**2+PY0**2+PZ0**2+AM**2)
10441 clin-5/23/01 bug: P0 for pion0 is equal to PMAX, leaving pion+ and pion-
10442 c without no relative momentum, thus producing them with equal momenta,
10443 * BETA AND GAMMA OF THE CMS OF PION+-PION-
10444 BETAX=-PX0/(DM-EP0)
10445 BETAY=-PY0/(DM-EP0)
10446 BETAZ=-PZ0/(DM-EP0)
10447 GD1=1./SQRT(1-BETAX**2-BETAY**2-BETAZ**2)
10449 * GENERATE THE MOMENTA OF PIONS IN THE CMS OF PION+PION-
10450 Q2=((DM-EP0)/(2.*GD1))**2-PM1**2
10451 IF(Q2.LE.0.)Q2=1.E-09
10453 11 QX=1.-2.*RANART(NSEED)
10454 QY=1.-2.*RANART(NSEED)
10455 QZ=1.-2.*RANART(NSEED)
10456 QS=QX**2+QY**2+QZ**2
10457 IF(QS.GT.1.) GO TO 11
10461 EP=SQRT(Q**2+PM1**2)
10465 EN=SQRT(Q**2+PM2**2)
10466 * TRANSFORM THE MOMENTA OF PION+PION- INTO THE N* REST FRAME
10467 BPP1=BETAX*PXP+BETAY*PYP+BETAZ*PZP
10468 BPN1=BETAX*PXN+BETAY*PYN+BETAZ*PZN
10470 P1M=PXN+BETAX*GD1*(FGD1*BPN1+EN)
10471 P2M=PYN+BETAY*GD1*(FGD1*BPN1+EN)
10472 P3M=PZN+BETAZ*GD1*(FGD1*BPN1+EN)
10473 EPN=SQRT(P1M**2+P2M**2+P3M**2+PM2**2)
10475 P1P=PXP+BETAX*GD1*(FGD1*BPP1+EP)
10476 P2P=PYP+BETAY*GD1*(FGD1*BPP1+EP)
10477 P3P=PZP+BETAZ*GD1*(FGD1*BPP1+EP)
10478 EPP=SQRT(P1P**2+P2P**2+P3P**2+PM1**2)
10479 * TRANSFORM MOMENTA OF THE THREE PIONS INTO THE
10480 * THE NUCLEUS-NUCLEUS CENTER OF MASS FRAME.
10481 * THE GENERAL LORENTZ TRANSFORMATION CAN
10482 * BE FOUND ON PAGE 34 OF R. HAGEDORN " RELATIVISTIC KINEMATICS"
10488 BP0=BDX*PX0+BDY*PY0+BDZ*PZ0
10489 BPP=BDX*P1P+BDY*P2P+BDZ*P3P
10490 BPN=BDX*P1M+BDY*P2M+BDZ*P3M
10492 P(1,I)=PX0+BDX*GD*(FGD*BP0+EP0)
10493 P(2,I)=PY0+BDY*GD*(FGD*BP0+EP0)
10494 P(3,I)=PZ0+BDZ*GD*(FGD*BP0+EP0)
10497 enucl=sqrt(p(1,i)**2+p(2,i)**2+p(3,i)**2+e(i)**2)
10498 * WE ASSUME THAT THE SPACIAL COORDINATE OF THE PION0
10499 * IS in a sphere of radius 0.5 fm around N*
10501 PPION(1,NNN,IRUN)=P1P+BDX*GD*(FGD*BPP+EPP)
10502 PPION(2,NNN,IRUN)=P2P+BDY*GD*(FGD*BPP+EPP)
10503 PPION(3,NNN,IRUN)=P3P+BDZ*GD*(FGD*BPP+EPP)
10504 epion1=sqrt(ppion(1,nnn,irun)**2
10505 & +ppion(2,nnn,irun)**2+ppion(3,nnn,irun)**2
10506 & +epion(nnn,irun)**2)
10507 clin-2/20/03 no additional smearing for position of decay daughters:
10508 c200 X0 = 1.0 - 2.0 * RANART(NSEED)
10509 c Y0 = 1.0 - 2.0 * RANART(NSEED)
10510 c Z0 = 1.0 - 2.0 * RANART(NSEED)
10511 c IF ((X0*X0+Y0*Y0+Z0*Z0) .GT. 1.0) GOTO 200
10512 c RPION(1,NNN,IRUN)=R(1,I)+0.5*x0
10513 c RPION(2,NNN,IRUN)=R(2,I)+0.5*y0
10514 c RPION(3,NNN,IRUN)=R(3,I)+0.5*z0
10515 RPION(1,NNN,IRUN)=R(1,I)
10516 RPION(2,NNN,IRUN)=R(2,I)
10517 RPION(3,NNN,IRUN)=R(3,I)
10519 PPION(1,NNN+1,IRUN)=P1M+BDX*GD*(FGD*BPN+EPN)
10520 PPION(2,NNN+1,IRUN)=P2M+BDY*GD*(FGD*BPN+EPN)
10521 PPION(3,NNN+1,IRUN)=P3M+BDZ*GD*(FGD*BPN+EPN)
10523 dppion(NNN,IRUN)=dpertp(I)
10524 dppion(NNN+1,IRUN)=dpertp(I)
10526 epion2=sqrt(ppion(1,nnn+1,irun)**2
10527 & +ppion(2,nnn+1,irun)**2+ppion(3,nnn+1,irun)**2
10528 & +epion(nnn+1,irun)**2)
10529 clin-2/20/03 no additional smearing for position of decay daughters:
10530 c300 X0 = 1.0 - 2.0 * RANART(NSEED)
10531 c Y0 = 1.0 - 2.0 * RANART(NSEED)
10532 c Z0 = 1.0 - 2.0 * RANART(NSEED)
10533 c IF ((X0*X0+Y0*Y0+Z0*Z0) .GT. 1.0) GOTO 300
10534 c RPION(1,NNN+1,IRUN)=R(1,I)+0.5*x0
10535 c RPION(2,NNN+1,IRUN)=R(2,I)+0.5*y0
10536 c RPION(3,NNN+1,IRUN)=R(3,I)+0.5*z0
10537 RPION(1,NNN+1,IRUN)=R(1,I)
10538 RPION(2,NNN+1,IRUN)=R(2,I)
10539 RPION(3,NNN+1,IRUN)=R(3,I)
10541 * check energy conservation in the decay
10542 c efinal=enucl+epion1+epion2
10543 c DEEE=(EDELTA-EFINAL)/EDELTA
10544 c IF(ABS(DEEE).GE.1.E-03)write(6,*)1,edelta,efinal
10546 devio=SQRT(EPION(NNN,IRUN)**2+PPION(1,NNN,IRUN)**2
10547 1 +PPION(2,NNN,IRUN)**2+PPION(3,NNN,IRUN)**2)
10548 2 +SQRT(E(I)**2+P(1,I)**2+P(2,I)**2+P(3,I)**2)
10549 3 +SQRT(EPION(NNN+1,IRUN)**2+PPION(1,NNN+1,IRUN)**2
10550 4 +PPION(2,NNN+1,IRUN)**2+PPION(3,NNN+1,IRUN)**2)-e1
10551 c if(abs(devio).gt.0.02) write(93,*) 'decay2(): nt=',nt,devio,lb1
10553 c add decay time to daughter's formation time at the last timestep:
10554 if(nt.eq.ntmax) then
10556 taudcy=tau0*(-1.)*alog(1.-RANART(NSEED))
10558 taudcy=taudcy*e1/em1
10560 xfnl=xfnl+px1/e1*taudcy
10561 yfnl=yfnl+py1/e1*taudcy
10562 zfnl=zfnl+pz1/e1*taudcy
10567 RPION(1,NNN,IRUN)=xfnl
10568 RPION(2,NNN,IRUN)=yfnl
10569 RPION(3,NNN,IRUN)=zfnl
10570 tfdpi(NNN,IRUN)=tfnl
10571 RPION(1,NNN+1,IRUN)=xfnl
10572 RPION(2,NNN+1,IRUN)=yfnl
10573 RPION(3,NNN+1,IRUN)=zfnl
10574 tfdpi(NNN+1,IRUN)=tfnl
10577 cc 200 format(a30,2(1x,e10.4))
10578 cc 210 format(i6,5(1x,f8.3))
10579 cc 220 format(a2,i5,5(1x,f8.3))
10583 *---------------------------------------------------------------------------
10584 *---------------------------------------------------------------------------
10585 * PURPOSE : CALCULATE THE MASS AND MOMENTUM OF BARYON RESONANCE
10586 * AFTER PION OR ETA BEING ABSORBED BY A NUCLEON
10589 * DATE : JAN.29,1990
10590 SUBROUTINE DRESON(I1,I2)
10591 PARAMETER (MAXSTR=150001,MAXR=1,
10592 1 AMN=0.939457,AMP=0.93828,
10593 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10594 COMMON /AA/ R(3,MAXSTR)
10596 COMMON /BB/ P(3,MAXSTR)
10598 COMMON /CC/ E(MAXSTR)
10600 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10604 COMMON /PA/RPION(3,MAXSTR,MAXR)
10606 COMMON /PB/PPION(3,MAXSTR,MAXR)
10608 COMMON /PC/EPION(MAXSTR,MAXR)
10610 COMMON /PD/LPION(MAXSTR,MAXR)
10613 * 1. DETERMINE THE MOMENTUM COMPONENT OF DELTA/N* IN THE LAB. FRAME
10614 E10=SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
10615 E20=SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
10616 IF(iabs(LB(I2)) .EQ. 1 .OR. iabs(LB(I2)) .EQ. 2 .OR.
10617 & (iabs(LB(I2)) .GE. 6 .AND. iabs(LB(I2)) .LE. 17)) THEN
10624 P(1,I)=P(1,I1)+P(1,I2)
10625 P(2,I)=P(2,I1)+P(2,I2)
10626 P(3,I)=P(3,I1)+P(3,I2)
10627 * 2. DETERMINE THE MASS OF DELTA/N* BY USING THE REACTION KINEMATICS
10628 DM=SQRT((E10+E20)**2-P(1,I)**2-P(2,I)**2-P(3,I)**2)
10632 *---------------------------------------------------------------------------
10633 * PURPOSE : CALCULATE THE MASS AND MOMENTUM OF RHO RESONANCE
10634 * AFTER PION + PION COLLISION
10635 * DATE : NOV. 30,1994
10636 SUBROUTINE RHORES(I1,I2)
10637 PARAMETER (MAXSTR=150001,MAXR=1,
10638 1 AMN=0.939457,AMP=0.93828,
10639 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10640 COMMON /AA/ R(3,MAXSTR)
10642 COMMON /BB/ P(3,MAXSTR)
10644 COMMON /CC/ E(MAXSTR)
10646 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10650 COMMON /PA/RPION(3,MAXSTR,MAXR)
10652 COMMON /PB/PPION(3,MAXSTR,MAXR)
10654 COMMON /PC/EPION(MAXSTR,MAXR)
10656 COMMON /PD/LPION(MAXSTR,MAXR)
10659 * 1. DETERMINE THE MOMENTUM COMPONENT OF THE RHO IN THE CMS OF NN FRAME
10660 * WE LET I1 TO BE THE RHO AND ABSORB I2
10661 E10=SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
10662 E20=SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
10663 P(1,I1)=P(1,I1)+P(1,I2)
10664 P(2,I1)=P(2,I1)+P(2,I2)
10665 P(3,I1)=P(3,I1)+P(3,I2)
10666 * 2. DETERMINE THE MASS OF THE RHO BY USING THE REACTION KINEMATICS
10667 DM=SQRT((E10+E20)**2-P(1,I1)**2-P(2,I1)**2-P(3,I1)**2)
10672 *---------------------------------------------------------------------------
10673 * PURPOSE : CALCULATE THE PION+NUCLEON CROSS SECTION ACCORDING TO THE
10674 * BREIT-WIGNER FORMULA/(p*)**2
10675 * VARIABLE : LA = 1 FOR DELTA RESONANCE
10676 * LA = 0 FOR N*(1440) RESONANCE
10677 * LA = 2 FRO N*(1535) RESONANCE
10678 * DATE : JAN.29,1990
10679 REAL FUNCTION XNPI(I1,I2,LA,XMAX)
10680 PARAMETER (MAXSTR=150001,MAXR=1,
10681 1 AMN=0.939457,AMP=0.93828,
10682 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10683 COMMON /AA/ R(3,MAXSTR)
10685 COMMON /BB/ P(3,MAXSTR)
10687 COMMON /CC/ E(MAXSTR)
10689 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10693 COMMON /PA/RPION(3,MAXSTR,MAXR)
10695 COMMON /PB/PPION(3,MAXSTR,MAXR)
10697 COMMON /PC/EPION(MAXSTR,MAXR)
10699 COMMON /PD/LPION(MAXSTR,MAXR)
10702 AVMASS=0.5*(AMN+AMP)
10703 AVPI=(2.*AP2+AP1)/3.
10704 * 1. DETERMINE THE MOMENTUM COMPONENT OF DELTA IN THE LAB. FRAME
10705 E10=SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
10706 E20=SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
10710 * 2. DETERMINE THE MASS OF DELTA BY USING OF THE REACTION KINEMATICS
10711 DM=SQRT((E10+E20)**2-P1**2-P2**2-P3**2)
10716 * 3. DETERMINE THE PION+NUCLEON CROSS SECTION ACCORDING TO THE
10717 * BREIT-WIGNER FORMULA IN UNIT OF FM**2
10720 F1=0.25*GAM**2/(0.25*GAM**2+(DM-1.232)**2)
10726 F1=0.25*GAM**2/(0.25*GAM**2+(DM-1.440)**2)
10732 F1=0.25*GAM**2/(0.25*GAM**2+(DM-1.535)**2)
10735 10 PSTAR2=((DM**2-AVMASS**2+AVPI**2)/(2.*DM))**2-AVPI**2
10736 IF(PSTAR2.LE.0.)THEN
10739 * give the cross section in unit of fm**2
10740 XNPI=F1*(PDELT2/PSTAR2)*XMAX/10.
10744 *------------------------------------------------------------------------------
10745 *****************************************
10746 REAL FUNCTION SIGMA(SRT,ID,IOI,IOF)
10747 *PURPOSE : THIS IS THE PROGRAM TO CALCULATE THE ISOSPIN DECOMPOSED CROSS
10748 * SECTION BY USING OF B.J.VerWEST AND R.A.ARNDT'S PARAMETERIZATION
10749 *REFERENCE: PHYS. REV. C25(1982)1979
10750 *QUANTITIES: IOI -- INITIAL ISOSPIN OF THE TWO NUCLEON SYSTEM
10751 * IOF -- FINAL ISOSPIN -------------------------
10752 * ID -- =1 FOR DELTA RESORANCE
10753 * =2 FOR N* RESORANCE
10754 *DATE : MAY 15,1990
10755 *****************************************
10756 PARAMETER (AMU=0.9383,AMP=0.1384,PI=3.1415926,HC=0.19733)
10765 IF((IOI.EQ.1).AND.(IOF.EQ.1))THEN
10771 IF((IOI.EQ.1).AND.(IOF.EQ.0))THEN
10777 IF((IOI.EQ.0).AND.(IOF.EQ.1))THEN
10783 ZPLUS=(SRT-AMU-AMASS0)*2./T0
10784 ZMINUS=(AMU+AMP-AMASS0)*2./T0
10785 deln=ATAN(ZPLUS)-ATAN(ZMINUS)
10786 if(deln.eq.0)deln=1.E-06
10787 AMASS=AMASS0+(T0/4.)*ALOG((1.+ZPLUS**2)/(1.+ZMINUS**2))
10794 PR2=(S-(AMU-AMASS)**2)*(S-(AMU+AMASS)**2)/(4.*S)
10795 IF(PR2.GT.1.E-06)THEN
10803 Q2=(SS-(AMU-AMP)**2)*(SS-(AMU+AMP)**2)/(4.*SS)
10804 IF(Q2.GT.1.E-06)THEN
10812 Q02=(SS0-(AMU-AMP)**2)*(SS0-(AMU+AMP)**2)/(4.*SS0)
10814 SIGMA=PI*(HC)**2/(2.*P2)*ALFA*(PR/P0)**BETA*AM0**2*T**2
10815 1 *(Q/Q0)**3/((SS-AM0**2)**2+AM0**2*T**2)
10817 IF(SIGMA.EQ.0)SIGMA=1.E-06
10821 *****************************
10822 REAL FUNCTION DENOM(SRT,CON)
10823 * NOTE: CON=1 FOR DELTA RESONANCE, CON=2 FOR N*(1440) RESONANCE
10824 * con=-1 for N*(1535)
10825 * PURPOSE : CALCULATE THE INTEGRAL IN THE DETAILED BALANCE
10827 * DATE : NOV. 15, 1991
10828 *******************************
10829 PARAMETER (AP1=0.13496,
10830 1 AP2=0.13957,PI=3.1415926,AVMASS=0.9383)
10832 AVPI=(AP1+2.*AP2)/3.
10839 DMASS=(AMAX-AMIN)/FLOAT(NMAX)
10842 DM=AMIN+FLOAT(I-1)*DMASS
10844 Q2=((DM**2-AMN**2+AMP**2)/(2.*DM))**2-AMP**2
10850 TQ=0.47*(Q**3)/(AMP**2*(1.+0.6*(Q/AMP)**2))
10851 ELSE if(con.eq.2)then
10854 else if(con.eq.-1.)then
10858 A1=4.*TQ*AM0**2/(AM0**2*TQ**2+(DM**2-AM0**2)**2)
10860 P0=(S+DM**2-AMN**2)**2/(4.*S)-DM**2
10867 IF((I.EQ.1).OR.(I.EQ.(NMAX+1)))THEN
10873 DENOM=SUM*DMASS/(2.*PI)
10876 **********************************
10877 * subroutine : ang.FOR
10878 * PURPOSE : Calculate the angular distribution of Delta production process
10879 * DATE : Nov. 19, 1992
10880 * REFERENCE: G. WOLF ET. AL., NUCL. PHYS. A517 (1990) 615
10881 * Note: this function applies when srt is larger than 2.14 GeV,
10882 * for less energetic reactions, we assume the angular distribution
10884 ***********************************
10885 real function ang(srt,iseed)
10886 COMMON/RNDF77/NSEED
10890 c if(srt.le.2.14)then
10894 if((srt.gt.2.14).and.(srt.le.2.4))then
10895 b1s=29.03-23.75*srt+4.865*srt**2
10896 b2s=-30.33+25.53*srt-5.301*srt**2
10904 q=(2.*x-1.)*(b1s+b2s)/b2s
10905 IF((-q/2.+sqrt((q/2.)**2+(p/3.)**3)).GE.0.)THEN
10906 ang1=(-q/2.+sqrt((q/2.)**2+(p/3.)**3))**(1./3.)
10908 ang1=-(q/2.-sqrt((q/2.)**2+(p/3.)**3))**(1./3.)
10910 IF((-q/2.-sqrt((q/2.)**2+(p/3.)**3).GE.0.))THEN
10911 ang2=(-q/2.-sqrt((q/2.)**2+(p/3.)**3))**(1./3.)
10913 ang2=-(q/2.+sqrt((q/2.)**2+(p/3.)**3))**(1./3.)
10918 *--------------------------------------------------------------------------
10919 *****subprogram * kaon production from pi+B collisions *******************
10920 real function PNLKA(srt)
10923 ***********************************C
10931 IF(SRT.LT.1.7)sbbk=(0.9/0.091)*(SRT-T1)
10932 IF(SRT.GE.1.7)sbbk=0.09/(SRT-1.6)
10934 * give the cross section in units of fm**2
10939 *-------------------------------------------------------------------------
10940 *****subprogram * kaon production from pi+B collisions *******************
10941 real function PNSKA(srt)
10943 ***********************************
10957 IF(SRT.LT.1.9)SBB1=(0.7/0.218)*(SRT-T1)
10958 IF(SRT.GE.1.9)SBB1=0.14/(SRT-1.7)
10960 if(srt.gT.1.682)sbb2=0.5*(1.-0.75*(srt-1.682))
10961 pnska=0.25*(sbb1+sbb2)
10962 * give the cross section in fm**2
10967 ********************************
10969 * Kaon momentum distribution in baryon-baryon-->N lamda K process
10971 * NOTE: dsima/dp is prototional to (1-p/p_max)(p/p_max)^2
10972 * we use rejection method to generate kaon momentum
10974 * Variables: Fkaon = F(p)/F_max
10975 * srt = cms energy of the colliding pair,
10976 * used to calculate the P_max
10977 * Date: Feb. 8, 1994
10979 * Reference: C. M. Ko et al.
10980 ********************************
10981 Real function fkaon(p,pmax)
10984 if(pmax.eq.0.)pmax=0.000001
10985 fkaon=(1.-p/pmax)*(p/pmax)**2
10986 if(fkaon.gt.fmax)fkaon=fmax
10991 *************************
10992 * cross section for N*(1535) production in ND OR NN* collisions
10994 * LB1,LB2 ARE THE LABLES OF THE TWO COLLIDING PARTICLES
10995 * SRT IS THE CMS ENERGY
10996 * X1535 IS THE N*(1535) PRODUCTION CROSS SECTION
10997 * NOTE THAT THE N*(1535) PRODUCTION CROSS SECTION IS 2 TIMES THE ETA
10998 * PRODUCTION CROSS SECTION
10999 * DATE: MAY 18, 1994
11000 * ***********************
11001 Subroutine M1535(LB1,LB2,SRT,X1535)
11005 IF(SRT.LE.S0)RETURN
11006 SIGMA=2.*0.102*(SRT-S0)/(0.058+(SRT-S0)**2)
11007 * I N*(1535) PRODUCTION IN NUCLEON-DELTA COLLISIONS
11008 *(1) nD(++)->pN*(+)(1535), pD(-)->nN*(0)(1535),pD(+)-->N*(+)p
11010 c IF((LB1*LB2.EQ.18).OR.(LB1*LB2.EQ.6).
11011 c 1 or.(lb1*lb2).eq.8)then
11012 IF((LB1*LB2.EQ.18.AND.(LB1.EQ.2.OR.LB2.EQ.2)).OR.
11013 & (LB1*LB2.EQ.6.AND.(LB1.EQ.1.OR.LB2.EQ.1)).or.
11014 & (lb1*lb2.eq.8.AND.(LB1.EQ.1.OR.LB2.EQ.1)))then
11019 *(2) pD(0)->pN*(0)(1535),pD(0)->nN*(+)(1535)
11020 IF(LB1*LB2.EQ.7)THEN
11024 * II N*(1535) PRODUCTION IN N*(1440)+NUCLEON REACTIONS
11025 *(3) N*(+)(1440)p->N*(0+)(1535)p, N*(0)(1440)n->N*(0)(1535)
11027 c IF((LB1*LB2.EQ.11).OR.(LB1*LB2.EQ.20))THEN
11028 IF((LB1*LB2.EQ.11).OR.
11029 & (LB1*LB2.EQ.20.AND.(LB1.EQ.2.OR.LB2.EQ.2)))THEN
11034 *(4) N*(0)(1440)p->N*(0+) or N*(+)(1440)n->N*(0+)(1535)
11036 c IF((LB1*LB2.EQ.10).OR.(LB1*LB2.EQ.22))X1535=3.*SIGMA
11037 IF((LB1*LB2.EQ.10.AND.(LB1.EQ.1.OR.LB2.EQ.1)).OR.
11038 & (LB1*LB2.EQ.22.AND.(LB1.EQ.2.OR.LB2.EQ.2)))
11043 *************************
11044 * cross section for N*(1535) production in NN collisions
11046 * LB1,LB2 ARE THE LABLES OF THE TWO COLLIDING PARTICLES
11047 * SRT IS THE CMS ENERGY
11048 * X1535 IS THE N*(1535) PRODUCTION CROSS SECTION
11049 * NOTE THAT THE N*(1535) PRODUCTION CROSS SECTION IS 2 TIMES THE ETA
11050 * PRODUCTION CROSS SECTION
11051 * DATE: MAY 18, 1994
11052 * ***********************
11053 Subroutine N1535(LB1,LB2,SRT,X1535)
11057 IF(SRT.LE.S0)RETURN
11058 SIGMA=2.*0.102*(SRT-S0)/(0.058+(SRT-S0)**2)
11059 * I N*(1535) PRODUCTION IN NUCLEON-NUCLEON COLLISIONS
11060 *(1) pp->pN*(+)(1535), nn->nN*(0)(1535)
11062 c IF((LB1*LB2.EQ.1).OR.(LB1*LB2.EQ.4))then
11063 IF((LB1*LB2.EQ.1).OR.
11064 & (LB1.EQ.2.AND.LB2.EQ.2))then
11069 *(2) pn->pN*(0)(1535),pn->nN*(+)(1535)
11070 IF(LB1*LB2.EQ.2)then
11074 * III N*(1535) PRODUCTION IN DELTA+DELTA REACTIONS
11075 * (5) D(++)+D(0), D(+)+D(+),D(+)+D(-),D(0)+D(0)
11077 c IF((LB1*LB2.EQ.63).OR.(LB1*LB2.EQ.64).OR.(LB1*LB2.EQ.48).
11078 c 1 OR.(LB1*LB2.EQ.49))then
11079 IF((LB1*LB2.EQ.63.AND.(LB1.EQ.7.OR.LB2.EQ.7)).OR.
11080 & (LB1*LB2.EQ.64.AND.(LB1.EQ.8.OR.LB2.EQ.8)).OR.
11081 & (LB1*LB2.EQ.48.AND.(LB1.EQ.6.OR.LB2.EQ.6)).OR.
11082 & (LB1*LB2.EQ.49.AND.(LB1.EQ.7.OR.LB2.EQ.7)))then
11087 * (6) D(++)+D(-),D(+)+D(0)
11089 c IF((LB1*LB2.EQ.54).OR.(LB1*LB2.EQ.56))then
11090 IF((LB1*LB2.EQ.54.AND.(LB1.EQ.6.OR.LB2.EQ.6)).OR.
11091 & (LB1*LB2.EQ.56.AND.(LB1.EQ.7.OR.LB2.EQ.7)))then
11096 * IV N*(1535) PRODUCTION IN N*(1440)+N*(1440) REACTIONS
11098 c IF((LB1*LB2.EQ.100).OR.(LB1*LB2.EQ.11*11))X1535=SIGMA
11099 IF((LB1.EQ.10.AND.LB2.EQ.10).OR.
11100 & (LB1.EQ.11.AND.LB2.EQ.11))X1535=SIGMA
11101 c IF(LB1*LB2.EQ.110)X1535=3.*SIGMA
11102 IF(LB1*LB2.EQ.110.AND.(LB1.EQ.10.OR.LB2.EQ.10))X1535=3.*SIGMA
11106 ************************************
11107 * FUNCTION WA1(DMASS) GIVES THE A1 DECAY WIDTH
11109 subroutine WIDA1(DMASS,rhomp,wa1,iseed)
11115 RHOMAX = DMASS-PIMASS-0.02
11116 IF(RHOMAX.LE.0)then
11122 711 rhomp=RHOMAS(RHOMAX,ISEED)
11124 if(dmass.le.(pimass+rhomp)) then
11125 if(icount.le.100) then
11134 qqp2=(dmass**2-(rhomp+pimass)**2)*(dmass**2-(rhomp-pimass)**2)
11135 qqp=sqrt(qqp2)/(2.0*dmass)
11136 epi=sqrt(pimass**2+qqp**2)
11137 erho=sqrt(rhomp**2+qqp**2)
11138 epirho=2.0*(epi*erho+qqp**2)**2+rhomp**2*epi**2
11139 wa1=coupa**2*qqp*epirho/(24.0*3.1416*dmass**2)
11142 ************************************
11143 * FUNCTION W1535(DMASS) GIVES THE N*(1535) DECAY WIDTH
11144 c FOR A GIVEN N*(1535) MASS
11145 * HERE THE FORMULA GIVEN BY KITAZOE IS USED
11146 REAL FUNCTION W1535(DMASS)
11150 AUX = 0.25*(DMASS**2-AVMASS**2-PIMASS**2)**2
11151 & -(AVMASS*PIMASS)**2
11152 IF (AUX .GT. 0.) THEN
11153 QAVAIL = SQRT(AUX / DMASS**2)
11157 W1535 = 0.15* QAVAIL/0.467
11161 ************************************
11162 * FUNCTION W1440(DMASS) GIVES THE N*(1440) DECAY WIDTH
11163 c FOR A GIVEN N*(1535) MASS
11164 * HERE THE FORMULA GIVEN BY KITAZOE IS USED
11165 REAL FUNCTION W1440(DMASS)
11169 AUX = 0.25*(DMASS**2-AVMASS**2-PIMASS**2)**2
11170 & -(AVMASS*PIMASS)**2
11171 IF (AUX .GT. 0.) THEN
11172 QAVAIL = SQRT(AUX)/DMASS
11177 W1440 = 0.2* (QAVAIL/0.397)**3
11181 * PURPOSE : CALCULATE THE PION(ETA)+NUCLEON CROSS SECTION
11182 * ACCORDING TO THE BREIT-WIGNER FORMULA,
11183 * NOTE THAT N*(1535) IS S_11
11184 * VARIABLE : LA = 1 FOR PI+N
11186 * DATE : MAY 16, 1994
11188 REAL FUNCTION XN1535(I1,I2,LA)
11189 PARAMETER (MAXSTR=150001,MAXR=1,
11190 1 AMN=0.939457,AMP=0.93828,ETAM=0.5475,
11191 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
11192 COMMON /AA/ R(3,MAXSTR)
11194 COMMON /BB/ P(3,MAXSTR)
11196 COMMON /CC/ E(MAXSTR)
11198 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
11202 COMMON /PA/RPION(3,MAXSTR,MAXR)
11204 COMMON /PB/PPION(3,MAXSTR,MAXR)
11206 COMMON /PC/EPION(MAXSTR,MAXR)
11208 COMMON /PD/LPION(MAXSTR,MAXR)
11211 AVMASS=0.5*(AMN+AMP)
11212 AVPI=(2.*AP2+AP1)/3.
11213 * 1. DETERMINE THE MOMENTUM COMPONENT OF N*(1535) IN THE LAB. FRAME
11214 E10=SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
11215 E20=SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
11219 * 2. DETERMINE THE MASS OF DELTA BY USING OF THE REACTION KINEMATICS
11220 DM=SQRT((E10+E20)**2-P1**2-P2**2-P3**2)
11225 * 3. DETERMINE THE PION(ETA)+NUCLEON->N*(1535) CROSS SECTION ACCORDING TO THE
11226 * BREIT-WIGNER FORMULA IN UNIT OF FM**2
11229 F1=0.25*GAM0**2/(0.25*GAM**2+(DM-1.535)**2)
11238 ***************************8
11239 *FUNCTION FDE(DMASS) GIVES DELTA MASS DISTRIBUTION BY USING OF
11241 REAL FUNCTION FDELTA(DMASS)
11246 FD=0.25*WIDTH(DMASS)**2/((DMASS-1.232)**2
11247 1 +0.25*WIDTH(DMASS)**2)
11251 * FUNCTION WIDTH(DMASS) GIVES THE DELTA DECAY WIDTH FOR A GIVEN DELTA MASS
11252 * HERE THE FORMULA GIVEN BY KITAZOE IS USED
11253 REAL FUNCTION WIDTH(DMASS)
11257 AUX = 0.25*(DMASS**2-AVMASS**2-PIMASS**2)**2
11258 & -(AVMASS*PIMASS)**2
11259 IF (AUX .GT. 0.) THEN
11260 QAVAIL = SQRT(AUX / DMASS**2)
11264 WIDTH = 0.47 * QAVAIL**3 /
11265 & (PIMASS**2 * (1.+0.6*(QAVAIL/PIMASS)**2))
11269 ************************************
11270 SUBROUTINE ddp2(SRT,ISEED,PX,PY,PZ,DM1,PNX,
11271 & PNY,PNZ,DM2,PPX,PPY,PPZ,icou1)
11272 * PURPOSE : CALCULATE MOMENTUM OF PARTICLES IN THE FINAL SATAT FROM
11273 * THE PROCESS N+N--->D1+D2+PION
11274 * DATE : July 25, 1994
11275 * Generate the masses and momentum for particles in the NN-->DDpi process
11276 * for a given center of mass energy srt, the momenta are given in the center
11277 * of mass of the NN
11278 *****************************************
11279 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
11281 COMMON/RNDF77/NSEED
11288 * (1) GENGRATE THE MASS OF DELTA1 AND DELTA2 USING
11291 8 call Rmasdd(srt1,1.232,1.232,1.08,
11292 & 1.08,ISEED,1,dm1,dm2)
11294 * CONSTANTS FOR GENERATING THE LONGITUDINAL MOMENTUM
11295 * FOR ONE OF THE RESONANCES
11298 * (2) Generate the transverse momentum
11300 * (2.1) estimate the maximum transverse momentum
11301 PTMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11302 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2
11303 if(ptmax2.le.0)go to 8
11304 PTMAX=SQRT(PTMAX2)*1./3.
11305 7 PT=PTR(PTMAX,ISEED)
11306 * (3.1) THE MAXIMUM LONGITUDINAL MOMENTUM IS
11307 PZMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11308 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2-PT**2
11309 IF((PZMAX2.LT.0.).and.ntrym.le.100)then
11316 * (3.2) THE GENERATED X IS
11317 * THE DSTRIBUTION HAS A MAXIMUM AT X0=-V/(2*w), f(X0)=1.056
11321 if(abs(xmax).gt.0.26)then
11324 f00=1.+v*abs(xmax)+w*xmax**2
11326 9 X=XMAX*(1.-2.*RANART(NSEED))
11328 xratio=(1.+V*ABS(X)+W*X**2)/f00
11329 clin-8/17/00 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11330 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11333 * The x and y components of the deltA1
11334 fai=2.*pi*RANART(NSEED)
11337 * find the momentum of delta2 and pion
11338 * the energy of the delta1
11339 ek=sqrt(dm1**2+PT**2+Pz**2)
11340 * (1) Generate the momentum of the delta2 in the cms of delta2 and pion
11341 * the energy of the cms of DP
11347 * beta and gamma of the cms of delta2+pion
11351 ga=1./sqrt(1.-bx**2-by**2-bz**2)
11352 * the momentum of delta2 and pion in their cms frame
11354 pn2=((elnc**2+dm2**2-amp**2)/(2.*elnc))**2-dm2**2
11361 clin-10/25/02 get rid of argument usage mismatch in PTR():
11363 c PNT=PTR(0.33*PN,ISEED)
11364 PNT=PTR(xptr,ISEED)
11367 fain=2.*pi*RANART(NSEED)
11372 pnz=SIG*SQRT(pn**2-PNT**2)
11373 en=sqrt(dm2**2+pnx**2+pny**2+pnz**2)
11374 * (2) the momentum for the pion
11378 ep=sqrt(amp**2+ppx**2+ppy**2+ppz**2)
11379 * (3) for the delta2, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11380 PBETA = PnX*BX + PnY*By+ PnZ*Bz
11381 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
11382 Pnx = BX * TRANS0 + PnX
11383 Pny = BY * TRANS0 + PnY
11384 Pnz = BZ * TRANS0 + PnZ
11385 * (4) for the pion, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11386 if(ep.eq.0.)ep=1.E-09
11387 PBETA = PPX*BX + PPY*By+ PPZ*Bz
11388 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + EP )
11389 PPx = BX * TRANS0 + PPX
11390 PPy = BY * TRANS0 + PPY
11391 PPz = BZ * TRANS0 + PPZ
11394 ****************************************
11395 SUBROUTINE ddrho(SRT,ISEED,PX,PY,PZ,DM1,PNX,
11396 & PNY,PNZ,DM2,PPX,PPY,PPZ,amp,icou1)
11397 * PURPOSE : CALCULATE MOMENTUM OF PARTICLES IN THE FINAL SATAT FROM
11398 * THE PROCESS N+N--->D1+D2+rho
11399 * DATE : Nov.5, 1994
11400 * Generate the masses and momentum for particles in the NN-->DDrho process
11401 * for a given center of mass energy srt, the momenta are given in the center
11402 * of mass of the NN
11403 *****************************************
11404 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
11406 COMMON/RNDF77/NSEED
11413 * (1) GENGRATE THE MASS OF DELTA1 AND DELTA2 USING
11416 8 call Rmasdd(srt1,1.232,1.232,1.08,
11417 & 1.08,ISEED,1,dm1,dm2)
11419 * GENERATE THE MASS FOR THE RHO
11420 RHOMAX = SRT-DM1-DM2-0.02
11421 IF(RHOMAX.LE.0.and.ntrym.le.20)go to 8
11422 AMP=RHOMAS(RHOMAX,ISEED)
11423 * CONSTANTS FOR GENERATING THE LONGITUDINAL MOMENTUM
11424 * FOR ONE OF THE RESONANCES
11427 * (2) Generate the transverse momentum
11429 * (2.1) estimate the maximum transverse momentum
11430 PTMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11431 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2
11432 PTMAX=SQRT(PTMAX2)*1./3.
11433 7 PT=PTR(PTMAX,ISEED)
11434 * (3) GENGRATE THE LONGITUDINAL MOMENTUM FOR DM1
11435 * USING THE GIVEN DISTRIBUTION
11436 * (3.1) THE MAXIMUM LONGITUDINAL MOMENTUM IS
11437 PZMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11438 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2-PT**2
11439 IF((PZMAX2.LT.0.).and.ntrym.le.100)then
11446 * (3.2) THE GENERATED X IS
11447 * THE DSTRIBUTION HAS A MAXIMUM AT X0=-V/(2*w), f(X0)=1.056
11451 if(abs(xmax).gt.0.26)then
11454 f00=1.+v*abs(xmax)+w*xmax**2
11456 9 X=XMAX*(1.-2.*RANART(NSEED))
11458 xratio=(1.+V*ABS(X)+W*X**2)/f00
11459 clin-8/17/00 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11460 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11463 * The x and y components of the delta1
11464 fai=2.*pi*RANART(NSEED)
11467 * find the momentum of delta2 and rho
11468 * the energy of the delta1
11469 ek=sqrt(dm1**2+PT**2+Pz**2)
11470 * (1) Generate the momentum of the delta2 in the cms of delta2 and rho
11471 * the energy of the cms of Drho
11477 * beta and gamma of the cms of delta2 and rho
11481 ga=1./sqrt(1.-bx**2-by**2-bz**2)
11483 pn2=((elnc**2+dm2**2-amp**2)/(2.*elnc))**2-dm2**2
11490 clin-10/25/02 get rid of argument usage mismatch in PTR():
11492 c PNT=PTR(0.33*PN,ISEED)
11493 PNT=PTR(xptr,ISEED)
11496 fain=2.*pi*RANART(NSEED)
11501 pnz=SIG*SQRT(pn**2-PNT**2)
11502 en=sqrt(dm2**2+pnx**2+pny**2+pnz**2)
11503 * (2) the momentum for the rho
11507 ep=sqrt(amp**2+ppx**2+ppy**2+ppz**2)
11508 * (3) for the delta2, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11509 PBETA = PnX*BX + PnY*By+ PnZ*Bz
11510 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
11511 Pnx = BX * TRANS0 + PnX
11512 Pny = BY * TRANS0 + PnY
11513 Pnz = BZ * TRANS0 + PnZ
11514 * (4) for the rho, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11515 if(ep.eq.0.)ep=1.e-09
11516 PBETA = PPX*BX + PPY*By+ PPZ*Bz
11517 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + EP )
11518 PPx = BX * TRANS0 + PPX
11519 PPy = BY * TRANS0 + PPY
11520 PPz = BZ * TRANS0 + PPZ
11523 ****************************************
11524 SUBROUTINE pprho(SRT,ISEED,PX,PY,PZ,DM1,PNX,
11525 & PNY,PNZ,DM2,PPX,PPY,PPZ,amp,icou1)
11526 * PURPOSE : CALCULATE MOMENTUM OF PARTICLES IN THE FINAL SATAT FROM
11527 * THE PROCESS N+N--->N1+N2+rho
11528 * DATE : Nov.5, 1994
11529 * Generate the masses and momentum for particles in the NN--> process
11530 * for a given center of mass energy srt, the momenta are given in the center
11531 * of mass of the NN
11532 *****************************************
11533 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
11535 COMMON/RNDF77/NSEED
11545 * GENERATE THE MASS FOR THE RHO
11546 RHOMAX=SRT-DM1-DM2-0.02
11547 IF(RHOMAX.LE.0)THEN
11551 AMP=RHOMAS(RHOMAX,ISEED)
11552 * CONSTANTS FOR GENERATING THE LONGITUDINAL MOMENTUM
11553 * FOR ONE OF THE nucleons
11556 * (2) Generate the transverse momentum
11558 * (2.1) estimate the maximum transverse momentum
11559 PTMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11560 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2
11561 PTMAX=SQRT(PTMAX2)*1./3.
11562 7 PT=PTR(PTMAX,ISEED)
11563 * (3) GENGRATE THE LONGITUDINAL MOMENTUM FOR DM1
11564 * USING THE GIVEN DISTRIBUTION
11565 * (3.1) THE MAXIMUM LONGITUDINAL MOMENTUM IS
11566 PZMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11567 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2-PT**2
11569 IF((PZMAX2.LT.0.).and.ntrym.le.100)then
11576 * (3.2) THE GENERATED X IS
11577 * THE DSTRIBUTION HAS A MAXIMUM AT X0=-V/(2*w), f(X0)=1.056
11581 if(abs(xmax).gt.0.26)then
11584 f00=1.+v*abs(xmax)+w*xmax**2
11586 9 X=XMAX*(1.-2.*RANART(NSEED))
11588 xratio=(1.+V*ABS(X)+W*X**2)/f00
11589 clin-8/17/00 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11590 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11593 * The x and y components of the delta1
11594 fai=2.*pi*RANART(NSEED)
11597 * find the momentum of delta2 and rho
11598 * the energy of the delta1
11599 ek=sqrt(dm1**2+PT**2+Pz**2)
11600 * (1) Generate the momentum of the delta2 in the cms of delta2 and rho
11601 * the energy of the cms of Drho
11607 * beta and gamma of the cms of the two partciles
11611 ga=1./sqrt(1.-bx**2-by**2-bz**2)
11613 pn2=((elnc**2+dm2**2-amp**2)/(2.*elnc))**2-dm2**2
11620 clin-10/25/02 get rid of argument usage mismatch in PTR():
11622 c PNT=PTR(0.33*PN,ISEED)
11623 PNT=PTR(xptr,ISEED)
11626 fain=2.*pi*RANART(NSEED)
11631 pnz=SIG*SQRT(pn**2-PNT**2)
11632 en=sqrt(dm2**2+pnx**2+pny**2+pnz**2)
11633 * (2) the momentum for the rho
11637 ep=sqrt(amp**2+ppx**2+ppy**2+ppz**2)
11638 * (3) for the delta2, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11639 PBETA = PnX*BX + PnY*By+ PnZ*Bz
11640 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
11641 Pnx = BX * TRANS0 + PnX
11642 Pny = BY * TRANS0 + PnY
11643 Pnz = BZ * TRANS0 + PnZ
11644 * (4) for the rho, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11645 if(ep.eq.0.)ep=1.e-09
11646 PBETA = PPX*BX + PPY*By+ PPZ*Bz
11647 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + EP )
11648 PPx = BX * TRANS0 + PPX
11649 PPy = BY * TRANS0 + PPY
11650 PPz = BZ * TRANS0 + PPZ
11653 ***************************8
11654 ****************************************
11655 SUBROUTINE ppomga(SRT,ISEED,PX,PY,PZ,DM1,PNX,
11656 & PNY,PNZ,DM2,PPX,PPY,PPZ,icou1)
11657 * PURPOSE : CALCULATE MOMENTUM OF PARTICLES IN THE FINAL SATAT FROM
11658 * THE PROCESS N+N--->N1+N2+OMEGA
11659 * DATE : Nov.5, 1994
11660 * Generate the masses and momentum for particles in the NN--> process
11661 * for a given center of mass energy srt, the momenta are given in the center
11662 * of mass of the NN
11663 *****************************************
11664 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
11666 COMMON/RNDF77/NSEED
11676 * CONSTANTS FOR GENERATING THE LONGITUDINAL MOMENTUM
11677 * FOR ONE OF THE nucleons
11680 * (2) Generate the transverse momentum
11682 * (2.1) estimate the maximum transverse momentum
11683 PTMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11684 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2
11685 PTMAX=SQRT(PTMAX2)*1./3.
11686 7 PT=PTR(PTMAX,ISEED)
11687 * (3) GENGRATE THE LONGITUDINAL MOMENTUM FOR DM1
11688 * USING THE GIVEN DISTRIBUTION
11689 * (3.1) THE MAXIMUM LONGITUDINAL MOMENTUM IS
11690 PZMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11691 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2-PT**2
11693 IF((PZMAX2.LT.0.).and.ntrym.le.100)then
11700 * (3.2) THE GENERATED X IS
11701 * THE DSTRIBUTION HAS A MAXIMUM AT X0=-V/(2*w), f(X0)=1.056
11705 if(abs(xmax).gt.0.26)then
11708 f00=1.+v*abs(xmax)+w*xmax**2
11710 9 X=XMAX*(1.-2.*RANART(NSEED))
11712 xratio=(1.+V*ABS(X)+W*X**2)/f00
11713 clin-8/17/00 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11714 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11717 * The x and y components of the delta1
11718 fai=2.*pi*RANART(NSEED)
11721 * find the momentum of delta2 and rho
11722 * the energy of the delta1
11723 ek=sqrt(dm1**2+PT**2+Pz**2)
11724 * (1) Generate the momentum of the delta2 in the cms of delta2 and rho
11725 * the energy of the cms of Drho
11734 ga=1./sqrt(1.-bx**2-by**2-bz**2)
11736 pn2=((elnc**2+dm2**2-amp**2)/(2.*elnc))**2-dm2**2
11743 clin-10/25/02 get rid of argument usage mismatch in PTR():
11745 c PNT=PTR(0.33*PN,ISEED)
11746 PNT=PTR(xptr,ISEED)
11749 fain=2.*pi*RANART(NSEED)
11754 pnz=SIG*SQRT(pn**2-PNT**2)
11755 en=sqrt(dm2**2+pnx**2+pny**2+pnz**2)
11756 * (2) the momentum for the rho
11760 ep=sqrt(amp**2+ppx**2+ppy**2+ppz**2)
11761 * (3) for the delta2, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11762 PBETA = PnX*BX + PnY*By+ PnZ*Bz
11763 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
11764 Pnx = BX * TRANS0 + PnX
11765 Pny = BY * TRANS0 + PnY
11766 Pnz = BZ * TRANS0 + PnZ
11767 * (4) for the rho, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11768 if(ep.eq.0.)ep=1.E-09
11769 PBETA = PPX*BX + PPY*By+ PPZ*Bz
11770 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + EP )
11771 PPx = BX * TRANS0 + PPX
11772 PPy = BY * TRANS0 + PPY
11773 PPz = BZ * TRANS0 + PPZ
11776 ***************************8
11777 ***************************8
11778 * DELTA MASS GENERATOR
11779 REAL FUNCTION RMASS(DMAX,ISEED)
11780 COMMON/RNDF77/NSEED
11784 * THE MINIMUM MASS FOR DELTA
11786 * Delta(1232) production
11787 IF(DMAX.LT.1.232) THEN
11792 IF(FM.EQ.0.)FM=1.E-06
11794 10 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
11796 IF((RANART(NSEED) .GT. FDELTA(DM)/FM).AND.
11797 1 (NTRY1.LE.10)) GOTO 10
11798 clin-2/26/03 sometimes Delta mass can reach very high values (e.g. 15.GeV),
11799 c thus violating the thresh of the collision which produces it
11800 c and leads to large violation of energy conservation.
11801 c To limit the above, limit the Delta mass below a certain value
11802 c (here taken as its central value + 2* B-W fullwidth):
11803 if(dm.gt.1.47) goto 10
11809 *------------------------------------------------------------------
11810 * THE Breit Wigner FORMULA
11811 REAL FUNCTION FRHO(DMASS)
11815 FD=0.25*wid**2/((DMASS-AM0)**2+0.25*WID**2)
11819 ***************************8
11820 * RHO MASS GENERATOR
11821 REAL FUNCTION RHOMAS(DMAX,ISEED)
11822 COMMON/RNDF77/NSEED
11826 * THE MINIMUM MASS FOR DELTA
11828 * RHO(770) production
11829 IF(DMAX.LT.0.77) THEN
11834 IF(FM.EQ.0.)FM=1.E-06
11836 10 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
11838 IF((RANART(NSEED) .GT. FRHO(DM)/FM).AND.
11839 1 (NTRY1.LE.10)) GOTO 10
11840 clin-2/26/03 limit the rho mass below a certain value
11841 c (here taken as its central value + 2* B-W fullwidth):
11842 if(dm.gt.1.07) goto 10
11847 ******************************************
11849 c real*4 function X2pi(srt)
11850 real function X2pi(srt)
11851 * This function contains the experimental
11852 c total pp-pp+pi(+)pi(-) Xsections *
11853 * srt = DSQRT(s) in GeV *
11854 * xsec = production cross section in mb *
11855 * earray = EXPerimental table with proton momentum in GeV/c *
11856 * xarray = EXPerimental table with cross sections in mb (curve to guide eye)*
11858 ******************************************
11859 c real*4 xarray(15), earray(15)
11860 real xarray(15), earray(15)
11862 data earray /2.23,2.81,3.67,4.0,4.95,5.52,5.97,6.04,
11863 &6.6,6.9,7.87,8.11,10.01,16.0,19./
11864 data xarray /1.22,2.51,2.67,2.95,2.96,2.84,2.8,3.2,
11865 &2.7,3.0,2.54,2.46,2.4,1.66,1.5/
11868 * 1.Calculate p(lab) from srt [GeV]
11869 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
11870 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
11872 if(srt.le.2.2)return
11873 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
11874 if (plab .lt. earray(1)) then
11879 * 2.Interpolate double logarithmically to find sigma(srt)
11882 if (earray(ie) .eq. plab) then
11885 else if (earray(ie) .gt. plab) then
11886 ymin = alog(xarray(ie-1))
11887 ymax = alog(xarray(ie))
11888 xmin = alog(earray(ie-1))
11889 xmax = alog(earray(ie))
11890 X2pi = exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
11897 ******************************************
11898 * for pp-->pn+pi(+)pi(+)pi(-)
11899 c real*4 function X3pi(srt)
11900 real function X3pi(srt)
11901 * This function contains the experimental pp->pp+3pi cross sections *
11902 * srt = DSQRT(s) in GeV *
11903 * xsec = production cross section in mb *
11904 * earray = EXPerimental table with proton energies in MeV *
11905 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
11907 ******************************************
11908 c real*4 xarray(12), earray(12)
11909 real xarray(12), earray(12)
11911 data xarray /0.02,0.4,1.15,1.60,2.19,2.85,2.30,
11912 &3.10,2.47,2.60,2.40,1.70/
11913 data earray /2.23,2.81,3.67,4.00,4.95,5.52,5.97,
11914 &6.04,6.60,6.90,10.01,19./
11917 * 1.Calculate p(lab) from srt [GeV]
11918 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
11919 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
11921 if(srt.le.2.3)return
11922 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
11923 if (plab .lt. earray(1)) then
11928 * 2.Interpolate double logarithmically to find sigma(srt)
11931 if (earray(ie) .eq. plab) then
11934 else if (earray(ie) .gt. plab) then
11935 ymin = alog(xarray(ie-1))
11936 ymax = alog(xarray(ie))
11937 xmin = alog(earray(ie-1))
11938 xmax = alog(earray(ie))
11939 X3pi= exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
11946 ******************************************
11947 ******************************************
11948 * for pp-->pp+pi(+)pi(-)pi(0)
11949 c real*4 function X33pi(srt)
11950 real function X33pi(srt)
11951 * This function contains the experimental pp->pp+3pi cross sections *
11952 * srt = DSQRT(s) in GeV *
11953 * xsec = production cross section in mb *
11954 * earray = EXPerimental table with proton energies in MeV *
11955 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
11957 ******************************************
11958 c real*4 xarray(12), earray(12)
11959 real xarray(12), earray(12)
11961 data xarray /0.02,0.22,0.74,1.10,1.76,1.84,2.20,
11962 &2.40,2.15,2.60,2.30,1.70/
11963 data earray /2.23,2.81,3.67,4.00,4.95,5.52,5.97,
11964 &6.04,6.60,6.90,10.01,19./
11968 if(srt.le.2.3)return
11969 * 1.Calculate p(lab) from srt [GeV]
11970 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
11971 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
11972 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
11973 if (plab .lt. earray(1)) then
11978 * 2.Interpolate double logarithmically to find sigma(srt)
11981 if (earray(ie) .eq. plab) then
11984 else if (earray(ie) .gt. plab) then
11985 ymin = alog(xarray(ie-1))
11986 ymax = alog(xarray(ie))
11987 xmin = alog(earray(ie-1))
11988 xmax = alog(earray(ie))
11989 x33pi= exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
11996 ******************************************
11997 c REAL*4 FUNCTION X4pi(SRT)
11998 REAL FUNCTION X4pi(SRT)
12000 * CROSS SECTION FOR NN-->DD+rho PROCESS
12001 * *****************************
12013 * cross section for two resonance pp-->DD+DN*+N*N*
12015 * cross section for pp-->pp+spi
12016 xpp3pi=3.*(x3pi(es)+x33pi(es))
12017 * cross section for pp-->pD+ and nD++
12018 pps1=sigma(es,1,1,0)+0.5*sigma(es,1,1,1)
12019 pps2=1.5*sigma(es,1,1,1)
12020 ppsngl=pps1+pps2+s1535(es)
12021 * CROSS SECTION FOR KAON PRODUCTION from the four channels
12029 if(es.le.t1nlk)go to 333
12030 pmnlk2=(es**2-t1nlk**2)*(es**2-t2nlk**2)/(4.*es**2)
12036 if(es.le.t1dlk)go to 333
12037 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
12043 if(es.le.t1nsk)go to 333
12044 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
12046 xk2=ppk1(es)+ppk0(es)
12050 if(es.le.t1dsk)go to 333
12051 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
12053 xk4=ppk1(es)+ppk0(es)
12054 * THE TOTAL KAON+ AND KAON0 PRODUCTION CROSS SECTION IS THEN
12055 333 XKAON=3.*(xk1+xk2+xk3+xk4)
12056 * cross section for pp-->DD+rho
12057 x4pi=pp1(es)-ppsngl-xpp2pi-xpp3pi-XKAON
12058 if(x4pi.le.0)x4pi=1.E-06
12062 ******************************************
12063 * for pp-->inelastic
12064 c real*4 function pp1(srt)
12065 real function pp1(srt)
12067 * srt = DSQRT(s) in GeV *
12068 * xsec = production cross section in mb *
12069 * earray = EXPerimental table with proton energies in MeV *
12070 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
12072 ******************************************
12075 * 1.Calculate p(lab) from srt [GeV]
12076 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
12077 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
12078 plab2=((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2
12079 IF(PLAB2.LE.0)RETURN
12083 if ((plab .lt. pmin).or.(plab.gt.pmax)) then
12093 pp1 = a+b*(plab**an)+c*(alog(plab))**2
12094 if(pp1.le.0)pp1=0.0
12097 ******************************************
12099 c real*4 function pp2(srt)
12100 real function pp2(srt)
12102 * srt = DSQRT(s) in GeV *
12103 * xsec = production cross section in mb *
12104 * earray = EXPerimental table with proton energies in MeV *
12105 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
12107 ******************************************
12109 * 1.Calculate p(lab) from srt [GeV]
12110 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
12111 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
12112 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12115 if(plab.gt.pmax)then
12119 if(plab .lt. pmin)then
12129 pp2 = a+b*(plab**an)+c*(alog(plab))**2+d*alog(plab)
12134 ******************************************
12136 c real*4 function ppt(srt)
12137 real function ppt(srt)
12139 * srt = DSQRT(s) in GeV *
12140 * xsec = production cross section in mb *
12141 * earray = EXPerimental table with proton energies in MeV *
12142 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
12144 ******************************************
12146 * 1.Calculate p(lab) from srt [GeV]
12147 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
12148 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
12149 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12152 if ((plab .lt. pmin).or.(plab.gt.pmax)) then
12162 ppt = a+b*(plab**an)+c*(alog(plab))**2+d*alog(plab)
12163 if(ppt.le.0)ppt=0.0
12167 *************************
12168 * cross section for N*(1535) production in PP collisions
12170 * LB1,LB2 ARE THE LABLES OF THE TWO COLLIDING PARTICLES
12171 * SRT IS THE CMS ENERGY
12172 * X1535 IS THE N*(1535) PRODUCTION CROSS SECTION
12173 * NOTE THAT THE N*(1535) PRODUCTION CROSS SECTION IS 2 TIMES THE ETA
12174 * PRODUCTION CROSS SECTION
12175 * DATE: Aug. 1 , 1994
12176 * ********************************
12177 real function s1535(SRT)
12181 IF(SRT.LE.S0)RETURN
12182 S1535=2.*0.102*(SRT-S0)/(0.058+(SRT-S0)**2)
12185 ****************************************
12186 * generate a table for pt distribution for
12188 * THE PROCESS N+N--->N+N+PION
12189 * DATE : July 11, 1994
12190 *****************************************
12191 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
12204 *********************************
12205 real function ptdis(x)
12207 * NUCLEON TRANSVERSE MOMENTUM DISTRIBUTION AT HIGH ENERGIES
12208 * DATE: Aug. 11, 1994
12209 *********************************
12215 ptdis=1./(2.*b)*(1.-exp(-b*x**2))-c/d*x*exp(-d*x)
12216 1 -c/D**2*(exp(-d*x)-1.)
12219 *****************************
12220 subroutine ppxS(lb1,lb2,srt,ppsig,spprho,ipp)
12221 * purpose: this subroutine gives the cross section for pion+pion
12222 * elastic collision
12224 * input: lb1,lb2 and srt are the labels and srt for I1 and I2
12225 * output: ppsig: pp xsection
12226 * ipp: label for the pion+pion channel
12227 * Ipp=0 NOTHING HAPPEND
12228 * 1 for Pi(+)+PI(+) DIRECT
12229 * 2 PI(+)+PI(0) FORMING RHO(+)
12230 * 3 PI(+)+PI(-) FORMING RHO(0)
12231 * 4 PI(0)+PI(O) DIRECT
12232 * 5 PI(0)+PI(-) FORMING RHO(-)
12233 * 6 PI(-)+PI(-) DIRECT
12234 * reference: G.F. Bertsch, Phys. Rev. D37 (1988) 1202.
12235 * date : Aug 29, 1994
12236 *****************************
12237 parameter (amp=0.14,pi=3.1415926)
12246 IF(SRT.LE.0.3)RETURN
12247 q=sqrt((srt/2)**2-amp**2)
12251 trho=0.095*q*(q/amp/(1.+(q/erho)**2))**2
12257 d00=atan(tsigma/2./esi)
12263 d11=atan(trho/2./erh)
12265 s0=8.*pi*sin(d00)**2/q**2
12266 s1=8*pi*3*sin(d11)**2/q**2
12267 s2=8*pi*5*sin(d20)**2/q**2
12272 C ppXS=s0/9.+s1/3.+s2*0.56
12273 C if(ppxs.le.0)ppxs=0.00001
12276 IF(LB1.EQ.5.AND.LB2.EQ.5)THEN
12282 IF((LB1.EQ.5.AND.LB2.EQ.4).OR.(LB1.EQ.4.AND.LB2.EQ.5))THEN
12288 IF((LB1.EQ.5.AND.LB2.EQ.3).OR.(LB1.EQ.3.AND.LB2.EQ.5))THEN
12290 PPSIG=S2/6.+S1/2.+S0/3.
12294 IF(LB1.EQ.4.AND.LB2.EQ.4)THEN
12296 PPSIG=2*S2/3.+S0/3.
12300 IF((LB1.EQ.4.AND.LB2.EQ.3).OR.(LB1.EQ.3.AND.LB2.EQ.4))THEN
12306 IF(LB1.EQ.3.AND.LB2.EQ.3)THEN
12312 **********************************
12313 * elementary kaon production cross sections
12314 * from the CERN data book
12315 * date: Sept.2, 1994
12317 c real*4 function pplpk(srt)
12318 real function pplpk(srt)
12320 * srt = DSQRT(s) in GeV *
12321 * xsec = production cross section in mb *
12322 * earray = EXPerimental table with proton energies in MeV *
12323 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
12325 ******************************************
12327 * 1.Calculate p(lab) from srt [GeV]
12328 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
12329 * find the center of mass energy corresponding to the given pm as
12330 * if Lambda+N+K are produced
12332 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12335 if(plab.gt.pmax)then
12339 if(plab .lt. pmin)then
12348 pplpk = a+b*(plab**an)+c*(alog(plab))**2
12349 if(pplpk.le.0)pplpk=0
12353 ******************************************
12354 * for pp-->pSigma+K0
12355 c real*4 function ppk0(srt)
12356 real function ppk0(srt)
12357 * srt = DSQRT(s) in GeV *
12358 * xsec = production cross section in mb *
12360 ******************************************
12361 c real*4 xarray(7), earray(7)
12362 real xarray(7), earray(7)
12364 data xarray /0.030,0.025,0.025,0.026,0.02,0.014,0.06/
12365 data earray /3.67,4.95,5.52,6.05,6.92,7.87,10./
12368 * 1.Calculate p(lab) from srt [GeV]
12369 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
12370 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
12372 if(srt.le.2.63)return
12373 if(srt.gt.4.54)then
12377 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12378 if (plab .lt. earray(1)) then
12383 * 2.Interpolate double logarithmically to find sigma(srt)
12386 if (earray(ie) .eq. plab) then
12389 else if (earray(ie) .gt. plab) then
12390 ymin = alog(xarray(ie-1))
12391 ymax = alog(xarray(ie))
12392 xmin = alog(earray(ie-1))
12393 xmax = alog(earray(ie))
12394 ppk0 = exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
12402 ******************************************
12403 * for pp-->pSigma0K+
12404 c real*4 function ppk1(srt)
12405 real function ppk1(srt)
12406 * srt = DSQRT(s) in GeV *
12407 * xsec = production cross section in mb *
12409 ******************************************
12410 c real*4 xarray(7), earray(7)
12411 real xarray(7), earray(7)
12413 data xarray /0.013,0.025,0.016,0.012,0.017,0.029,0.025/
12414 data earray /3.67,4.95,5.52,5.97,6.05,6.92,7.87/
12417 * 1.Calculate p(lab) from srt [GeV]
12418 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
12419 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
12421 if(srt.le.2.63)return
12422 if(srt.gt.4.08)then
12426 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12427 if (plab .lt. earray(1)) then
12432 * 2.Interpolate double logarithmically to find sigma(srt)
12435 if (earray(ie) .eq. plab) then
12438 else if (earray(ie) .gt. plab) then
12439 ymin = alog(xarray(ie-1))
12440 ymax = alog(xarray(ie))
12441 xmin = alog(earray(ie-1))
12442 xmax = alog(earray(ie))
12443 ppk1 = exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
12451 **********************************
12454 SUBROUTINE CRPN(PX,PY,PZ,SRT,I1,I2,
12455 & IBLOCK,xkaon0,xkaon,Xphi,xphin)
12457 * DEALING WITH PION+N-->L/S+KAON PROCESS AND PION PRODUCTION *
12461 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
12462 * SRT - SQRT OF S *
12463 * IBLOCK - THE INFORMATION BACK *
12464 * 7 PION+N-->L/S+KAON
12465 * iblock - 77 pion+N-->Delta+pion
12466 * iblock - 78 pion+N-->Delta+RHO
12467 * iblock - 79 pion+N-->Delta+OMEGA
12468 * iblock - 222 pion+N-->Phi
12469 **********************************
12470 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
12471 1 AMP=0.93828,AP1=0.13496,APHI=1.020,
12472 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
12473 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
12474 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
12475 COMMON /AA/ R(3,MAXSTR)
12477 COMMON /BB/ P(3,MAXSTR)
12479 COMMON /CC/ E(MAXSTR)
12481 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
12483 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
12485 COMMON/RNDF77/NSEED
12495 if(lb(i1).lt.0 .or. lb(i2).lt.0) ianti=1
12496 if(xkaon0/(xkaon+Xphi).ge.x1)then
12498 *-----------------------------------------------------------------------
12500 if(ianti .eq. 1)iblock=-7
12502 * RELABLE PARTICLES FOR THE PROCESS PION+n-->LAMBDA K OR SIGMA k
12503 * DECIDE LAMBDA OR SIGMA PRODUCTION, AND TO CALCULATE THE NEW
12504 * MOMENTA FOR PARTICLES IN THE FINAL STATE.
12506 IF(PNLKA(SRT)/(PNLKA(SRT)
12507 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
12508 IF(E(I1).LE.0.2)THEN
12515 LB(I2) = 15 + int(3 * RANART(NSEED))
12518 if(ianti .eq. 1)then
12529 LB(I1) = 15 + int(3 * RANART(NSEED))
12532 if(ianti .eq. 1)then
12540 * to gererate the momentum for the kaon and L/S
12541 elseif(Xphi/(xkaon+Xphi).ge.x1)then
12543 if(xphin/Xphi .ge. RANART(NSEED))then
12544 LB(I1)= 1+int(2*RANART(NSEED))
12547 LB(I1)= 6+int(4*RANART(NSEED))
12550 c !! at present only baryon
12551 if(ianti .eq. 1)lb(i1)=-lb(i1)
12558 * CHECK WHAT KIND OF PION PRODUCTION PROCESS HAS HAPPENED
12559 IF(RANART(NSEED).LE.TWOPI(SRT)/
12560 & (TWOPI(SRT)+THREPI(SRT)+FOURPI(SRT)))THEN
12563 IF(THREPI(SRT)/(THREPI(SRT)+FOURPI(SRT)).
12564 & GT.RANART(NSEED))THEN
12571 * pion production (Delta+pion/rho/omega in the final state)
12572 * generate the mass of the delta resonance
12574 * relable the particles
12575 if(iblock.eq.77)then
12576 * GENERATE THE DELTA MASS
12578 dm=rmass(dmax,iseed)
12579 * pion+baryon-->pion+delta
12580 * Relable particles, I1 is assigned to the Delta and I2 is assigned to the
12582 *(1) for pi(+)+p-->D(+)+P(+) OR D(++)+p(0)
12583 if( ((lb(i1).eq.1.and.lb(i2).eq.5).
12584 & or.(lb(i1).eq.5.and.lb(i2).eq.1))
12585 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.3).
12586 & or.(lb(i1).eq.3.and.lb(i2).eq.-1)) )then
12587 if(iabs(lb(i1)).eq.1)then
12620 *(2) for pi(-)+p-->D(0)+P(0) OR D(+)+p(-),or D(-)+p(+)
12621 if( ((lb(i1).eq.1.and.lb(i2).eq.3).
12622 & or.(lb(i1).eq.3.and.lb(i2).eq.1))
12623 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.5).
12624 & or.(lb(i1).eq.5.and.lb(i2).eq.-1)) )then
12625 if(iabs(lb(i1)).eq.1)then
12634 if(X2.gt.0.33.and.X2.le.0.67)then
12657 if(X2.gt.0.33.and.X2.le.0.67)then
12673 *(3) for pi(+)+n-->D(+)+Pi(0) OR D(++)+p(-) or D(0)+pi(+)
12674 if( ((lb(i1).eq.2.and.lb(i2).eq.5).
12675 & or.(lb(i1).eq.5.and.lb(i2).eq.2))
12676 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.3).
12677 & or.(lb(i1).eq.3.and.lb(i2).eq.-2)) )then
12678 if(iabs(lb(i1)).eq.2)then
12687 if(X2.gt.0.33.and.X2.le.0.67)then
12710 if(X2.gt.0.33.and.X2.le.0.67)then
12726 *(4) for pi(0)+p-->D(+)+Pi(0) OR D(++)+p(-) or D(0)+pi(+)
12727 if((iabs(lb(i1)).eq.1.and.lb(i2).eq.4).
12728 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.1))then
12729 if(iabs(lb(i1)).eq.1)then
12738 if(X2.gt.0.33.and.X2.le.0.67)then
12761 if(X2.gt.0.33.and.X2.le.0.67)then
12777 *(5) for pi(-)+n-->D(-)+P(0) OR D(0)+p(-)
12778 if( ((lb(i1).eq.2.and.lb(i2).eq.3).
12779 & or.(lb(i1).eq.3.and.lb(i2).eq.2))
12780 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.5).
12781 & or.(lb(i1).eq.5.and.lb(i2).eq.-2)) )then
12782 if(iabs(lb(i1)).eq.2)then
12814 *(6) for pi(0)+n-->D(0)+P(0), D(-)+p(+) or D(+)+p(-)
12815 if((iabs(lb(i1)).eq.2.and.lb(i2).eq.4).
12816 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.2))then
12817 if(iabs(lb(i1)).eq.2)then
12826 IF(X2.LE.0.67.AND.X2.GT.0.33)THEN
12849 IF(X2.LE.0.67.AND.X2.GT.0.33)THEN
12866 if(iblock.eq.78)then
12867 call Rmasdd(srt,1.232,0.77,1.08,
12868 & 0.28,ISEED,4,dm,ameson)
12870 * pion+baryon-->Rho+delta
12871 *(1) for pi(+)+p-->D(+)+rho(+) OR D(++)+rho(0)
12872 if( ((lb(i1).eq.1.and.lb(i2).eq.5).
12873 & or.(lb(i1).eq.5.and.lb(i2).eq.1))
12874 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.3).
12875 & or.(lb(i1).eq.3.and.lb(i2).eq.-1)) )then
12876 if(iabs(lb(i1)).eq.1)then
12908 *(2) for pi(-)+p-->D(+)+rho(-) OR D(0)+rho(0) or D(-)+rho(+)
12909 if( ((lb(i1).eq.1.and.lb(i2).eq.3).
12910 & or.(lb(i1).eq.3.and.lb(i2).eq.1))
12911 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.5).
12912 & or.(lb(i1).eq.5.and.lb(i2).eq.-1)) )then
12913 if(iabs(lb(i1)).eq.1)then
12922 if(X2.gt.0.33.and.X2.le.0.67)then
12945 if(X2.gt.0.33.and.X2.le.0.67)then
12961 *(3) for pi(+)+n-->D(+)+rho(0) OR D(++)+rho(-) or D(0)+rho(+)
12962 if( ((lb(i1).eq.2.and.lb(i2).eq.5).
12963 & or.(lb(i1).eq.5.and.lb(i2).eq.2))
12964 & .OR.((lb(i1).eq.-2.and.lb(i2).eq.3).
12965 & or.(lb(i1).eq.3.and.lb(i2).eq.-2)) )then
12966 if(iabs(lb(i1)).eq.2)then
12975 if(X2.gt.0.33.and.X2.le.0.67)then
12998 if(X2.gt.0.33.and.X2.le.0.67)then
13014 *(4) for pi(0)+p-->D(+)+rho(0) OR D(++)+rho(-) or D(0)+rho(+)
13015 if((iabs(lb(i1)).eq.1.and.lb(i2).eq.4).
13016 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.1))then
13017 if(iabs(lb(i1)).eq.1)then
13026 if(X2.gt.0.33.and.X2.le.0.67)then
13049 if(X2.gt.0.33.and.X2.le.0.67)then
13065 *(5) for pi(-)+n-->D(-)+rho(0) OR D(0)+rho(-)
13066 if( ((lb(i1).eq.2.and.lb(i2).eq.3).
13067 & or.(lb(i1).eq.3.and.lb(i2).eq.2))
13068 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.5).
13069 & or.(lb(i1).eq.5.and.lb(i2).eq.-2)) )then
13070 if(iabs(lb(i1)).eq.2)then
13102 *(6) for pi(0)+n-->D(0)+rho(0), D(-)+rho(+) and D(+)+rho(-)
13103 if((iabs(lb(i1)).eq.2.and.lb(i2).eq.4).
13104 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.2))then
13105 if(iabs(lb(i1)).eq.2)then
13114 if(x2.gt.0.33.and.x2.le.0.67)then
13136 if(x2.le.0.67.and.x2.gt.0.33)then
13152 if(iblock.eq.79)then
13154 * GENERATE THE DELTA MASS
13155 dmax=srt-0.782-0.02
13156 dm=rmass(dmax,iseed)
13157 * pion+baryon-->omega+delta
13158 *(1) for pi(+)+p-->D(++)+omega(0)
13159 if( ((lb(i1).eq.1.and.lb(i2).eq.5).
13160 & or.(lb(i1).eq.5.and.lb(i2).eq.1))
13161 & .OR.((lb(i1).eq.-1.and.lb(i2).eq.3).
13162 & or.(lb(i1).eq.3.and.lb(i2).eq.-1)) )then
13163 if(iabs(lb(i1)).eq.1)then
13179 *(2) for pi(-)+p-->D(0)+omega(0)
13180 if( ((lb(i1).eq.1.and.lb(i2).eq.3).
13181 & or.(lb(i1).eq.3.and.lb(i2).eq.1))
13182 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.5).
13183 & or.(lb(i1).eq.5.and.lb(i2).eq.-1)) )then
13184 if(iabs(lb(i1)).eq.1)then
13200 *(3) for pi(+)+n-->D(+)+omega(0)
13201 if( ((lb(i1).eq.2.and.lb(i2).eq.5).
13202 & or.(lb(i1).eq.5.and.lb(i2).eq.2))
13203 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.3).
13204 & or.(lb(i1).eq.3.and.lb(i2).eq.-2)) )then
13205 if(iabs(lb(i1)).eq.2)then
13221 *(4) for pi(0)+p-->D(+)+omega(0)
13222 if((iabs(lb(i1)).eq.1.and.lb(i2).eq.4).
13223 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.1))then
13224 if(iabs(lb(i1)).eq.1)then
13240 *(5) for pi(-)+n-->D(-)+omega(0)
13241 if( ((lb(i1).eq.2.and.lb(i2).eq.3).
13242 & or.(lb(i1).eq.3.and.lb(i2).eq.2))
13243 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.5).
13244 & or.(lb(i1).eq.5.and.lb(i2).eq.-2)) )then
13245 if(iabs(lb(i1)).eq.2)then
13260 *(6) for pi(0)+n-->D(0)+omega(0)
13261 if((iabs(lb(i1)).eq.2.and.lb(i2).eq.4).
13262 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.2))then
13263 if(iabs(lb(i1)).eq.2)then
13282 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
13285 if(ii .eq. i2)jj = i1
13286 if(iblock .eq. 77)then
13287 if(lb(jj).eq.3)then
13289 elseif(lb(jj).eq.5)then
13292 elseif(iblock .eq. 78)then
13293 if(lb(jj).eq.25)then
13295 elseif(lb(jj).eq.27)then
13301 *-----------------------------------------------------------------------
13302 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
13303 * ENERGY CONSERVATION
13304 50 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
13305 1 - 4.0 * (EM1*EM2)**2
13306 IF(PR2.LE.0.)PR2=0.00000001
13307 PR=SQRT(PR2)/(2.*SRT)
13308 * here we use the same transverse momentum distribution as for
13309 * pp collisions, it might be necessary to use a different distribution
13311 clin-10/25/02 get rid of argument usage mismatch in PTR():
13313 c cc1=ptr(0.33*pr,iseed)
13314 cc1=ptr(xptr,iseed)
13317 c1=sqrt(pr**2-cc1**2)/pr
13318 * C1 = 1.0 - 2.0 * RANART(NSEED)
13319 T1 = 2.0 * PI * RANART(NSEED)
13320 S1 = SQRT( 1.0 - C1**2 )
13323 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
13328 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
13331 **********************************
13334 SUBROUTINE CREN(PX,PY,PZ,SRT,I1,I2,IBLOCK)
13336 * DEALING WITH ETA+N-->L/S+KAON PROCESS *
13340 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
13341 * SRT - SQRT OF S *
13342 * IBLOCK - THE INFORMATION BACK *
13343 * 7 ETA+N-->L/S+KAON
13344 **********************************
13345 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
13346 1 AMP=0.93828,AP1=0.13496,
13347 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
13348 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
13349 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
13350 COMMON /AA/ R(3,MAXSTR)
13352 COMMON /BB/ P(3,MAXSTR)
13354 COMMON /CC/ E(MAXSTR)
13356 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
13358 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
13360 COMMON/RNDF77/NSEED
13370 if(lb(i1).lt.0 .or. lb(i2).lt.0)then
13374 * RELABLE PARTICLES FOR THE PROCESS eta+n-->LAMBDA K OR SIGMA k
13375 * DECIDE LAMBDA OR SIGMA PRODUCTION, AND TO CALCULATE THE NEW
13376 * MOMENTA FOR PARTICLES IN THE FINAL STATE.
13378 IF(PNLKA(SRT)/(PNLKA(SRT)
13379 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
13380 IF(E(I1).LE.0.6)THEN
13387 LB(I2) = 15 + int(3 * RANART(NSEED))
13390 if(ianti .eq. 1)then
13401 LB(I1) = 15 + int(3 * RANART(NSEED))
13404 if(ianti .eq. 1)then
13411 *-----------------------------------------------------------------------
13412 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
13413 * ENERGY CONSERVATION
13414 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
13415 1 - 4.0 * (EM1*EM2)**2
13416 IF(PR2.LE.0.)PR2=1.e-09
13417 PR=SQRT(PR2)/(2.*SRT)
13418 C1 = 1.0 - 2.0 * RANART(NSEED)
13419 T1 = 2.0 * PI * RANART(NSEED)
13420 S1 = SQRT( 1.0 - C1**2 )
13423 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
13427 * FOR THE ISOTROPIC DISTRIBUTION THERE IS NO NEED TO ROTATE
13430 **********************************
13433 c SUBROUTINE Crdir(PX,PY,PZ,SRT,I1,I2)
13434 SUBROUTINE Crdir(PX,PY,PZ,SRT,I1,I2,IBLOCK)
13436 * DEALING WITH pion+N-->pion+N PROCESS *
13440 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
13441 * SRT - SQRT OF S *
13442 * IBLOCK - THE INFORMATION BACK *
13444 **********************************
13445 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
13446 1 AMP=0.93828,AP1=0.13496,
13447 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
13448 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
13449 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
13450 COMMON /AA/ R(3,MAXSTR)
13452 COMMON /BB/ P(3,MAXSTR)
13454 COMMON /CC/ E(MAXSTR)
13456 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
13458 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
13460 COMMON/RNDF77/NSEED
13471 *-----------------------------------------------------------------------
13472 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
13473 * ENERGY CONSERVATION
13474 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
13475 1 - 4.0 * (EM1*EM2)**2
13476 IF(PR2.LE.0.)PR2=1.e-09
13477 PR=SQRT(PR2)/(2.*SRT)
13479 clin-10/25/02 get rid of argument usage mismatch in PTR():
13481 c cc1=ptr(0.33*pr,iseed)
13482 cc1=ptr(xptr,iseed)
13485 c1=sqrt(pr**2-cc1**2)/pr
13486 T1 = 2.0 * PI * RANART(NSEED)
13487 S1 = SQRT( 1.0 - C1**2 )
13490 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
13494 * ROTATE the momentum
13495 call rotate(px0,py0,pz0,px,py,pz)
13498 **********************************
13501 SUBROUTINE CRPD(PX,PY,PZ,SRT,I1,I2,
13502 & IBLOCK,xkaon0,xkaon,Xphi,xphin)
13504 * DEALING WITH PION+D(N*)-->PION +N OR
13505 * L/S+KAON PROCESS *
13509 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
13510 * SRT - SQRT OF S *
13511 * IBLOCK - THE INFORMATION BACK *
13512 * 7 PION+D(N*)-->L/S+KAON
13513 * iblock - 80 pion+D(N*)-->pion+N
13514 * iblock - 81 RHO+D(N*)-->PION+N
13515 * iblock - 82 OMEGA+D(N*)-->PION+N
13516 * 222 PION+D --> PHI
13517 **********************************
13518 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
13519 1 AMP=0.93828,AP1=0.13496,APHI=1.020,
13520 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
13521 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
13522 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
13523 COMMON /AA/ R(3,MAXSTR)
13525 COMMON /BB/ P(3,MAXSTR)
13527 COMMON /CC/ E(MAXSTR)
13529 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
13531 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
13533 COMMON/RNDF77/NSEED
13543 if(lb(i1).lt.0 .or. lb(i2).lt.0)ianti=1
13544 if(xkaon0/(xkaon+Xphi).ge.x1)then
13546 *-----------------------------------------------------------------------
13548 if(ianti .eq. 1)iblock=-7
13550 * RELABLE PARTICLES FOR THE PROCESS PION+n-->LAMBDA K OR SIGMA k
13551 * DECIDE LAMBDA OR SIGMA PRODUCTION, AND TO CALCULATE THE NEW
13552 * MOMENTA FOR PARTICLES IN THE FINAL STATE.
13554 IF(PNLKA(SRT)/(PNLKA(SRT)
13555 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
13556 clin-8/17/00 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
13557 IF(E(I1).LE.0.2)THEN
13564 LB(I2) = 15 + int(3 * RANART(NSEED))
13567 if(ianti .eq. 1)then
13578 LB(I1) = 15 + int(3 * RANART(NSEED))
13581 if(ianti .eq. 1)then
13589 * to gererate the momentum for the kaon and L/S
13592 elseif(Xphi/(xkaon+Xphi).ge.x1)then
13594 if(xphin/Xphi .ge. RANART(NSEED))then
13595 LB(I1)= 1+int(2*RANART(NSEED))
13598 LB(I1)= 6+int(4*RANART(NSEED))
13601 c !! at present only baryon
13602 if(ianti .eq. 1)lb(i1)=-lb(i1)
13609 * PION REABSORPTION HAS HAPPENED
13613 * Relable particles, I1 is assigned to the nucleon
13614 * and I2 is assigned to the pion
13615 * for the reverse of the following process
13616 *(1) for D(+)+P(+)-->p+pion(+)
13617 if( ((lb(i1).eq.8.and.lb(i2).eq.5).
13618 & or.(lb(i1).eq.5.and.lb(i2).eq.8))
13619 & .OR.((lb(i1).eq.-8.and.lb(i2).eq.3).
13620 & or.(lb(i1).eq.3.and.lb(i2).eq.-8)) )then
13621 if(iabs(lb(i1)).eq.8)then
13638 *(2) for D(0)+P(0)-->n+pi(0) or p+pi(-)
13639 if((iabs(lb(i1)).eq.7.and.lb(i2).eq.4).
13640 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.7))then
13641 if(iabs(lb(i1)).eq.7)then
13673 *(3) for D(+)+Pi(0)-->pi(+)+n or pi(0)+p
13674 if((iabs(lb(i1)).eq.8.and.lb(i2).eq.4).
13675 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.8))then
13676 if(iabs(lb(i1)).eq.8)then
13708 *(4) for D(-)+Pi(0)-->n+pi(-)
13709 if((iabs(lb(i1)).eq.6.and.lb(i2).eq.4).
13710 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.6))then
13711 if(iabs(lb(i1)).eq.6)then
13727 *(5) for D(+)+Pi(-)-->pi(0)+n or pi(-)+p
13728 if( ((lb(i1).eq.8.and.lb(i2).eq.3).
13729 & or.(lb(i1).eq.3.and.lb(i2).eq.8))
13730 & .OR.((lb(i1).eq.-8.and.lb(i2).eq.5).
13731 & or.(lb(i1).eq.5.and.lb(i2).eq.-8)) )then
13732 if(iabs(lb(i1)).eq.8)then
13764 *(6) D(0)+P(+)-->n+pi(+) or p+pi(0)
13765 if( ((lb(i1).eq.7.and.lb(i2).eq.5).
13766 & or.(lb(i1).eq.5.and.lb(i2).eq.7))
13767 & .OR.((lb(i1).eq.-7.and.lb(i2).eq.3).
13768 & or.(lb(i1).eq.3.and.lb(i2).eq.-7)) )then
13769 if(iabs(lb(i1)).eq.7)then
13801 *(7) for D(0)+Pi(-)-->n+pi(-)
13802 if( ((lb(i1).eq.7.and.lb(i2).eq.3).
13803 & or.(lb(i1).eq.3.and.lb(i2).eq.7))
13804 & .OR.((lb(i1).eq.-7.and.lb(i2).eq.5).
13805 & or.(lb(i1).eq.5.and.lb(i2).eq.-7)) )then
13806 if(iabs(lb(i1)).eq.7)then
13822 *(8) D(-)+P(+)-->n+pi(0) or p+pi(-)
13823 if( ((lb(i1).eq.6.and.lb(i2).eq.5)
13824 & .or.(lb(i1).eq.5.and.lb(i2).eq.6))
13825 & .OR.((lb(i1).eq.-6.and.lb(i2).eq.3).
13826 & or.(lb(i1).eq.3.and.lb(i2).eq.-6)) )then
13827 if(iabs(lb(i1)).eq.6)then
13860 *(9) D(++)+P(-)-->n+pi(+) or p+pi(0)
13861 if( ((lb(i1).eq.9.and.lb(i2).eq.3)
13862 & .or.(lb(i1).eq.3.and.lb(i2).eq.9))
13863 & .OR. ((lb(i1).eq.-9.and.lb(i2).eq.5)
13864 & .or.(lb(i1).eq.5.and.lb(i2).eq.-9)) )then
13865 if(iabs(lb(i1)).eq.9)then
13897 *(10) for D(++)+Pi(0)-->p+pi(+)
13898 if((iabs(lb(i1)).eq.9.and.lb(i2).eq.4)
13899 & .or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.9))then
13900 if(iabs(lb(i1)).eq.9)then
13916 *(11) for N*(1440)(+)or N*(1535)(+)+P(+)-->p+pion(+)
13917 if( ((lb(i1).eq.11.and.lb(i2).eq.5).
13918 & or.(lb(i1).eq.5.and.lb(i2).eq.11).
13919 & or.(lb(i1).eq.13.and.lb(i2).eq.5).
13920 & or.(lb(i1).eq.5.and.lb(i2).eq.13))
13921 & .OR.((lb(i1).eq.-11.and.lb(i2).eq.3).
13922 & or.(lb(i1).eq.3.and.lb(i2).eq.-11).
13923 & or.(lb(i1).eq.-13.and.lb(i2).eq.3).
13924 & or.(lb(i1).eq.3.and.lb(i2).eq.-13)) )then
13925 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
13941 *(12) for N*(1440) or N*(1535)(0)+P(0)-->n+pi(0) or p+pi(-)
13942 if((iabs(lb(i1)).eq.10.and.lb(i2).eq.4).
13943 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.10).
13944 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.12).
13945 & or.(lb(i2).eq.4.and.iabs(lb(i1)).eq.12))then
13946 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
13978 *(13) for N*(1440) or N*(1535)(+)+Pi(0)-->pi(+)+n or pi(0)+p
13979 if((iabs(lb(i1)).eq.11.and.lb(i2).eq.4).
13980 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.11).
13981 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.13).
13982 & or.(lb(i2).eq.4.and.iabs(lb(i1)).eq.13))then
13983 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14015 *(14) for N*(1440) or N*(1535)(+)+Pi(-)-->pi(0)+n or pi(-)+p
14016 if( ((lb(i1).eq.11.and.lb(i2).eq.3).
14017 & or.(lb(i1).eq.3.and.lb(i2).eq.11).
14018 & or.(lb(i1).eq.3.and.lb(i2).eq.13).
14019 & or.(lb(i2).eq.3.and.lb(i1).eq.13))
14020 & .OR.((lb(i1).eq.-11.and.lb(i2).eq.5).
14021 & or.(lb(i1).eq.5.and.lb(i2).eq.-11).
14022 & or.(lb(i1).eq.5.and.lb(i2).eq.-13).
14023 & or.(lb(i2).eq.5.and.lb(i1).eq.-13)) )then
14024 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14056 *(15) N*(1440) or N*(1535)(0)+P(+)-->n+pi(+) or p+pi(0)
14057 if( ((lb(i1).eq.10.and.lb(i2).eq.5).
14058 & or.(lb(i1).eq.5.and.lb(i2).eq.10).
14059 & or.(lb(i1).eq.12.and.lb(i2).eq.5).
14060 & or.(lb(i1).eq.5.and.lb(i2).eq.12))
14061 & .OR.((lb(i1).eq.-10.and.lb(i2).eq.3).
14062 & or.(lb(i1).eq.3.and.lb(i2).eq.-10).
14063 & or.(lb(i1).eq.-12.and.lb(i2).eq.3).
14064 & or.(lb(i1).eq.3.and.lb(i2).eq.-12)) )then
14065 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14097 *(16) for N*(1440) or N*(1535) (0)+Pi(-)-->n+pi(-)
14098 if( ((lb(i1).eq.10.and.lb(i2).eq.3).
14099 & or.(lb(i1).eq.3.and.lb(i2).eq.10).
14100 & or.(lb(i1).eq.3.and.lb(i2).eq.12).
14101 & or.(lb(i1).eq.12.and.lb(i2).eq.3))
14102 & .OR.((lb(i1).eq.-10.and.lb(i2).eq.5).
14103 & or.(lb(i1).eq.5.and.lb(i2).eq.-10).
14104 & or.(lb(i1).eq.5.and.lb(i2).eq.-12).
14105 & or.(lb(i1).eq.-12.and.lb(i2).eq.5)) )then
14106 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14124 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
14127 if(ii .eq. i2)jj = i1
14128 if(lb(jj).eq.3)then
14130 elseif(lb(jj).eq.5)then
14135 *-----------------------------------------------------------------------
14136 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
14137 * ENERGY CONSERVATION
14138 50 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
14139 1 - 4.0 * (EM1*EM2)**2
14140 IF(PR2.LE.0.)PR2=1.E-09
14141 PR=SQRT(PR2)/(2.*SRT)
14143 clin-10/25/02 get rid of argument usage mismatch in PTR():
14145 c cc1=ptr(0.33*pr,iseed)
14146 cc1=ptr(xptr,iseed)
14149 c1=sqrt(pr**2-cc1**2)/pr
14150 c C1 = 1.0 - 2.0 * RANART(NSEED)
14151 T1 = 2.0 * PI * RANART(NSEED)
14152 S1 = SQRT( 1.0 - C1**2 )
14158 * rotate the momentum
14159 call rotate(px0,py0,pz0,px,py,pz)
14162 **********************************
14165 SUBROUTINE CRRD(PX,PY,PZ,SRT,I1,I2,
14166 & IBLOCK,xkaon0,xkaon,Xphi,xphin)
14168 * DEALING WITH rho(omega)+N or D(N*)-->PION +N OR
14169 * L/S+KAON PROCESS *
14173 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
14174 * SRT - SQRT OF S *
14175 * IBLOCK - THE INFORMATION BACK *
14176 * 7 rho(omega)+N or D(N*)-->L/S+KAON
14177 * iblock - 80 pion+D(N*)-->pion+N
14178 * iblock - 81 RHO+D(N*)-->PION+N
14179 * iblock - 82 OMEGA+D(N*)-->PION+N
14180 * iblock - 222 pion+N-->Phi
14181 **********************************
14182 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
14183 1 AMP=0.93828,AP1=0.13496,
14184 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
14185 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,APHI=1.02)
14186 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
14187 COMMON /AA/ R(3,MAXSTR)
14189 COMMON /BB/ P(3,MAXSTR)
14191 COMMON /CC/ E(MAXSTR)
14193 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
14195 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
14197 COMMON/RNDF77/NSEED
14206 if(lb(i1).lt.0 .or. lb(i2).lt.0) ianti=1
14208 if(xkaon0/(xkaon+Xphi).ge.x1)then
14210 *-----------------------------------------------------------------------
14212 if(ianti .eq. 1)iblock=-7
14214 * RELABLE PARTICLES FOR THE PROCESS PION+n-->LAMBDA K OR SIGMA k
14215 * DECIDE LAMBDA OR SIGMA PRODUCTION, AND TO CALCULATE THE NEW
14216 * MOMENTA FOR PARTICLES IN THE FINAL STATE.
14218 IF(PNLKA(SRT)/(PNLKA(SRT)
14219 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
14220 clin-8/17/00 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
14221 IF(E(I1).LE.0.92)THEN
14228 LB(I2) = 15 + int(3 * RANART(NSEED))
14231 if(ianti .eq. 1)then
14242 LB(I1) = 15 + int(3 * RANART(NSEED))
14245 if(ianti .eq. 1)then
14253 * to gererate the momentum for the kaon and L/S
14256 elseif(Xphi/(xkaon+Xphi).ge.x1)then
14258 if(xphin/Xphi .ge. RANART(NSEED))then
14259 LB(I1)= 1+int(2*RANART(NSEED))
14262 LB(I1)= 6+int(4*RANART(NSEED))
14265 c !! at present only baryon
14266 if(ianti .eq. 1)lb(i1)=-lb(i1)
14273 * rho(omega) REABSORPTION HAS HAPPENED
14277 if(lb(i1).eq.28.or.lb(i2).eq.28)go to 60
14278 * we treat Rho reabsorption in the following
14279 * Relable particles, I1 is assigned to the Delta
14280 * and I2 is assigned to the meson
14281 * for the reverse of the following process
14282 *(1) for D(+)+rho(+)-->p+pion(+)
14283 if( ((lb(i1).eq.8.and.lb(i2).eq.27).
14284 & or.(lb(i1).eq.27.and.lb(i2).eq.8))
14285 & .OR. ((lb(i1).eq.-8.and.lb(i2).eq.25).
14286 & or.(lb(i1).eq.25.and.lb(i2).eq.-8)) )then
14287 if(iabs(lb(i1)).eq.8)then
14303 *(2) for D(0)+rho(0)-->n+pi(0) or p+pi(-)
14304 if((iabs(lb(i1)).eq.7.and.lb(i2).eq.26).
14305 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.7))then
14306 if(iabs(lb(i1)).eq.7)then
14338 *(3) for D(+)+rho(0)-->pi(+)+n or pi(0)+p
14339 if((iabs(lb(i1)).eq.8.and.lb(i2).eq.26).
14340 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.8))then
14341 if(iabs(lb(i1)).eq.8)then
14373 *(4) for D(-)+rho(0)-->n+pi(-)
14374 if((iabs(lb(i1)).eq.6.and.lb(i2).eq.26).
14375 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.6))then
14376 if(iabs(lb(i1)).eq.6)then
14392 *(5) for D(+)+rho(-)-->pi(0)+n or pi(-)+p
14393 if( ((lb(i1).eq.8.and.lb(i2).eq.25).
14394 & or.(lb(i1).eq.25.and.lb(i2).eq.8))
14395 & .OR. ((lb(i1).eq.-8.and.lb(i2).eq.27).
14396 & or.(lb(i1).eq.27.and.lb(i2).eq.-8)) )then
14397 if(iabs(lb(i1)).eq.8)then
14429 *(6) D(0)+rho(+)-->n+pi(+) or p+pi(0)
14430 if( ((lb(i1).eq.7.and.lb(i2).eq.27).
14431 & or.(lb(i1).eq.27.and.lb(i2).eq.7))
14432 & .OR.((lb(i1).eq.-7.and.lb(i2).eq.25).
14433 & or.(lb(i1).eq.25.and.lb(i2).eq.-7)) )then
14434 if(iabs(lb(i1)).eq.7)then
14466 *(7) for D(0)+rho(-)-->n+pi(-)
14467 if( ((lb(i1).eq.7.and.lb(i2).eq.25).
14468 & or.(lb(i1).eq.25.and.lb(i2).eq.7))
14469 & .OR.((lb(i1).eq.-7.and.lb(i2).eq.27).
14470 & or.(lb(i1).eq.27.and.lb(i2).eq.-7)) )then
14471 if(iabs(lb(i1)).eq.7)then
14487 *(8) D(-)+rho(+)-->n+pi(0) or p+pi(-)
14488 if( ((lb(i1).eq.6.and.lb(i2).eq.27).
14489 & or.(lb(i1).eq.27.and.lb(i2).eq.6))
14490 & .OR. ((lb(i1).eq.-6.and.lb(i2).eq.25).
14491 & or.(lb(i1).eq.25.and.lb(i2).eq.-6)) )then
14492 if(iabs(lb(i1)).eq.6)then
14524 *(9) D(++)+rho(-)-->n+pi(+) or p+pi(0)
14525 if( ((lb(i1).eq.9.and.lb(i2).eq.25).
14526 & or.(lb(i1).eq.25.and.lb(i2).eq.9))
14527 & .OR.((lb(i1).eq.-9.and.lb(i2).eq.27).
14528 & or.(lb(i1).eq.27.and.lb(i2).eq.-9)) )then
14529 if(iabs(lb(i1)).eq.9)then
14561 *(10) for D(++)+rho(0)-->p+pi(+)
14562 if((iabs(lb(i1)).eq.9.and.lb(i2).eq.26).
14563 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.9))then
14564 if(iabs(lb(i1)).eq.9)then
14580 *(11) for N*(1440)(+)or N*(1535)(+)+rho(+)-->p+pion(+)
14581 if( ((lb(i1).eq.11.and.lb(i2).eq.27).
14582 & or.(lb(i1).eq.27.and.lb(i2).eq.11).
14583 & or.(lb(i1).eq.13.and.lb(i2).eq.27).
14584 & or.(lb(i1).eq.27.and.lb(i2).eq.13))
14585 & .OR. ((lb(i1).eq.-11.and.lb(i2).eq.25).
14586 & or.(lb(i1).eq.25.and.lb(i2).eq.-11).
14587 & or.(lb(i1).eq.-13.and.lb(i2).eq.25).
14588 & or.(lb(i1).eq.25.and.lb(i2).eq.-13)) )then
14589 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14605 *(12) for N*(1440) or N*(1535)(0)+rho(0)-->n+pi(0) or p+pi(-)
14606 if((iabs(lb(i1)).eq.10.and.lb(i2).eq.26).
14607 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.10).
14608 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.12).
14609 & or.(lb(i2).eq.26.and.iabs(lb(i1)).eq.12))then
14610 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14642 *(13) for N*(1440) or N*(1535)(+)+rho(0)-->pi(+)+n or pi(0)+p
14643 if((iabs(lb(i1)).eq.11.and.lb(i2).eq.26).
14644 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.11).
14645 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.13).
14646 & or.(lb(i2).eq.26.and.iabs(lb(i1)).eq.13))then
14647 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14679 *(14) for N*(1440) or N*(1535)(+)+rho(-)-->pi(0)+n or pi(-)+p
14680 if( ((lb(i1).eq.11.and.lb(i2).eq.25).
14681 & or.(lb(i1).eq.25.and.lb(i2).eq.11).
14682 & or.(lb(i1).eq.25.and.lb(i2).eq.13).
14683 & or.(lb(i2).eq.25.and.lb(i1).eq.13))
14684 & .OR.((lb(i1).eq.-11.and.lb(i2).eq.27).
14685 & or.(lb(i1).eq.27.and.lb(i2).eq.-11).
14686 & or.(lb(i1).eq.27.and.lb(i2).eq.-13).
14687 & or.(lb(i2).eq.27.and.lb(i1).eq.-13)) )then
14688 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14720 *(15) N*(1440) or N*(1535)(0)+rho(+)-->n+pi(+) or p+pi(0)
14721 if( ((lb(i1).eq.10.and.lb(i2).eq.27).
14722 & or.(lb(i1).eq.27.and.lb(i2).eq.10).
14723 & or.(lb(i1).eq.12.and.lb(i2).eq.27).
14724 & or.(lb(i1).eq.27.and.lb(i2).eq.12))
14725 & .OR.((lb(i1).eq.-10.and.lb(i2).eq.25).
14726 & or.(lb(i1).eq.25.and.lb(i2).eq.-10).
14727 & or.(lb(i1).eq.-12.and.lb(i2).eq.25).
14728 & or.(lb(i1).eq.25.and.lb(i2).eq.-12)) )then
14729 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14761 *(16) for N*(1440) or N*(1535) (0)+rho(-)-->n+pi(-)
14762 if( ((lb(i1).eq.10.and.lb(i2).eq.25).
14763 & or.(lb(i1).eq.25.and.lb(i2).eq.10).
14764 & or.(lb(i1).eq.25.and.lb(i2).eq.12).
14765 & or.(lb(i1).eq.12.and.lb(i2).eq.25))
14766 & .OR. ((lb(i1).eq.-10.and.lb(i2).eq.27).
14767 & or.(lb(i1).eq.27.and.lb(i2).eq.-10).
14768 & or.(lb(i1).eq.27.and.lb(i2).eq.-12).
14769 & or.(lb(i1).eq.-12.and.lb(i2).eq.27)) )then
14770 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14787 * FOR OMEGA REABSORPTION
14788 * Relable particles, I1 is assigned to the Delta
14789 * and I2 is assigned to the meson
14790 * for the reverse of the following process
14791 *(1) for D(0)+OMEGA(0)-->n+pi(0) or p+pi(-)
14792 if((iabs(lb(i1)).eq.7.and.lb(i2).eq.28).
14793 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.7))then
14794 if(iabs(lb(i1)).eq.7)then
14826 *(2) for D(+)+OMEGA(0)-->pi(+)+n or pi(0)+p
14827 if((iabs(lb(i1)).eq.8.and.lb(i2).eq.28).
14828 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.8))then
14829 if(iabs(lb(i1)).eq.8)then
14861 *(3) for D(-)+OMEGA(0)-->n+pi(-)
14862 if((iabs(lb(i1)).eq.6.and.lb(i2).eq.28).
14863 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.6))then
14864 if(iabs(lb(i1)).eq.6)then
14880 *(4) for D(++)+OMEGA(0)-->p+pi(+)
14881 if((iabs(lb(i1)).eq.9.and.lb(i2).eq.28).
14882 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.9))then
14883 if(iabs(lb(i1)).eq.9)then
14899 *(5) for N*(1440) or N*(1535)(0)+omega(0)-->n+pi(0) or p+pi(-)
14900 if((iabs(lb(i1)).eq.10.and.lb(i2).eq.28).
14901 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.10).
14902 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.12).
14903 & or.(lb(i2).eq.28.and.iabs(lb(i1)).eq.12))then
14904 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14936 *(6) for N*(1440) or N*(1535)(+)+omega(0)-->pi(+)+n or pi(0)+p
14937 if((iabs(lb(i1)).eq.11.and.lb(i2).eq.28).
14938 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.11).
14939 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.13).
14940 & or.(lb(i2).eq.28.and.iabs(lb(i1)).eq.13))then
14941 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14975 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
14978 if(ii .eq. i2)jj = i1
14979 if(lb(jj).eq.3)then
14981 elseif(lb(jj).eq.5)then
14986 *-----------------------------------------------------------------------
14987 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
14988 * ENERGY CONSERVATION
14989 50 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
14990 1 - 4.0 * (EM1*EM2)**2
14991 IF(PR2.LE.0.)PR2=1.E-09
14992 PR=SQRT(PR2)/(2.*SRT)
14993 * C1 = 1.0 - 2.0 * RANART(NSEED)
14995 clin-10/25/02 get rid of argument usage mismatch in PTR():
14997 c cc1=ptr(0.33*pr,iseed)
14998 cc1=ptr(xptr,iseed)
15001 c1=sqrt(pr**2-cc1**2)/pr
15002 T1 = 2.0 * PI * RANART(NSEED)
15003 S1 = SQRT( 1.0 - C1**2 )
15009 * ROTATE THE MOMENTUM
15010 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
15013 **********************************
15016 SUBROUTINE Crlaba(PX,PY,PZ,SRT,brel,brsgm,
15017 & I1,I2,nt,IBLOCK,nchrg,icase)
15019 * DEALING WITH K+ + N(D,N*)-bar <--> La(Si)-bar + pi *
15023 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
15024 * SRT - SQRT OF S *
15025 * IBLOCK - THE INFORMATION BACK *
15026 * 8-> elastic scatt *
15027 * 100-> K+ + N-bar -> Sigma-bar + PI
15028 * 102-> PI + Sigma(Lambda)-bar -> K+ + N-bar
15029 **********************************
15030 PARAMETER (MAXSTR=150001, MAXR=1, AMN=0.939457,
15031 1 AMP=0.93828,AP1=0.13496,
15032 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15033 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
15034 PARAMETER (ETAM=0.5475, AOMEGA=0.782, ARHO=0.77)
15035 COMMON /AA/ R(3,MAXSTR)
15037 COMMON /BB/ P(3,MAXSTR)
15039 COMMON /CC/ E(MAXSTR)
15041 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15043 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15045 COMMON/RNDF77/NSEED
15054 if(icase .eq. 3)then
15056 if(rrr.lt.brel) then
15057 c !! elastic scat. (avoid in reverse process)
15061 if(rrr.lt.(brel+brsgm)) then
15062 c* K+ + N-bar -> Sigma-bar + PI
15063 LB(i1) = -15 - int(3 * RANART(NSEED))
15067 c* K+ + N-bar -> Lambda-bar + PI
15071 LB(i2) = 3 + int(3 * RANART(NSEED))
15077 if(icase .eq. 4)then
15079 if(rrr.lt.brel) then
15084 c PI + Sigma(Lambda)-bar -> K+ + N-bar
15087 LB(i2) = -1 - int(2 * RANART(NSEED))
15088 if(nchrg.eq.-2) LB(i2) = -6
15089 if(nchrg.eq. 1) LB(i2) = -9
15092 if(nchrg.eq.-2.or.nchrg.eq.1) e(i2)=1.232
15098 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
15099 * ENERGY CONSERVATION
15100 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
15101 1 - 4.0 * (EM1*EM2)**2
15102 IF(PR2.LE.0.)PR2=1.e-09
15103 PR=SQRT(PR2)/(2.*SRT)
15104 C1 = 1.0 - 2.0 * RANART(NSEED)
15105 T1 = 2.0 * PI * RANART(NSEED)
15106 S1 = SQRT( 1.0 - C1**2 )
15113 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
15116 **********************************
15119 SUBROUTINE Crkn(PX,PY,PZ,SRT,I1,I2,IBLOCK)
15121 * DEALING WITH kaON+N/pi-->KAON +N/pi elastic PROCESS *
15125 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
15126 * SRT - SQRT OF S *
15127 * IBLOCK - THE INFORMATION BACK *
15128 * 8-> PION+N-->L/S+KAON
15129 **********************************
15130 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15131 1 AMP=0.93828,AP1=0.13496,
15132 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15133 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
15134 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15135 COMMON /AA/ R(3,MAXSTR)
15137 COMMON /BB/ P(3,MAXSTR)
15139 COMMON /CC/ E(MAXSTR)
15141 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15143 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15145 COMMON/RNDF77/NSEED
15152 *-----------------------------------------------------------------------
15157 *-----------------------------------------------------------------------
15158 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
15159 * ENERGY CONSERVATION
15160 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
15161 1 - 4.0 * (EM1*EM2)**2
15162 IF(PR2.LE.0.)PR2=1.e-09
15163 PR=SQRT(PR2)/(2.*SRT)
15164 C1 = 1.0 - 2.0 * RANART(NSEED)
15165 T1 = 2.0 * PI * RANART(NSEED)
15166 S1 = SQRT( 1.0 - C1**2 )
15174 **********************************
15177 SUBROUTINE Crppba(PX,PY,PZ,SRT,I1,I2,IBLOCK)
15180 clin-8/29/00* DEALING WITH anti-nucleon annihilation with
15181 * DEALING WITH anti-baryon annihilation with
15183 * nucleons or baryon resonances
15185 * (1) no. of pions in the final state
15186 * (2) relable particles in the final state
15187 * (3) new momenta of final state particles *
15190 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
15191 * SRT - SQRT OF S *
15192 * IBLOCK - INFORMATION about the reaction channel *
15194 * iblock - 1902 annihilation-->pion(+)+pion(-) (2 pion)
15195 * iblock - 1903 annihilation-->pion(+)+rho(-) (3 pion)
15196 * iblock - 1904 annihilation-->rho(+)+rho(-) (4 pion)
15197 * iblock - 1905 annihilation-->rho(0)+omega (5 pion)
15198 * iblock - 1906 annihilation-->omega+omega (6 pion)
15199 * charge conservation is enforced in relabling particles
15200 * in the final state (note: at the momentum we don't check the
15201 * initial charges while dealing with annihilation, since some
15202 * annihilation channels between antinucleons and nucleons (baryon
15203 * resonances) might be forbiden by charge conservation, this effect
15204 * should be small, but keep it in mind.
15205 **********************************
15206 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15207 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,
15208 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15209 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
15210 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15211 COMMON /AA/ R(3,MAXSTR)
15213 COMMON /BB/ P(3,MAXSTR)
15215 COMMON /CC/ E(MAXSTR)
15217 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15219 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15221 COMMON/RNDF77/NSEED
15228 * determine the no. of pions in the final state using a
15229 * statistical model
15230 call pbarfs(srt,npion,iseed)
15231 * find the masses of the final state particles before calculate
15232 * their momenta, and relable them. The masses of rho and omega
15233 * will be generated according to the Breit Wigner formula (NOTE!!!
15234 * NOT DONE YET, AT THE MOMENT LET US USE FIXED RHO AND OMEGA MAEES)
15236 * Here we generate two stes of integer random numbers (3,4,5)
15237 * one or both of them are used directly as the lables of pions
15238 * similarly, 22+nchrg1 and 22+nchrg2 are used directly
15240 nchrg1=3+int(3*RANART(NSEED))
15241 nchrg2=3+int(3*RANART(NSEED))
15242 * the corresponding masses of pions
15245 if(nchrg1.eq.3.or.nchrg1.eq.5)pmass1=ap2
15246 if(nchrg2.eq.3.or.nchrg2.eq.5)pmass2=ap2
15247 * (1) for 2 pion production
15250 * randomly generate the charges of final state particles,
15255 * TO CALCULATE THE FINAL MOMENTA
15258 * (2) FOR 3 PION PRODUCTION
15267 * (3) FOR 4 PION PRODUCTION
15268 * we allow both rho+rho and pi+omega with 50-50% probability
15271 * determine rho+rho or pi+omega
15272 if(RANART(NSEED).ge.0.5)then
15287 * (4) FOR 5 PION PRODUCTION
15297 * (5) FOR 6 PION PRODUCTION
15309 *-----------------------------------------------------------------------
15310 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
15311 * ENERGY CONSERVATION
15312 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
15313 1 - 4.0 * (EM1*EM2)**2
15314 IF(PR2.LE.0.)PR2=1.E-08
15315 PR=SQRT(PR2)/(2.*SRT)
15316 * WE ASSUME AN ISOTROPIC ANGULAR DISTRIBUTION IN THE CMS
15317 C1 = 1.0 - 2.0 * RANART(NSEED)
15318 T1 = 2.0 * PI * RANART(NSEED)
15319 S1 = SQRT( 1.0 - C1**2 )
15322 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
15327 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
15332 **********************************
15334 * assign final states for K+K- --> light mesons
15336 SUBROUTINE crkkpi(I1,I2,XSK1, XSK2, XSK3, XSK4,
15337 & XSK5, XSK6, XSK7, XSK8, XSK9, XSK10, XSK11, SIGK,
15338 & IBLOCK,lbp1,lbp2,emm1,emm2)
15341 * IBLOCK - INFORMATION about the reaction channel *
15344 **********************************
15345 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15346 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,
15348 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15349 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
15350 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15351 COMMON /AA/ R(3,MAXSTR)
15353 COMMON /BB/ P(3,MAXSTR)
15355 COMMON /CC/ E(MAXSTR)
15357 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15359 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15361 COMMON/RNDF77/NSEED
15367 X1 = RANART(NSEED) * SIGK
15376 XSK10 = XSK9 + XSK10
15377 IF (X1 .LE. XSK1) THEN
15378 LB(I1) = 3 + int(3 * RANART(NSEED))
15379 LB(I2) = 3 + int(3 * RANART(NSEED))
15383 ELSE IF (X1 .LE. XSK2) THEN
15384 LB(I1) = 3 + int(3 * RANART(NSEED))
15385 LB(I2) = 25 + int(3 * RANART(NSEED))
15389 ELSE IF (X1 .LE. XSK3) THEN
15390 LB(I1) = 3 + int(3 * RANART(NSEED))
15395 ELSE IF (X1 .LE. XSK4) THEN
15396 LB(I1) = 3 + int(3 * RANART(NSEED))
15401 ELSE IF (X1 .LE. XSK5) THEN
15402 LB(I1) = 25 + int(3 * RANART(NSEED))
15403 LB(I2) = 25 + int(3 * RANART(NSEED))
15407 ELSE IF (X1 .LE. XSK6) THEN
15408 LB(I1) = 25 + int(3 * RANART(NSEED))
15413 ELSE IF (X1 .LE. XSK7) THEN
15414 LB(I1) = 25 + int(3 * RANART(NSEED))
15419 ELSE IF (X1 .LE. XSK8) THEN
15425 ELSE IF (X1 .LE. XSK9) THEN
15431 ELSE IF (X1 .LE. XSK10) THEN
15453 **********************************
15455 * DEALING WITH K+Y -> piN scattering
15457 SUBROUTINE Crkhyp(PX,PY,PZ,SRT,I1,I2,
15458 & XKY1, XKY2, XKY3, XKY4, XKY5,
15459 & XKY6, XKY7, XKY8, XKY9, XKY10, XKY11, XKY12, XKY13,
15460 & XKY14, XKY15, XKY16, XKY17, SIGK, IKMP,
15464 * (1) relable particles in the final state *
15465 * (2) new momenta of final state particles *
15468 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
15469 * SRT - SQRT OF S *
15470 * IBLOCK - INFORMATION about the reaction channel *
15473 * iblock - 222 !! phi *
15474 **********************************
15475 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15476 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,APHI=1.02,
15477 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15478 parameter (pimass=0.140, AMETA = 0.5473, aka=0.498,
15479 & aml=1.116,ams=1.193, AM1440 = 1.44, AM1535 = 1.535)
15480 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15481 COMMON /AA/ R(3,MAXSTR)
15483 COMMON /BB/ P(3,MAXSTR)
15485 COMMON /CC/ E(MAXSTR)
15487 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15489 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15491 COMMON/RNDF77/NSEED
15501 X1 = RANART(NSEED) * SIGK
15510 XKY10 = XKY9 + XKY10
15511 XKY11 = XKY10 + XKY11
15512 XKY12 = XKY11 + XKY12
15513 XKY13 = XKY12 + XKY13
15514 XKY14 = XKY13 + XKY14
15515 XKY15 = XKY14 + XKY15
15516 XKY16 = XKY15 + XKY16
15517 IF (X1 .LE. XKY1) THEN
15518 LB(I1) = 3 + int(3 * RANART(NSEED))
15519 LB(I2) = 1 + int(2 * RANART(NSEED))
15523 ELSE IF (X1 .LE. XKY2) THEN
15524 LB(I1) = 3 + int(3 * RANART(NSEED))
15525 LB(I2) = 6 + int(4 * RANART(NSEED))
15529 ELSE IF (X1 .LE. XKY3) THEN
15530 LB(I1) = 3 + int(3 * RANART(NSEED))
15531 LB(I2) = 10 + int(2 * RANART(NSEED))
15535 ELSE IF (X1 .LE. XKY4) THEN
15536 LB(I1) = 3 + int(3 * RANART(NSEED))
15537 LB(I2) = 12 + int(2 * RANART(NSEED))
15541 ELSE IF (X1 .LE. XKY5) THEN
15542 LB(I1) = 25 + int(3 * RANART(NSEED))
15543 LB(I2) = 1 + int(2 * RANART(NSEED))
15547 ELSE IF (X1 .LE. XKY6) THEN
15548 LB(I1) = 25 + int(3 * RANART(NSEED))
15549 LB(I2) = 6 + int(4 * RANART(NSEED))
15553 ELSE IF (X1 .LE. XKY7) THEN
15554 LB(I1) = 25 + int(3 * RANART(NSEED))
15555 LB(I2) = 10 + int(2 * RANART(NSEED))
15559 ELSE IF (X1 .LE. XKY8) THEN
15560 LB(I1) = 25 + int(3 * RANART(NSEED))
15561 LB(I2) = 12 + int(2 * RANART(NSEED))
15565 ELSE IF (X1 .LE. XKY9) THEN
15567 LB(I2) = 1 + int(2 * RANART(NSEED))
15571 ELSE IF (X1 .LE. XKY10) THEN
15573 LB(I2) = 6 + int(4 * RANART(NSEED))
15577 ELSE IF (X1 .LE. XKY11) THEN
15579 LB(I2) = 10 + int(2 * RANART(NSEED))
15583 ELSE IF (X1 .LE. XKY12) THEN
15585 LB(I2) = 12 + int(2 * RANART(NSEED))
15589 ELSE IF (X1 .LE. XKY13) THEN
15591 LB(I2) = 1 + int(2 * RANART(NSEED))
15595 ELSE IF (X1 .LE. XKY14) THEN
15597 LB(I2) = 6 + int(4 * RANART(NSEED))
15601 ELSE IF (X1 .LE. XKY15) THEN
15603 LB(I2) = 10 + int(2 * RANART(NSEED))
15607 ELSE IF (X1 .LE. XKY16) THEN
15609 LB(I2) = 12 + int(2 * RANART(NSEED))
15615 LB(I2) = 1 + int(2 * RANART(NSEED))
15623 if(IKMP .eq. -1) LB(I2) = -LB(I2)
15627 *-----------------------------------------------------------------------
15628 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
15629 * ENERGY CONSERVATION
15630 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
15631 1 - 4.0 * (EM1*EM2)**2
15632 IF(PR2.LE.0.)PR2=1.E-08
15633 PR=SQRT(PR2)/(2.*SRT)
15634 * WE ASSUME AN ISOTROPIC ANGULAR DISTRIBUTION IN THE CMS
15635 C1 = 1.0 - 2.0 * RANART(NSEED)
15636 T1 = 2.0 * PI * RANART(NSEED)
15637 S1 = SQRT( 1.0 - C1**2 )
15640 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
15645 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
15648 **********************************
15651 SUBROUTINE CRLAN(PX,PY,PZ,SRT,I1,I2,IBLOCK)
15653 * DEALING WITH La/Si-bar + N --> K+ + pi PROCESS *
15654 * La/Si + N-bar --> K- + pi *
15658 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
15659 * SRT - SQRT OF S *
15660 * IBLOCK - THE INFORMATION BACK *
15662 **********************************
15663 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15664 1 AMP=0.93828,AP1=0.13496,
15665 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15666 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
15667 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15668 COMMON /AA/ R(3,MAXSTR)
15670 COMMON /BB/ P(3,MAXSTR)
15672 COMMON /CC/ E(MAXSTR)
15674 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15676 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15678 COMMON/RNDF77/NSEED
15687 if( (lb(i1).ge.14.and.lb(i1).le.17) .OR.
15688 & (lb(i2).ge.14.and.lb(i2).le.17) )then
15693 LB(I2)= 3 + int(3 * RANART(NSEED))
15698 *-----------------------------------------------------------------------
15699 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
15700 * ENERGY CONSERVATION
15701 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
15702 1 - 4.0 * (EM1*EM2)**2
15703 IF(PR2.LE.0.)PR2=1.e-09
15704 PR=SQRT(PR2)/(2.*SRT)
15705 C1 = 1.0 - 2.0 * RANART(NSEED)
15706 T1 = 2.0 * PI * RANART(NSEED)
15707 S1 = SQRT( 1.0 - C1**2 )
15710 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
15714 * FOR THE ISOTROPIC DISTRIBUTION THERE IS NO NEED TO ROTATE
15718 **********************************
15719 **********************************
15722 SUBROUTINE Crkpla(PX,PY,PZ,EC,SRT,spika,
15723 & emm1,emm2,lbp1,lbp2,I1,I2,icase,srhoks)
15726 * DEALING WITH K+ + Pi ---> La/Si-bar + B, phi+K, phi+K* OR K* *
15727 * K- + Pi ---> La/Si + B-bar OR K*-bar *
15732 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
15733 * SRT - SQRT OF S *
15734 * IBLOCK - THE INFORMATION BACK *
15736 **********************************
15737 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15738 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,AMRHO=0.769,AMOMGA=0.782,
15739 2 AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15740 PARAMETER (AKA=0.498,AKS=0.895,ALA=1.1157,ASA=1.1974
15742 PARAMETER (AM1440 = 1.44, AM1535 = 1.535)
15743 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15744 COMMON /AA/ R(3,MAXSTR)
15746 COMMON /BB/ P(3,MAXSTR)
15748 COMMON /CC/ E(MAXSTR)
15750 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15752 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15754 COMMON/RNDF77/NSEED
15774 c if(lb(i1).eq.21.or.lb(i2).eq.21)sigm=10.
15775 pdd = (srt**2-(aka+ap1)**2)*(srt**2-(aka-ap1)**2)
15777 if(srt .lt. (ala+amn))go to 70
15778 XKP1 = sigm*(4./3.)*(srt**2-(ala+amn)**2)*
15779 & (srt**2-(ala-amn)**2)/pdd
15780 if(srt .gt. (ala+am0))then
15781 XKP2 = sigm*(16./3.)*(srt**2-(ala+am0)**2)*
15782 & (srt**2-(ala-am0)**2)/pdd
15784 if(srt .gt. (ala+am1440))then
15785 XKP3 = sigm*(4./3.)*(srt**2-(ala+am1440)**2)*
15786 & (srt**2-(ala-am1440)**2)/pdd
15788 if(srt .gt. (ala+am1535))then
15789 XKP4 = sigm*(4./3.)*(srt**2-(ala+am1535)**2)*
15790 & (srt**2-(ala-am1535)**2)/pdd
15793 if(srt .gt. (asa+amn))then
15794 XKP5 = sigm*4.*(srt**2-(asa+amn)**2)*
15795 & (srt**2-(asa-amn)**2)/pdd
15797 if(srt .gt. (asa+am0))then
15798 XKP6 = sigm*16.*(srt**2-(asa+am0)**2)*
15799 & (srt**2-(asa-am0)**2)/pdd
15801 if(srt .gt. (asa+am1440))then
15802 XKP7 = sigm*4.*(srt**2-(asa+am1440)**2)*
15803 & (srt**2-(asa-am1440)**2)/pdd
15805 if(srt .gt. (asa+am1535))then
15806 XKP8 = sigm*4.*(srt**2-(asa+am1535)**2)*
15807 & (srt**2-(asa-am1535)**2)/pdd
15812 if(srt .gt. aphi+aka)then
15813 pff = sqrt((srt**2-(aphi+aka)**2)*(srt**2-(aphi-aka)**2))
15814 XKP9 = sig1*pff/sqrt(pdd)*1./32./pi/srt**2
15815 if(srt .gt. aphi+aks)then
15816 pff = sqrt((srt**2-(aphi+aks)**2)*(srt**2-(aphi-aks)**2))
15817 XKP10 = sig2*pff/sqrt(pdd)*3./32./pi/srt**2
15821 clin-8/15/02 K pi -> K* (rho omega), from detailed balance,
15822 c neglect rho and omega mass difference for now:
15824 if(srt.gt.(amrho+aks)) then
15826 1 *(srt**2-(0.77-aks)**2)*(srt**2-(0.77+aks)**2)/4
15827 2 /srt**2/(px**2+py**2+pz**2)
15828 if(srt.gt.(amomga+aks)) sigpik=sigpik*12./9.
15832 sigkp = XKP0 + XKP1 + XKP2 + XKP3 + XKP4
15833 & + XKP5 + XKP6 + XKP7 + XKP8 + XKP9 + XKP10 +sigpik
15835 DSkn=SQRT(sigkp/PI/10.)
15837 CALL DISTCE(I1,I2,dsknr,DSkn,DT,EC,SRT,IC,
15841 randu = RANART(NSEED)*sigkp
15852 XKP10 = XKP9 + XKP10
15855 if(randu .le. XKP0)then
15859 * La/Si-bar + B formation
15861 if( randu .le. XKP1 )then
15863 lbp2 = 1 + int(2*RANART(NSEED))
15867 elseif( randu .le. XKP2 )then
15869 lbp2 = 6 + int(4*RANART(NSEED))
15873 elseif( randu .le. XKP3 )then
15875 lbp2 = 10 + int(2*RANART(NSEED))
15879 elseif( randu .le. XKP4 )then
15881 lbp2 = 12 + int(2*RANART(NSEED))
15885 elseif( randu .le. XKP5 )then
15886 lbp1 = -15 - int(3*RANART(NSEED))
15887 lbp2 = 1 + int(2*RANART(NSEED))
15891 elseif( randu .le. XKP6 )then
15892 lbp1 = -15 - int(3*RANART(NSEED))
15893 lbp2 = 6 + int(4*RANART(NSEED))
15897 elseif( randu .lt. XKP7 )then
15898 lbp1 = -15 - int(3*RANART(NSEED))
15899 lbp2 = 10 + int(2*RANART(NSEED))
15903 elseif( randu .lt. XKP8 )then
15904 lbp1 = -15 - int(3*RANART(NSEED))
15905 lbp2 = 12 + int(2*RANART(NSEED))
15909 elseif( randu .lt. XKP9 )then
15910 c !! phi +K formation (iblock=224)
15916 if(lb(i1).eq.21.or.lb(i2).eq.21)then
15917 c !! phi +K-bar formation (iblock=124)
15922 elseif( randu .lt. XKP10 )then
15923 c !! phi +K* formation (iblock=226)
15929 if(lb(i1).eq.21.or.lb(i2).eq.21)then
15936 c !! (rho,omega) +K* formation (iblock=88)
15938 lbp1=25+int(3*RANART(NSEED))
15942 if(srt.gt.(amomga+aks).and.RANART(NSEED).lt.0.25) then
15946 if(lb(i1).eq.21.or.lb(i2).eq.21)then
15954 60 if( icase.eq.2 .and. (lb(i1).eq.21.or.lb(i2).eq.21) )then
15961 *-----------------------------------------------------------------------
15962 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
15963 * ENERGY CONSERVATION
15964 PR2 = (SRT**2 - EMM1**2 - EMM2**2)**2
15965 1 - 4.0 * (EMM1*EMM2)**2
15966 IF(PR2.LE.0.)PR2=1.e-09
15967 PR=SQRT(PR2)/(2.*SRT)
15968 C1 = 1.0 - 2.0 * RANART(NSEED)
15969 T1 = 2.0 * PI * RANART(NSEED)
15970 S1 = SQRT( 1.0 - C1**2 )
15973 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
15977 * FOR THE ISOTROPIC DISTRIBUTION THERE IS NO NEED TO ROTATE
15980 **********************************
15983 SUBROUTINE Crkphi(PX,PY,PZ,EC,SRT,IBLOCK,
15984 & emm1,emm2,lbp1,lbp2,I1,I2,ikk,icase,rrkk,prkk)
15987 * DEALING WITH KKbar, KK*bar, KbarK*, K*K*bar --> Phi + pi(rho,omega)
15988 * and KKbar --> (pi eta) (pi eta), (rho omega) (rho omega)
15989 * and KK*bar or Kbar K* --> (pi eta) (rho omega)
15994 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
15995 * SRT - SQRT OF S *
15996 * IBLOCK - THE INFORMATION BACK *
15998 **********************************
15999 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
16000 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,APHI=1.02,
16001 2 AM0=1.232,AMNS=1.52,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
16002 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,ACAS=1.3213)
16003 PARAMETER (AKS=0.895,AOMEGA=0.7819, ARHO=0.77)
16004 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
16005 COMMON /AA/ R(3,MAXSTR)
16007 COMMON /BB/ P(3,MAXSTR)
16009 COMMON /CC/ E(MAXSTR)
16011 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
16013 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
16015 COMMON/RNDF77/NSEED
16023 c if(srt .lt. aphi+ap1)return
16024 cc if(srt .lt. aphi+ap1) then
16025 if(srt .lt. (aphi+ap1)) then
16031 if((lb1.eq.23.and.lb2.eq.21).or.(lb2.eq.23.and.lb1.eq.21))then
16034 elseif((lb1.eq.21.and.lb2.eq.30).or.(lb2.eq.21.and.lb1.eq.30)
16035 & .or.(lb1.eq.23.and.lb2.eq.-30).or.(lb2.eq.23.and.lb1.eq.-30))then
16051 pii = (srt**2-(e(i1)+e(i2))**2)*(srt**2-(e(i1)-e(i2))**2)
16052 srrt = srt - amax1(srri,srr1)
16053 cc to avoid divergent/negative values at small srrt:
16054 c if(srrt .lt. 0.3)then
16055 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
16056 sig = 1.69/(srrt**0.141 - 0.407)
16058 sig = 3.74 + 0.008*srrt**1.9
16060 sig1=sig*(9./dnr)*(srt**2-(aphi+ap1)**2)*
16061 & (srt**2-(aphi-ap1)**2)/pii
16062 if(srt .gt. aphi+aomega)then
16063 srrt = srt - amax1(srri,srr2)
16064 cc if(srrt .lt. 0.3)then
16065 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
16066 sig = 1.69/(srrt**0.141 - 0.407)
16068 sig = 3.74 + 0.008*srrt**1.9
16070 sig2=sig*(9./dnr)*(srt**2-(aphi+aomega)**2)*
16071 & (srt**2-(aphi-aomega)**2)/pii
16073 if(srt .gt. aphi+arho)then
16074 srrt = srt - amax1(srri,srr3)
16075 cc if(srrt .lt. 0.3)then
16076 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
16077 sig = 1.69/(srrt**0.141 - 0.407)
16079 sig = 3.74 + 0.008*srrt**1.9
16081 sig3=sig*(27./dnr)*(srt**2-(aphi+arho)**2)*
16082 & (srt**2-(aphi-arho)**2)/pii
16084 c sig1 = amin1(20.,sig1)
16085 c sig2 = amin1(20.,sig2)
16086 c sig3 = amin1(20.,sig3)
16092 if((lb1.eq.23.and.lb2.eq.21).or.(lb2.eq.23.and.lb1.eq.21))then
16093 CALL XKKANN(SRT, XSK1, XSK2, XSK3, XSK4, XSK5,
16094 & XSK6, XSK7, XSK8, XSK9, XSK10, XSK11, SIGM, rrkk0)
16095 elseif((lb1.eq.21.and.lb2.eq.30).or.(lb2.eq.21.and.lb1.eq.30)
16096 & .or.(lb1.eq.23.and.lb2.eq.-30).or.(lb2.eq.23.and.lb1.eq.-30))then
16097 CALL XKKSAN(i1,i2,SRT,SIGKS1,SIGKS2,SIGKS3,SIGKS4,SIGM,prkk0)
16101 c sigks = sig1 + sig2 + sig3
16103 sigks = sig1 + sig2 + sig3 + SIGM
16104 DSkn=SQRT(sigks/PI/10.)
16106 CALL DISTCE(I1,I2,dsknr,DSkn,DT,EC,SRT,IC,
16110 ranx = RANART(NSEED)
16114 if(ranx .le. sig1/sigks)then
16115 lbp2 = 3 + int(3*RANART(NSEED))
16117 elseif(ranx .le. (sig1+sig2)/sigks)then
16120 elseif(ranx .le. (sig1+sig2+sig3)/sigks)then
16121 lbp2 = 25 + int(3*RANART(NSEED))
16124 if((lb1.eq.23.and.lb2.eq.21)
16125 & .or.(lb2.eq.23.and.lb1.eq.21))then
16126 CALL crkkpi(I1,I2,XSK1, XSK2, XSK3, XSK4,
16127 & XSK5, XSK6, XSK7, XSK8, XSK9, XSK10, XSK11, SIGM0,
16128 & IBLOCK,lbp1,lbp2,emm1,emm2)
16129 elseif((lb1.eq.21.and.lb2.eq.30)
16130 & .or.(lb2.eq.21.and.lb1.eq.30)
16131 & .or.(lb1.eq.23.and.lb2.eq.-30)
16132 & .or.(lb2.eq.23.and.lb1.eq.-30))then
16133 CALL crkspi(I1,I2,SIGKS1, SIGKS2, SIGKS3, SIGKS4,
16134 & SIGM0,IBLOCK,lbp1,lbp2,emm1,emm2)
16142 *-----------------------------------------------------------------------
16143 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
16144 * ENERGY CONSERVATION
16145 PR2 = (SRT**2 - EMM1**2 - EMM2**2)**2
16146 1 - 4.0 * (EMM1*EMM2)**2
16147 IF(PR2.LE.0.)PR2=1.e-09
16148 PR=SQRT(PR2)/(2.*SRT)
16149 C1 = 1.0 - 2.0 * RANART(NSEED)
16150 T1 = 2.0 * PI * RANART(NSEED)
16151 S1 = SQRT( 1.0 - C1**2 )
16154 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
16158 * FOR THE ISOTROPIC DISTRIBUTION THERE IS NO NEED TO ROTATE
16162 **********************************
16165 SUBROUTINE Crksph(PX,PY,PZ,EC,SRT,
16166 & emm1,emm2,lbp1,lbp2,I1,I2,ikkg,ikkl,iblock,
16170 * DEALING WITH K + rho(omega) or K* + pi(rho,omega)
16171 * --> Phi + K(K*), pi + K* or pi + K, and elastic
16175 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
16176 * SRT - SQRT OF S *
16177 * IBLOCK - THE INFORMATION BACK *
16179 * 223 --> phi + pi(rho,omega)
16180 * 224 --> phi + K <-> K + pi(rho,omega)
16181 * 225 --> phi + K <-> K* + pi(rho,omega)
16182 * 226 --> phi + K* <-> K + pi(rho,omega)
16183 * 227 --> phi + K* <-> K* + pi(rho,omega)
16184 **********************************
16185 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
16186 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,APHI=1.02,
16187 2 AM0=1.232,AMNS=1.52,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
16188 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,ACAS=1.3213)
16189 PARAMETER (AKS=0.895,AOMEGA=0.7819, ARHO=0.77)
16190 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
16191 COMMON /AA/ R(3,MAXSTR)
16193 COMMON /BB/ P(3,MAXSTR)
16195 COMMON /CC/ E(MAXSTR)
16197 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
16199 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
16201 COMMON/RNDF77/NSEED
16210 c K(K*) + rho(omega) -> pi K*(K)
16211 if((lb1.ge.25.and.lb1.le.28).or.(lb2.ge.25.and.lb2.le.28)) then
16212 if(iabs(lb1).eq.30.or.iabs(lb2).eq.30) then
16214 clin-2/26/03 check whether (rho K) is above the (pi K*) thresh:
16215 elseif((lb1.eq.23.or.lb1.eq.21.or.lb2.eq.23.or.lb2.eq.21)
16216 1 .and.srt.gt.(ap2+aks)) then
16221 c if(srt .lt. aphi+aka)return
16222 if(srt .lt. (aphi+aka)) then
16227 c K*-bar +pi --> phi + (K,K*)-bar
16228 if( (iabs(lb1).eq.30.and.(lb2.ge.3.and.lb2.le.5)) .or.
16229 & (iabs(lb2).eq.30.and.(lb1.ge.3.and.lb1.le.5)) )then
16235 clin-2/06/03 these large values reduces to ~10 mb for sig11 or sig22
16236 c due to the factors of ~1/(32*pi*s)~1/200:
16239 c K(-bar)+rho --> phi + (K,K*)-bar
16240 elseif((lb1.eq.23.or.lb1.eq.21.and.(lb2.ge.25.and.lb2.le.27)).or.
16241 & (lb2.eq.23.or.lb2.eq.21.and.(lb1.ge.25.and.lb1.le.27)) )then
16250 elseif( (iabs(lb1).eq.30.and.(lb2.ge.25.and.lb2.le.27)) .or.
16251 & (iabs(lb2).eq.30.and.(lb1.ge.25.and.lb1.le.27)) )then
16260 elseif( ((lb1.eq.23.or.lb1.eq.21) .and. lb2.eq.28).or.
16261 & ((lb2.eq.23.or.lb2.eq.21) .and. lb1.eq.28) )then
16282 c sig11=sig1*(6./dnr)*(srt**2-(aphi+aka)**2)*
16283 c & (srt**2-(aphi-aka)**2)/(srt**2-(e(i1)+e(i2))**2)/
16284 c & (srt**2-(e(i1)-e(i2))**2)
16285 pii = sqrt((srt**2-(e(i1)+e(i2))**2)*(srt**2-(e(i1)-e(i2))**2))
16286 pff = sqrt((srt**2-(aphi+aka)**2)*(srt**2-(aphi-aka)**2))
16287 sig11 = sig1*pff/pii*6./dnr/32./pi/srt**2
16289 if(srt .gt. aphi+aks)then
16290 c sig22=sig2*(18./dnr)*(srt**2-(aphi+aks)**2)*
16291 c & (srt**2-(aphi-aks)**2)/(srt**2-(e(i1)+e(i2))**2)/
16292 c & (srt**2-(e(i1)-e(i2))**2)
16293 pff = sqrt((srt**2-(aphi+aks)**2)*(srt**2-(aphi-aks)**2))
16294 sig22 = sig2*pff/pii*18./dnr/32./pi/srt**2
16296 c sig11 = amin1(20.,sig11)
16297 c sig22 = amin1(20.,sig22)
16301 c sigks = sig11 + sig22
16302 sigks=sig11+sig22+sigela+sigkm
16304 DSkn=SQRT(sigks/PI/10.)
16306 CALL DISTCE(I1,I2,dsknr,DSkn,DT,EC,SRT,IC,
16310 ranx = RANART(NSEED)
16312 if(ranx .le. (sigela/sigks))then
16318 elseif(ranx .le. ((sigela+sigkm)/sigks))then
16319 lbp1=3+int(3*RANART(NSEED))
16321 if(lb1.eq.23.or.lb2.eq.23) then
16324 elseif(lb1.eq.21.or.lb2.eq.21) then
16327 elseif(lb1.eq.30.or.lb2.eq.30) then
16335 elseif(ranx .le. ((sigela+sigkm+sig11)/sigks))then
16339 if(lb1.eq.21.or.lb2.eq.21.or.lb1.eq.-30.or.lb2.eq.-30)then
16350 if(lb1.eq.21.or.lb2.eq.21.or.lb1.eq.-30.or.lb2.eq.-30)then
16361 *-----------------------------------------------------------------------
16362 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
16363 * ENERGY CONSERVATION
16364 PR2 = (SRT**2 - EMM1**2 - EMM2**2)**2
16365 1 - 4.0 * (EMM1*EMM2)**2
16366 IF(PR2.LE.0.)PR2=1.e-09
16367 PR=SQRT(PR2)/(2.*SRT)
16368 C1 = 1.0 - 2.0 * RANART(NSEED)
16369 T1 = 2.0 * PI * RANART(NSEED)
16370 S1 = SQRT( 1.0 - C1**2 )
16373 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
16377 * FOR THE ISOTROPIC DISTRIBUTION THERE IS NO NEED TO ROTATE
16381 **********************************
16382 **********************************
16383 SUBROUTINE bbkaon(ic,SRT,PX,PY,PZ,ana,PlX,
16384 & PlY,PlZ,ala,pkX,PkY,PkZ,icou1)
16385 * purpose: generate the momenta for kaon,lambda/sigma and nucleon/delta
16386 * in the BB-->nlk process
16387 * date: Sept. 9, 1994
16389 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
16391 COMMON/RNDF77/NSEED
16399 if(ic.eq.2.or.ic.eq.4)ala=1.197
16401 * generate the mass of the delta
16403 dmax=srt-aka-ala-0.02
16404 DM1=RMASS(DMAX,ISEED)
16413 pmax=sqrt((srt**2-t1**2)*(srt**2-t2**2))/(2.*srt)
16414 if(pmax.eq.0.)pmax=1.e-09
16415 * (1) Generate the momentum of the kaon according to the distribution Fkaon
16416 * and assume that the angular distribution is isotropic
16417 * in the cms of the colliding pair
16419 1 pk=pmax*RANART(NSEED)
16421 prob=fkaon(pk,pmax)
16422 if((prob.lt.RANART(NSEED)).and.(ntry.le.40))go to 1
16423 cs=1.-2.*RANART(NSEED)
16425 fai=2.*3.14*RANART(NSEED)
16429 * the energy of the kaon
16430 ek=sqrt(aka**2+pk**2)
16431 * (2) Generate the momentum of the nucleon/delta in the cms of N/delta
16433 * the energy of the cms of NL
16439 * beta and gamma of the cms of L/S+N
16443 ga=1./sqrt(1.-bx**2-by**2-bz**2)
16445 pn2=((elnc**2+ana**2-ala**2)/(2.*elnc))**2-ana**2
16446 if(pn2.le.0.)pn2=1.e-09
16448 csn=1.-2.*RANART(NSEED)
16449 ssn=sqrt(1.-csn**2)
16450 fain=2.*3.14*RANART(NSEED)
16451 px=pn*ssn*cos(fain)
16452 py=pn*ssn*sin(fain)
16454 en=sqrt(ana**2+pn2)
16455 * the momentum of the lambda/sigma in the n-l cms frame is
16459 * (3) LORENTZ-TRANSFORMATION INTO nn cms FRAME for the neutron/delta
16460 PBETA = PX*BX + PY*By+ PZ*Bz
16461 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
16462 Px = BX * TRANS0 + PX
16463 Py = BY * TRANS0 + PY
16464 Pz = BZ * TRANS0 + PZ
16465 * (4) Lorentz-transformation for the lambda/sigma
16466 el=sqrt(ala**2+plx**2+ply**2+plz**2)
16467 PBETA = PlX*BX + PlY*By+ PlZ*Bz
16468 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + El )
16469 Plx = BX * TRANS0 + PlX
16470 Ply = BY * TRANS0 + PlY
16471 Plz = BZ * TRANS0 + PlZ
16474 ******************************************
16475 * for pion+pion-->K+K-
16476 c real*4 function pipik(srt)
16477 real function pipik(srt)
16478 * srt = DSQRT(s) in GeV *
16479 * xsec = production cross section in mb *
16480 * NOTE: DEVIDE THE CROSS SECTION TO OBTAIN K+ PRODUCTION *
16481 ******************************************
16482 c real*4 xarray(5), earray(5)
16483 real xarray(5), earray(5)
16485 data xarray /0.001, 0.7,1.5,1.7,2.0/
16486 data earray /1.,1.2,1.6,2.0,2.4/
16489 * 1.Calculate p(lab) from srt [GeV]
16490 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
16491 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
16493 if(srt.le.1.)return
16498 if (srt .lt. earray(1)) then
16499 pipik =xarray(1)/2.
16503 * 2.Interpolate double logarithmically to find sigma(srt)
16506 if (earray(ie) .eq. srt) then
16509 else if (earray(ie) .gt. srt) then
16510 ymin = alog(xarray(ie-1))
16511 ymax = alog(xarray(ie))
16512 xmin = alog(earray(ie-1))
16513 xmax = alog(earray(ie))
16514 pipik = exp(ymin + (alog(srt)-xmin)*(ymax-ymin)
16523 **********************************
16524 * TOTAL PION-P INELASTIC CROSS SECTION
16525 * from the CERN data book
16526 * date: Sept.2, 1994
16527 * for pion++p-->Delta+pion
16528 c real*4 function pionpp(srt)
16529 real function pionpp(srt)
16531 * srt = DSQRT(s) in GeV *
16532 * xsec = production cross section in fm**2 *
16533 * earray = EXPerimental table with proton energies in MeV *
16534 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
16536 ******************************************
16540 IF(SRT.LE.1.22)RETURN
16541 * 1.Calculate p(lab) from srt [GeV]
16542 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
16543 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
16544 plab=sqrt(((srt**2-pmass**2-pmass1**2)/(2.*pmass1))**2-pmass**2)
16547 if(plab.gt.pmax)then
16551 if(plab .lt. pmin)then
16561 pionpp = a+b*(plab**an)+c*(alog(plab))**2+d*alog(plab)
16562 if(pionpp.le.0)pionpp=0
16566 **********************************
16567 * elementary cross sections
16568 * from the CERN data book
16569 * date: Sept.2, 1994
16570 * for pion-+p-->INELASTIC
16571 c real*4 function pipp1(srt)
16572 real function pipp1(srt)
16574 * srt = DSQRT(s) in GeV *
16575 * xsec = production cross section in fm**2 *
16576 * earray = EXPerimental table with proton energies in MeV *
16577 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
16579 ******************************************
16583 IF(SRT.LE.1.22)RETURN
16584 * 1.Calculate p(lab) from srt [GeV]
16585 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
16586 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
16587 plab=sqrt(((srt**2-pmass**2-pmass1**2)/(2.*pmass1))**2-pmass**2)
16590 if(plab.gt.pmax)then
16594 if(plab .lt. pmin)then
16604 pipp1 = a+b*(plab**an)+c*(alog(plab))**2+d*alog(plab)
16605 if(pipp1.le.0)pipp1=0
16609 * *****************************
16610 c real*4 function xrho(srt)
16611 real function xrho(srt)
16613 * xsection for pp-->pp+rho
16614 * *****************************
16619 if(srt.le.2.67)return
16620 ESMIN=2.*0.9383+rmass-trho/2.
16622 * the cross section for tho0 production is
16623 xrho0=0.24*(es-esmin)/(1.4+(es-esmin)**2)
16627 * *****************************
16628 c real*4 function omega(srt)
16629 real function omega(srt)
16631 * xsection for pp-->pp+omega
16632 * *****************************
16637 if(srt.le.2.68)return
16638 ESMIN=2.*0.9383+omass-tomega/2.
16640 omega=0.36*(es-esmin)/(1.25+(es-esmin)**2)
16643 ******************************************
16644 * for ppi(+)-->DELTA+pi
16645 c real*4 function TWOPI(srt)
16646 real function TWOPI(srt)
16647 * This function contains the experimental pi+p-->DELTA+PION cross sections *
16648 * srt = DSQRT(s) in GeV *
16649 * xsec = production cross section in mb *
16650 * earray = EXPerimental table with proton energies in MeV *
16651 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
16653 ******************************************
16654 c real*4 xarray(19), earray(19)
16655 real xarray(19), earray(19)
16657 data xarray /0.300E-05,0.187E+01,0.110E+02,0.149E+02,0.935E+01,
16658 &0.765E+01,0.462E+01,0.345E+01,0.241E+01,0.185E+01,0.165E+01,
16659 &0.150E+01,0.132E+01,0.117E+01,0.116E+01,0.100E+01,0.856E+00,
16660 &0.745E+00,0.300E-05/
16661 data earray /0.122E+01, 0.147E+01, 0.172E+01, 0.197E+01,
16662 &0.222E+01, 0.247E+01, 0.272E+01, 0.297E+01, 0.322E+01,
16663 &0.347E+01, 0.372E+01, 0.397E+01, 0.422E+01, 0.447E+01,
16664 &0.472E+01, 0.497E+01, 0.522E+01, 0.547E+01, 0.572E+01/
16669 if(srt.le.1.22)return
16670 * 1.Calculate p(lab) from srt [GeV]
16671 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
16673 if (plab .lt. earray(1)) then
16678 * 2.Interpolate double logarithmically to find sigma(srt)
16681 if (earray(ie) .eq. plab) then
16684 else if (earray(ie) .gt. plab) then
16685 ymin = alog(xarray(ie-1))
16686 ymax = alog(xarray(ie))
16687 xmin = alog(earray(ie-1))
16688 xmax = alog(earray(ie))
16689 TWOPI= exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
16696 ******************************************
16697 ******************************************
16698 * for ppi(+)-->DELTA+RHO
16699 c real*4 function THREPI(srt)
16700 real function THREPI(srt)
16701 * This function contains the experimental pi+p-->DELTA + rho cross sections *
16702 * srt = DSQRT(s) in GeV *
16703 * xsec = production cross section in mb *
16704 * earray = EXPerimental table with proton energies in MeV *
16705 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
16707 ******************************************
16708 c real*4 xarray(15), earray(15)
16709 real xarray(15), earray(15)
16711 data xarray /8.0000000E-06,6.1999999E-05,1.881940,5.025690,
16712 &11.80154,13.92114,15.07308,11.79571,11.53772,10.01197,9.792673,
16713 &9.465264,8.970490,7.944254,6.886320/
16714 data earray /0.122E+01, 0.147E+01, 0.172E+01, 0.197E+01,
16715 &0.222E+01, 0.247E+01, 0.272E+01, 0.297E+01, 0.322E+01,
16716 &0.347E+01, 0.372E+01, 0.397E+01, 0.422E+01, 0.447E+01,
16722 if(srt.le.1.36)return
16723 * 1.Calculate p(lab) from srt [GeV]
16724 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
16726 if (plab .lt. earray(1)) then
16731 * 2.Interpolate double logarithmically to find sigma(srt)
16734 if (earray(ie) .eq. plab) then
16737 else if (earray(ie) .gt. plab) then
16738 ymin = alog(xarray(ie-1))
16739 ymax = alog(xarray(ie))
16740 xmin = alog(earray(ie-1))
16741 xmax = alog(earray(ie))
16742 THREPI = exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
16749 ******************************************
16750 ******************************************
16751 * for ppi(+)-->DELTA+omega
16752 c real*4 function FOURPI(srt)
16753 real function FOURPI(srt)
16754 * This function contains the experimental pi+p-->DELTA+PION cross sections *
16755 * srt = DSQRT(s) in GeV *
16756 * xsec = production cross section in mb *
16757 * earray = EXPerimental table with proton energies in MeV *
16758 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
16760 ******************************************
16761 c real*4 xarray(10), earray(10)
16762 real xarray(10), earray(10)
16764 data xarray /0.0001,1.986597,6.411932,7.636956,
16765 &9.598362,9.889740,10.24317,10.80138,11.86988,12.83925/
16766 data earray /2.468,2.718,2.968,0.322E+01,
16767 &0.347E+01, 0.372E+01, 0.397E+01, 0.422E+01, 0.447E+01,
16773 if(srt.le.1.52)return
16774 * 1.Calculate p(lab) from srt [GeV]
16775 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
16777 if (plab .lt. earray(1)) then
16782 * 2.Interpolate double logarithmically to find sigma(srt)
16785 if (earray(ie) .eq. plab) then
16788 else if (earray(ie) .gt. plab) then
16789 ymin = alog(xarray(ie-1))
16790 ymax = alog(xarray(ie))
16791 xmin = alog(earray(ie-1))
16792 xmax = alog(earray(ie))
16793 FOURPI= exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
16800 ******************************************
16801 ******************************************
16802 * for pion (rho or omega)+baryon resonance collisions
16803 c real*4 function reab(i1,i2,srt,ictrl)
16804 real function reab(i1,i2,srt,ictrl)
16805 * This function calculates the cross section for
16806 * pi+Delta(N*)-->N+PION process *
16807 * srt = DSQRT(s) in GeV *
16808 * reab = cross section in fm**2 *
16809 * ictrl=1,2,3 for pion, rho and omega+D(N*)
16810 ****************************************
16811 PARAMETER (MAXSTR=150001,MAXR=1,PI=3.1415926)
16812 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
16813 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
16814 parameter (amn=0.938,ap1=0.14,arho=0.77,aomega=0.782)
16815 parameter (maxx=20,maxz=24)
16816 COMMON /AA/ R(3,MAXSTR)
16818 COMMON /BB/ P(3,MAXSTR)
16820 COMMON /CC/ E(MAXSTR)
16822 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
16823 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
16824 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
16826 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
16832 if(ictrl.eq.1.and.srt.le.(amn+2.*ap1+0.02))return
16833 if(ictrl.eq.3.and.srt.le.(amn+ap1+aomega+0.02))return
16834 pin2=((srt**2+ap1**2-amn**2)/(2.*srt))**2-ap1**2
16835 if(pin2.le.0)return
16836 * for pion+D(N*)-->pion+N
16843 pout2=((srt**2+ap1**2-ed**2)/(2.*srt))**2-ap1**2
16844 if(pout2.le.0)return
16845 xpro=twopi(srt)/10.
16847 if( ((lb1.eq.8.and.lb2.eq.5).or.
16848 & (lb1.eq.5.and.lb2.eq.8))
16849 & .OR.((lb1.eq.-8.and.lb2.eq.3).or.
16850 & (lb1.eq.3.and.lb2.eq.-8)) )factor=1/4.
16851 if((iabs(lb1).ge.10.and.iabs(lb1).le.13).
16852 & or.(iabs(lb2).ge.10.and.iabs(lb2).le.13))factor=1.
16853 reab=factor*pin2/pout2*xpro
16856 * for rho reabsorption
16858 if(lb(i2).ge.25)then
16865 if(srt.le.(amn+ap1+arho1+0.02))return
16866 pout2=((srt**2+arho1**2-ed**2)/(2.*srt))**2-arho1**2
16867 if(pout2.le.0)return
16868 xpro=threpi(srt)/10.
16870 if( ((lb1.eq.8.and.lb2.eq.27).or.
16871 & (lb1.eq.27.and.lb2.eq.8))
16872 & .OR. ((lb1.eq.-8.and.lb2.eq.25).or.
16873 & (lb1.eq.25.and.lb2.eq.-8)) )factor=1/4.
16874 if((iabs(lb1).ge.10.and.iabs(lb1).le.13).
16875 & or.(iabs(lb2).ge.10.and.iabs(lb2).le.13))factor=1.
16876 reab=factor*pin2/pout2*xpro
16879 * for omega reabsorption
16881 if(e(i1).gt.1)ed=e(i1)
16882 if(e(i2).gt.1)ed=e(i2)
16883 pout2=((srt**2+aomega**2-ed**2)/(2.*srt))**2-aomega**2
16884 if(pout2.le.0)return
16885 xpro=fourpi(srt)/10.
16887 if((iabs(lb1).ge.10.and.iabs(lb1).le.13).
16888 & or.(iabs(lb2).ge.10.and.iabs(lb2).le.13))factor=1./3.
16889 reab=factor*pin2/pout2*xpro
16893 ******************************************
16894 * for the reabsorption of two resonances
16895 * This function calculates the cross section for
16896 * DD-->NN, N*N*-->NN and DN*-->NN
16897 c real*4 function reab2d(i1,i2,srt)
16898 real function reab2d(i1,i2,srt)
16899 * srt = DSQRT(s) in GeV *
16900 * reab = cross section in mb
16901 ****************************************
16902 PARAMETER (MAXSTR=150001,MAXR=1,PI=3.1415926)
16903 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
16904 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
16905 parameter (amn=0.938,ap1=0.14,arho=0.77,aomega=0.782)
16906 parameter (maxx=20,maxz=24)
16907 COMMON /AA/ R(3,MAXSTR)
16909 COMMON /BB/ P(3,MAXSTR)
16911 COMMON /CC/ E(MAXSTR)
16913 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
16914 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
16915 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
16917 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
16925 pin2=(srt/2.)**2-amn**2
16926 pout2=((srt**2+ed1**2-ed2**2)/(2.*srt))**2-ed1**2
16927 if(pout2.le.0)return
16930 if((lb1.ge.10.and.lb1.le.13).and.
16931 & (lb2.ge.10.and.lb2.le.13))factor=1.
16932 if((lb1.ge.6.and.lb1.le.9).and.
16933 & (lb2.gt.10.and.lb2.le.13))factor=1/2.
16934 if((lb2.ge.6.and.lb2.le.9).and.
16935 & (lb1.gt.10.and.lb1.le.13))factor=1/2.
16936 reab2d=factor*pin2/pout2*xpro
16939 ***************************************
16940 SUBROUTINE rotate(PX0,PY0,PZ0,px,py,pz)
16942 * purpose: rotate the momentum of a particle in the CMS of p1+p2 such that
16943 * the x' y' and z' in the cms of p1+p2 is the same as the fixed x y and z
16945 * px0,py0 and pz0 are the cms momentum of the incoming colliding
16947 * px, py and pz are the cms momentum of any one of the particles
16948 * after the collision to be rotated
16949 ***************************************
16950 * the momentum, polar and azimuthal angles of the incoming momentm
16951 PR0 = SQRT( PX0**2 + PY0**2 + PZ0**2 )
16952 IF(PR0.EQ.0)PR0=0.00000001
16954 IF(PX0 .EQ. 0.0 .AND. PY0 .EQ. 0.0) THEN
16959 S2 = SQRT( 1.0 - C2**2 )
16962 * the momentum, polar and azimuthal angles of the momentum to be rotated
16963 PR=SQRT(PX**2+PY**2+PZ**2)
16964 IF(PR.EQ.0)PR=0.0000001
16966 IF(PX.EQ.0.AND.PY.EQ.0)THEN
16971 S1 = SQRT( 1.0 - C1**2 )
16974 SS = C2 * S1 * CT1 + S2 * C1
16975 * THE MOMENTUM AFTER ROTATION
16976 PX = PR * ( SS*CT2 - S1*ST1*ST2 )
16977 PY = PR * ( SS*ST2 + S1*ST1*CT2 )
16978 PZ = PR * ( C1*C2 - S1*S2*CT1 )
16981 ******************************************
16982 c real*4 function Xpp(srt)
16983 real function Xpp(srt)
16984 * This function contains the experimental total n-p cross sections *
16985 * srt = DSQRT(s) in GeV *
16986 * xsec = production cross section in mb *
16987 * earray = EXPerimental table with proton energies in MeV *
16988 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
16989 * WITH A CUTOFF AT 55MB *
16990 ******************************************
16991 c real*4 xarray(14), earray(14)
16992 real xarray(14), earray(14)
16994 data earray /20.,30.,40.,60.,80.,100.,
16996 &350.,460.,560.,660.,800./
16997 data xarray /150.,90.,80.6,48.0,36.6,
16998 &31.6,25.9,24.0,23.1,
16999 &24.0,28.3,33.6,41.5,47/
17003 * 1.Calculate E_kin(lab) [MeV] from srt [GeV]
17004 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
17005 ekin = 2000.*pmass*((srt/(2.*pmass))**2 - 1.)
17006 if (ekin .lt. earray(1)) then
17008 IF(XPP.GT.55)XPP=55
17011 IF(EKIN.GT.EARRAY(14))THEN
17017 * 2.Interpolate double logarithmically to find sigma(srt)
17020 if (earray(ie) .eq. ekin) then
17022 if(xpp.gt.55)xpp=55.
17025 if (earray(ie) .gt. ekin) then
17026 ymin = alog(xarray(ie-1))
17027 ymax = alog(xarray(ie))
17028 xmin = alog(earray(ie-1))
17029 xmax = alog(earray(ie))
17030 XPP = exp(ymin + (alog(ekin)-xmin)
17031 & *(ymax-ymin)/(xmax-xmin) )
17032 IF(XPP.GT.55)XPP=55.
17039 ******************************************
17040 real function Xnp(srt)
17041 * This function contains the experimental total n-p cross sections *
17042 * srt = DSQRT(s) in GeV *
17043 * xsec = production cross section in mb *
17044 * earray = EXPerimental table with proton energies in MeV *
17045 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
17046 * WITH A CUTOFF AT 55MB *
17047 ******************************************
17048 c real*4 xarray(11), earray(11)
17049 real xarray(11), earray(11)
17051 data earray /20.,30.,40.,60.,90.,135.0,200.,
17052 &300.,400.,600.,800./
17053 data xarray / 410.,270.,214.5,130.,78.,53.5,
17054 &41.6,35.9,34.2,34.3,34.9/
17058 * 1.Calculate E_kin(lab) [MeV] from srt [GeV]
17059 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
17060 ekin = 2000.*pmass*((srt/(2.*pmass))**2 - 1.)
17061 if (ekin .lt. earray(1)) then
17063 IF(XNP.GT.55)XNP=55
17066 IF(EKIN.GT.EARRAY(11))THEN
17071 *Interpolate double logarithmically to find sigma(srt)
17074 if (earray(ie) .eq. ekin) then
17076 if(xnp.gt.55)xnp=55.
17079 if (earray(ie) .gt. ekin) then
17080 ymin = alog(xarray(ie-1))
17081 ymax = alog(xarray(ie))
17082 xmin = alog(earray(ie-1))
17083 xmax = alog(earray(ie))
17084 xNP = exp(ymin + (alog(ekin)-xmin)
17085 & *(ymax-ymin)/(xmax-xmin) )
17086 IF(XNP.GT.55)XNP=55
17093 *******************************
17094 function ptr(ptmax,iseed)
17095 * (2) Generate the transverse momentum
17097 *******************************
17098 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
17100 COMMON/RNDF77/NSEED
17105 if(ptmax.le.1.e-02)then
17109 if(ptmax.gt.2.01)ptmax=2.01
17110 tryial=ptdis(ptmax)/ptdis(2.01)
17111 XT=RANART(NSEED)*tryial
17112 * look up the table and
17113 *Interpolate double logarithmically to find pt
17115 if (earray(ie) .eq. xT) then
17119 if(xarray(ie-1).le.0.00001)go to 50
17120 if(xarray(ie).le.0.00001)go to 50
17121 if(earray(ie-1).le.0.00001)go to 50
17122 if(earray(ie).le.0.00001)go to 50
17123 if (earray(ie) .gt. xT) then
17124 ymin = alog(xarray(ie-1))
17125 ymax = alog(xarray(ie))
17126 xmin = alog(earray(ie-1))
17127 xmax = alog(earray(ie))
17128 ptr= exp(ymin + (alog(xT)-xmin)*(ymax-ymin)
17130 if(ptr.gt.ptmax)ptr=ptmax
17137 **********************************
17138 **********************************
17141 SUBROUTINE XND(px,py,pz,srt,I1,I2,xinel,
17142 & sigk,xsk1,xsk2,xsk3,xsk4,xsk5)
17144 * calculate NUCLEON-BARYON RESONANCE inelatic Xsection *
17147 * CHANNELS. M12 IS THE REVERSAL CHANNEL OF N12 *
17149 * M12=1 FOR p+n-->delta(+)+ n *
17150 * 2 p+n-->delta(0)+ p *
17151 * 3 p+p-->delta(++)+n *
17152 * 4 p+p-->delta(+)+p *
17153 * 5 n+n-->delta(0)+n *
17154 * 6 n+n-->delta(-)+p *
17155 * 7 n+p-->N*(0)(1440)+p *
17156 * 8 n+p-->N*(+)(1440)+n *
17157 * 9 p+p-->N*(+)(1535)+p *
17158 * 10 n+n-->N*(0)(1535)+n *
17159 * 11 n+p-->N*(+)(1535)+n *
17160 * 12 n+p-->N*(0)(1535)+p
17161 * 13 D(++)+D(-)-->N*(+)(1440)+n
17162 * 14 D(++)+D(-)-->N*(0)(1440)+p
17163 * 15 D(+)+D(0)--->N*(+)(1440)+n
17164 * 16 D(+)+D(0)--->N*(0)(1440)+p
17165 * 17 D(++)+D(0)-->N*(+)(1535)+p
17166 * 18 D(++)+D(-)-->N*(0)(1535)+p
17167 * 19 D(++)+D(-)-->N*(+)(1535)+n
17168 * 20 D(+)+D(+)-->N*(+)(1535)+p
17169 * 21 D(+)+D(0)-->N*(+)(1535)+n
17170 * 22 D(+)+D(0)-->N*(0)(1535)+p
17171 * 23 D(+)+D(-)-->N*(0)(1535)+n
17172 * 24 D(0)+D(0)-->N*(0)(1535)+n
17173 * 25 N*(+)(14)+N*(+)(14)-->N*(+)(15)+p
17174 * 26 N*(0)(14)+N*(0)(14)-->N*(0)(15)+n
17175 * 27 N*(+)(14)+N*(0)(14)-->N*(+)(15)+n
17176 * 28 N*(+)(14)+N*(0)(14)-->N*(0)(15)+p
17177 * 29 N*(+)(14)+D+-->N*(+)(15)+p
17178 * 30 N*(+)(14)+D0-->N*(+)(15)+n
17179 * 31 N*(+)(14)+D(-)-->N*(0)(1535)+n
17180 * 32 N*(0)(14)+D++--->N*(+)(15)+p
17181 * 33 N*(0)(14)+D+--->N*(+)(15)+n
17182 * 34 N*(0)(14)+D+--->N*(0)(15)+p
17183 * 35 N*(0)(14)+D0-->N*(0)(15)+n
17184 * 36 N*(+)(14)+D0--->N*(0)(15)+p
17186 ***********************************
17187 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
17188 1 AMP=0.93828,AP1=0.13496,AKA=0.498,APHI=1.020,
17189 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
17190 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
17191 COMMON /AA/ R(3,MAXSTR)
17193 COMMON /BB/ P(3,MAXSTR)
17195 COMMON /CC/ E(MAXSTR)
17197 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
17199 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
17201 common /gg/ dx,dy,dz,dpx,dpy,dpz
17203 COMMON /INPUT/ NSTAR,NDIRCT,DIR
17207 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
17211 COMMON /PA/RPION(3,MAXSTR,MAXR)
17213 COMMON /PB/PPION(3,MAXSTR,MAXR)
17215 COMMON /PC/EPION(MAXSTR,MAXR)
17217 COMMON /PD/LPION(MAXSTR,MAXR)
17219 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
17223 *-----------------------------------------------------------------------
17233 PR = SQRT( PX**2 + PY**2 + PZ**2 )
17234 * CAN HAPPEN ANY MORE ==> RETURN (2.04 = 2*AVMASS + PI-MASS+0.02)
17235 IF (SRT .LT. 2.04) RETURN
17236 * Resonance absorption or Delta + N-->N*(1440), N*(1535)
17237 * COM: TEST FOR DELTA OR N* ABSORPTION
17238 * IN THE PROCESS DELTA+N-->NN, N*+N-->NN
17239 PRF=SQRT(0.25*SRT**2-AVMASS**2)
17245 RENOM=DELTAM*PRF**2/DENOM(SRT,1.)/PR
17246 RENOMN=DELTAM*PRF**2/DENOM(SRT,2.)/PR
17247 RENOM1=DELTAM*PRF**2/DENOM(SRT,-1.)/PR
17248 * avoid the inelastic collisions between n+delta- -->N+N
17249 * and p+delta++ -->N+N due to charge conservation,
17250 * but they can scatter to produce kaons
17251 if((iabs(lb(i1)).eq.2).and.(iabs(lb(i2)).eq.6)) renom=0.
17252 if((iabs(lb(i2)).eq.2).and.(iabs(lb(i1)).eq.6)) renom=0.
17253 if((iabs(lb(i1)).eq.1).and.(iabs(lb(i2)).eq.9)) renom=0.
17254 if((iabs(lb(i2)).eq.1).and.(iabs(lb(i1)).eq.9)) renom=0.
17255 Call M1535(iabs(lb(i1)),iabs(lb(i2)),srt,x1535)
17256 X1440=(3./4.)*SIGMA(SRT,2,0,1)
17257 * CROSS SECTION FOR KAON PRODUCTION from the four channels
17269 c !! phi production
17272 if(srt.le.t1nlk)go to 222
17273 XSK1=1.5*PPLPK(SRT)
17277 if(srt.le.t1dlk)go to 222
17279 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
17281 XSK3=1.5*PPLPK(srt)
17285 if(srt.le.t1nsk)go to 222
17286 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
17288 XSK2=1.5*(PPK1(srt)+PPK0(srt))
17292 if(srt.le.t1dsk)go to 222
17293 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
17295 XSK4=1.5*(PPK1(srt)+PPK0(srt))
17298 if(srt.le.(2.*amn+aphi))go to 222
17299 c !! mb put the correct form
17303 * THE TOTAL KAON+ PRODUCTION CROSS SECTION IS THEN
17304 222 SIGK=XSK1+XSK2+XSK3+XSK4
17311 SIGK = 2.0 * SIGK + xsk5
17312 cbz3/7/99 neutralk end
17314 * avoid the inelastic collisions between n+delta- -->N+N
17315 * and p+delta++ -->N+N due to charge conservation,
17316 * but they can scatter to produce kaons
17317 if(((iabs(lb(i1)).eq.2).and.(iabs(lb(i2)).eq.6)).OR.
17318 & ((iabs(lb(i2)).eq.2).and.(iabs(lb(i1)).eq.6)).OR.
17319 & ((iabs(lb(i1)).eq.1).and.(iabs(lb(i2)).eq.9)).OR.
17320 & ((iabs(lb(i2)).eq.1).and.(iabs(lb(i1)).eq.9)))THEN
17324 * WE DETERMINE THE REACTION CHANNELS IN THE FOLLOWING
17325 * FOR n+delta(++)-->p+p or n+delta(++)-->n+N*(+)(1440),n+N*(+)(1535)
17326 * REABSORPTION OR N*(1535) PRODUCTION LIKE IN P+P OR N*(1440) LIKE PN,
17327 IF(LB(I1)*LB(I2).EQ.18.AND.
17328 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))then
17329 SIGND=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
17330 SIGDN=0.25*SIGND*RENOM
17331 xinel=SIGDN+X1440+X1535+SIGK
17334 * FOR p+delta(-)-->n+n or p+delta(-)-->n+N*(0)(1440),n+N*(0)(1535)
17335 * REABSORPTION OR N*(1535) PRODUCTION LIKE IN P+P OR N*(1440) LIKE PN,
17336 IF(LB(I1)*LB(I2).EQ.6.AND.
17337 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))THEN
17338 SIGND=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
17339 SIGDN=0.25*SIGND*RENOM
17340 xinel=SIGDN+X1440+X1535+SIGK
17343 * FOR p+delta(+)-->p+p, N*(+)(144)+p, N*(+)(1535)+p
17345 IF(LB(I1)*LB(I2).EQ.8.AND.
17346 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))THEN
17347 SIGND=1.5*SIGMA(SRT,1,1,1)
17348 SIGDN=0.25*SIGND*RENOM
17349 xinel=SIGDN+x1440+x1535+SIGK
17352 * FOR n+delta(0)-->n+n, N*(0)(144)+n, N*(0)(1535)+n
17353 IF(LB(I1)*LB(I2).EQ.14.AND.
17354 & (iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2))THEN
17355 SIGND=1.5*SIGMA(SRT,1,1,1)
17356 SIGDN=0.25*SIGND*RENOM
17357 xinel=SIGDN+x1440+x1535+SIGK
17360 * FOR n+delta(+)-->n+p, N*(+)(1440)+n,N*(0)(1440)+p,
17361 * N*(+)(1535)+n,N*(0)(1535)+p
17362 IF(LB(I1)*LB(I2).EQ.16.AND.
17363 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))THEN
17364 SIGND=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
17365 SIGDN=0.5*SIGND*RENOM
17366 xinel=SIGDN+2.*x1440+2.*x1535+SIGK
17369 * FOR p+delta(0)-->n+p, N*(+)(1440)+n,N*(0)(1440)+p,
17370 * N*(+)(1535)+n,N*(0)(1535)+p
17371 IF(LB(I1)*LB(I2).EQ.7)THEN
17372 SIGND=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
17373 SIGDN=0.5*SIGND*RENOM
17374 xinel=SIGDN+2.*x1440+2.*x1535+SIGK
17377 * FOR p+N*(0)(14)-->p+n, N*(+)(1535)+n,N*(0)(1535)+p
17378 * OR P+N*(0)(14)-->D(+)+N, D(0)+P,
17379 IF(LB(I1)*LB(I2).EQ.10.AND.
17380 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))then
17381 SIGND=(3./4.)*SIGMA(SRT,2,0,1)
17383 xinel=SIGDN+X1535+SIGK
17386 * FOR n+N*(+)-->p+n, N*(+)(1535)+n,N*(0)(1535)+p
17387 IF(LB(I1)*LB(I2).EQ.22.AND.
17388 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))then
17389 SIGND=(3./4.)*SIGMA(SRT,2,0,1)
17391 xinel=SIGDN+X1535+SIGK
17394 * FOR N*(1535)+N-->N+N COLLISIONS
17395 IF((iabs(LB(I1)).EQ.12).OR.(iabs(LB(I1)).EQ.13).OR.
17396 1 (iabs(LB(I2)).EQ.12).OR.(iabs(LB(I2)).EQ.13))THEN
17404 **********************************
17407 SUBROUTINE XDDIN(PX,PY,PZ,SRT,I1,I2,
17408 &XINEL,SIGK,XSK1,XSK2,XSK3,XSK4,XSK5)
17410 * DEALING WITH BARYON RESONANCE-BARYON RESONANCE COLLISIONS*
17412 * VALID ONLY FOR BARYON-BARYON-DISTANCES LESS THAN 1.32 FM *
17413 * (1.32 = 2 * HARD-CORE-RADIUS [HRC] ) *
17415 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
17416 * SRT - SQRT OF S *
17417 * NSTAR =1 INCLUDING N* RESORANCE,ELSE NOT *
17418 * NDIRCT=1 INCLUDING DIRECT PION PRODUCTION PROCESS *
17419 * IBLOCK - THE INFORMATION BACK *
17420 * 0-> COLLISION CANNOT HAPPEN *
17421 * 1-> N-N ELASTIC COLLISION *
17422 * 2-> N+N->N+DELTA,OR N+N->N+N* REACTION *
17423 * 3-> N+DELTA->N+N OR N+N*->N+N REACTION *
17424 * 4-> N+N->N+N+PION,DIRTCT PROCESS *
17425 * 5-> DELTA(N*)+DELTA(N*) TOTAL COLLISIONS *
17426 * N12 - IS USED TO SPECIFY BARYON-BARYON REACTION *
17427 * CHANNELS. M12 IS THE REVERSAL CHANNEL OF N12 *
17429 * M12=1 FOR p+n-->delta(+)+ n *
17430 * 2 p+n-->delta(0)+ p *
17431 * 3 p+p-->delta(++)+n *
17432 * 4 p+p-->delta(+)+p *
17433 * 5 n+n-->delta(0)+n *
17434 * 6 n+n-->delta(-)+p *
17435 * 7 n+p-->N*(0)(1440)+p *
17436 * 8 n+p-->N*(+)(1440)+n *
17437 * 9 p+p-->N*(+)(1535)+p *
17438 * 10 n+n-->N*(0)(1535)+n *
17439 * 11 n+p-->N*(+)(1535)+n *
17440 * 12 n+p-->N*(0)(1535)+p
17441 * 13 D(++)+D(-)-->N*(+)(1440)+n
17442 * 14 D(++)+D(-)-->N*(0)(1440)+p
17443 * 15 D(+)+D(0)--->N*(+)(1440)+n
17444 * 16 D(+)+D(0)--->N*(0)(1440)+p
17445 * 17 D(++)+D(0)-->N*(+)(1535)+p
17446 * 18 D(++)+D(-)-->N*(0)(1535)+p
17447 * 19 D(++)+D(-)-->N*(+)(1535)+n
17448 * 20 D(+)+D(+)-->N*(+)(1535)+p
17449 * 21 D(+)+D(0)-->N*(+)(1535)+n
17450 * 22 D(+)+D(0)-->N*(0)(1535)+p
17451 * 23 D(+)+D(-)-->N*(0)(1535)+n
17452 * 24 D(0)+D(0)-->N*(0)(1535)+n
17453 * 25 N*(+)(14)+N*(+)(14)-->N*(+)(15)+p
17454 * 26 N*(0)(14)+N*(0)(14)-->N*(0)(15)+n
17455 * 27 N*(+)(14)+N*(0)(14)-->N*(+)(15)+n
17456 * 28 N*(+)(14)+N*(0)(14)-->N*(0)(15)+p
17457 * 29 N*(+)(14)+D+-->N*(+)(15)+p
17458 * 30 N*(+)(14)+D0-->N*(+)(15)+n
17459 * 31 N*(+)(14)+D(-)-->N*(0)(1535)+n
17460 * 32 N*(0)(14)+D++--->N*(+)(15)+p
17461 * 33 N*(0)(14)+D+--->N*(+)(15)+n
17462 * 34 N*(0)(14)+D+--->N*(0)(15)+p
17463 * 35 N*(0)(14)+D0-->N*(0)(15)+n
17464 * 36 N*(+)(14)+D0--->N*(0)(15)+p
17466 * AND MORE CHANNELS AS LISTED IN THE NOTE BOOK
17468 * NOTE ABOUT N*(1440) RESORANCE: *
17469 * As it has been discussed in VerWest's paper,I= 1 (initial isospin)
17470 * channel can all be attributed to delta resorance while I= 0 *
17471 * channel can all be attribured to N* resorance.Only in n+p *
17472 * one can have I=0 channel so is the N*(1440) resorance *
17473 * REFERENCES: J. CUGNON ET AL., NUCL. PHYS. A352, 505 (1981) *
17474 * Y. KITAZOE ET AL., PHYS. LETT. 166B, 35 (1986) *
17475 * B. VerWest el al., PHYS. PRV. C25 (1982)1979 *
17476 * Gy. Wolf et al, Nucl Phys A517 (1990) 615 *
17477 * CUTOFF = 2 * AVMASS + 20 MEV *
17479 * for N*(1535) we use the parameterization by Gy. Wolf et al *
17480 * Nucl phys A552 (1993) 349, added May 18, 1994 *
17481 **********************************
17482 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
17483 1 AMP=0.93828,AP1=0.13496,AKA=0.498,APHI=1.020,
17484 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
17485 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
17486 COMMON /AA/ R(3,MAXSTR)
17488 COMMON /BB/ P(3,MAXSTR)
17490 COMMON /CC/ E(MAXSTR)
17492 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
17494 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
17496 common /gg/ dx,dy,dz,dpx,dpy,dpz
17498 COMMON /INPUT/ NSTAR,NDIRCT,DIR
17502 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
17506 COMMON /PA/RPION(3,MAXSTR,MAXR)
17508 COMMON /PB/PPION(3,MAXSTR,MAXR)
17510 COMMON /PC/EPION(MAXSTR,MAXR)
17512 COMMON /PD/LPION(MAXSTR,MAXR)
17514 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
17517 *-----------------------------------------------------------------------
17527 PR = SQRT( PX**2 + PY**2 + PZ**2 )
17528 * IF THERE WERE 2 N*(1535) AND THEY DIDN'T SCATT. ELAST.,
17529 * ALLOW THEM TO PRODUCE KAONS. NO OTHER INELASTIC CHANNELS
17531 C if((lb(i1).ge.12).and.(lb(i2).ge.12))return
17532 * ALL the inelastic collisions between N*(1535) and Delta as well
17533 * as N*(1440) TO PRODUCE KAONS, NO OTHER CHANNELS ARE KNOWN
17534 C if((lb(i1).ge.12).and.(lb(i2).ge.3))return
17535 C if((lb(i2).ge.12).and.(lb(i1).ge.3))return
17536 * calculate the N*(1535) production cross section in I1+I2 collisions
17537 call N1535(iabs(lb(i1)),iabs(lb(i2)),srt,X1535)
17539 * for Delta+Delta-->N*(1440 OR 1535)+N AND N*(1440)+N*(1440)-->N*(1535)+X
17540 * AND DELTA+N*(1440)-->N*(1535)+X
17541 * WE ASSUME THEY HAVE THE SAME CROSS SECTIONS as CORRESPONDING N+N COLLISION):
17542 * FOR D++D0, D+D+,D+D-,D0D0,N*+N*+,N*0N*0,N*(+)D+,N*(+)D(-),N*(0)D(0)
17543 * N*(1535) production, kaon production and reabsorption through
17544 * D(N*)+D(N*)-->NN are ALLOWED.
17545 * CROSS SECTION FOR KAON PRODUCTION from the four channels are
17558 if(srt.le.t1nlk)go to 222
17559 XSK1=1.5*PPLPK(SRT)
17563 if(srt.le.t1dlk)go to 222
17565 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
17567 XSK3=1.5*PPLPK(srt)
17571 if(srt.le.t1nsk)go to 222
17572 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
17574 XSK2=1.5*(PPK1(srt)+PPK0(srt))
17578 if(srt.le.t1dsk)go to 222
17579 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
17581 XSK4=1.5*(PPK1(srt)+PPK0(srt))
17584 if(srt.le.(2.*amn+aphi))go to 222
17585 c !! mb put the correct form
17588 * THE TOTAL KAON+ PRODUCTION CROSS SECTION IS THEN
17589 222 SIGK=XSK1+XSK2+XSK3+XSK4
17596 SIGK = 2.0 * SIGK + xsk5
17597 cbz3/7/99 neutralk end
17599 IDD=iabs(LB(I1)*LB(I2))
17600 * The reabsorption cross section for the process
17601 * D(N*)D(N*)-->NN is
17602 s2d=reab2d(i1,i2,srt)
17606 cbz3/16/99 pion end
17608 *(1) N*(1535)+D(N*(1440)) reactions
17609 * we allow kaon production and reabsorption only
17610 if(((iabs(lb(i1)).ge.12).and.(iabs(lb(i2)).ge.12)).OR.
17611 & ((iabs(lb(i1)).ge.12).and.(iabs(lb(i2)).ge.6)).OR.
17612 & ((iabs(lb(i2)).ge.12).and.(iabs(lb(i1)).ge.6)))THEN
17616 * channels have the same charge as pp
17617 IF((IDD.EQ.63).OR.(IDD.EQ.64).OR.(IDD.EQ.48).
17618 1 OR.(IDD.EQ.49).OR.(IDD.EQ.11*11).OR.(IDD.EQ.10*10).
17619 2 OR.(IDD.EQ.88).OR.(IDD.EQ.66).
17620 3 OR.(IDD.EQ.90).OR.(IDD.EQ.70))THEN
17621 XINEL=X1535+SIGK+s2d
17624 * IN DELTA+N*(1440) and N*(1440)+N*(1440) COLLISIONS,
17625 * N*(1535), kaon production and reabsorption are ALLOWED
17626 * IN N*(1440)+N*(1440) COLLISIONS, ONLY N*(1535) IS ALLOWED
17627 IF((IDD.EQ.110).OR.(IDD.EQ.77).OR.(IDD.EQ.80))THEN
17628 XINEL=X1535+SIGK+s2d
17631 IF((IDD.EQ.54).OR.(IDD.EQ.56))THEN
17632 * LIKE FOR N+P COLLISION,
17633 * IN DELTA+DELTA COLLISIONS BOTH N*(1440) AND N*(1535) CAN BE PRODUCED
17634 SIG2=(3./4.)*SIGMA(SRT,2,0,1)
17635 XINEL=2.*(SIG2+X1535)+SIGK+s2d
17640 ******************************************
17641 real function dirct1(srt)
17642 * This function contains the experimental, direct pion(+) + p cross sections *
17643 * srt = DSQRT(s) in GeV *
17644 * dirct1 = cross section in fm**2 *
17645 * earray = EXPerimental table with the srt
17646 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
17647 ******************************************
17648 c real*4 xarray(122), earray(122)
17649 real xarray(122), earray(122)
17652 &1.568300,1.578300,1.588300,1.598300,1.608300,1.618300,1.628300,
17653 &1.638300,1.648300,1.658300,1.668300,1.678300,1.688300,1.698300,
17654 &1.708300,1.718300,1.728300,1.738300,1.748300,1.758300,1.768300,
17655 &1.778300,1.788300,1.798300,1.808300,1.818300,1.828300,1.838300,
17656 &1.848300,1.858300,1.868300,1.878300,1.888300,1.898300,1.908300,
17657 &1.918300,1.928300,1.938300,1.948300,1.958300,1.968300,1.978300,
17658 &1.988300,1.998300,2.008300,2.018300,2.028300,2.038300,2.048300,
17659 &2.058300,2.068300,2.078300,2.088300,2.098300,2.108300,2.118300,
17660 &2.128300,2.138300,2.148300,2.158300,2.168300,2.178300,2.188300,
17661 &2.198300,2.208300,2.218300,2.228300,2.238300,2.248300,2.258300,
17662 &2.268300,2.278300,2.288300,2.298300,2.308300,2.318300,2.328300,
17663 &2.338300,2.348300,2.358300,2.368300,2.378300,2.388300,2.398300,
17664 &2.408300,2.418300,2.428300,2.438300,2.448300,2.458300,2.468300,
17665 &2.478300,2.488300,2.498300,2.508300,2.518300,2.528300,2.538300,
17666 &2.548300,2.558300,2.568300,2.578300,2.588300,2.598300,2.608300,
17667 &2.618300,2.628300,2.638300,2.648300,2.658300,2.668300,2.678300,
17668 &2.688300,2.698300,2.708300,2.718300,2.728300,2.738300,2.748300,
17669 &2.758300,2.768300,2.778300/
17671 &1.7764091E-02,0.5643668,0.8150568,1.045565,2.133695,3.327922,
17672 &4.206488,3.471242,4.486876,5.542213,6.800052,7.192446,6.829848,
17673 &6.580306,6.868410,8.527946,10.15720,9.716511,9.298335,8.901310,
17674 &10.31213,10.52185,11.17630,11.61639,12.05577,12.71596,13.46036,
17675 &14.22060,14.65449,14.94775,14.93310,15.32907,16.56481,16.29422,
17676 &15.18548,14.12658,13.72544,13.24488,13.31003,14.42680,12.84423,
17677 &12.49025,12.14858,11.81870,11.18993,11.35816,11.09447,10.83873,
17678 &10.61592,10.53754,9.425521,8.195912,9.661075,9.696192,9.200142,
17679 &8.953734,8.715461,8.484999,8.320765,8.255512,8.190969,8.127125,
17680 &8.079508,8.073004,8.010611,7.948909,7.887895,7.761005,7.626290,
17681 &7.494696,7.366132,7.530178,8.392097,9.046881,8.962544,8.879403,
17682 &8.797427,8.716601,8.636904,8.558312,8.404368,8.328978,8.254617,
17683 &8.181265,8.108907,8.037527,7.967100,7.897617,7.829057,7.761405,
17684 &7.694647,7.628764,7.563742,7.499570,7.387562,7.273281,7.161334,
17685 &6.973375,6.529592,6.280323,6.293136,6.305725,6.318097,6.330258,
17686 &6.342214,6.353968,6.365528,6.376895,6.388079,6.399081,6.409906,
17687 &6.420560,6.431045,6.441367,6.451529,6.461533,6.471386,6.481091,
17688 &6.490650,6.476413,6.297259,6.097826/
17691 if (srt .lt. earray(1)) then
17695 if (srt .gt. earray(122)) then
17696 dirct1 = xarray(122)
17701 *Interpolate double logarithmically to find xdirct2(srt)
17704 if (earray(ie) .eq. srt) then
17709 if (earray(ie) .gt. srt) then
17710 ymin = alog(xarray(ie-1))
17711 ymax = alog(xarray(ie))
17712 xmin = alog(earray(ie-1))
17713 xmax = alog(earray(ie))
17714 dirct1= exp(ymin + (alog(srt)-xmin)
17715 & *(ymax-ymin)/(xmax-xmin) )
17723 *******************************
17724 ******************************************
17725 real function dirct2(srt)
17726 * This function contains the experimental, direct pion(-) + p cross sections *
17727 * srt = DSQRT(s) in GeV *
17728 * dirct2 = cross section in fm**2
17729 * earray = EXPerimental table with the srt
17730 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
17731 ******************************************
17732 c real*4 xarray(122), earray(122)
17733 real xarray(122), earray(122)
17736 &1.568300,1.578300,1.588300,1.598300,1.608300,1.618300,1.628300,
17737 &1.638300,1.648300,1.658300,1.668300,1.678300,1.688300,1.698300,
17738 &1.708300,1.718300,1.728300,1.738300,1.748300,1.758300,1.768300,
17739 &1.778300,1.788300,1.798300,1.808300,1.818300,1.828300,1.838300,
17740 &1.848300,1.858300,1.868300,1.878300,1.888300,1.898300,1.908300,
17741 &1.918300,1.928300,1.938300,1.948300,1.958300,1.968300,1.978300,
17742 &1.988300,1.998300,2.008300,2.018300,2.028300,2.038300,2.048300,
17743 &2.058300,2.068300,2.078300,2.088300,2.098300,2.108300,2.118300,
17744 &2.128300,2.138300,2.148300,2.158300,2.168300,2.178300,2.188300,
17745 &2.198300,2.208300,2.218300,2.228300,2.238300,2.248300,2.258300,
17746 &2.268300,2.278300,2.288300,2.298300,2.308300,2.318300,2.328300,
17747 &2.338300,2.348300,2.358300,2.368300,2.378300,2.388300,2.398300,
17748 &2.408300,2.418300,2.428300,2.438300,2.448300,2.458300,2.468300,
17749 &2.478300,2.488300,2.498300,2.508300,2.518300,2.528300,2.538300,
17750 &2.548300,2.558300,2.568300,2.578300,2.588300,2.598300,2.608300,
17751 &2.618300,2.628300,2.638300,2.648300,2.658300,2.668300,2.678300,
17752 &2.688300,2.698300,2.708300,2.718300,2.728300,2.738300,2.748300,
17753 &2.758300,2.768300,2.778300/
17754 data xarray/0.5773182,1.404156,2.578629,3.832013,4.906011,
17755 &9.076963,13.10492,10.65975,15.31156,19.77611,19.92874,18.68979,
17756 &19.80114,18.39536,14.34269,13.35353,13.58822,14.57031,10.24686,
17757 &11.23386,9.764803,10.35652,10.53539,10.07524,9.582198,9.596469,
17758 &9.818489,9.012848,9.378012,9.529244,9.529698,8.835624,6.671396,
17759 &8.797758,8.133437,7.866227,7.823946,7.808504,7.791755,7.502062,
17760 &7.417275,7.592349,7.752028,7.910585,8.068122,8.224736,8.075289,
17761 &7.895902,7.721359,7.551512,7.386224,7.225343,7.068739,6.916284,
17762 &6.767842,6.623294,6.482520,6.345404,6.211833,7.339510,7.531462,
17763 &7.724824,7.919620,7.848021,7.639856,7.571083,7.508881,7.447474,
17764 &7.386855,7.327011,7.164454,7.001266,6.842526,6.688094,6.537823,
17765 &6.391583,6.249249,6.110689,5.975790,5.894200,5.959503,6.024602,
17766 &6.089505,6.154224,6.218760,6.283128,6.347331,6.297411,6.120248,
17767 &5.948606,6.494864,6.357106,6.222824,6.091910,5.964267,5.839795,
17768 &5.718402,5.599994,5.499146,5.451325,5.404156,5.357625,5.311721,
17769 &5.266435,5.301964,5.343963,5.385833,5.427577,5.469200,5.510702,
17770 &5.552088,5.593359,5.634520,5.675570,5.716515,5.757356,5.798093,
17771 &5.838732,5.879272,5.919717,5.960068,5.980941/
17774 if (srt .lt. earray(1)) then
17778 if (srt .gt. earray(122)) then
17779 dirct2 = xarray(122)
17784 *Interpolate double logarithmically to find xdirct2(srt)
17787 if (earray(ie) .eq. srt) then
17792 if (earray(ie) .gt. srt) then
17793 ymin = alog(xarray(ie-1))
17794 ymax = alog(xarray(ie))
17795 xmin = alog(earray(ie-1))
17796 xmax = alog(earray(ie))
17797 dirct2= exp(ymin + (alog(srt)-xmin)
17798 & *(ymax-ymin)/(xmax-xmin) )
17806 *******************************
17807 ******************************
17808 * this program calculates the elastic cross section for rho+nucleon
17809 * through higher resonances
17810 c real*4 function ErhoN(em1,em2,lb1,lb2,srt)
17811 real function ErhoN(em1,em2,lb1,lb2,srt)
17812 * date : Dec. 19, 1994
17813 * ****************************
17814 c implicit real*4 (a-h,o-z)
17815 dimension arrayj(19),arrayl(19),arraym(19),
17816 &arrayw(19),arrayb(19)
17818 data arrayj /0.5,1.5,0.5,0.5,2.5,2.5,1.5,0.5,1.5,3.5,
17819 &1.5,0.5,1.5,0.5,2.5,0.5,1.5,2.5,3.5/
17820 data arrayl/1,2,0,0,2,3,2,1,1,3,
17821 &1,0,2,0,3,1,1,2,3/
17822 data arraym /1.44,1.52,1.535,1.65,1.675,1.68,1.70,1.71,
17823 &1.72,1.99,1.60,1.62,1.70,1.90,1.905,1.910,
17825 data arrayw/0.2,0.125,0.15,0.15,0.155,0.125,0.1,0.11,
17826 &0.2,0.29,0.25,0.16,0.28,0.15,0.3,0.22,0.25,
17828 data arrayb/0.15,0.20,0.05,0.175,0.025,0.125,0.1,0.20,
17829 &0.53,0.34,0.05,0.07,0.15,0.45,0.45,0.058,
17832 * the minimum energy for pion+delta collision
17835 * include contribution from each resonance
17839 c if(lb1*lb2.eq.27.OR.LB1*LB2.EQ.25*2)branch=0.
17840 c if(lb1*lb2.eq.26.OR.LB1*LB2.EQ.26*2)branch=1./3.
17841 c if(lb1*lb2.eq.27*2.OR.LB1*LB2.EQ.25)branch=2./3.
17843 c if(lb1*lb2.eq.27.OR.LB1*LB2.EQ.25*2)branch=1.
17844 c if(lb1*lb2.eq.26.OR.LB1*LB2.EQ.26*2)branch=2./3.
17845 c if(lb1*lb2.eq.27*2.OR.LB1*LB2.EQ.25)branch=1./3.
17847 if( ((lb1*lb2.eq.27.AND.(LB1.EQ.1.OR.LB2.EQ.1)).OR.
17848 & (LB1*LB2.EQ.25*2.AND.(LB1.EQ.2.OR.LB2.EQ.2)))
17849 & .OR.((lb1*lb2.eq.-25.AND.(LB1.EQ.-1.OR.LB2.EQ.-1)).OR.
17850 & (LB1*LB2.EQ.-27*2.AND.(LB1.EQ.-2.OR.LB2.EQ.-2))) )
17852 if((iabs(lb1*lb2).eq.26.AND.(iabs(LB1).EQ.1.OR.iabs(LB2).EQ.1))
17853 & .OR.(iabs(LB1*LB2).EQ.26*2
17854 & .AND.(iabs(LB1).EQ.2.OR.iabs(LB2).EQ.2)))
17856 if( ((lb1*lb2.eq.27*2.AND.(LB1.EQ.2.OR.LB2.EQ.2)).OR.
17857 & (LB1*LB2.EQ.25.AND.(LB1.EQ.1.OR.LB2.EQ.1)))
17858 & .OR.((lb1*lb2.eq.-25*2.AND.(LB1.EQ.-2.OR.LB2.EQ.-2)).OR.
17859 & (LB1*LB2.EQ.-27.AND.(LB1.EQ.-1.OR.LB2.EQ.-1))) )
17862 if( ((lb1*lb2.eq.27.AND.(LB1.EQ.1.OR.LB2.EQ.1)).OR.
17863 & (LB1*LB2.EQ.25*2.AND.(LB1.EQ.2.OR.LB2.EQ.2)))
17864 & .OR.((lb1*lb2.eq.-25.AND.(LB1.EQ.-1.OR.LB2.EQ.-1)).OR.
17865 & (LB1*LB2.EQ.-27*2.AND.(LB1.EQ.-2.OR.LB2.EQ.-2))) )
17867 if((iabs(lb1*lb2).eq.26.AND.(iabs(LB1).EQ.1.OR.iabs(LB2).EQ.1))
17868 & .OR.(iabs(LB1*LB2).EQ.26*2
17869 & .AND.(iabs(LB1).EQ.2.OR.iabs(LB2).EQ.2)))
17871 if( ((lb1*lb2.eq.27*2.AND.(LB1.EQ.2.OR.LB2.EQ.2)).OR.
17872 & (LB1*LB2.EQ.25.AND.(LB1.EQ.1.OR.LB2.EQ.1)))
17873 & .OR.((lb1*lb2.eq.-25*2.AND.(LB1.EQ.-2.OR.LB2.EQ.-2)).OR.
17874 & (LB1*LB2.EQ.-27.AND.(LB1.EQ.-1.OR.LB2.EQ.-1))) )
17878 xs0=fdR(arraym(ir),arrayj(ir),arrayl(ir),
17879 &arrayw(ir),arrayb(ir),srt,EM1,EM2)
17880 xs=xs+1.3*pi*branch*xs0*(0.1973)**2
17885 ***************************8
17886 *FUNCTION FDE(DMASS) GIVES DELTA MASS DISTRIBUTION BY USING OF
17888 c REAL*4 FUNCTION FDR(DMASS,aj,al,width,widb0,srt,em1,em2)
17889 REAL FUNCTION FDR(DMASS,aj,al,width,widb0,srt,em1,em2)
17893 Ak02= 0.25*(DMASS**2-amd**2-amp**2)**2
17895 IF (ak02 .GT. 0.) THEN
17896 Q0 = SQRT(ak02/DMASS)
17902 Ak2= 0.25*(srt**2-amd**2-amp**2)**2
17904 IF (ak2 .GT. 0.) THEN
17905 Q = SQRT(ak2/DMASS)
17911 b=widb0*1.2*dmass/srt*(q/q0)**(2.*al+1)
17912 & /(1.+0.2*(q/q0)**(2*al))
17913 FDR=(2.*aj+1)*WIDTH**2*b/((srt-dmass)**2
17914 1 +0.25*WIDTH**2)/(6.*q**2)
17917 ******************************
17918 * this program calculates the elastic cross section for pion+delta
17919 * through higher resonances
17920 c REAL*4 FUNCTION DIRCT3(SRT)
17921 REAL FUNCTION DIRCT3(SRT)
17922 * date : Dec. 19, 1994
17923 * ****************************
17924 c implicit real*4 (a-h,o-z)
17925 dimension arrayj(17),arrayl(17),arraym(17),
17926 &arrayw(17),arrayb(17)
17928 data arrayj /1.5,0.5,2.5,2.5,1.5,0.5,1.5,3.5,
17929 &1.5,0.5,1.5,0.5,2.5,0.5,1.5,2.5,3.5/
17930 data arrayl/2,0,2,3,2,1,1,3,
17931 &1,0,2,0,3,1,1,2,3/
17932 data arraym /1.52,1.65,1.675,1.68,1.70,1.71,
17933 &1.72,1.99,1.60,1.62,1.70,1.90,1.905,1.910,
17935 data arrayw/0.125,0.15,0.155,0.125,0.1,0.11,
17936 &0.2,0.29,0.25,0.16,0.28,0.15,0.3,0.22,0.25,
17938 data arrayb/0.55,0.6,0.375,0.6,0.1,0.15,
17939 &0.15,0.05,0.35,0.3,0.15,0.1,0.1,0.22,
17942 * the minimum energy for pion+delta collision
17947 * include contribution from each resonance
17950 if(ir.gt.8)branch=2./3.
17951 xs0=fd1(arraym(ir),arrayj(ir),arrayl(ir),
17952 &arrayw(ir),arrayb(ir),srt)
17953 xs=xs+1.3*pi*branch*xs0*(0.1973)**2
17958 ***************************8
17959 *FUNCTION FDE(DMASS) GIVES DELTA MASS DISTRIBUTION BY USING OF
17961 c REAL*4 FUNCTION FD1(DMASS,aj,al,width,widb0,srt)
17962 REAL FUNCTION FD1(DMASS,aj,al,width,widb0,srt)
17967 Ak02= 0.25*(DMASS**2-amd**2-amp**2)**2
17969 IF (ak02 .GT. 0.) THEN
17970 Q0 = SQRT(ak02/DMASS)
17976 Ak2= 0.25*(srt**2-amd**2-amp**2)**2
17978 IF (ak2 .GT. 0.) THEN
17979 Q = SQRT(ak2/DMASS)
17985 b=widb0*1.2*dmass/srt*(q/q0)**(2.*al+1)
17986 & /(1.+0.2*(q/q0)**(2*al))
17987 FD1=(2.*aj+1)*WIDTH**2*b/((srt-dmass)**2
17988 1 +0.25*WIDTH**2)/(2.*q**2)
17991 ******************************
17992 * this program calculates the elastic cross section for pion+delta
17993 * through higher resonances
17994 c REAL*4 FUNCTION DPION(EM1,EM2,LB1,LB2,SRT)
17995 REAL FUNCTION DPION(EM1,EM2,LB1,LB2,SRT)
17996 * date : Dec. 19, 1994
17997 * ****************************
17998 c implicit real*4 (a-h,o-z)
17999 dimension arrayj(19),arrayl(19),arraym(19),
18000 &arrayw(19),arrayb(19)
18002 data arrayj /0.5,1.5,0.5,0.5,2.5,2.5,1.5,0.5,1.5,3.5,
18003 &1.5,0.5,1.5,0.5,2.5,0.5,1.5,2.5,3.5/
18004 data arrayl/1,2,0,0,2,3,2,1,1,3,
18005 &1,0,2,0,3,1,1,2,3/
18006 data arraym /1.44,1.52,1.535,1.65,1.675,1.68,1.70,1.71,
18007 &1.72,1.99,1.60,1.62,1.70,1.90,1.905,1.910,
18009 data arrayw/0.2,0.125,0.15,0.15,0.155,0.125,0.1,0.11,
18010 &0.2,0.29,0.25,0.16,0.28,0.15,0.3,0.22,0.25,
18012 data arrayb/0.15,0.25,0.,0.05,0.575,0.125,0.379,0.10,
18013 &0.10,0.062,0.45,0.60,0.6984,0.05,0.25,0.089,
18016 * the minimum energy for pion+delta collision
18021 * include contribution from each resonance
18026 c IF(LB1*LB2.EQ.5*7.OR.LB1*LB2.EQ.3*8)branch=1./6.
18027 c IF(LB1*LB2.EQ.4*7.OR.LB1*LB2.EQ.4*8)branch=1./3.
18028 c IF(LB1*LB2.EQ.5*6.OR.LB1*LB2.EQ.3*9)branch=1./2.
18030 c IF(LB1*LB2.EQ.5*8.OR.LB1*LB2.EQ.5*6)branch=2./5.
18031 c IF(LB1*LB2.EQ.3*9.OR.LB1*LB2.EQ.3*7)branch=2./5.
18032 c IF(LB1*LB2.EQ.5*7.OR.LB1*LB2.EQ.3*8)branch=8./15.
18033 c IF(LB1*LB2.EQ.4*7.OR.LB1*LB2.EQ.4*8)branch=1./15.
18034 c IF(LB1*LB2.EQ.4*9.OR.LB1*LB2.EQ.4*6)branch=3./5.
18036 IF( ((LB1*LB2.EQ.5*7.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18037 & (LB1*LB2.EQ.3*8.AND.(LB1.EQ.3.OR.LB2.EQ.3)))
18038 & .OR.((LB1*LB2.EQ.-3*7.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18039 & (LB1*LB2.EQ.-5*8.AND.(LB1.EQ.5.OR.LB2.EQ.5))) )
18041 IF((iabs(LB1*LB2).EQ.4*7.AND.(LB1.EQ.4.OR.LB2.EQ.4)).OR.
18042 & (iabs(LB1*LB2).EQ.4*8.AND.(LB1.EQ.4.OR.LB2.EQ.4)))
18044 IF( ((LB1*LB2.EQ.5*6.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18045 & (LB1*LB2.EQ.3*9.AND.(LB1.EQ.3.OR.LB2.EQ.3)))
18046 & .OR.((LB1*LB2.EQ.-3*6.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18047 & (LB1*LB2.EQ.-5*9.AND.(LB1.EQ.5.OR.LB2.EQ.5))) )
18050 IF( ((LB1*LB2.EQ.5*8.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18051 & (LB1*LB2.EQ.5*6.AND.(LB1.EQ.5.OR.LB2.EQ.5)))
18052 & .OR.((LB1*LB2.EQ.-3*8.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18053 & (LB1*LB2.EQ.-3*6.AND.(LB1.EQ.3.OR.LB2.EQ.3))) )
18055 IF( ((LB1*LB2.EQ.3*9.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18056 & (LB1*LB2.EQ.3*7.AND.(LB1.EQ.3.OR.LB2.EQ.3)))
18057 & .OR. ((LB1*LB2.EQ.-5*9.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18058 & (LB1*LB2.EQ.-5*7.AND.(LB1.EQ.5.OR.LB2.EQ.5))) )
18060 IF( ((LB1*LB2.EQ.5*7.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18061 & (LB1*LB2.EQ.3*8.AND.(LB1.EQ.3.OR.LB2.EQ.3)))
18062 & .OR.((LB1*LB2.EQ.-3*7.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18063 & (LB1*LB2.EQ.-5*8.AND.(LB1.EQ.5.OR.LB2.EQ.5))) )
18065 IF((iabs(LB1*LB2).EQ.4*7.AND.(LB1.EQ.4.OR.LB2.EQ.4)).OR.
18066 & (iabs(LB1*LB2).EQ.4*8.AND.(LB1.EQ.4.OR.LB2.EQ.4)))
18068 IF((iabs(LB1*LB2).EQ.4*9.AND.(LB1.EQ.4.OR.LB2.EQ.4)).OR.
18069 & (iabs(LB1*LB2).EQ.4*6.AND.(LB1.EQ.4.OR.LB2.EQ.4)))
18073 xs0=fd2(arraym(ir),arrayj(ir),arrayl(ir),
18074 &arrayw(ir),arrayb(ir),EM1,EM2,srt)
18075 xs=xs+1.3*pi*branch*xs0*(0.1973)**2
18080 ***************************8
18081 *FUNCTION FDE(DMASS) GIVES DELTA MASS DISTRIBUTION BY USING OF
18083 c REAL*4 FUNCTION FD2(DMASS,aj,al,width,widb0,EM1,EM2,srt)
18084 REAL FUNCTION FD2(DMASS,aj,al,width,widb0,EM1,EM2,srt)
18088 Ak02= 0.25*(DMASS**2-amd**2-amp**2)**2
18090 IF (ak02 .GT. 0.) THEN
18091 Q0 = SQRT(ak02/DMASS)
18097 Ak2= 0.25*(srt**2-amd**2-amp**2)**2
18099 IF (ak2 .GT. 0.) THEN
18100 Q = SQRT(ak2/DMASS)
18106 b=widb0*1.2*dmass/srt*(q/q0)**(2.*al+1)
18107 & /(1.+0.2*(q/q0)**(2*al))
18108 FD2=(2.*aj+1)*WIDTH**2*b/((srt-dmass)**2
18109 1 +0.25*WIDTH**2)/(4.*q**2)
18112 ***************************8
18113 * MASS GENERATOR for two resonances simultaneously
18114 subroutine Rmasdd(srt,am10,am20,
18115 &dmin1,dmin2,ISEED,ic,dm1,dm2)
18116 COMMON/RNDF77/NSEED
18122 * the maximum mass for resonance 1
18124 * generate the mass for the first resonance
18129 10 DM1 = RANART(NSEED) * (DMAX1-DMIN1) + DMIN1
18131 * the maximum mass for resonance 2
18132 if(ictrl.eq.0)dmax2=srt-dm1
18133 * generate the mass for the second resonance
18134 20 dm2=RANART(NSEED)*(dmax2-dmin2)+dmin2
18136 * check the energy-momentum conservation with two masses
18137 * q2 in the following is q**2*4*srt**2
18138 q2=((srt**2-dm1**2-dm2**2)**2-4.*dm1**2*dm2**2)
18145 * determine the weight of the mass pair
18146 IF(DMAX1.LT.am10) THEN
18147 if(ic.eq.1)FM1=Fmassd(DMAX1)
18148 if(ic.eq.2)FM1=Fmassn(DMAX1)
18149 if(ic.eq.3)FM1=Fmassd(DMAX1)
18150 if(ic.eq.4)FM1=Fmassd(DMAX1)
18152 if(ic.eq.1)FM1=Fmassd(am10)
18153 if(ic.eq.2)FM1=Fmassn(am10)
18154 if(ic.eq.3)FM1=Fmassd(am10)
18155 if(ic.eq.4)FM1=Fmassd(am10)
18157 IF(DMAX2.LT.am20) THEN
18158 if(ic.eq.1)FM2=Fmassd(DMAX2)
18159 if(ic.eq.2)FM2=Fmassn(DMAX2)
18160 if(ic.eq.3)FM2=Fmassn(DMAX2)
18161 if(ic.eq.4)FM2=Fmassr(DMAX2)
18163 if(ic.eq.1)FM2=Fmassd(am20)
18164 if(ic.eq.2)FM2=Fmassn(am20)
18165 if(ic.eq.3)FM2=Fmassn(am20)
18166 if(ic.eq.4)FM2=Fmassr(am20)
18168 IF(FM1.EQ.0.)FM1=1.e-04
18169 IF(FM2.EQ.0.)FM2=1.e-04
18171 if(ic.eq.1)prob=Fmassd(dm1)*fmassd(dm2)
18172 if(ic.eq.2)prob=Fmassn(dm1)*fmassn(dm2)
18173 if(ic.eq.3)prob=Fmassd(dm1)*fmassn(dm2)
18174 if(ic.eq.4)prob=Fmassd(dm1)*fmassr(dm2)
18175 if(prob.le.1.e-06)prob=1.e-06
18178 IF(RANART(NSEED).GT.fff.AND.
18179 1 NTRY.LE.20) GO TO 10
18181 clin-2/26/03 limit the mass of (rho,Delta,N*1440) below a certain value
18182 c (here taken as its central value + 2* B-W fullwidth):
18183 if((abs(am10-0.77).le.0.01.and.dm1.gt.1.07)
18184 1 .or.(abs(am10-1.232).le.0.01.and.dm1.gt.1.47)
18185 2 .or.(abs(am10-1.44).le.0.01.and.dm1.gt.2.14)) goto 5
18186 if((abs(am20-0.77).le.0.01.and.dm2.gt.1.07)
18187 1 .or.(abs(am20-1.232).le.0.01.and.dm2.gt.1.47)
18188 2 .or.(abs(am20-1.44).le.0.01.and.dm2.gt.2.14)) goto 5
18192 *FUNCTION Fmassd(DMASS) GIVES the delta MASS DISTRIBUTION
18193 REAL FUNCTION Fmassd(DMASS)
18196 Fmassd=am0*WIDTH(DMASS)/((DMASS**2-am0**2)**2
18197 1 +am0**2*WIDTH(DMASS)**2)
18200 *FUNCTION Fmassn(DMASS) GIVES the N* MASS DISTRIBUTION
18201 REAL FUNCTION Fmassn(DMASS)
18204 Fmassn=am0*W1440(DMASS)/((DMASS**2-am0**2)**2
18205 1 +am0**2*W1440(DMASS)**2)
18208 *FUNCTION Fmassr(DMASS) GIVES the rho MASS DISTRIBUTION
18209 REAL FUNCTION Fmassr(DMASS)
18213 Fmassr=am0*Wid/((DMASS**2-am0**2)**2
18217 **********************************
18218 * PURPOSE : flow analysis
18219 * DATE : Feb. 1, 1995
18220 ***********************************
18221 subroutine flow(nt)
18222 c IMPLICIT REAL*4 (A-H,O-Z)
18223 PARAMETER ( PI=3.1415926,APion=0.13957,aka=0.498)
18224 PARAMETER (MAXSTR=150001,MAXR=1,AMU= 0.9383,etaM=0.5475)
18225 DIMENSION ypion(-80:80),ypr(-80:80),ykaon(-80:80)
18226 dimension pxpion(-80:80),pxpro(-80:80),pxkaon(-80:80)
18227 *----------------------------------------------------------------------*
18228 COMMON /AA/ R(3,MAXSTR)
18230 COMMON /BB/ P(3,MAXSTR)
18232 COMMON /CC/ E(MAXSTR)
18234 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
18236 COMMON /RR/ MASSR(0:MAXR)
18240 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
18243 *----------------------------------------------------------------------*
18248 LY=NINT((YCUT2-YCUT1)/DY)
18249 ***********************************
18250 C initialize the transverse momentum counters
18266 IS=IS+MASSR(NRUN-1)
18267 DO 20 J=1,MASSR(NRUN)
18269 * for protons go to 200 to calculate its rapidity and transvese momentum
18271 e00=sqrt(P(1,I)**2+P(2,i)**2+P(3,i)**2+e(I)**2)
18272 y00=0.5*alog((e00+p(3,i))/(e00-p(3,i)))
18273 if(abs(y00).ge.ycut2)go to 20
18275 if(abs(iy).ge.80)go to 20
18276 if(e(i).eq.0)go to 20
18277 if(lb(i).ge.25)go to 20
18278 if((lb(i).le.5).and.(lb(i).ge.3))go to 50
18279 if(lb(i).eq.1.or.lb(i).eq.2)go to 200
18281 c if(lb(i).ge.6.and.lb(i).le.15)go to 200
18282 if(lb(i).ge.6.and.lb(i).le.17)go to 200
18284 if(lb(i).eq.23)go to 400
18286 * calculate rapidity and transverse momentum distribution for pions
18288 * (2) rapidity distribution in the cms frame
18289 ypion(iy)=ypion(iy)+1
18290 pxpion(iy)=pxpion(iy)+p(1,i)/e(I)
18292 * calculate rapidity and transverse energy distribution for baryons
18294 pxpro(iy)=pxpro(iy)+p(1,I)/E(I)
18298 ykaon(iy)=ykaon(iy)+1.
18299 pxkaon(iy)=pxkaon(iy)+p(1,i)/E(i)
18301 C PRINT OUT NUCLEON'S TRANSVERSE MOMENTUM distribution
18309 IF(ypr(npt).eq.0) go to 101
18310 pxpro(NPT)=-Pxpro(NPT)/ypr(NPT)
18311 DNUC=Pxpro(NPT)/SQRT(ypr(NPT))
18312 c WRITE(1041,*)NPT*DY,Pxpro(NPT),DNUC
18313 c print pion's transverse momentum distribution
18314 101 IF(ypion(npt).eq.0) go to 102
18315 pxpion(NPT)=-pxpion(NPT)/ypion(NPT)
18316 DNUCp=pxpion(NPT)/SQRT(ypion(NPT))
18317 c WRITE(1042,*)NPT*DY,Pxpion(NPT),DNUCp
18319 102 IF(ykaon(npt).eq.0) go to 3
18320 pxkaon(NPT)=-pxkaon(NPT)/ykaon(NPT)
18321 DNUCk=pxkaon(NPT)/SQRT(ykaon(NPT))
18322 c WRITE(1043,*)NPT*DY,Pxkaon(NPT),DNUCk
18324 ********************************
18325 * OUTPUT PION AND PROTON RAPIDITY DISTRIBUTIONS
18329 IF(YPR(M).NE.0)DYPR=SQRT(YPR(M))/FLOAT(NRUN)/DY
18330 YPR(M)=YPR(M)/FLOAT(NRUN)/DY
18331 c WRITE(1090,'(E11.3,2X,E11.3,2X,E11.3)')m*DY,YPR(M),DYPR
18334 IF(YPION(M).NE.0)DYPION=SQRT(YPION(M))/FLOAT(NRUN)/DY
18335 YPION(M)=YPION(M)/FLOAT(NRUN)/DY
18336 c WRITE(1091,'(E11.3,2X,E11.3,2X,E11.3)')m*DY,YPION(M),DYPION
18339 IF(YKAON(M).NE.0)DYKAON=SQRT(YKAON(M))/FLOAT(NRUN)/DY
18340 YKAON(M)=YKAON(M)/FLOAT(NRUN)/DY
18341 c WRITE(1092,'(E11.3,2X,E11.3,2X,E11.3)')m*DY,YKAON(M),DYKAON
18346 ********************************************
18347 * Purpose: pp_bar annihilation cross section as a functon of their cms energy
18348 c real*4 function xppbar(srt)
18349 real function xppbar(srt)
18350 * srt = DSQRT(s) in GeV *
18351 * xppbar = pp_bar annihilation cross section in mb *
18353 * Reference: G.J. Wang, R. Bellwied, C. Pruneau and G. Welke
18354 * Proc. of the 14th Winter Workshop on Nuclear Dynamics,
18355 * Snowbird, Utah 31, Eds. W. Bauer and H.G. Ritter
18356 * (Plenum Publishing, 1998) *
18358 ******************************************
18359 Parameter (pmass=0.9383,xmax=400.)
18362 * (1) we introduce a new parameter xmax=400 mb:
18363 * the maximum annihilation xsection
18364 * there are shadowing effects in pp_bar annihilation, with this parameter
18365 * we can probably look at these effects
18366 * (2) Calculate p(lab) from srt [GeV], since the formular in the
18367 * reference applies only to the case of a p_bar on a proton at rest
18368 * Formula used: srt**2=2.*pmass*(pmass+sqrt(pmass**2+plab**2))
18370 plab2=(srt**2/(2.*pmass)-pmass)**2-pmass**2
18373 xppbar=67./(plab**0.7)
18374 if(xppbar.gt.xmax)xppbar=xmax
18379 **********************************
18381 ********************************************
18382 * Purpose: To generate randomly the no. of pions in the final
18383 * state of pp_bar annihilation according to a statistical
18384 * model by using of the rejection method.
18386 c real*4 function pbarfs(srt,npion,iseed)
18387 subroutine pbarfs(srt,npion,iseed)
18390 * srt: DSQRT(s) in GeV *
18391 * npion: No. of pions produced in the annihilation of ppbar at srt *
18392 * nmax=6, cutoff of the maximum no. of n the code can handle
18394 * Reference: C.M. Ko and R. Yuan, Phys. Lett. B192 (1987) 31 *
18396 ******************************************
18397 parameter (pimass=0.140,pi=3.1415926)
18398 Dimension factor(6),pnpi(6)
18399 COMMON/RNDF77/NSEED
18403 C the factorial coefficients in the pion no. distribution
18404 * from n=2 to 6 calculated use the formula in the reference
18410 ene=(srt/pimass)**3/(6.*pi**2)
18411 c the relative probability from n=2 to 6
18413 pnpi(n)=ene**n*factor(n)
18415 c find the maximum of the probabilities, I checked a
18416 c Fortan manual: max() returns the maximum value of
18417 c the same type as in the argument list
18418 pmax=max(pnpi(2),pnpi(3),pnpi(4),pnpi(5),pnpi(6))
18419 c randomly generate n between 2 and 6
18421 10 npion=2+int(5*RANART(NSEED))
18422 clin-4/2008 check bounds:
18423 if(npion.gt.6) goto 10
18424 thisp=pnpi(npion)/pmax
18426 c decide whether to take this npion according to the distribution
18427 c using rejection method.
18428 if((thisp.lt.RANART(NSEED)).and.(ntry.le.20)) go to 10
18429 c now take the last generated npion and return
18432 **********************************
18436 ******************************************
18437 * purpose: Xsection for K+ K- to pi+ pi-
18438 c real*4 function xkkpi(srt)
18439 * srt = DSQRT(s) in GeV *
18440 * xkkpi = xsection in mb obtained from
18441 * the detailed balance *
18442 * ******************************************
18443 c parameter (pimass=0.140,aka=0.498)
18445 c ppi2=(srt/2)**2-pimass**2
18446 c pk2=(srt/2)**2-aka**2
18447 c if(ppi2.le.0.or.pk2.le.0)return
18449 c xkkpi=ppi2/pk2*pipik(srt)
18450 c xkkpi=9.0 / 4.0 * ppi2/pk2*pipik(srt)
18451 c xkkpi = 2.0 * xkkpi
18452 cbz3/9/99 kkbar end
18458 cbz3/9/99 kkbar end
18461 cbz3/9/99 kkbar end
18464 *****************************
18465 * purpose: Xsection for K+ K- to pi+ pi-
18466 SUBROUTINE XKKANN(SRT, XSK1, XSK2, XSK3, XSK4, XSK5,
18467 & XSK6, XSK7, XSK8, XSK9, XSK10, XSK11, SIGK, rrkk)
18468 * srt = DSQRT(s) in GeV *
18469 * xsk1 = annihilation into pi pi *
18470 * xsk2 = annihilation into pi rho (shifted to XKKSAN) *
18471 * xsk3 = annihilation into pi omega (shifted to XKKSAN) *
18472 * xsk4 = annihilation into pi eta *
18473 * xsk5 = annihilation into rho rho *
18474 * xsk6 = annihilation into rho omega *
18475 * xsk7 = annihilation into rho eta (shifted to XKKSAN) *
18476 * xsk8 = annihilation into omega omega *
18477 * xsk9 = annihilation into omega eta (shifted to XKKSAN) *
18478 * xsk10 = annihilation into eta eta *
18479 * sigk = xsection in mb obtained from *
18480 * the detailed balance *
18481 * ***************************
18482 PARAMETER (MAXSTR=150001, MAXX=20, MAXZ=24)
18483 PARAMETER (AKA=0.498, PIMASS=0.140, RHOM = 0.770,
18484 & OMEGAM = 0.7819, ETAM = 0.5473, APHI=1.02)
18485 COMMON /AA/ R(3,MAXSTR)
18487 COMMON /BB/ P(3,MAXSTR)
18489 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
18491 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
18492 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
18493 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
18511 XPION0 = PIPIK(SRT)
18512 c.....take into account both K+ and K0
18513 XPION0 = 2.0 * XPION0
18514 PI2 = S * (S - 4.0 * AKA ** 2)
18515 if(PI2 .le. 0.0)return
18519 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18520 IF (PF2 .GT. 0.0) THEN
18521 XSK1 = 9.0 / 4.0 * PF2 / PI2 * XPION0
18524 clin-8/28/00 (pi eta) eta -> K+K- is assumed the same as pi pi -> K+K-:
18527 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18528 IF (PF2 .GT. 0.0) THEN
18529 XSK4 = 3.0 / 4.0 * PF2 / PI2 * XPION0
18534 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18535 IF (PF2 .GT. 0.0) THEN
18536 XSK10 = 1.0 / 4.0 * PF2 / PI2 * XPION0
18541 clin-11/07/00: (pi eta) (rho omega) -> K* Kbar (or K*bar K) instead to K Kbar:
18544 c PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18545 c IF (PF2 .GT. 0.0) THEN
18546 c XSK2 = 27.0 / 4.0 * PF2 / PI2 * XPION0
18551 c PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18552 c IF (PF2 .GT. 0.0) THEN
18553 c XSK3 = 9.0 / 4.0 * PF2 / PI2 * XPION0
18558 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18559 IF (PF2 .GT. 0.0) THEN
18560 XSK5 = 81.0 / 4.0 * PF2 / PI2 * XPION0
18565 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18566 IF (PF2 .GT. 0.0) THEN
18567 XSK6 = 27.0 / 4.0 * PF2 / PI2 * XPION0
18572 c PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18573 c IF (PF2 .GT. 0.0) THEN
18574 c XSK7 = 9.0 / 4.0 * PF2 / PI2 * XPION0
18579 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18580 IF (PF2 .GT. 0.0) THEN
18581 XSK8 = 9.0 / 4.0 * PF2 / PI2 * XPION0
18586 c PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18587 c IF (PF2 .GT. 0.0) THEN
18588 c XSK9 = 3.0 / 4.0 * PF2 / PI2 * XPION0
18592 fwdp = 1.68*(aphi**2-4.*aka**2)**1.5/6./aphi/aphi
18593 pkaon=0.5*sqrt(srt**2-4.0*aka**2)
18594 XSK11 = 30.*3.14159*0.1973**2*(aphi*fwdp)**2/
18595 & ((srt**2-aphi**2)**2+(aphi*fwdp)**2)/pkaon**2
18597 SIGK = XSK1 + XSK2 + XSK3 + XSK4 + XSK5 +
18598 & XSK6 + XSK7 + XSK8 + XSK9 + XSK10 + XSK11
18602 cbz3/9/99 kkbar end
18604 *****************************
18605 * purpose: Xsection for Phi + B
18606 SUBROUTINE XphiB(LB1, LB2, EM1, EM2, SRT,
18607 & XSK1, XSK2, XSK3, XSK4, XSK5, SIGP)
18609 * ***************************
18610 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
18611 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
18612 PARAMETER (AKA=0.498, ALA = 1.1157, PIMASS=0.140, APHI=1.02)
18613 parameter (arho=0.77)
18623 srrt = srt - (em1+em2)
18625 c* phi + N(D) -> elastic scattering
18626 c XSK1 = 0.56 !! mb
18627 c !! mb (photo-production xsecn used)
18630 c* phi + N(D) -> pi + N
18631 IF (srt .GT. (ap1+amn)) THEN
18632 XSK2 = 0.0235*srrt**(-0.519)
18635 c* phi + N(D) -> pi + D
18636 IF (srt .GT. (ap1+am0)) THEN
18637 if(srrt .lt. 0.7)then
18638 XSK3 = 0.0119*srrt**(-0.534)
18640 XSK3 = 0.0130*srrt**(-0.304)
18644 c* phi + N(D) -> rho + N
18645 IF (srt .GT. (arho+amn)) THEN
18646 if(srrt .lt. 0.7)then
18647 XSK4 = 0.0166*srrt**(-0.786)
18649 XSK4 = 0.0189*srrt**(-0.277)
18653 c* phi + N(D) -> rho + D (same as pi + D)
18654 IF (srt .GT. (arho+am0)) THEN
18655 if(srrt .lt. 0.7)then
18656 XSK5 = 0.0119*srrt**(-0.534)
18658 XSK5 = 0.0130*srrt**(-0.304)
18662 c* phi + N -> K+ + La
18663 IF( (lb1.ge.1.and.lb1.le.2) .or. (lb2.ge.1.and.lb2.le.2) )THEN
18664 IF (srt .GT. (aka+ala)) THEN
18665 XSK6 = 1.715/((srrt+3.508)**2-12.138)
18668 SIGP = XSK1 + XSK2 + XSK3 + XSK4 + XSK5 + XSK6
18672 **********************************
18674 SUBROUTINE CRPHIB(PX,PY,PZ,SRT,I1,I2,
18675 & XSK1, XSK2, XSK3, XSK4, XSK5, SIGP, IBLOCK)
18678 * DEALING WITH PHI + N(D) --> pi+N(D), rho+N(D), K+ + La
18680 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
18681 * SRT - SQRT OF S *
18682 * IBLOCK - INFORMATION about the reaction channel *
18684 * iblock - 20 elastic
18685 * iblock - 221 K+ formation
18686 * iblock - 223 others
18687 **********************************
18688 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
18689 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,
18690 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
18691 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,ARHO=0.77)
18692 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
18693 COMMON /AA/ R(3,MAXSTR)
18695 COMMON /BB/ P(3,MAXSTR)
18697 COMMON /CC/ E(MAXSTR)
18699 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
18701 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
18703 COMMON/RNDF77/NSEED
18712 X1 = RANART(NSEED) * SIGP
18718 c !! elastic scatt.
18719 IF (X1 .LE. XSK1) THEN
18722 ELSE IF (X1 .LE. XSK2) THEN
18723 LB(I1) = 3 + int(3 * RANART(NSEED))
18724 LB(I2) = 1 + int(2 * RANART(NSEED))
18728 ELSE IF (X1 .LE. XSK3) THEN
18729 LB(I1) = 3 + int(3 * RANART(NSEED))
18730 LB(I2) = 6 + int(4 * RANART(NSEED))
18734 ELSE IF (X1 .LE. XSK4) THEN
18735 LB(I1) = 25 + int(3 * RANART(NSEED))
18736 LB(I2) = 1 + int(2 * RANART(NSEED))
18740 ELSE IF (X1 .LE. XSK5) THEN
18741 LB(I1) = 25 + int(3 * RANART(NSEED))
18742 LB(I2) = 6 + int(4 * RANART(NSEED))
18756 *-----------------------------------------------------------------------
18757 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
18758 * ENERGY CONSERVATION
18759 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
18760 1 - 4.0 * (EM1*EM2)**2
18761 IF(PR2.LE.0.)PR2=1.E-08
18762 PR=SQRT(PR2)/(2.*SRT)
18763 * WE ASSUME AN ISOTROPIC ANGULAR DISTRIBUTION IN THE CMS
18764 C1 = 1.0 - 2.0 * RANART(NSEED)
18765 T1 = 2.0 * PI * RANART(NSEED)
18766 S1 = SQRT( 1.0 - C1**2 )
18769 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
18774 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
18778 *****************************
18779 * purpose: Xsection for Phi + B
18781 SUBROUTINE pibphi(srt,lb1,lb2,em1,em2,Xphi,xphin)
18783 * phi + N(D) <- pi + N
18784 * phi + N(D) <- pi + D
18785 * phi + N(D) <- rho + N
18786 * phi + N(D) <- rho + D (same as pi + D)
18788 * ***************************
18789 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
18790 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
18791 PARAMETER (AKA=0.498, ALA = 1.1157, PIMASS=0.140, APHI=1.02)
18792 parameter (arho=0.77)
18799 if( (lb1.ge.3.and.lb1.le.5) .or.
18800 & (lb2.ge.3.and.lb2.le.5) )then
18802 if( (iabs(lb1).ge.1.and.iabs(lb1).le.2) .or.
18803 & (iabs(lb2).ge.1.and.iabs(lb2).le.2) )then
18804 c* phi + N <- pi + N
18805 IF (srt .GT. (aphi+amn)) THEN
18806 srrt = srt - (aphi+amn)
18807 sig = 0.0235*srrt**(-0.519)
18808 xphin=sig*1.*(srt**2-(aphi+amn)**2)*
18809 & (srt**2-(aphi-amn)**2)/(srt**2-(em1+em2)**2)/
18810 & (srt**2-(em1-em2)**2)
18812 c* phi + D <- pi + N
18813 IF (srt .GT. (aphi+am0)) THEN
18814 srrt = srt - (aphi+am0)
18815 sig = 0.0235*srrt**(-0.519)
18816 xphid=sig*4.*(srt**2-(aphi+am0)**2)*
18817 & (srt**2-(aphi-am0)**2)/(srt**2-(em1+em2)**2)/
18818 & (srt**2-(em1-em2)**2)
18821 c* phi + N <- pi + D
18822 IF (srt .GT. (aphi+amn)) THEN
18823 srrt = srt - (aphi+amn)
18824 if(srrt .lt. 0.7)then
18825 sig = 0.0119*srrt**(-0.534)
18827 sig = 0.0130*srrt**(-0.304)
18829 xphin=sig*(1./4.)*(srt**2-(aphi+amn)**2)*
18830 & (srt**2-(aphi-amn)**2)/(srt**2-(em1+em2)**2)/
18831 & (srt**2-(em1-em2)**2)
18833 c* phi + D <- pi + D
18834 IF (srt .GT. (aphi+am0)) THEN
18835 srrt = srt - (aphi+am0)
18836 if(srrt .lt. 0.7)then
18837 sig = 0.0119*srrt**(-0.534)
18839 sig = 0.0130*srrt**(-0.304)
18841 xphid=sig*1.*(srt**2-(aphi+am0)**2)*
18842 & (srt**2-(aphi-am0)**2)/(srt**2-(em1+em2)**2)/
18843 & (srt**2-(em1-em2)**2)
18848 C** for rho + N(D) colln
18852 if( (iabs(lb1).ge.1.and.iabs(lb1).le.2) .or.
18853 & (iabs(lb2).ge.1.and.iabs(lb2).le.2) )then
18855 c* phi + N <- rho + N
18856 IF (srt .GT. (aphi+amn)) THEN
18857 srrt = srt - (aphi+amn)
18858 if(srrt .lt. 0.7)then
18859 sig = 0.0166*srrt**(-0.786)
18861 sig = 0.0189*srrt**(-0.277)
18863 xphin=sig*(1./3.)*(srt**2-(aphi+amn)**2)*
18864 & (srt**2-(aphi-amn)**2)/(srt**2-(em1+em2)**2)/
18865 & (srt**2-(em1-em2)**2)
18867 c* phi + D <- rho + N
18868 IF (srt .GT. (aphi+am0)) THEN
18869 srrt = srt - (aphi+am0)
18870 if(srrt .lt. 0.7)then
18871 sig = 0.0166*srrt**(-0.786)
18873 sig = 0.0189*srrt**(-0.277)
18875 xphid=sig*(4./3.)*(srt**2-(aphi+am0)**2)*
18876 & (srt**2-(aphi-am0)**2)/(srt**2-(em1+em2)**2)/
18877 & (srt**2-(em1-em2)**2)
18880 c* phi + N <- rho + D (same as pi+D->phi+N)
18881 IF (srt .GT. (aphi+amn)) THEN
18882 srrt = srt - (aphi+amn)
18883 if(srrt .lt. 0.7)then
18884 sig = 0.0119*srrt**(-0.534)
18886 sig = 0.0130*srrt**(-0.304)
18888 xphin=sig*(1./12.)*(srt**2-(aphi+amn)**2)*
18889 & (srt**2-(aphi-amn)**2)/(srt**2-(em1+em2)**2)/
18890 & (srt**2-(em1-em2)**2)
18892 c* phi + D <- rho + D (same as pi+D->phi+D)
18893 IF (srt .GT. (aphi+am0)) THEN
18894 srrt = srt - (aphi+am0)
18895 if(srrt .lt. 0.7)then
18896 sig = 0.0119*srrt**(-0.534)
18898 sig = 0.0130*srrt**(-0.304)
18900 xphid=sig*(1./3.)*(srt**2-(aphi+am0)**2)*
18901 & (srt**2-(aphi-am0)**2)/(srt**2-(em1+em2)**2)/
18902 & (srt**2-(em1-em2)**2)
18910 Xphi = xphin + xphid
18915 *****************************
18916 * purpose: Xsection for phi +M to K+K etc
18917 SUBROUTINE PHIMES(I1, I2, SRT, XSK1, XSK2, XSK3, XSK4, XSK5,
18918 1 XSK6, XSK7, SIGPHI)
18921 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
18922 * SRT - SQRT OF S *
18923 * IBLOCK - THE INFORMATION BACK *
18924 * 223 --> phi destruction
18926 **********************************
18927 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
18928 1 AMP=0.93828,AP1=0.13496,
18929 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
18930 PARAMETER (AKA=0.498, AKS=0.895, AOMEGA=0.7819,
18931 3 ARHO=0.77, APHI=1.02)
18932 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
18933 PARAMETER (MAXX=20, MAXZ=24)
18934 COMMON /AA/ R(3,MAXSTR)
18936 COMMON /BB/ P(3,MAXSTR)
18938 COMMON /CC/ E(MAXSTR)
18940 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
18941 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
18942 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
18944 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
18967 pii = sqrt((S-(em1+em2)**2)*(S-(em1-em2)**2))
18968 * phi + K(-bar) channel
18969 if( lb1.eq.23.or.lb2.eq.23 .or. lb1.eq.21.or.lb2.eq.21 )then
18970 if(srt .gt. (ap1+akap))then
18972 pff = sqrt((S-(ap1+akap)**2)*(S-(ap1-akap)**2))
18973 XSK2 = 195.639*pff/pii/32./pi/S
18975 if(srt .gt. (arho+akap))then
18977 pff = sqrt((S-(arho+akap)**2)*(S-(arho-akap)**2))
18978 XSK3 = 526.702*pff/pii/32./pi/S
18980 if(srt .gt. (aomega+akap))then
18982 pff = sqrt((S-(aomega+akap)**2)*(S-(aomega-akap)**2))
18983 XSK4 = 355.429*pff/pii/32./pi/S
18985 if(srt .gt. (ap1+aks))then
18987 pff = sqrt((S-(ap1+aks)**2)*(S-(ap1-aks)**2))
18988 XSK5 = 2047.042*pff/pii/32./pi/S
18990 if(srt .gt. (arho+aks))then
18992 pff = sqrt((S-(arho+aks)**2)*(S-(arho-aks)**2))
18993 XSK6 = 1371.257*pff/pii/32./pi/S
18995 if(srt .gt. (aomega+aks))then
18997 pff = sqrt((S-(aomega+aks)**2)*(S-(aomega-aks)**2))
18998 XSK7 = 482.292*pff/pii/32./pi/S
19001 elseif( iabs(lb1).eq.30.or.iabs(lb2).eq.30 )then
19002 * phi + K*(-bar) channel
19004 if(srt .gt. (ap1+akap))then
19006 pff = sqrt((S-(ap1+akap)**2)*(S-(ap1-akap)**2))
19007 XSK2 = 372.378*pff/pii/32./pi/S
19009 if(srt .gt. (arho+akap))then
19011 pff = sqrt((S-(arho+akap)**2)*(S-(arho-akap)**2))
19012 XSK3 = 1313.960*pff/pii/32./pi/S
19014 if(srt .gt. (aomega+akap))then
19016 pff = sqrt((S-(aomega+akap)**2)*(S-(aomega-akap)**2))
19017 XSK4 = 440.558*pff/pii/32./pi/S
19019 if(srt .gt. (ap1+aks))then
19020 c XSK5 = 30.0 !wrong
19021 pff = sqrt((S-(ap1+aks)**2)*(S-(ap1-aks)**2))
19022 XSK5 = 1496.692*pff/pii/32./pi/S
19024 if(srt .gt. (arho+aks))then
19026 pff = sqrt((S-(arho+aks)**2)*(S-(arho-aks)**2))
19027 XSK6 = 6999.840*pff/pii/32./pi/S
19029 if(srt .gt. (aomega+aks))then
19031 pff = sqrt((S-(aomega+aks)**2)*(S-(aomega-aks)**2))
19032 XSK7 = 1698.903*pff/pii/32./pi/S
19036 * phi + rho(pi,omega) channel
19039 if(srt .gt. (akap+akap))then
19041 cc if(srrt .lt. 0.3)then
19042 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
19043 XSK2 = 1.69/(srrt**0.141 - 0.407)
19045 XSK2 = 3.74 + 0.008*srrt**1.9
19048 if(srt .gt. (akap+aks))then
19050 srr = amax1(srr1,srr2)
19052 cc if(srrt .lt. 0.3)then
19053 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
19054 XSK3 = 1.69/(srrt**0.141 - 0.407)
19056 XSK3 = 3.74 + 0.008*srrt**1.9
19059 if(srt .gt. (aks+aks))then
19061 srr = amax1(srr1,srr2)
19063 cc if(srrt .lt. 0.3)then
19064 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
19065 XSK4 = 1.69/(srrt**0.141 - 0.407)
19067 XSK4 = 3.74 + 0.008*srrt**1.9
19070 c xsk2 = amin1(20.,xsk2)
19071 c xsk3 = amin1(20.,xsk3)
19072 c xsk4 = amin1(20.,xsk4)
19075 SIGPHI = XSK1 + XSK2 + XSK3 + XSK4 + XSK5 + XSK6 + XSK7
19080 **********************************
19082 * DEALING WITH phi+M scatt.
19084 SUBROUTINE CRPHIM(PX,PY,PZ,SRT,I1,I2,
19085 & XSK1, XSK2, XSK3, XSK4, XSK5, XSK6, SIGPHI, IKKG, IKKL, IBLOCK)
19088 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
19089 * SRT - SQRT OF S *
19090 * IBLOCK - THE INFORMATION BACK *
19092 * 223 --> phi + pi(rho,omega)
19093 * 224 --> phi + K -> K + pi(rho,omega)
19094 * 225 --> phi + K -> K* + pi(rho,omega)
19095 * 226 --> phi + K* -> K + pi(rho,omega)
19096 * 227 --> phi + K* -> K* + pi(rho,omega)
19097 **********************************
19098 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
19099 1 AMP=0.93828,AP1=0.13496,ARHO=0.77,AOMEGA=0.7819,
19100 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
19101 PARAMETER (AKA=0.498,AKS=0.895)
19102 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
19103 COMMON /AA/ R(3,MAXSTR)
19105 COMMON /BB/ P(3,MAXSTR)
19107 COMMON /CC/ E(MAXSTR)
19109 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
19111 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
19113 COMMON/RNDF77/NSEED
19123 X1 = RANART(NSEED) * SIGPHI
19129 IF (X1 .LE. XSK1) THEN
19136 if( lb1.eq.23.or.lb1.eq.21.or.iabs(lb1).eq.30 .OR.
19137 & lb2.eq.23.or.lb2.eq.21.or.iabs(lb2).eq.30 )then
19139 if(lb1.eq.23.or.lb2.eq.23)then
19144 elseif(lb1.eq.30.or.lb2.eq.30)then
19149 elseif(lb1.eq.21.or.lb2.eq.21)then
19161 IF (X1 .LE. XSK2) THEN
19162 LB(I1) = 3 + int(3 * RANART(NSEED))
19168 ELSE IF (X1 .LE. XSK3) THEN
19169 LB(I1) = 25 + int(3 * RANART(NSEED))
19175 ELSE IF (X1 .LE. XSK4) THEN
19182 ELSE IF (X1 .LE. XSK5) THEN
19183 LB(I1) = 3 + int(3 * RANART(NSEED))
19190 ELSE IF (X1 .LE. XSK6) THEN
19191 LB(I1) = 25 + int(3 * RANART(NSEED))
19208 c !! phi destruction via (pi,rho,omega)
19210 *phi + pi(rho,omega)
19211 IF (X1 .LE. XSK2) THEN
19219 ELSE IF (X1 .LE. XSK3) THEN
19223 clin-2/10/03 currently take XSK3 to be the sum of KK*bar & KbarK*:
19224 if(RANART(NSEED).le.0.5) then
19234 ELSE IF (X1 .LE. XSK4) THEN
19251 *-----------------------------------------------------------------------
19252 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
19253 * ENERGY CONSERVATION
19254 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
19255 1 - 4.0 * (EM1*EM2)**2
19256 IF(PR2.LE.0.)PR2=1.E-08
19257 PR=SQRT(PR2)/(2.*SRT)
19258 * WE ASSUME AN ISOTROPIC ANGULAR DISTRIBUTION IN THE CMS
19259 C1 = 1.0 - 2.0 * RANART(NSEED)
19260 T1 = 2.0 * PI * RANART(NSEED)
19261 S1 = SQRT( 1.0 - C1**2 )
19264 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
19269 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
19272 **********************************
19273 **********************************
19275 *************************************
19276 * purpose: Xsection for K+Y -> piN *
19277 * Xsection for K+Y-bar -> piN-bar !! sp03/29/01 *
19279 SUBROUTINE XKHYPE(I1, I2, SRT, XKY1, XKY2, XKY3, XKY4, XKY5,
19280 & XKY6, XKY7, XKY8, XKY9, XKY10, XKY11, XKY12, XKY13,
19281 & XKY14, XKY15, XKY16, XKY17, SIGK)
19282 c subroutine xkhype(i1, i2, srt, sigk)
19283 * srt = DSQRT(s) in GeV *
19284 * xkkpi = xsection in mb obtained from *
19285 * the detailed balance *
19286 * ***********************************
19287 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
19288 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,APHI=1.02,
19289 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
19290 parameter (pimass=0.140, AMETA = 0.5473, aka=0.498,
19291 & aml=1.116,ams=1.193, AM1440 = 1.44, AM1535 = 1.535)
19292 COMMON /EE/ID(MAXSTR), LB(MAXSTR)
19318 IF (iabs(LB1) .EQ. 14 .OR. iabs(LB2) .EQ. 14) THEN
19319 XKAON0 = PNLKA(SRT)
19320 XKAON0 = 2.0 * XKAON0
19321 PI2 = (S - (AML + AKA) ** 2) * (S - (AML - AKA) ** 2)
19323 XKAON0 = PNSKA(SRT)
19324 XKAON0 = 2.0 * XKAON0
19325 PI2 = (S - (AMS + AKA) ** 2) * (S - (AMS - AKA) ** 2)
19327 if(PI2 .le. 0.0)return
19331 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19332 IF (PF2 .GT. 0.0) THEN
19333 XKY1 = 3.0 * PF2 / PI2 * XKAON0
19338 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19339 IF (PF2 .GT. 0.0) THEN
19340 XKY2 = 12.0 * PF2 / PI2 * XKAON0
19345 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19346 IF (PF2 .GT. 0.0) THEN
19347 XKY3 = 3.0 * PF2 / PI2 * XKAON0
19352 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19353 IF (PF2 .GT. 0.0) THEN
19354 XKY4 = 3.0 * PF2 / PI2 * XKAON0
19359 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19360 IF (PF2 .GT. 0.0) THEN
19361 XKY5 = 9.0 * PF2 / PI2 * XKAON0
19366 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19367 IF (PF2 .GT. 0.0) THEN
19368 XKY6 = 36.0 * PF2 / PI2 * XKAON0
19373 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19374 IF (PF2 .GT. 0.0) THEN
19375 XKY7 = 9.0 * PF2 / PI2 * XKAON0
19380 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19381 IF (PF2 .GT. 0.0) THEN
19382 XKY8 = 9.0 * PF2 / PI2 * XKAON0
19387 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19388 IF (PF2 .GT. 0.0) THEN
19389 XKY9 = 3.0 * PF2 / PI2 * XKAON0
19394 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19395 IF (PF2 .GT. 0.0) THEN
19396 XKY10 = 12.0 * PF2 / PI2 * XKAON0
19401 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19402 IF (PF2 .GT. 0.0) THEN
19403 XKY11 = 3.0 * PF2 / PI2 * XKAON0
19408 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19409 IF (PF2 .GT. 0.0) THEN
19410 XKY12 = 3.0 * PF2 / PI2 * XKAON0
19415 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19416 IF (PF2 .GT. 0.0) THEN
19417 XKY13 = 1.0 * PF2 / PI2 * XKAON0
19422 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19423 IF (PF2 .GT. 0.0) THEN
19424 XKY14 = 4.0 * PF2 / PI2 * XKAON0
19429 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19430 IF (PF2 .GT. 0.0) THEN
19431 XKY15 = 1.0 * PF2 / PI2 * XKAON0
19436 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19437 IF (PF2 .GT. 0.0) THEN
19438 XKY16 = 1.0 * PF2 / PI2 * XKAON0
19441 csp11/21/01 K+ + La --> phi + N
19442 if(lb1.eq.14 .or. lb2.eq.14)then
19443 if(srt .gt. (aphi+amn))then
19444 srrt = srt - (aphi+amn)
19445 sig = 1.715/((srrt+3.508)**2-12.138)
19448 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19450 XKY17 = 3.0 * PF2 / PI2 * SIG/10.
19456 IF ((iabs(LB1) .GE. 15 .AND. iabs(LB1) .LE. 17) .OR.
19457 & (iabs(LB2) .GE. 15 .AND. iabs(LB2) .LE. 17)) THEN
19469 XKY11 = XKY11 / DDF
19470 XKY12 = XKY12 / DDF
19471 XKY13 = XKY13 / DDF
19472 XKY14 = XKY14 / DDF
19473 XKY15 = XKY15 / DDF
19474 XKY16 = XKY16 / DDF
19477 SIGK = XKY1 + XKY2 + XKY3 + XKY4 +
19478 & XKY5 + XKY6 + XKY7 + XKY8 +
19479 & XKY9 + XKY10 + XKY11 + XKY12 +
19480 & XKY13 + XKY14 + XKY15 + XKY16 + XKY17
19485 C*******************************
19488 parameter (AMP=0.93828,AMN=0.939457,
19489 1 AM0=1.232,AM1440 = 1.44, AM1535 = 1.535)
19491 c to give default values to parameters for BbarB production from mesons
19492 COMMON/ppbmas/niso(15),nstate,ppbm(15,2),thresh(15),weight(15)
19494 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19496 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19499 c thresh(i) gives the mass thresh for final channel i:
19500 DATA thresh/1.87656,1.877737,1.878914,2.17028,
19501 1 2.171457,2.37828,2.379457,2.464,2.47328,2.474457,
19502 2 2.672,2.767,2.88,2.975,3.07/
19503 c ppbm(i,j=1,2) gives masses for the two final baryons of channel i,
19504 c with j=1 for the lighter baryon:
19505 DATA (ppbm(i,1),i=1,15)/amp,amp,amn,amp,amn,amp,amn,
19506 1 am0,amp,amn,am0,am0,am1440,am1440,am1535/
19507 DATA (ppbm(i,2),i=1,15)/amp,amn,amn,am0,am0,am1440,am1440,
19508 1 am0,am1535,am1535,am1440,am1535,am1440,am1535,am1535/
19509 c factr2(i) gives weights for producing i pions from ppbar annihilation:
19510 DATA factr2/0,1,1.17e-01,3.27e-03,3.58e-05,1.93e-07/
19511 c niso(i) gives the degeneracy factor for final channel i:
19512 DATA niso/1,2,1,16,16,4,4,64,4,4,32,32,4,8,4/
19517 *****************************************
19518 * get the number of BbarB states available for mm collisions of energy srt
19519 subroutine getnst(srt)
19520 * srt = DSQRT(s) in GeV *
19521 *****************************************
19522 parameter (pimass=0.140,pi=3.1415926)
19523 COMMON/ppbmas/niso(15),nstate,ppbm(15,2),thresh(15),weight(15)
19525 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19527 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19534 if(srt.le.thresh(1)) return
19537 if(srt.gt.thresh(i)) nstate=i
19540 pf2=(s-(ppbm(i,1)+ppbm(i,2))**2)
19541 1 *(s-(ppbm(i,1)-ppbm(i,2))**2)/4/s
19542 weight(i)=pf2*niso(i)
19543 wtot=wtot+weight(i)
19545 ene=(srt/pimass)**3/(6.*pi**2)
19546 fsum=factr2(2)+factr2(3)*ene+factr2(4)*ene**2
19547 1 +factr2(5)*ene**3+factr2(6)*ene**4
19552 *****************************************
19553 * for pion+pion-->Bbar B *
19554 c real*4 function ppbbar(srt)
19555 real function ppbbar(srt)
19556 *****************************************
19557 parameter (pimass=0.140,arho=0.77,aomega=0.782)
19558 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19560 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19564 sppb2p=xppbar(srt)*factr2(2)/fsum
19565 pi2=(s-4*pimass**2)/4
19566 ppbbar=4./9.*sppb2p/pi2*wtot
19571 *****************************************
19572 * for pion+rho-->Bbar B *
19573 c real*4 function prbbar(srt)
19574 real function prbbar(srt)
19575 *****************************************
19576 parameter (pimass=0.140,arho=0.77,aomega=0.782)
19577 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19579 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19583 sppb3p=xppbar(srt)*factr2(3)*ene/fsum
19584 pi2=(s-(pimass+arho)**2)*(s-(pimass-arho)**2)/4/s
19585 prbbar=4./27.*sppb3p/pi2*wtot
19590 *****************************************
19591 * for rho+rho-->Bbar B *
19592 c real*4 function rrbbar(srt)
19593 real function rrbbar(srt)
19594 *****************************************
19595 parameter (pimass=0.140,arho=0.77,aomega=0.782)
19596 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19598 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19602 sppb4p=xppbar(srt)*factr2(4)*ene**2/fsum
19603 pi2=(s-4*arho**2)/4
19604 rrbbar=4./81.*(sppb4p/2)/pi2*wtot
19609 *****************************************
19610 * for pi+omega-->Bbar B *
19611 c real*4 function pobbar(srt)
19612 real function pobbar(srt)
19613 *****************************************
19614 parameter (pimass=0.140,arho=0.77,aomega=0.782)
19615 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19617 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19621 sppb4p=xppbar(srt)*factr2(4)*ene**2/fsum
19622 pi2=(s-(pimass+aomega)**2)*(s-(pimass-aomega)**2)/4/s
19623 pobbar=4./9.*(sppb4p/2)/pi2*wtot
19628 *****************************************
19629 * for rho+omega-->Bbar B *
19630 c real*4 function robbar(srt)
19631 real function robbar(srt)
19632 *****************************************
19633 parameter (pimass=0.140,arho=0.77,aomega=0.782)
19634 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19636 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19640 sppb5p=xppbar(srt)*factr2(5)*ene**3/fsum
19641 pi2=(s-(arho+aomega)**2)*(s-(arho-aomega)**2)/4/s
19642 robbar=4./27.*sppb5p/pi2*wtot
19647 *****************************************
19648 * for omega+omega-->Bbar B *
19649 c real*4 function oobbar(srt)
19650 real function oobbar(srt)
19651 *****************************************
19652 parameter (pimass=0.140,arho=0.77,aomega=0.782)
19653 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19655 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19659 sppb6p=xppbar(srt)*factr2(6)*ene**4/fsum
19660 pi2=(s-4*aomega**2)/4
19661 oobbar=4./9.*sppb6p/pi2*wtot
19666 *****************************************
19667 * Generate final states for mm-->Bbar B *
19668 SUBROUTINE bbarfs(lbb1,lbb2,ei1,ei2,iblock,iseed)
19669 *****************************************
19670 COMMON/ppbmas/niso(15),nstate,ppbm(15,2),thresh(15),weight(15)
19672 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19674 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19676 COMMON/RNDF77/NSEED
19680 c determine which final BbarB channel occurs:
19684 wsum=wsum+weight(i)
19685 if(rd.le.(wsum/wtot)) then
19699 elseif(ifs.eq.2) then
19701 if(RANART(NSEED).le.0.5) then
19712 elseif(ifs.eq.3) then
19716 c4&5 (pbar nbar) Delta, (p n) anti-Delta
19717 elseif(ifs.eq.4.or.ifs.eq.5) then
19720 c (pbar nbar) Delta
19729 if(rd2.le.0.25) then
19731 elseif(rd2.le.0.5) then
19733 elseif(rd2.le.0.75) then
19748 if(rd2.le.0.25) then
19750 elseif(rd2.le.0.5) then
19752 elseif(rd2.le.0.75) then
19758 c6&7 (pbar nbar) N*(1440), (p n) anti-N*(1440)
19759 elseif(ifs.eq.6.or.ifs.eq.7) then
19762 c (pbar nbar) N*(1440)
19771 if(rd2.le.0.5) then
19777 c (p n) anti-N*(1440)
19786 if(rd2.le.0.5) then
19792 c8 Delta anti-Delta
19793 elseif(ifs.eq.8) then
19796 if(rd1.le.0.25) then
19798 elseif(rd1.le.0.5) then
19800 elseif(rd1.le.0.75) then
19806 if(rd2.le.0.25) then
19808 elseif(rd2.le.0.5) then
19810 elseif(rd2.le.0.75) then
19815 c9&10 (pbar nbar) N*(1535), (p n) anti-N*(1535)
19816 elseif(ifs.eq.9.or.ifs.eq.10) then
19819 c (pbar nbar) N*(1440)
19828 if(rd2.le.0.5) then
19834 c (p n) anti-N*(1535)
19843 if(rd2.le.0.5) then
19849 c11&12 anti-Delta N*, Delta anti-N*
19850 elseif(ifs.eq.11.or.ifs.eq.12) then
19855 if(rd1.le.0.25) then
19857 elseif(rd1.le.0.5) then
19859 elseif(rd1.le.0.75) then
19867 if(rd2.le.0.5) then
19875 if(rd2.le.0.5) then
19884 if(rd1.le.0.25) then
19886 elseif(rd1.le.0.5) then
19888 elseif(rd1.le.0.75) then
19896 if(rd2.le.0.5) then
19904 if(rd2.le.0.5) then
19911 c13 N*(1440) anti-N*(1440)
19912 elseif(ifs.eq.13) then
19915 if(rd1.le.0.5) then
19921 if(rd2.le.0.5) then
19926 c14 anti-N*(1440) N*(1535), N*(1440) anti-N*(1535)
19927 elseif(ifs.eq.14) then
19930 c anti-N*(1440) N*(1535)
19933 if(rd1.le.0.5) then
19939 if(rd2.le.0.5) then
19945 c N*(1440) anti-N*(1535)
19948 if(rd1.le.0.5) then
19954 if(rd2.le.0.5) then
19960 c15 N*(1535) anti-N*(1535)
19961 elseif(ifs.eq.15) then
19964 if(rd1.le.0.5) then
19970 if(rd2.le.0.5) then
19981 *****************************************
19982 * for pi pi <-> rho rho cross sections
19983 SUBROUTINE spprr(lb1,lb2,srt)
19984 parameter (arho=0.77)
19985 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19987 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19992 if((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5)) then
19993 c for now, rho mass taken to be the central value in these two processes
19994 if(srt.gt.(2*arho)) pprr=ptor(srt)
19995 elseif((lb1.ge.25.and.lb1.le.27).and.(lb2.ge.25.and.lb2.le.27))
20003 *****************************************
20004 * for pi pi -> rho rho, determined from detailed balance
20005 real function ptor(srt)
20006 *****************************************
20007 parameter (pimass=0.140,arho=0.77)
20008 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20010 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20015 ptor=9*(s2-4*arho**2)/(s2-4*pimass**2)*rtop(srt)
20020 *****************************************
20021 * for rho rho -> pi pi, assumed a constant cross section (in mb)
20022 real function rtop(srt)
20023 *****************************************
20029 *****************************************
20030 * for pi pi <-> rho rho final states
20031 SUBROUTINE pi2ro2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20032 PARAMETER (MAXSTR=150001)
20033 PARAMETER (AP1=0.13496,AP2=0.13957)
20034 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20036 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20038 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20040 COMMON/RNDF77/NSEED
20044 if((lb(i1).ge.3.and.lb(i1).le.5)
20045 1 .and.(lb(i2).ge.3.and.lb(i2).le.5)) then
20049 c for now, we don't check isospin states(allowing pi+pi+ & pi0pi0 -> 2rho)
20050 c thus the cross sections used are considered as the isospin-averaged ones.
20051 lbb1=25+int(3*RANART(NSEED))
20052 lbb2=25+int(3*RANART(NSEED))
20053 elseif((lb(i1).ge.25.and.lb(i1).le.27)
20054 1 .and.(lb(i2).ge.25.and.lb(i2).le.27)) then
20056 lbb1=3+int(3*RANART(NSEED))
20057 lbb2=3+int(3*RANART(NSEED))
20060 if(lbb1.eq.4) ei1=ap1
20061 if(lbb2.eq.4) ei2=ap1
20067 *****************************************
20068 * for pi pi <-> eta eta cross sections
20069 SUBROUTINE sppee(lb1,lb2,srt)
20070 parameter (ETAM=0.5475)
20071 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20073 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20078 if((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5)) then
20079 if(srt.gt.(2*ETAM)) ppee=ptoe(srt)
20080 elseif(lb1.eq.0.and.lb2.eq.0) then
20087 *****************************************
20088 * for pi pi -> eta eta, determined from detailed balance, spin-isospin averaged
20089 real function ptoe(srt)
20090 *****************************************
20091 parameter (pimass=0.140,ETAM=0.5475)
20092 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20094 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20099 ptoe=1./9.*(s2-4*etam**2)/(s2-4*pimass**2)*etop(srt)
20103 *****************************************
20104 * for eta eta -> pi pi, assumed a constant cross section (in mb)
20105 real function etop(srt)
20106 *****************************************
20108 c eta equilibration:
20109 c most important channel is found to be pi pi <-> pi eta, then
20110 c rho pi <-> rho eta.
20115 *****************************************
20116 * for pi pi <-> eta eta final states
20117 SUBROUTINE pi2et2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20118 PARAMETER (MAXSTR=150001)
20119 PARAMETER (AP1=0.13496,AP2=0.13957,ETAM=0.5475)
20120 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20122 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20124 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20126 COMMON/RNDF77/NSEED
20131 if((lb(i1).ge.3.and.lb(i1).le.5)
20132 1 .and.(lb(i2).ge.3.and.lb(i2).le.5)) then
20136 c for now, we don't check isospin states(allowing pi+pi+ & pi0pi0 -> 2rho)
20137 c thus the cross sections used are considered as the isospin-averaged ones.
20140 elseif(lb(i1).eq.0.and.lb(i2).eq.0) then
20142 lbb1=3+int(3*RANART(NSEED))
20143 lbb2=3+int(3*RANART(NSEED))
20146 if(lbb1.eq.4) ei1=ap1
20147 if(lbb2.eq.4) ei2=ap1
20153 *****************************************
20154 * for pi pi <-> pi eta cross sections
20155 SUBROUTINE spppe(lb1,lb2,srt)
20156 parameter (pimass=0.140,ETAM=0.5475)
20157 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20159 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20164 if((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5)) then
20165 if(srt.gt.(ETAM+pimass)) pppe=pptope(srt)
20166 elseif((lb1.ge.3.and.lb1.le.5).and.lb2.eq.0) then
20168 elseif((lb2.ge.3.and.lb2.le.5).and.lb1.eq.0) then
20175 *****************************************
20176 * for pi pi -> pi eta, determined from detailed balance, spin-isospin averaged
20177 real function pptope(srt)
20178 *****************************************
20179 parameter (pimass=0.140,ETAM=0.5475)
20180 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20182 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20187 pf2=(s2-(pimass+ETAM)**2)*(s2-(pimass-ETAM)**2)/2/sqrt(s2)
20188 pi2=(s2-4*pimass**2)*s2/2/sqrt(s2)
20189 pptope=1./3.*pf2/pi2*petopp(srt)
20193 *****************************************
20194 * for pi eta -> pi pi, assumed a constant cross section (in mb)
20195 real function petopp(srt)
20196 *****************************************
20198 c eta equilibration:
20203 *****************************************
20204 * for pi pi <-> pi eta final states
20205 SUBROUTINE pi3eta(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20206 PARAMETER (MAXSTR=150001)
20207 PARAMETER (AP1=0.13496,AP2=0.13957,ETAM=0.5475)
20208 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20210 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20212 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20214 COMMON/RNDF77/NSEED
20219 if((lb(i1).ge.3.and.lb(i1).le.5)
20220 1 .and.(lb(i2).ge.3.and.lb(i2).le.5)) then
20224 c for now, we don't check isospin states(allowing pi+pi+ & pi0pi0 -> 2rho)
20225 c thus the cross sections used are considered as the isospin-averaged ones.
20226 lbb1=3+int(3*RANART(NSEED))
20227 if(lbb1.eq.4) ei1=ap1
20229 elseif((lb(i1).ge.3.and.lb(i1).le.5.and.lb(i2).eq.0).or.
20230 1 (lb(i2).ge.3.and.lb(i2).le.5.and.lb(i1).eq.0)) then
20232 lbb1=3+int(3*RANART(NSEED))
20233 lbb2=3+int(3*RANART(NSEED))
20236 if(lbb1.eq.4) ei1=ap1
20237 if(lbb2.eq.4) ei2=ap1
20243 *****************************************
20244 * for rho pi <-> rho eta cross sections
20245 SUBROUTINE srpre(lb1,lb2,srt)
20246 parameter (pimass=0.140,ETAM=0.5475,arho=0.77)
20247 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20249 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20254 if(lb1.ge.25.and.lb1.le.27.and.lb2.ge.3.and.lb2.le.5) then
20255 if(srt.gt.(ETAM+arho)) rpre=rptore(srt)
20256 elseif(lb2.ge.25.and.lb2.le.27.and.lb1.ge.3.and.lb1.le.5) then
20257 if(srt.gt.(ETAM+arho)) rpre=rptore(srt)
20258 elseif(lb1.ge.25.and.lb1.le.27.and.lb2.eq.0) then
20259 if(srt.gt.(pimass+arho)) rpre=retorp(srt)
20260 elseif(lb2.ge.25.and.lb2.le.27.and.lb1.eq.0) then
20261 if(srt.gt.(pimass+arho)) rpre=retorp(srt)
20267 *****************************************
20268 * for rho pi->rho eta, determined from detailed balance, spin-isospin averaged
20269 real function rptore(srt)
20270 *****************************************
20271 parameter (pimass=0.140,ETAM=0.5475,arho=0.77)
20272 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20274 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20279 pf2=(s2-(arho+ETAM)**2)*(s2-(arho-ETAM)**2)/2/sqrt(s2)
20280 pi2=(s2-(arho+pimass)**2)*(s2-(arho-pimass)**2)/2/sqrt(s2)
20281 rptore=1./3.*pf2/pi2*retorp(srt)
20285 *****************************************
20286 * for rho eta -> rho pi, assumed a constant cross section (in mb)
20287 real function retorp(srt)
20288 *****************************************
20290 c eta equilibration:
20295 *****************************************
20296 * for rho pi <-> rho eta final states
20297 SUBROUTINE rpiret(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20298 PARAMETER (MAXSTR=150001)
20299 PARAMETER (AP1=0.13496,AP2=0.13957,ETAM=0.5475,arho=0.77)
20300 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20302 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20304 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20306 COMMON/RNDF77/NSEED
20310 if((lb(i1).ge.25.and.lb(i1).le.27
20311 1 .and.lb(i2).ge.3.and.lb(i2).le.5).or.
20312 2 (lb(i1).ge.3.and.lb(i1).le.5
20313 3 .and.lb(i2).ge.25.and.lb(i2).le.27)) then
20317 c for now, we don't check isospin states(allowing pi+pi+ & pi0pi0 -> 2rho)
20318 c thus the cross sections used are considered as the isospin-averaged ones.
20319 lbb1=25+int(3*RANART(NSEED))
20321 elseif((lb(i1).ge.25.and.lb(i1).le.27.and.lb(i2).eq.0).or.
20322 1 (lb(i2).ge.25.and.lb(i2).le.27.and.lb(i1).eq.0)) then
20324 lbb1=25+int(3*RANART(NSEED))
20325 lbb2=3+int(3*RANART(NSEED))
20328 if(lbb2.eq.4) ei2=ap1
20334 *****************************************
20335 * for omega pi <-> omega eta cross sections
20336 SUBROUTINE sopoe(lb1,lb2,srt)
20337 parameter (ETAM=0.5475,aomega=0.782)
20338 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20340 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20345 if((lb1.eq.28.and.lb2.ge.3.and.lb2.le.5).or.
20346 1 (lb2.eq.28.and.lb1.ge.3.and.lb1.le.5)) then
20347 if(srt.gt.(aomega+ETAM)) xopoe=xop2oe(srt)
20348 elseif((lb1.eq.28.and.lb2.eq.0).or.
20349 1 (lb1.eq.0.and.lb2.eq.28)) then
20350 if(srt.gt.(aomega+ETAM)) xopoe=xoe2op(srt)
20356 *****************************************
20357 * for omega pi -> omega eta,
20358 c determined from detailed balance, spin-isospin averaged
20359 real function xop2oe(srt)
20360 *****************************************
20361 parameter (pimass=0.140,ETAM=0.5475,aomega=0.782)
20362 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20364 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20369 pf2=(s2-(aomega+ETAM)**2)*(s2-(aomega-ETAM)**2)/2/sqrt(s2)
20370 pi2=(s2-(aomega+pimass)**2)*(s2-(aomega-pimass)**2)/2/sqrt(s2)
20371 xop2oe=1./3.*pf2/pi2*xoe2op(srt)
20375 *****************************************
20376 * for omega eta -> omega pi, assumed a constant cross section (in mb)
20377 real function xoe2op(srt)
20378 *****************************************
20380 c eta equilibration:
20385 *****************************************
20386 * for omega pi <-> omega eta final states
20387 SUBROUTINE opioet(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20388 PARAMETER (MAXSTR=150001)
20389 PARAMETER (AP1=0.13496,AP2=0.13957,ETAM=0.5475,aomega=0.782)
20390 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20392 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20394 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20396 COMMON/RNDF77/NSEED
20401 if((lb(i1).ge.3.and.lb(i1).le.5.and.lb(i2).eq.28).or.
20402 1 (lb(i2).ge.3.and.lb(i2).le.5.and.lb(i1).eq.28)) then
20406 c for now, we don't check isospin states(allowing pi+pi+ & pi0pi0 -> 2rho)
20407 c thus the cross sections used are considered as the isospin-averaged ones.
20410 elseif((lb(i1).eq.28.and.lb(i2).eq.0).or.
20411 1 (lb(i1).eq.0.and.lb(i2).eq.28)) then
20414 lbb2=3+int(3*RANART(NSEED))
20417 if(lbb2.eq.4) ei2=ap1
20423 *****************************************
20424 * for rho rho <-> eta eta cross sections
20425 SUBROUTINE srree(lb1,lb2,srt)
20426 parameter (ETAM=0.5475,arho=0.77)
20427 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20429 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20434 if(lb1.ge.25.and.lb1.le.27.and.
20435 1 lb2.ge.25.and.lb2.le.27) then
20436 if(srt.gt.(2*ETAM)) rree=rrtoee(srt)
20437 elseif(lb1.eq.0.and.lb2.eq.0) then
20438 if(srt.gt.(2*arho)) rree=eetorr(srt)
20444 *****************************************
20445 * for eta eta -> rho rho
20446 c determined from detailed balance, spin-isospin averaged
20447 real function eetorr(srt)
20448 *****************************************
20449 parameter (ETAM=0.5475,arho=0.77)
20450 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20452 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20457 eetorr=81.*(s2-4*arho**2)/(s2-4*etam**2)*rrtoee(srt)
20461 *****************************************
20462 * for rho rho -> eta eta, assumed a constant cross section (in mb)
20463 real function rrtoee(srt)
20464 *****************************************
20466 c eta equilibration:
20471 *****************************************
20472 * for rho rho <-> eta eta final states
20473 SUBROUTINE ro2et2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20474 PARAMETER (MAXSTR=150001)
20475 parameter (ETAM=0.5475,arho=0.77)
20476 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20478 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20480 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20482 COMMON/RNDF77/NSEED
20487 if(lb(i1).ge.25.and.lb(i1).le.27.and.
20488 1 lb(i2).ge.25.and.lb(i2).le.27) then
20492 c for now, we don't check isospin states(allowing pi+pi+ & pi0pi0 -> 2rho)
20493 c thus the cross sections used are considered as the isospin-averaged ones.
20496 elseif(lb(i1).eq.0.and.lb(i2).eq.0) then
20498 lbb1=25+int(3*RANART(NSEED))
20499 lbb2=25+int(3*RANART(NSEED))
20507 *****************************
20508 * purpose: Xsection for K* Kbar or K*bar K to pi(eta) rho(omega)
20509 SUBROUTINE XKKSAN(i1,i2,SRT,SIGKS1,SIGKS2,SIGKS3,SIGKS4,SIGK,prkk)
20510 * srt = DSQRT(s) in GeV *
20511 * sigk = xsection in mb obtained from *
20512 * the detailed balance *
20513 * ***************************
20514 PARAMETER (AKA=0.498, PIMASS=0.140, RHOM = 0.770,aks=0.895,
20515 & OMEGAM = 0.7819, ETAM = 0.5473)
20516 PARAMETER (MAXSTR=150001)
20517 COMMON /CC/ E(MAXSTR)
20528 clin note that prkk is for pi (rho omega) -> K* Kbar (AND!) K*bar K:
20532 c PI2 = (S - (aks + AKA) ** 2) * (S - (aks - AKA) ** 2)
20533 PI2 = (S - (e(i1) + e(i2)) ** 2) * (S - (e(i1) - e(i2)) ** 2)
20535 if(PI2 .le. 0.0) return
20539 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
20540 IF (PI2 .GT. 0.0 .AND. PF2 .GT. 0.0) THEN
20541 SIGKS1 = 27.0 / 4.0 * PF2 / PI2 * XPION0
20546 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
20547 IF (PI2 .GT. 0.0 .AND. PF2 .GT. 0.0) THEN
20548 SIGKS2 = 9.0 / 4.0 * PF2 / PI2 * XPION0
20553 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
20554 IF (PF2 .GT. 0.0) THEN
20555 SIGKS3 = 9.0 / 4.0 * PF2 / PI2 * XPION0
20560 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
20561 IF (PF2 .GT. 0.0) THEN
20562 SIGKS4 = 3.0 / 4.0 * PF2 / PI2 * XPION0
20565 SIGK=SIGKS1+SIGKS2+SIGKS3+SIGKS4
20570 **********************************
20572 * assign final states for KK*bar or K*Kbar --> light mesons
20574 c SUBROUTINE Crkspi(PX,PY,PZ,SRT,I1,I2,IBLOCK)
20575 SUBROUTINE crkspi(I1,I2,XSK1, XSK2, XSK3, XSK4, SIGK,
20576 & IBLOCK,lbp1,lbp2,emm1,emm2)
20578 **********************************
20579 PARAMETER (MAXSTR=150001,MAXR=1)
20580 PARAMETER (AP1=0.13496,AP2=0.13957,RHOM = 0.770,PI=3.1415926)
20581 PARAMETER (AETA=0.548,AMOMGA=0.782)
20582 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
20583 COMMON /AA/ R(3,MAXSTR)
20585 COMMON /BB/ P(3,MAXSTR)
20587 COMMON /CC/ E(MAXSTR)
20589 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20591 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
20593 COMMON/RNDF77/NSEED
20598 * charges of final state mesons:
20600 X1 = RANART(NSEED) * SIGK
20604 IF (X1 .LE. XSK1) THEN
20605 LB(I1) = 3 + int(3 * RANART(NSEED))
20606 LB(I2) = 25 + int(3 * RANART(NSEED))
20609 ELSE IF (X1 .LE. XSK2) THEN
20610 LB(I1) = 3 + int(3 * RANART(NSEED))
20614 ELSE IF (X1 .LE. XSK3) THEN
20616 LB(I2) = 25 + int(3 * RANART(NSEED))
20626 if(lb(i1).eq.4) E(I1) = AP1
20635 *---------------------------------------------------------------------------
20636 * PURPOSE : CALCULATE THE MASS AND MOMENTUM OF K* RESONANCE
20637 * AFTER PION + KAON COLLISION
20638 *clin only here the K* mass may be different from aks=0.895
20639 SUBROUTINE KSRESO(I1,I2)
20640 PARAMETER (MAXSTR=150001,MAXR=1,
20641 1 AMN=0.939457,AMP=0.93828,
20642 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
20643 COMMON /AA/ R(3,MAXSTR)
20645 COMMON /BB/ P(3,MAXSTR)
20647 COMMON /CC/ E(MAXSTR)
20649 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20653 COMMON /PA/RPION(3,MAXSTR,MAXR)
20655 COMMON /PB/PPION(3,MAXSTR,MAXR)
20657 COMMON /PC/EPION(MAXSTR,MAXR)
20659 COMMON /PD/LPION(MAXSTR,MAXR)
20662 * 1. DETERMINE THE MOMENTUM COMPONENT OF THE K* IN THE CMS OF PI-K FRAME
20663 * WE LET I1 TO BE THE K* AND ABSORB I2
20664 E10=SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
20665 E20=SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
20666 IF(LB(I2) .EQ. 21 .OR. LB(I2) .EQ. 23) THEN
20673 if(LB(I).eq.23) then
20675 else if(LB(I).eq.21) then
20678 P(1,I)=P(1,I1)+P(1,I2)
20679 P(2,I)=P(2,I1)+P(2,I2)
20680 P(3,I)=P(3,I1)+P(3,I2)
20681 * 2. DETERMINE THE MASS OF K* BY USING THE REACTION KINEMATICS
20682 DM=SQRT((E10+E20)**2-P(1,I)**2-P(2,I)**2-P(3,I)**2)
20687 c--------------------------------------------------------
20688 *************************************
20690 SUBROUTINE pertur(PX,PY,PZ,SRT,IRUN,I1,I2,nt,kp,icont)
20692 * PURPOSE: TO PRODUCE CASCADE AND OMEGA PERTURBATIVELY *
20695 * -40 cascade-(bar)
20697 * -41 cascade0(bar)
20699 * -45 Omega baryon(bar)
20701 **********************************
20702 PARAMETER (MAXSTR=150001,MAXR=1,PI=3.1415926)
20703 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
20704 PARAMETER (AMN=0.939457,AMP=0.93828,AP1=0.13496,AP2=0.13957)
20705 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,aks=0.895)
20706 PARAMETER (ACAS=1.3213,AOME=1.6724,AMRHO=0.769,AMOMGA=0.782)
20707 PARAMETER (AETA=0.548,ADIOMG=3.2288)
20708 parameter (maxx=20,maxz=24)
20709 COMMON /AA/ R(3,MAXSTR)
20711 COMMON /BB/ P(3,MAXSTR)
20713 COMMON /CC/ E(MAXSTR)
20715 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20717 COMMON /HH/ PROPER(MAXSTR)
20719 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
20721 common /gg/ dx,dy,dz,dpx,dpy,dpz
20723 COMMON /INPUT/ NSTAR,NDIRCT,DIR
20727 COMMON /PA/RPION(3,MAXSTR,MAXR)
20729 COMMON /PB/PPION(3,MAXSTR,MAXR)
20731 COMMON /PC/EPION(MAXSTR,MAXR)
20733 COMMON /PD/LPION(MAXSTR,MAXR)
20735 COMMON /PE/PROPI(MAXSTR,MAXR)
20737 COMMON /RR/ MASSR(0:MAXR)
20739 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
20741 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
20743 c perturbative method is disabled:
20744 c common /imulst/ iperts
20746 COMMON/RNDF77/NSEED
20748 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
20749 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
20750 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
20772 c !! flag for real 2-body process (1/0=no/yes)
20774 c !! flag for elastic scatt only (-1=no)
20777 * K-/K*0bar + La/Si --> cascade + pi
20778 * K+/K*0 + La/Si (bar) --> cascade-bar + pi
20779 if( (lb1.eq.21.or.lb1.eq.23.or.iabs(lb1).eq.30) .and.
20780 & (iabs(lb2).ge.14.and.iabs(lb2).le.17) )go to 60
20781 if( (lb2.eq.21.or.lb2.eq.23.or.iabs(lb2).eq.30) .and.
20782 & (iabs(lb1).ge.14.and.iabs(lb1).le.17) )go to 60
20783 * K-/K*0bar + cascade --> omega + pi
20784 * K+/K*0 + cascade-bar --> omega-bar + pi
20785 if( (lb1.eq.21.or.lb1.eq.23.or.iabs(lb1).eq.30) .and.
20786 & (iabs(lb2).eq.40.or.iabs(lb2).eq.41) )go to 70
20787 if( (lb2.eq.21.or.lb2.eq.23.or.iabs(lb2).eq.30) .and.
20788 & (iabs(lb1).eq.40.or.iabs(lb1).eq.41) )go to 70
20790 c annhilation of cascade,cascade-bar, omega,omega-bar
20792 * K- + La/Si <-- cascade + pi(eta,rho,omega)
20793 * K+ + La/Si(bar) <-- cascade-bar + pi(eta,rho,omega)
20794 if( (((lb1.ge.3.and.lb1.le.5).or.lb1.eq.0)
20795 & .and.(iabs(lb2).eq.40.or.iabs(lb2).eq.41))
20796 & .OR. (((lb2.ge.3.and.lb2.le.5).or.lb2.eq.0)
20797 & .and.(iabs(lb1).eq.40.or.iabs(lb1).eq.41)) )go to 90
20798 * K- + cascade <-- omega + pi
20799 * K+ + cascade-bar <-- omega-bar + pi
20800 c if( (lb1.eq.0.and.iabs(lb2).eq.45)
20801 c & .OR. (lb2.eq.0.and.iabs(lb1).eq.45) ) go to 110
20802 if( ((lb1.ge.3.and.lb1.le.5).and.iabs(lb2).eq.45)
20803 & .OR.((lb2.ge.3.and.lb2.le.5).and.iabs(lb1).eq.45) )go to 110
20806 c----------------------------------------------------
20807 * for process: K-bar + L(S) --> Ca + pi
20809 60 if(iabs(lb1).ge.14 .and. iabs(lb1).le.17)then
20819 if(srt .lt. (acas+app))return
20820 srrt = srt - (acas+app) + (amn+akap)
20821 pkaon = sqrt(((srrt**2-(amn**2+akap**2))/2./amn)**2 - akap**2)
20822 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
20823 clin pii & pff should be each divided by (4*srt**2),
20824 c but these two factors cancel out in the ratio pii/pff:
20825 pii = sqrt((srt**2-(amn+akap)**2)*(srt**2-(amn-akap)**2))
20826 pff = sqrt((srt**2-(asap+app)**2)*(srt**2-(asap-app)**2))
20827 cmat = sigca*pii/pff
20829 & sqrt((srt**2-(acas+app)**2)*(srt**2-(acas-app)**2))/
20830 & sqrt((srt**2-(asap+akap)**2)*(srt**2-(asap-akap)**2))
20833 if(srt .gt. (acas+aeta))then
20834 srrt = srt - (acas+aeta) + (amn+akap)
20835 pkaon = sqrt(((srrt**2-(amn**2+akap**2))/2./amn)**2 - akap**2)
20836 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
20837 cmat = sigca*pii/pff
20839 & sqrt((srt**2-(acas+aeta)**2)*(srt**2-(acas-aeta)**2))/
20840 & sqrt((srt**2-(asap+akap)**2)*(srt**2-(asap-akap)**2))
20843 sigca = sigpi + sigeta
20845 clin-2/25/03 disable the perturb option:
20846 c if(iperts .eq. 1) sigpe = 40. !! perturbative xsecn
20847 sig = amax1(sigpe,sigca)
20848 ds = sqrt(sig/31.4)
20850 ec = (em1+em2+0.02)**2
20851 call distce(i1,i2,dsr,ds,dt,ec,srt,ic,px,py,pz)
20852 if(ic .eq. -1)return
20855 c else particle production
20856 if( (lb1.ge.14.and.lb1.le.17) .or.
20857 & (lb2.ge.14.and.lb2.le.17) )then
20858 c !! cascade- or cascde0
20859 lbpp1 = 40 + int(2*RANART(NSEED))
20861 * elseif(lb1 .eq. -14 .or. lb2 .eq. -14)
20862 c !! cascade-bar- or cascde0 -bar
20863 lbpp1 = -40 - int(2*RANART(NSEED))
20866 if(RANART(NSEED) .lt. sigpi/sigca)then
20868 lbpp2 = 3 + int(3*RANART(NSEED))
20875 c* check real process of cascade(bar) and pion formation
20876 if(RANART(NSEED) .lt. brpp)then
20877 c !! real process flag
20881 c !! cascade formed with prob Gam
20885 c !! pion/eta formed with prob 1.
20888 c else only cascade(bar) formed perturbatively
20891 c----------------------------------------------------
20892 * for process: Cas(bar) + K_bar(K) --> Om(bar) + pi !! eta
20894 70 if(iabs(lb1).eq.40 .or. iabs(lb1).eq.41)then
20907 if(srt .lt. (aome+ames))return
20908 srrt = srt - (aome+ames) + (amn+akap)
20909 pkaon = sqrt(((srrt**2-(amn**2+akap**2))/2./amn)**2 - akap**2)
20910 c use K(bar) + Ca --> Om + eta xsecn same as K(bar) + N --> Si + Pi
20911 * as Omega have no resonances
20912 c** using same matrix elements as K-bar + N -> Si + pi
20913 sigomm = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
20915 & sqrt((srt**2-(amn+akap)**2)*(srt**2-(amn-akap)**2))/
20916 & sqrt((srt**2-(asa+app)**2)*(srt**2-(asa-app)**2))
20918 & sqrt((srt**2-(aome+ames)**2)*(srt**2-(aome-ames)**2))/
20919 & sqrt((srt**2-(acap+akap)**2)*(srt**2-(acap-akap)**2))
20921 clin-2/25/03 disable the perturb option:
20922 c if(iperts .eq. 1) sigpe = 40. !! perturbative xsecn
20923 sig = amax1(sigpe,sigom)
20924 ds = sqrt(sig/31.4)
20926 ec = (em1+em2+0.02)**2
20927 call distce(i1,i2,dsr,ds,dt,ec,srt,ic,px,py,pz)
20928 if(ic .eq. -1)return
20931 c else particle production
20932 if( (lb1.ge.40.and.lb1.le.41) .or.
20933 & (lb2.ge.40.and.lb2.le.41) )then
20937 * elseif(lb1 .eq. -40 .or. lb2 .eq. -40)
20944 lbpp2 = 3 + int(3*RANART(NSEED))
20947 c* check real process of omega(bar) and pion formation
20948 xrand=RANART(NSEED)
20949 if(xrand .lt. (proper(idp)*brpp))then
20950 c !! real process flag
20954 c !! P_Om = P_Cas*Gam
20955 proper(i1) = proper(idp)*brpp
20958 c !! pion formed with prob 1.
20960 elseif(xrand.lt.brpp) then
20961 c else omega(bar) formed perturbatively and cascade destroyed
20966 c-----------------------------------------------------------
20967 * for process: Ca + pi/eta --> K-bar + L(S)
20969 90 if(iabs(lb1).eq.40 .or. iabs(lb1).eq.41)then
20980 c akal = (aka+aks)/2. !! average of K and K* taken
20985 if(srt .le. (alas+aka))return
20986 srrt = srt - (acap+app) + (amn+aka)
20987 pkaon = sqrt(((srrt**2-(amn**2+aka**2))/2./amn)**2 - aka**2)
20988 c** using same matrix elements as K-bar + N -> La/Si + pi
20989 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
20991 & sqrt((srt**2-(amn+aka)**2)*(srt**2-(amn-aka)**2))/
20992 & sqrt((srt**2-(alas+0.138)**2)*(srt**2-(alas-0.138)**2))
20994 & sqrt((srt**2-(acap+app)**2)*(srt**2-(acap-app)**2))/
20995 & sqrt((srt**2-(alas+aka)**2)*(srt**2-(alas-aka)**2))
20999 if(lb(idn).eq.0)dfr = 1.
21000 sigcal = sigca*dfr*(srt**2-(alas+aka)**2)*
21001 & (srt**2-(alas-aka)**2)/(srt**2-(acap+app)**2)/
21002 & (srt**2-(acap-app)**2)
21005 if(srt .le. (alas+aka))then
21008 srrt = srt - (acap+app) + (amn+aka)
21009 pkaon = sqrt(((srrt**2-(amn**2+aka**2))/2./amn)**2 - aka**2)
21010 c use K(bar) + La/Si --> Ca + Pi xsecn same as K(bar) + N --> Si + Pi
21011 c** using same matrix elements as K-bar + N -> La/Si + pi
21012 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
21014 & sqrt((srt**2-(amn+aka)**2)*(srt**2-(amn-aka)**2))/
21015 & sqrt((srt**2-(alas+0.138)**2)*(srt**2-(alas-0.138)**2))
21017 & sqrt((srt**2-(acap+app)**2)*(srt**2-(acap-app)**2))/
21018 & sqrt((srt**2-(alas+aka)**2)*(srt**2-(alas-aka)**2))
21022 if(lb(idn).eq.0)dfr = 3.
21023 sigcas = sigca*dfr*(srt**2-(alas+aka)**2)*
21024 & (srt**2-(alas-aka)**2)/(srt**2-(acap+app)**2)/
21025 & (srt**2-(acap-app)**2)
21028 sig = sigcal + sigcas
21030 ds = sqrt(sig/31.4)
21032 ec = (em1+em2+0.02)**2
21033 call distce(i1,i2,dsr,ds,dt,ec,srt,ic,px,py,pz)
21035 clin-2/25/03: checking elastic scatt after failure of inelastic scatt gives
21036 c conditional probability (in general incorrect), tell Pal to correct:
21038 c check for elastic scatt, no particle annhilation
21039 c !! elastic cross section of 20 mb
21040 ds = sqrt(20.0/31.4)
21042 call distce(i1,i2,dsr,ds,dt,ec,srt,icsbel,px,py,pz)
21043 if(icsbel .eq. -1)return
21049 c else pert. produced cascade(bar) is annhilated OR real process
21051 * DECIDE LAMBDA OR SIGMA PRODUCTION
21053 IF(sigcal/sig .GT. RANART(NSEED))THEN
21054 if(lb1.eq.40.or.lb1.eq.41.or.lb2.eq.40.or.lb2.eq.41)then
21063 if(lb1.eq.40.or.lb1.eq.41.or.lb2.eq.40.or.lb2.eq.41)then
21065 lbpp2 = 15 + int(3 * RANART(NSEED))
21068 lbpp2 = -15 - int(3 * RANART(NSEED))
21075 c check for real process for L/S(bar) and K(bar) formation
21076 if(RANART(NSEED) .lt. proper(idp))then
21078 c !! real process flag
21082 c !! K(bar) formed with prob 1.
21086 c !! L/S(bar) formed with prob 1.
21090 c else only cascade(bar) annhilation & go out
21095 c----------------------------------------------------
21096 * for process: Om(bar) + pi --> Cas(bar) + K_bar(K)
21098 110 if(lb1 .eq. 45 .or. lb1 .eq. -45)then
21109 c akal = (aka+aks)/2. !! average of K and K* taken
21112 if(srt .le. (acas+aka))return
21113 srrt = srt - (aome+app) + (amn+aka)
21114 pkaon = sqrt(((srrt**2-(amn**2+aka**2))/2./amn)**2 - aka**2)
21115 c use K(bar) + Ca --> Om + eta xsecn same as K(bar) + N --> Si + Pi
21116 c** using same matrix elements as K-bar + N -> La/Si + pi
21117 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
21119 & sqrt((srt**2-(amn+aka)**2)*(srt**2-(amn-aka)**2))/
21120 & sqrt((srt**2-(asa+0.138)**2)*(srt**2-(asa-0.138)**2))
21122 & sqrt((srt**2-(aomp+app)**2)*(srt**2-(aomp-app)**2))/
21123 & sqrt((srt**2-(acas+aka)**2)*(srt**2-(acas-aka)**2))
21127 sigom = sigom*dfr*(srt**2-(acas+aka)**2)*
21128 & (srt**2-(acas-aka)**2)/(srt**2-(aomp+app)**2)/
21129 & (srt**2-(aomp-app)**2)
21132 ds = sqrt(sigom/31.4)
21134 ec = (em1+em2+0.02)**2
21135 call distce(i1,i2,dsr,ds,dt,ec,srt,ic,px,py,pz)
21137 clin-2/25/03: checking elastic scatt after failure of inelastic scatt gives
21138 c conditional probability (in general incorrect), tell Pal to correct:
21140 c check for elastic scatt, no particle annhilation
21141 c !! elastic cross section of 20 mb
21142 ds = sqrt(20.0/31.4)
21144 call distce(i1,i2,dsr,ds,dt,ec,srt,icsbel,px,py,pz)
21145 if(icsbel .eq. -1)return
21151 c else pert. produced omega(bar) annhilated OR real process
21152 c annhilate only pert. omega, rest from hijing go out WITHOUT annhil.
21153 if(lb1.eq.45 .or. lb2.eq.45)then
21155 lbpp1 = 40 + int(2*RANART(NSEED))
21159 * elseif(lb1 .eq. -45 .or. lb2 .eq. -45)
21161 lbpp1 = -40 - int(2*RANART(NSEED))
21168 c check for real process for Cas(bar) and K(bar) formation
21169 if(RANART(NSEED) .lt. proper(idp))then
21170 c !! real process flag
21174 c !! P_Cas(bar) = P_Om(bar)
21175 proper(i1) = proper(idp)
21178 c !! K(bar) formed with prob 1.
21182 c else Cascade(bar) produced and Omega(bar) annhilated
21185 c !! for produced particles
21188 c-----------------------------------------------------------
21190 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
21191 * ENERGY CONSERVATION
21192 PR2 = (SRT**2 - EMpp1**2 - EMpp2**2)**2
21193 & - 4.0 * (EMpp1*EMpp2)**2
21194 IF(PR2.LE.0.)PR2=0.00000001
21195 PR=SQRT(PR2)/(2.*SRT)
21197 C1 = 1.0 - 2.0 * RANART(NSEED)
21198 T1 = 2.0 * PI * RANART(NSEED)
21199 S1 = SQRT( 1.0 - C1**2 )
21202 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
21207 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
21208 if(icont .eq. 0)return
21210 * LORENTZ-TRANSFORMATION INTO CMS FRAME
21211 E1CM = SQRT (EMpp1**2 + PX**2 + PY**2 + PZ**2)
21212 P1BETA = PX*BETAX + PY*BETAY + PZ*BETAZ
21213 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
21214 Ppt11 = BETAX * TRANSF + PX
21215 Ppt12 = BETAY * TRANSF + PY
21216 Ppt13 = BETAZ * TRANSF + PZ
21218 cc** for elastic scattering update the momentum of pertb particles
21219 if(icsbel .ne. -1)then
21220 c if(EMpp1 .gt. 0.9)then
21225 E2CM = SQRT (EMpp2**2 + PX**2 + PY**2 + PZ**2)
21226 TRANSF = GAMMA * ( -GAMMA * P1BETA / (GAMMA + 1) + E2CM )
21227 Ppt21 = BETAX * TRANSF - PX
21228 Ppt22 = BETAY * TRANSF - PY
21229 Ppt23 = BETAZ * TRANSF - PZ
21237 c2008 X01 = 1.0 - 2.0 * RANART(NSEED)
21238 c Y01 = 1.0 - 2.0 * RANART(NSEED)
21239 c Z01 = 1.0 - 2.0 * RANART(NSEED)
21240 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2008
21249 c if(lbpp1 .eq. 45)then
21250 c write(*,*)'II lb1,lb2,lbpp1,empp1,proper(idp),brpp'
21251 c write(*,*)lb1,lb2,lbpp1,empp1,proper(idp),brpp
21255 PROPI(NNN,IRUN)= proper(idp)*brpp
21256 LPION(NNN,IRUN)= lbpp1
21257 EPION(NNN,IRUN)= empp1
21258 RPION(1,NNN,IRUN)=Xpt
21259 RPION(2,NNN,IRUN)=Ypt
21260 RPION(3,NNN,IRUN)=Zpt
21261 PPION(1,NNN,IRUN)=Ppt11
21262 PPION(2,NNN,IRUN)=Ppt12
21263 PPION(3,NNN,IRUN)=Ppt13
21265 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
21268 **********************************
21270 SUBROUTINE Crhb(PX,PY,PZ,SRT,I1,I2,IBLOCK)
21272 * DEALING WITH hyperon+N(D,N*)->hyp+N(D,N*) elastic PROCESS *
21276 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
21277 * SRT - SQRT OF S *
21278 * IBLOCK - THE INFORMATION BACK *
21279 * 144-> hyp+N(D,N*)->hyp+N(D,N*)
21280 **********************************
21281 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
21282 1 AMP=0.93828,AP1=0.13496,
21283 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
21284 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
21285 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
21286 COMMON /AA/ R(3,MAXSTR)
21288 COMMON /BB/ P(3,MAXSTR)
21290 COMMON /CC/ E(MAXSTR)
21292 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
21294 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
21296 COMMON/RNDF77/NSEED
21303 *-----------------------------------------------------------------------
21308 *-----------------------------------------------------------------------
21309 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
21310 * ENERGY CONSERVATION
21311 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
21312 1 - 4.0 * (EM1*EM2)**2
21313 IF(PR2.LE.0.)PR2=1.e-09
21314 PR=SQRT(PR2)/(2.*SRT)
21315 C1 = 1.0 - 2.0 * RANART(NSEED)
21316 T1 = 2.0 * PI * RANART(NSEED)
21317 S1 = SQRT( 1.0 - C1**2 )
21325 ****************************************
21327 * Purpose: lambda-baryon elastic xsection as a functon of their cms energy
21328 subroutine lambar(i1,i2,srt,siglab)
21329 * srt = DSQRT(s) in GeV *
21330 * siglab = lambda-nuclar elastic cross section in mb
21331 * = 12 + 0.43/p_lab**3.3 (mb)
21333 * (2) Calculate p(lab) from srt [GeV], since the formular in the
21334 * reference applies only to the case of a p_bar on a proton at rest
21335 * Formula used: srt**2=2.*pmass*(pmass+sqrt(pmass**2+plab**2))
21336 *****************************
21337 PARAMETER (MAXSTR=150001)
21338 COMMON /AA/ R(3,MAXSTR)
21340 COMMON /BB/ P(3,MAXSTR)
21342 COMMON /CC/ E(MAXSTR)
21344 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
21349 if( iabs(lb(i1)).ge.14.and.iabs(lb(i1)).le.17 )then
21356 pthr = srt**2-eml**2-emb**2
21357 if(pthr .gt. 0.)then
21358 plab2=(pthr/2./emb)**2-eml**2
21361 siglab=12. + 0.43/(plab**3.3)
21362 if(siglab.gt.200.)siglab=200.
21367 C------------------------------------------------------------------
21368 clin-7/26/03 improve speed
21369 ***************************************
21370 SUBROUTINE distc0(drmax,deltr0,DT,
21371 1 Ifirst,PX1CM,PY1CM,PZ1CM,
21372 2 x1,y1,z1,px1,py1,pz1,em1,x2,y2,z2,px2,py2,pz2,em2)
21373 * PURPOSE : CHECK IF THE COLLISION BETWEEN TWO PARTICLES CAN HAPPEN
21375 * (2) IF PARTICLE WILL PASS EACH OTHER WITHIN
21376 * TWO HARD CORE RADIUS.
21377 * (3) IF PARTICLES WILL GET CLOSER.
21379 * Ifirst=1 COLLISION may HAPPENED
21380 * Ifirst=-1 COLLISION CAN NOT HAPPEN
21381 *****************************************
21382 COMMON /BG/ BETAX,BETAY,BETAZ,GAMMA
21387 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
21388 *NOW PARTICLES ARE CLOSE ENOUGH TO EACH OTHER !
21389 E2 = SQRT ( EM2**2 + PX2**2 + PY2**2 + PZ2**2 )
21390 *NOW THERE IS ENOUGH ENERGY AVAILABLE !
21391 *LORENTZ-TRANSFORMATION IN I1-I2-C.M. SYSTEM
21392 * BETAX, BETAY, BETAZ AND GAMMA HAVE BEEN GIVEN IN THE SUBROUTINE CMS
21393 *TRANSFORMATION OF MOMENTA (PX1CM = - PX2CM)
21394 P1BETA = PX1*BETAX + PY1*BETAY + PZ1 * BETAZ
21395 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) - E1 )
21396 PRCM = SQRT (PX1CM**2 + PY1CM**2 + PZ1CM**2)
21397 IF (PRCM .LE. 0.00001) return
21398 *TRANSFORMATION OF SPATIAL DISTANCE
21399 DRBETA = BETAX*(X1-X2) + BETAY*(Y1-Y2) + BETAZ*(Z1-Z2)
21400 TRANSF = GAMMA * GAMMA * DRBETA / (GAMMA + 1)
21401 DXCM = BETAX * TRANSF + X1 - X2
21402 DYCM = BETAY * TRANSF + Y1 - Y2
21403 DZCM = BETAZ * TRANSF + Z1 - Z2
21404 *DETERMINING IF THIS IS THE POINT OF CLOSEST APPROACH
21405 DRCM = SQRT (DXCM**2 + DYCM**2 + DZCM**2 )
21406 DZZ = (PX1CM*DXCM + PY1CM*DYCM + PZ1CM*DZCM) / PRCM
21407 if ((drcm**2 - dzz**2) .le. 0.) then
21410 BBB = SQRT (DRCM**2 - DZZ**2)
21412 *WILL PARTICLE PASS EACH OTHER WITHIN 2 * HARD CORE RADIUS ?
21413 IF (BBB .GT. drmax) return
21414 RELVEL = PRCM * (1.0/E1 + 1.0/E2)
21415 DDD = RELVEL * DT * 0.5
21416 *WILL PARTICLES GET CLOSER ?
21417 IF (ABS(DDD) .LT. ABS(DZZ)) return
21421 *---------------------------------------------------------------------------
21423 clin-8/2008 B+B->Deuteron+Meson cross section in mb:
21424 subroutine sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
21425 PARAMETER (xmd=1.8756,AP1=0.13496,AP2=0.13957,
21426 1 xmrho=0.770,xmomega=0.782,xmeta=0.548,srt0=2.012)
21427 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
21428 1 px1n,py1n,pz1n,dp1n
21429 common /dpi/em2,lb2
21430 common /para8/ idpert,npertd,idxsec
21431 COMMON/RNDF77/NSEED
21439 if(srt.le.(em1+em2)) return
21443 ctest off check Xsec using fixed mass for resonances:
21444 c if(ilb1.ge.6.and.ilb1.le.9) then
21446 c elseif(ilb1.ge.10.and.ilb1.le.11) then
21448 c elseif(ilb1.ge.12.and.ilb1.le.13) then
21451 c if(ilb2.ge.6.and.ilb2.le.9) then
21453 c elseif(ilb2.ge.10.and.ilb2.le.11) then
21455 c elseif(ilb2.ge.12.and.ilb2.le.13) then
21460 pinitial=sqrt((s-(em1+em2)**2)*(s-(em1-em2)**2))/2./srt
21462 c Determine isospin and spin factors for the ratio between
21463 c BB->Deuteron+Meson and Deuteron+Meson->BB cross sections:
21464 if(idxsec.eq.1.or.idxsec.eq.2) then
21465 c Assume B+B -> d+Meson has the same cross sections as N+N -> d+pi:
21467 c Assume d+Meson -> B+B has the same cross sections as d+pi -> N+N,
21468 c then determine B+B -> d+Meson cross sections:
21469 if(ilb1.ge.1.and.ilb1.le.2.and.
21470 1 ilb2.ge.1.and.ilb2.le.2) then
21472 elseif((ilb1.ge.1.and.ilb1.le.2.and.
21473 1 ilb2.ge.6.and.ilb2.le.9).or.
21474 2 (ilb2.ge.1.and.ilb2.le.2.and.
21475 1 ilb1.ge.6.and.ilb1.le.9)) then
21477 elseif((ilb1.ge.1.and.ilb1.le.2.and.
21478 1 ilb2.ge.10.and.ilb2.le.13).or.
21479 2 (ilb2.ge.1.and.ilb2.le.2.and.
21480 1 ilb1.ge.10.and.ilb1.le.13)) then
21482 elseif(ilb1.ge.6.and.ilb1.le.9.and.
21483 1 ilb2.ge.6.and.ilb2.le.9) then
21485 elseif((ilb1.ge.6.and.ilb1.le.9.and.
21486 1 ilb2.ge.10.and.ilb2.le.13).or.
21487 2 (ilb2.ge.6.and.ilb2.le.9.and.
21488 1 ilb1.ge.10.and.ilb1.le.13)) then
21490 elseif((ilb1.ge.10.and.ilb1.le.11.and.
21491 1 ilb2.ge.10.and.ilb2.le.11).or.
21492 2 (ilb2.ge.12.and.ilb2.le.13.and.
21493 1 ilb1.ge.12.and.ilb1.le.13)) then
21495 elseif((ilb1.ge.10.and.ilb1.le.11.and.
21496 1 ilb2.ge.12.and.ilb2.le.13).or.
21497 2 (ilb2.ge.10.and.ilb2.le.11.and.
21498 1 ilb1.ge.12.and.ilb1.le.13)) then
21502 c d pi: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21503 * (1) FOR P+P->Deuteron+pi+:
21504 IF((ilb1*ilb2).EQ.1)THEN
21506 if(ianti.eq.1) lbm=3
21508 * (2)FOR N+N->Deuteron+pi-:
21509 ELSEIF(ilb1.EQ.2.AND.ilb2.EQ.2)THEN
21511 if(ianti.eq.1) lbm=5
21513 * (3)FOR N+P->Deuteron+pi0:
21514 ELSEIF((ilb1*ilb2).EQ.2)THEN
21518 c For baryon resonances, use isospin-averaged cross sections:
21519 lbm=3+int(3 * RANART(NSEED))
21527 if(srt.ge.(xmd+xmm)) then
21528 pfinal=sqrt((s-(xmd+xmm)**2)*(s-(xmd-xmm)**2))/2./srt
21529 if((ilb1.eq.1.and.ilb2.eq.1).or.
21530 1 (ilb1.eq.2.and.ilb2.eq.2)) then
21531 c for pp or nn initial states:
21532 sbbdpi=fs*pfinal/pinitial/4.
21533 elseif((ilb1.eq.1.and.ilb2.eq.2).or.
21534 1 (ilb1.eq.2.and.ilb2.eq.1)) then
21535 c factor of 1/2 for pn or np initial states:
21536 sbbdpi=fs*pfinal/pinitial/4./2.
21538 c for other BB initial states (spin- and isospin averaged):
21539 if(idxsec.eq.1) then
21540 c 1: assume the same |matrix element|**2 (after averaging over initial
21541 c spins and isospins) for B+B -> deuteron+meson at the same sqrt(s);
21542 sbbdpi=fs*pfinal/pinitial*3./16.
21543 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21544 threshold=amax1(xmd+xmm,em1+em2)
21545 snew=(srt-threshold+srt0)**2
21546 if(idxsec.eq.2) then
21547 c 2: assume the same |matrix element|**2 for B+B -> deuteron+meson
21548 c at the same sqrt(s)-threshold:
21549 sbbdpi=fnndpi(snew)*pfinal/pinitial*3./16.
21550 elseif(idxsec.eq.4) then
21551 c 4: assume the same |matrix element|**2 for B+B <- deuteron+meson
21552 c at the same sqrt(s)-threshold:
21553 sbbdpi=fnndpi(snew)*pfinal/pinitial/6.*pifactor
21555 elseif(idxsec.eq.3) then
21556 c 3: assume the same |matrix element|**2 for B+B <- deuteron+meson
21557 c at the same sqrt(s):
21558 sbbdpi=fs*pfinal/pinitial/6.*pifactor
21564 * d rho: DETERMINE THE CROSS SECTION TO THIS FINAL STATE:
21565 if(srt.gt.(xmd+xmrho)) then
21566 pfinal=sqrt((s-(xmd+xmrho)**2)*(s-(xmd-xmrho)**2))/2./srt
21567 if(idxsec.eq.1) then
21568 sbbdrho=fs*pfinal/pinitial*3./16.
21569 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21570 threshold=amax1(xmd+xmrho,em1+em2)
21571 snew=(srt-threshold+srt0)**2
21572 if(idxsec.eq.2) then
21573 sbbdrho=fnndpi(snew)*pfinal/pinitial*3./16.
21574 elseif(idxsec.eq.4) then
21575 c The spin- and isospin-averaged factor is 3-times larger for rho:
21576 sbbdrho=fnndpi(snew)*pfinal/pinitial/6.*(pifactor*3.)
21578 elseif(idxsec.eq.3) then
21579 sbbdrho=fs*pfinal/pinitial/6.*(pifactor*3.)
21583 * d omega: DETERMINE THE CROSS SECTION TO THIS FINAL STATE:
21584 if(srt.gt.(xmd+xmomega)) then
21585 pfinal=sqrt((s-(xmd+xmomega)**2)*(s-(xmd-xmomega)**2))/2./srt
21586 if(idxsec.eq.1) then
21587 sbbdomega=fs*pfinal/pinitial*3./16.
21588 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21589 threshold=amax1(xmd+xmomega,em1+em2)
21590 snew=(srt-threshold+srt0)**2
21591 if(idxsec.eq.2) then
21592 sbbdomega=fnndpi(snew)*pfinal/pinitial*3./16.
21593 elseif(idxsec.eq.4) then
21594 sbbdomega=fnndpi(snew)*pfinal/pinitial/6.*pifactor
21596 elseif(idxsec.eq.3) then
21597 sbbdomega=fs*pfinal/pinitial/6.*pifactor
21601 * d eta: DETERMINE THE CROSS SECTION TO THIS FINAL STATE:
21602 if(srt.gt.(xmd+xmeta)) then
21603 pfinal=sqrt((s-(xmd+xmeta)**2)*(s-(xmd-xmeta)**2))/2./srt
21604 if(idxsec.eq.1) then
21605 sbbdeta=fs*pfinal/pinitial*3./16.
21606 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21607 threshold=amax1(xmd+xmeta,em1+em2)
21608 snew=(srt-threshold+srt0)**2
21609 if(idxsec.eq.2) then
21610 sbbdeta=fnndpi(snew)*pfinal/pinitial*3./16.
21611 elseif(idxsec.eq.4) then
21612 sbbdeta=fnndpi(snew)*pfinal/pinitial/6.*(pifactor/3.)
21614 elseif(idxsec.eq.3) then
21615 sbbdeta=fs*pfinal/pinitial/6.*(pifactor/3.)
21619 sdprod=sbbdpi+sbbdrho+sbbdomega+sbbdeta
21621 c write(99,111) srt,sbbdpi,sbbdrho,sbbdomega,sbbdeta,sdprod
21622 c 111 format(6(f8.2,1x))
21624 if(sdprod.le.0) return
21626 c choose final state and assign masses here:
21628 if(x1.le.sbbdpi/sdprod) then
21629 c use the above-determined lbm and xmm.
21630 elseif(x1.le.(sbbdpi+sbbdrho)/sdprod) then
21631 lbm=25+int(3*RANART(NSEED))
21633 elseif(x1.le.(sbbdpi+sbbdrho+sbbdomega)/sdprod) then
21644 c Generate angular distribution of Deuteron in the CMS frame:
21645 subroutine bbdangle(pxd,pyd,pzd,nt,ipert1,ianti,idloop,pfinal,
21647 PARAMETER (PI=3.1415926)
21648 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
21649 1 px1n,py1n,pz1n,dp1n
21650 common /dpi/em2,lb2
21651 COMMON/RNDF77/NSEED
21652 common /para8/ idpert,npertd,idxsec
21653 COMMON /AREVT/ IAEVT, IARUN, MISS
21655 c take isotropic distribution for now:
21656 C1=1.0-2.0*RANART(NSEED)
21657 T1=2.0*PI*RANART(NSEED)
21661 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
21665 clin-5/2008 track the number of produced deuterons:
21666 if(idpert.eq.1.and.npertd.ge.1) then
21668 elseif(idpert.eq.2.and.npertd.ge.1) then
21669 dprob=1./float(npertd)
21671 c if(ianti.eq.0) then
21672 c if(idpert.eq.0.or.(idpert.eq.1.and.ipert1.eq.0).or.
21673 c 1 (idpert.eq.2.and.idloop.eq.(npertd+1))) then
21674 c write (91,*) lb1,' *',lb2,' ->d+',lbm,' (regular d prodn)
21675 c 1 @evt#',iaevt,' @nt=',nt
21676 c elseif((idpert.eq.1.or.idpert.eq.2).and.idloop.eq.npertd) then
21677 c write (91,*) lb1,' *',lb2,' ->d+',lbm,' (pert d prodn)
21678 c 1 @evt#',iaevt,' @nt=',nt,' @prob=',dprob
21681 c if(idpert.eq.0.or.(idpert.eq.1.and.ipert1.eq.0).or.
21682 c 1 (idpert.eq.2.and.idloop.eq.(npertd+1))) then
21683 c write (91,*) lb1,' *',lb2,' ->d+',lbm,' (regular dbar prodn)
21684 c 1 @evt#',iaevt,' @nt=',nt
21685 c elseif((idpert.eq.1.or.idpert.eq.2).and.idloop.eq.npertd) then
21686 c write (91,*) lb1,' *',lb2,' ->d+',lbm,' (pert dbar prodn)
21687 c 1 @evt#',iaevt,' @nt=',nt,' @prob=',dprob
21694 c Deuteron+Meson->B+B cross section (in mb)
21695 subroutine sdmbb(SRT,sdm,ianti)
21696 PARAMETER (AMN=0.939457,AMP=0.93828,
21697 1 AM0=1.232,AM1440=1.44,AM1535=1.535,srt0=2.012)
21698 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
21699 1 px1n,py1n,pz1n,dp1n
21700 common /dpi/em2,lb2
21701 common /dpifsl/lbnn1,lbnn2,lbnd1,lbnd2,lbns1,lbns2,lbnp1,lbnp2,
21702 1 lbdd1,lbdd2,lbds1,lbds2,lbdp1,lbdp2,lbss1,lbss2,
21703 2 lbsp1,lbsp2,lbpp1,lbpp2
21704 common /dpifsm/xmnn1,xmnn2,xmnd1,xmnd2,xmns1,xmns2,xmnp1,xmnp2,
21705 1 xmdd1,xmdd2,xmds1,xmds2,xmdp1,xmdp2,xmss1,xmss2,
21706 2 xmsp1,xmsp2,xmpp1,xmpp2
21707 common /dpisig/sdmel,sdmnn,sdmnd,sdmns,sdmnp,sdmdd,sdmds,sdmdp,
21708 1 sdmss,sdmsp,sdmpp
21709 common /para8/ idpert,npertd,idxsec
21710 COMMON/RNDF77/NSEED
21725 ctest off check Xsec using fixed mass for resonances:
21726 c if(lb1.ge.25.and.lb1.le.27) then
21728 c elseif(lb1.eq.28) then
21730 c elseif(lb1.eq.0) then
21733 c if(lb2.ge.25.and.lb2.le.27) then
21735 c elseif(lb2.eq.28) then
21737 c elseif(lb2.eq.0) then
21741 if(srt.le.(em1+em2)) return
21743 pinitial=sqrt((s-(em1+em2)**2)*(s-(em1-em2)**2))/2./srt
21745 c Determine isospin and spin factors for the ratio between
21746 c Deuteron+Meson->BB and BB->Deuteron+Meson cross sections:
21747 if(idxsec.eq.1.or.idxsec.eq.2) then
21748 c Assume B+B -> d+Meson has the same cross sections as N+N -> d+pi,
21749 c then determine d+Meson -> B+B cross sections:
21750 if((lb1.ge.3.and.lb1.le.5).or.
21751 1 (lb2.ge.3.and.lb2.le.5)) then
21753 elseif((lb1.ge.25.and.lb1.le.27).or.
21754 1 (lb2.ge.25.and.lb2.le.27)) then
21756 elseif(lb1.eq.28.or.lb2.eq.28) then
21758 elseif(lb1.eq.0.or.lb2.eq.0) then
21762 c Assume d+Meson -> B+B has the same cross sections as d+pi -> N+N:
21764 clin-9/2008 For elastic collisions:
21765 if(idxsec.eq.1.or.idxsec.eq.3) then
21766 c 1/3: assume the same |matrix element|**2 (after averaging over initial
21767 c spins and isospins) for d+Meson elastic at the same sqrt(s);
21769 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21770 c 2/4: assume the same |matrix element|**2 (after averaging over initial
21771 c spins and isospins) for d+Meson elastic at the same sqrt(s)-threshold:
21773 snew=(srt-threshold+srt0)**2
21777 * NN: DETERMINE THE CHARGE STATES OF PARTICLESIN THE FINAL STATE
21778 IF(((lb1.eq.5.or.lb2.eq.5.or.lb1.eq.27.or.lb2.eq.27)
21779 1 .and.ianti.eq.0).or.
21780 2 ((lb1.eq.3.or.lb2.eq.3.or.lb1.eq.25.or.lb2.eq.25)
21781 3 .and.ianti.eq.1))THEN
21782 * (1) FOR Deuteron+(pi+,rho+) -> P+P or DeuteronBar+(pi-,rho-)-> PBar+PBar:
21787 ELSEIF(lb1.eq.3.or.lb2.eq.3.or.lb1.eq.26.or.lb2.eq.26
21788 1 .or.lb1.eq.28.or.lb2.eq.28.or.lb1.eq.0.or.lb2.eq.0)THEN
21789 * (2) FOR Deuteron+(pi0,rho0,omega,eta) -> N+P
21790 * or DeuteronBar+(pi0,rho0,omega,eta) ->NBar+PBar:
21796 * (3) FOR Deuteron+(pi-,rho-) -> N+N or DeuteronBar+(pi+,rho+)-> NBar+NBar:
21802 if(srt.gt.(xmnn1+xmnn2)) then
21803 pfinal=sqrt((s-(xmnn1+xmnn2)**2)*(s-(xmnn1-xmnn2)**2))/2./srt
21804 if(idxsec.eq.1) then
21805 c 1: assume the same |matrix element|**2 (after averaging over initial
21806 c spins and isospins) for B+B -> deuteron+meson at the same sqrt(s);
21807 sdmnn=fs*pfinal/pinitial*3./16.*xnnfactor
21808 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21809 threshold=amax1(xmnn1+xmnn2,em1+em2)
21810 snew=(srt-threshold+srt0)**2
21811 if(idxsec.eq.2) then
21812 c 2: assume the same |matrix element|**2 for B+B -> deuteron+meson
21813 c at the same sqrt(s)-threshold:
21814 sdmnn=fnndpi(snew)*pfinal/pinitial*3./16.*xnnfactor
21815 elseif(idxsec.eq.4) then
21816 c 4: assume the same |matrix element|**2 for B+B <- deuteron+meson
21817 c at the same sqrt(s)-threshold:
21818 sdmnn=fnndpi(snew)*pfinal/pinitial/6.
21820 elseif(idxsec.eq.3) then
21821 c 3: assume the same |matrix element|**2 for B+B <- deuteron+meson
21822 c at the same sqrt(s):
21823 sdmnn=fs*pfinal/pinitial/6.
21827 * ND: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21828 lbnd1=1+int(2*RANART(NSEED))
21829 lbnd2=6+int(4*RANART(NSEED))
21830 if(lbnd1.eq.1) then
21832 elseif(lbnd1.eq.2) then
21836 if(srt.gt.(xmnd1+xmnd2)) then
21837 pfinal=sqrt((s-(xmnd1+xmnd2)**2)*(s-(xmnd1-xmnd2)**2))/2./srt
21838 if(idxsec.eq.1) then
21839 c The spin- and isospin-averaged factor is 8-times larger for ND:
21840 sdmnd=fs*pfinal/pinitial*3./16.*(xnnfactor*8.)
21841 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21842 threshold=amax1(xmnd1+xmnd2,em1+em2)
21843 snew=(srt-threshold+srt0)**2
21844 if(idxsec.eq.2) then
21845 sdmnd=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*8.)
21846 elseif(idxsec.eq.4) then
21847 sdmnd=fnndpi(snew)*pfinal/pinitial/6.
21849 elseif(idxsec.eq.3) then
21850 sdmnd=fs*pfinal/pinitial/6.
21854 * NS: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21855 lbns1=1+int(2*RANART(NSEED))
21856 lbns2=10+int(2*RANART(NSEED))
21857 if(lbns1.eq.1) then
21859 elseif(lbns1.eq.2) then
21863 if(srt.gt.(xmns1+xmns2)) then
21864 pfinal=sqrt((s-(xmns1+xmns2)**2)*(s-(xmns1-xmns2)**2))/2./srt
21865 if(idxsec.eq.1) then
21866 sdmns=fs*pfinal/pinitial*3./16.*(xnnfactor*2.)
21867 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21868 threshold=amax1(xmns1+xmns2,em1+em2)
21869 snew=(srt-threshold+srt0)**2
21870 if(idxsec.eq.2) then
21871 sdmns=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*2.)
21872 elseif(idxsec.eq.4) then
21873 sdmns=fnndpi(snew)*pfinal/pinitial/6.
21875 elseif(idxsec.eq.3) then
21876 sdmns=fs*pfinal/pinitial/6.
21880 * NP: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21881 lbnp1=1+int(2*RANART(NSEED))
21882 lbnp2=12+int(2*RANART(NSEED))
21883 if(lbnp1.eq.1) then
21885 elseif(lbnp1.eq.2) then
21889 if(srt.gt.(xmnp1+xmnp2)) then
21890 pfinal=sqrt((s-(xmnp1+xmnp2)**2)*(s-(xmnp1-xmnp2)**2))/2./srt
21891 if(idxsec.eq.1) then
21892 sdmnp=fs*pfinal/pinitial*3./16.*(xnnfactor*2.)
21893 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21894 threshold=amax1(xmnp1+xmnp2,em1+em2)
21895 snew=(srt-threshold+srt0)**2
21896 if(idxsec.eq.2) then
21897 sdmnp=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*2.)
21898 elseif(idxsec.eq.4) then
21899 sdmnp=fnndpi(snew)*pfinal/pinitial/6.
21901 elseif(idxsec.eq.3) then
21902 sdmnp=fs*pfinal/pinitial/6.
21906 * DD: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21907 lbdd1=6+int(4*RANART(NSEED))
21908 lbdd2=6+int(4*RANART(NSEED))
21911 if(srt.gt.(xmdd1+xmdd2)) then
21912 pfinal=sqrt((s-(xmdd1+xmdd2)**2)*(s-(xmdd1-xmdd2)**2))/2./srt
21913 if(idxsec.eq.1) then
21914 sdmdd=fs*pfinal/pinitial*3./16.*(xnnfactor*16.)
21915 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21916 threshold=amax1(xmdd1+xmdd2,em1+em2)
21917 snew=(srt-threshold+srt0)**2
21918 if(idxsec.eq.2) then
21919 sdmdd=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*16.)
21920 elseif(idxsec.eq.4) then
21921 sdmdd=fnndpi(snew)*pfinal/pinitial/6.
21923 elseif(idxsec.eq.3) then
21924 sdmdd=fs*pfinal/pinitial/6.
21928 * DS: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21929 lbds1=6+int(4*RANART(NSEED))
21930 lbds2=10+int(2*RANART(NSEED))
21933 if(srt.gt.(xmds1+xmds2)) then
21934 pfinal=sqrt((s-(xmds1+xmds2)**2)*(s-(xmds1-xmds2)**2))/2./srt
21935 if(idxsec.eq.1) then
21936 sdmds=fs*pfinal/pinitial*3./16.*(xnnfactor*8.)
21937 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21938 threshold=amax1(xmds1+xmds2,em1+em2)
21939 snew=(srt-threshold+srt0)**2
21940 if(idxsec.eq.2) then
21941 sdmds=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*8.)
21942 elseif(idxsec.eq.4) then
21943 sdmds=fnndpi(snew)*pfinal/pinitial/6.
21945 elseif(idxsec.eq.3) then
21946 sdmds=fs*pfinal/pinitial/6.
21950 * DP: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21951 lbdp1=6+int(4*RANART(NSEED))
21952 lbdp2=12+int(2*RANART(NSEED))
21955 if(srt.gt.(xmdp1+xmdp2)) then
21956 pfinal=sqrt((s-(xmdp1+xmdp2)**2)*(s-(xmdp1-xmdp2)**2))/2./srt
21957 if(idxsec.eq.1) then
21958 sdmdp=fs*pfinal/pinitial*3./16.*(xnnfactor*8.)
21959 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21960 threshold=amax1(xmdp1+xmdp2,em1+em2)
21961 snew=(srt-threshold+srt0)**2
21962 if(idxsec.eq.2) then
21963 sdmdp=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*8.)
21964 elseif(idxsec.eq.4) then
21965 sdmdp=fnndpi(snew)*pfinal/pinitial/6.
21967 elseif(idxsec.eq.3) then
21968 sdmdp=fs*pfinal/pinitial/6.
21972 * SS: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21973 lbss1=10+int(2*RANART(NSEED))
21974 lbss2=10+int(2*RANART(NSEED))
21977 if(srt.gt.(xmss1+xmss2)) then
21978 pfinal=sqrt((s-(xmss1+xmss2)**2)*(s-(xmss1-xmss2)**2))/2./srt
21979 if(idxsec.eq.1) then
21980 sdmss=fs*pfinal/pinitial*3./16.*xnnfactor
21981 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21982 threshold=amax1(xmss1+xmss2,em1+em2)
21983 snew=(srt-threshold+srt0)**2
21984 if(idxsec.eq.2) then
21985 sdmss=fnndpi(snew)*pfinal/pinitial*3./16.*xnnfactor
21986 elseif(idxsec.eq.4) then
21987 sdmss=fnndpi(snew)*pfinal/pinitial/6.
21989 elseif(idxsec.eq.3) then
21990 sdmns=fs*pfinal/pinitial/6.
21994 * SP: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21995 lbsp1=10+int(2*RANART(NSEED))
21996 lbsp2=12+int(2*RANART(NSEED))
21999 if(srt.gt.(xmsp1+xmsp2)) then
22000 pfinal=sqrt((s-(xmsp1+xmsp2)**2)*(s-(xmsp1-xmsp2)**2))/2./srt
22001 if(idxsec.eq.1) then
22002 sdmsp=fs*pfinal/pinitial*3./16.*(xnnfactor*2.)
22003 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22004 threshold=amax1(xmsp1+xmsp2,em1+em2)
22005 snew=(srt-threshold+srt0)**2
22006 if(idxsec.eq.2) then
22007 sdmsp=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*2.)
22008 elseif(idxsec.eq.4) then
22009 sdmsp=fnndpi(snew)*pfinal/pinitial/6.
22011 elseif(idxsec.eq.3) then
22012 sdmsp=fs*pfinal/pinitial/6.
22016 * PP: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
22017 lbpp1=12+int(2*RANART(NSEED))
22018 lbpp2=12+int(2*RANART(NSEED))
22021 if(srt.gt.(xmpp1+xmpp2)) then
22022 pfinal=sqrt((s-(xmpp1+xmpp2)**2)*(s-(xmpp1-xmpp2)**2))/2./srt
22023 if(idxsec.eq.1) then
22024 sdmpp=fs*pfinal/pinitial*3./16.*xnnfactor
22025 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22026 threshold=amax1(xmpp1+xmpp2,em1+em2)
22027 snew=(srt-threshold+srt0)**2
22028 if(idxsec.eq.2) then
22029 sdmpp=fnndpi(snew)*pfinal/pinitial*3./16.*xnnfactor
22030 elseif(idxsec.eq.4) then
22031 sdmpp=fnndpi(snew)*pfinal/pinitial/6.
22033 elseif(idxsec.eq.3) then
22034 sdmpp=fs*pfinal/pinitial/6.
22038 sdm=sdmel+sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp
22039 1 +sdmss+sdmsp+sdmpp
22040 if(ianti.eq.1) then
22063 c write(98,100) srt,sdmnn,sdmnd,sdmns,sdmnp,sdmdd,sdmds,sdmdp,
22064 c 1 sdmss,sdmsp,sdmpp,sdm
22065 c 100 format(f5.2,11(1x,f5.1))
22070 clin-9/2008 Deuteron+Meson ->B+B and elastic collisions
22071 SUBROUTINE crdmbb(PX,PY,PZ,SRT,I1,I2,IBLOCK,
22072 1 NTAG,sig,NT,ianti)
22073 PARAMETER (MAXSTR=150001,MAXR=1)
22074 COMMON /AA/R(3,MAXSTR)
22075 COMMON /BB/ P(3,MAXSTR)
22076 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
22077 COMMON /CC/ E(MAXSTR)
22078 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
22079 COMMON /AREVT/ IAEVT, IARUN, MISS
22080 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22081 1 px1n,py1n,pz1n,dp1n
22082 common /dpi/em2,lb2
22083 common /para8/ idpert,npertd,idxsec
22084 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
22085 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
22086 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
22087 common /dpifsl/lbnn1,lbnn2,lbnd1,lbnd2,lbns1,lbns2,lbnp1,lbnp2,
22088 1 lbdd1,lbdd2,lbds1,lbds2,lbdp1,lbdp2,lbss1,lbss2,
22089 2 lbsp1,lbsp2,lbpp1,lbpp2
22090 common /dpifsm/xmnn1,xmnn2,xmnd1,xmnd2,xmns1,xmns2,xmnp1,xmnp2,
22091 1 xmdd1,xmdd2,xmds1,xmds2,xmdp1,xmdp2,xmss1,xmss2,
22092 2 xmsp1,xmsp2,xmpp1,xmpp2
22093 common /dpisig/sdmel,sdmnn,sdmnd,sdmns,sdmnp,sdmdd,sdmds,sdmdp,
22094 1 sdmss,sdmsp,sdmpp
22095 COMMON/RNDF77/NSEED
22097 *-----------------------------------------------------------------------
22103 if(sig.le.0) return
22105 if(iabs(lb1).eq.42) then
22114 cccc Elastic collision or destruction of perturbatively-produced deuterons:
22115 if((idpert.eq.1.or.idpert.eq.2).and.dpertp(ideut).ne.1.) then
22116 c choose reaction channels:
22118 if(x1.le.sdmel/sig)then
22119 c Elastic collisions:
22120 c if(ianti.eq.0) then
22121 c write(91,*) ' d+',lbm,' (pert d M elastic) @nt=',nt
22122 c 1 ,' @prob=',dpertp(ideut)
22124 c write(91,*) ' d+',lbm,' (pert dbar M elastic) @nt=',nt
22125 c 1 ,' @prob=',dpertp(ideut)
22127 pfinal=sqrt((s-(em1+em2)**2)*(s-(em1-em2)**2))/2./srt
22128 CALL dmelangle(pxn,pyn,pzn,pfinal)
22129 CALL ROTATE(PX,PY,PZ,Pxn,Pyn,Pzn)
22130 EdCM=SQRT(E(ideut)**2+Pxn**2+Pyn**2+Pzn**2)
22131 PdBETA=Pxn*BETAX+Pyn*BETAY+Pzn*BETAZ
22132 TRANSF=GAMMA*(GAMMA*PdBETA/(GAMMA+1.)+EdCM)
22133 Pt1d=BETAX*TRANSF+Pxn
22134 Pt2d=BETAY*TRANSF+Pyn
22135 Pt3d=BETAZ*TRANSF+Pzn
22145 c Change the position of the perturbative deuteron to that of
22146 c the meson to avoid consecutive collisions between them:
22147 R(1,ideut)=R(1,idm)
22148 R(2,ideut)=R(2,idm)
22149 R(3,ideut)=R(3,idm)
22151 c Destruction of deuterons:
22152 c if(ianti.eq.0) then
22153 c write(91,*) ' d+',lbm,' ->BB (pert d destrn) @nt=',nt
22154 c 1 ,' @prob=',dpertp(ideut)
22156 c write(91,*) ' d+',lbm,' ->BB (pert dbar destrn) @nt=',nt
22157 c 1 ,' @prob=',dpertp(ideut)
22165 cccc Destruction of regularly-produced deuterons:
22167 c choose final state and assign masses here:
22169 if(x1.le.sdmnn/sig)then
22174 elseif(x1.le.(sdmnn+sdmnd)/sig)then
22179 elseif(x1.le.(sdmnn+sdmnd+sdmns)/sig)then
22184 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp)/sig)then
22189 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd)/sig)then
22194 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds)/sig)then
22199 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp)/sig)then
22204 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp
22210 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp
22211 1 +sdmss+sdmsp)/sig)then
22216 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp
22217 1 +sdmss+sdmsp+sdmpp)/sig)then
22223 c Elastic collision:
22236 pfinal=sqrt((s-(xmb1+xmb2)**2)*(s-(xmb1-xmb2)**2))/2./srt
22238 if(iblock.eq.502) then
22239 CALL dmangle(pxn,pyn,pzn,nt,ianti,pfinal,lbm)
22240 elseif(iblock.eq.504) then
22241 c if(ianti.eq.0) then
22242 c write (91,*) ' d+',lbm,' (regular d M elastic) @evt#',
22243 c 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22245 c write (91,*) ' d+',lbm,' (regular dbar M elastic) @evt#',
22246 c 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22248 CALL dmelangle(pxn,pyn,pzn,pfinal)
22250 print *, 'Wrong iblock number in crdmbb()'
22253 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
22254 c (This is not needed for isotropic distributions)
22255 CALL ROTATE(PX,PY,PZ,Pxn,Pyn,Pzn)
22256 * LORENTZ-TRANSFORMATION OF THE MOMENTUM OF PARTICLES IN THE FINAL STATE
22257 * FROM THE NUCLEUS-NUCLEUS CMS. FRAME INTO LAB FRAME:
22258 * For the 1st baryon:
22259 E1CM=SQRT(E(I1)**2+Pxn**2+Pyn**2+Pzn**2)
22260 P1BETA=Pxn*BETAX+Pyn*BETAY+Pzn*BETAZ
22261 TRANSF=GAMMA*(GAMMA*P1BETA/(GAMMA+1.)+E1CM)
22262 Pt1i1=BETAX*TRANSF+Pxn
22263 Pt2i1=BETAY*TRANSF+Pyn
22264 Pt3i1=BETAZ*TRANSF+Pzn
22269 * For the 2nd baryon:
22270 E2CM=SQRT(E(I2)**2+Pxn**2+Pyn**2+Pzn**2)
22271 P2BETA=-Pxn*BETAX-Pyn*BETAY-Pzn*BETAZ
22272 TRANSF=GAMMA*(GAMMA*P2BETA/(GAMMA+1.)+E2CM)
22273 Pt1I2=BETAX*TRANSF-Pxn
22274 Pt2I2=BETAY*TRANSF-Pyn
22275 Pt3I2=BETAZ*TRANSF-Pzn
22291 c Generate angular distribution of BB from d+meson in the CMS frame:
22292 subroutine dmangle(pxn,pyn,pzn,nt,ianti,pfinal,lbm)
22293 PARAMETER (PI=3.1415926)
22294 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22295 1 px1n,py1n,pz1n,dp1n
22296 common /dpi/em2,lb2
22297 COMMON /AREVT/ IAEVT, IARUN, MISS
22298 COMMON/RNDF77/NSEED
22300 c take isotropic distribution for now:
22301 C1=1.0-2.0*RANART(NSEED)
22302 T1=2.0*PI*RANART(NSEED)
22306 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
22310 clin-5/2008 track the number of regularly-destructed deuterons:
22311 c if(ianti.eq.0) then
22312 c write (91,*) ' d+',lbm,' ->BB (regular d destrn) @evt#',
22313 c 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22315 c write (91,*) ' d+',lbm,' ->BB (regular dbar destrn) @evt#',
22316 c 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22322 c Angular distribution of d+meson elastic collisions in the CMS frame:
22323 subroutine dmelangle(pxn,pyn,pzn,pfinal)
22324 PARAMETER (PI=3.1415926)
22325 COMMON/RNDF77/NSEED
22327 c take isotropic distribution for now:
22328 C1=1.0-2.0*RANART(NSEED)
22329 T1=2.0*PI*RANART(NSEED)
22333 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
22340 clin-9/2008 Deuteron+Baryon elastic cross section (in mb)
22341 subroutine sdbelastic(SRT,sdb)
22342 PARAMETER (srt0=2.012)
22343 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22344 1 px1n,py1n,pz1n,dp1n
22345 common /dpi/em2,lb2
22346 common /para8/ idpert,npertd,idxsec
22351 if(srt.le.(em1+em2)) return
22353 c For elastic collisions:
22354 if(idxsec.eq.1.or.idxsec.eq.3) then
22355 c 1/3: assume the same |matrix element|**2 (after averaging over initial
22356 c spins and isospins) for d+Baryon elastic at the same sqrt(s);
22358 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22359 c 2/4: assume the same |matrix element|**2 (after averaging over initial
22360 c spins and isospins) for d+Baryon elastic at the same sqrt(s)-threshold:
22362 snew=(srt-threshold+srt0)**2
22368 clin-9/2008 Deuteron+Baryon elastic collisions
22369 SUBROUTINE crdbel(PX,PY,PZ,SRT,I1,I2,IBLOCK,
22370 1 NTAG,sig,NT,ianti)
22371 PARAMETER (MAXSTR=150001,MAXR=1)
22372 COMMON /AA/R(3,MAXSTR)
22373 COMMON /BB/ P(3,MAXSTR)
22374 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
22375 COMMON /CC/ E(MAXSTR)
22376 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
22377 COMMON /AREVT/ IAEVT, IARUN, MISS
22378 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22379 1 px1n,py1n,pz1n,dp1n
22380 common /dpi/em2,lb2
22381 common /para8/ idpert,npertd,idxsec
22382 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
22383 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
22384 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
22386 *-----------------------------------------------------------------------
22392 if(sig.le.0) return
22395 if(iabs(lb1).eq.42) then
22404 cccc Elastic collision of perturbatively-produced deuterons:
22405 if((idpert.eq.1.or.idpert.eq.2).and.dpertp(ideut).ne.1.) then
22406 c if(ianti.eq.0) then
22407 c write(91,*) ' d+',lbb,' (pert d B elastic) @nt=',nt
22408 c 1 ,' @prob=',dpertp(ideut),p(1,idb),p(2,idb)
22409 c 2 ,p(1,ideut),p(2,ideut)
22411 c write(91,*) ' d+',lbb,' (pert dbar Bbar elastic) @nt=',nt
22412 c 1 ,' @prob=',dpertp(ideut),p(1,idb),p(2,idb)
22413 c 2 ,p(1,ideut),p(2,ideut)
22415 pfinal=sqrt((s-(em1+em2)**2)*(s-(em1-em2)**2))/2./srt
22416 CALL dbelangle(pxn,pyn,pzn,pfinal)
22417 CALL ROTATE(PX,PY,PZ,Pxn,Pyn,Pzn)
22418 EdCM=SQRT(E(ideut)**2+Pxn**2+Pyn**2+Pzn**2)
22419 PdBETA=Pxn*BETAX+Pyn*BETAY+Pzn*BETAZ
22420 TRANSF=GAMMA*(GAMMA*PdBETA/(GAMMA+1.)+EdCM)
22421 Pt1d=BETAX*TRANSF+Pxn
22422 Pt2d=BETAY*TRANSF+Pyn
22423 Pt3d=BETAZ*TRANSF+Pzn
22432 c Change the position of the perturbative deuteron to that of
22433 c the baryon to avoid consecutive collisions between them:
22434 R(1,ideut)=R(1,idb)
22435 R(2,ideut)=R(2,idb)
22436 R(3,ideut)=R(3,idb)
22440 c Elastic collision of regularly-produced deuterons:
22441 c if(ianti.eq.0) then
22442 c write (91,*) ' d+',lbb,' (regular d B elastic) @evt#',
22443 c 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22445 c write (91,*) ' d+',lbb,' (regular dbar Bbar elastic) @evt#',
22446 c 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22448 pfinal=sqrt((s-(em1+em2)**2)*(s-(em1-em2)**2))/2./srt
22449 CALL dbelangle(pxn,pyn,pzn,pfinal)
22450 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
22451 c (This is not needed for isotropic distributions)
22452 CALL ROTATE(PX,PY,PZ,Pxn,Pyn,Pzn)
22453 * LORENTZ-TRANSFORMATION OF THE MOMENTUM OF PARTICLES IN THE FINAL STATE
22454 * FROM THE NUCLEUS-NUCLEUS CMS. FRAME INTO LAB FRAME:
22455 * For the 1st baryon:
22456 E1CM=SQRT(E(I1)**2+Pxn**2+Pyn**2+Pzn**2)
22457 P1BETA=Pxn*BETAX+Pyn*BETAY+Pzn*BETAZ
22458 TRANSF=GAMMA*(GAMMA*P1BETA/(GAMMA+1.)+E1CM)
22459 Pt1i1=BETAX*TRANSF+Pxn
22460 Pt2i1=BETAY*TRANSF+Pyn
22461 Pt3i1=BETAZ*TRANSF+Pzn
22466 * For the 2nd baryon:
22467 E2CM=SQRT(E(I2)**2+Pxn**2+Pyn**2+Pzn**2)
22468 P2BETA=-Pxn*BETAX-Pyn*BETAY-Pzn*BETAZ
22469 TRANSF=GAMMA*(GAMMA*P2BETA/(GAMMA+1.)+E2CM)
22470 Pt1I2=BETAX*TRANSF-Pxn
22471 Pt2I2=BETAY*TRANSF-Pyn
22472 Pt3I2=BETAZ*TRANSF-Pzn
22488 c Part of the cross section function of NN->Deuteron+Pi (in mb):
22490 parameter(srt0=2.012)
22491 if(s.le.srt0**2) then
22494 fnndpi=26.*exp(-(s-4.65)**2/0.1)+4.*exp(-(s-4.65)**2/2.)
22495 1 +0.28*exp(-(s-6.)**2/10.)
22500 c Angular distribution of d+baryon elastic collisions in the CMS frame:
22501 subroutine dbelangle(pxn,pyn,pzn,pfinal)
22502 PARAMETER (PI=3.1415926)
22503 COMMON/RNDF77/NSEED
22505 c take isotropic distribution for now:
22506 C1=1.0-2.0*RANART(NSEED)
22507 T1=2.0*PI*RANART(NSEED)
22511 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
22518 c Cross section of Deuteron+Pi elastic (in mb):
22520 parameter(srt0=2.012)
22521 if(s.le.srt0**2) then
22524 fdpiel=63.*exp(-(s-4.67)**2/0.15)+15.*exp(-(s-6.25)**2/0.3)
22529 c Cross section of Deuteron+N elastic (in mb):
22531 parameter(srt0=2.012)
22532 if(s.le.srt0**2) then
22535 fdbel=2500.*exp(-(s-7.93)**2/0.003)
22536 1 +300.*exp(-(s-7.93)**2/0.1)+10.