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.
1831 cpchrist forbid K* decay at the end of hadronic cascade:
1832 if(ikstardcy.eq.0.and.iabs(LB1).eq.30) pdecay=0.
1838 PDECAY=1.-EXP(-DT/T0)
1843 XDECAY=RANART(NSEED)
1845 cc dilepton production from rho0, omega, phi decay
1846 cc if(lb1.eq.26 .or. lb1.eq.28 .or. lb1.eq.29)
1847 cc & call dec_ceres(nt,ntmax,irun,i1)
1849 IF(XDECAY.LT.PDECAY) THEN
1850 clin-10/25/02 get rid of argument usage mismatch in rhocay():
1853 clin-10/28/03 keep formation time of hadrons unformed at nt=ntmax-1:
1854 if(nt.eq.ntmax.and.ftsv(i1).gt.((ntmax-1)*dt))
1859 * use PYTHIA to perform decays of eta,rho,omega,phi,K*,(K0s) and Delta:
1860 if(lb1.eq.0.or.lb1.eq.25.or.lb1.eq.26.or.lb1.eq.27
1861 & .or.lb1.eq.28.or.lb1.eq.29.or.iabs(lb1).eq.30
1862 & .or.(iabs(lb1).ge.6.and.iabs(lb1).le.9)
1863 & .or.(iksdcy.eq.1.and.lb1.eq.24)
1864 & .or.iabs(lb1).eq.16) then
1865 c previous rho decay performed in rhodecay():
1867 c call rhodecay(idecay,i1,nnn,iseed)
1869 ctest off record decays of phi,K*,Lambda(1520) resonances:
1870 c if(lb1.eq.29.or.iabs(lb1).eq.30)
1871 c 1 write(18,112) 'decay',lb1,px1,py1,pz1,am1,nt
1872 call resdec(i1,nt,nnn,wid,idecay)
1878 c add decay time to freezeout positions & time at the last timestep:
1879 if(nt.eq.ntmax) then
1886 * decay number for baryon resonance or L/S decay
1887 if(iabs(lb1).ge.6.and.iabs(lb1).le.9) then
1892 c elseif(lb1.eq.32)then
1894 c call a1decay(idecay,i1,nnn,iseed,rhomp)
1897 elseif(iabs(LB1).EQ.10.OR.iabs(LB1).EQ.11) THEN
1901 IF(E(I1).GT.1.22)PNSTAR=0.6
1902 IF(RANART(NSEED).LE.PNSTAR)THEN
1903 * (1) DECAY TO SINGLE PION+NUCLEON
1904 CALL DECAYA(idecay,I1,NNN,ISEED,wid,nt)
1906 * (2) DECAY TO TWO PIONS + NUCLEON
1907 CALL DECAY2(idecay,I1,NNN,ISEED,wid,nt)
1910 c for N*(1535) decay
1911 elseif(iabs(LB1).eq.12.or.iabs(LB1).eq.13) then
1913 CALL DECAYA(idecay,I1,NNN,ISEED,wid,nt)
1917 *COM: AT HIGH ENERGIES WE USE VERY SHORT TIME STEPS,
1918 * IN ORDER TO TAKE INTO ACCOUNT THE FINITE FORMATIOM TIME, WE
1919 * DO NOT ALLOW PARTICLES FROM THE DECAY OF RESONANCE TO INTERACT
1920 * WITH OTHERS IN THE SAME TIME STEP. CHANGE 9000 TO REVERSE THIS
1921 * ASSUMPTION. EFFECTS OF THIS ASSUMPTION CAN BE STUDIED BY CHANGING
1922 * THE STATEMENT OF 9000. See notebook for discussions on effects of
1923 * changing statement 9000.
1925 c kaons from K* decay are converted to k0short (and k0long),
1926 c phi decay may produce rho, K0S or eta, N*(1535) decay may produce eta,
1927 c and these decay daughters need to decay again if at the last timestep:
1928 c (note: these daughters have been assigned to lb(i1) only, not to lpion)
1929 c if(nt.eq.ntmax.and.(lb1.eq.29.or.iabs(lb1).eq.30
1930 c 1 .iabs(lb1).eq.12.or.iabs(lb1).eq.13)) then
1931 if(nt.eq.ntmax) then
1932 if(lb(i1).eq.25.or.lb(i1).eq.26.or.lb(i1).eq.27) then
1934 elseif(lb(i1).eq.0) then
1936 elseif(lb(i1).eq.24.and.iksdcy.eq.1) then
1946 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
1947 call resdec(i1,nt,nnn,wid,idecay)
1959 * negelecting the Pauli blocking at high energies
1962 * LOOP OVER ALL PSEUDOPARTICLES 2 IN THE SAME RUN
1963 * SAVE ALL THE COORDINATES FOR POSSIBLE CHANGE IN THE FOLLOWING COLLISION
1964 1 if(nt.eq.ntmax)go to 800
1971 * IF I2 IS A MESON BEING ABSORBED, THEN GO OUT OF THE LOOP
1972 IF(E(I2).EQ.0.) GO TO 600
1973 clin-5/2008 in case the first particle is already destroyed:
1974 IF(E(I1).EQ.0.) GO TO 800
1975 IF (LB(I2) .LT. -45 .OR. LB(I2) .GT. 45) GOTO 600
1976 clin-7/26/03 improve speed
1981 clin-9/2008 deuteron+nucleon elastic cross sections could reach ~2810mb:
1984 IF(ilb1.EQ.42.or.ilb2.EQ.42) THEN
1985 if((ILB1.GE.1.AND.ILB1.LE.2)
1986 1 .or.(ILB1.GE.6.AND.ILB1.LE.13)
1987 2 .or.(ILB2.GE.1.AND.ILB2.LE.2)
1988 3 .or.(ILB2.GE.6.AND.ILB2.LE.13)) then
1989 if((lb(i1)*lb(i2)).gt.0) dr0max=10.
1993 if(((X1-X2)**2+(Y1-Y2)**2+(Z1-Z2)**2).GT.dr0max**2)
1995 IF (ID(I1)*ID(I2).EQ.IAVOID) GOTO 400
2008 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
2028 clin-2/26/03 ctest off check energy conservation after each binary search:
2029 eini=SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
2030 1 +SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
2031 pxini=P(1,I1)+P(1,I2)
2032 pyini=P(2,I1)+P(2,I2)
2033 pzini=P(3,I1)+P(3,I2)
2036 clin-4/30/03 initialize value:
2039 * TO SAVE COMPUTING TIME we do the following
2040 * (1) make a ROUGH estimate to see whether particle i2 will collide with
2041 * particle I1, and (2) skip the particle pairs for which collisions are
2042 * not modeled in the code.
2043 * FOR MESON-BARYON AND MESON-MESON COLLISIONS, we use a maximum
2044 * interaction distance DELTR0=2.6
2045 * for ppbar production from meson (pi rho omega) interactions:
2048 if( (iabs(lb1).ge.14.and.iabs(lb1).le.17) .or.
2049 & (iabs(lb1).ge.30.and.iabs(lb1).le.45) ) DELTR0=5.0
2050 if( (iabs(lb2).ge.14.and.iabs(lb2).le.17) .or.
2051 & (iabs(lb2).ge.30.and.iabs(lb2).le.45) ) DELTR0=5.0
2053 if(lb1.eq.28.and.lb2.eq.28) DELTR0=4.84
2054 clin-10/08/00 to include pi pi -> rho rho:
2055 if((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5)) then
2056 E2=SQRT(EM2**2+PX2**2+PY2**2+PZ2**2)
2057 spipi=(e1+e2)**2-(px1+px2)**2-(py1+py2)**2-(pz1+pz2)**2
2058 if(spipi.ge.(4*0.77**2)) DELTR0=3.5
2062 IF (LB1.EQ.23 .AND. (LB2.GE.14.AND.LB2.LE.17)) GOTO 3699
2063 IF (LB2.EQ.23 .AND. (LB1.GE.14.AND.LB1.LE.17)) GOTO 3699
2065 * K(K*) + Kbar(K*bar) scattering including
2066 * K(K*) + Kbar(K*bar) --> phi + pi(rho,omega) and pi pi(rho,omega)
2067 if(lb1.eq.21.and.lb2.eq.23)go to 3699
2068 if(lb2.eq.21.and.lb1.eq.23)go to 3699
2069 if(lb1.eq.30.and.lb2.eq.21)go to 3699
2070 if(lb2.eq.30.and.lb1.eq.21)go to 3699
2071 if(lb1.eq.-30.and.lb2.eq.23)go to 3699
2072 if(lb2.eq.-30.and.lb1.eq.23)go to 3699
2073 if(lb1.eq.-30.and.lb2.eq.30)go to 3699
2074 if(lb2.eq.-30.and.lb1.eq.30)go to 3699
2077 c kaon+rho(omega,eta) collisions:
2078 if(lb1.eq.21.or.lb1.eq.23) then
2079 if(lb2.eq.0.or.(lb2.ge.25.and.lb2.le.28)) then
2082 elseif(lb2.eq.21.or.lb2.eq.23) then
2083 if(lb1.eq.0.or.(lb1.ge.25.and.lb1.le.28)) then
2088 clin-8/14/02 K* (pi, rho, omega, eta) collisions:
2089 if(iabs(lb1).eq.30 .and.
2090 1 (lb2.eq.0.or.(lb2.ge.25.and.lb2.le.28)
2091 2 .or.(lb2.ge.3.and.lb2.le.5))) then
2093 elseif(iabs(lb2).eq.30 .and.
2094 1 (lb1.eq.0.or.(lb1.ge.25.and.lb1.le.28)
2095 2 .or.(lb1.ge.3.and.lb1.le.5))) then
2098 c K*/K*-bar + baryon/antibaryon collisions:
2099 elseif( iabs(lb1).eq.30 .and.
2100 1 (iabs(lb2).eq.1.or.iabs(lb2).eq.2.or.
2101 2 (iabs(lb2).ge.6.and.iabs(lb2).le.13)) )then
2104 if( iabs(lb2).eq.30 .and.
2105 1 (iabs(lb1).eq.1.or.iabs(lb1).eq.2.or.
2106 2 (iabs(lb1).ge.6.and.iabs(lb1).le.13)) )then
2109 * K^+ baryons and antibaryons:
2110 c** K+ + B-bar --> La(Si)-bar + pi
2111 * K^- and antibaryons, note K^- and baryons are included in newka():
2112 * note that we fail to satisfy charge conjugation for these cross sections:
2113 if((lb1.eq.23.or.lb1.eq.21).and.
2114 1 (iabs(lb2).eq.1.or.iabs(lb2).eq.2.or.
2115 2 (iabs(lb2).ge.6.and.iabs(lb2).le.13))) then
2117 elseif((lb2.eq.23.or.lb2.eq.21).and.
2118 1 (iabs(lb1).eq.1.or.iabs(lb1).eq.2.or.
2119 2 (iabs(lb1).ge.6.and.iabs(lb1).le.13))) then
2123 * For anti-nucleons annihilations:
2125 * (1) for collisions involving a p_bar or n_bar,
2126 * we allow only collisions between a p_bar and a baryon or a baryon
2127 * resonance (as well as a n_bar and a baryon or a baryon resonance),
2128 * we skip all other reactions involving a p_bar or n_bar,
2129 * such as collisions between p_bar (n_bar) and mesons,
2130 * and collisions between two p_bar's (n_bar's).
2131 * (2) we introduce a new parameter rppmax: the maximum interaction
2132 * distance to make the quick collision check,rppmax=3.57 fm
2133 * corresponding to a cutoff of annihilation xsection= 400mb which is
2134 * also used consistently in the actual annihilation xsection to be
2135 * used in the following as given in the subroutine xppbar(srt)
2137 * anti-baryon on baryons
2138 if((lb1.eq.-1.or.lb1.eq.-2.or.(lb1.ge.-13.and.lb1.le.-6))
2139 1 .and.(lb2.eq.1.or.lb2.eq.2.or.(lb2.ge.6.and.lb2.le.13))) then
2142 else if((lb2.eq.-1.or.lb2.eq.-2.or.(lb2.ge.-13.and.lb2.le.-6))
2143 1 .and.(lb1.eq.1.or.lb1.eq.2.or.(lb1.ge.6.and.lb1.le.13))) then
2148 c* ((anti) lambda, cascade, omega should not be rejected)
2149 if( (iabs(lb1).ge.14.and.iabs(lb1).le.17) .or.
2150 & (iabs(lb2).ge.14.and.iabs(lb2).le.17) )go to 3699
2152 clin-9/2008 maximum sigma~2810mb for deuteron+nucleon elastic collisions:
2153 IF (iabs(LB1).EQ.42.or.iabs(LB2).EQ.42) THEN
2156 if((ILB1.GE.1.AND.ILB1.LE.2)
2157 1 .or.(ILB1.GE.6.AND.ILB1.LE.13)
2158 2 .or.(ILB2.GE.1.AND.ILB2.LE.2)
2159 3 .or.(ILB2.GE.6.AND.ILB2.LE.13)) then
2160 if((lb1*lb2).gt.0) deltr0=9.5
2164 if( (iabs(lb1).ge.40.and.iabs(lb1).le.45) .or.
2165 & (iabs(lb2).ge.40.and.iabs(lb2).le.45) )go to 3699
2167 c* phi channel --> elastic + inelastic scatt.
2168 IF( (lb1.eq.29 .and.((lb2.ge.1.and.lb2.le.13).or.
2169 & (lb2.ge.21.and.lb2.le.28).or.iabs(lb2).eq.30)) .OR.
2170 & (lb2.eq.29 .and.((lb1.ge.1.and.lb1.le.13).or.
2171 & (lb1.ge.21.and.lb1.le.28).or.iabs(lb1).eq.30)) )THEN
2176 c La/Si, Cas, Om (bar)-meson elastic colln
2177 * pion vs. La & Ca (bar) coll. are treated in resp. subroutines
2179 * SKIP all other K* RESCATTERINGS
2180 If(iabs(lb1).eq.30.or.iabs(lb2).eq.30) go to 400
2181 * SKIP KAON(+) RESCATTERINGS WITH particles other than pions and baryons
2182 If(lb1.eq.23.and.(lb2.lt.1.or.lb2.gt.17))go to 400
2183 If(lb2.eq.23.and.(lb1.lt.1.or.lb1.gt.17))go to 400
2185 c anti-baryon proccess: B-bar+M, N-bar+R-bar, N-bar+N-bar, R-bar+R-bar
2187 if( ((lb1.le.-1.and.lb1.ge.-13)
2188 & .and.(lb2.eq.0.or.(lb2.ge.3.and.lb2.le.5)
2189 & .or.(lb2.ge.25.and.lb2.le.28)))
2190 & .OR.((lb2.le.-1.and.lb2.ge.-13)
2191 & .and.(lb1.eq.0.or.(lb1.ge.3.and.lb1.le.5)
2192 & .or.(lb1.ge.25.and.lb1.le.28))) ) then
2193 elseIF( ((LB1.eq.-1.or.lb1.eq.-2).
2194 & and.(LB2.LT.-5.and.lb2.ge.-13))
2195 & .OR. ((LB2.eq.-1.or.lb2.eq.-2).
2196 & and.(LB1.LT.-5.and.lb1.ge.-13)) )then
2197 elseIF((LB1.eq.-1.or.lb1.eq.-2)
2198 & .AND.(LB2.eq.-1.or.lb2.eq.-2))then
2199 elseIF((LB1.LT.-5.and.lb1.ge.-13).AND.
2200 & (LB2.LT.-5.and.lb2.ge.-13)) then
2201 c elseif((lb1.lt.0).or.(lb2.lt.0)) then
2206 * for baryon-baryon collisions
2207 IF (LB1 .EQ. 1 .OR. LB1 .EQ. 2 .OR. (LB1 .GE. 6 .AND.
2208 & LB1 .LE. 17)) THEN
2209 IF (LB2 .EQ. 1 .OR. LB2 .EQ. 2 .OR. (LB2 .GE. 6 .AND.
2210 & LB2 .LE. 17)) THEN
2215 3699 RSQARE = (X1-X2)**2 + (Y1-Y2)**2 + (Z1-Z2)**2
2216 IF (RSQARE .GT. DELTR0**2) GO TO 400
2217 *NOW PARTICLES ARE CLOSE ENOUGH TO EACH OTHER !
2218 * KEEP ALL COORDINATES FOR POSSIBLE PHASE SPACE CHANGE
2222 ipx2 = nint(px2/dpx)
2223 ipy2 = nint(py2/dpy)
2224 ipz2 = nint(pz2/dpz)
2225 * FIND MOMENTA OF PARTICLES IN THE CMS OF THE TWO COLLIDING PARTICLES
2226 * AND THE CMS ENERGY SRT
2227 CALL CMS(I1,I2,PCX,PCY,PCZ,SRT)
2228 clin-7/26/03 improve speed
2230 call distc0(drmax,deltr0,DT,
2231 1 Ifirst,PCX,PCY,PCZ,
2232 2 x1,y1,z1,px1,py1,pz1,em1,x2,y2,z2,px2,py2,pz2,em2)
2233 if(Ifirst.eq.-1) goto 400
2236 clin-4/2008 use last bin if ISS is out of EKAON's upper bound of 2000:
2237 if(ISS.gt.2000) ISS=2000
2240 clin-8/2008 Deuteron+Meson->B+B;
2241 c meson=(pi,rho,omega,eta), B=(n,p,Delta,N*1440,N*1535):
2242 IF (iabs(LB1).EQ.42.or.iabs(LB2).EQ.42) THEN
2245 if(LB1.eq.0.or.(LB1.GE.3.AND.LB1.LE.5)
2246 1 .or.(LB1.GE.25.AND.LB1.LE.28)
2248 3 LB2.eq.0.or.(LB2.GE.3.AND.LB2.LE.5)
2249 4 .or.(LB2.GE.25.AND.LB2.LE.28)) then
2251 clin-9/2008 Deuteron+Baryon or antiDeuteron+antiBaryon elastic collisions:
2252 elseif(((ILB1.GE.1.AND.ILB1.LE.2)
2253 1 .or.(ILB1.GE.6.AND.ILB1.LE.13)
2254 2 .or.(ILB2.GE.1.AND.ILB2.LE.2)
2255 3 .or.(ILB2.GE.6.AND.ILB2.LE.13))
2256 4 .and.(lb1*lb2).gt.0) then
2263 * K+ + (N,N*,D)-bar --> L/S-bar + pi
2264 if( ((lb1.eq.23.or.lb1.eq.30).and.
2265 & (lb2.eq.-1.or.lb2.eq.-2.or.(lb2.ge.-13.and.lb2.le.-6)))
2266 & .OR.((lb2.eq.23.or.lb2.eq.30).and.
2267 & (lb1.eq.-1.or.lb1.eq.-2.or.(lb1.ge.-13.and.lb1.le.-6))) )
2270 if(srt.le.(bmass+aka)) then
2273 pkaon=sqrt(((srt**2-(aka**2+bmass**2))
2274 1 /2./bmass)**2-aka**2)
2276 clin-10/31/02 cross sections are isospin-averaged, same as those in newka
2277 c for K- + (N,N*,D) --> L/S + pi:
2278 sigela = 0.5 * (AKPEL(PKAON) + AKNEL(PKAON))
2279 SIGSGM = 1.5 * AKPSGM(PKAON) + AKNSGM(PKAON)
2280 SIG = sigela + SIGSGM + AKPLAM(PKAON)
2281 if(sig.gt.1.e-7) then
2282 c ! K+ + N-bar reactions
2294 c meson + hyperon-bar -> K+ + N-bar
2295 if(((lb1.ge.-17.and.lb1.le.-14).and.(lb2.ge.3.and.lb2.le.5))
2296 & .OR.((lb2.ge.-17.and.lb2.le.-14)
2297 & .and.(lb1.ge.3.and.lb1.le.5)))then
2300 C* first classify the reactions due to total charge.
2301 if((lb1.eq.-15.and.(lb2.eq.5.or.lb2.eq.27)).OR.
2302 & (lb2.eq.-15.and.(lb1.eq.5.or.lb1.eq.27))) then
2308 if( (lb1.eq.-15.and.(lb2.eq.0.or.lb2.eq.4.or.lb2.eq.26.or.
2309 & lb2.eq.28)).OR.(lb2.eq.-15.and.(lb1.eq.0.or.
2310 & lb1.eq.4.or.lb1.eq.26.or.lb1.eq.28)).OR.
2311 & ((lb1.eq.-14.or.lb1.eq.-16).and.(lb2.eq.5.or.lb2.eq.27)).OR.
2312 & ((lb2.eq.-14.or.lb2.eq.-16).and.(lb1.eq.5.or.lb1.eq.27)) )then
2318 if( (lb1.eq.-15.and.(lb2.eq.3.or.lb2.eq.25)).OR.
2319 & (lb2.eq.-15.and.(lb1.eq.3.or.lb1.eq.25)).OR.
2320 & (lb1.eq.-17.and.(lb2.eq.5.or.lb2.eq.27)).OR.
2321 & (lb2.eq.-17.and.(lb1.eq.5.or.lb1.eq.27)).OR.
2322 & ((lb1.eq.-14.or.lb1.eq.-16).and.(lb2.eq.0.or.lb2.eq.4
2323 & .or.lb2.eq.26.or.lb2.eq.28)).OR.
2324 & ((lb2.eq.-14.or.lb2.eq.-16).and.(lb1.eq.0.or.lb1.eq.4
2325 & .or.lb1.eq.26.or.lb1.eq.28)) )then
2331 if( (lb1.eq.-17.and.(lb2.eq.0.or.lb2.eq.4.or.lb2.eq.26.or.
2332 & lb2.eq.28)).OR.(lb2.eq.-17.and.(lb1.eq.0.or.
2333 & lb1.eq.4.or.lb1.eq.26.or.lb1.eq.28)).OR.
2334 & ((lb1.eq.-14.or.lb1.eq.-16).and.(lb2.eq.3.or.lb2.eq.25)).OR.
2335 & ((lb2.eq.-14.or.lb2.eq.-16).and.(lb1.eq.3.or.lb1.eq.25)))then
2341 c 110 if(nchrg.ne.-100.and.srt.ge.(aka+bmass))then !! for elastic
2344 if(nchrg.ne.-100.and.srt.ge.(aka+bmass))then
2345 cc110 if(nchrg.eq.-100.or.srt.lt.(aka+bmass)) go to 400
2346 c ! PI + La(Si)-bar => K+ + N-bar reactions
2348 cc pkaon=sqrt(((srt**2-(aka**2+bmass**2))/2./bmass)**2-aka**2)
2349 pkaon=sqrt(((srt**2-(aka**2+0.938**2))/2./0.938)**2-aka**2)
2351 if(lb1.eq.-14.or.lb2.eq.-14) then
2352 if(nchrg.ge.0) sigma0=akPlam(pkaon)
2353 if(nchrg.lt.0) sigma0=akNlam(pkaon)
2357 if(nchrg.ge.0) sigma0=akPsgm(pkaon)
2359 if(nchrg.lt.0) sigma0=akNsgm(pkaon)
2360 SIGMA0 = 1.5 * AKPSGM(PKAON) + AKNSGM(PKAON)
2362 sig=(srt**2-(aka+bmass)**2)*(srt**2-(aka-bmass)**2)/
2363 & (srt**2-(em1+em2)**2)/(srt**2-(em1-em2)**2)*sigma0
2365 if(nchrg.eq.-2.or.nchrg.eq.2) sig=2.*sig
2366 C* the factor 2 comes from spin of delta, which is 3/2
2367 C* detailed balance. copy from Page 423 of N.P. A614 1997
2368 IF (LB1 .EQ. -14 .OR. LB2 .EQ. -14) THEN
2369 SIG = 4.0 / 3.0 * SIG
2370 ELSE IF (NCHRG .EQ. -2 .OR. NCHRG .EQ. 2) THEN
2371 SIG = 8.0 / 9.0 * SIG
2373 SIG = 4.0 / 9.0 * SIG
2378 cc if(sig.lt.1.e-7) go to 400
2381 c ! PI + La(Si)-bar => elastic included
2392 ** MULTISTRANGE PARTICLE (Cas,Omega -bar) PRODUCTION - (NON)PERTURBATIVE
2394 * K-/K*0bar + La/Si --> cascade + pi/eta
2395 if( ((lb1.eq.21.or.lb1.eq.-30).and.(lb2.ge.14.and.lb2.le.17)).OR.
2396 & ((lb2.eq.21.or.lb2.eq.-30).and.(lb1.ge.14.and.lb1.le.17)) )then
2400 c K+/K*0 + La/Si(bar) --> cascade-bar + pi/eta
2401 if( ((lb1.eq.23.or.lb1.eq.30).and.(lb2.le.-14.and.lb2.ge.-17)).OR.
2402 & ((lb2.eq.23.or.lb2.eq.30).and.(lb1.le.-14.and.lb1.ge.-17)) )then
2406 * K-/K*0bar + cascade --> omega + pi
2407 if( ((lb1.eq.21.or.lb1.eq.-30).and.(lb2.eq.40.or.lb2.eq.41)).OR.
2408 & ((lb2.eq.21.or.lb2.eq.-30).and.(lb1.eq.40.or.lb1.eq.41)) )then
2412 * K+/K*0 + cascade-bar --> omega-bar + pi
2413 if( ((lb1.eq.23.or.lb1.eq.30).and.(lb2.eq.-40.or.lb2.eq.-41)).OR.
2414 & ((lb2.eq.23.or.lb2.eq.30).and.(lb1.eq.-40.or.lb1.eq.-41)) )then
2418 * Omega + Omega --> Di-Omega + photon(eta)
2419 cc if( lb1.eq.45.and.lb2.eq.45 ) go to 3455
2421 c annhilation of cascade(bar), omega(bar)
2423 * K- + L/S <-- cascade(bar) + pi/eta
2424 if( (((lb1.ge.3.and.lb1.le.5).or.lb1.eq.0)
2425 & .and.(iabs(lb2).eq.40.or.iabs(lb2).eq.41))
2426 & .OR. (((lb2.ge.3.and.lb2.le.5).or.lb2.eq.0)
2427 & .and.(iabs(lb1).eq.40.or.iabs(lb1).eq.41)) )go to 3455
2428 * K- + cascade(bar) <-- omega(bar) + pi
2429 * if( (lb1.eq.0.and.iabs(lb2).eq.45)
2430 * & .OR. (lb2.eq.0.and.iabs(lb1).eq.45) )go to 3455
2431 if( ((lb1.ge.3.and.lb1.le.5).and.iabs(lb2).eq.45)
2432 & .OR.((lb2.ge.3.and.lb2.le.5).and.iabs(lb1).eq.45) )go to 3455
2435 *** MULTISTRANGE PARTICLE PRODUCTION (END)
2437 c* K+ + La(Si) --> Meson + B
2438 IF (LB1.EQ.23 .AND. (LB2.GE.14.AND.LB2.LE.17)) GOTO 5699
2439 IF (LB2.EQ.23 .AND. (LB1.GE.14.AND.LB1.LE.17)) GOTO 5699
2440 c* K- + La(Si)-bar --> Meson + B-bar
2441 IF (LB1.EQ.21 .AND. (LB2.GE.-17.AND.LB2.LE.-14)) GOTO 5699
2442 IF (LB2.EQ.21 .AND. (LB1.GE.-17.AND.LB1.LE.-14)) GOTO 5699
2444 c La/Si-bar + B --> pi + K+
2445 IF( (((LB1.eq.1.or.LB1.eq.2).or.(LB1.ge.6.and.LB1.le.13))
2446 & .AND.(LB2.GE.-17.AND.LB2.LE.-14)) .OR.
2447 & (((LB2.eq.1.or.LB2.eq.2).or.(LB2.ge.6.and.LB2.le.13))
2448 & .AND.(LB1.GE.-17.AND.LB1.LE.-14)) )go to 5999
2449 c La/Si + B-bar --> pi + K-
2450 IF( (((LB1.eq.-1.or.LB1.eq.-2).or.(LB1.le.-6.and.LB1.ge.-13))
2451 & .AND.(LB2.GE.14.AND.LB2.LE.17)) .OR.
2452 & (((LB2.eq.-1.or.LB2.eq.-2).or.(LB2.le.-6.and.LB2.ge.-13))
2453 & .AND.(LB1.GE.14.AND.LB1.LE.17)) )go to 5999
2456 * K(K*) + Kbar(K*bar) --> phi + pi(rho,omega), M + M (M=pi,rho,omega,eta)
2457 if(lb1.eq.21.and.lb2.eq.23) go to 8699
2458 if(lb2.eq.21.and.lb1.eq.23) go to 8699
2459 if(lb1.eq.30.and.lb2.eq.21) go to 8699
2460 if(lb2.eq.30.and.lb1.eq.21) go to 8699
2461 if(lb1.eq.-30.and.lb2.eq.23) go to 8699
2462 if(lb2.eq.-30.and.lb1.eq.23) go to 8699
2463 if(lb1.eq.-30.and.lb2.eq.30) go to 8699
2464 if(lb2.eq.-30.and.lb1.eq.30) go to 8699
2465 c* (K,K*)-bar + rho(omega) --> phi +(K,K*)-bar, piK and elastic
2466 IF( ((lb1.eq.23.or.lb1.eq.21.or.iabs(lb1).eq.30) .and.
2467 & (lb2.ge.25.and.lb2.le.28)) .OR.
2468 & ((lb2.eq.23.or.lb2.eq.21.or.iabs(lb2).eq.30) .and.
2469 & (lb1.ge.25.and.lb1.le.28)) ) go to 8799
2471 c* K*(-bar) + pi --> phi + (K,K*)-bar
2472 IF( (iabs(lb1).eq.30.and.(lb2.ge.3.and.lb2.le.5)) .OR.
2473 & (iabs(lb2).eq.30.and.(lb1.ge.3.and.lb1.le.5)) )go to 8799
2476 c* phi + N --> pi+N(D), rho+N(D), K+ +La
2477 c* phi + D --> pi+N(D), rho+N(D)
2478 IF( (lb1.eq.29 .and.(lb2.eq.1.or.lb2.eq.2.or.
2479 & (lb2.ge.6.and.lb2.le.9))) .OR.
2480 & (lb2.eq.29 .and.(lb1.eq.1.or.lb1.eq.2.or.
2481 & (lb1.ge.6.and.lb1.le.9))) )go to 7222
2483 c* phi + (pi,rho,ome,K,K*-bar) --> K+K, K+K*, K*+K*, (pi,rho,omega)+(K,K*-bar)
2484 IF( (lb1.eq.29 .and.((lb2.ge.3.and.lb2.le.5).or.
2485 & (lb2.ge.21.and.lb2.le.28).or.iabs(lb2).eq.30)) .OR.
2486 & (lb2.eq.29 .and.((lb1.ge.3.and.lb1.le.5).or.
2487 & (lb1.ge.21.and.lb1.le.28).or.iabs(lb1).eq.30)) )THEN
2492 * La/Si, Cas, Om (bar)-(rho,omega,phi) elastic colln
2493 * pion vs. La, Ca, Omega-(bar) elastic coll. treated in resp. subroutines
2494 if( ((iabs(lb1).ge.14.and.iabs(lb1).le.17).or.iabs(lb1).ge.40)
2495 & .and.((lb2.ge.25.and.lb2.le.29).or.lb2.eq.0) )go to 888
2496 if( ((iabs(lb2).ge.14.and.iabs(lb2).le.17).or.iabs(lb2).ge.40)
2497 & .and.((lb1.ge.25.and.lb1.le.29).or.lb1.eq.0) )go to 888
2499 c K+/K* (N,R) OR K-/K*- (N,R)-bar elastic scatt
2500 if( ((lb1.eq.23.or.lb1.eq.30).and.(lb2.eq.1.or.lb2.eq.2.or.
2501 & (lb2.ge.6.and.lb2.le.13))) .OR.
2502 & ((lb2.eq.23.or.lb2.eq.30).and.(lb1.eq.1.or.lb1.eq.2.or.
2503 & (lb1.ge.6.and.lb1.le.13))) ) go to 888
2504 if( ((lb1.eq.21.or.lb1.eq.-30).and.(lb2.eq.-1.or.lb2.eq.-2.or.
2505 & (lb2.ge.-13.and.lb2.le.-6))) .OR.
2506 & ((lb2.eq.21.or.lb2.eq.-30).and.(lb1.eq.-1.or.lb1.eq.-2.or.
2507 & (lb1.ge.-13.and.lb1.le.-6))) ) go to 888
2509 * L/S-baryon elastic collision
2510 If( ((lb1.ge.14.and.lb1.le.17).and.(lb2.ge.6.and.lb2.le.13))
2511 & .OR.((lb2.ge.14.and.lb2.le.17).and.(lb1.ge.6.and.lb1.le.13)) )
2513 If(((lb1.le.-14.and.lb1.ge.-17).and.(lb2.le.-6.and.lb2.ge.-13))
2514 &.OR.((lb2.le.-14.and.lb2.ge.-17).and.(lb1.le.-6.and.lb1.ge.-13)))
2517 c skip other collns with perturbative particles or hyperon-bar
2518 if( iabs(lb1).ge.40 .or. iabs(lb2).ge.40
2519 & .or. (lb1.le.-14.and.lb1.ge.-17)
2520 & .or. (lb2.le.-14.and.lb2.ge.-17) )go to 400
2523 * anti-baryon on baryon resonaces
2524 if((lb1.eq.-1.or.lb1.eq.-2.or.(lb1.ge.-13.and.lb1.le.-6))
2525 1 .and.(lb2.eq.1.or.lb2.eq.2.or.(lb2.ge.6.and.lb2.le.13))) then
2527 else if((lb2.eq.-1.or.lb2.eq.-2.or.(lb2.ge.-13.and.lb2.le.-6))
2528 1 .and.(lb1.eq.1.or.lb1.eq.2.or.(lb1.ge.6.and.lb1.le.13))) then
2532 clin-10/25/02 get rid of argument usage mismatch in newka():
2534 c call newka(icase,irun,iseed,dt,nt,
2535 clin-5/01/03 set iblock value in art1f.f, necessary for resonance studies:
2536 c call newka(icase,inewka,iseed,dt,nt,
2537 c & ictrl,i1,i2,srt,pcx,pcy,pcz)
2538 call newka(icase,inewka,iseed,dt,nt,
2539 & ictrl,i1,i2,srt,pcx,pcy,pcz,iblock)
2542 IF (ICTRL .EQ. 1) GOTO 400
2544 * SEPARATE NUCLEON+NUCLEON( BARYON RESONANCE+ BARYON RESONANCE ELASTIC
2545 * COLLISION), BARYON RESONANCE+NUCLEON AND BARYON-PION
2546 * COLLISIONS INTO THREE PARTS TO CHECK IF THEY ARE GOING TO SCATTER,
2547 * WE only allow L/S to COLLIDE elastically with a nucleon and meson
2548 if((iabs(lb1).ge.14.and.iabs(lb1).le.17).
2549 & or.(iabs(lb2).ge.14.and.iabs(lb2).le.17))go to 400
2550 * IF PION+PION COLLISIONS GO TO 777
2551 * if pion+eta, eta+eta to create kaons go to 777
2552 IF((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5))GO TO 777
2553 if(lb1.eq.0.and.(lb2.ge.3.and.lb2.le.5)) go to 777
2554 if(lb2.eq.0.and.(lb1.ge.3.and.lb1.le.5)) go to 777
2555 if(lb1.eq.0.and.lb2.eq.0)go to 777
2556 * we assume that rho and omega behave the same way as pions in
2558 * (1) rho(omega)+rho(omega)
2559 if( (lb1.ge.25.and.lb1.le.28).and.
2560 & (lb2.ge.25.and.lb2.le.28) )goto 777
2561 * (2) rho(omega)+pion
2562 If((lb1.ge.25.and.lb1.le.28).and.(lb2.ge.3.and.lb2.le.5))go to 777
2563 If((lb2.ge.25.and.lb2.le.28).and.(lb1.ge.3.and.lb1.le.5))go to 777
2564 * (3) rho(omega)+eta
2565 if((lb1.ge.25.and.lb1.le.28).and.lb2.eq.0)go to 777
2566 if((lb2.ge.25.and.lb2.le.28).and.lb1.eq.0)go to 777
2568 * if kaon+pion collisions go to 889
2569 if((lb1.eq.23.or.lb1.eq.21).and.(lb2.ge.3.and.lb2.le.5))go to 889
2570 if((lb2.eq.23.or.lb2.eq.21).and.(lb1.ge.3.and.lb1.le.5))go to 889
2572 clin-2/06/03 skip all other (K K* Kbar K*bar) channels:
2573 * SKIP all other K and K* RESCATTERINGS
2574 If(iabs(lb1).eq.30.or.iabs(lb2).eq.30) go to 400
2575 If(lb1.eq.21.or.lb2.eq.21) go to 400
2576 If(lb1.eq.23.or.lb2.eq.23) go to 400
2578 * IF PION+baryon COLLISION GO TO 3
2579 IF( (LB1.ge.3.and.LB1.le.5) .and.
2580 & (iabs(LB2).eq.1.or.iabs(LB2).eq.2.or.
2581 & (iabs(LB2).ge.6.and.iabs(LB2).le.13)) )GO TO 3
2582 IF( (LB2.ge.3.and.LB2.le.5) .and.
2583 & (iabs(LB1).eq.1.or.iabs(LB1).eq.2.or.
2584 & (iabs(LB1).ge.6.and.iabs(LB1).le.13)) )GO TO 3
2586 * IF rho(omega)+NUCLEON (baryon resonance) COLLISION GO TO 33
2587 IF( (LB1.ge.25.and.LB1.le.28) .and.
2588 & (iabs(LB2).eq.1.or.iabs(LB2).eq.2.or.
2589 & (iabs(LB2).ge.6.and.iabs(LB2).le.13)) )GO TO 33
2590 IF( (LB2.ge.25.and.LB2.le.28) .and.
2591 & (iabs(LB1).eq.1.or.iabs(LB1).eq.2.or.
2592 & (iabs(LB1).ge.6.and.iabs(LB1).le.13)) )GO TO 33
2594 * IF ETA+NUCLEON (baryon resonance) COLLISIONS GO TO 547
2596 & (iabs(LB2).eq.1.or.iabs(LB2).eq.2.or.
2597 & (iabs(LB2).ge.6.and.iabs(LB2).le.13)) )GO TO 547
2599 & (iabs(LB1).eq.1.or.iabs(LB1).eq.2.or.
2600 & (iabs(LB1).ge.6.and.iabs(LB1).le.13)) )GO TO 547
2602 * IF NUCLEON+BARYON RESONANCE COLLISION GO TO 44
2603 IF((LB1.eq.1.or.lb1.eq.2).
2604 & AND.(LB2.GT.5.and.lb2.le.13))GOTO 44
2605 IF((LB2.eq.1.or.lb2.eq.2).
2606 & AND.(LB1.GT.5.and.lb1.le.13))GOTO 44
2607 IF((LB1.eq.-1.or.lb1.eq.-2).
2608 & AND.(LB2.LT.-5.and.lb2.ge.-13))GOTO 44
2609 IF((LB2.eq.-1.or.lb2.eq.-2).
2610 & AND.(LB1.LT.-5.and.lb1.ge.-13))GOTO 44
2612 * IF NUCLEON+NUCLEON COLLISION GO TO 4
2613 IF((LB1.eq.1.or.lb1.eq.2).AND.(LB2.eq.1.or.lb2.eq.2))GOTO 4
2614 IF((LB1.eq.-1.or.lb1.eq.-2).AND.(LB2.eq.-1.or.lb2.eq.-2))GOTO 4
2616 * IF BARYON RESONANCE+BARYON RESONANCE COLLISION GO TO 444
2617 IF((LB1.GT.5.and.lb1.le.13).AND.
2618 & (LB2.GT.5.and.lb2.le.13)) GOTO 444
2619 IF((LB1.LT.-5.and.lb1.ge.-13).AND.
2620 & (LB2.LT.-5.and.lb2.ge.-13)) GOTO 444
2622 * if L/S+L/S or L/s+nucleon go to 400
2623 * otherwise, develop a model for their collisions
2624 if((lb1.lt.3).and.(lb2.ge.14.and.lb2.le.17))goto 400
2625 if((lb2.lt.3).and.(lb1.ge.14.and.lb1.le.17))goto 400
2626 if((lb1.ge.14.and.lb1.le.17).and.
2627 & (lb2.ge.14.and.lb2.le.17))goto 400
2629 * otherwise, go out of the loop
2633 547 IF(LB1*LB2.EQ.0)THEN
2634 * (1) FOR ETA+NUCLEON SYSTEM, we allow both elastic collision,
2635 * i.e. N*(1535) formation and kaon production
2636 * the total kaon production cross section is
2637 * ASSUMED to be THE SAME AS PION+NUCLEON COLLISIONS
2638 * (2) for eta+baryon resonance we only allow kaon production
2639 ece=(em1+em2+0.02)**2
2641 if(srt.ge.1.63.AND.SRT.LE.1.7)xkaon0=pnlka(srt)
2642 IF(SRT.GT.1.7)XKAON0=PNLKA(SRT)+pnska(srt)
2644 XKAON0 = 2.0 * XKAON0
2645 cbz3/7/99 neutralk end
2647 * Here we negelect eta+n inelastic collisions other than the
2648 * kaon production, therefore the total inelastic cross section
2649 * xkaon equals to the xkaon0 (kaon production cross section)
2651 * note here the xkaon is in unit of fm**2
2652 XETA=XN1535(I1,I2,0)
2653 If((iabs(LB(I1)).ge.6.and.iabs(LB(I1)).le.13).or.
2654 & (iabs(LB(I2)).ge.6.and.iabs(LB(I2)).le.13)) xeta=0.
2655 IF((XETA+xkaon).LE.1.e-06)GO TO 400
2656 DSE=SQRT((XETA+XKAON)/PI)
2661 * CHECK IF N*(1535) resonance CAN BE FORMED
2662 CALL DISTCE(I1,I2,DELTRE,DSE,DT,ECE,SRT,IC,
2664 IF(IC.EQ.-1) GO TO 400
2665 ekaon(4,iss)=ekaon(4,iss)+1
2666 IF(XKAON0/(XKAON+XETA).GT.RANART(NSEED))then
2667 * kaon production, USE CREN TO CALCULATE THE MOMENTUM OF L/S K+
2668 CALL CREN(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
2670 IF(IBLOCK.EQ.7) then
2672 elseIF(IBLOCK.EQ.-7) then
2679 * N*(1535) FORMATION
2683 *IF PION+NUCLEON (baryon resonance) COLLISION THEN
2688 * the total kaon production cross section for pion+baryon (resonance) is
2689 * assumed to be the same as in pion+nucleon
2691 if(srt.ge.1.63.AND.SRT.LE.1.7)xkaon0=pnlka(srt)
2692 IF(SRT.GT.1.7)XKAON0=PNLKA(SRT)+pnska(srt)
2693 XKAON0 = 2.0 * XKAON0
2695 c sp11/21/01 phi production: pi +N(D) -> phi + N(D)
2697 if( ( ((lb1.ge.1.and.lb1.le.2).or.
2698 & (lb1.ge.6.and.lb1.le.9))
2699 & .OR.((lb2.ge.1.and.lb2.le.2).or.
2700 & (lb2.ge.6.and.lb2.le.9)) )
2701 & .AND. srt.gt.1.958)
2702 & call pibphi(srt,lb1,lb2,em1,em2,Xphi,xphin)
2705 * if a pion collide with a baryon resonance,
2706 * we only allow kaon production AND the reabsorption
2707 * processes: Delta+pion-->N+pion, N*+pion-->N+pion
2708 * Later put in pion+baryon resonance elastic
2709 * cross through forming higher resonances implicitly.
2710 c If(em1.gt.1.or.em2.gt.1.)go to 31
2711 If((iabs(LB(I1)).ge.6.and.iabs(LB(I1)).le.13).or.
2712 & (iabs(LB(I2)).ge.6.and.iabs(LB(I2)).le.13)) go to 31
2713 * For pion+nucleon collisions:
2714 * using the experimental pion+nucleon inelastic cross section, we assume it
2715 * is exhausted by the Delta+pion, Delta+rho and Delta+omega production
2716 * and kaon production. In the following we first check whether
2717 * inelastic pion+n collision can happen or not, then determine in
2718 * crpn whether it is through pion production or through kaon production
2719 * note that the xkaon0 is the kaon production cross section
2720 * Note in particular that:
2721 * xkaon in the following is the total pion+nucleon inelastic cross section
2722 * note here the xkaon is in unit of fm**2, xnpi is also in unit of fm**2
2723 * FOR PION+NUCLEON SYSTEM, THE MINIMUM S IS 1.2056 the minimum srt for
2724 * elastic scattering, and it is 1.60 for pion production, 1.63 for LAMBDA+kaon
2725 * production and 1.7 FOR SIGMA+KAON
2726 * (EC = PION MASS+NUCLEON MASS+20MEV)**2
2727 EC=(em1+em2+0.02)**2
2729 if(srt.gt.1.23)xkaon=(pionpp(srt)+PIPP1(SRT))/2.
2730 * pion+nucleon elastic cross section is divided into two parts:
2731 * (1) forming D(1232)+N*(1440) +N*(1535)
2732 * (2) cross sections forming higher resonances are calculated as
2733 * the difference between the total elastic and (1), this part is
2734 * treated as direct process since we do not explicitLY include
2735 * higher resonances.
2736 * the following is the resonance formation cross sections.
2737 *1. PION(+)+PROTON-->DELTA++,PION(-)+NEUTRON-->DELTA(-)
2738 IF( (LB1*LB2.EQ.5.OR.((LB1*LB2.EQ.6).AND.
2739 & (LB1.EQ.3.OR.LB2.EQ.3)))
2740 & .OR. (LB1*LB2.EQ.-3.OR.((LB1*LB2.EQ.-10).AND.
2741 & (LB1.EQ.5.OR.LB2.EQ.5))) )then
2748 *2. PION(-)+PROTON-->DELTA0,PION(+)+NEUTRON-->DELTA+
2749 * or N*(+)(1440) or N*(+)(1535)
2750 * note the factor 2/3 is from the isospin consideration and
2751 * the factor 0.6 or 0.5 is the branching ratio for the resonance to decay
2753 IF( (LB1*LB2.EQ.3.OR.((LB1*LB2.EQ.10).AND.
2754 & (LB1.EQ.5.OR.LB2.EQ.5)))
2755 & .OR. (LB1*LB2.EQ.-5.OR.((LB1*LB2.EQ.-6).AND.
2756 & (LB1.EQ.3.OR.LB2.EQ.3))) )then
2759 xmaxn1=2./3.*40.*0.5
2763 *3. PION0+PROTON-->DELTA+,PION0+NEUTRON-->DELTA0, or N*(0)(1440) or N*(0)(1535)
2764 IF((LB1.EQ.4.OR.LB2.EQ.4).AND.
2765 & (iabs(LB1*LB2).EQ.4.OR.iabs(LB1*LB2).EQ.8))then
2774 XNPID=XNPI(I1,I2,1,XMAX)
2775 if(xmaxn1.ne.0)xnpin1=XNPI(i1,i2,2,XMAXN1)
2776 if(xmaxn.ne.0)XNPIN=XNPI(I1,I2,0,XMAXN)
2778 xres=xnpid+xnpin+xnpin1
2782 * For pion + baryon resonance the reabsorption
2783 * cross section is calculated from the detailed balance
2784 * using reab(i1,i2,srt,ictrl), ictrl=1, 2 and 3
2785 * for pion, rho and omega + baryon resonance
2786 31 ec=(em1+em2+0.02)**2
2787 xreab=reab(i1,i2,srt,1)
2789 clin-12/02/00 to satisfy detailed balance, forbid N* absorptions:
2790 if((iabs(lb1).ge.10.and.iabs(lb1).le.13)
2791 1 .or.(iabs(lb2).ge.10.and.iabs(lb2).le.13)) XREAB = 0.
2794 * a constant of 10 mb IS USED FOR PION + N* RESONANCE,
2795 IF((iabs(LB1).GT.9.AND.iabs(LB1).LE.13) .OR.
2796 & (iabs(LB2).GT.9.AND.iabs(LB2).LE.13))THEN
2799 XNELAS=DPION(EM1,EM2,LB1,LB2,SRT)
2802 34 IF((Xnelas+xkaon+Xphi).LE.0.000001)GO TO 400
2803 DS=SQRT((Xnelas+xkaon+Xphi)/PI)
2805 c totcr = xnelas+xkaon
2806 c if(srt .gt. 3.5)totcr = max1(totcr,3.)
2811 CALL DISTCE(I1,I2,DELTAR,DS,DT,EC,SRT,IC,
2813 IF(IC.EQ.-1) GO TO 400
2814 ekaon(4,iss)=ekaon(4,iss)+1
2816 * check what kind of collision has happened
2817 * (1) pion+baryon resonance
2818 * if direct elastic process
2821 if(xnelas/(xnelas+xkaon+Xphi).ge.RANART(NSEED))then
2822 c call Crdir(PX1CM,PY1CM,PZ1CM,SRT,I1,I2)
2823 call Crdir(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
2826 * for inelastic process, go to 96 to check
2827 * kaon production and pion reabsorption : pion+D(N*)-->pion+N
2832 * CHECK IF inELASTIC COLLISION IS POSSIBLE FOR PION+N COLLISIONS
2833 clin-8/17/00 typo corrected, many other occurences:
2834 c IF(XKAON/(XKAON+Xnelas).GT.RANART(NSEED))GO TO 95
2835 IF((XKAON+Xphi)/(XKAON+Xphi+Xnelas).GT.RANART(NSEED))GO TO 95
2838 if(xdirct/xnelas.ge.RANART(NSEED))then
2839 c call Crdir(PX1CM,PY1CM,PZ1CM,SRT,I1,I2)
2840 call Crdir(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
2843 * now resonance formation or direct process (higher resonances)
2844 IF( (LB1*LB2.EQ.5.OR.((LB1*LB2.EQ.6).AND.
2845 & (LB1.EQ.3.OR.LB2.EQ.3)))
2846 & .OR. (LB1*LB2.EQ.-3.OR.((LB1*LB2.EQ.-10).AND.
2847 & (LB1.EQ.5.OR.LB2.EQ.5))) )then
2849 * ONLY DELTA RESONANCE IS POSSIBLE, go to 99
2852 * NOW BOTH DELTA AND N* RESORANCE ARE POSSIBLE
2853 * DETERMINE THE RESORANT STATE BY USING THE MONTRE CARLO METHOD
2854 XX=(XNPIN+xnpin1)/xres
2855 IF(RANART(NSEED).LT.XX)THEN
2856 * N* RESONANCE IS SELECTED
2857 * decide N*(1440) or N*(1535) formation
2858 xx0=xnpin/(xnpin+xnpin1)
2859 if(RANART(NSEED).lt.xx0)then
2861 * N*(1440) formation
2864 * N*(1535) formation
2869 * DELTA RESONANCE IS SELECTED
2874 IF(RESONA.EQ.0.)THEN
2875 *N*(1440) IS PRODUCED,WE DETERMINE THE CHARGE STATE OF THE PRODUCED N*
2878 * (0.1) n+pion(+)-->N*(+)
2879 IF( (LB1*LB2.EQ.10.AND.(LB1.EQ.5.OR.LB2.EQ.5))
2880 & .OR.(LB1*LB2.EQ.-6.AND.(LB1.EQ.3.OR.LB2.EQ.3)) )THEN
2884 * (0.2) p+pion(0)-->N*(+)
2885 c IF(LB(I1)*LB(I2).EQ.4.AND.(LB(I1).EQ.1.OR.LB(I2).EQ.1))THEN
2886 IF(iabs(LB(I1)*LB(I2)).EQ.4.AND.
2887 & (LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
2891 * (0.3) n+pion(0)-->N*(0)
2892 c IF(LB(I1)*LB(I2).EQ.8.AND.(LB(I1).EQ.2.OR.LB(I2).EQ.2))THEN
2893 IF(iabs(LB(I1)*LB(I2)).EQ.8.AND.
2894 & (LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
2898 * (0.4) p+pion(-)-->N*(0)
2899 c IF(LB(I1)*LB(I2).EQ.3)THEN
2900 IF( (LB(I1)*LB(I2).EQ.3)
2901 & .OR.(LB(I1)*LB(I2).EQ.-5) )THEN
2904 303 CALL DRESON(I1,I2)
2905 if(LB1.lt.0.or.LB2.lt.0) LB(I)=-LB(I)
2908 *COM: GO TO 101 TO CHANGE THE PHASE SPACE DENSITY OF THE NUCLEON
2910 98 IF(RESONA.EQ.1.)THEN
2911 *N*(1535) IS PRODUCED, WE DETERMINE THE CHARGE STATE OF THE PRODUCED N*
2914 * note: this condition applies to both eta and pion
2915 * (0.1) n+pion(+)-->N*(+)
2916 c IF(LB1*LB2.EQ.10.AND.(LB1.EQ.2.OR.LB2.EQ.2))THEN
2917 IF( (LB1*LB2.EQ.10.AND.(LB1.EQ.5.OR.LB2.EQ.5))
2918 & .OR.(LB1*LB2.EQ.-6.AND.(LB1.EQ.3.OR.LB2.EQ.3)) )THEN
2922 * (0.2) p+pion(0)-->N*(+)
2923 c IF(LB(I1)*LB(I2).EQ.4.AND.(LB(I1).EQ.1.OR.LB(I2).EQ.1))THEN
2924 IF(iabs(LB(I1)*LB(I2)).EQ.4.AND.
2925 & (LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
2929 * (0.3) n+pion(0)-->N*(0)
2930 c IF(LB(I1)*LB(I2).EQ.8.AND.(LB(I1).EQ.2.OR.LB(I2).EQ.2))THEN
2931 IF(iabs(LB(I1)*LB(I2)).EQ.8.AND.
2932 & (LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
2936 * (0.4) p+pion(-)-->N*(0)
2937 c IF(LB(I1)*LB(I2).EQ.3)THEN
2938 IF( (LB(I1)*LB(I2).EQ.3)
2939 & .OR.(LB(I1)*LB(I2).EQ.-5) )THEN
2943 * (0.5) p+eta-->N*(+)(1535),n+eta-->N*(0)(1535)
2944 if(lb(i1)*lb(i2).eq.0)then
2945 c if((lb(i1).eq.1).or.(lb(i2).eq.1))then
2946 if(iabs(lb(i1)).eq.1.or.iabs(lb(i2)).eq.1)then
2953 304 CALL DRESON(I1,I2)
2954 if(LB1.lt.0.or.LB2.lt.0) LB(I)=-LB(I)
2957 *COM: GO TO 101 TO CHANGE THE PHASE SPACE DENSITY OF THE NUCLEON
2959 *DELTA IS PRODUCED,IN THE FOLLOWING WE DETERMINE THE
2960 *CHARGE STATE OF THE PRODUCED DELTA
2964 * (1) p+pion(+)-->DELTA(++)
2965 c IF(LB(I1)*LB(I2).EQ.5)THEN
2966 IF( (LB(I1)*LB(I2).EQ.5)
2967 & .OR.(LB(I1)*LB(I2).EQ.-3) )THEN
2971 * (2) p+pion(0)-->delta(+)
2972 c IF(LB(I1)*LB(I2).EQ.4.AND.(LB(I1).EQ.1.OR.LB(I2).EQ.1))then
2973 IF(iabs(LB(I1)*LB(I2)).EQ.4.AND.(LB(I1).EQ.4.OR.LB(I2).EQ.4))then
2977 * (3) n+pion(+)-->delta(+)
2978 c IF(LB(I1)*LB(I2).EQ.10.AND.(LB(I1).EQ.2.OR.LB(I2).EQ.2))THEN
2979 IF( (LB(I1)*LB(I2).EQ.10.AND.(LB(I1).EQ.5.OR.LB(I2).EQ.5))
2980 & .OR.(LB(I1)*LB(I2).EQ.-6.AND.(LB(I1).EQ.3.OR.LB(I2).EQ.3)) )THEN
2984 * (4) n+pion(0)-->delta(0)
2985 c IF(LB(I1)*LB(I2).EQ.8.AND.(LB(I1).EQ.2.OR.LB(I2).EQ.2))THEN
2986 IF(iabs(LB(I1)*LB(I2)).EQ.8.AND.(LB(I1).EQ.4.OR.LB(I2).EQ.4))THEN
2990 * (5) p+pion(-)-->delta(0)
2991 c IF(LB(I1)*LB(I2).EQ.3)THEN
2992 IF( (LB(I1)*LB(I2).EQ.3)
2993 & .OR.(LB(I1)*LB(I2).EQ.-5) )THEN
2997 * (6) n+pion(-)-->delta(-)
2998 c IF(LB(I1)*LB(I2).EQ.6.AND.(LB(I1).EQ.2.OR.LB(I2).EQ.2))THEN
2999 IF( (LB(I1)*LB(I2).EQ.6.AND.(LB(I1).EQ.3.OR.LB(I2).EQ.3))
3000 & .OR.(LB(I1)*LB(I2).EQ.-10.AND.(LB(I1).EQ.5.OR.LB(I2).EQ.5)) )THEN
3003 305 CALL DRESON(I1,I2)
3004 if(LB1.lt.0.or.LB2.lt.0) LB(I)=-LB(I)
3008 * FOR kaON+pion COLLISIONS, form K* (bar) or
3009 c La/Si-bar + N <-- pi + K+
3010 c La/Si + N-bar <-- pi + K-
3011 c phi + K <-- pi + K
3012 clin (rho,omega) + K* <-- pi + K
3017 EC=(em1+em2+0.02)**2
3018 * the cross section is from C.M. Ko, PRC 23, 2760 (1981).
3019 spika=60./(1.+4.*(srt-0.895)**2/(0.05)**2)
3021 cc if(lb(i1).eq.23.or.lb(i2).eq.23)then !! block K- + pi->La + B-bar
3023 call Crkpla(PX1CM,PY1CM,PZ1CM,EC,SRT,spika,
3024 & emm1,emm2,lbp1,lbp2,I1,I2,icase,srhoks)
3026 c* only K* or K*bar formation
3028 c DSkn=SQRT(spika/PI/10.)
3030 c CALL DISTCE(I1,I2,dsknr,DSkn,DT,EC,SRT,IC,
3031 c 1 PX1CM,PY1CM,PZ1CM)
3032 c IF(IC.EQ.-1) GO TO 400
3036 if(icase .eq. 0) then
3041 if(icase .eq. 1)then
3043 clin-4/30/03 give non-zero iblock for resonance selections:
3045 ctest off for resonance (phi, K*) studies:
3046 c if(iabs(lb(i1)).eq.30) then
3047 c write(17,112) 'ks',lb(i1),p(1,i1),p(2,i1),p(3,i1),e(i1),nt
3048 c elseif(iabs(lb(i2)).eq.30) then
3049 c write(17,112) 'ks',lb(i2),p(1,i2),p(2,i2),p(3,i2),e(i2),nt
3054 elseif(icase .eq. 2)then
3057 * La/Si (bar) formation
3059 elseif(iabs(icase).eq.5)then
3079 * (1) if rho or omega collide with a nucleon we allow both elastic
3080 * scattering and kaon production to happen if collision conditions
3082 * (2) if rho or omega collide with a baryon resonance we allow
3083 * kaon production, pion reabsorption: rho(omega)+D(N*)-->pion+N
3084 * and NO elastic scattering to happen
3086 if((lb1.ge.25.and.lb1.le.28).and.
3087 & (iabs(lb2).eq.1.or.iabs(lb2).eq.2))
3088 & xelstc=ERHON(EM1,EM2,LB1,LB2,SRT)
3089 if((lb2.ge.25.and.lb2.le.28).and.
3090 & (iabs(lb1).eq.1.or.iabs(lb1).eq.2))
3091 & xelstc=ERHON(EM1,EM2,LB1,LB2,SRT)
3092 ec=(em1+em2+0.02)**2
3093 * the kaon production cross section is
3095 if(srt.ge.1.63.AND.SRT.LE.1.7)xkaon0=pnlka(srt)
3096 IF(SRT.GT.1.7)XKAON0=PNLKA(SRT)+pnska(srt)
3097 if(xkaon0.lt.0)xkaon0=0
3100 XKAON0 = 2.0 * XKAON0
3101 cbz3/7/99 neutralk end
3103 * the total inelastic cross section for rho(omega)+N is
3106 * the total inelastic cross section for rho (omega)+D(N*) is
3107 * xkaon=xkaon0+reab(**)
3109 c sp11/21/01 phi production: rho + N(D) -> phi + N(D)
3111 if( ( (((lb1.ge.1.and.lb1.le.2).or.
3112 & (lb1.ge.6.and.lb1.le.9))
3113 & .and.(lb2.ge.25.and.lb2.le.27))
3114 & .OR.(((lb2.ge.1.and.lb2.le.2).or.
3115 & (lb2.ge.6.and.lb2.le.9))
3116 & .and.(lb1.ge.25.and.lb1.le.27)) ).AND. srt.gt.1.958)
3117 & call pibphi(srt,lb1,lb2,em1,em2,Xphi,xphin)
3120 if((iabs(lb1).ge.6.and.lb2.ge.25).or.
3121 & (lb1.ge.25.and.iabs(lb2).ge.6))then
3124 if(lb1.eq.28.or.lb2.eq.28)ictrl=3
3125 xreab=reab(i1,i2,srt,ictrl)
3127 clin-12/02/00 to satisfy detailed balance, forbid N* absorptions:
3128 if((iabs(lb1).ge.10.and.iabs(lb1).le.13)
3129 1 .or.(iabs(lb2).ge.10.and.iabs(lb2).le.13)) XREAB = 0.
3131 if(xreab.lt.0)xreab=1.E-06
3135 DS=SQRT((XKAON+Xphi+xelstc)/PI)
3138 c totcr = xelstc+xkaon
3139 c if(srt .gt. 3.5)totcr = max1(totcr,3.)
3147 * CHECK IF the collision can happen
3148 CALL DISTCE(I1,I2,DELTAR,DS,DT,EC,SRT,IC,
3150 IF(IC.EQ.-1) GO TO 400
3151 ekaon(4,iss)=ekaon(4,iss)+1
3153 * NOW rho(omega)+N or D(N*) COLLISION IS POSSIBLE
3154 * (1) check elastic collision
3155 if(xelstc/(xelstc+xkaon+Xphi).gt.RANART(NSEED))then
3156 c call crdir(px1CM,py1CM,pz1CM,srt,I1,i2)
3157 call crdir(px1CM,py1CM,pz1CM,srt,I1,i2,IBLOCK)
3160 * (2) check pion absorption or kaon production
3161 CALL CRRD(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3162 1 IBLOCK,xkaon0,xkaon,Xphi,xphin)
3166 IF(IBLOCK.EQ.7) then
3168 elseIF(IBLOCK.EQ.-7) then
3172 if(iblock.eq.81) lrhor=lrhor+1
3174 if(iblock.eq.82) lomgar=lomgar+1
3178 * for pion+n now using the subroutine crpn to change
3179 * the particle label and set the new momentum of L/S+K final state
3181 * NOW PION+N INELASTIC COLLISION IS POSSIBLE
3182 * check pion production or kaon production
3183 CALL CRPN(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3184 1 IBLOCK,xkaon0,xkaon,Xphi,xphin)
3188 IF(IBLOCK.EQ.7) then
3190 elseIF(IBLOCK.EQ.-7) then
3194 if(iblock.eq.77) lpd=lpd+1
3196 if(iblock.eq.78) lrho=lrho+1
3198 if(iblock.eq.79) lomega=lomega+1
3202 * for pion+D(N*) now using the subroutine crpd to
3203 * (1) check kaon production or pion reabsorption
3204 * (2) change the particle label and set the new
3205 * momentum of L/S+K final state
3207 CALL CRPD(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3208 1 IBLOCK,xkaon0,xkaon,Xphi,xphin)
3212 IF(IBLOCK.EQ.7) then
3214 elseIF(IBLOCK.EQ.-7) then
3218 if(iblock.eq.80) lpdr=lpdr+1
3222 * CALCULATE KAON PRODUCTION PROBABILITY FROM PION + N COLLISIONS
3223 C IF(SRT.GT.1.615)THEN
3224 C CALL PKAON(SRT,XXp,PK)
3225 C TKAON(7)=TKAON(7)+PK
3226 C EKAON(7,ISS)=EKAON(7,ISS)+1
3227 c CALL KSPEC1(SRT,PK)
3228 C call LK(3,srt,iseed,pk)
3230 * negelecting the pauli blocking at high energies
3233 IF(E(I2).EQ.0.)GO TO 600
3234 IF(E(I1).EQ.0.)GO TO 800
3235 * IF NUCLEON+BARYON RESONANCE COLLISIONS
3237 * CALCULATE THE TOTAL CROSS SECTION OF NUCLEON+ BARYON RESONANCE COLLISION
3238 * WE ASSUME THAT THE ELASTIC CROSS SECTION IS THE SAME AS NUCLEON+NUCLEON
3239 * COM: WE USE THE PARAMETERISATION BY CUGNON FOR LOW ENERGIES
3240 * AND THE PARAMETERIZATIONS FROM CERN DATA BOOK FOR HIGHER
3241 * ENERGIES. THE CUTOFF FOR THE TOTAL CROSS SECTION IS 55 MB
3243 IF(SRT.LE.CUTOFF)GO TO 400
3244 IF(SRT.GT.2.245)THEN
3247 SIGNN = 35.0 / (1. + (SRT - CUTOFF) * 100.0) + 20.0
3249 call XND(pcx,pcy,pcz,srt,I1,I2,xinel,
3250 & sigk,xsk1,xsk2,xsk3,xsk4,xsk5)
3252 * For nucleon+baryon resonance collision, the minimum cms**2 energy is
3253 EC=(EM1+EM2+0.02)**2
3254 * CHECK THE DISTENCE BETWEEN THE TWO PARTICLES
3259 clin-6/2008 Deuteron production:
3261 if(lb(i1).lt.0 .and. lb(i2).lt.0) ianti=1
3262 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
3264 clin-6/2008 perturbative treatment of deuterons:
3266 if(idpert.eq.1) then
3269 dspert=sqrt(sigr0/pi/10.)
3271 CALL DISTCE(I1,I2,dsrpert,dspert,DT,EC,SRT,IC,
3272 1 PX1CM,PY1CM,PZ1CM)
3273 IF(IC.EQ.-1) GO TO 363
3275 CALL CRND(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3276 & IBLOCK,SIGNN0,SIGr0,sigk,xsk1,xsk2,xsk3,xsk4,xsk5,NT,ipert1)
3277 c & IBLOCK,SIGNN,SIG,sigk,xsk1,xsk2,xsk3,xsk4,xsk5)
3282 if(idpert.eq.2) ipert1=1
3284 DS=SQRT(SIG/(10.*PI))
3286 CALL DISTCE(I1,I2,DELTAR,DS,DT,EC,SRT,IC,
3287 1 PX1CM,PY1CM,PZ1CM)
3288 c IF(IC.EQ.-1)GO TO 400
3290 if(ipdflag.eq.1) iblock=501
3294 ekaon(3,iss)=ekaon(3,iss)+1
3295 * CALCULATE KAON PRODUCTION PROBABILITY FROM NUCLEON + BARYON RESONANCE
3299 * CHECK WHAT KIND OF COLLISION HAS HAPPENED
3301 CALL CRND(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3302 & IBLOCK,SIGNN,SIG,sigk,xsk1,xsk2,xsk3,xsk4,xsk5,NT,ipert1)
3303 c & IBLOCK,SIGNN,SIG,sigk,xsk1,xsk2,xsk3,xsk4,xsk5)
3304 IF(iblock.eq.0.and.ipdflag.eq.1) iblock=501
3305 IF(IBLOCK.EQ.11)THEN
3308 c elseIF(IBLOCK.EQ.-11) then
3309 elseIF(IBLOCK.EQ.-11.or.iblock.eq.501) then
3312 if(iblock .eq. 222)then
3319 * IF NUCLEON+NUCLEON OR BARYON RESONANCE+BARYON RESONANCE COLLISIONS
3321 * PREPARE THE EALSTIC CROSS SECTION FOR BARYON+BARYON COLLISIONS
3322 * COM: WE USE THE PARAMETERISATION BY CUGNON FOR SRT LEQ 2.0 GEV
3323 * AND THE PARAMETERIZATIONS FROM CERN DATA BOOK FOR HIGHER
3324 * ENERGIES. THE CUTOFF FOR THE TOTAL CROSS SECTION IS 55 MB
3325 * WITH LOW-ENERGY-CUTOFF
3327 * AT HIGH ENERGIES THE ISOSPIN DEPENDENCE IS NEGLIGIBLE
3328 * THE TOTAL CROSS SECTION IS TAKEN AS THAT OF THE PP
3329 * ABOVE E_KIN=800 MEV, WE USE THE ISOSPIN INDEPENDNET XSECTION
3330 IF(SRT.GT.2.245)THEN
3334 * AT LOW ENERGIES THE ISOSPIN DEPENDENCE FOR NN COLLISION IS STRONG
3336 IF(ZET(LB(I1))*ZET(LB(I2)).LE.0)SIG=XNP(SRT)
3337 IF(ZET(LB(I1))*ZET(LB(I2)).GT.0)SIG=XPP(SRT)
3338 IF(ZET(LB(I1)).EQ.0.
3339 & AND.ZET(LB(I2)).EQ.0)SIG=XPP(SRT)
3340 if((lb(i1).eq.-1.and.lb(i2).eq.-2) .or.
3341 & (lb(i2).eq.-1.and.lb(i1).eq.-2))sig=xnp(srt)
3342 * WITH LOW-ENERGY-CUTOFF
3343 IF (SRT .LT. 1.897) THEN
3346 SIGNN = 35.0 / (1. + (SRT - 1.897) * 100.0) + 20.0
3352 clin-5/2008 Deuteron production cross sections were not included
3353 c in the previous parameterized inelastic cross section of NN collisions
3354 c (SIGinel=SIG-SIGNN), so they are added here:
3356 if(lb(i1).lt.0 .and. lb(i2).lt.0) ianti=1
3357 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
3360 clin-5/2008 perturbative treatment of deuterons:
3362 if(idpert.eq.1) then
3363 c For idpert=1: ipert1=1 means we will first treat deuteron perturbatively,
3364 c then we set ipert1=0 to treat regular NN or NbarNbar collisions including
3365 c the regular deuteron productions.
3366 c ipdflag=1 means perturbative deuterons are produced here:
3369 c Use the same cross section for NN/NNBAR collisions
3370 c to trigger perturbative production
3372 c One can also trigger with X*sbbdm() so the weight will not be too small;
3373 c but make sure to limit the maximum trigger Xsec:
3375 c if(sigr0.ge.100.) sigr0=100.
3376 dspert=sqrt(sigr0/pi/10.)
3378 CALL DISTCE(I1,I2,dsrpert,dspert,DT,EC,SRT,IC,
3379 1 PX1CM,PY1CM,PZ1CM)
3380 IF(IC.EQ.-1) GO TO 365
3382 CALL CRNN(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK,
3383 1 NTAG,signn0,sigr0,NT,ipert1)
3388 if(idpert.eq.2) ipert1=1
3390 clin-5/2008 in case perturbative deuterons are produced for idpert=1:
3391 c IF(SIGNN.LE.0)GO TO 400
3393 if(ipdflag.eq.1) iblock=501
3400 IF((E(I1).GE.1.).AND.(e(I2).GE.1.))EC=4.75
3401 CALL DISTCE(I1,I2,dsr,ds,DT,EC,SRT,IC,
3402 1 PX1CM,PY1CM,PZ1CM)
3403 clin-5/2008 in case perturbative deuterons are produced above:
3404 c IF(IC.EQ.-1) GO TO 400
3406 if(ipdflag.eq.1) iblock=501
3410 * CALCULATE KAON PRODUCTION PROBABILITY FROM NUCLEON+NUCLEON OR
3411 * RESONANCE+RESONANCE COLLISIONS
3414 C CHECK WHAT KIND OF COLLISION HAS HAPPENED
3415 362 ekaon(1,iss)=ekaon(1,iss)+1
3416 CALL CRNN(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK,
3417 1 NTAG,SIGNN,SIG,NT,ipert1)
3418 clin-5/2008 give iblock # in case pert deuterons are produced for idpert=1:
3419 IF(iblock.eq.0.and.ipdflag.eq.1) iblock=501
3420 clin-5/2008 add iblock # for deuteron formation:
3421 c IF(IBLOCK.EQ.4.OR.IBLOCK.Eq.9.or.iblock.ge.44.OR.IBLOCK.EQ.-9
3422 c & .or.iblock.eq.222)THEN
3423 IF(IBLOCK.EQ.4.OR.IBLOCK.Eq.9.or.iblock.ge.44.OR.IBLOCK.EQ.-9
3424 & .or.iblock.eq.222.or.iblock.eq.501)THEN
3426 c !! sp12/17/01 above
3427 * momentum of the three particles in the final state have been calculated
3428 * in the crnn, go out of the loop
3432 elseif(iblock.eq.44)then
3434 elseif(iblock.eq.45)then
3436 elseif(iblock.eq.46)then
3438 elseif(iblock .eq. 222)then
3439 elseIF(IBLOCK.EQ.9) then
3441 elseIF(IBLOCK.EQ.-9) then
3449 clin-8/2008 B+B->Deuteron+Meson over
3451 clin-8/2008 Deuteron+Meson->B+B collisions:
3454 if(lb(i1).lt.0 .or. lb(i2).lt.0) ianti=1
3455 call sdmbb(SRT,sdm,ianti)
3459 c minimum srt**2, note a 2.012GeV lower cutoff is used in N+N->Deuteron+pi:
3463 CALL DISTCE(I1,I2,dsr,ds,DT,EC,SRT,IC,PX1CM,PY1CM,PZ1CM)
3464 IF(IC.EQ.-1) GO TO 400
3465 CALL crdmbb(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK,
3466 1 NTAG,sdm,NT,ianti)
3469 clin-8/2008 Deuteron+Meson->B+B collisions over
3471 clin-9/2008 Deuteron+Baryon elastic collisions:
3474 if(lb(i1).lt.0 .or. lb(i2).lt.0) ianti=1
3475 call sdbelastic(SRT,sdb)
3479 c minimum srt**2, note a 2.012GeV lower cutoff is used in N+N->Deuteron+pi:
3483 CALL DISTCE(I1,I2,dsr,ds,DT,EC,SRT,IC,PX1CM,PY1CM,PZ1CM)
3484 IF(IC.EQ.-1) GO TO 400
3485 CALL crdbel(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK,
3486 1 NTAG,sdb,NT,ianti)
3489 clin-9/2008 Deuteron+Baryon elastic collisions over
3491 * IF BARYON RESONANCE+BARYON RESONANCE COLLISIONS
3493 * PREPARE THE EALSTIC CROSS SECTION FOR BARYON+BARYON COLLISIONS
3495 * AT HIGH ENERGIES THE ISOSPIN DEPENDENCE IS NEGLIGIBLE
3496 * THE TOTAL CROSS SECTION IS TAKEN AS THAT OF THE PP
3497 IF(SRT.LE.CUTOFF)GO TO 400
3498 IF(SRT.GT.2.245)THEN
3501 SIGNN = 35.0 / (1. + (SRT - CUTOFF) * 100.0) + 20.0
3503 IF(SIGNN.LE.0)GO TO 400
3504 CALL XDDIN(PCX,PCY,PCZ,SRT,I1,I2,
3505 &XINEL,SIGK,XSK1,XSK2,XSK3,XSK4,XSK5)
3507 EC=(EM1+EM2+0.02)**2
3512 clin-6/2008 Deuteron production:
3514 if(lb(i1).lt.0 .and. lb(i2).lt.0) ianti=1
3515 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
3517 clin-6/2008 perturbative treatment of deuterons:
3519 if(idpert.eq.1) then
3522 dspert=sqrt(sigr0/pi/10.)
3524 CALL DISTCE(I1,I2,dsrpert,dspert,DT,EC,SRT,IC,
3525 1 PX1CM,PY1CM,PZ1CM)
3526 IF(IC.EQ.-1) GO TO 367
3528 CALL CRDD(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3529 1 IBLOCK,NTAG,SIGNN0,SIGr0,NT,ipert1)
3530 c 1 IBLOCK,NTAG,SIGNN,SIG)
3535 if(idpert.eq.2) ipert1=1
3539 CALL DISTCE(I1,I2,dsr,ds,DT,EC,SRT,IC,
3540 1 PX1CM,PY1CM,PZ1CM)
3541 c IF(IC.EQ.-1) GO TO 400
3543 if(ipdflag.eq.1) iblock=501
3547 * CALCULATE KAON PRODUCTION PROBABILITY FROM NUCLEON+NUCLEON OR
3548 * RESONANCE+RESONANCE COLLISIONS
3551 C CHECK WHAT KIND OF COLLISION HAS HAPPENED
3552 364 ekaon(2,iss)=ekaon(2,iss)+1
3553 * for resonance+resonance
3555 CALL CRDD(IRUN,PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3556 1 IBLOCK,NTAG,SIGNN,SIG,NT,ipert1)
3557 c 1 IBLOCK,NTAG,SIGNN,SIG)
3558 IF(iblock.eq.0.and.ipdflag.eq.1) iblock=501
3560 IF(iabs(IBLOCK).EQ.10)THEN
3561 * momentum of the three particles in the final state have been calculated
3562 * in the crnn, go out of the loop
3564 IF(IBLOCK.EQ.10)THEN
3566 elseIF(IBLOCK.EQ.-10) then
3571 c if(iblock .eq. 222)then
3572 if(iblock .eq. 222.or.iblock.eq.501)then
3579 * FOR PION+PION,pion+eta, eta+eta and rho(omega)+pion(rho,omega) or eta
3584 * energy thresh for collisions
3586 IF(SRT.LE.ec0)GO TO 400
3587 ec=(em1+em2+0.02)**2
3588 * we negelect the elastic collision between mesons except that betwen
3589 * two pions because of the lack of information about these collisions
3590 * However, we do let them to collide inelastically to produce kaons
3591 clin-8/15/02 ppel=1.e-09
3594 if(lb1.lt.3.or.lb1.gt.5.or.lb2.lt.3.or.lb2.gt.5)go to 778
3595 CALL PPXS(LB1,LB2,SRT,PPSIG,spprho,IPP)
3597 778 ppink=pipik(srt)
3599 * pi+eta and eta+eta are assumed to be the same as pipik( for pi+pi -> K+K-)
3600 * estimated from Ko's paper:
3602 if(lb1.ge.25.and.lb2.ge.25) ppink=rrkk
3604 clin-2/13/03 include omega the same as rho, eta the same as pi:
3605 c if(((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.25.and.lb2.le.27))
3606 c 1 .or.((lb2.ge.3.and.lb2.le.5).and.(lb1.ge.25.and.lb1.le.27)))
3607 if( ( (lb1.eq.0.or.(lb1.ge.3.and.lb1.le.5))
3608 1 .and.(lb2.ge.25.and.lb2.le.28))
3609 2 .or. ( (lb2.eq.0.or.(lb2.ge.3.and.lb2.le.5))
3610 3 .and.(lb1.ge.25.and.lb1.le.28))) then
3612 if(srt.ge.(aka+aks)) ppink = prkk
3615 c pi pi <-> rho rho:
3616 call spprr(lb1,lb2,srt)
3617 clin-4/03/02 pi pi <-> eta eta:
3618 call sppee(lb1,lb2,srt)
3619 clin-4/03/02 pi pi <-> pi eta:
3620 call spppe(lb1,lb2,srt)
3621 clin-4/03/02 rho pi <-> rho eta:
3622 call srpre(lb1,lb2,srt)
3623 clin-4/03/02 omega pi <-> omega eta:
3624 call sopoe(lb1,lb2,srt)
3625 clin-4/03/02 rho rho <-> eta eta:
3626 call srree(lb1,lb2,srt)
3629 if(srt.gt.thresh(1)) then
3631 if(lb1.ge.3.and.lb1.le.5.and.lb2.ge.3.and.lb2.le.5) then
3633 elseif((lb1.ge.3.and.lb1.le.5.and.lb2.ge.25.and.lb2.le.27)
3634 1 .or.(lb2.ge.3.and.lb2.le.5.and.lb1.ge.25.and.lb1.le.27)) then
3636 elseif(lb1.ge.25.and.lb1.le.27
3637 1 .and.lb2.ge.25.and.lb2.le.27) then
3639 elseif((lb1.ge.3.and.lb1.le.5.and.lb2.eq.28)
3640 1 .or.(lb2.ge.3.and.lb2.le.5.and.lb1.eq.28)) then
3642 elseif((lb1.ge.25.and.lb1.le.27.and.lb2.eq.28)
3643 1 .or.(lb2.ge.25.and.lb2.le.27.and.lb1.eq.28)) then
3645 elseif(lb1.eq.28.and.lb2.eq.28) then
3648 if(lb1.ne.0.and.lb2.ne.0)
3649 1 write(6,*) 'missed MM lb1,lb2=',lb1,lb2
3652 ppin=ppink+ppinnb+pprr+ppee+pppe+rpre+xopoe+rree
3654 * check if a collision can happen
3655 if((ppel+ppin).le.0.01)go to 400
3656 DSPP=SQRT((ppel+ppin)/31.4)
3658 CALL DISTCE(I1,I2,dsppr,DSPP,DT,EC,SRT,IC,
3659 1 PX1CM,PY1CM,PZ1CM)
3660 IF(IC.EQ.-1) GO TO 400
3661 if(ppel.eq.0)go to 400
3662 * the collision can happen
3663 * check what kind collision has happened
3664 ekaon(5,iss)=ekaon(5,iss)+1
3665 CALL CRPP(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3666 1 IBLOCK,ppel,ppin,spprho,ipp)
3668 * rho formation, go to 400
3669 c if(iblock.eq.666)go to 600
3670 if(iblock.eq.666)go to 555
3671 if(iblock.eq.6)LPP=LPP+1
3672 if(iblock.eq.66)then
3674 elseif(iblock.eq.366)then
3676 elseif(iblock.eq.367)then
3683 * In this block we treat annihilations of
3684 clin-9/28/00* an anti-nucleon and a baryon or baryon resonance
3685 * an anti-baryon and a baryon (including resonances)
3690 EC=(em1+em2+0.02)**2
3691 clin assume the same cross section (as a function of sqrt s) as for PPbar:
3693 clin-ctest annih maximum
3694 c DSppb=SQRT(amin1(xppbar(srt),30.)/PI/10.)
3695 DSppb=SQRT(xppbar(srt)/PI/10.)
3697 CALL DISTCE(I1,I2,dsppbr,DSppb,DT,EC,SRT,IC,
3698 1 PX1CM,PY1CM,PZ1CM)
3699 IF(IC.EQ.-1) GO TO 400
3700 CALL Crppba(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3709 EC=(em1+em2+0.02)**2
3710 DSkk=SQRT(SIG/PI/10.)
3712 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3713 1 PX1CM,PY1CM,PZ1CM)
3714 IF(IC.EQ.-1) GO TO 400
3715 CALL Crlaba(PX1CM,PY1CM,PZ1CM,SRT,brel,brsgm,
3716 & I1,I2,nt,IBLOCK,nchrg,icase)
3721 c perturbative production of cascade and omega
3725 call pertur(PX1CM,PY1CM,PZ1CM,SRT,IRUN,I1,I2,nt,kp,icontp)
3726 if(icontp .eq. 0)then
3727 c inelastic collisions:
3733 c elastic collisions:
3734 if (e(i1) .eq. 0.) go to 800
3735 if (e(i2) .eq. 0.) go to 600
3738 c* phi + N --> pi+N(D), N(D,N*)+N(D,N*), K+ +La
3739 c* phi + D --> pi+N(D)
3744 EC=(em1+em2+0.02)**2
3745 CALL XphiB(LB1, LB2, EM1, EM2, SRT,
3746 & XSK1, XSK2, XSK3, XSK4, XSK5, SIGP)
3747 DSkk=SQRT(SIGP/PI/10.)
3749 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3750 1 PX1CM,PY1CM,PZ1CM)
3751 IF(IC.EQ.-1) GO TO 400
3752 CALL CRPHIB(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3753 & XSK1, XSK2, XSK3, XSK4, XSK5, SIGP, IBLOCK)
3758 c* phi + M --> K+ + K* .....
3763 EC=(em1+em2+0.02)**2
3764 CALL PHIMES(I1, I2, SRT, XSK1, XSK2, XSK3, XSK4, XSK5,
3765 1 XSK6, XSK7, SIGPHI)
3766 DSkk=SQRT(SIGPHI/PI/10.)
3768 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3769 1 PX1CM,PY1CM,PZ1CM)
3770 IF(IC.EQ.-1) GO TO 400
3772 PZRT = p(3,i1)+p(3,i2)
3773 ER1 = sqrt( p(1,i1)**2+p(2,i1)**2+p(3,i1)**2+E(i1)**2 )
3774 ER2 = sqrt( p(1,i2)**2+p(2,i2)**2+p(3,i2)**2+E(i2)**2 )
3776 yy = 0.5*log( (ERT+PZRT)/(ERT-PZRT) )
3778 CALL CRPHIM(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3779 & XSK1, XSK2, XSK3, XSK4, XSK5, XSK6, SIGPHI, IKKG, IKKL, IBLOCK)
3784 c lambda-N elastic xsection, Li & Ko, PRC 54(1996)1897.
3789 EC=(em1+em2+0.02)**2
3790 call lambar(i1,i2,srt,siglab)
3791 DShn=SQRT(siglab/PI/10.)
3793 CALL DISTCE(I1,I2,dshnr,DShn,DT,EC,SRT,IC,
3794 1 PX1CM,PY1CM,PZ1CM)
3795 IF(IC.EQ.-1) GO TO 400
3796 CALL Crhb(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
3801 c* K+ + La(Si) --> Meson + B
3802 c* K- + La(Si)-bar --> Meson + B-bar
3807 EC=(em1+em2+0.02)**2
3808 CALL XKHYPE(I1, I2, SRT, XKY1, XKY2, XKY3, XKY4, XKY5,
3809 & XKY6, XKY7, XKY8, XKY9, XKY10, XKY11, XKY12, XKY13,
3810 & XKY14, XKY15, XKY16, XKY17, SIGK)
3813 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3814 1 PX1CM,PY1CM,PZ1CM)
3815 IF(IC.EQ.-1) GO TO 400
3817 if(lb(i1).eq.23 .or. lb(i2).eq.23)then
3822 CALL Crkhyp(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3823 & XKY1, XKY2, XKY3, XKY4, XKY5,
3824 & XKY6, XKY7, XKY8, XKY9, XKY10, XKY11, XKY12, XKY13,
3825 & XKY14, XKY15, XKY16, XKY17, SIGK, IKMP,
3832 csp11/03/01 La/Si-bar + N --> pi + K+
3833 c La/Si + N-bar --> pi + K-
3838 EC=(em1+em2+0.02)**2
3840 c if((lb1.ge.14.and.lb1.le.17)
3841 c & .or.(lb2.ge.14.and.lb2.le.17))sigkp=10.
3842 DSkk=SQRT(SIGKP/PI/10.)
3844 CALL DISTCE(I1,I2,dskk0,DSkk,DT,EC,SRT,IC,
3845 1 PX1CM,PY1CM,PZ1CM)
3846 IF(IC.EQ.-1) GO TO 400
3848 CALL CRLAN(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK)
3854 * K(K*) + K(K*) --> phi + pi(rho,omega)
3859 EC=(em1+em2+0.02)**2
3860 * CALL CROSSKKPHI(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK) used for KK*->phi+rho
3862 CALL Crkphi(PX1CM,PY1CM,PZ1CM,EC,SRT,IBLOCK,
3863 & emm1,emm2,lbp1,lbp2,I1,I2,ikk,icase,rrkk,prkk)
3864 if(icase .eq. 0) then
3870 if(lbp1.eq.29.or.lbp2.eq.29) then
3871 PZRT = p(3,i1)+p(3,i2)
3872 ER1 = sqrt( p(1,i1)**2+p(2,i1)**2+p(3,i1)**2+E(i1)**2 )
3873 ER2 = sqrt( p(1,i2)**2+p(2,i2)**2+p(3,i2)**2+E(i2)**2 )
3875 yy = 0.5*log( (ERT+PZRT)/(ERT-PZRT) )
3889 * rho(omega) + K(K*) --> phi + K(K*)
3894 EC=(em1+em2+0.02)**2
3895 * CALL CROSSKKPHI(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,IBLOCK) used for KK*->phi+rho
3896 CALL Crksph(PX1CM,PY1CM,PZ1CM,EC,SRT,
3897 & emm1,emm2,lbp1,lbp2,I1,I2,ikkg,ikkl,iblock,icase,srhoks)
3898 if(icase .eq. 0) then
3903 if(lbp1.eq.29.or.lbp2.eq.20) then
3905 PZRT = p(3,i1)+p(3,i2)
3906 ER1 = sqrt( p(1,i1)**2+p(2,i1)**2+p(3,i1)**2+E(i1)**2 )
3907 ER2 = sqrt( p(1,i2)**2+p(2,i2)**2+p(3,i2)**2+E(i2)**2 )
3909 yy = 0.5*log( (ERT+PZRT)/(ERT-PZRT) )
3920 * for kaon+baryon scattering, using a constant xsection of 10 mb.
3925 EC=(em1+em2+0.02)**2
3927 if(iabs(lb1).eq.14.or.iabs(lb2).eq.14 .or.
3928 & iabs(lb1).eq.30.or.iabs(lb2).eq.30)sig=20.
3929 if(lb1.eq.29.or.lb2.eq.29)sig=5.0
3931 DSkn=SQRT(sig/PI/10.)
3933 CALL DISTCE(I1,I2,dsknr,DSkn,DT,EC,SRT,IC,
3934 1 PX1CM,PY1CM,PZ1CM)
3935 IF(IC.EQ.-1) GO TO 400
3936 CALL Crkn(PX1CM,PY1CM,PZ1CM,SRT,I1,I2,
3944 * IBLOCK = 0 ; NOTHING HAS HAPPENED
3945 * IBLOCK = 1 ; ELASTIC N-N COLLISION
3946 * IBLOCK = 2 ; N + N -> N + DELTA
3947 * IBLOCK = 3 ; N + DELTA -> N + N
3948 * IBLOCK = 4 ; N + N -> d + d + PION,DIRECT PROCESS
3949 * IBLOCK = 5 ; D(N*)+D(N*) COLLISIONS
3950 * IBLOCK = 6 ; PION+PION COLLISIONS
3951 * iblock = 7 ; pion+nucleon-->l/s+kaon
3952 * iblock =77; pion+nucleon-->delta+pion
3953 * iblock = 8 ; kaon+baryon rescattering
3954 * IBLOCK = 9 ; NN-->KAON+X
3955 * IBLOCK = 10; DD-->KAON+X
3956 * IBLOCK = 11; ND-->KAON+X
3959 * iblock - 1902 annihilation-->pion(+)+pion(-) (2 pion)
3960 * iblock - 1903 annihilation-->pion(+)+rho(-) (3 pion)
3961 * iblock - 1904 annihilation-->rho(+)+rho(-) (4 pion)
3962 * iblock - 1905 annihilation-->rho(0)+omega (5 pion)
3963 * iblock - 1906 annihilation-->omega+omega (6 pion)
3965 * iblock - 1907 K+K- to pi+pi-
3968 * iblock - 1908 K+Y -> piN
3969 cbz3/9/99 khyperon end
3972 clin-9/28/00 Processes: m(pi rho omega)+m(pi rho omega)
3973 c to anti-(p n D N*1 N*2)+(p n D N*1 N*2):
3974 * iblock - 1801 mm -->pbar p
3975 * iblock - 18021 mm -->pbar n
3976 * iblock - 18022 mm -->nbar p
3977 * iblock - 1803 mm -->nbar n
3978 * iblock - 18041 mm -->pbar Delta
3979 * iblock - 18042 mm -->anti-Delta p
3980 * iblock - 18051 mm -->nbar Delta
3981 * iblock - 18052 mm -->anti-Delta n
3982 * iblock - 18061 mm -->pbar N*(1400)
3983 * iblock - 18062 mm -->anti-N*(1400) p
3984 * iblock - 18071 mm -->nbar N*(1400)
3985 * iblock - 18072 mm -->anti-N*(1400) n
3986 * iblock - 1808 mm -->anti-Delta Delta
3987 * iblock - 18091 mm -->pbar N*(1535)
3988 * iblock - 18092 mm -->anti-N*(1535) p
3989 * iblock - 18101 mm -->nbar N*(1535)
3990 * iblock - 18102 mm -->anti-N*(1535) n
3991 * iblock - 18111 mm -->anti-Delta N*(1440)
3992 * iblock - 18112 mm -->anti-N*(1440) Delta
3993 * iblock - 18121 mm -->anti-Delta N*(1535)
3994 * iblock - 18122 mm -->anti-N*(1535) Delta
3995 * iblock - 1813 mm -->anti-N*(1440) N*(1440)
3996 * iblock - 18141 mm -->anti-N*(1440) N*(1535)
3997 * iblock - 18142 mm -->anti-N*(1535) N*(1440)
3998 * iblock - 1815 mm -->anti-N*(1535) N*(1535)
4001 clin-10/08/00 Processes: pi pi <-> rho rho
4002 * iblock - 1850 pi pi -> rho rho
4003 * iblock - 1851 rho rho -> pi pi
4006 clin-08/14/02 Processes: pi pi <-> eta eta
4007 * iblock - 1860 pi pi -> eta eta
4008 * iblock - 1861 eta eta -> pi pi
4009 * Processes: pi pi <-> pi eta
4010 * iblock - 1870 pi pi -> pi eta
4011 * iblock - 1871 pi eta -> pi pi
4012 * Processes: rho pi <-> rho eta
4013 * iblock - 1880 pi pi -> pi eta
4014 * iblock - 1881 pi eta -> pi pi
4015 * Processes: omega pi <-> omega eta
4016 * iblock - 1890 pi pi -> pi eta
4017 * iblock - 1891 pi eta -> pi pi
4018 * Processes: rho rho <-> eta eta
4019 * iblock - 1895 rho rho -> eta eta
4020 * iblock - 1896 eta eta -> rho rho
4023 clin-11/07/00 Processes:
4024 * iblock - 366 pi rho -> K* Kbar or K*bar K
4025 * iblock - 466 pi rho <- K* Kbar or K*bar K
4027 clin-9/2008 Deuteron:
4028 * iblock - 501 B+B -> Deuteron+Meson
4029 * iblock - 502 Deuteron+Meson -> B+B
4030 * iblock - 503 Deuteron+Baryon elastic
4031 * iblock - 504 Deuteron+Meson elastic
4033 IF(IBLOCK.EQ.0) GOTO 400
4034 *COM: FOR DIRECT PROCESS WE HAVE TREATED THE PAULI BLOCKING AND FIND
4035 * THE MOMENTUM OF PARTICLES IN THE ''LAB'' FRAME. SO GO TO 400
4036 * A COLLISION HAS TAKEN PLACE !!
4038 * WAS COLLISION PAULI-FORBIDEN? IF YES, NTAG = -1
4041 * LORENTZ-TRANSFORMATION INTO CMS FRAME
4042 E1CM = SQRT (EM1**2 + PX1CM**2 + PY1CM**2 + PZ1CM**2)
4043 P1BETA = PX1CM*BETAX + PY1CM*BETAY + PZ1CM*BETAZ
4044 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
4045 Pt1I1 = BETAX * TRANSF + PX1CM
4046 Pt2I1 = BETAY * TRANSF + PY1CM
4047 Pt3I1 = BETAZ * TRANSF + PZ1CM
4048 * negelect the pauli blocking at high energies
4051 clin-10/25/02-comment out following, since there is no path to it:
4052 c*CHECK IF PARTICLE #1 IS PAULI BLOCKED
4053 c CALL PAULat(I1,occup)
4054 c if (RANART(NSEED) .lt. occup) then
4062 *IF PARTICLE #1 IS NOT PAULI BLOCKED
4063 c IF (NTAG .NE. -1) THEN
4064 E2CM = SQRT (EM2**2 + PX1CM**2 + PY1CM**2 + PZ1CM**2)
4065 TRANSF = GAMMA * (-GAMMA*P1BETA / (GAMMA + 1.) + E2CM)
4066 Pt1I2 = BETAX * TRANSF - PX1CM
4067 Pt2I2 = BETAY * TRANSF - PY1CM
4068 Pt3I2 = BETAZ * TRANSF - PZ1CM
4071 clin-10/25/02-comment out following, since there is no path to it:
4072 c*CHECK IF PARTICLE #2 IS PAULI BLOCKED
4073 c CALL PAULat(I2,occup)
4074 c if (RANART(NSEED) .lt. occup) then
4080 c* IF COLLISION IS BLOCKED,RESTORE THE MOMENTUM,MASSES
4081 c* AND LABELS OF I1 AND I2
4082 cc IF (NTAG .EQ. -1) THEN
4097 90003 IF(IBLOCK.EQ.1) LCNNE=LCNNE+1
4098 IF(IBLOCK.EQ.5) LDD=LDD+1
4099 if(iblock.eq.2) LCNND=LCNND+1
4100 IF(IBLOCK.EQ.8) LKN=LKN+1
4101 if(iblock.eq.43) Ldou=Ldou+1
4102 c IF(IBLOCK.EQ.2) THEN
4103 * CALCULATE THE AVERAGE SRT FOR N + N---> N + DELTA PROCESS
4107 IF(IBLOCK.EQ.3) LCNDN=LCNDN+1
4108 * assign final momenta to particles while keep the leadng particle
4110 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
4134 E1 = SQRT( EM1**2 + PX1**2 + PY1**2 + PZ1**2 )
4137 clin-10/25/02-comment out following, since there is no path to it:
4138 c* change phase space density FOR NUCLEONS INVOLVED :
4139 c* NOTE THAT f is the phase space distribution function for nucleons only
4140 c if ((abs(ix1).le.mx) .and. (abs(iy1).le.my) .and.
4141 c & (abs(iz1).le.mz)) then
4142 c ipx1p = nint(p(1,i1)/dpx)
4143 c ipy1p = nint(p(2,i1)/dpy)
4144 c ipz1p = nint(p(3,i1)/dpz)
4145 c if ((ipx1p.ne.ipx1) .or. (ipy1p.ne.ipy1) .or.
4146 c & (ipz1p.ne.ipz1)) then
4147 c if ((abs(ipx1).le.mpx) .and. (abs(ipy1).le.my)
4148 c & .and. (ipz1.ge.-mpz) .and. (ipz1.le.mpzp)
4149 c & .AND. (AM1.LT.1.))
4150 c & f(ix1,iy1,iz1,ipx1,ipy1,ipz1) =
4151 c & f(ix1,iy1,iz1,ipx1,ipy1,ipz1) - 1.
4152 c if ((abs(ipx1p).le.mpx) .and. (abs(ipy1p).le.my)
4153 c & .and. (ipz1p.ge.-mpz).and. (ipz1p.le.mpzp)
4154 c & .AND. (EM1.LT.1.))
4155 c & f(ix1,iy1,iz1,ipx1p,ipy1p,ipz1p) =
4156 c & f(ix1,iy1,iz1,ipx1p,ipy1p,ipz1p) + 1.
4159 c if ((abs(ix2).le.mx) .and. (abs(iy2).le.my) .and.
4160 c & (abs(iz2).le.mz)) then
4161 c ipx2p = nint(p(1,i2)/dpx)
4162 c ipy2p = nint(p(2,i2)/dpy)
4163 c ipz2p = nint(p(3,i2)/dpz)
4164 c if ((ipx2p.ne.ipx2) .or. (ipy2p.ne.ipy2) .or.
4165 c & (ipz2p.ne.ipz2)) then
4166 c if ((abs(ipx2).le.mpx) .and. (abs(ipy2).le.my)
4167 c & .and. (ipz2.ge.-mpz) .and. (ipz2.le.mpzp)
4168 c & .AND. (AM2.LT.1.))
4169 c & f(ix2,iy2,iz2,ipx2,ipy2,ipz2) =
4170 c & f(ix2,iy2,iz2,ipx2,ipy2,ipz2) - 1.
4171 c if ((abs(ipx2p).le.mpx) .and. (abs(ipy2p).le.my)
4172 c & .and. (ipz2p.ge.-mpz) .and. (ipz2p.le.mpzp)
4173 c & .AND. (EM2.LT.1.))
4174 c & f(ix2,iy2,iz2,ipx2p,ipy2p,ipz2p) =
4175 c & f(ix2,iy2,iz2,ipx2p,ipy2p,ipz2p) + 1.
4188 clin-6/10/03 skips the info output on resonance creations:
4190 cclin-4/30/03 study phi,K*,Lambda(1520) resonances at creation:
4191 cc note that no decays give these particles, so don't need to consider nnn:
4192 c if(iblock.ne.0.and.(lb(i1).eq.29.or.iabs(lb(i1)).eq.30
4193 c 1 .or.lb(i2).eq.29.or.iabs(lb(i2)).eq.30
4194 c 2 .or.lb1i.eq.29.or.iabs(lb1i).eq.30
4195 c 3 .or.lb2i.eq.29.or.iabs(lb2i).eq.30)) then
4204 c if(lb1i.eq.29) then
4206 c elseif(lb1i.eq.30) then
4208 c elseif(lb1i.eq.-30) then
4211 c if(lb2i.eq.29) then
4213 c elseif(lb2i.eq.30) then
4215 c elseif(lb2i.eq.-30) then
4224 c if(lb1now.eq.29) then
4226 c elseif(lb1now.eq.30) then
4228 c elseif(lb1now.eq.-30) then
4231 c if(lb2now.eq.29) then
4233 c elseif(lb2now.eq.30) then
4235 c elseif(lb2now.eq.-30) then
4239 c if(nphi.eq.2.or.nksp.eq.2.or.nksm.eq.2) then
4240 c write(91,*) '2 same resonances in one reaction!'
4241 c write(91,*) nphi,nksp,nksm,iblock
4244 cc All reactions create or destroy no more than 1 these resonance,
4245 cc otherwise file "fort.91" warns us:
4247 c if(ires.eq.1.and.nphi.ne.nphi0) then
4249 c elseif(ires.eq.2.and.nksp.ne.nksp0) then
4251 c elseif(ires.eq.3.and.nksm.ne.nksm0) then
4256 cctest off for resonance (phi, K*) studies:
4257 cc if(lb1now.eq.idr) then
4258 cc write(17,112) 'collision',lb1now,P(1,I1),P(2,I1),P(3,I1),e(I1),nt
4259 cc elseif(lb2now.eq.idr) then
4260 cc write(17,112) 'collision',lb2now,P(1,I2),P(2,I2),P(3,I2),e(I2),nt
4261 cc elseif(lb1i.eq.idr) then
4262 cc write(18,112) 'collision',lb1i,px1i,py1i,pz1i,em1i,nt
4263 cc elseif(lb2i.eq.idr) then
4264 cc write(18,112) 'collision',lb2i,px2i,py2i,pz2i,em2i,nt
4270 cc 112 format(a10,I4,4(1x,f9.3),1x,I4)
4272 clin-2/26/03 skips the check of energy conservation after each binary search:
4278 c if(e(i1).ne.0.or.lb(i1).eq.10022) then
4279 c efin=efin+SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
4280 c pxfin=pxfin+P(1,I1)
4281 c pyfin=pyfin+P(2,I1)
4282 c pzfin=pzfin+P(3,I1)
4284 c if(e(i2).ne.0.or.lb(i2).eq.10022) then
4285 c efin=efin+SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
4286 c pxfin=pxfin+P(1,I2)
4287 c pyfin=pyfin+P(2,I2)
4288 c pzfin=pzfin+P(3,I2)
4290 c if((nnn-nnnini).ge.1) then
4291 c do imore=nnnini+1,nnn
4292 c if(EPION(imore,IRUN).ne.0) then
4293 c efin=efin+SQRT(EPION(imore,IRUN)**2
4294 c 1 +PPION(1,imore,IRUN)**2+PPION(2,imore,IRUN)**2
4295 c 2 +PPION(3,imore,IRUN)**2)
4296 c pxfin=pxfin+PPION(1,imore,IRUN)
4297 c pyfin=pyfin+PPION(2,imore,IRUN)
4298 c pzfin=pzfin+PPION(3,imore,IRUN)
4302 c devio=sqrt((pxfin-pxini)**2+(pyfin-pyini)**2
4303 c 1 +(pzfin-pzini)**2+(efin-eini)**2)
4305 c if(devio.ge.0.1) then
4306 c write(92,'a20,5(1x,i6),2(1x,f8.3)') 'iblock,lb,npi=',
4307 c 1 iblock,lb1i,lb2i,lb(i1),lb(i2),e(i1),e(i2)
4308 c do imore=nnnini+1,nnn
4309 c if(EPION(imore,IRUN).ne.0) then
4310 c write(92,'a10,2(1x,i6)') 'ipi,lbm=',
4311 c 1 imore,LPION(imore,IRUN)
4314 c write(92,'a3,4(1x,f8.3)') 'I:',eini,pxini,pyini,pzini
4315 c write(92,'a3,5(1x,f8.3)')
4316 c 1 'F:',efin,pxfin,pyfin,pzfin,devio
4320 ctest off only one collision for the same 2 particles in the same timestep:
4321 c if(iblock.ne.0) then
4324 ctest off collisions history:
4325 c if(iblock.ne.0) then
4326 c write(10,*) nt,i1,i2,iblock,x1,z1,x2,z2
4331 * RELABLE MESONS LEFT IN THIS RUN EXCLUDING THOSE BEING CREATED DURING
4332 * THIS TIME STEP AND COUNT THE TOTAL NO. OF PARTICLES IN THIS RUN
4333 * note that the first mass=mta+mpr particles are baryons
4334 c write(*,*)'I: NNN,massr ', nnn,massr(irun)
4336 DO 1005 N=N0+1,MASSR(IRUN)+MSUM
4338 clin-2/19/03 lb>5000: keep particles with no LB codes in ART(photon,lepton,..):
4339 c IF(E(N).GT.0.)THEN
4340 IF(E(N) .GT. 0. .OR. LB(N) .GT. 5000)THEN
4343 RPION(1,NNN,IRUN)=R(1,N)
4344 RPION(2,NNN,IRUN)=R(2,N)
4345 RPION(3,NNN,IRUN)=R(3,N)
4347 if(nt.eq.ntmax) then
4348 ftpisv(NNN,IRUN)=ftsv(N)
4349 tfdpi(NNN,IRUN)=tfdcy(N)
4352 PPION(1,NNN,IRUN)=P(1,N)
4353 PPION(2,NNN,IRUN)=P(2,N)
4354 PPION(3,NNN,IRUN)=P(3,N)
4355 EPION(NNN,IRUN)=E(N)
4356 LPION(NNN,IRUN)=LB(N)
4358 PROPI(NNN,IRUN)=PROPER(N)
4360 dppion(NNN,IRUN)=dpertp(N)
4362 c & write(*,*)'IN-1 NT,NNN,LB,P ',nt,NNN,lb(n),proper(n)
4365 MASSRN(IRUN)=NNN+MASS
4366 c write(*,*)'F: NNN,massrn ', nnn,massrn(irun)
4368 * CALCULATE THE AVERAGE SRT FOR N + N--->N +DELTA PROCESSES
4369 C IF(NODELT.NE.0)THEN
4370 C AVSRT=SUMSRT/FLOAT(NODELT)
4374 C WRITE(1097,'(F8.2,2X,E10.3)')FLOAT(NT)*DT,AVSRT
4375 * RELABLE ALL THE PARTICLES EXISTING AFTER THIS TIME STEP
4380 IB=IB+MASSRN(IRUN-1)
4381 DO 10001 IC=1,MASSRN(IRUN)
4389 if(nt.eq.ntmax) then
4401 dptemp(IG)=dpertp(IE)
4404 RT(1,IG)=RPION(1,I0,IRUN)
4405 RT(2,IG)=RPION(2,I0,IRUN)
4406 RT(3,IG)=RPION(3,I0,IRUN)
4408 if(nt.eq.ntmax) then
4409 fttemp(IG)=ftpisv(I0,IRUN)
4410 tft(IG)=tfdpi(I0,IRUN)
4413 PT(1,IG)=PPION(1,I0,IRUN)
4414 PT(2,IG)=PPION(2,I0,IRUN)
4415 PT(3,IG)=PPION(3,I0,IRUN)
4416 ET(IG)=EPION(I0,IRUN)
4417 LT(IG)=LPION(I0,IRUN)
4418 PROT(IG)=PROPI(I0,IRUN)
4420 dptemp(IG)=dppion(I0,IRUN)
4426 c DO 10002 IRUN=1,NUM
4429 MASSR(IRUN)=MASSRN(IRUN)
4431 DO 10002 IM=1,MASSR(IRUN)
4437 if(nt.eq.ntmax) then
4448 dpertp(IN)=dptemp(IN)
4449 IF(LB(IN).LT.1.OR.LB(IN).GT.2)ID(IN)=0
4451 clin-ctest off check energy conservation after each timestep
4453 c do ip=1,MASSR(IRUN)
4454 c if(e(ip).ne.0.or.lb(ip).eq.10022) enetot=enetot
4455 c 1 +sqrt(p(1,ip)**2+p(2,ip)**2+p(3,ip)**2+e(ip)**2)
4457 c write(91,*) 'B:',nt,enetot,massr(irun),bimp
4458 clin-3/2009 move to the end of a timestep to take care of freezeout spacetime:
4459 c call hbtout(MASSR(IRUN),nt,ntmax)
4464 ****************************************
4465 SUBROUTINE CMS(I1,I2,PX1CM,PY1CM,PZ1CM,SRT)
4466 * PURPOSE : FIND THE MOMENTA OF PARTICLES IN THE CMS OF THE
4467 * TWO COLLIDING PARTICLES
4469 *****************************************
4470 PARAMETER (MAXSTR=150001)
4471 COMMON /AA/ R(3,MAXSTR)
4473 COMMON /BB/ P(3,MAXSTR)
4475 COMMON /CC/ E(MAXSTR)
4477 COMMON /BG/ BETAX,BETAY,BETAZ,GAMMA
4488 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
4489 E2=SQRT(EM2**2 + PX2**2 + PY2**2 + PZ2**2 )
4490 S=(E1+E2)**2-(PX1+PX2)**2-(PY1+PY2)**2-(PZ1+PZ2)**2
4492 *LORENTZ-TRANSFORMATION IN I1-I2-C.M. SYSTEM
4494 BETAX = (PX1+PX2) / ETOTAL
4495 BETAY = (PY1+PY2) / ETOTAL
4496 BETAZ = (PZ1+PZ2) / ETOTAL
4497 GAMMA = 1.0 / SQRT(1.0-BETAX**2-BETAY**2-BETAZ**2)
4498 *TRANSFORMATION OF MOMENTA (PX1CM = - PX2CM)
4499 P1BETA = PX1*BETAX + PY1*BETAY + PZ1 * BETAZ
4500 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) - E1 )
4501 PX1CM = BETAX * TRANSF + PX1
4502 PY1CM = BETAY * TRANSF + PY1
4503 PZ1CM = BETAZ * TRANSF + PZ1
4506 ***************************************
4507 SUBROUTINE DISTCE(I1,I2,DELTAR,DS,DT,EC,SRT
4508 1 ,IC,PX1CM,PY1CM,PZ1CM)
4509 * PURPOSE : CHECK IF THE COLLISION BETWEEN TWO PARTICLES CAN HAPPEN
4511 * (1) IF THE DISTANCE BETWEEN THEM IS SMALLER
4512 * THAN THE MAXIMUM DISTANCE DETERMINED FROM THE CROSS SECTION.
4513 * (2) IF PARTICLE WILL PASS EACH OTHER WITHIN
4514 * TWO HARD CORE RADIUS.
4515 * (3) IF PARTICLES WILL GET CLOSER.
4517 * IC=1 COLLISION HAPPENED
4518 * IC=-1 COLLISION CAN NOT HAPPEN
4519 *****************************************
4520 PARAMETER (MAXSTR=150001)
4521 COMMON /AA/ R(3,MAXSTR)
4523 COMMON /BB/ P(3,MAXSTR)
4525 COMMON /CC/ E(MAXSTR)
4527 COMMON /BG/ BETAX,BETAY,BETAZ,GAMMA
4528 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
4530 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
4531 1 px1n,py1n,pz1n,dp1n
4549 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
4550 c IF (ABS(X1-X2) .GT. DELTAR) GO TO 400
4551 c IF (ABS(Y1-Y2) .GT. DELTAR) GO TO 400
4552 c IF (ABS(Z1-Z2) .GT. DELTAR) GO TO 400
4553 RSQARE = (X1-X2)**2 + (Y1-Y2)**2 + (Z1-Z2)**2
4554 IF (RSQARE .GT. DELTAR**2) GO TO 400
4555 *NOW PARTICLES ARE CLOSE ENOUGH TO EACH OTHER !
4556 E2 = SQRT ( EM2**2 + PX2**2 + PY2**2 + PZ2**2 )
4558 IF (S .LT. EC) GO TO 400
4559 *NOW THERE IS ENOUGH ENERGY AVAILABLE !
4560 *LORENTZ-TRANSFORMATION IN I1-I2-C.M. SYSTEM
4561 * BETAX, BETAY, BETAZ AND GAMMA HAVE BEEN GIVEN IN THE SUBROUTINE CMS
4562 *TRANSFORMATION OF MOMENTA (PX1CM = - PX2CM)
4563 P1BETA = PX1*BETAX + PY1*BETAY + PZ1 * BETAZ
4564 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) - E1 )
4565 PRCM = SQRT (PX1CM**2 + PY1CM**2 + PZ1CM**2)
4566 IF (PRCM .LE. 0.00001) GO TO 400
4567 *TRANSFORMATION OF SPATIAL DISTANCE
4568 DRBETA = BETAX*(X1-X2) + BETAY*(Y1-Y2) + BETAZ*(Z1-Z2)
4569 TRANSF = GAMMA * GAMMA * DRBETA / (GAMMA + 1)
4570 DXCM = BETAX * TRANSF + X1 - X2
4571 DYCM = BETAY * TRANSF + Y1 - Y2
4572 DZCM = BETAZ * TRANSF + Z1 - Z2
4573 *DETERMINING IF THIS IS THE POINT OF CLOSEST APPROACH
4574 DRCM = SQRT (DXCM**2 + DYCM**2 + DZCM**2 )
4575 DZZ = (PX1CM*DXCM + PY1CM*DYCM + PZ1CM*DZCM) / PRCM
4576 if ((drcm**2 - dzz**2) .le. 0.) then
4579 BBB = SQRT (DRCM**2 - DZZ**2)
4581 *WILL PARTICLE PASS EACH OTHER WITHIN 2 * HARD CORE RADIUS ?
4582 IF (BBB .GT. DS) GO TO 400
4583 RELVEL = PRCM * (1.0/E1 + 1.0/E2)
4584 DDD = RELVEL * DT * 0.5
4585 *WILL PARTICLES GET CLOSER ?
4586 IF (ABS(DDD) .LT. ABS(DZZ)) GO TO 400
4593 ****************************************
4596 SUBROUTINE CRNN(IRUN,PX,PY,PZ,SRT,I1,I2,IBLOCK,
4597 1NTAG,SIGNN,SIG,NT,ipert1)
4599 * DEALING WITH NUCLEON-NUCLEON COLLISIONS *
4602 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
4604 * NSTAR =1 INCLUDING N* RESORANCE,ELSE NOT *
4605 * NDIRCT=1 INCLUDING DIRECT PION PRODUCTION PROCESS *
4606 * IBLOCK - THE INFORMATION BACK *
4607 * 0-> COLLISION CANNOT HAPPEN *
4608 * 1-> N-N ELASTIC COLLISION *
4609 * 2-> N+N->N+DELTA,OR N+N->N+N* REACTION *
4610 * 3-> N+DELTA->N+N OR N+N*->N+N REACTION *
4611 * 4-> N+N->D+D+pion reaction
4612 * 43->N+N->D(N*)+D(N*) reaction
4613 * 44->N+N->D+D+rho reaction
4615 * 46->N+N->N+N+omega
4616 * N12 - IS USED TO SPECIFY BARYON-BARYON REACTION *
4617 * CHANNELS. M12 IS THE REVERSAL CHANNEL OF N12 *
4619 * M12=1 FOR p+n-->delta(+)+ n *
4620 * 2 p+n-->delta(0)+ p *
4621 * 3 p+p-->delta(++)+n *
4622 * 4 p+p-->delta(+)+p *
4623 * 5 n+n-->delta(0)+n *
4624 * 6 n+n-->delta(-)+p *
4625 * 7 n+p-->N*(0)(1440)+p *
4626 * 8 n+p-->N*(+)(1440)+n *
4627 * 9 p+p-->N*(+)(1535)+p *
4628 * 10 n+n-->N*(0)(1535)+n *
4629 * 11 n+p-->N*(+)(1535)+n *
4630 * 12 n+p-->N*(0)(1535)+p
4631 * 13 D(++)+D(-)-->N*(+)(1440)+n
4632 * 14 D(++)+D(-)-->N*(0)(1440)+p
4633 * 15 D(+)+D(0)--->N*(+)(1440)+n
4634 * 16 D(+)+D(0)--->N*(0)(1440)+p
4635 * 17 D(++)+D(0)-->N*(+)(1535)+p
4636 * 18 D(++)+D(-)-->N*(0)(1535)+p
4637 * 19 D(++)+D(-)-->N*(+)(1535)+n
4638 * 20 D(+)+D(+)-->N*(+)(1535)+p
4639 * 21 D(+)+D(0)-->N*(+)(1535)+n
4640 * 22 D(+)+D(0)-->N*(0)(1535)+p
4641 * 23 D(+)+D(-)-->N*(0)(1535)+n
4642 * 24 D(0)+D(0)-->N*(0)(1535)+n
4643 * 25 N*(+)(14)+N*(+)(14)-->N*(+)(15)+p
4644 * 26 N*(0)(14)+N*(0)(14)-->N*(0)(15)+n
4645 * 27 N*(+)(14)+N*(0)(14)-->N*(+)(15)+n
4646 * 28 N*(+)(14)+N*(0)(14)-->N*(0)(15)+p
4647 * 29 N*(+)(14)+D+-->N*(+)(15)+p
4648 * 30 N*(+)(14)+D0-->N*(+)(15)+n
4649 * 31 N*(+)(14)+D(-)-->N*(0)(1535)+n
4650 * 32 N*(0)(14)+D++--->N*(+)(15)+p
4651 * 33 N*(0)(14)+D+--->N*(+)(15)+n
4652 * 34 N*(0)(14)+D+--->N*(0)(15)+p
4653 * 35 N*(0)(14)+D0-->N*(0)(15)+n
4654 * 36 N*(+)(14)+D0--->N*(0)(15)+p
4655 * ++ see the note book for more listing
4658 * NOTE ABOUT N*(1440) RESORANCE IN Nucleon+NUCLEON COLLISION: *
4659 * As it has been discussed in VerWest's paper,I= 1(initial isospin)*
4660 * channel can all be attributed to delta resorance while I= 0 *
4661 * channel can all be attribured to N* resorance.Only in n+p *
4662 * one can have I=0 channel so is the N*(1440) resonance *
4665 * J. CUGNON ET AL., NUCL. PHYS. A352, 505 (1981) *
4666 * Y. KITAZOE ET AL., PHYS. LETT. 166B, 35 (1986) *
4667 * B. VerWest el al., PHYS. PRV. C25 (1982)1979 *
4668 * Gy. Wolf et al, Nucl Phys A517 (1990) 615; *
4669 * Nucl phys A552 (1993) 349. *
4670 **********************************
4671 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
4672 1 AMP=0.93828,AP1=0.13496,aka=0.498,AP2=0.13957,AM0=1.232,
4673 2 PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383,APHI=1.020)
4674 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
4675 parameter (xmd=1.8756,npdmax=10000)
4676 COMMON /AA/ R(3,MAXSTR)
4678 COMMON /BB/ P(3,MAXSTR)
4680 COMMON /CC/ E(MAXSTR)
4682 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
4684 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
4686 common /gg/ dx,dy,dz,dpx,dpy,dpz
4688 COMMON /INPUT/ NSTAR,NDIRCT,DIR
4692 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
4696 COMMON /PA/RPION(3,MAXSTR,MAXR)
4698 COMMON /PB/PPION(3,MAXSTR,MAXR)
4700 COMMON /PC/EPION(MAXSTR,MAXR)
4702 COMMON /PD/LPION(MAXSTR,MAXR)
4704 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
4706 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
4708 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
4709 1 px1n,py1n,pz1n,dp1n
4714 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
4715 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
4716 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
4717 common /para8/ idpert,npertd,idxsec
4718 dimension ppd(3,npdmax),lbpd(npdmax)
4720 *-----------------------------------------------------------------------
4727 PR=SQRT( PX**2 + PY**2 + PZ**2 )
4731 if(lb(i1).lt.0 .and. lb(i2).lt.0) ianti=1
4732 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
4733 clin-5/2008 Production of perturbative deuterons for idpert=1:
4734 if(idpert.eq.1.and.ipert1.eq.1) then
4735 IF (SRT .LT. 2.012) RETURN
4736 if((iabs(lb(i1)).eq.1.or.iabs(lb(i1)).eq.2)
4737 1 .and.(iabs(lb(i2)).eq.1.or.iabs(lb(i2)).eq.2)) then
4744 *-----------------------------------------------------------------------
4745 *COM: TEST FOR ELASTIC SCATTERING (EITHER N-N OR DELTA-DELTA 0R
4746 * N-DELTA OR N*-N* or N*-Delta)
4747 c IF (X1 .LE. SIGNN/SIG) THEN
4748 IF (X1.LE.(SIGNN/SIG)) THEN
4749 *COM: PARAMETRISATION IS TAKEN FROM THE CUGNON-PAPER
4750 AS = ( 3.65 * (SRT - 1.8766) )**6
4751 A = 6.0 * AS / (1.0 + AS)
4754 clin-10/24/02 T1 = DLOG( (1-X) * DEXP(dble(A)*dble(TA)) + X ) / A
4755 T1 = sngl(DLOG(dble(1.-X)*DEXP(dble(A)*dble(TA))+dble(X)))/ A
4757 T1 = 2.0 * PI * RANART(NSEED)
4761 *COM: TEST FOR INELASTIC SCATTERING
4762 * IF THE AVAILABLE ENERGY IS LESS THAN THE PION-MASS, NOTHING
4763 * CAN HAPPEN ANY MORE ==> RETURN (2.012 = 2*AVMASS + PI-MASS)
4764 clin-5/2008: Mdeuteron+Mpi=2.0106 to 2.0152 GeV/c2, so we can still use this:
4765 IF (SRT .LT. 2.012) RETURN
4766 * calculate the N*(1535) production cross section in N+N collisions
4767 * note that the cross sections in this subroutine are in units of mb
4768 * as only ratios of the cross sections are used to determine the
4770 call N1535(iabs(lb(i1)),iabs(lb(i2)),srt,x1535)
4771 *COM: HERE WE HAVE A PROCESS N+N ==> N+DELTA,OR N+N==>N+N*(144) or N*(1535)
4773 * 3 pi channel : N+N==>d1+d2+PION
4774 SIG3=3.*(X3pi(SRT)+x33pi(srt))
4775 * 2 pi channel : N+N==>d1+d2+d1*n*+n*n*
4777 * 4 pi channel : N+N==>d1+d2+rho
4779 * N+N-->NN+rho channel
4783 * CROSS SECTION FOR KAON PRODUCTION from the four channels
4797 if(srt.le.t1nlk)go to 222
4802 if(srt.le.t1dlk)go to 222
4804 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
4810 if(srt.le.t1nsk)go to 222
4811 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
4813 XSK2=1.5*(PPK1(srt)+PPK0(srt))
4817 if(srt.le.t1dsk)go to 222
4818 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
4820 XSK4=1.5*(PPK1(srt)+PPK0(srt))
4823 if(srt.le.(2.*amn+aphi))go to 222
4824 c !! mb put the correct form
4828 * THE TOTAL KAON+ PRODUCTION CROSS SECTION IS THEN
4829 222 SIGK=XSK1+XSK2+XSK3+XSK4
4836 SIGK = 2.0 * SIGK + xsk5
4837 cbz3/7/99 neutralk end
4839 ** FOR P+P or L/S+L/S COLLISION:
4844 IF((LB(I1)*LB(I2).EQ.1).or.
4845 & ((lb1.le.17.and.lb1.ge.14).and.(lb2.le.17.and.lb2.ge.14)).
4846 & or.((lb1.le.2).and.(lb2.le.17.and.lb2.ge.14)).
4847 & or.((lb2.le.2).and.(lb1.le.17.and.lb1.ge.14)))THEN
4848 clin-8/2008 PP->d+meson here:
4849 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
4850 SIG1=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
4851 SIG2=1.5*SIGMA(SRT,1,1,1)
4852 SIGND=SIG1+SIG2+SIG3+SIG4+X1535+SIGK+s4pi+srho+somega
4854 c IF (X1.GT.(SIGNN+SIGND)/SIG)RETURN
4855 IF (X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
4857 IF(RANART(NSEED).LE.DIR)GO TO 106
4858 IF(RANART(NSEED).LE.SIGK/(SIGK+X1535+SIG4+SIG2+SIG1
4859 & +s4pi+srho+somega))GO TO 306
4860 if(RANART(NSEED).le.s4pi/(x1535+sig4+sig2+sig1
4861 & +s4pi+srho+somega))go to 307
4862 if(RANART(NSEED).le.srho/(x1535+sig4+sig2+sig1
4863 & +srho+somega))go to 308
4864 if(RANART(NSEED).le.somega/(x1535+sig4+sig2+sig1
4865 & +somega))go to 309
4866 if(RANART(NSEED).le.x1535/(sig1+sig2+sig4+x1535))then
4867 * N*(1535) production
4870 IF(RANART(NSEED).LE.SIG4/(SIG1+sig2+sig4))THEN
4871 * DOUBLE DELTA PRODUCTION
4877 IF (RANART(NSEED).GT.SIG1/(SIG1+SIG2))N12=4
4882 ** FOR N+N COLLISION:
4883 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
4884 clin-8/2008 NN->d+meson here:
4885 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
4886 SIG1=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
4887 SIG2=1.5*SIGMA(SRT,1,1,1)
4888 SIGND=SIG1+SIG2+X1535+SIG3+SIG4+SIGK+s4pi+srho+somega
4890 c IF (X1.GT.(SIGNN+SIGND)/SIG)RETURN
4891 IF (X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
4893 IF(RANART(NSEED).LE.DIR)GO TO 106
4894 IF(RANART(NSEED).LE.SIGK/(SIGK+X1535+SIG4+SIG2+SIG1
4895 & +s4pi+srho+somega))GO TO 306
4896 if(RANART(NSEED).le.s4pi/(x1535+sig4+sig2+sig1
4897 & +s4pi+srho+somega))go to 307
4898 if(RANART(NSEED).le.srho/(x1535+sig4+sig2+sig1
4899 & +srho+somega))go to 308
4900 if(RANART(NSEED).le.somega/(x1535+sig4+sig2+sig1
4901 & +somega))go to 309
4902 IF(RANART(NSEED).LE.X1535/(x1535+sig1+sig2+sig4))THEN
4903 * N*(1535) PRODUCTION
4906 if(RANART(NSEED).le.sig4/(sig1+sig2+sig4))then
4907 * double delta production
4913 IF (RANART(NSEED).GT.SIG1/(SIG1+SIG2))N12=5
4918 ** FOR N+P COLLISION
4919 IF(LB(I1)*LB(I2).EQ.2)THEN
4920 clin-5/2008 NP->d+meson here:
4921 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
4922 SIG1=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
4924 SIG2=(3./4.)*SIGMA(SRT,2,0,1)
4928 SIGND=2.*(SIG1+SIG2+X1535)+sig3+sig4+SIGK+s4pi+srho+somega
4930 c IF (X1.GT.(SIGNN+SIGND)/SIG)RETURN
4931 IF (X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
4933 IF(RANART(NSEED).LE.DIR)GO TO 106
4934 IF(RANART(NSEED).LE.SIGK/(SIGND-SIG3))GO TO 306
4935 if(RANART(NSEED).le.s4pi/(signd-sig3-sigk))go to 307
4936 if(RANART(NSEED).le.srho/(signd-sig3-sigk-s4pi))go to 308
4937 if(RANART(NSEED).le.somega/(signd-sig3-sigk-s4pi-srho))
4939 IF(RANART(NSEED).LT.X1535/(SIG1+SIG2+X1535+0.5*sig4))THEN
4940 * N*(1535) PRODUCTION
4942 IF(RANART(NSEED).LE.0.5)N12=12
4944 if(RANART(NSEED).le.sig4/(sig4+2.*(sig1+sig2)))then
4945 * double resonance production
4949 IF(RANART(NSEED).LE.SIG1/(SIG1+SIG2))THEN
4952 IF(RANART(NSEED).GE.0.5)N12=1
4954 * N*(1440) PRODUCTION
4956 IF(RANART(NSEED).GE.0.5)N12=7
4963 *PARAMETRIZATION OF THE SHAPE OF THE DELTA RESONANCE ACCORDING
4964 * TO kitazoe's or J.D.JACKSON'S MASS FORMULA AND BREIT WIGNER
4965 * FORMULA FOR N* RESORANCE
4966 * DETERMINE DELTA MASS VIA REJECTION METHOD.
4967 DMAX = SRT - AVMASS-0.005
4968 DMAX = SRT - AVMASS-0.005
4971 * Delta(1232) production
4972 IF(DMAX.LT.1.232) THEN
4976 clin-10/25/02 get rid of argument usage mismatch in FDE():
4978 c FM=FDE(1.232,SRT,1.)
4979 FM=FDE(xdmass,SRT,1.)
4983 IF(FM.EQ.0.)FM=1.E-09
4985 10 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
4987 IF((RANART(NSEED) .GT. FDE(DM,SRT,1.)/FM).AND.
4988 1 (NTRY1.LE.30)) GOTO 10
4990 clin-2/26/03 limit the Delta mass below a certain value
4991 c (here taken as its central value + 2* B-W fullwidth):
4992 if(dm.gt.1.47) goto 10
4996 IF((n12.eq.7).or.(n12.eq.8))THEN
4997 * N*(1440) production
4998 IF(DMAX.LT.1.44) THEN
5002 clin-10/25/02 get rid of argument usage mismatch in FNS():
5004 c FM=FNS(1.44,SRT,1.)
5005 FM=FNS(xdmass,SRT,1.)
5009 IF(FM.EQ.0.)FM=1.E-09
5011 11 DM=RANART(NSEED)*(DMAX-DMIN)+DMIN
5013 IF((RANART(NSEED).GT.FNS(DM,SRT,1.)/FM).AND.
5014 1 (NTRY2.LE.10)) GO TO 11
5016 clin-2/26/03 limit the N* mass below a certain value
5017 c (here taken as its central value + 2* B-W fullwidth):
5018 if(dm.gt.2.14) goto 11
5023 * N*(1535) production
5024 IF(DMAX.LT.1.535) THEN
5028 clin-10/25/02 get rid of argument usage mismatch in FNS():
5030 c FM=FD5(1.535,SRT,1.)
5031 FM=FD5(xdmass,SRT,1.)
5035 IF(FM.EQ.0.)FM=1.E-09
5037 12 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
5039 IF((RANART(NSEED) .GT. FD5(DM,SRT,1.)/FM).AND.
5040 1 (NTRY1.LE.10)) GOTO 12
5042 clin-2/26/03 limit the N* mass below a certain value
5043 c (here taken as its central value + 2* B-W fullwidth):
5044 if(dm.gt.1.84) goto 12
5048 * CALCULATE THE MASSES OF BARYON RESONANCES IN THE DOUBLE RESONANCE
5049 * PRODUCTION PROCESS AND RELABLE THE PARTICLES
5051 call Rmasdd(srt,1.232,1.232,1.08,
5052 & 1.08,ISEED,1,dm1,dm2)
5053 call Rmasdd(srt,1.232,1.44,1.08,
5054 & 1.08,ISEED,3,dm1n,dm2n)
5056 *(1) PP-->DOUBLE RESONANCES
5057 * DETERMINE THE FINAL STATE
5058 XFINAL=RANART(NSEED)
5059 IF(XFINAL.LE.0.25)THEN
5066 * go to 200 to set the new momentum
5068 IF((XFINAL.gt.0.25).and.(xfinal.le.0.5))THEN
5075 * go to 200 to set the new momentum
5077 IF((XFINAL.gt.0.5).and.(xfinal.le.0.75))THEN
5084 * go to 200 to set the new momentum
5086 IF(XFINAL.gt.0.75)then
5093 * go to 200 to set the new momentum
5097 call Rmasdd(srt,1.232,1.232,1.08,
5098 & 1.08,ISEED,1,dm1,dm2)
5099 call Rmasdd(srt,1.232,1.44,1.08,
5100 & 1.08,ISEED,3,dm1n,dm2n)
5102 *(2) NN-->DOUBLE RESONANCES
5103 * DETERMINE THE FINAL STATE
5104 XFINAL=RANART(NSEED)
5105 IF(XFINAL.LE.0.25)THEN
5112 * go to 200 to set the new momentum
5114 IF((XFINAL.gt.0.25).and.(xfinal.le.0.5))THEN
5121 * go to 200 to set the new momentum
5123 IF((XFINAL.gt.0.5).and.(xfinal.le.0.75))THEN
5130 * go to 200 to set the new momentum
5132 IF(XFINAL.gt.0.75)then
5139 * go to 200 to set the new momentum
5143 call Rmasdd(srt,1.232,1.232,1.08,
5144 & 1.08,ISEED,1,dm1,dm2)
5145 call Rmasdd(srt,1.232,1.44,1.08,
5146 & 1.08,ISEED,3,dm1n,dm2n)
5148 *(3) NP-->DOUBLE RESONANCES
5149 * DETERMINE THE FINAL STATE
5150 XFINAL=RANART(NSEED)
5151 IF(XFINAL.LE.0.25)THEN
5158 * go to 200 to set the new momentum
5160 IF((XFINAL.gt.0.25).and.(xfinal.le.0.5))THEN
5167 * go to 200 to set the new momentum
5169 IF((XFINAL.gt.0.5).and.(xfinal.le.0.75))THEN
5176 * go to 200 to set the new momentum
5178 IF(XFINAL.gt.0.75)then
5185 * go to 200 to set the new momentum
5189 *-------------------------------------------------------
5190 * RELABLE BARYON I1 AND I2
5191 *1. p+n-->delta(+)+n
5193 IF(iabs(LB(I1)).EQ.1)THEN
5206 IF(iabs(LB(I1)).EQ.2)THEN
5217 *3 p+p-->delta(++)+n
5232 *5 n+n--> delta(0)+n
5239 *6 n+n--> delta(-)+p
5249 IF(iabs(LB(I1)).EQ.1)THEN
5262 IF(iabs(LB(I1)).EQ.1)THEN
5273 *9 p+p--> N*(+)(1535)+p
5275 IF(RANART(NSEED).le.0.5)THEN
5286 *10 n+n--> N*(0)(1535)+n
5288 IF(RANART(NSEED).le.0.5)THEN
5299 *11 n+p--> N*(+)(1535)+n
5301 IF(iabs(LB(I1)).EQ.2)THEN
5312 *12 n+p--> N*(0)(1535)+p
5314 IF(iabs(LB(I1)).EQ.1)THEN
5325 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
5326 * ENERGY CONSERVATION
5329 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
5330 1 - 4.0 * (EM1*EM2)**2
5331 IF(PR2.LE.0.)PR2=1.e-09
5332 PR=SQRT(PR2)/(2.*SRT)
5333 if(srt.le.2.14)C1= 1.0 - 2.0 * RANART(NSEED)
5334 if(srt.gt.2.14.and.srt.le.2.4)c1=anga(srt,iseed)
5337 clin-10/25/02 get rid of argument usage mismatch in PTR():
5339 c cc1=ptr(0.33*pr,iseed)
5343 c1=sqrt(pr**2-cc1**2)/pr
5345 T1 = 2.0 * PI * RANART(NSEED)
5346 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
5351 *FOR THE NN-->D1+D2+PI PROCESS, FIND MOMENTUM OF THE FINAL TWO
5352 *DELTAS AND PION IN THE NUCLEUS-NUCLEUS CMS.
5355 123 CALL DDP2(SRT,ISEED,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
5356 & PPX,PPY,PPZ,icou1)
5358 if((icou1.lt.0).AND.(NTRY1.LE.40))GO TO 123
5359 C if(icou1.lt.0)return
5360 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
5361 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
5362 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
5363 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
5365 * DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
5368 IF(LB(I1)*LB(I2).EQ.1)THEN
5370 * (1.1)P+P-->D+++D0+PION(0)
5377 * (1.2)P+P -->D++D+PION(0)
5378 IF((XDIR.LE.0.4).AND.(XDIR.GT.0.2))THEN
5385 * (1.3)P+P-->D+++D+PION(-)
5386 IF((XDIR.LE.0.6).AND.(XDIR.GT.0.4))THEN
5393 IF((XDIR.LE.0.8).AND.(XDIR.GT.0.6))THEN
5409 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
5411 * (2.1)N+N-->D++D-+PION(0)
5418 * (2.2)N+N -->D+++D-+PION(-)
5419 IF((XDIR.LE.0.4).AND.(XDIR.GT.0.2))THEN
5426 * (2.3)P+P-->D0+D-+PION(+)
5427 IF((XDIR.GT.0.4).AND.(XDIR.LE.0.6))THEN
5434 * (2.4)P+P-->D0+D0+PION(0)
5435 IF((XDIR.GT.0.6).AND.(XDIR.LE.0.8))THEN
5442 * (2.5)P+P-->D0+D++PION(-)
5452 IF(LB(I1)*LB(I2).EQ.2)THEN
5453 IF(XDIR.Le.0.17)then
5454 * (3.1)N+P-->D+++D-+PION(0)
5461 * (3.2)N+P -->D+++D0+PION(-)
5462 IF((XDIR.LE.0.34).AND.(XDIR.GT.0.17))THEN
5469 * (3.3)N+P-->D++D-+PION(+)
5470 IF((XDIR.GT.0.34).AND.(XDIR.LE.0.51))THEN
5477 * (3.4)N+P-->D++D++PION(-)
5478 IF((XDIR.GT.0.51).AND.(XDIR.LE.0.68))THEN
5485 * (3.5)N+P-->D0+D++PION(0)
5486 IF((XDIR.GT.0.68).AND.(XDIR.LE.0.85))THEN
5493 * (3.6)N+P-->D0+D0+PION(+)
5494 IF(XDIR.GT.0.85)THEN
5501 * FIND THE MOMENTUM OF PARTICLES IN THE FINAL STATE IN THE NUCLEUS-
5502 * NUCLEUS CMS. FRAME
5503 * LORENTZ-TRANSFORMATION INTO LAB FRAME FOR DELTA1
5504 205 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
5505 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
5506 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
5507 Pt1i1 = BETAX * TRANSF + PX3
5508 Pt2i1 = BETAY * TRANSF + PY3
5509 Pt3i1 = BETAZ * TRANSF + PZ3
5512 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
5515 if(LPION(NNN,IRUN) .eq. 3)then
5517 elseif(LPION(NNN,IRUN) .eq. 5)then
5524 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
5525 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
5526 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
5527 Pt1I2 = BETAX * TRANSF + PX4
5528 Pt2I2 = BETAY * TRANSF + PY4
5529 Pt3I2 = BETAZ * TRANSF + PZ4
5532 * assign delta1 and delta2 to i1 or i2 to keep the leadng particle
5534 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
5553 * GET PION'S MOMENTUM AND COORDINATES IN NUCLEUS-NUCLEUS CMS. FRAME
5554 EPCM=SQRT(EPION(NNN,IRUN)**2+PPX**2+PPY**2+PPZ**2)
5555 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
5556 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
5557 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
5558 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
5559 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
5561 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
5562 clin-5/2008 do not allow smearing in position of produced particles
5563 c to avoid immediate reinteraction with the particle I1, I2 or themselves:
5564 c2002 X01 = 1.0 - 2.0 * RANART(NSEED)
5565 c Y01 = 1.0 - 2.0 * RANART(NSEED)
5566 c Z01 = 1.0 - 2.0 * RANART(NSEED)
5567 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2002
5568 c RPION(1,NNN,IRUN)=R(1,I1)+0.5*x01
5569 c RPION(2,NNN,IRUN)=R(2,I1)+0.5*y01
5570 c RPION(3,NNN,IRUN)=R(3,I1)+0.5*z01
5571 RPION(1,NNN,IRUN)=R(1,I1)
5572 RPION(2,NNN,IRUN)=R(2,I1)
5573 RPION(3,NNN,IRUN)=R(3,I1)
5576 clin-5/2008 N+N->Deuteron+pi:
5577 * FIND MOMENTUM OF THE FINAL PARTICLES IN THE NUCLEUS-NUCLEUS CMS.
5579 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
5580 c For idpert=1: we produce npertd pert deuterons:
5582 elseif(idpert.eq.2.and.npertd.ge.1) then
5583 c For idpert=2: we first save information for npertd pert deuterons;
5584 c at the last ndloop we create the regular deuteron+pi
5585 c and those pert deuterons:
5588 c Just create the regular deuteron+pi:
5592 dprob1=sdprod/sig/float(npertd)
5594 CALL bbdangle(pxd,pyd,pzd,nt,ipert1,ianti,idloop,pfinal,
5596 CALL ROTATE(PX,PY,PZ,PXd,PYd,PZd)
5597 * LORENTZ-TRANSFORMATION OF THE MOMENTUM OF PARTICLES IN THE FINAL STATE
5598 * FROM THE NN CMS FRAME INTO THE GLOBAL CMS FRAME:
5601 E1dCM=SQRT(xmass**2+PXd**2+PYd**2+PZd**2)
5602 P1dBETA=PXd*BETAX+PYd*BETAY+PZd*BETAZ
5603 TRANSF=GAMMA*(GAMMA*P1dBETA/(GAMMA+1.)+E1dCM)
5604 pxi1=BETAX*TRANSF+PXd
5605 pyi1=BETAY*TRANSF+PYd
5606 pzi1=BETAZ*TRANSF+PZd
5612 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
5613 cccc Perturbative production for idpert=1:
5615 PPION(1,NNN,IRUN)=pxi1
5616 PPION(2,NNN,IRUN)=pyi1
5617 PPION(3,NNN,IRUN)=pzi1
5620 RPION(1,NNN,IRUN)=R(1,I1)
5621 RPION(2,NNN,IRUN)=R(2,I1)
5622 RPION(3,NNN,IRUN)=R(3,I1)
5623 clin-5/2008 assign the perturbative probability:
5624 dppion(NNN,IRUN)=sdprod/sig/float(npertd)
5625 elseif(idpert.eq.2.and.idloop.le.npertd) then
5626 clin-5/2008 For idpert=2, we produce NPERTD perturbative (anti)deuterons
5627 c only when a regular (anti)deuteron+pi is produced in NN collisions.
5628 c First save the info for the perturbative deuterons:
5634 cccc Regular production:
5635 c For the regular pion: do LORENTZ-TRANSFORMATION:
5637 E2piCM=SQRT(xmm**2+PXd**2+PYd**2+PZd**2)
5638 P2piBETA=-PXd*BETAX-PYd*BETAY-PZd*BETAZ
5639 TRANSF=GAMMA*(GAMMA*P2piBETA/(GAMMA+1.)+E2piCM)
5640 pxi2=BETAX*TRANSF-PXd
5641 pyi2=BETAY*TRANSF-PYd
5642 pzi2=BETAZ*TRANSF-PZd
5646 c Remove regular pion to check the equivalence
5647 c between the perturbative and regular deuteron results:
5657 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
5659 c For the regular deuteron:
5668 c For idpert=2: create the perturbative deuterons:
5669 if(idpert.eq.2.and.idloop.eq.ndloop) then
5672 PPION(1,NNN,IRUN)=ppd(1,ipertd)
5673 PPION(2,NNN,IRUN)=ppd(2,ipertd)
5674 PPION(3,NNN,IRUN)=ppd(3,ipertd)
5676 LPION(NNN,IRUN)=lbpd(ipertd)
5677 RPION(1,NNN,IRUN)=R(1,I1)
5678 RPION(2,NNN,IRUN)=R(2,I1)
5679 RPION(3,NNN,IRUN)=R(3,I1)
5680 clin-5/2008 assign the perturbative probability:
5681 dppion(NNN,IRUN)=1./float(npertd)
5688 clin-5/2008 N+N->Deuteron+pi over
5689 * FOR THE NN-->KAON+X PROCESS, FIND MOMENTUM OF THE FINAL PARTICLES IN
5690 * THE NUCLEUS-NUCLEUS CMS.
5692 csp11/21/01 phi production
5693 if(XSK5/sigK.gt.RANART(NSEED))then
5696 LB(I1) = 1 + int(2 * RANART(NSEED))
5697 LB(I2) = 1 + int(2 * RANART(NSEED))
5700 EPION(NNN,IRUN)=APHI
5706 if(ianti .eq. 1)iblock=-9
5710 * DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
5715 * only lambda production is possible
5716 * (1.1)P+P-->p+L+kaon+
5718 LB(I1) = 1 + int(2 * RANART(NSEED))
5722 if(srt.le.2.74.and.srt.gt.2.63)then
5723 * both Lambda and sigma production are possible
5724 if(XSK1/(XSK1+XSK2).gt.RANART(NSEED))then
5727 LB(I1) = 1 + int(2 * RANART(NSEED))
5731 LB(I1) = 1 + int(2 * RANART(NSEED))
5732 LB(I2) = 15 + int(3 * RANART(NSEED))
5737 if(srt.le.2.77.and.srt.gt.2.74)then
5738 * then pp-->Delta lamda kaon can happen
5739 if(xsk1/(xsk1+xsk2+xsk3).
5740 1 gt.RANART(NSEED))then
5741 * * (1.1)P+P-->p+L+kaon+
5743 LB(I1) = 1 + int(2 * RANART(NSEED))
5747 if(xsk2/(xsk2+xsk3).gt.RANART(NSEED))then
5750 LB(I1) = 1 + int(2 * RANART(NSEED))
5751 LB(I2) = 15 + int(3 * RANART(NSEED))
5755 LB(I1) = 6 + int(4 * RANART(NSEED))
5762 * all four channels are possible
5763 if(xsk1/(xsk1+xsk2+xsk3+xsk4).gt.RANART(NSEED))then
5764 * p lambda k production
5766 LB(I1) = 1 + int(2 * RANART(NSEED))
5770 if(xsk3/(xsk2+xsk3+xsk4).gt.RANART(NSEED))then
5771 * delta l K production
5773 LB(I1) = 6 + int(4 * RANART(NSEED))
5777 if(xsk2/(xsk2+xsk4).gt.RANART(NSEED))then
5778 * n sigma k production
5779 LB(I1) = 1 + int(2 * RANART(NSEED))
5780 LB(I2) = 15 + int(3 * RANART(NSEED))
5784 LB(I1) = 6 + int(4 * RANART(NSEED))
5785 LB(I2) = 15 + int(3 * RANART(NSEED))
5792 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
5795 if(LPION(NNN,IRUN) .eq. 23)LPION(NNN,IRUN)=21
5797 * KEEP ALL COORDINATES OF PARTICLE 2 FOR POSSIBLE PHASE SPACE CHANGE
5799 127 CALL BBKAON(ic,SRT,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
5800 & PPX,PPY,PPZ,icou1)
5802 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 127
5803 c if(icou1.lt.0)return
5804 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
5805 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
5806 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
5807 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
5808 * FIND THE MOMENTUM OF PARTICLES IN THE FINAL STATE IN THE NUCLEUS-
5809 * NUCLEUS CMS. FRAME
5810 * (1) for the necleon/delta
5811 * LORENTZ-TRANSFORMATION INTO LAB FRAME FOR DELTA1
5812 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
5813 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
5814 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
5815 Pt1i1 = BETAX * TRANSF + PX3
5816 Pt2i1 = BETAY * TRANSF + PY3
5817 Pt3i1 = BETAZ * TRANSF + PZ3
5820 * (2) for the lambda/sigma
5821 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
5822 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
5823 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
5824 Pt1I2 = BETAX * TRANSF + PX4
5825 Pt2I2 = BETAY * TRANSF + PY4
5826 Pt3I2 = BETAZ * TRANSF + PZ4
5829 * GET the kaon'S MOMENTUM AND COORDINATES IN NUCLEUS-NUCLEUS CMS. FRAME
5830 EPCM=SQRT(aka**2+PPX**2+PPY**2+PPZ**2)
5831 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
5832 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
5833 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
5834 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
5835 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
5837 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
5839 c2003 X01 = 1.0 - 2.0 * RANART(NSEED)
5840 c Y01 = 1.0 - 2.0 * RANART(NSEED)
5841 c Z01 = 1.0 - 2.0 * RANART(NSEED)
5842 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2003
5843 c RPION(1,NNN,IRUN)=R(1,I1)+0.5*x01
5844 c RPION(2,NNN,IRUN)=R(2,I1)+0.5*y01
5845 c RPION(3,NNN,IRUN)=R(3,I1)+0.5*z01
5846 RPION(1,NNN,IRUN)=R(1,I1)
5847 RPION(2,NNN,IRUN)=R(2,I1)
5848 RPION(3,NNN,IRUN)=R(3,I1)
5850 * assign the nucleon/delta and lambda/sigma to i1 or i2 to keep the
5851 * leadng particle behaviour
5852 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
5871 * FOR THE NN-->Delta+Delta+rho PROCESS, FIND MOMENTUM OF THE FINAL
5872 * PARTICLES IN THE NUCLEUS-NUCLEUS CMS.
5875 125 CALL DDrho(SRT,ISEED,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
5876 & PPX,PPY,PPZ,amrho,icou1)
5878 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 125
5879 C if(icou1.lt.0)return
5880 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
5881 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
5882 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
5883 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
5886 * DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
5889 IF(LB(I1)*LB(I2).EQ.1)THEN
5891 * (1.1)P+P-->D+++D0+rho(0)
5893 EPION(NNN,IRUN)=Arho
5898 * (1.2)P+P -->D++D+rho(0)
5899 IF((XDIR.LE.0.4).AND.(XDIR.GT.0.2))THEN
5901 EPION(NNN,IRUN)=Arho
5906 * (1.3)P+P-->D+++D+arho(-)
5907 IF((XDIR.LE.0.6).AND.(XDIR.GT.0.4))THEN
5909 EPION(NNN,IRUN)=Arho
5914 IF((XDIR.LE.0.8).AND.(XDIR.GT.0.6))THEN
5916 EPION(NNN,IRUN)=Arho
5923 EPION(NNN,IRUN)=Arho
5930 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
5932 * (2.1)N+N-->D++D-+rho(0)
5934 EPION(NNN,IRUN)=Arho
5939 * (2.2)N+N -->D+++D-+rho(-)
5940 IF((XDIR.LE.0.4).AND.(XDIR.GT.0.2))THEN
5942 EPION(NNN,IRUN)=Arho
5947 * (2.3)P+P-->D0+D-+rho(+)
5948 IF((XDIR.GT.0.4).AND.(XDIR.LE.0.6))THEN
5950 EPION(NNN,IRUN)=Arho
5955 * (2.4)P+P-->D0+D0+rho(0)
5956 IF((XDIR.GT.0.6).AND.(XDIR.LE.0.8))THEN
5958 EPION(NNN,IRUN)=Arho
5963 * (2.5)P+P-->D0+D++rho(-)
5966 EPION(NNN,IRUN)=Arho
5973 IF(LB(I1)*LB(I2).EQ.2)THEN
5974 IF(XDIR.Le.0.17)then
5975 * (3.1)N+P-->D+++D-+rho(0)
5977 EPION(NNN,IRUN)=Arho
5982 * (3.2)N+P -->D+++D0+rho(-)
5983 IF((XDIR.LE.0.34).AND.(XDIR.GT.0.17))THEN
5985 EPION(NNN,IRUN)=Arho
5990 * (3.3)N+P-->D++D-+rho(+)
5991 IF((XDIR.GT.0.34).AND.(XDIR.LE.0.51))THEN
5993 EPION(NNN,IRUN)=Arho
5998 * (3.4)N+P-->D++D++rho(-)
5999 IF((XDIR.GT.0.51).AND.(XDIR.LE.0.68))THEN
6001 EPION(NNN,IRUN)=Arho
6006 * (3.5)N+P-->D0+D++rho(0)
6007 IF((XDIR.GT.0.68).AND.(XDIR.LE.0.85))THEN
6009 EPION(NNN,IRUN)=Arho
6014 * (3.6)N+P-->D0+D0+rho(+)
6015 IF(XDIR.GT.0.85)THEN
6017 EPION(NNN,IRUN)=Arho
6022 * FIND THE MOMENTUM OF PARTICLES IN THE FINAL STATE IN THE NUCLEUS-
6023 * NUCLEUS CMS. FRAME
6024 * LORENTZ-TRANSFORMATION INTO LAB FRAME FOR DELTA1
6025 2051 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
6026 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
6027 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
6028 Pt1i1 = BETAX * TRANSF + PX3
6029 Pt2i1 = BETAY * TRANSF + PY3
6030 Pt3i1 = BETAZ * TRANSF + PZ3
6033 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
6036 if(LPION(NNN,IRUN) .eq. 25)then
6038 elseif(LPION(NNN,IRUN) .eq. 27)then
6045 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
6046 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
6047 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
6048 Pt1I2 = BETAX * TRANSF + PX4
6049 Pt2I2 = BETAY * TRANSF + PY4
6050 Pt3I2 = BETAZ * TRANSF + PZ4
6053 * assign delta1 and delta2 to i1 or i2 to keep the leadng particle
6055 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
6074 * GET rho'S MOMENTUM AND COORDINATES IN NUCLEUS-NUCLEUS CMS. FRAME
6075 EPCM=SQRT(EPION(NNN,IRUN)**2+PPX**2+PPY**2+PPZ**2)
6076 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
6077 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
6078 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
6079 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
6080 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
6082 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
6084 c2004 X01 = 1.0 - 2.0 * RANART(NSEED)
6085 c Y01 = 1.0 - 2.0 * RANART(NSEED)
6086 c Z01 = 1.0 - 2.0 * RANART(NSEED)
6087 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2004
6088 c RPION(1,NNN,IRUN)=R(1,I1)+0.5*x01
6089 c RPION(2,NNN,IRUN)=R(2,I1)+0.5*y01
6090 c RPION(3,NNN,IRUN)=R(3,I1)+0.5*z01
6091 RPION(1,NNN,IRUN)=R(1,I1)
6092 RPION(2,NNN,IRUN)=R(2,I1)
6093 RPION(3,NNN,IRUN)=R(3,I1)
6096 * FOR THE NN-->N+N+rho PROCESS, FIND MOMENTUM OF THE FINAL
6097 * PARTICLES IN THE NUCLEUS-NUCLEUS CMS.
6100 126 CALL pprho(SRT,ISEED,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
6101 & PPX,PPY,PPZ,amrho,icou1)
6103 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 126
6104 C if(icou1.lt.0)return
6105 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
6106 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
6107 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
6108 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
6111 * DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
6114 IF(LB(I1)*LB(I2).EQ.1)THEN
6116 * (1.1)P+P-->P+P+rho(0)
6118 EPION(NNN,IRUN)=Arho
6123 * (1.2)P+P -->p+n+rho(+)
6125 EPION(NNN,IRUN)=Arho
6132 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
6134 * (2.1)N+N-->N+N+rho(0)
6136 EPION(NNN,IRUN)=Arho
6141 * (2.2)N+N -->N+P+rho(-)
6143 EPION(NNN,IRUN)=Arho
6150 IF(LB(I1)*LB(I2).EQ.2)THEN
6151 IF(XDIR.Le.0.33)then
6152 * (3.1)N+P-->N+P+rho(0)
6154 EPION(NNN,IRUN)=Arho
6158 * (3.2)N+P -->P+P+rho(-)
6159 else IF((XDIR.LE.0.67).AND.(XDIR.GT.0.34))THEN
6161 EPION(NNN,IRUN)=Arho
6166 * (3.3)N+P-->N+N+rho(+)
6168 EPION(NNN,IRUN)=Arho
6174 * FIND THE MOMENTUM OF PARTICLES IN THE FINAL STATE IN THE NUCLEUS-
6175 * NUCLEUS CMS. FRAME
6176 * LORENTZ-TRANSFORMATION INTO LAB FRAME FOR DELTA1
6177 2052 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
6178 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
6179 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
6180 Pt1i1 = BETAX * TRANSF + PX3
6181 Pt2i1 = BETAY * TRANSF + PY3
6182 Pt3i1 = BETAZ * TRANSF + PZ3
6185 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
6188 if(LPION(NNN,IRUN) .eq. 25)then
6190 elseif(LPION(NNN,IRUN) .eq. 27)then
6197 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
6198 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
6199 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
6200 Pt1I2 = BETAX * TRANSF + PX4
6201 Pt2I2 = BETAY * TRANSF + PY4
6202 Pt3I2 = BETAZ * TRANSF + PZ4
6205 * assign p1 and p2 to i1 or i2 to keep the leadng particle
6207 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
6226 * GET rho'S MOMENTUM AND COORDINATES IN NUCLEUS-NUCLEUS CMS. FRAME
6227 EPCM=SQRT(EPION(NNN,IRUN)**2+PPX**2+PPY**2+PPZ**2)
6228 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
6229 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
6230 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
6231 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
6232 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
6234 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
6236 c2005 X01 = 1.0 - 2.0 * RANART(NSEED)
6237 c Y01 = 1.0 - 2.0 * RANART(NSEED)
6238 c Z01 = 1.0 - 2.0 * RANART(NSEED)
6239 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2005
6240 c RPION(1,NNN,IRUN)=R(1,I1)+0.5*x01
6241 c RPION(2,NNN,IRUN)=R(2,I1)+0.5*y01
6242 c RPION(3,NNN,IRUN)=R(3,I1)+0.5*z01
6243 RPION(1,NNN,IRUN)=R(1,I1)
6244 RPION(2,NNN,IRUN)=R(2,I1)
6245 RPION(3,NNN,IRUN)=R(3,I1)
6248 * FOR THE NN-->p+p+omega PROCESS, FIND MOMENTUM OF THE FINAL
6249 * PARTICLES IN THE NUCLEUS-NUCLEUS CMS.
6252 138 CALL ppomga(SRT,ISEED,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
6253 & PPX,PPY,PPZ,icou1)
6255 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 138
6256 C if(icou1.lt.0)return
6257 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
6258 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
6259 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
6260 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
6263 * DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
6265 IF(LB(I1)*LB(I2).EQ.1)THEN
6266 * (1.1)P+P-->P+P+omega(0)
6268 EPION(NNN,IRUN)=Aomega
6274 IF(iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2)THEN
6275 * (2.1)N+N-->N+N+omega(0)
6277 EPION(NNN,IRUN)=Aomega
6283 IF(LB(I1)*LB(I2).EQ.2)THEN
6284 * (3.1)N+P-->N+P+omega(0)
6286 EPION(NNN,IRUN)=Aomega
6291 * FIND THE MOMENTUM OF PARTICLES IN THE FINAL STATE IN THE NUCLEUS-
6292 * NUCLEUS CMS. FRAME
6293 * LORENTZ-TRANSFORMATION INTO LAB FRAME FOR DELTA1
6294 2053 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
6295 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
6296 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
6297 Pt1i1 = BETAX * TRANSF + PX3
6298 Pt2i1 = BETAY * TRANSF + PY3
6299 Pt3i1 = BETAZ * TRANSF + PZ3
6301 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
6307 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
6308 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
6309 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
6310 Pt1I2 = BETAX * TRANSF + PX4
6311 Pt2I2 = BETAY * TRANSF + PY4
6312 Pt3I2 = BETAZ * TRANSF + PZ4
6315 * assign delta1 and delta2 to i1 or i2 to keep the leadng particle
6317 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
6336 * GET omega'S MOMENTUM AND COORDINATES IN NUCLEUS-NUCLEUS CMS. FRAME
6337 EPCM=SQRT(EPION(NNN,IRUN)**2+PPX**2+PPY**2+PPZ**2)
6338 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
6339 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
6340 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
6341 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
6342 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
6344 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
6346 c2006 X01 = 1.0 - 2.0 * RANART(NSEED)
6347 c Y01 = 1.0 - 2.0 * RANART(NSEED)
6348 c Z01 = 1.0 - 2.0 * RANART(NSEED)
6349 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2006
6350 c RPION(1,NNN,IRUN)=R(1,I1)+0.5*x01
6351 c RPION(2,NNN,IRUN)=R(2,I1)+0.5*y01
6352 c RPION(3,NNN,IRUN)=R(3,I1)+0.5*z01
6353 RPION(1,NNN,IRUN)=R(1,I1)
6354 RPION(2,NNN,IRUN)=R(2,I1)
6355 RPION(3,NNN,IRUN)=R(3,I1)
6358 * change phase space density FOR NUCLEONS AFTER THE PROCESS
6360 clin-10/25/02-comment out following, since there is no path to it:
6361 clin-8/16/02 used before set
6362 c IX1,IY1,IZ1,IPX1,IPY1,IPZ1, IX2,IY2,IZ2,IPX2,IPY2,IPZ2:
6363 c if ((abs(ix1).le.mx) .and. (abs(iy1).le.my) .and.
6364 c & (abs(iz1).le.mz)) then
6365 c ipx1p = nint(p(1,i1)/dpx)
6366 c ipy1p = nint(p(2,i1)/dpy)
6367 c ipz1p = nint(p(3,i1)/dpz)
6368 c if ((ipx1p.ne.ipx1) .or. (ipy1p.ne.ipy1) .or.
6369 c & (ipz1p.ne.ipz1)) then
6370 c if ((abs(ipx1).le.mpx) .and. (abs(ipy1).le.my)
6371 c & .and. (ipz1.ge.-mpz) .and. (ipz1.le.mpzp))
6372 c & f(ix1,iy1,iz1,ipx1,ipy1,ipz1) =
6373 c & f(ix1,iy1,iz1,ipx1,ipy1,ipz1) - 1.
6374 c if ((abs(ipx1p).le.mpx) .and. (abs(ipy1p).le.my)
6375 c & .and. (ipz1p.ge.-mpz).and. (ipz1p.le.mpzp))
6376 c & f(ix1,iy1,iz1,ipx1p,ipy1p,ipz1p) =
6377 c & f(ix1,iy1,iz1,ipx1p,ipy1p,ipz1p) + 1.
6380 c if ((abs(ix2).le.mx) .and. (abs(iy2).le.my) .and.
6381 c & (abs(iz2).le.mz)) then
6382 c ipx2p = nint(p(1,i2)/dpx)
6383 c ipy2p = nint(p(2,i2)/dpy)
6384 c ipz2p = nint(p(3,i2)/dpz)
6385 c if ((ipx2p.ne.ipx2) .or. (ipy2p.ne.ipy2) .or.
6386 c & (ipz2p.ne.ipz2)) then
6387 c if ((abs(ipx2).le.mpx) .and. (abs(ipy2).le.my)
6388 c & .and. (ipz2.ge.-mpz) .and. (ipz2.le.mpzp))
6389 c & f(ix2,iy2,iz2,ipx2,ipy2,ipz2) =
6390 c & f(ix2,iy2,iz2,ipx2,ipy2,ipz2) - 1.
6391 c if ((abs(ipx2p).le.mpx) .and. (abs(ipy2p).le.my)
6392 c & .and. (ipz2p.ge.-mpz) .and. (ipz2p.le.mpzp))
6393 c & f(ix2,iy2,iz2,ipx2p,ipy2p,ipz2p) =
6394 c & f(ix2,iy2,iz2,ipx2p,ipy2p,ipz2p) + 1.
6401 *-----------------------------------------------------------------------
6402 *COM: SET THE NEW MOMENTUM COORDINATES
6403 107 IF(PX .EQ. 0.0 .AND. PY .EQ. 0.0) THEN
6411 S2 = SQRT( 1.0 - C2**2 )
6416 PZ = PR * ( C1*C2 - S1*S2*CT1 )
6417 SS = C2 * S1 * CT1 + S2 * C1
6418 PX = PR * ( SS*CT2 - S1*ST1*ST2 )
6419 PY = PR * ( SS*ST2 + S1*ST1*CT2 )
6422 clin-5/2008 CRNN over
6424 **********************************
6425 **********************************
6429 SUBROUTINE CRPP(PX,PY,PZ,SRT,I1,I2,IBLOCK,
6430 &ppel,ppin,spprho,ipp)
6432 * DEALING WITH PION-PION COLLISIONS *
6434 * VALID ONLY FOR PION-PION-DISTANCES LESS THAN 2.5 FM *
6436 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
6438 * IBLOCK - THE INFORMATION BACK *
6439 * 6-> Meson+Meson elastic
6440 * 66-> Meson+meson-->K+K-
6441 **********************************
6442 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
6443 1 AMP=0.93828,AP1=0.13496,
6444 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
6445 PARAMETER (AKA=0.498,aks=0.895)
6446 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
6447 COMMON /AA/ R(3,MAXSTR)
6449 COMMON /BB/ P(3,MAXSTR)
6451 COMMON /CC/ E(MAXSTR)
6453 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
6455 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
6457 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
6459 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
6472 *-----------------------------------------------------------------------
6473 * check Meson+Meson inelastic collisions
6475 c if((srt.gt.1.).and.(ppin/(ppin+ppel).gt.RANART(NSEED)))then
6483 c if(srt.gt.1.and.(ppin/(ppin+ppel)).gt.RANART(NSEED)) then
6485 if(srt.gt.(2*aka).and.(ppin/(ppin+ppel)).gt.RANART(NSEED)) then
6486 c if(ppin/(ppin+ppel).gt.RANART(NSEED)) then
6490 if((pprr/ppin).ge.ranpi) then
6492 c 1) pi pi <-> rho rho:
6493 call pi2ro2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6495 clin-4/03/02 eta equilibration:
6496 elseif((pprr+ppee)/ppin.ge.ranpi) then
6497 c 4) pi pi <-> eta eta:
6498 call pi2et2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6499 elseif(((pprr+ppee+pppe)/ppin).ge.ranpi) then
6500 c 5) pi pi <-> pi eta:
6501 call pi3eta(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6502 elseif(((pprr+ppee+pppe+rpre)/ppin).ge.ranpi) then
6503 c 6) rho pi <-> pi eta:
6504 call rpiret(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6505 elseif(((pprr+ppee+pppe+rpre+xopoe)/ppin).ge.ranpi) then
6506 c 7) omega pi <-> omega eta:
6507 call opioet(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6508 elseif(((pprr+ppee+pppe+rpre+xopoe+rree)
6509 1 /ppin).ge.ranpi) then
6510 c 8) rho rho <-> eta eta:
6511 call ro2et2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
6514 c 2) BBbar production:
6515 elseif(((pprr+ppee+pppe+rpre+xopoe+rree+ppinnb)/ppin)
6518 call bbarfs(lbb1,lbb2,ei1,ei2,iblock,iseed)
6519 c 3) KKbar production:
6526 clin-11/07/00 pi rho -> K* Kbar and K*bar K productions:
6529 clin-2/13/03 include omega the same as rho, eta the same as pi:
6530 c if(((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.25.and.lb2.le.27))
6531 c 1 .or.((lb2.ge.3.and.lb2.le.5).and.(lb1.ge.25.and.lb1.le.27)))
6532 if( ( (lb1.eq.0.or.(lb1.ge.3.and.lb1.le.5))
6533 1 .and.(lb2.ge.25.and.lb2.le.28))
6534 2 .or. ( (lb2.eq.0.or.(lb2.ge.3.and.lb2.le.5))
6535 3 .and.(lb1.ge.25.and.lb1.le.28))) then
6538 if(RANART(NSEED).ge.0.5) then
6559 c.....for meson+meson elastic srt.le.2Mk, if not pi+pi collision return
6560 if ((lb(i1).lt.3.or.lb(i1).gt.5).and.
6561 & (lb(i2).lt.3.or.lb(i2).gt.5)) return
6564 * check Meson+Meson elastic collisions
6567 if(ipp.eq.1.or.ipp.eq.4.or.ipp.eq.6)go to 10
6568 if(spprho/ppel.gt.RANART(NSEED))go to 20
6574 *-----------------------------------------------------------------------
6575 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
6576 * ENERGY CONSERVATION
6577 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
6578 1 - 4.0 * (EM1*EM2)**2
6579 IF(PR2.LE.0.)PR2=1.e-09
6580 PR=SQRT(PR2)/(2.*SRT)
6581 C1 = 1.0 - 2.0 * RANART(NSEED)
6582 T1 = 2.0 * PI * RANART(NSEED)
6583 S1 = SQRT( 1.0 - C1**2 )
6589 * for isotropic distribution no need to ROTATE THE MOMENTUM
6592 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
6597 * treat rho formation in pion+pion collisions
6598 * calculate the mass and momentum of rho in the nucleus-nucleus frame
6600 if(ipp.eq.2)lb(i1)=27
6601 if(ipp.eq.3)lb(i1)=26
6602 if(ipp.eq.5)lb(i1)=25
6605 **********************************
6606 **********************************
6609 SUBROUTINE CRND(IRUN,PX,PY,PZ,SRT,I1,I2,IBLOCK,
6610 &SIGNN,SIG,sigk,xsk1,xsk2,xsk3,xsk4,xsk5,NT,ipert1)
6612 * DEALING WITH NUCLEON-BARYON RESONANCE COLLISIONS *
6614 * VALID ONLY FOR BARYON-BARYON-DISTANCES LESS THAN 1.32 FM *
6615 * (1.32 = 2 * HARD-CORE-RADIUS [HRC] ) *
6617 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
6619 * NSTAR =1 INCLUDING N* RESORANCE,ELSE NOT *
6620 * NDIRCT=1 INCLUDING DIRECT PION PRODUCTION PROCESS *
6621 * IBLOCK - THE INFORMATION BACK *
6622 * 0-> COLLISION CANNOT HAPPEN *
6623 * 1-> N-N ELASTIC COLLISION *
6624 * 2-> N+N->N+DELTA,OR N+N->N+N* REACTION *
6625 * 3-> N+DELTA->N+N OR N+N*->N+N REACTION *
6626 * 4-> N+N->N+N+PION,DIRTCT PROCESS *
6627 * N12 - IS USED TO SPECIFY BARYON-BARYON REACTION *
6628 * CHANNELS. M12 IS THE REVERSAL CHANNEL OF N12 *
6630 * M12=1 FOR p+n-->delta(+)+ n *
6631 * 2 p+n-->delta(0)+ p *
6632 * 3 p+p-->delta(++)+n *
6633 * 4 p+p-->delta(+)+p *
6634 * 5 n+n-->delta(0)+n *
6635 * 6 n+n-->delta(-)+p *
6636 * 7 n+p-->N*(0)(1440)+p *
6637 * 8 n+p-->N*(+)(1440)+n *
6638 * 9 p+p-->N*(+)(1535)+p *
6639 * 10 n+n-->N*(0)(1535)+n *
6640 * 11 n+p-->N*(+)(1535)+n *
6641 * 12 n+p-->N*(0)(1535)+p
6642 * 13 D(++)+D(-)-->N*(+)(1440)+n
6643 * 14 D(++)+D(-)-->N*(0)(1440)+p
6644 * 15 D(+)+D(0)--->N*(+)(1440)+n
6645 * 16 D(+)+D(0)--->N*(0)(1440)+p
6646 * 17 D(++)+D(0)-->N*(+)(1535)+p
6647 * 18 D(++)+D(-)-->N*(0)(1535)+p
6648 * 19 D(++)+D(-)-->N*(+)(1535)+n
6649 * 20 D(+)+D(+)-->N*(+)(1535)+p
6650 * 21 D(+)+D(0)-->N*(+)(1535)+n
6651 * 22 D(+)+D(0)-->N*(0)(1535)+p
6652 * 23 D(+)+D(-)-->N*(0)(1535)+n
6653 * 24 D(0)+D(0)-->N*(0)(1535)+n
6654 * 25 N*(+)(14)+N*(+)(14)-->N*(+)(15)+p
6655 * 26 N*(0)(14)+N*(0)(14)-->N*(0)(15)+n
6656 * 27 N*(+)(14)+N*(0)(14)-->N*(+)(15)+n
6657 * 28 N*(+)(14)+N*(0)(14)-->N*(0)(15)+p
6658 * 29 N*(+)(14)+D+-->N*(+)(15)+p
6659 * 30 N*(+)(14)+D0-->N*(+)(15)+n
6660 * 31 N*(+)(14)+D(-)-->N*(0)(1535)+n
6661 * 32 N*(0)(14)+D++--->N*(+)(15)+p
6662 * 33 N*(0)(14)+D+--->N*(+)(15)+n
6663 * 34 N*(0)(14)+D+--->N*(0)(15)+p
6664 * 35 N*(0)(14)+D0-->N*(0)(15)+n
6665 * 36 N*(+)(14)+D0--->N*(0)(15)+p
6666 * ++ see the note book for more listing
6667 **********************************
6668 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
6669 1 AMP=0.93828,AP1=0.13496,AKA=0.498,APHI=1.020,
6670 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
6671 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
6672 parameter (xmd=1.8756,npdmax=10000)
6673 COMMON /AA/ R(3,MAXSTR)
6675 COMMON /BB/ P(3,MAXSTR)
6677 COMMON /CC/ E(MAXSTR)
6679 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
6681 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
6683 common /gg/ dx,dy,dz,dpx,dpy,dpz
6685 COMMON /INPUT/ NSTAR,NDIRCT,DIR
6689 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
6693 COMMON /PA/RPION(3,MAXSTR,MAXR)
6695 COMMON /PB/PPION(3,MAXSTR,MAXR)
6697 COMMON /PC/EPION(MAXSTR,MAXR)
6699 COMMON /PD/LPION(MAXSTR,MAXR)
6701 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
6703 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
6704 1 px1n,py1n,pz1n,dp1n
6708 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
6709 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
6710 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
6712 common /para8/ idpert,npertd,idxsec
6713 dimension ppd(3,npdmax),lbpd(npdmax)
6715 *-----------------------------------------------------------------------
6722 PR = SQRT( PX**2 + PY**2 + PZ**2 )
6726 if(lb(i1).lt.0 .and. lb(i2).lt.0)ianti=1
6728 clin-6/2008 Production of perturbative deuterons for idpert=1:
6729 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
6730 if(idpert.eq.1.and.ipert1.eq.1) then
6731 IF (SRT .LT. 2.012) RETURN
6732 if((iabs(lb(i1)).eq.1.or.iabs(lb(i1)).eq.2)
6733 1 .and.(iabs(lb(i2)).ge.6.and.iabs(lb(i2)).le.13)) then
6735 elseif((iabs(lb(i2)).eq.1.or.iabs(lb(i2)).eq.2)
6736 1 .and.(iabs(lb(i1)).ge.6.and.iabs(lb(i1)).le.13)) then
6742 *-----------------------------------------------------------------------
6743 *COM: TEST FOR ELASTIC SCATTERING (EITHER N-N OR DELTA-DELTA 0R
6744 * N-DELTA OR N*-N* or N*-Delta)
6745 IF (X1 .LE. SIGNN/SIG) THEN
6746 *COM: PARAMETRISATION IS TAKEN FROM THE CUGNON-PAPER
6747 AS = ( 3.65 * (SRT - 1.8766) )**6
6748 A = 6.0 * AS / (1.0 + AS)
6751 clin-10/24/02 T1 = ALOG( (1-X) * DEXP(dble(A)*dble(TA)) + X ) / A
6752 T1 = sngl(DLOG(dble(1.-X)*DEXP(dble(A)*dble(TA))+dble(X)))/ A
6754 T1 = 2.0 * PI * RANART(NSEED)
6758 *COM: TEST FOR INELASTIC SCATTERING
6759 * IF THE AVAILABLE ENERGY IS LESS THAN THE PION-MASS, NOTHING
6760 * CAN HAPPEN ANY MORE ==> RETURN (2.04 = 2*AVMASS + PI-MASS+0.02)
6761 IF (SRT .LT. 2.04) RETURN
6762 clin-6/2008 add d+meson production for n*N*(0)(1440) and p*N*(+)(1440) channels
6763 c (they did not have any inelastic reactions before):
6764 if(((iabs(LB(I1)).EQ.2.or.iabs(LB(I2)).EQ.2).AND.
6765 1 (LB(I1)*LB(I2)).EQ.20).or.(LB(I1)*LB(I2)).EQ.13) then
6766 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6769 * Resonance absorption or Delta + N-->N*(1440), N*(1535)
6770 * COM: TEST FOR DELTA OR N* ABSORPTION
6771 * IN THE PROCESS DELTA+N-->NN, N*+N-->NN
6772 PRF=SQRT(0.25*SRT**2-AVMASS**2)
6778 RENOM=DELTAM*PRF**2/DENOM(SRT,1.)/PR
6779 RENOMN=DELTAM*PRF**2/DENOM(SRT,2.)/PR
6780 RENOM1=DELTAM*PRF**2/DENOM(SRT,-1.)/PR
6781 * avoid the inelastic collisions between n+delta- -->N+N
6782 * and p+delta++ -->N+N due to charge conservation,
6783 * but they can scatter to produce kaons
6784 if((iabs(lb(i1)).eq.2).and.(iabs(lb(i2)).eq.6)) renom=0.
6785 if((iabs(lb(i2)).eq.2).and.(iabs(lb(i1)).eq.6)) renom=0.
6786 if((iabs(lb(i1)).eq.1).and.(iabs(lb(i2)).eq.9)) renom=0.
6787 if((iabs(lb(i2)).eq.1).and.(iabs(lb(i1)).eq.9)) renom=0.
6788 Call M1535(iabs(lb(i1)),iabs(lb(i2)),srt,x1535)
6789 X1440=(3./4.)*SIGMA(SRT,2,0,1)
6790 * CROSS SECTION FOR KAON PRODUCTION from the four channels
6792 * avoid the inelastic collisions between n+delta- -->N+N
6793 * and p+delta++ -->N+N due to charge conservation,
6794 * but they can scatter to produce kaons
6795 if(((iabs(lb(i1)).eq.2).and.(iabs(lb(i2)).eq.6)).OR.
6796 & ((iabs(lb(i2)).eq.2).and.(iabs(lb(i1)).eq.6)).OR.
6797 & ((iabs(lb(i1)).eq.1).and.(iabs(lb(i2)).eq.9)).OR.
6798 & ((iabs(lb(i2)).eq.1).and.(iabs(lb(i1)).eq.9)))THEN
6800 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6801 c IF((SIGK+SIGNN)/SIG.GE.X1)GO TO 306
6802 IF((SIGK+SIGNN+sdprod)/SIG.GE.X1)GO TO 306
6805 * WE DETERMINE THE REACTION CHANNELS IN THE FOLLOWING
6806 * FOR n+delta(++)-->p+p or n+delta(++)-->n+N*(+)(1440),n+N*(+)(1535)
6807 * REABSORPTION OR N*(1535) PRODUCTION LIKE IN P+P OR N*(1440) LIKE PN,
6808 IF(LB(I1)*LB(I2).EQ.18.AND.
6809 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))then
6810 SIGND=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
6811 SIGDN=0.25*SIGND*RENOM
6813 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6814 c IF(X1.GT.(SIGNN+SIGDN+X1440+X1535+SIGK)/SIG)RETURN
6815 IF(X1.GT.(SIGNN+SIGDN+X1440+X1535+SIGK+sdprod)/SIG)RETURN
6817 IF(SIGK/(SIGK+SIGDN+X1440+X1535).GT.RANART(NSEED))GO TO 306
6819 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1440+X1535))THEN
6824 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
6829 clin-2/26/03 why is the above commented out? leads to M12=0 but
6830 c particle mass is changed after 204 (causes energy violation).
6831 c replace by elastic process (return):
6838 * FOR p+delta(-)-->n+n or p+delta(-)-->n+N*(0)(1440),n+N*(0)(1535)
6839 * REABSORPTION OR N*(1535) PRODUCTION LIKE IN P+P OR N*(1440) LIKE PN,
6840 IF(LB(I1)*LB(I2).EQ.6.AND.
6841 & ((iabs(LB(I1)).EQ.1).OR.(iabs(LB(I2)).EQ.1)))then
6842 SIGND=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
6843 SIGDN=0.25*SIGND*RENOM
6845 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6846 c IF (X1.GT.(SIGNN+SIGDN+X1440+X1535+SIGK)/SIG)RETURN
6847 IF (X1.GT.(SIGNN+SIGDN+X1440+X1535+SIGK+sdprod)/SIG)RETURN
6849 IF(SIGK/(SIGK+SIGDN+X1440+X1535).GT.RANART(NSEED))GO TO 306
6851 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1440+X1535))THEN
6856 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
6861 clin-2/26/03 causes energy violation, replace by elastic process (return):
6868 * FOR p+delta(+)-->p+p, N*(+)(144)+p, N*(+)(1535)+p
6869 IF(LB(I1)*LB(I2).EQ.8.AND.
6870 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))THEN
6871 SIGND=1.5*SIGMA(SRT,1,1,1)
6872 SIGDN=0.25*SIGND*RENOM
6874 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6875 c IF(X1.GT.(SIGNN+SIGDN+x1440+x1535+SIGK)/SIG)RETURN
6876 IF(X1.GT.(SIGNN+SIGDN+x1440+x1535+SIGK+sdprod)/SIG)RETURN
6878 IF(SIGK/(SIGK+SIGDN+X1440+X1535).GT.RANART(NSEED))GO TO 306
6879 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1440+X1535))THEN
6883 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
6892 * FOR n+delta(0)-->n+n, N*(0)(144)+n, N*(0)(1535)+n
6893 IF(LB(I1)*LB(I2).EQ.14.AND.
6894 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))THEN
6895 SIGND=1.5*SIGMA(SRT,1,1,1)
6896 SIGDN=0.25*SIGND*RENOM
6898 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6899 c IF(X1.GT.(SIGNN+SIGDN+x1440+x1535+SIGK)/SIG)RETURN
6900 IF(X1.GT.(SIGNN+SIGDN+x1440+x1535+SIGK+sdprod)/SIG)RETURN
6902 IF(SIGK/(SIGK+SIGDN+X1440+X1535).GT.RANART(NSEED))GO TO 306
6903 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1440+X1535))THEN
6907 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
6916 * FOR n+delta(+)-->n+p, N*(+)(1440)+n,N*(0)(1440)+p,
6917 * N*(+)(1535)+n,N*(0)(1535)+p
6918 IF(LB(I1)*LB(I2).EQ.16.AND.
6919 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))THEN
6920 SIGND=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
6921 SIGDN=0.5*SIGND*RENOM
6923 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6924 c IF(X1.GT.(SIGNN+SIGDN+2.*x1440+2.*x1535+SIGK)/SIG)RETURN
6925 IF(X1.GT.(SIGNN+SIGDN+2.*x1440+2.*x1535+SIGK+sdprod)/SIG)RETURN
6927 IF(SIGK/(SIGK+SIGDN+2*X1440+2*X1535).GT.RANART(NSEED))GO TO 306
6928 IF(RANART(NSEED).LT.SIGDN/(SIGDN+2.*X1440+2.*X1535))THEN
6932 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
6934 IF(RANART(NSEED).LE.0.5)M12=43
6937 IF(RANART(NSEED).LE.0.5)M12=44
6942 * FOR p+delta(0)-->n+p, N*(+)(1440)+n,N*(0)(1440)+p,
6943 * N*(+)(1535)+n,N*(0)(1535)+p
6944 IF(LB(I1)*LB(I2).EQ.7)THEN
6945 SIGND=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
6946 SIGDN=0.5*SIGND*RENOM
6948 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6949 c IF(X1.GT.(SIGNN+SIGDN+2.*x1440+2.*x1535+SIGK)/SIG)RETURN
6950 IF(X1.GT.(SIGNN+SIGDN+2.*x1440+2.*x1535+SIGK+sdprod)/SIG)RETURN
6952 IF(SIGK/(SIGK+SIGDN+2*X1440+2*X1535).GT.RANART(NSEED))GO TO 306
6953 IF(RANART(NSEED).LT.SIGDN/(SIGDN+2.*X1440+2.*X1535))THEN
6957 IF(RANART(NSEED).LT.X1440/(X1440+X1535))THEN
6959 IF(RANART(NSEED).LE.0.5)M12=51
6962 IF(RANART(NSEED).LE.0.5)M12=53
6967 * FOR p+N*(0)(14)-->p+n, N*(+)(1535)+n,N*(0)(1535)+p
6968 * OR P+N*(0)(14)-->D(+)+N, D(0)+P,
6969 IF(LB(I1)*LB(I2).EQ.10.AND.
6970 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))then
6971 SIGND=(3./4.)*SIGMA(SRT,2,0,1)
6974 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6975 c IF(X1.GT.(SIGNN+SIGDN+X1535+SIGK)/SIG)RETURN
6976 IF(X1.GT.(SIGNN+SIGDN+X1535+SIGK+sdprod)/SIG)RETURN
6978 IF(SIGK/(SIGK+SIGDN+X1535).GT.RANART(NSEED))GO TO 306
6979 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1535))THEN
6984 IF(RANART(NSEED).LE.0.5)M12=55
6988 * FOR n+N*(+)-->p+n, N*(+)(1535)+n,N*(0)(1535)+p
6989 IF(LB(I1)*LB(I2).EQ.22.AND.
6990 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))then
6991 SIGND=(3./4.)*SIGMA(SRT,2,0,1)
6994 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
6995 c IF(X1.GT.(SIGNN+SIGDN+X1535+SIGK)/SIG)RETURN
6996 IF(X1.GT.(SIGNN+SIGDN+X1535+SIGK+sdprod)/SIG)RETURN
6998 IF(SIGK/(SIGK+SIGDN+X1535).GT.RANART(NSEED))GO TO 306
6999 IF(RANART(NSEED).LT.SIGDN/(SIGDN+X1535))THEN
7004 IF(RANART(NSEED).LE.0.5)M12=57
7008 * FOR N*(1535)+N-->N+N COLLISIONS
7009 IF((iabs(LB(I1)).EQ.12).OR.(iabs(LB(I1)).EQ.13).OR.
7010 1 (iabs(LB(I2)).EQ.12).OR.(iabs(LB(I2)).EQ.13))THEN
7014 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
7015 c IF(X1.GT.(SIGNN+SIGDN+SIGK)/SIG)RETURN
7016 IF(X1.GT.(SIGNN+SIGDN+SIGK+sdprod)/SIG)RETURN
7018 IF(SIGK/(SIGK+SIGDN).GT.RANART(NSEED))GO TO 306
7019 IF(LB(I1)*LB(I2).EQ.24)M12=10
7020 IF(LB(I1)*LB(I2).EQ.12)M12=12
7021 IF(LB(I1)*LB(I2).EQ.26)M12=11
7022 IF(LB(I1)*LB(I2).EQ.13)M12=9
7026 * (1) GENERATE THE MASS FOR THE N*(1440) AND N*(1535)
7027 * (2) CALCULATE THE FINAL MOMENTUM OF THE n+N* SYSTEM
7028 * (3) RELABLE THE FINAL STATE PARTICLES
7029 *PARAMETRIZATION OF THE SHAPE OF THE N* RESONANCE ACCORDING
7030 * TO kitazoe's or J.D.JACKSON'S MASS FORMULA AND BREIT WIGNER
7031 * FORMULA FOR N* RESORANCE
7032 * DETERMINE DELTA MASS VIA REJECTION METHOD.
7033 DMAX = SRT - AVMASS-0.005
7035 IF((M12.eq.37).or.(M12.eq.39).or.
7036 1 (M12.eQ.41).OR.(M12.eQ.43).OR.(M12.EQ.46).
7037 2 OR.(M12.EQ.48).OR.(M12.EQ.50).OR.(M12.EQ.51))then
7038 * N*(1440) production
7039 IF(DMAX.LT.1.44) THEN
7043 clin-10/25/02 get rid of argument usage mismatch in FNS():
7045 c FM=FNS(1.44,SRT,1.)
7046 FM=FNS(xdmass,SRT,1.)
7050 IF(FM.EQ.0.)FM=1.E-09
7052 11 DM=RANART(NSEED)*(DMAX-DMIN)+DMIN
7054 IF((RANART(NSEED).GT.FNS(DM,SRT,1.)/FM).AND.
7055 1 (NTRY2.LE.10)) GO TO 11
7057 clin-2/26/03 limit the N* mass below a certain value
7058 c (here taken as its central value + 2* B-W fullwidth):
7059 if(dm.gt.2.14) goto 11
7063 * N*(1535) production
7064 IF(DMAX.LT.1.535) THEN
7068 clin-10/25/02 get rid of argument usage mismatch in FNS():
7070 c FM=FD5(1.535,SRT,1.)
7071 FM=FD5(xdmass,SRT,1.)
7075 IF(FM.EQ.0.)FM=1.E-09
7077 12 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
7079 IF((RANART(NSEED) .GT. FD5(DM,SRT,1.)/FM).AND.
7080 1 (NTRY1.LE.10)) GOTO 12
7082 clin-2/26/03 limit the N* mass below a certain value
7083 c (here taken as its central value + 2* B-W fullwidth):
7084 if(dm.gt.1.84) goto 12
7088 * (2) DETERMINE THE FINAL MOMENTUM
7090 PF2=((SRT**2-DM**2+AVMASS**2)/(2.*SRT))**2-AVMASS**2
7091 IF(PF2.GT.0.)PRF=SQRT(PF2)
7092 * (3) RELABLE FINAL STATE PARTICLES
7093 * 37 D(++)+n-->N*(+)(14)+p
7095 IF(iabs(LB(I1)).EQ.9)THEN
7108 * 38 D(++)+n-->N*(+)(15)+p
7110 IF(iabs(LB(I1)).EQ.9)THEN
7123 * 39 D(+)+P-->N*(+)(14)+p
7125 IF(iabs(LB(I1)).EQ.8)THEN
7138 * 40 D(+)+P-->N*(+)(15)+p
7140 IF(iabs(LB(I1)).EQ.8)THEN
7153 * 41 D(+)+N-->N*(+)(14)+N
7155 IF(iabs(LB(I1)).EQ.8)THEN
7168 * 42 D(+)+N-->N*(+)(15)+N
7170 IF(iabs(LB(I1)).EQ.8)THEN
7183 * 43 D(+)+N-->N*(0)(14)+P
7185 IF(iabs(LB(I1)).EQ.8)THEN
7198 * 44 D(+)+N-->N*(0)(15)+P
7200 IF(iabs(LB(I1)).EQ.8)THEN
7213 * 46 D(-)+P-->N*(0)(14)+N
7215 IF(iabs(LB(I1)).EQ.6)THEN
7228 * 47 D(-)+P-->N*(0)(15)+N
7230 IF(iabs(LB(I1)).EQ.6)THEN
7243 * 48 D(0)+N-->N*(0)(14)+N
7245 IF(iabs(LB(I1)).EQ.7)THEN
7258 * 49 D(0)+N-->N*(0)(15)+N
7260 IF(iabs(LB(I1)).EQ.7)THEN
7273 * 50 D(0)+P-->N*(0)(14)+P
7275 IF(iabs(LB(I1)).EQ.7)THEN
7288 * 51 D(0)+P-->N*(+)(14)+N
7290 IF(iabs(LB(I1)).EQ.7)THEN
7303 * 52 D(0)+P-->N*(0)(15)+P
7305 IF(iabs(LB(I1)).EQ.7)THEN
7318 * 53 D(0)+P-->N*(+)(15)+N
7320 IF(iabs(LB(I1)).EQ.7)THEN
7333 * 54 N*(0)(14)+P-->N*(+)(15)+N
7335 IF(iabs(LB(I1)).EQ.10)THEN
7348 * 55 N*(0)(14)+P-->N*(0)(15)+P
7350 IF(iabs(LB(I1)).EQ.10)THEN
7363 * 56 N*(+)(14)+N-->N*(+)(15)+N
7365 IF(iabs(LB(I1)).EQ.11)THEN
7378 * 57 N*(+)(14)+N-->N*(0)(15)+P
7380 IF(iabs(LB(I1)).EQ.11)THEN
7393 *------------------------------------------------
7394 * RELABLE NUCLEONS AFTER DELTA OR N* BEING ABSORBED
7395 *(1) n+delta(+)-->n+p
7396 206 IF(M12.EQ.1)THEN
7397 IF(iabs(LB(I1)).EQ.8)THEN
7408 *(2) p+delta(0)-->p+n
7410 IF(iabs(LB(I1)).EQ.7)THEN
7421 *(3) n+delta(++)-->p+p
7429 *(4) p+delta(+)-->p+p
7437 *(5) n+delta(0)-->n+n
7445 *(6) p+delta(-)-->n+n
7455 IF(iabs(LB(I1)).EQ.1)THEN
7470 IF(iabs(LB(I1)).EQ.2)THEN
7485 *(9) N*(+)(1535) p-->pp
7511 *(12) N*(0)(1535) p-->Np
7518 *----------------------------------------------
7520 C1 = 1.0 - 2.0 * RANART(NSEED)
7521 if(srt.le.2.14)C1= 1.0 - 2.0 * RANART(NSEED)
7522 if(srt.gt.2.14.and.srt.le.2.4)c1=anga(srt,iseed)
7525 clin-10/25/02 get rid of argument usage mismatch in PTR():
7527 c cc1=ptr(0.33*pr,iseed)
7531 c1=sqrt(pr**2-cc1**2)/pr
7533 T1 = 2.0 * PI * RANART(NSEED)
7536 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
7541 *-----------------------------------------------------------------------
7542 *COM: SET THE NEW MOMENTUM COORDINATES
7543 107 IF(PX .EQ. 0.0 .AND. PY .EQ. 0.0) THEN
7548 S1 = SQRT( 1.0 - C1**2 )
7549 S2 = SQRT( 1.0 - C2**2 )
7554 PZ = PR * ( C1*C2 - S1*S2*CT1 )
7555 SS = C2 * S1 * CT1 + S2 * C1
7556 PX = PR * ( SS*CT2 - S1*ST1*ST2 )
7557 PY = PR * ( SS*ST2 + S1*ST1*CT2 )
7559 * FOR THE NN-->KAON+X PROCESS, FIND MOMENTUM OF THE FINAL PARTICLES IN
7560 * THE NUCLEUS-NUCLEUS CMS.
7562 csp11/21/01 phi production
7563 if(XSK5/sigK.gt.RANART(NSEED))then
7566 LB(I1) = 1 + int(2 * RANART(NSEED))
7567 LB(I2) = 1 + int(2 * RANART(NSEED))
7570 EPION(NNN,IRUN)=APHI
7576 if(ianti .eq. 1)iblock=-11
7580 * DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
7585 * only lambda production is possible
7586 * (1.1)P+P-->p+L+kaon+
7589 LB(I1) = 1 + int(2 * RANART(NSEED))
7593 if(srt.le.2.74.and.srt.gt.2.63)then
7594 * both Lambda and sigma production are possible
7595 if(XSK1/(XSK1+XSK2).gt.RANART(NSEED))then
7599 LB(I1) = 1 + int(2 * RANART(NSEED))
7604 LB(I1) = 1 + int(2 * RANART(NSEED))
7605 LB(I2) = 15 + int(3 * RANART(NSEED))
7610 if(srt.le.2.77.and.srt.gt.2.74)then
7611 * then pp-->Delta lamda kaon can happen
7612 if(xsk1/(xsk1+xsk2+xsk3).
7613 1 gt.RANART(NSEED))then
7614 * * (1.1)P+P-->p+L+kaon+
7617 LB(I1) = 1 + int(2 * RANART(NSEED))
7621 if(xsk2/(xsk2+xsk3).gt.RANART(NSEED))then
7625 LB(I1) = 1 + int(2 * RANART(NSEED))
7626 LB(I2) = 15 + int(3 * RANART(NSEED))
7632 LB(I1) = 6 + int(4 * RANART(NSEED))
7639 * all four channels are possible
7640 if(xsk1/(xsk1+xsk2+xsk3+xsk4).gt.RANART(NSEED))then
7641 * p lambda k production
7644 LB(I1) = 1 + int(2 * RANART(NSEED))
7648 if(xsk3/(xsk2+xsk3+xsk4).gt.RANART(NSEED))then
7649 * delta l K production
7652 LB(I1) = 6 + int(4 * RANART(NSEED))
7656 if(xsk2/(xsk2+xsk4).gt.RANART(NSEED))then
7657 * n sigma k production
7659 LB(I1) = 1 + int(2 * RANART(NSEED))
7660 LB(I2) = 15 + int(3 * RANART(NSEED))
7666 LB(I1) = 6 + int(4 * RANART(NSEED))
7667 LB(I2) = 15 + int(3 * RANART(NSEED))
7675 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
7678 if(LPION(NNN,IRUN) .eq. 23)LPION(NNN,IRUN)=21
7682 * KEEP ALL COORDINATES OF PARTICLE 2 FOR POSSIBLE PHASE SPACE CHANGE
7684 128 CALL BBKAON(ic,SRT,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
7685 & PPX,PPY,PPZ,icou1)
7687 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 128
7688 c if(icou1.lt.0)return
7689 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
7690 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
7691 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
7692 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
7693 * FIND THE MOMENTUM OF PARTICLES IN THE FINAL STATE IN THE NUCLEUS-
7694 * NUCLEUS CMS. FRAME
7695 * (1) for the necleon/delta
7696 * LORENTZ-TRANSFORMATION INTO LAB FRAME FOR DELTA1
7697 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
7698 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
7699 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
7700 Pt1i1 = BETAX * TRANSF + PX3
7701 Pt2i1 = BETAY * TRANSF + PY3
7702 Pt3i1 = BETAZ * TRANSF + PZ3
7704 * (2) for the lambda/sigma
7705 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
7706 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
7707 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
7708 Pt1I2 = BETAX * TRANSF + PX4
7709 Pt2I2 = BETAY * TRANSF + PY4
7710 Pt3I2 = BETAZ * TRANSF + PZ4
7712 * GET the kaon'S MOMENTUM AND COORDINATES IN NUCLEUS-NUCLEUS CMS. FRAME
7713 EPCM=SQRT(aka**2+PPX**2+PPY**2+PPZ**2)
7714 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
7715 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
7716 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
7717 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
7718 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
7720 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
7722 c2008 X01 = 1.0 - 2.0 * RANART(NSEED)
7723 c Y01 = 1.0 - 2.0 * RANART(NSEED)
7724 c Z01 = 1.0 - 2.0 * RANART(NSEED)
7725 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2008
7726 c RPION(1,NNN,IRUN)=R(1,I1)+0.5*x01
7727 c RPION(2,NNN,IRUN)=R(2,I1)+0.5*y01
7728 c RPION(3,NNN,IRUN)=R(3,I1)+0.5*z01
7729 RPION(1,NNN,IRUN)=R(1,I1)
7730 RPION(2,NNN,IRUN)=R(2,I1)
7731 RPION(3,NNN,IRUN)=R(3,I1)
7733 * assign the nucleon/delta and lambda/sigma to i1 or i2 to keep the
7734 * leadng particle behaviour
7735 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
7753 if(LPION(NNN,IRUN) .ne. 29) IBLOCK=11
7758 E1= SQRT( EM1**2 + PX1**2 + PY1**2 + PZ1**2 )
7761 clin-6/2008 N+D->Deuteron+pi:
7762 * FIND MOMENTUM OF THE FINAL PARTICLES IN THE NUCLEUS-NUCLEUS CMS.
7764 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
7765 c For idpert=1: we produce npertd pert deuterons:
7767 elseif(idpert.eq.2.and.npertd.ge.1) then
7768 c For idpert=2: we first save information for npertd pert deuterons;
7769 c at the last ndloop we create the regular deuteron+pi
7770 c and those pert deuterons:
7773 c Just create the regular deuteron+pi:
7777 dprob1=sdprod/sig/float(npertd)
7779 CALL bbdangle(pxd,pyd,pzd,nt,ipert1,ianti,idloop,pfinal,
7781 CALL ROTATE(PX,PY,PZ,PXd,PYd,PZd)
7782 * LORENTZ-TRANSFORMATION OF THE MOMENTUM OF PARTICLES IN THE FINAL STATE
7783 * FROM THE NN CMS FRAME INTO THE GLOBAL CMS FRAME:
7786 E1dCM=SQRT(xmass**2+PXd**2+PYd**2+PZd**2)
7787 P1dBETA=PXd*BETAX+PYd*BETAY+PZd*BETAZ
7788 TRANSF=GAMMA*(GAMMA*P1dBETA/(GAMMA+1.)+E1dCM)
7789 pxi1=BETAX*TRANSF+PXd
7790 pyi1=BETAY*TRANSF+PYd
7791 pzi1=BETAZ*TRANSF+PZd
7797 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
7798 cccc Perturbative production for idpert=1:
7800 PPION(1,NNN,IRUN)=pxi1
7801 PPION(2,NNN,IRUN)=pyi1
7802 PPION(3,NNN,IRUN)=pzi1
7805 RPION(1,NNN,IRUN)=R(1,I1)
7806 RPION(2,NNN,IRUN)=R(2,I1)
7807 RPION(3,NNN,IRUN)=R(3,I1)
7808 clin-6/2008 assign the perturbative probability:
7809 dppion(NNN,IRUN)=sdprod/sig/float(npertd)
7810 elseif(idpert.eq.2.and.idloop.le.npertd) then
7811 clin-6/2008 For idpert=2, we produce NPERTD perturbative (anti)deuterons
7812 c only when a regular (anti)deuteron+pi is produced in NN collisions.
7813 c First save the info for the perturbative deuterons:
7819 cccc Regular production:
7820 c For the regular pion: do LORENTZ-TRANSFORMATION:
7822 E2piCM=SQRT(xmm**2+PXd**2+PYd**2+PZd**2)
7823 P2piBETA=-PXd*BETAX-PYd*BETAY-PZd*BETAZ
7824 TRANSF=GAMMA*(GAMMA*P2piBETA/(GAMMA+1.)+E2piCM)
7825 pxi2=BETAX*TRANSF-PXd
7826 pyi2=BETAY*TRANSF-PYd
7827 pzi2=BETAZ*TRANSF-PZd
7831 c Remove regular pion to check the equivalence
7832 c between the perturbative and regular deuteron results:
7842 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
7844 c For the regular deuteron:
7853 c For idpert=2: create the perturbative deuterons:
7854 if(idpert.eq.2.and.idloop.eq.ndloop) then
7857 PPION(1,NNN,IRUN)=ppd(1,ipertd)
7858 PPION(2,NNN,IRUN)=ppd(2,ipertd)
7859 PPION(3,NNN,IRUN)=ppd(3,ipertd)
7861 LPION(NNN,IRUN)=lbpd(ipertd)
7862 RPION(1,NNN,IRUN)=R(1,I1)
7863 RPION(2,NNN,IRUN)=R(2,I1)
7864 RPION(3,NNN,IRUN)=R(3,I1)
7865 clin-6/2008 assign the perturbative probability:
7866 dppion(NNN,IRUN)=1./float(npertd)
7873 clin-6/2008 N+D->Deuteron+pi over
7876 **********************************
7879 SUBROUTINE CRDD(IRUN,PX,PY,PZ,SRT,I1,I2,IBLOCK,
7880 1NTAG,SIGNN,SIG,NT,ipert1)
7883 * DEALING WITH BARYON RESONANCE-BARYON RESONANCE COLLISIONS*
7886 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
7888 * NSTAR =1 INCLUDING N* RESORANCE,ELSE NOT *
7889 * NDIRCT=1 INCLUDING DIRECT PION PRODUCTION PROCESS *
7890 * IBLOCK - THE INFORMATION BACK *
7891 * 0-> COLLISION CANNOT HAPPEN *
7892 * 1-> N-N ELASTIC COLLISION *
7893 * 2-> N+N->N+DELTA,OR N+N->N+N* REACTION *
7894 * 3-> N+DELTA->N+N OR N+N*->N+N REACTION *
7895 * 4-> N+N->N+N+PION,DIRTCT PROCESS *
7896 * 5-> DELTA(N*)+DELTA(N*) TOTAL COLLISIONS *
7897 * N12 - IS USED TO SPECIFY BARYON-BARYON REACTION *
7898 * CHANNELS. M12 IS THE REVERSAL CHANNEL OF N12 *
7900 * M12=1 FOR p+n-->delta(+)+ n *
7901 * 2 p+n-->delta(0)+ p *
7902 * 3 p+p-->delta(++)+n *
7903 * 4 p+p-->delta(+)+p *
7904 * 5 n+n-->delta(0)+n *
7905 * 6 n+n-->delta(-)+p *
7906 * 7 n+p-->N*(0)(1440)+p *
7907 * 8 n+p-->N*(+)(1440)+n *
7908 * 9 p+p-->N*(+)(1535)+p *
7909 * 10 n+n-->N*(0)(1535)+n *
7910 * 11 n+p-->N*(+)(1535)+n *
7911 * 12 n+p-->N*(0)(1535)+p
7912 * 13 D(++)+D(-)-->N*(+)(1440)+n
7913 * 14 D(++)+D(-)-->N*(0)(1440)+p
7914 * 15 D(+)+D(0)--->N*(+)(1440)+n
7915 * 16 D(+)+D(0)--->N*(0)(1440)+p
7916 * 17 D(++)+D(0)-->N*(+)(1535)+p
7917 * 18 D(++)+D(-)-->N*(0)(1535)+p
7918 * 19 D(++)+D(-)-->N*(+)(1535)+n
7919 * 20 D(+)+D(+)-->N*(+)(1535)+p
7920 * 21 D(+)+D(0)-->N*(+)(1535)+n
7921 * 22 D(+)+D(0)-->N*(0)(1535)+p
7922 * 23 D(+)+D(-)-->N*(0)(1535)+n
7923 * 24 D(0)+D(0)-->N*(0)(1535)+n
7924 * 25 N*(+)(14)+N*(+)(14)-->N*(+)(15)+p
7925 * 26 N*(0)(14)+N*(0)(14)-->N*(0)(15)+n
7926 * 27 N*(+)(14)+N*(0)(14)-->N*(+)(15)+n
7927 * 28 N*(+)(14)+N*(0)(14)-->N*(0)(15)+p
7928 * 29 N*(+)(14)+D+-->N*(+)(15)+p
7929 * 30 N*(+)(14)+D0-->N*(+)(15)+n
7930 * 31 N*(+)(14)+D(-)-->N*(0)(1535)+n
7931 * 32 N*(0)(14)+D++--->N*(+)(15)+p
7932 * 33 N*(0)(14)+D+--->N*(+)(15)+n
7933 * 34 N*(0)(14)+D+--->N*(0)(15)+p
7934 * 35 N*(0)(14)+D0-->N*(0)(15)+n
7935 * 36 N*(+)(14)+D0--->N*(0)(15)+p
7937 * AND MORE CHANNELS AS LISTED IN THE NOTE BOOK
7939 * NOTE ABOUT N*(1440) RESORANCE: *
7940 * As it has been discussed in VerWest's paper,I= 1 (initial isospin)
7941 * channel can all be attributed to delta resorance while I= 0 *
7942 * channel can all be attribured to N* resorance.Only in n+p *
7943 * one can have I=0 channel so is the N*(1440) resorance *
7944 * REFERENCES: J. CUGNON ET AL., NUCL. PHYS. A352, 505 (1981) *
7945 * Y. KITAZOE ET AL., PHYS. LETT. 166B, 35 (1986) *
7946 * B. VerWest el al., PHYS. PRV. C25 (1982)1979 *
7947 * Gy. Wolf et al, Nucl Phys A517 (1990) 615 *
7948 * CUTOFF = 2 * AVMASS + 20 MEV *
7950 * for N*(1535) we use the parameterization by Gy. Wolf et al *
7951 * Nucl phys A552 (1993) 349, added May 18, 1994 *
7952 **********************************
7953 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
7954 1 AMP=0.93828,AP1=0.13496,AKA=0.498,APHI=1.020,
7955 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
7956 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
7957 parameter (xmd=1.8756,npdmax=10000)
7958 COMMON /AA/ R(3,MAXSTR)
7960 COMMON /BB/ P(3,MAXSTR)
7962 COMMON /CC/ E(MAXSTR)
7964 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
7966 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
7968 common /gg/ dx,dy,dz,dpx,dpy,dpz
7970 COMMON /INPUT/ NSTAR,NDIRCT,DIR
7974 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
7978 COMMON /PA/RPION(3,MAXSTR,MAXR)
7980 COMMON /PB/PPION(3,MAXSTR,MAXR)
7982 COMMON /PC/EPION(MAXSTR,MAXR)
7984 COMMON /PD/LPION(MAXSTR,MAXR)
7986 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
7988 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
7989 1 px1n,py1n,pz1n,dp1n
7993 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
7994 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
7995 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
7997 common /para8/ idpert,npertd,idxsec
7998 dimension ppd(3,npdmax),lbpd(npdmax)
8000 *-----------------------------------------------------------------------
8007 PR = SQRT( PX**2 + PY**2 + PZ**2 )
8009 IF(PX .EQ. 0.0 .AND. PY .EQ. 0.0) THEN
8016 if(lb(i1).lt.0 .and. lb(i2).lt.0)ianti=1
8018 clin-6/2008 Production of perturbative deuterons for idpert=1:
8019 call sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
8020 if(idpert.eq.1.and.ipert1.eq.1) then
8021 IF (SRT .LT. 2.012) RETURN
8022 if((iabs(lb(i1)).ge.6.and.iabs(lb(i1)).le.13)
8023 1 .and.(iabs(lb(i2)).ge.6.and.iabs(lb(i2)).le.13)) then
8030 *-----------------------------------------------------------------------
8031 *COM: TEST FOR ELASTIC SCATTERING (EITHER N-N OR DELTA-DELTA 0R
8032 * N-DELTA OR N*-N* or N*-Delta)
8033 IF (X1 .LE. SIGNN/SIG) THEN
8034 *COM: PARAMETRISATION IS TAKEN FROM THE CUGNON-PAPER
8035 AS = ( 3.65 * (SRT - 1.8766) )**6
8036 A = 6.0 * AS / (1.0 + AS)
8039 clin-10/24/02 T1 = DLOG( (1-X) * DEXP(dble(A)*dble(TA)) + X ) / A
8040 T1 = sngl(DLOG(dble(1.-X)*DEXP(dble(A)*dble(TA))+dble(X)))/ A
8042 T1 = 2.0 * PI * RANART(NSEED)
8046 *COM: TEST FOR INELASTIC SCATTERING
8047 * IF THE AVAILABLE ENERGY IS LESS THAN THE PION-MASS, NOTHING
8048 * CAN HAPPEN ANY MORE ==> RETURN (2.15 = 2*AVMASS +2*PI-MASS)
8049 IF (SRT .LT. 2.15) RETURN
8050 * IF THERE WERE 2 N*(1535) AND THEY DIDN'T SCATT. ELAST.,
8051 * ALLOW THEM TO PRODUCE KAONS. NO OTHER INELASTIC CHANNELS
8053 C if((lb(i1).ge.12).and.(lb(i2).ge.12))return
8054 * ALL the inelastic collisions between N*(1535) and Delta as well
8055 * as N*(1440) TO PRODUCE KAONS, NO OTHER CHANNELS ARE KNOWN
8056 C if((lb(i1).ge.12).and.(lb(i2).ge.3))return
8057 C if((lb(i2).ge.12).and.(lb(i1).ge.3))return
8058 * calculate the N*(1535) production cross section in I1+I2 collisions
8059 call N1535(iabs(lb(i1)),iabs(lb(i2)),srt,X1535)
8061 * for Delta+Delta-->N*(1440 OR 1535)+N AND N*(1440)+N*(1440)-->N*(1535)+X
8062 * AND DELTA+N*(1440)-->N*(1535)+X
8063 * WE ASSUME THEY HAVE THE SAME CROSS SECTIONS as CORRESPONDING N+N COLLISION):
8064 * FOR D++D0, D+D+,D+D-,D0D0,N*+N*+,N*0N*0,N*(+)D+,N*(+)D(-),N*(0)D(0)
8065 * N*(1535) production, kaon production and reabsorption through
8066 * D(N*)+D(N*)-->NN are ALLOWED.
8067 * CROSS SECTION FOR KAON PRODUCTION from the four channels are
8081 if(srt.le.t1nlk)go to 222
8086 if(srt.le.t1dlk)go to 222
8088 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
8094 if(srt.le.t1nsk)go to 222
8095 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
8097 XSK2=1.5*(PPK1(srt)+PPK0(srt))
8101 if(srt.le.t1dsk)go to 222
8102 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
8104 XSK4=1.5*(PPK1(srt)+PPK0(srt))
8107 if(srt.le.(2.*amn+aphi))go to 222
8108 c !! mb put the correct form
8111 * THE TOTAL KAON+ PRODUCTION CROSS SECTION IS THEN
8112 222 SIGK=XSK1+XSK2+XSK3+XSK4
8119 SIGK = 2.0 * SIGK + xsk5
8120 cbz3/7/99 neutralk end
8122 * The reabsorption cross section for the process
8123 * D(N*)D(N*)-->NN is
8124 s2d=reab2d(i1,i2,srt)
8130 *(1) N*(1535)+D(N*(1440)) reactions
8131 * we allow kaon production and reabsorption only
8132 if(((iabs(lb(i1)).ge.12).and.(iabs(lb(i2)).ge.12)).OR.
8133 & ((iabs(lb(i1)).ge.12).and.(iabs(lb(i2)).ge.6)).OR.
8134 & ((iabs(lb(i2)).ge.12).and.(iabs(lb(i1)).ge.6)))THEN
8137 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
8138 c if(x1.gt.(signd+signn)/sig)return
8139 if(x1.gt.(signd+signn+sdprod)/sig)return
8141 * if kaon production
8143 c IF(SIGK/SIG.GE.RANART(NSEED))GO TO 306
8144 IF((SIGK+sdprod)/SIG.GE.RANART(NSEED))GO TO 306
8149 IDD=iabs(LB(I1)*LB(I2))
8150 * channels have the same charge as pp
8151 IF((IDD.EQ.63).OR.(IDD.EQ.64).OR.(IDD.EQ.48).
8152 1 OR.(IDD.EQ.49).OR.(IDD.EQ.11*11).OR.(IDD.EQ.10*10).
8153 2 OR.(IDD.EQ.88).OR.(IDD.EQ.66).
8154 3 OR.(IDD.EQ.90).OR.(IDD.EQ.70))THEN
8155 SIGND=X1535+SIGK+s2d
8157 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
8158 c IF (X1.GT.(SIGNN+SIGND)/SIG)RETURN
8159 IF (X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
8161 * if kaon production
8162 IF(SIGK/SIGND.GT.RANART(NSEED))GO TO 306
8164 if(s2d/(x1535+s2d).gt.RANART(NSEED))go to 1012
8165 * if N*(1535) production
8170 IF(IDD.EQ.121)N12=25
8171 IF(IDD.EQ.100)N12=26
8178 * IN DELTA+N*(1440) and N*(1440)+N*(1440) COLLISIONS,
8179 * N*(1535), kaon production and reabsorption are ALLOWED
8180 * IN N*(1440)+N*(1440) COLLISIONS, ONLY N*(1535) IS ALLOWED
8181 IF((IDD.EQ.110).OR.(IDD.EQ.77).OR.(IDD.EQ.80))THEN
8183 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
8184 c IF(X1.GT.(SIGNN+X1535+SIGK+s2d)/SIG)RETURN
8185 IF(X1.GT.(SIGNN+X1535+SIGK+s2d+sdprod)/SIG)RETURN
8187 IF(SIGK/(X1535+SIGK+s2d).GT.RANART(NSEED))GO TO 306
8188 if(s2d/(x1535+s2d).gt.RANART(NSEED))go to 1012
8190 IF((IDD.EQ.77).AND.(RANART(NSEED).LE.0.5))N12=36
8192 IF((IDD.EQ.80).AND.(RANART(NSEED).LE.0.5))N12=35
8193 IF(IDD.EQ.110)N12=27
8194 IF((IDD.EQ.110).AND.(RANART(NSEED).LE.0.5))N12=28
8197 IF((IDD.EQ.54).OR.(IDD.EQ.56))THEN
8198 * LIKE FOR N+P COLLISION,
8199 * IN DELTA+DELTA COLLISIONS BOTH N*(1440) AND N*(1535) CAN BE PRODUCED
8200 SIG2=(3./4.)*SIGMA(SRT,2,0,1)
8201 SIGND=2.*(SIG2+X1535)+SIGK+s2d
8203 IF(X1.LE.((SIGNN+sdprod)/SIG)) GO TO 108
8204 c IF(X1.GT.(SIGNN+SIGND)/SIG)RETURN
8205 IF(X1.GT.(SIGNN+SIGND+sdprod)/SIG)RETURN
8207 IF(SIGK/SIGND.GT.RANART(NSEED))GO TO 306
8208 if(s2d/(2.*(sig2+x1535)+s2d).gt.RANART(NSEED))go to 1012
8209 IF(RANART(NSEED).LT.X1535/(SIG2+X1535))THEN
8210 * N*(1535) PRODUCTION
8212 IF((IDD.EQ.54).AND.(RANART(NSEED).LE.0.5))N12=19
8214 IF((IDD.EQ.56).AND.(RANART(NSEED).LE.0.5))N12=22
8216 * N*(144) PRODUCTION
8218 IF((IDD.EQ.54).AND.(RANART(NSEED).LE.0.5))N12=14
8220 IF((IDD.EQ.56).AND.(RANART(NSEED).LE.0.5))N12=16
8225 *PARAMETRIZATION OF THE SHAPE OF THE N*(1440) AND N*(1535)
8226 * RESONANCE ACCORDING
8227 * TO kitazoe's or J.D.JACKSON'S MASS FORMULA AND BREIT WIGNER
8228 * FORMULA FOR N* RESORANCE
8229 * DETERMINE DELTA MASS VIA REJECTION METHOD.
8230 DMAX = SRT - AVMASS-0.005
8232 IF((n12.ge.13).and.(n12.le.16))then
8233 * N*(1440) production
8234 IF(DMAX.LT.1.44) THEN
8238 clin-10/25/02 get rid of argument usage mismatch in FNS():
8240 c FM=FNS(1.44,SRT,1.)
8241 FM=FNS(xdmass,SRT,1.)
8245 IF(FM.EQ.0.)FM=1.E-09
8247 11 DM=RANART(NSEED)*(DMAX-DMIN)+DMIN
8249 IF((RANART(NSEED).GT.FNS(DM,SRT,1.)/FM).AND.
8250 1 (NTRY2.LE.10)) GO TO 11
8252 clin-2/26/03 limit the N* mass below a certain value
8253 c (here taken as its central value + 2* B-W fullwidth):
8254 if(dm.gt.2.14) goto 11
8258 IF((n12.ge.17).AND.(N12.LE.36))then
8259 * N*(1535) production
8260 IF(DMAX.LT.1.535) THEN
8264 clin-10/25/02 get rid of argument usage mismatch in FNS():
8266 c FM=FD5(1.535,SRT,1.)
8267 FM=FD5(xdmass,SRT,1.)
8271 IF(FM.EQ.0.)FM=1.E-09
8273 12 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
8275 IF((RANART(NSEED) .GT. FD5(DM,SRT,1.)/FM).AND.
8276 1 (NTRY1.LE.10)) GOTO 12
8278 clin-2/26/03 limit the N* mass below a certain value
8279 c (here taken as its central value + 2* B-W fullwidth):
8280 if(dm.gt.1.84) goto 12
8284 *-------------------------------------------------------
8285 * RELABLE BARYON I1 AND I2
8286 *13 D(++)+D(-)--> N*(+)(14)+n
8288 IF(RANART(NSEED).LE.0.5)THEN
8301 *14 D(++)+D(-)--> N*(0)(14)+P
8303 IF(RANART(NSEED).LE.0.5)THEN
8316 *15 D(+)+D(0)--> N*(+)(14)+n
8318 IF(RANART(NSEED).LE.0.5)THEN
8331 *16 D(+)+D(0)--> N*(0)(14)+P
8333 IF(RANART(NSEED).LE.0.5)THEN
8346 *17 D(++)+D(0)--> N*(+)(14)+P
8354 *18 D(++)+D(-)--> N*(0)(15)+P
8356 IF(RANART(NSEED).LE.0.5)THEN
8369 *19 D(++)+D(-)--> N*(+)(15)+N
8371 IF(RANART(NSEED).LE.0.5)THEN
8384 *20 D(+)+D(+)--> N*(+)(15)+P
8386 IF(RANART(NSEED).LE.0.5)THEN
8399 *21 D(+)+D(0)--> N*(+)(15)+N
8401 IF(RANART(NSEED).LE.0.5)THEN
8414 *22 D(+)+D(0)--> N*(0)(15)+P
8416 IF(RANART(NSEED).LE.0.5)THEN
8429 *23 D(+)+D(-)--> N*(0)(15)+N
8431 IF(RANART(NSEED).LE.0.5)THEN
8444 *24 D(0)+D(0)--> N*(0)(15)+N
8452 *25 N*(+)+N*(+)--> N*(0)(15)+P
8460 *26 N*(0)+N*(0)--> N*(0)(15)+N
8468 *27 N*(+)+N*(0)--> N*(+)(15)+N
8470 IF(RANART(NSEED).LE.0.5)THEN
8483 *28 N*(+)+N*(0)--> N*(0)(15)+P
8485 IF(RANART(NSEED).LE.0.5)THEN
8498 *27 N*(+)+N*(0)--> N*(+)(15)+N
8500 IF(RANART(NSEED).LE.0.5)THEN
8513 *29 N*(+)+D(+)--> N*(+)(15)+P
8515 IF(RANART(NSEED).LE.0.5)THEN
8528 *30 N*(+)+D(0)--> N*(+)(15)+N
8530 IF(RANART(NSEED).LE.0.5)THEN
8543 *31 N*(+)+D(-)--> N*(0)(15)+N
8545 IF(RANART(NSEED).LE.0.5)THEN
8558 *32 N*(0)+D(++)--> N*(+)(15)+P
8560 IF(RANART(NSEED).LE.0.5)THEN
8573 *33 N*(0)+D(+)--> N*(+)(15)+N
8575 IF(RANART(NSEED).LE.0.5)THEN
8588 *34 N*(0)+D(+)--> N*(0)(15)+P
8590 IF(RANART(NSEED).LE.0.5)THEN
8603 *35 N*(0)+D(0)--> N*(0)(15)+N
8605 IF(RANART(NSEED).LE.0.5)THEN
8618 *36 N*(+)+D(0)--> N*(0)(15)+P
8620 IF(RANART(NSEED).LE.0.5)THEN
8638 *-------------------------------------------------------
8639 * RELABLE BARYON I1 AND I2 in the reabsorption processes
8640 *37 D(++)+D(-)--> n+p
8642 IF(RANART(NSEED).LE.0.5)THEN
8655 *38 D(+)+D(0)--> n+p
8657 IF(RANART(NSEED).LE.0.5)THEN
8670 *39 D(++)+D(0)--> p+p
8678 *40 D(+)+D(+)--> p+p
8686 *41 D(+)+D(-)--> n+n
8694 *42 D(0)+D(0)--> n+n
8702 *43 N*(+)+N*(+)--> p+p
8703 IF(ich.EQ.11*11.or.ich.eq.13*13.or.ich.eq.11*13)THEN
8710 *44 N*(0)(1440)+N*(0)--> n+n
8711 IF(ich.EQ.10*10.or.ich.eq.12*12.or.ich.eq.10*12)THEN
8718 *45 N*(+)+N*(0)--> n+p
8719 IF(ich.EQ.10*11.or.ich.eq.12*13.or.ich.
8720 & eq.10*13.or.ich.eq.11*12)THEN
8721 IF(RANART(NSEED).LE.0.5)THEN
8734 *46 N*(+)+D(+)--> p+p
8735 IF(ich.eq.11*8.or.ich.eq.13*8)THEN
8742 *47 N*(+)+D(0)--> n+p
8743 IF(ich.EQ.11*7.or.ich.eq.13*7)THEN
8744 IF(RANART(NSEED).LE.0.5)THEN
8757 *48 N*(+)+D(-)--> n+n
8758 IF(ich.EQ.11*6.or.ich.eq.13*6)THEN
8765 *49 N*(0)+D(++)--> p+p
8766 IF(ich.EQ.10*9.or.ich.eq.12*9)THEN
8773 *50 N*(0)+D(0)--> n+n
8774 IF(ich.EQ.10*7.or.ich.eq.12*7)THEN
8781 *51 N*(0)+D(+)--> n+p
8782 IF(ich.EQ.10*8.or.ich.eq.12*8)THEN
8783 IF(RANART(NSEED).LE.0.5)THEN
8800 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
8801 * ENERGY CONSERVATION
8802 * resonance production or absorption in resonance+resonance collisions is
8803 * assumed to have the same pt distribution as pp
8806 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
8807 1 - 4.0 * (EM1*EM2)**2
8808 IF(PR2.LE.0.)PR2=1.e-09
8809 PR=SQRT(PR2)/(2.*SRT)
8810 if(srt.le.2.14)C1= 1.0 - 2.0 * RANART(NSEED)
8811 if(srt.gt.2.14.and.srt.le.2.4)c1=anga(srt,iseed)
8814 clin-10/25/02 get rid of argument usage mismatch in PTR():
8816 c cc1=ptr(0.33*pr,iseed)
8820 c1=sqrt(pr**2-cc1**2)/pr
8822 T1 = 2.0 * PI * RANART(NSEED)
8823 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
8828 *COM: SET THE NEW MOMENTUM COORDINATES
8829 107 S1 = SQRT( 1.0 - C1**2 )
8830 S2 = SQRT( 1.0 - C2**2 )
8835 PZ = PR * ( C1*C2 - S1*S2*CT1 )
8836 SS = C2 * S1 * CT1 + S2 * C1
8837 PX = PR * ( SS*CT2 - S1*ST1*ST2 )
8838 PY = PR * ( SS*ST2 + S1*ST1*CT2 )
8840 * FOR THE DD-->KAON+X PROCESS, FIND MOMENTUM OF THE FINAL PARTICLES IN
8841 * THE NUCLEUS-NUCLEUS CMS.
8843 csp11/21/01 phi production
8844 if(XSK5/sigK.gt.RANART(NSEED))then
8847 LB(I1) = 1 + int(2 * RANART(NSEED))
8848 LB(I2) = 1 + int(2 * RANART(NSEED))
8851 EPION(NNN,IRUN)=APHI
8856 if(ianti .eq. 1)iblock=-10
8859 * DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
8864 * only lambda production is possible
8865 * (1.1)P+P-->p+L+kaon+
8867 LB(I1) = 1 + int(2 * RANART(NSEED))
8871 if(srt.le.2.74.and.srt.gt.2.63)then
8872 * both Lambda and sigma production are possible
8873 if(XSK1/(XSK1+XSK2).gt.RANART(NSEED))then
8876 LB(I1) = 1 + int(2 * RANART(NSEED))
8880 LB(I1) = 1 + int(2 * RANART(NSEED))
8881 LB(I2) = 15 + int(3 * RANART(NSEED))
8886 if(srt.le.2.77.and.srt.gt.2.74)then
8887 * then pp-->Delta lamda kaon can happen
8888 if(xsk1/(xsk1+xsk2+xsk3).gt.RANART(NSEED))then
8889 * * (1.1)P+P-->p+L+kaon+
8891 LB(I1) = 1 + int(2 * RANART(NSEED))
8895 if(xsk2/(xsk2+xsk3).gt.RANART(NSEED))then
8898 LB(I1) = 1 + int(2 * RANART(NSEED))
8899 LB(I2) = 15 + int(3 * RANART(NSEED))
8903 LB(I1) = 6 + int(4 * RANART(NSEED))
8910 * all four channels are possible
8911 if(xsk1/(xsk1+xsk2+xsk3+xsk4).gt.RANART(NSEED))then
8912 * p lambda k production
8914 LB(I1) = 1 + int(2 * RANART(NSEED))
8918 if(xsk3/(xsk2+xsk3+xsk4).gt.RANART(NSEED))then
8919 * delta l K production
8921 LB(I1) = 6 + int(4 * RANART(NSEED))
8925 if(xsk2/(xsk2+xsk4).gt.RANART(NSEED))then
8926 * n sigma k production
8927 LB(I1) = 1 + int(2 * RANART(NSEED))
8928 LB(I2) = 15 + int(3 * RANART(NSEED))
8933 LB(I1) = 6 + int(4 * RANART(NSEED))
8934 LB(I2) = 15 + int(3 * RANART(NSEED))
8941 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
8944 if(LPION(NNN,IRUN) .eq. 23)LPION(NNN,IRUN)=21
8948 * KEEP ALL COORDINATES OF PARTICLE 2 FOR POSSIBLE PHASE SPACE CHANGE
8950 129 CALL BBKAON(ic,SRT,PX3,PY3,PZ3,DM3,PX4,PY4,PZ4,DM4,
8951 & PPX,PPY,PPZ,icou1)
8953 if((icou1.lt.0).AND.(NTRY1.LE.20))GO TO 129
8954 c if(icou1.lt.0)return
8955 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
8956 CALL ROTATE(PX,PY,PZ,PX3,PY3,PZ3)
8957 CALL ROTATE(PX,PY,PZ,PX4,PY4,PZ4)
8958 CALL ROTATE(PX,PY,PZ,PPX,PPY,PPZ)
8959 * FIND THE MOMENTUM OF PARTICLES IN THE FINAL STATE IN THE NUCLEUS-
8960 * NUCLEUS CMS. FRAME
8961 * (1) for the necleon/delta
8962 * LORENTZ-TRANSFORMATION INTO LAB FRAME FOR DELTA1
8963 E1CM = SQRT (dm3**2 + PX3**2 + PY3**2 + PZ3**2)
8964 P1BETA = PX3*BETAX + PY3*BETAY + PZ3*BETAZ
8965 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
8966 Pt1i1 = BETAX * TRANSF + PX3
8967 Pt2i1 = BETAY * TRANSF + PY3
8968 Pt3i1 = BETAZ * TRANSF + PZ3
8970 * (2) for the lambda/sigma
8971 E2CM = SQRT (dm4**2 + PX4**2 + PY4**2 + PZ4**2)
8972 P2BETA = PX4*BETAX+PY4*BETAY+PZ4*BETAZ
8973 TRANSF = GAMMA * (GAMMA*P2BETA / (GAMMA + 1.) + E2CM)
8974 Pt1I2 = BETAX * TRANSF + PX4
8975 Pt2I2 = BETAY * TRANSF + PY4
8976 Pt3I2 = BETAZ * TRANSF + PZ4
8978 * GET the kaon'S MOMENTUM AND COORDINATES IN NUCLEUS-NUCLEUS CMS. FRAME
8979 EPCM=SQRT(aka**2+PPX**2+PPY**2+PPZ**2)
8980 PPBETA=PPX*BETAX+PPY*BETAY+PPZ*BETAZ
8981 TRANSF=GAMMA*(GAMMA*PPBETA/(GAMMA+1.)+EPCM)
8982 PPION(1,NNN,IRUN)=BETAX*TRANSF+PPX
8983 PPION(2,NNN,IRUN)=BETAY*TRANSF+PPY
8984 PPION(3,NNN,IRUN)=BETAZ*TRANSF+PPZ
8986 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
8988 c2007 X01 = 1.0 - 2.0 * RANART(NSEED)
8989 c Y01 = 1.0 - 2.0 * RANART(NSEED)
8990 c Z01 = 1.0 - 2.0 * RANART(NSEED)
8991 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2007
8992 c RPION(1,NNN,IRUN)=R(1,I1)+0.5*x01
8993 c RPION(2,NNN,IRUN)=R(2,I1)+0.5*y01
8994 c RPION(3,NNN,IRUN)=R(3,I1)+0.5*z01
8995 RPION(1,NNN,IRUN)=R(1,I1)
8996 RPION(2,NNN,IRUN)=R(2,I1)
8997 RPION(3,NNN,IRUN)=R(3,I1)
8999 * assign the nucleon/delta and lambda/sigma to i1 or i2 to keep the
9000 * leadng particle behaviour
9001 C if((pt1i1*px1+pt2i1*py1+pt3i1*pz1).gt.0)then
9023 E1= SQRT( EM1**2 + PX1**2 + PY1**2 + PZ1**2 )
9026 clin-6/2008 D+D->Deuteron+pi:
9027 * FIND MOMENTUM OF THE FINAL PARTICLES IN THE NUCLEUS-NUCLEUS CMS.
9029 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
9030 c For idpert=1: we produce npertd pert deuterons:
9032 elseif(idpert.eq.2.and.npertd.ge.1) then
9033 c For idpert=2: we first save information for npertd pert deuterons;
9034 c at the last ndloop we create the regular deuteron+pi
9035 c and those pert deuterons:
9038 c Just create the regular deuteron+pi:
9042 dprob1=sdprod/sig/float(npertd)
9044 CALL bbdangle(pxd,pyd,pzd,nt,ipert1,ianti,idloop,pfinal,
9046 CALL ROTATE(PX,PY,PZ,PXd,PYd,PZd)
9047 * LORENTZ-TRANSFORMATION OF THE MOMENTUM OF PARTICLES IN THE FINAL STATE
9048 * FROM THE NN CMS FRAME INTO THE GLOBAL CMS FRAME:
9051 E1dCM=SQRT(xmass**2+PXd**2+PYd**2+PZd**2)
9052 P1dBETA=PXd*BETAX+PYd*BETAY+PZd*BETAZ
9053 TRANSF=GAMMA*(GAMMA*P1dBETA/(GAMMA+1.)+E1dCM)
9054 pxi1=BETAX*TRANSF+PXd
9055 pyi1=BETAY*TRANSF+PYd
9056 pzi1=BETAZ*TRANSF+PZd
9062 if(idpert.eq.1.and.ipert1.eq.1.and.npertd.ge.1) then
9063 cccc Perturbative production for idpert=1:
9065 PPION(1,NNN,IRUN)=pxi1
9066 PPION(2,NNN,IRUN)=pyi1
9067 PPION(3,NNN,IRUN)=pzi1
9070 RPION(1,NNN,IRUN)=R(1,I1)
9071 RPION(2,NNN,IRUN)=R(2,I1)
9072 RPION(3,NNN,IRUN)=R(3,I1)
9073 clin-6/2008 assign the perturbative probability:
9074 dppion(NNN,IRUN)=sdprod/sig/float(npertd)
9075 elseif(idpert.eq.2.and.idloop.le.npertd) then
9076 clin-6/2008 For idpert=2, we produce NPERTD perturbative (anti)deuterons
9077 c only when a regular (anti)deuteron+pi is produced in NN collisions.
9078 c First save the info for the perturbative deuterons:
9084 cccc Regular production:
9085 c For the regular pion: do LORENTZ-TRANSFORMATION:
9087 E2piCM=SQRT(xmm**2+PXd**2+PYd**2+PZd**2)
9088 P2piBETA=-PXd*BETAX-PYd*BETAY-PZd*BETAZ
9089 TRANSF=GAMMA*(GAMMA*P2piBETA/(GAMMA+1.)+E2piCM)
9090 pxi2=BETAX*TRANSF-PXd
9091 pyi2=BETAY*TRANSF-PYd
9092 pzi2=BETAZ*TRANSF-PZd
9096 c Remove regular pion to check the equivalence
9097 c between the perturbative and regular deuteron results:
9107 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
9109 c For the regular deuteron:
9118 c For idpert=2: create the perturbative deuterons:
9119 if(idpert.eq.2.and.idloop.eq.ndloop) then
9122 PPION(1,NNN,IRUN)=ppd(1,ipertd)
9123 PPION(2,NNN,IRUN)=ppd(2,ipertd)
9124 PPION(3,NNN,IRUN)=ppd(3,ipertd)
9126 LPION(NNN,IRUN)=lbpd(ipertd)
9127 RPION(1,NNN,IRUN)=R(1,I1)
9128 RPION(2,NNN,IRUN)=R(2,I1)
9129 RPION(3,NNN,IRUN)=R(3,I1)
9130 clin-6/2008 assign the perturbative probability:
9131 dppion(NNN,IRUN)=1./float(npertd)
9138 clin-6/2008 D+D->Deuteron+pi over
9141 **********************************
9142 **********************************
9144 SUBROUTINE INIT(MINNUM,MAXNUM,NUM,RADIUS,X0,Z0,P0,
9145 & GAMMA,ISEED,MASS,IOPT)
9147 * PURPOSE: PROVIDING INITIAL CONDITIONS FOR PHASE-SPACE *
9148 * DISTRIBUTION OF TESTPARTICLES *
9149 * VARIABLES: (ALL INPUT) *
9150 * MINNUM - FIRST TESTPARTICLE TREATED IN ONE RUN (INTEGER) *
9151 * MAXNUM - LAST TESTPARTICLE TREATED IN ONE RUN (INTEGER) *
9152 * NUM - NUMBER OF TESTPARTICLES PER NUCLEON (INTEGER) *
9153 * RADIUS - RADIUS OF NUCLEUS "FM" (REAL) *
9154 * X0,Z0 - DISPLACEMENT OF CENTER OF NUCLEUS IN X,Z- *
9155 * DIRECTION "FM" (REAL) *
9156 * P0 - MOMENTUM-BOOST IN C.M. FRAME "GEV/C" (REAL) *
9157 * GAMMA - RELATIVISTIC GAMMA-FACTOR (REAL) *
9158 * ISEED - SEED FOR RANDOM-NUMBER GENERATOR (INTEGER) *
9159 * MASS - TOTAL MASS OF THE SYSTEM (INTEGER) *
9160 * IOPT - OPTION FOR DIFFERENT OCCUPATION OF MOMENTUM *
9163 **********************************
9164 PARAMETER (MAXSTR=150001, AMU = 0.9383)
9165 PARAMETER (MAXX = 20, MAXZ = 24)
9166 PARAMETER (PI=3.1415926)
9169 COMMON /AA/ R(3,MAXSTR)
9171 COMMON /BB/ P(3,MAXSTR)
9173 COMMON /CC/ E(MAXSTR)
9175 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9176 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9177 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9179 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
9181 common /ss/ inout(20)
9186 *----------------------------------------------------------------------
9187 * PREPARATION FOR LORENTZ-TRANSFORMATIONS
9190 IF (P0 .NE. 0.) THEN
9195 BETA = SIGN * SQRT(GAMMA**2-1.)/GAMMA
9196 *-----------------------------------------------------------------------
9197 * TARGET-ID = 1 AND PROJECTILE-ID = -1
9199 IF (MINNUM .EQ. 1) THEN
9204 *-----------------------------------------------------------------------
9205 * IDENTIFICATION OF TESTPARTICLES AND ASSIGMENT OF RESTMASS
9207 * LOOP OVER ALL PARALLEL RUNS:
9209 DO 100 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9213 *-----------------------------------------------------------------------
9214 * OCCUPATION OF COORDINATE-SPACE
9216 DO 300 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9218 X = 1.0 - 2.0 * RANART(NSEED)
9219 Y = 1.0 - 2.0 * RANART(NSEED)
9220 Z = 1.0 - 2.0 * RANART(NSEED)
9221 IF ((X*X+Y*Y+Z*Z) .GT. 1.0) GOTO 200
9227 *=======================================================================
9228 IF (IOPT .NE. 3) THEN
9230 * OPTION 1: USE WOODS-SAXON PARAMETRIZATION FOR DENSITY AND
9231 *----- CALCULATE LOCAL FERMI-MOMENTUM
9234 DO 1000 IRUN = 1,NUM
9235 DO 600 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9237 PX = 1.0 - 2.0 * RANART(NSEED)
9238 PY = 1.0 - 2.0 * RANART(NSEED)
9239 PZ = 1.0 - 2.0 * RANART(NSEED)
9240 IF (PX*PX+PY*PY+PZ*PZ .GT. 1.0) GOTO 500
9241 RDIST = SQRT( R(1,I)**2 + R(2,I)**2 + R(3,I)**2 )
9242 RHOWS = RHOW0 / ( 1.0 + EXP( (RDIST-RADIUS) / 0.55 ) )
9243 PFERMI = 0.197 * (1.5 * PI*PI * RHOWS)**(1./3.)
9245 * OPTION 2: NUCLEAR MATTER CASE
9246 IF(IOPT.EQ.2) PFERMI=0.27
9247 if(iopt.eq.4) pfermi=0.
9249 P(1,I) = PFERMI * PX
9250 P(2,I) = PFERMI * PY
9251 P(3,I) = PFERMI * PZ
9254 * SET TOTAL MOMENTUM TO 0 IN REST FRAME AND BOOST
9260 DO 900 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9263 PTOT(IDIR) = PTOT(IDIR) + P(IDIR,I)
9266 DO 950 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9268 P(IDIR,I) = P(IDIR,I) - PTOT(IDIR) / FLOAT(NPART)
9271 IF ((IOPT .EQ. 1).or.(iopt.eq.2)) THEN
9272 EPART = SQRT(P(1,I)**2+P(2,I)**2+P(3,I)**2+AMU**2)
9273 P(3,I) = GAMMA*(P(3,I) + BETA*EPART)
9275 P(3,I) = P(3,I) + P0
9282 * OPTION 3: GIVE ALL NUCLEONS JUST A Z-MOMENTUM ACCORDING TO
9283 * THE BOOST OF THE NUCLEI
9285 DO 1200 IRUN = 1,NUM
9286 DO 1100 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9294 *=======================================================================
9295 * PUT PARTICLES IN THEIR POSITION IN COORDINATE-SPACE
9296 * (SHIFT AND RELATIVISTIC CONTRACTION)
9298 DO 1400 IRUN = 1,NUM
9299 DO 1300 I = MINNUM+(IRUN-1)*MASS,MAXNUM+(IRUN-1)*MASS
9300 R(1,I) = R(1,I) + X0
9301 * two nuclei in touch after contraction
9302 R(3,I) = (R(3,I)+Z0)/ GAMMA
9303 * two nuclei in touch before contraction
9304 c R(3,I) = R(3,I) / GAMMA + Z0
9310 **********************************
9312 SUBROUTINE DENS(IPOT,MASS,NUM,NESC)
9314 * PURPOSE: CALCULATION OF LOCAL BARYON, MESON AND ENERGY *
9315 * DENSITY FROM SPATIAL DISTRIBUTION OF TESTPARTICLES*
9317 * VARIABLES (ALL INPUT, ALL INTEGER) *
9318 * MASS - MASS NUMBER OF THE SYSTEM *
9319 * NUM - NUMBER OF TESTPARTICLES PER NUCLEON *
9321 * NESC - NUMBER OF ESCAPED PARTICLES (INTEGER,OUTPUT) *
9323 **********************************
9324 PARAMETER (MAXSTR= 150001,MAXR=1)
9325 PARAMETER (MAXX = 20, MAXZ = 24)
9327 dimension pxl(-maxx:maxx,-maxx:maxx,-maxz:maxz),
9328 1 pyl(-maxx:maxx,-maxx:maxx,-maxz:maxz),
9329 2 pzl(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9330 COMMON /AA/ R(3,MAXSTR)
9332 COMMON /BB/ P(3,MAXSTR)
9334 COMMON /CC/ E(MAXSTR)
9336 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9337 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9338 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9340 COMMON /DDpi/ piRHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9342 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
9344 common /ss/ inout(20)
9346 COMMON /RR/ MASSR(0:MAXR)
9348 common /tt/ PEL(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9349 &,rxy(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9351 common /bbb/ bxx(-maxx:maxx,-maxx:maxx,-maxz:maxz),
9352 &byy(-maxx:maxx,-maxx:maxx,-maxz:maxz),
9353 &bzz(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9359 3 1.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
9360 2 -1.,0.,0.,0.,0.,0.,0.,0.,0.,0.,
9361 1 0.,0.,0.,-1.,0.,1.,0.,-1.,0.,-1.,
9362 s 0.,-2.,-1.,0.,1.,0.,0.,0.,0.,-1.,
9364 s 1.,0.,-1.,0.,1.,-1.,0.,1.,2.,0.,
9365 1 1.,0.,1.,0.,-1.,0.,1.,0.,0.,0.,
9366 2 -1.,0.,1.,0.,-1.,0.,1.,0.,0.,1.,
9367 3 0.,0.,0.,0.,0.,0.,0.,0.,0.,-1.,
9370 DO 300 IZ = -MAXZ,MAXZ
9371 DO 200 IY = -MAXX,MAXX
9372 DO 100 IX = -MAXX,MAXX
9374 RHOn(IX,IY,IZ) = 0.0
9375 RHOp(IX,IY,IZ) = 0.0
9376 piRHO(IX,IY,IZ) = 0.0
9389 BIG = 1.0 / ( 3.0 * FLOAT(NUM) )
9390 SMALL = 1.0 / ( 9.0 * FLOAT(NUM) )
9394 MSUM=MSUM+MASSR(IRUN-1)
9395 DO 400 J=1,MASSr(irun)
9400 IF( IX .LE. -MAXX .OR. IX .GE. MAXX .OR.
9401 & IY .LE. -MAXX .OR. IY .GE. MAXX .OR.
9402 & IZ .LE. -MAXZ .OR. IZ .GE. MAXZ ) THEN
9406 csp01/04/02 include baryon density
9407 if(j.gt.mass)go to 30
9408 c if( (lb(i).eq.1.or.lb(i).eq.2) .or.
9409 c & (lb(i).ge.6.and.lb(i).le.17) )then
9410 * (1) baryon density
9411 RHO(IX, IY, IZ ) = RHO(IX, IY, IZ ) + BIG
9412 RHO(IX+1,IY, IZ ) = RHO(IX+1,IY, IZ ) + SMALL
9413 RHO(IX-1,IY, IZ ) = RHO(IX-1,IY, IZ ) + SMALL
9414 RHO(IX, IY+1,IZ ) = RHO(IX, IY+1,IZ ) + SMALL
9415 RHO(IX, IY-1,IZ ) = RHO(IX, IY-1,IZ ) + SMALL
9416 RHO(IX, IY, IZ+1) = RHO(IX, IY, IZ+1) + SMALL
9417 RHO(IX, IY, IZ-1) = RHO(IX, IY, IZ-1) + SMALL
9418 * (2) CALCULATE THE PROTON DENSITY
9419 IF(ZET(LB(I)).NE.0)THEN
9420 RHOP(IX, IY, IZ ) = RHOP(IX, IY, IZ ) + BIG
9421 RHOP(IX+1,IY, IZ ) = RHOP(IX+1,IY, IZ ) + SMALL
9422 RHOP(IX-1,IY, IZ ) = RHOP(IX-1,IY, IZ ) + SMALL
9423 RHOP(IX, IY+1,IZ ) = RHOP(IX, IY+1,IZ ) + SMALL
9424 RHOP(IX, IY-1,IZ ) = RHOP(IX, IY-1,IZ ) + SMALL
9425 RHOP(IX, IY, IZ+1) = RHOP(IX, IY, IZ+1) + SMALL
9426 RHOP(IX, IY, IZ-1) = RHOP(IX, IY, IZ-1) + SMALL
9429 * (3) CALCULATE THE NEUTRON DENSITY
9430 IF(ZET(LB(I)).EQ.0)THEN
9431 RHON(IX, IY, IZ ) = RHON(IX, IY, IZ ) + BIG
9432 RHON(IX+1,IY, IZ ) = RHON(IX+1,IY, IZ ) + SMALL
9433 RHON(IX-1,IY, IZ ) = RHON(IX-1,IY, IZ ) + SMALL
9434 RHON(IX, IY+1,IZ ) = RHON(IX, IY+1,IZ ) + SMALL
9435 RHON(IX, IY-1,IZ ) = RHON(IX, IY-1,IZ ) + SMALL
9436 RHON(IX, IY, IZ+1) = RHON(IX, IY, IZ+1) + SMALL
9437 RHON(IX, IY, IZ-1) = RHON(IX, IY, IZ-1) + SMALL
9440 c else !! sp01/04/02
9442 30 piRHO(IX, IY, IZ ) = piRHO(IX, IY, IZ ) + BIG
9443 piRHO(IX+1,IY, IZ ) = piRHO(IX+1,IY, IZ ) + SMALL
9444 piRHO(IX-1,IY, IZ ) = piRHO(IX-1,IY, IZ ) + SMALL
9445 piRHO(IX, IY+1,IZ ) = piRHO(IX, IY+1,IZ ) + SMALL
9446 piRHO(IX, IY-1,IZ ) = piRHO(IX, IY-1,IZ ) + SMALL
9447 piRHO(IX, IY, IZ+1) = piRHO(IX, IY, IZ+1) + SMALL
9448 piRHO(IX, IY, IZ-1) = piRHO(IX, IY, IZ-1) + SMALL
9449 c endif !! sp01/04/02
9450 * to calculate the Gamma factor in each cell
9452 40 pxl(ix,iy,iz)=pxl(ix,iy,iz)+p(1,I)*BIG
9453 pxl(ix+1,iy,iz)=pxl(ix+1,iy,iz)+p(1,I)*SMALL
9454 pxl(ix-1,iy,iz)=pxl(ix-1,iy,iz)+p(1,I)*SMALL
9455 pxl(ix,iy+1,iz)=pxl(ix,iy+1,iz)+p(1,I)*SMALL
9456 pxl(ix,iy-1,iz)=pxl(ix,iy-1,iz)+p(1,I)*SMALL
9457 pxl(ix,iy,iz+1)=pxl(ix,iy,iz+1)+p(1,I)*SMALL
9458 pxl(ix,iy,iz-1)=pxl(ix,iy,iz-1)+p(1,I)*SMALL
9460 pYl(ix,iy,iz)=pYl(ix,iy,iz)+p(2,I)*BIG
9461 pYl(ix+1,iy,iz)=pYl(ix+1,iy,iz)+p(2,I)*SMALL
9462 pYl(ix-1,iy,iz)=pYl(ix-1,iy,iz)+p(2,I)*SMALL
9463 pYl(ix,iy+1,iz)=pYl(ix,iy+1,iz)+p(2,I)*SMALL
9464 pYl(ix,iy-1,iz)=pYl(ix,iy-1,iz)+p(2,I)*SMALL
9465 pYl(ix,iy,iz+1)=pYl(ix,iy,iz+1)+p(2,I)*SMALL
9466 pYl(ix,iy,iz-1)=pYl(ix,iy,iz-1)+p(2,I)*SMALL
9468 pZl(ix,iy,iz)=pZl(ix,iy,iz)+p(3,I)*BIG
9469 pZl(ix+1,iy,iz)=pZl(ix+1,iy,iz)+p(3,I)*SMALL
9470 pZl(ix-1,iy,iz)=pZl(ix-1,iy,iz)+p(3,I)*SMALL
9471 pZl(ix,iy+1,iz)=pZl(ix,iy+1,iz)+p(3,I)*SMALL
9472 pZl(ix,iy-1,iz)=pZl(ix,iy-1,iz)+p(3,I)*SMALL
9473 pZl(ix,iy,iz+1)=pZl(ix,iy,iz+1)+p(3,I)*SMALL
9474 pZl(ix,iy,iz-1)=pZl(ix,iy,iz-1)+p(3,I)*SMALL
9476 pel(ix,iy,iz)=pel(ix,iy,iz)
9477 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*BIG
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-1,iy,iz)=pel(ix-1,iy,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-1,iz)=pel(ix,iy-1,iz)
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
9488 pel(ix,iy,iz-1)=pel(ix,iy,iz-1)
9489 1 +sqrt(e(I)**2+p(1,i)**2+p(2,I)**2+p(3,I)**2)*SMALL
9493 DO 301 IZ = -MAXZ,MAXZ
9494 DO 201 IY = -MAXX,MAXX
9495 DO 101 IX = -MAXX,MAXX
9496 IF((RHO(IX,IY,IZ).EQ.0).OR.(PEL(IX,IY,IZ).EQ.0))
9498 SMASS2=PEL(IX,IY,IZ)**2-PXL(IX,IY,IZ)**2
9499 1-PYL(IX,IY,IZ)**2-PZL(IX,IY,IZ)**2
9500 IF(SMASS2.LE.0)SMASS2=1.E-06
9502 IF(SMASS.EQ.0.)SMASS=1.e-06
9503 GAMMA=PEL(IX,IY,IZ)/SMASS
9504 if(gamma.eq.0)go to 101
9505 bxx(ix,iy,iz)=pxl(ix,iy,iz)/pel(ix,iy,iz)
9506 byy(ix,iy,iz)=pyl(ix,iy,iz)/pel(ix,iy,iz)
9507 bzz(ix,iy,iz)=pzl(ix,iy,iz)/pel(ix,iy,iz)
9508 RHO(IX,IY,IZ) = RHO(IX,IY,IZ)/GAMMA
9509 RHOn(IX,IY,IZ) = RHOn(IX,IY,IZ)/GAMMA
9510 RHOp(IX,IY,IZ) = RHOp(IX,IY,IZ)/GAMMA
9511 piRHO(IX,IY,IZ) = piRHO(IX,IY,IZ)/GAMMA
9512 pEL(IX,IY,IZ) = pEL(IX,IY,IZ)/(GAMMA**2)
9518 IF(IPOT.EQ.1.or.ipot.eq.6)THEN
9524 IF(IPOT.EQ.2.or.ipot.eq.7)THEN
9536 denr=rho(ix,iy,iz)/rho0
9539 if(denr.le.4.or.denr.gt.7)then
9542 a=-b*denr**(1./6.)-2.*0.036/3.*denr**(-0.333)
9546 60 U = 0.5*A*RHO(IX,IY,IZ)**2/RHO0
9547 1 + B/(1+S) * (RHO(IX,IY,IZ)/RHO0)**S*RHO(IX,IY,IZ)
9548 70 PEL(IX,IY,IZ)=PEL(IX,IY,IZ)+U
9555 **********************************
9557 SUBROUTINE GRADU(IOPT,IX,IY,IZ,GRADX,GRADY,GRADZ)
9559 * PURPOSE: DETERMINE GRAD(U(RHO(X,Y,Z))) *
9561 * IOPT - METHOD FOR EVALUATING THE GRADIENT *
9563 * IX, IY, IZ - COORDINATES OF POINT (INTEGER,INPUT) *
9564 * GRADX, GRADY, GRADZ - GRADIENT OF U (REAL,OUTPUT) *
9566 **********************************
9567 PARAMETER (MAXX = 20, MAXZ = 24)
9568 PARAMETER (RHO0 = 0.167)
9570 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9571 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9572 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9574 common /ss/ inout(20)
9576 common /tt/ PEL(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9577 &,rxy(-maxx:maxx,-maxx:maxx,-maxz:maxz)
9581 RXPLUS = RHO(IX+1,IY, IZ ) / RHO0
9582 RXMINS = RHO(IX-1,IY, IZ ) / RHO0
9583 RYPLUS = RHO(IX, IY+1,IZ ) / RHO0
9584 RYMINS = RHO(IX, IY-1,IZ ) / RHO0
9585 RZPLUS = RHO(IX, IY, IZ+1) / RHO0
9586 RZMINS = RHO(IX, IY, IZ-1) / RHO0
9587 den0 = RHO(IX, IY, IZ) / RHO0
9588 ene0 = pel(IX, IY, IZ)
9589 *-----------------------------------------------------------------------
9590 GOTO (1,2,3,4,5) IOPT
9591 if(iopt.eq.6)go to 6
9592 if(iopt.eq.7)go to 7
9595 * POTENTIAL USED IN 1) (STIFF):
9596 * U = -.124 * RHO/RHO0 + .0705 (RHO/RHO0)**2 GEV
9598 GRADX = -0.062 * (RXPLUS - RXMINS) + 0.03525 * (RXPLUS**2 -
9600 GRADY = -0.062 * (RYPLUS - RYMINS) + 0.03525 * (RYPLUS**2 -
9602 GRADZ = -0.062 * (RZPLUS - RZMINS) + 0.03525 * (RZPLUS**2 -
9607 * POTENTIAL USED IN 2):
9608 * U = -.218 * RHO/RHO0 + .164 (RHO/RHO0)**(4/3) GEV
9611 GRADX = -0.109 * (RXPLUS - RXMINS)
9612 & + 0.082 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9613 GRADY = -0.109 * (RYPLUS - RYMINS)
9614 & + 0.082 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9615 GRADZ = -0.109 * (RZPLUS - RZMINS)
9616 & + 0.082 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9620 * POTENTIAL USED IN 3) (SOFT):
9621 * U = -.356 * RHO/RHO0 + .303 * (RHO/RHO0)**(7/6) GEV
9625 GRADX = -acoef * (RXPLUS - RXMINS)
9626 & + 0.1515 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9627 GRADY = -acoef * (RYPLUS - RYMINS)
9628 & + 0.1515 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9629 GRADZ = -acoef * (RZPLUS - RZMINS)
9630 & + 0.1515 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9635 * POTENTIAL USED IN 4) (super-soft in the mixed phase of 4 < rho/rho <7):
9636 * U1 = -.356 * RHO/RHO0 + .303 * (RHO/RHO0)**(7/6) GEV
9637 * normal phase, soft eos of iopt=3
9638 * U2 = -.02 * (RHO/RHO0)**(2/3) -0.0253 * (RHO/RHO0)**(7/6) GEV
9644 denr=rho(ix,iy,iz)/rho0
9645 if(denr.le.eh.or.denr.ge.eqgp)then
9646 GRADX = -acoef * (RXPLUS - RXMINS)
9647 & + 0.1515 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9648 GRADY = -acoef * (RYPLUS - RYMINS)
9649 & + 0.1515 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9650 GRADZ = -acoef * (RZPLUS - RZMINS)
9651 & + 0.1515 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9656 GRADX =-acoef1* (RXPLUS**EXPNT-RXMINS**EXPNT)
9657 & -acoef2* (RXPLUS**expnt2 - RXMINS**expnt2)
9658 GRADy =-acoef1* (RyPLUS**EXPNT-RyMINS**EXPNT)
9659 & -acoef2* (RyPLUS**expnt2 - RyMINS**expnt2)
9660 GRADz =-acoef1* (RzPLUS**EXPNT-RzMINS**EXPNT)
9661 & -acoef2* (RzPLUS**expnt2 - RzMINS**expnt2)
9666 * POTENTIAL USED IN 5) (SUPER STIFF):
9667 * U = -.10322 * RHO/RHO0 + .04956 * (RHO/RHO0)**(2.77) GEV
9670 GRADX = -0.0516 * (RXPLUS - RXMINS)
9671 & + 0.02498 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9672 GRADY = -0.0516 * (RYPLUS - RYMINS)
9673 & + 0.02498 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9674 GRADZ = -0.0516 * (RZPLUS - RZMINS)
9675 & + 0.02498 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9679 * POTENTIAL USED IN 6) (STIFF-qgp):
9680 * U = -.124 * RHO/RHO0 + .0705 (RHO/RHO0)**2 GEV
9683 GRADX = -0.062 * (RXPLUS - RXMINS) + 0.03525 * (RXPLUS**2 -
9685 GRADY = -0.062 * (RYPLUS - RYMINS) + 0.03525 * (RYPLUS**2 -
9687 GRADZ = -0.062 * (RZPLUS - RZMINS) + 0.03525 * (RZPLUS**2 -
9691 if(ene0.gt.0.5.and.ene0.le.1.5)then
9692 * U=c1-ef*rho/rho0**2/3
9694 GRADX = -0.5*ef* (RXPLUS**0.67-RXMINS**0.67)
9695 GRADy = -0.5*ef* (RyPLUS**0.67-RyMINS**0.67)
9696 GRADz = -0.5*ef* (RzPLUS**0.67-RzMINS**0.67)
9700 * U=800*(rho/rho0)**1/3.-Ef*(rho/rho0)**2/3.-c2
9703 GRADX =0.5*cf0*(rxplus**0.333-rxmins**0.333)
9704 & -0.5*ef* (RXPLUS**0.67-RXMINS**0.67)
9705 GRADy =0.5*cf0*(ryplus**0.333-rymins**0.333)
9706 & -0.5*ef* (RyPLUS**0.67-RyMINS**0.67)
9707 GRADz =0.5*cf0*(rzplus**0.333-rzmins**0.333)
9708 & -0.5*ef* (RzPLUS**0.67-RzMINS**0.67)
9713 * POTENTIAL USED IN 7) (Soft-qgp):
9715 * POTENTIAL USED is the same as IN 3) (SOFT):
9716 * U = -.356 * RHO/RHO0 + .303 * (RHO/RHO0)**(7/6) GEV
9720 GRADX = -acoef * (RXPLUS - RXMINS)
9721 & + 0.1515 * (RXPLUS**EXPNT-RXMINS**EXPNT)
9722 GRADY = -acoef * (RYPLUS - RYMINS)
9723 & + 0.1515 * (RYPLUS**EXPNT-RYMINS**EXPNT)
9724 GRADZ = -acoef * (RZPLUS - RZMINS)
9725 & + 0.1515 * (RZPLUS**EXPNT-RZMINS**EXPNT)
9728 if(den0.gt.4.5.and.den0.le.5.1)then
9729 * U=c1-ef*rho/rho0**2/3
9731 GRADX = -0.5*ef* (RXPLUS**0.67-RXMINS**0.67)
9732 GRADy = -0.5*ef* (RyPLUS**0.67-RyMINS**0.67)
9733 GRADz = -0.5*ef* (RzPLUS**0.67-RzMINS**0.67)
9737 * U=800*(rho/rho0)**1/3.-Ef*(rho/rho0)**2/3.-c2
9740 GRADX =0.5*cf0*(rxplus**0.333-rxmins**0.333)
9741 & -0.5*ef* (RXPLUS**0.67-RXMINS**0.67)
9742 GRADy =0.5*cf0*(ryplus**0.333-rymins**0.333)
9743 & -0.5*ef* (RyPLUS**0.67-RyMINS**0.67)
9744 GRADz =0.5*cf0*(rzplus**0.333-rzmins**0.333)
9745 & -0.5*ef* (RzPLUS**0.67-RzMINS**0.67)
9749 **********************************
9751 SUBROUTINE GRADUK(IX,IY,IZ,GRADXk,GRADYk,GRADZk)
9753 * PURPOSE: DETERMINE the baryon density gradient for *
9754 * proporgating kaons in a mean field caused by *
9755 * surrounding baryons *
9757 * IX, IY, IZ - COORDINATES OF POINT (INTEGER,INPUT) *
9758 * GRADXk, GRADYk, GRADZk (REAL,OUTPUT) *
9760 **********************************
9761 PARAMETER (MAXX = 20, MAXZ = 24)
9762 PARAMETER (RHO0 = 0.168)
9764 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9765 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9766 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9768 common /ss/ inout(20)
9772 RXPLUS = RHO(IX+1,IY, IZ )
9773 RXMINS = RHO(IX-1,IY, IZ )
9774 RYPLUS = RHO(IX, IY+1,IZ )
9775 RYMINS = RHO(IX, IY-1,IZ )
9776 RZPLUS = RHO(IX, IY, IZ+1)
9777 RZMINS = RHO(IX, IY, IZ-1)
9778 GRADXk = (RXPLUS - RXMINS)/2.
9779 GRADYk = (RYPLUS - RYMINS)/2.
9780 GRADZk = (RZPLUS - RZMINS)/2.
9783 *-----------------------------------------------------------------------
9784 SUBROUTINE GRADUP(IX,IY,IZ,GRADXP,GRADYP,GRADZP)
9786 * PURPOSE: DETERMINE THE GRADIENT OF THE PROTON DENSITY *
9789 * IX, IY, IZ - COORDINATES OF POINT (INTEGER,INPUT) *
9790 * GRADXP, GRADYP, GRADZP - GRADIENT OF THE PROTON *
9791 * DENSITY(REAL,OUTPUT) *
9793 **********************************
9794 PARAMETER (MAXX = 20, MAXZ = 24)
9795 PARAMETER (RHO0 = 0.168)
9797 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9798 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9799 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9801 common /ss/ inout(20)
9805 RXPLUS = RHOP(IX+1,IY, IZ ) / RHO0
9806 RXMINS = RHOP(IX-1,IY, IZ ) / RHO0
9807 RYPLUS = RHOP(IX, IY+1,IZ ) / RHO0
9808 RYMINS = RHOP(IX, IY-1,IZ ) / RHO0
9809 RZPLUS = RHOP(IX, IY, IZ+1) / RHO0
9810 RZMINS = RHOP(IX, IY, IZ-1) / RHO0
9811 *-----------------------------------------------------------------------
9813 GRADXP = (RXPLUS - RXMINS)/2.
9814 GRADYP = (RYPLUS - RYMINS)/2.
9815 GRADZP = (RZPLUS - RZMINS)/2.
9818 *-----------------------------------------------------------------------
9819 SUBROUTINE GRADUN(IX,IY,IZ,GRADXN,GRADYN,GRADZN)
9821 * PURPOSE: DETERMINE THE GRADIENT OF THE NEUTRON DENSITY *
9824 * IX, IY, IZ - COORDINATES OF POINT (INTEGER,INPUT) *
9825 * GRADXN, GRADYN, GRADZN - GRADIENT OF THE NEUTRON *
9826 * DENSITY(REAL,OUTPUT) *
9828 **********************************
9829 PARAMETER (MAXX = 20, MAXZ = 24)
9830 PARAMETER (RHO0 = 0.168)
9832 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9833 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
9834 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
9836 common /ss/ inout(20)
9840 RXPLUS = RHON(IX+1,IY, IZ ) / RHO0
9841 RXMINS = RHON(IX-1,IY, IZ ) / RHO0
9842 RYPLUS = RHON(IX, IY+1,IZ ) / RHO0
9843 RYMINS = RHON(IX, IY-1,IZ ) / RHO0
9844 RZPLUS = RHON(IX, IY, IZ+1) / RHO0
9845 RZMINS = RHON(IX, IY, IZ-1) / RHO0
9846 *-----------------------------------------------------------------------
9848 GRADXN = (RXPLUS - RXMINS)/2.
9849 GRADYN = (RYPLUS - RYMINS)/2.
9850 GRADZN = (RZPLUS - RZMINS)/2.
9854 *-----------------------------------------------------------------------------
9855 *FUNCTION FDE(DMASS) GIVES DELTA MASS DISTRIBUTION BY USING OF
9857 REAL FUNCTION FDE(DMASS,SRT,CON)
9862 FD=4.*(AM0**2)*WIDTH(DMASS)/((DMASS**2-1.232**2)**2
9863 1 +AM0**2*WIDTH(DMASS)**2)
9865 P11=(SRT**2+DMASS**2-AMN**2)**2
9866 1 /(4.*SRT**2)-DMASS**2
9867 if(p11.le.0)p11=1.E-06
9871 P11=(SRT**2+DMASS**2-AMN**2)**2
9872 1 /(4.*SRT**2)-DMASS**2
9873 if(p11.le.0)p11=1.E-06
9879 *-------------------------------------------------------------
9880 *FUNCTION FDE(DMASS) GIVES N*(1535) MASS DISTRIBUTION BY USING OF
9882 REAL FUNCTION FD5(DMASS,SRT,CON)
9887 FD=4.*(AM0**2)*W1535(DMASS)/((DMASS**2-1.535**2)**2
9888 1 +AM0**2*W1535(DMASS)**2)
9890 P1=SQRT((SRT**2+DMASS**2-AMN**2)**2
9891 1 /(4.*SRT**2)-DMASS**2)
9894 P1=SQRT((SRT**2+DMASS**2-AMN**2)**2
9895 1 /(4.*SRT**2)-DMASS**2)
9900 *--------------------------------------------------------------------------
9901 *FUNCTION FNS(DMASS) GIVES N* MASS DISTRIBUTION
9902 c BY USING OF BREIT-WIGNER FORMULA
9903 REAL FUNCTION FNS(DMASS,SRT,CON)
9909 FN=4.*(AN0**2)*WIDTH/((DMASS**2-1.44**2)**2+AN0**2*WIDTH**2)
9911 P1=SQRT((SRT**2+DMASS**2-AMN**2)**2
9912 1 /(4.*SRT**2)-DMASS**2)
9915 P1=SQRT((SRT**2+DMASS**2-AMN**2)**2
9916 1 /(4.*SRT**2)-DMASS**2)
9921 *-----------------------------------------------------------------------------
9922 *-----------------------------------------------------------------------------
9923 * PURPOSE:1. SORT N*(1440) and N*(1535) 2-body DECAY PRODUCTS
9924 * 2. DETERMINE THE MOMENTUM AND COORDINATES OF NUCLEON AND PION
9925 * AFTER THE DELTA OR N* DECAYING
9926 * DATE : JAN. 24,1990, MODIFIED ON MAY 17, 1994 TO INCLUDE ETA
9927 SUBROUTINE DECAYA(IRUN,I,NNN,ISEED,wid,nt)
9928 PARAMETER (MAXSTR=150001,MAXR=1,
9929 1 AMN=0.939457,ETAM=0.5475,AMP=0.93828,AP1=0.13496,
9930 2 AP2=0.13957,AM0=1.232,PI=3.1415926)
9931 COMMON /AA/ R(3,MAXSTR)
9933 COMMON /BB/ P(3,MAXSTR)
9935 COMMON /CC/ E(MAXSTR)
9937 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
9941 COMMON /PA/RPION(3,MAXSTR,MAXR)
9943 COMMON /PB/PPION(3,MAXSTR,MAXR)
9945 COMMON /PC/EPION(MAXSTR,MAXR)
9947 COMMON /PD/LPION(MAXSTR,MAXR)
9949 COMMON /INPUT2/ ILAB, MANYB, NTMAX, ICOLL, INSYS, IPOT, MODE,
9950 & IMOMEN, NFREQ, ICFLOW, ICRHO, ICOU, KPOTEN, KMUL
9953 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
9954 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
9955 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
9961 *1. FOR N*+(1440) DECAY
9962 IF(iabs(LB(I)).EQ.11)THEN
9964 IF(X3.GT.(1./3.))THEN
9975 *2. FOR N*0(1440) DECAY
9976 ELSEIF(iabs(LB(I)).EQ.10)THEN
9978 IF(X4.GT.(1./3.))THEN
9989 * N*(1535) CAN DECAY TO A PION OR AN ETA IF DM > 1.49 GeV
9990 *3 N*(0)(1535) DECAY
9991 ELSEIF(iabs(LB(I)).EQ.12)THEN
9993 IF(DM.lE.1.49)ctrl=-1.
9996 * DECAY TO PION+NUCLEON
9998 IF(X6.GT.(1./3.))THEN
10002 EPION(NNN,IRUN)=AP2
10007 EPION(NNN,IRUN)=AP1
10010 * DECAY TO ETA+NEUTRON
10014 EPION(NNN,IRUN)=ETAM
10016 *4. FOR N*+(1535) DECAY
10017 ELSEIF(iabs(LB(I)).EQ.13)THEN
10019 IF(DM.lE.1.49)ctrl=-1.
10022 * DECAY TO PION+NUCLEON
10024 IF(X8.GT.(1./3.))THEN
10028 EPION(NNN,IRUN)=AP2
10033 EPION(NNN,IRUN)=AP1
10036 * DECAY TO ETA+NUCLEON
10040 EPION(NNN,IRUN)=ETAM
10044 CALL DKINE(IRUN,I,NNN,NLAB,ISEED,wid,nt)
10046 c anti-particle ID for anti-N* decays:
10047 if(lbanti.lt.0) then
10049 if(lbi.eq.1.or.lbi.eq.2) then
10051 elseif(lbi.eq.3) then
10053 elseif(lbi.eq.5) then
10058 lbi=LPION(NNN,IRUN)
10061 elseif(lbi.eq.5) then
10063 elseif(lbi.eq.1.or.lbi.eq.2) then
10066 LPION(NNN,IRUN)=lbi
10069 if(nt.eq.ntmax) then
10070 c at the last timestep, assign rho or eta (decay daughter)
10071 c to lb(i1) only (not to lpion) in order to decay them again:
10072 lbm=LPION(NNN,IRUN)
10073 if(lbm.eq.0.or.lbm.eq.25
10074 1 .or.lbm.eq.26.or.lbm.eq.27) then
10075 c switch rho or eta with baryon, positions are the same (no change needed):
10077 xmsave=EPION(NNN,IRUN)
10078 pxsave=PPION(1,NNN,IRUN)
10079 pysave=PPION(2,NNN,IRUN)
10080 pzsave=PPION(3,NNN,IRUN)
10082 dpsave=dppion(NNN,IRUN)
10083 LPION(NNN,IRUN)=LB(I)
10084 EPION(NNN,IRUN)=E(I)
10085 PPION(1,NNN,IRUN)=P(1,I)
10086 PPION(2,NNN,IRUN)=P(2,I)
10087 PPION(3,NNN,IRUN)=P(3,I)
10089 dppion(NNN,IRUN)=dpertp(I)
10103 *-------------------------------------------------------------------
10104 *-------------------------------------------------------------------
10106 * CALCULATE THE MOMENTUM OF NUCLEON AND PION (OR ETA)
10107 * IN THE LAB. FRAME AFTER DELTA OR N* DECAY
10108 * DATE : JAN. 24,1990, MODIFIED ON MAY 17, 1994 TO INCLUDE ETA PRODUCTION
10109 SUBROUTINE DKINE(IRUN,I,NNN,NLAB,ISEED,wid,nt)
10110 PARAMETER (hbarc=0.19733)
10111 PARAMETER (MAXSTR=150001,MAXR=1,
10112 1 AMN=0.939457,AMP=0.93828,ETAM=0.5475,
10113 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10114 COMMON /AA/ R(3,MAXSTR)
10116 COMMON /BB/ P(3,MAXSTR)
10118 COMMON /CC/ E(MAXSTR)
10120 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10124 COMMON /PA/RPION(3,MAXSTR,MAXR)
10126 COMMON /PB/PPION(3,MAXSTR,MAXR)
10128 COMMON /PC/EPION(MAXSTR,MAXR)
10130 COMMON /PD/LPION(MAXSTR,MAXR)
10132 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
10133 1 px1n,py1n,pz1n,dp1n
10135 COMMON/tdecay/tfdcy(MAXSTR),tfdpi(MAXSTR,MAXR),tft(MAXSTR)
10137 COMMON /INPUT2/ ILAB, MANYB, NTMAX, ICOLL, INSYS, IPOT, MODE,
10138 & IMOMEN, NFREQ, ICFLOW, ICRHO, ICOU, KPOTEN, KMUL
10140 COMMON/RNDF77/NSEED
10142 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
10143 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
10144 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
10145 EXTERNAL IARFLV, INVFLV
10148 * READ IN THE COORDINATES OF DELTA OR N* UNDERGOING DECAY
10156 EDELTA=SQRT(DM**2+PX**2+PY**2+PZ**2)
10159 IF(NLAB.EQ.2)AM=AMN
10160 * FIND OUT THE MOMENTUM AND ENERGY OF PION AND NUCLEON IN DELTA REST FRAME
10161 * THE MAGNITUDE OF MOMENTUM IS DETERMINED BY ENERGY CONSERVATION ,THE FORMULA
10162 * CAN BE FOUND ON PAGE 716,W BAUER P.R.C40,1989
10163 * THE DIRECTION OF THE MOMENTUM IS ASSUMED ISOTROPIC. NOTE THAT P(PION)=-P(N)
10164 Q2=((DM**2-AM**2+PM**2)/(2.*DM))**2-PM**2
10165 IF(Q2.LE.0.)Q2=1.e-09
10167 11 QX=1.-2.*RANART(NSEED)
10168 QY=1.-2.*RANART(NSEED)
10169 QZ=1.-2.*RANART(NSEED)
10170 QS=QX**2+QY**2+QZ**2
10171 IF(QS.GT.1.) GO TO 11
10175 EP=SQRT(Q**2+PM**2)
10179 EN=SQRT(Q**2+AM**2)
10180 * TRANSFORM INTO THE LAB. FRAME. THE GENERAL LORENTZ TRANSFORMATION CAN
10181 * BE FOUND ON PAGE 34 OF R. HAGEDORN " RELATIVISTIC KINEMATICS"
10187 BPP=BDX*PXP+BDY*PYP+BDZ*PZP
10188 BPN=BDX*PXN+BDY*PYN+BDZ*PZN
10189 P(1,I)=PXN+BDX*GD*(FGD*BPN+EN)
10190 P(2,I)=PYN+BDY*GD*(FGD*BPN+EN)
10191 P(3,I)=PZN+BDZ*GD*(FGD*BPN+EN)
10193 * WE ASSUME THAT THE SPACIAL COORDINATE OF THE NUCLEON
10194 * IS THAT OF THE DELTA
10195 PPION(1,NNN,IRUN)=PXP+BDX*GD*(FGD*BPP+EP)
10196 PPION(2,NNN,IRUN)=PYP+BDY*GD*(FGD*BPP+EP)
10197 PPION(3,NNN,IRUN)=PZP+BDZ*GD*(FGD*BPP+EP)
10199 dppion(NNN,IRUN)=dpertp(I)
10200 * WE ASSUME THE PION OR ETA COMING FROM DELTA DECAY IS LOCATED ON THE SPHERE
10201 * OF RADIUS 0.5FM AROUND DELTA, THIS POINT NEED TO BE CHECKED
10202 * AND OTHER CRIERTION MAY BE TRIED
10203 clin-2/20/03 no additional smearing for position of decay daughters:
10204 c200 X0 = 1.0 - 2.0 * RANART(NSEED)
10205 c Y0 = 1.0 - 2.0 * RANART(NSEED)
10206 c Z0 = 1.0 - 2.0 * RANART(NSEED)
10207 c IF ((X0*X0+Y0*Y0+Z0*Z0) .GT. 1.0) GOTO 200
10208 c RPION(1,NNN,IRUN)=R(1,I)+0.5*x0
10209 c RPION(2,NNN,IRUN)=R(2,I)+0.5*y0
10210 c RPION(3,NNN,IRUN)=R(3,I)+0.5*z0
10211 RPION(1,NNN,IRUN)=R(1,I)
10212 RPION(2,NNN,IRUN)=R(2,I)
10213 RPION(3,NNN,IRUN)=R(3,I)
10215 devio=SQRT(EPION(NNN,IRUN)**2+PPION(1,NNN,IRUN)**2
10216 1 +PPION(2,NNN,IRUN)**2+PPION(3,NNN,IRUN)**2)
10217 2 +SQRT(E(I)**2+P(1,I)**2+P(2,I)**2+P(3,I)**2)-e1
10218 c if(abs(devio).gt.0.02) write(93,*) 'decay(): nt=',nt,devio,lb1
10220 c add decay time to daughter's formation time at the last timestep:
10221 if(nt.eq.ntmax) then
10223 taudcy=tau0*(-1.)*alog(1.-RANART(NSEED))
10225 taudcy=taudcy*e1/em1
10227 xfnl=xfnl+px1/e1*taudcy
10228 yfnl=yfnl+py1/e1*taudcy
10229 zfnl=zfnl+pz1/e1*taudcy
10234 RPION(1,NNN,IRUN)=xfnl
10235 RPION(2,NNN,IRUN)=yfnl
10236 RPION(3,NNN,IRUN)=zfnl
10237 tfdpi(NNN,IRUN)=tfnl
10240 cc 200 format(a30,2(1x,e10.4))
10241 cc 210 format(i6,5(1x,f8.3))
10242 cc 220 format(a2,i5,5(1x,f8.3))
10247 *-----------------------------------------------------------------------------
10248 *-----------------------------------------------------------------------------
10249 * PURPOSE:1. N*-->N+PION+PION DECAY PRODUCTS
10250 * 2. DETERMINE THE MOMENTUM AND COORDINATES OF NUCLEON AND PION
10251 * AFTER THE DELTA OR N* DECAYING
10252 * DATE : NOV.7,1994
10253 *----------------------------------------------------------------------------
10254 SUBROUTINE DECAY2(IRUN,I,NNN,ISEED,wid,nt)
10255 PARAMETER (MAXSTR=150001,MAXR=1,
10256 1 AMN=0.939457,ETAM=0.5475,AMP=0.93828,AP1=0.13496,
10257 2 AP2=0.13957,AM0=1.232,PI=3.1415926)
10258 COMMON /AA/ R(3,MAXSTR)
10260 COMMON /BB/ P(3,MAXSTR)
10262 COMMON /CC/ E(MAXSTR)
10264 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10268 COMMON /PA/RPION(3,MAXSTR,MAXR)
10270 COMMON /PB/PPION(3,MAXSTR,MAXR)
10272 COMMON /PC/EPION(MAXSTR,MAXR)
10274 COMMON /PD/LPION(MAXSTR,MAXR)
10276 COMMON/RNDF77/NSEED
10283 * DETERMINE THE DECAY PRODUCTS
10284 * FOR N*+(1440) DECAY
10285 IF(iabs(LB(I)).EQ.11)THEN
10287 IF(X3.LT.(1./3))THEN
10291 EPION(NNN,IRUN)=AP2
10292 LPION(NNN+1,IRUN)=4
10293 EPION(NNN+1,IRUN)=AP1
10294 ELSEIF(X3.LT.2./3.AND.X3.GT.1./3.)THEN
10298 EPION(NNN,IRUN)=AP2
10299 LPION(NNN+1,IRUN)=3
10300 EPION(NNN+1,IRUN)=AP2
10305 EPION(NNN,IRUN)=AP1
10306 LPION(NNN+1,IRUN)=4
10307 EPION(NNN+1,IRUN)=AP1
10309 * FOR N*0(1440) DECAY
10310 ELSEIF(iabs(LB(I)).EQ.10)THEN
10312 IF(X3.LT.(1./3))THEN
10316 EPION(NNN,IRUN)=AP1
10317 LPION(NNN+1,IRUN)=4
10318 EPION(NNN+1,IRUN)=AP1
10319 ELSEIF(X3.LT.2./3.AND.X3.GT.1./3.)THEN
10323 EPION(NNN,IRUN)=AP2
10324 LPION(NNN+1,IRUN)=4
10325 EPION(NNN+1,IRUN)=AP1
10330 EPION(NNN,IRUN)=AP2
10331 LPION(NNN+1,IRUN)=3
10332 EPION(NNN+1,IRUN)=AP2
10336 CALL DKINE2(IRUN,I,NNN,NLAB,ISEED,wid,nt)
10338 c anti-particle ID for anti-N* decays:
10339 if(lbanti.lt.0) then
10341 if(lbi.eq.1.or.lbi.eq.2) then
10343 elseif(lbi.eq.3) then
10345 elseif(lbi.eq.5) then
10350 lbi=LPION(NNN,IRUN)
10353 elseif(lbi.eq.5) then
10355 elseif(lbi.eq.1.or.lbi.eq.2) then
10358 LPION(NNN,IRUN)=lbi
10360 lbi=LPION(NNN+1,IRUN)
10363 elseif(lbi.eq.5) then
10365 elseif(lbi.eq.1.or.lbi.eq.2) then
10368 LPION(NNN+1,IRUN)=lbi
10373 *-------------------------------------------------------------------
10374 *--------------------------------------------------------------------------
10375 * CALCULATE THE MOMENTUM OF NUCLEON AND PION (OR ETA)
10376 * IN THE LAB. FRAME AFTER DELTA OR N* DECAY
10377 * DATE : JAN. 24,1990, MODIFIED ON MAY 17, 1994 TO INCLUDE ETA PRODUCTION
10378 *--------------------------------------------------------------------------
10379 SUBROUTINE DKINE2(IRUN,I,NNN,NLAB,ISEED,wid,nt)
10380 PARAMETER (hbarc=0.19733)
10381 PARAMETER (MAXSTR=150001,MAXR=1,
10382 1 AMN=0.939457,AMP=0.93828,ETAM=0.5475,
10383 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10384 COMMON /AA/ R(3,MAXSTR)
10386 COMMON /BB/ P(3,MAXSTR)
10388 COMMON /CC/ E(MAXSTR)
10390 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10394 COMMON /PA/RPION(3,MAXSTR,MAXR)
10396 COMMON /PB/PPION(3,MAXSTR,MAXR)
10398 COMMON /PC/EPION(MAXSTR,MAXR)
10400 COMMON /PD/LPION(MAXSTR,MAXR)
10402 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
10403 1 px1n,py1n,pz1n,dp1n
10405 COMMON/tdecay/tfdcy(MAXSTR),tfdpi(MAXSTR,MAXR),tft(MAXSTR)
10407 COMMON /INPUT2/ ILAB, MANYB, NTMAX, ICOLL, INSYS, IPOT, MODE,
10408 & IMOMEN, NFREQ, ICFLOW, ICRHO, ICOU, KPOTEN, KMUL
10410 EXTERNAL IARFLV, INVFLV
10411 COMMON/RNDF77/NSEED
10413 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
10414 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
10415 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
10419 * READ IN THE COORDINATES OF THE N*(1440) UNDERGOING DECAY
10427 EDELTA=SQRT(DM**2+PX**2+PY**2+PZ**2)
10428 PM1=EPION(NNN,IRUN)
10429 PM2=EPION(NNN+1,IRUN)
10431 IF(NLAB.EQ.1)AM=AMP
10432 * THE MAXIMUM MOMENTUM OF THE NUCLEON FROM THE DECAY OF A N*
10433 PMAX2=(DM**2-(AM+PM1+PM2)**2)*(DM**2-(AM-PM1-PM2)**2)/4/DM**2
10435 * GENERATE THE MOMENTUM OF THE NUCLEON IN THE N* REST FRAME
10436 CSS=1.-2.*RANART(NSEED)
10438 FAI=2*PI*RANART(NSEED)
10439 PX0=PMAX*SSS*COS(FAI)
10440 PY0=PMAX*SSS*SIN(FAI)
10442 EP0=SQRT(PX0**2+PY0**2+PZ0**2+AM**2)
10443 clin-5/23/01 bug: P0 for pion0 is equal to PMAX, leaving pion+ and pion-
10444 c without no relative momentum, thus producing them with equal momenta,
10445 * BETA AND GAMMA OF THE CMS OF PION+-PION-
10446 BETAX=-PX0/(DM-EP0)
10447 BETAY=-PY0/(DM-EP0)
10448 BETAZ=-PZ0/(DM-EP0)
10449 GD1=1./SQRT(1-BETAX**2-BETAY**2-BETAZ**2)
10451 * GENERATE THE MOMENTA OF PIONS IN THE CMS OF PION+PION-
10452 Q2=((DM-EP0)/(2.*GD1))**2-PM1**2
10453 IF(Q2.LE.0.)Q2=1.E-09
10455 11 QX=1.-2.*RANART(NSEED)
10456 QY=1.-2.*RANART(NSEED)
10457 QZ=1.-2.*RANART(NSEED)
10458 QS=QX**2+QY**2+QZ**2
10459 IF(QS.GT.1.) GO TO 11
10463 EP=SQRT(Q**2+PM1**2)
10467 EN=SQRT(Q**2+PM2**2)
10468 * TRANSFORM THE MOMENTA OF PION+PION- INTO THE N* REST FRAME
10469 BPP1=BETAX*PXP+BETAY*PYP+BETAZ*PZP
10470 BPN1=BETAX*PXN+BETAY*PYN+BETAZ*PZN
10472 P1M=PXN+BETAX*GD1*(FGD1*BPN1+EN)
10473 P2M=PYN+BETAY*GD1*(FGD1*BPN1+EN)
10474 P3M=PZN+BETAZ*GD1*(FGD1*BPN1+EN)
10475 EPN=SQRT(P1M**2+P2M**2+P3M**2+PM2**2)
10477 P1P=PXP+BETAX*GD1*(FGD1*BPP1+EP)
10478 P2P=PYP+BETAY*GD1*(FGD1*BPP1+EP)
10479 P3P=PZP+BETAZ*GD1*(FGD1*BPP1+EP)
10480 EPP=SQRT(P1P**2+P2P**2+P3P**2+PM1**2)
10481 * TRANSFORM MOMENTA OF THE THREE PIONS INTO THE
10482 * THE NUCLEUS-NUCLEUS CENTER OF MASS FRAME.
10483 * THE GENERAL LORENTZ TRANSFORMATION CAN
10484 * BE FOUND ON PAGE 34 OF R. HAGEDORN " RELATIVISTIC KINEMATICS"
10490 BP0=BDX*PX0+BDY*PY0+BDZ*PZ0
10491 BPP=BDX*P1P+BDY*P2P+BDZ*P3P
10492 BPN=BDX*P1M+BDY*P2M+BDZ*P3M
10494 P(1,I)=PX0+BDX*GD*(FGD*BP0+EP0)
10495 P(2,I)=PY0+BDY*GD*(FGD*BP0+EP0)
10496 P(3,I)=PZ0+BDZ*GD*(FGD*BP0+EP0)
10499 enucl=sqrt(p(1,i)**2+p(2,i)**2+p(3,i)**2+e(i)**2)
10500 * WE ASSUME THAT THE SPACIAL COORDINATE OF THE PION0
10501 * IS in a sphere of radius 0.5 fm around N*
10503 PPION(1,NNN,IRUN)=P1P+BDX*GD*(FGD*BPP+EPP)
10504 PPION(2,NNN,IRUN)=P2P+BDY*GD*(FGD*BPP+EPP)
10505 PPION(3,NNN,IRUN)=P3P+BDZ*GD*(FGD*BPP+EPP)
10506 epion1=sqrt(ppion(1,nnn,irun)**2
10507 & +ppion(2,nnn,irun)**2+ppion(3,nnn,irun)**2
10508 & +epion(nnn,irun)**2)
10509 clin-2/20/03 no additional smearing for position of decay daughters:
10510 c200 X0 = 1.0 - 2.0 * RANART(NSEED)
10511 c Y0 = 1.0 - 2.0 * RANART(NSEED)
10512 c Z0 = 1.0 - 2.0 * RANART(NSEED)
10513 c IF ((X0*X0+Y0*Y0+Z0*Z0) .GT. 1.0) GOTO 200
10514 c RPION(1,NNN,IRUN)=R(1,I)+0.5*x0
10515 c RPION(2,NNN,IRUN)=R(2,I)+0.5*y0
10516 c RPION(3,NNN,IRUN)=R(3,I)+0.5*z0
10517 RPION(1,NNN,IRUN)=R(1,I)
10518 RPION(2,NNN,IRUN)=R(2,I)
10519 RPION(3,NNN,IRUN)=R(3,I)
10521 PPION(1,NNN+1,IRUN)=P1M+BDX*GD*(FGD*BPN+EPN)
10522 PPION(2,NNN+1,IRUN)=P2M+BDY*GD*(FGD*BPN+EPN)
10523 PPION(3,NNN+1,IRUN)=P3M+BDZ*GD*(FGD*BPN+EPN)
10525 dppion(NNN,IRUN)=dpertp(I)
10526 dppion(NNN+1,IRUN)=dpertp(I)
10528 epion2=sqrt(ppion(1,nnn+1,irun)**2
10529 & +ppion(2,nnn+1,irun)**2+ppion(3,nnn+1,irun)**2
10530 & +epion(nnn+1,irun)**2)
10531 clin-2/20/03 no additional smearing for position of decay daughters:
10532 c300 X0 = 1.0 - 2.0 * RANART(NSEED)
10533 c Y0 = 1.0 - 2.0 * RANART(NSEED)
10534 c Z0 = 1.0 - 2.0 * RANART(NSEED)
10535 c IF ((X0*X0+Y0*Y0+Z0*Z0) .GT. 1.0) GOTO 300
10536 c RPION(1,NNN+1,IRUN)=R(1,I)+0.5*x0
10537 c RPION(2,NNN+1,IRUN)=R(2,I)+0.5*y0
10538 c RPION(3,NNN+1,IRUN)=R(3,I)+0.5*z0
10539 RPION(1,NNN+1,IRUN)=R(1,I)
10540 RPION(2,NNN+1,IRUN)=R(2,I)
10541 RPION(3,NNN+1,IRUN)=R(3,I)
10543 * check energy conservation in the decay
10544 c efinal=enucl+epion1+epion2
10545 c DEEE=(EDELTA-EFINAL)/EDELTA
10546 c IF(ABS(DEEE).GE.1.E-03)write(6,*)1,edelta,efinal
10548 devio=SQRT(EPION(NNN,IRUN)**2+PPION(1,NNN,IRUN)**2
10549 1 +PPION(2,NNN,IRUN)**2+PPION(3,NNN,IRUN)**2)
10550 2 +SQRT(E(I)**2+P(1,I)**2+P(2,I)**2+P(3,I)**2)
10551 3 +SQRT(EPION(NNN+1,IRUN)**2+PPION(1,NNN+1,IRUN)**2
10552 4 +PPION(2,NNN+1,IRUN)**2+PPION(3,NNN+1,IRUN)**2)-e1
10553 c if(abs(devio).gt.0.02) write(93,*) 'decay2(): nt=',nt,devio,lb1
10555 c add decay time to daughter's formation time at the last timestep:
10556 if(nt.eq.ntmax) then
10558 taudcy=tau0*(-1.)*alog(1.-RANART(NSEED))
10560 taudcy=taudcy*e1/em1
10562 xfnl=xfnl+px1/e1*taudcy
10563 yfnl=yfnl+py1/e1*taudcy
10564 zfnl=zfnl+pz1/e1*taudcy
10569 RPION(1,NNN,IRUN)=xfnl
10570 RPION(2,NNN,IRUN)=yfnl
10571 RPION(3,NNN,IRUN)=zfnl
10572 tfdpi(NNN,IRUN)=tfnl
10573 RPION(1,NNN+1,IRUN)=xfnl
10574 RPION(2,NNN+1,IRUN)=yfnl
10575 RPION(3,NNN+1,IRUN)=zfnl
10576 tfdpi(NNN+1,IRUN)=tfnl
10579 cc 200 format(a30,2(1x,e10.4))
10580 cc 210 format(i6,5(1x,f8.3))
10581 cc 220 format(a2,i5,5(1x,f8.3))
10585 *---------------------------------------------------------------------------
10586 *---------------------------------------------------------------------------
10587 * PURPOSE : CALCULATE THE MASS AND MOMENTUM OF BARYON RESONANCE
10588 * AFTER PION OR ETA BEING ABSORBED BY A NUCLEON
10591 * DATE : JAN.29,1990
10592 SUBROUTINE DRESON(I1,I2)
10593 PARAMETER (MAXSTR=150001,MAXR=1,
10594 1 AMN=0.939457,AMP=0.93828,
10595 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10596 COMMON /AA/ R(3,MAXSTR)
10598 COMMON /BB/ P(3,MAXSTR)
10600 COMMON /CC/ E(MAXSTR)
10602 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10606 COMMON /PA/RPION(3,MAXSTR,MAXR)
10608 COMMON /PB/PPION(3,MAXSTR,MAXR)
10610 COMMON /PC/EPION(MAXSTR,MAXR)
10612 COMMON /PD/LPION(MAXSTR,MAXR)
10615 * 1. DETERMINE THE MOMENTUM COMPONENT OF DELTA/N* IN THE LAB. FRAME
10616 E10=SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
10617 E20=SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
10618 IF(iabs(LB(I2)) .EQ. 1 .OR. iabs(LB(I2)) .EQ. 2 .OR.
10619 & (iabs(LB(I2)) .GE. 6 .AND. iabs(LB(I2)) .LE. 17)) THEN
10626 P(1,I)=P(1,I1)+P(1,I2)
10627 P(2,I)=P(2,I1)+P(2,I2)
10628 P(3,I)=P(3,I1)+P(3,I2)
10629 * 2. DETERMINE THE MASS OF DELTA/N* BY USING THE REACTION KINEMATICS
10630 DM=SQRT((E10+E20)**2-P(1,I)**2-P(2,I)**2-P(3,I)**2)
10634 *---------------------------------------------------------------------------
10635 * PURPOSE : CALCULATE THE MASS AND MOMENTUM OF RHO RESONANCE
10636 * AFTER PION + PION COLLISION
10637 * DATE : NOV. 30,1994
10638 SUBROUTINE RHORES(I1,I2)
10639 PARAMETER (MAXSTR=150001,MAXR=1,
10640 1 AMN=0.939457,AMP=0.93828,
10641 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10642 COMMON /AA/ R(3,MAXSTR)
10644 COMMON /BB/ P(3,MAXSTR)
10646 COMMON /CC/ E(MAXSTR)
10648 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10652 COMMON /PA/RPION(3,MAXSTR,MAXR)
10654 COMMON /PB/PPION(3,MAXSTR,MAXR)
10656 COMMON /PC/EPION(MAXSTR,MAXR)
10658 COMMON /PD/LPION(MAXSTR,MAXR)
10661 * 1. DETERMINE THE MOMENTUM COMPONENT OF THE RHO IN THE CMS OF NN FRAME
10662 * WE LET I1 TO BE THE RHO AND ABSORB I2
10663 E10=SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
10664 E20=SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
10665 P(1,I1)=P(1,I1)+P(1,I2)
10666 P(2,I1)=P(2,I1)+P(2,I2)
10667 P(3,I1)=P(3,I1)+P(3,I2)
10668 * 2. DETERMINE THE MASS OF THE RHO BY USING THE REACTION KINEMATICS
10669 DM=SQRT((E10+E20)**2-P(1,I1)**2-P(2,I1)**2-P(3,I1)**2)
10674 *---------------------------------------------------------------------------
10675 * PURPOSE : CALCULATE THE PION+NUCLEON CROSS SECTION ACCORDING TO THE
10676 * BREIT-WIGNER FORMULA/(p*)**2
10677 * VARIABLE : LA = 1 FOR DELTA RESONANCE
10678 * LA = 0 FOR N*(1440) RESONANCE
10679 * LA = 2 FRO N*(1535) RESONANCE
10680 * DATE : JAN.29,1990
10681 REAL FUNCTION XNPI(I1,I2,LA,XMAX)
10682 PARAMETER (MAXSTR=150001,MAXR=1,
10683 1 AMN=0.939457,AMP=0.93828,
10684 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
10685 COMMON /AA/ R(3,MAXSTR)
10687 COMMON /BB/ P(3,MAXSTR)
10689 COMMON /CC/ E(MAXSTR)
10691 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
10695 COMMON /PA/RPION(3,MAXSTR,MAXR)
10697 COMMON /PB/PPION(3,MAXSTR,MAXR)
10699 COMMON /PC/EPION(MAXSTR,MAXR)
10701 COMMON /PD/LPION(MAXSTR,MAXR)
10704 AVMASS=0.5*(AMN+AMP)
10705 AVPI=(2.*AP2+AP1)/3.
10706 * 1. DETERMINE THE MOMENTUM COMPONENT OF DELTA IN THE LAB. FRAME
10707 E10=SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
10708 E20=SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
10712 * 2. DETERMINE THE MASS OF DELTA BY USING OF THE REACTION KINEMATICS
10713 DM=SQRT((E10+E20)**2-P1**2-P2**2-P3**2)
10718 * 3. DETERMINE THE PION+NUCLEON CROSS SECTION ACCORDING TO THE
10719 * BREIT-WIGNER FORMULA IN UNIT OF FM**2
10722 F1=0.25*GAM**2/(0.25*GAM**2+(DM-1.232)**2)
10728 F1=0.25*GAM**2/(0.25*GAM**2+(DM-1.440)**2)
10734 F1=0.25*GAM**2/(0.25*GAM**2+(DM-1.535)**2)
10737 10 PSTAR2=((DM**2-AVMASS**2+AVPI**2)/(2.*DM))**2-AVPI**2
10738 IF(PSTAR2.LE.0.)THEN
10741 * give the cross section in unit of fm**2
10742 XNPI=F1*(PDELT2/PSTAR2)*XMAX/10.
10746 *------------------------------------------------------------------------------
10747 *****************************************
10748 REAL FUNCTION SIGMA(SRT,ID,IOI,IOF)
10749 *PURPOSE : THIS IS THE PROGRAM TO CALCULATE THE ISOSPIN DECOMPOSED CROSS
10750 * SECTION BY USING OF B.J.VerWEST AND R.A.ARNDT'S PARAMETERIZATION
10751 *REFERENCE: PHYS. REV. C25(1982)1979
10752 *QUANTITIES: IOI -- INITIAL ISOSPIN OF THE TWO NUCLEON SYSTEM
10753 * IOF -- FINAL ISOSPIN -------------------------
10754 * ID -- =1 FOR DELTA RESORANCE
10755 * =2 FOR N* RESORANCE
10756 *DATE : MAY 15,1990
10757 *****************************************
10758 PARAMETER (AMU=0.9383,AMP=0.1384,PI=3.1415926,HC=0.19733)
10767 IF((IOI.EQ.1).AND.(IOF.EQ.1))THEN
10773 IF((IOI.EQ.1).AND.(IOF.EQ.0))THEN
10779 IF((IOI.EQ.0).AND.(IOF.EQ.1))THEN
10785 ZPLUS=(SRT-AMU-AMASS0)*2./T0
10786 ZMINUS=(AMU+AMP-AMASS0)*2./T0
10787 deln=ATAN(ZPLUS)-ATAN(ZMINUS)
10788 if(deln.eq.0)deln=1.E-06
10789 AMASS=AMASS0+(T0/4.)*ALOG((1.+ZPLUS**2)/(1.+ZMINUS**2))
10796 PR2=(S-(AMU-AMASS)**2)*(S-(AMU+AMASS)**2)/(4.*S)
10797 IF(PR2.GT.1.E-06)THEN
10805 Q2=(SS-(AMU-AMP)**2)*(SS-(AMU+AMP)**2)/(4.*SS)
10806 IF(Q2.GT.1.E-06)THEN
10814 Q02=(SS0-(AMU-AMP)**2)*(SS0-(AMU+AMP)**2)/(4.*SS0)
10816 SIGMA=PI*(HC)**2/(2.*P2)*ALFA*(PR/P0)**BETA*AM0**2*T**2
10817 1 *(Q/Q0)**3/((SS-AM0**2)**2+AM0**2*T**2)
10819 IF(SIGMA.EQ.0)SIGMA=1.E-06
10823 *****************************
10824 REAL FUNCTION DENOM(SRT,CON)
10825 * NOTE: CON=1 FOR DELTA RESONANCE, CON=2 FOR N*(1440) RESONANCE
10826 * con=-1 for N*(1535)
10827 * PURPOSE : CALCULATE THE INTEGRAL IN THE DETAILED BALANCE
10829 * DATE : NOV. 15, 1991
10830 *******************************
10831 PARAMETER (AP1=0.13496,
10832 1 AP2=0.13957,PI=3.1415926,AVMASS=0.9383)
10834 AVPI=(AP1+2.*AP2)/3.
10841 DMASS=(AMAX-AMIN)/FLOAT(NMAX)
10844 DM=AMIN+FLOAT(I-1)*DMASS
10846 Q2=((DM**2-AMN**2+AMP**2)/(2.*DM))**2-AMP**2
10852 TQ=0.47*(Q**3)/(AMP**2*(1.+0.6*(Q/AMP)**2))
10853 ELSE if(con.eq.2)then
10856 else if(con.eq.-1.)then
10860 A1=4.*TQ*AM0**2/(AM0**2*TQ**2+(DM**2-AM0**2)**2)
10862 P0=(S+DM**2-AMN**2)**2/(4.*S)-DM**2
10869 IF((I.EQ.1).OR.(I.EQ.(NMAX+1)))THEN
10875 DENOM=SUM*DMASS/(2.*PI)
10878 **********************************
10879 * subroutine : ang.FOR
10880 * PURPOSE : Calculate the angular distribution of Delta production process
10881 * DATE : Nov. 19, 1992
10882 * REFERENCE: G. WOLF ET. AL., NUCL. PHYS. A517 (1990) 615
10883 * Note: this function applies when srt is larger than 2.14 GeV,
10884 * for less energetic reactions, we assume the angular distribution
10886 ***********************************
10887 real function anga(srt,iseed)
10888 COMMON/RNDF77/NSEED
10892 c if(srt.le.2.14)then
10896 if((srt.gt.2.14).and.(srt.le.2.4))then
10897 b1s=29.03-23.75*srt+4.865*srt**2
10898 b2s=-30.33+25.53*srt-5.301*srt**2
10906 q=(2.*x-1.)*(b1s+b2s)/b2s
10907 IF((-q/2.+sqrt((q/2.)**2+(p/3.)**3)).GE.0.)THEN
10908 ang1=(-q/2.+sqrt((q/2.)**2+(p/3.)**3))**(1./3.)
10910 ang1=-(q/2.-sqrt((q/2.)**2+(p/3.)**3))**(1./3.)
10912 IF((-q/2.-sqrt((q/2.)**2+(p/3.)**3).GE.0.))THEN
10913 ang2=(-q/2.-sqrt((q/2.)**2+(p/3.)**3))**(1./3.)
10915 ang2=-(q/2.+sqrt((q/2.)**2+(p/3.)**3))**(1./3.)
10920 *--------------------------------------------------------------------------
10921 *****subprogram * kaon production from pi+B collisions *******************
10922 real function PNLKA(srt)
10925 ***********************************C
10933 IF(SRT.LT.1.7)sbbk=(0.9/0.091)*(SRT-T1)
10934 IF(SRT.GE.1.7)sbbk=0.09/(SRT-1.6)
10936 * give the cross section in units of fm**2
10941 *-------------------------------------------------------------------------
10942 *****subprogram * kaon production from pi+B collisions *******************
10943 real function PNSKA(srt)
10945 ***********************************
10959 IF(SRT.LT.1.9)SBB1=(0.7/0.218)*(SRT-T1)
10960 IF(SRT.GE.1.9)SBB1=0.14/(SRT-1.7)
10962 if(srt.gT.1.682)sbb2=0.5*(1.-0.75*(srt-1.682))
10963 pnska=0.25*(sbb1+sbb2)
10964 * give the cross section in fm**2
10969 ********************************
10971 * Kaon momentum distribution in baryon-baryon-->N lamda K process
10973 * NOTE: dsima/dp is prototional to (1-p/p_max)(p/p_max)^2
10974 * we use rejection method to generate kaon momentum
10976 * Variables: Fkaon = F(p)/F_max
10977 * srt = cms energy of the colliding pair,
10978 * used to calculate the P_max
10979 * Date: Feb. 8, 1994
10981 * Reference: C. M. Ko et al.
10982 ********************************
10983 Real function fkaon(p,pmax)
10986 if(pmax.eq.0.)pmax=0.000001
10987 fkaon=(1.-p/pmax)*(p/pmax)**2
10988 if(fkaon.gt.fmax)fkaon=fmax
10993 *************************
10994 * cross section for N*(1535) production in ND OR NN* collisions
10996 * LB1,LB2 ARE THE LABLES OF THE TWO COLLIDING PARTICLES
10997 * SRT IS THE CMS ENERGY
10998 * X1535 IS THE N*(1535) PRODUCTION CROSS SECTION
10999 * NOTE THAT THE N*(1535) PRODUCTION CROSS SECTION IS 2 TIMES THE ETA
11000 * PRODUCTION CROSS SECTION
11001 * DATE: MAY 18, 1994
11002 * ***********************
11003 Subroutine M1535(LB1,LB2,SRT,X1535)
11007 IF(SRT.LE.S0)RETURN
11008 SIGMA=2.*0.102*(SRT-S0)/(0.058+(SRT-S0)**2)
11009 * I N*(1535) PRODUCTION IN NUCLEON-DELTA COLLISIONS
11010 *(1) nD(++)->pN*(+)(1535), pD(-)->nN*(0)(1535),pD(+)-->N*(+)p
11012 c IF((LB1*LB2.EQ.18).OR.(LB1*LB2.EQ.6).
11013 c 1 or.(lb1*lb2).eq.8)then
11014 IF((LB1*LB2.EQ.18.AND.(LB1.EQ.2.OR.LB2.EQ.2)).OR.
11015 & (LB1*LB2.EQ.6.AND.(LB1.EQ.1.OR.LB2.EQ.1)).or.
11016 & (lb1*lb2.eq.8.AND.(LB1.EQ.1.OR.LB2.EQ.1)))then
11021 *(2) pD(0)->pN*(0)(1535),pD(0)->nN*(+)(1535)
11022 IF(LB1*LB2.EQ.7)THEN
11026 * II N*(1535) PRODUCTION IN N*(1440)+NUCLEON REACTIONS
11027 *(3) N*(+)(1440)p->N*(0+)(1535)p, N*(0)(1440)n->N*(0)(1535)
11029 c IF((LB1*LB2.EQ.11).OR.(LB1*LB2.EQ.20))THEN
11030 IF((LB1*LB2.EQ.11).OR.
11031 & (LB1*LB2.EQ.20.AND.(LB1.EQ.2.OR.LB2.EQ.2)))THEN
11036 *(4) N*(0)(1440)p->N*(0+) or N*(+)(1440)n->N*(0+)(1535)
11038 c IF((LB1*LB2.EQ.10).OR.(LB1*LB2.EQ.22))X1535=3.*SIGMA
11039 IF((LB1*LB2.EQ.10.AND.(LB1.EQ.1.OR.LB2.EQ.1)).OR.
11040 & (LB1*LB2.EQ.22.AND.(LB1.EQ.2.OR.LB2.EQ.2)))
11045 *************************
11046 * cross section for N*(1535) production in NN collisions
11048 * LB1,LB2 ARE THE LABLES OF THE TWO COLLIDING PARTICLES
11049 * SRT IS THE CMS ENERGY
11050 * X1535 IS THE N*(1535) PRODUCTION CROSS SECTION
11051 * NOTE THAT THE N*(1535) PRODUCTION CROSS SECTION IS 2 TIMES THE ETA
11052 * PRODUCTION CROSS SECTION
11053 * DATE: MAY 18, 1994
11054 * ***********************
11055 Subroutine N1535(LB1,LB2,SRT,X1535)
11059 IF(SRT.LE.S0)RETURN
11060 SIGMA=2.*0.102*(SRT-S0)/(0.058+(SRT-S0)**2)
11061 * I N*(1535) PRODUCTION IN NUCLEON-NUCLEON COLLISIONS
11062 *(1) pp->pN*(+)(1535), nn->nN*(0)(1535)
11064 c IF((LB1*LB2.EQ.1).OR.(LB1*LB2.EQ.4))then
11065 IF((LB1*LB2.EQ.1).OR.
11066 & (LB1.EQ.2.AND.LB2.EQ.2))then
11071 *(2) pn->pN*(0)(1535),pn->nN*(+)(1535)
11072 IF(LB1*LB2.EQ.2)then
11076 * III N*(1535) PRODUCTION IN DELTA+DELTA REACTIONS
11077 * (5) D(++)+D(0), D(+)+D(+),D(+)+D(-),D(0)+D(0)
11079 c IF((LB1*LB2.EQ.63).OR.(LB1*LB2.EQ.64).OR.(LB1*LB2.EQ.48).
11080 c 1 OR.(LB1*LB2.EQ.49))then
11081 IF((LB1*LB2.EQ.63.AND.(LB1.EQ.7.OR.LB2.EQ.7)).OR.
11082 & (LB1*LB2.EQ.64.AND.(LB1.EQ.8.OR.LB2.EQ.8)).OR.
11083 & (LB1*LB2.EQ.48.AND.(LB1.EQ.6.OR.LB2.EQ.6)).OR.
11084 & (LB1*LB2.EQ.49.AND.(LB1.EQ.7.OR.LB2.EQ.7)))then
11089 * (6) D(++)+D(-),D(+)+D(0)
11091 c IF((LB1*LB2.EQ.54).OR.(LB1*LB2.EQ.56))then
11092 IF((LB1*LB2.EQ.54.AND.(LB1.EQ.6.OR.LB2.EQ.6)).OR.
11093 & (LB1*LB2.EQ.56.AND.(LB1.EQ.7.OR.LB2.EQ.7)))then
11098 * IV N*(1535) PRODUCTION IN N*(1440)+N*(1440) REACTIONS
11100 c IF((LB1*LB2.EQ.100).OR.(LB1*LB2.EQ.11*11))X1535=SIGMA
11101 IF((LB1.EQ.10.AND.LB2.EQ.10).OR.
11102 & (LB1.EQ.11.AND.LB2.EQ.11))X1535=SIGMA
11103 c IF(LB1*LB2.EQ.110)X1535=3.*SIGMA
11104 IF(LB1*LB2.EQ.110.AND.(LB1.EQ.10.OR.LB2.EQ.10))X1535=3.*SIGMA
11108 ************************************
11109 * FUNCTION WA1(DMASS) GIVES THE A1 DECAY WIDTH
11111 subroutine WIDA1(DMASS,rhomp,wa1,iseed)
11117 RHOMAX = DMASS-PIMASS-0.02
11118 IF(RHOMAX.LE.0)then
11124 711 rhomp=RHOMAS(RHOMAX,ISEED)
11126 if(dmass.le.(pimass+rhomp)) then
11127 if(icount.le.100) then
11136 qqp2=(dmass**2-(rhomp+pimass)**2)*(dmass**2-(rhomp-pimass)**2)
11137 qqp=sqrt(qqp2)/(2.0*dmass)
11138 epi=sqrt(pimass**2+qqp**2)
11139 erho=sqrt(rhomp**2+qqp**2)
11140 epirho=2.0*(epi*erho+qqp**2)**2+rhomp**2*epi**2
11141 wa1=coupa**2*qqp*epirho/(24.0*3.1416*dmass**2)
11144 ************************************
11145 * FUNCTION W1535(DMASS) GIVES THE N*(1535) DECAY WIDTH
11146 c FOR A GIVEN N*(1535) MASS
11147 * HERE THE FORMULA GIVEN BY KITAZOE IS USED
11148 REAL FUNCTION W1535(DMASS)
11152 AUX = 0.25*(DMASS**2-AVMASS**2-PIMASS**2)**2
11153 & -(AVMASS*PIMASS)**2
11154 IF (AUX .GT. 0.) THEN
11155 QAVAIL = SQRT(AUX / DMASS**2)
11159 W1535 = 0.15* QAVAIL/0.467
11163 ************************************
11164 * FUNCTION W1440(DMASS) GIVES THE N*(1440) DECAY WIDTH
11165 c FOR A GIVEN N*(1535) MASS
11166 * HERE THE FORMULA GIVEN BY KITAZOE IS USED
11167 REAL FUNCTION W1440(DMASS)
11171 AUX = 0.25*(DMASS**2-AVMASS**2-PIMASS**2)**2
11172 & -(AVMASS*PIMASS)**2
11173 IF (AUX .GT. 0.) THEN
11174 QAVAIL = SQRT(AUX)/DMASS
11179 W1440 = 0.2* (QAVAIL/0.397)**3
11183 * PURPOSE : CALCULATE THE PION(ETA)+NUCLEON CROSS SECTION
11184 * ACCORDING TO THE BREIT-WIGNER FORMULA,
11185 * NOTE THAT N*(1535) IS S_11
11186 * VARIABLE : LA = 1 FOR PI+N
11188 * DATE : MAY 16, 1994
11190 REAL FUNCTION XN1535(I1,I2,LA)
11191 PARAMETER (MAXSTR=150001,MAXR=1,
11192 1 AMN=0.939457,AMP=0.93828,ETAM=0.5475,
11193 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
11194 COMMON /AA/ R(3,MAXSTR)
11196 COMMON /BB/ P(3,MAXSTR)
11198 COMMON /CC/ E(MAXSTR)
11200 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
11204 COMMON /PA/RPION(3,MAXSTR,MAXR)
11206 COMMON /PB/PPION(3,MAXSTR,MAXR)
11208 COMMON /PC/EPION(MAXSTR,MAXR)
11210 COMMON /PD/LPION(MAXSTR,MAXR)
11213 AVMASS=0.5*(AMN+AMP)
11214 AVPI=(2.*AP2+AP1)/3.
11215 * 1. DETERMINE THE MOMENTUM COMPONENT OF N*(1535) IN THE LAB. FRAME
11216 E10=SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
11217 E20=SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
11221 * 2. DETERMINE THE MASS OF DELTA BY USING OF THE REACTION KINEMATICS
11222 DM=SQRT((E10+E20)**2-P1**2-P2**2-P3**2)
11227 * 3. DETERMINE THE PION(ETA)+NUCLEON->N*(1535) CROSS SECTION ACCORDING TO THE
11228 * BREIT-WIGNER FORMULA IN UNIT OF FM**2
11231 F1=0.25*GAM0**2/(0.25*GAM**2+(DM-1.535)**2)
11240 ***************************8
11241 *FUNCTION FDE(DMASS) GIVES DELTA MASS DISTRIBUTION BY USING OF
11243 REAL FUNCTION FDELTA(DMASS)
11248 FD=0.25*WIDTH(DMASS)**2/((DMASS-1.232)**2
11249 1 +0.25*WIDTH(DMASS)**2)
11253 * FUNCTION WIDTH(DMASS) GIVES THE DELTA DECAY WIDTH FOR A GIVEN DELTA MASS
11254 * HERE THE FORMULA GIVEN BY KITAZOE IS USED
11255 REAL FUNCTION WIDTH(DMASS)
11259 AUX = 0.25*(DMASS**2-AVMASS**2-PIMASS**2)**2
11260 & -(AVMASS*PIMASS)**2
11261 IF (AUX .GT. 0.) THEN
11262 QAVAIL = SQRT(AUX / DMASS**2)
11266 WIDTH = 0.47 * QAVAIL**3 /
11267 & (PIMASS**2 * (1.+0.6*(QAVAIL/PIMASS)**2))
11271 ************************************
11272 SUBROUTINE ddp2(SRT,ISEED,PX,PY,PZ,DM1,PNX,
11273 & PNY,PNZ,DM2,PPX,PPY,PPZ,icou1)
11274 * PURPOSE : CALCULATE MOMENTUM OF PARTICLES IN THE FINAL SATAT FROM
11275 * THE PROCESS N+N--->D1+D2+PION
11276 * DATE : July 25, 1994
11277 * Generate the masses and momentum for particles in the NN-->DDpi process
11278 * for a given center of mass energy srt, the momenta are given in the center
11279 * of mass of the NN
11280 *****************************************
11281 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
11283 COMMON/RNDF77/NSEED
11290 * (1) GENGRATE THE MASS OF DELTA1 AND DELTA2 USING
11293 8 call Rmasdd(srt1,1.232,1.232,1.08,
11294 & 1.08,ISEED,1,dm1,dm2)
11296 * CONSTANTS FOR GENERATING THE LONGITUDINAL MOMENTUM
11297 * FOR ONE OF THE RESONANCES
11300 * (2) Generate the transverse momentum
11302 * (2.1) estimate the maximum transverse momentum
11303 PTMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11304 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2
11305 if(ptmax2.le.0)go to 8
11306 PTMAX=SQRT(PTMAX2)*1./3.
11307 7 PT=PTR(PTMAX,ISEED)
11308 * (3.1) THE MAXIMUM LONGITUDINAL MOMENTUM IS
11309 PZMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11310 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2-PT**2
11311 IF((PZMAX2.LT.0.).and.ntrym.le.100)then
11318 * (3.2) THE GENERATED X IS
11319 * THE DSTRIBUTION HAS A MAXIMUM AT X0=-V/(2*w), f(X0)=1.056
11323 if(abs(xmax).gt.0.26)then
11326 f00=1.+v*abs(xmax)+w*xmax**2
11328 9 X=XMAX*(1.-2.*RANART(NSEED))
11330 xratio=(1.+V*ABS(X)+W*X**2)/f00
11331 clin-8/17/00 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11332 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11335 * The x and y components of the deltA1
11336 fai=2.*pi*RANART(NSEED)
11339 * find the momentum of delta2 and pion
11340 * the energy of the delta1
11341 ek=sqrt(dm1**2+PT**2+Pz**2)
11342 * (1) Generate the momentum of the delta2 in the cms of delta2 and pion
11343 * the energy of the cms of DP
11349 * beta and gamma of the cms of delta2+pion
11353 ga=1./sqrt(1.-bx**2-by**2-bz**2)
11354 * the momentum of delta2 and pion in their cms frame
11356 pn2=((elnc**2+dm2**2-amp**2)/(2.*elnc))**2-dm2**2
11363 clin-10/25/02 get rid of argument usage mismatch in PTR():
11365 c PNT=PTR(0.33*PN,ISEED)
11366 PNT=PTR(xptr,ISEED)
11369 fain=2.*pi*RANART(NSEED)
11374 pnz=SIG*SQRT(pn**2-PNT**2)
11375 en=sqrt(dm2**2+pnx**2+pny**2+pnz**2)
11376 * (2) the momentum for the pion
11380 ep=sqrt(amp**2+ppx**2+ppy**2+ppz**2)
11381 * (3) for the delta2, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11382 PBETA = PnX*BX + PnY*By+ PnZ*Bz
11383 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
11384 Pnx = BX * TRANS0 + PnX
11385 Pny = BY * TRANS0 + PnY
11386 Pnz = BZ * TRANS0 + PnZ
11387 * (4) for the pion, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11388 if(ep.eq.0.)ep=1.E-09
11389 PBETA = PPX*BX + PPY*By+ PPZ*Bz
11390 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + EP )
11391 PPx = BX * TRANS0 + PPX
11392 PPy = BY * TRANS0 + PPY
11393 PPz = BZ * TRANS0 + PPZ
11396 ****************************************
11397 SUBROUTINE ddrho(SRT,ISEED,PX,PY,PZ,DM1,PNX,
11398 & PNY,PNZ,DM2,PPX,PPY,PPZ,amp,icou1)
11399 * PURPOSE : CALCULATE MOMENTUM OF PARTICLES IN THE FINAL SATAT FROM
11400 * THE PROCESS N+N--->D1+D2+rho
11401 * DATE : Nov.5, 1994
11402 * Generate the masses and momentum for particles in the NN-->DDrho process
11403 * for a given center of mass energy srt, the momenta are given in the center
11404 * of mass of the NN
11405 *****************************************
11406 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
11408 COMMON/RNDF77/NSEED
11415 * (1) GENGRATE THE MASS OF DELTA1 AND DELTA2 USING
11418 8 call Rmasdd(srt1,1.232,1.232,1.08,
11419 & 1.08,ISEED,1,dm1,dm2)
11421 * GENERATE THE MASS FOR THE RHO
11422 RHOMAX = SRT-DM1-DM2-0.02
11423 IF(RHOMAX.LE.0.and.ntrym.le.20)go to 8
11424 AMP=RHOMAS(RHOMAX,ISEED)
11425 * CONSTANTS FOR GENERATING THE LONGITUDINAL MOMENTUM
11426 * FOR ONE OF THE RESONANCES
11429 * (2) Generate the transverse momentum
11431 * (2.1) estimate the maximum transverse momentum
11432 PTMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11433 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2
11434 PTMAX=SQRT(PTMAX2)*1./3.
11435 7 PT=PTR(PTMAX,ISEED)
11436 * (3) GENGRATE THE LONGITUDINAL MOMENTUM FOR DM1
11437 * USING THE GIVEN DISTRIBUTION
11438 * (3.1) THE MAXIMUM LONGITUDINAL MOMENTUM IS
11439 PZMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11440 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2-PT**2
11441 IF((PZMAX2.LT.0.).and.ntrym.le.100)then
11448 * (3.2) THE GENERATED X IS
11449 * THE DSTRIBUTION HAS A MAXIMUM AT X0=-V/(2*w), f(X0)=1.056
11453 if(abs(xmax).gt.0.26)then
11456 f00=1.+v*abs(xmax)+w*xmax**2
11458 9 X=XMAX*(1.-2.*RANART(NSEED))
11460 xratio=(1.+V*ABS(X)+W*X**2)/f00
11461 clin-8/17/00 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11462 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11465 * The x and y components of the delta1
11466 fai=2.*pi*RANART(NSEED)
11469 * find the momentum of delta2 and rho
11470 * the energy of the delta1
11471 ek=sqrt(dm1**2+PT**2+Pz**2)
11472 * (1) Generate the momentum of the delta2 in the cms of delta2 and rho
11473 * the energy of the cms of Drho
11479 * beta and gamma of the cms of delta2 and rho
11483 ga=1./sqrt(1.-bx**2-by**2-bz**2)
11485 pn2=((elnc**2+dm2**2-amp**2)/(2.*elnc))**2-dm2**2
11492 clin-10/25/02 get rid of argument usage mismatch in PTR():
11494 c PNT=PTR(0.33*PN,ISEED)
11495 PNT=PTR(xptr,ISEED)
11498 fain=2.*pi*RANART(NSEED)
11503 pnz=SIG*SQRT(pn**2-PNT**2)
11504 en=sqrt(dm2**2+pnx**2+pny**2+pnz**2)
11505 * (2) the momentum for the rho
11509 ep=sqrt(amp**2+ppx**2+ppy**2+ppz**2)
11510 * (3) for the delta2, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11511 PBETA = PnX*BX + PnY*By+ PnZ*Bz
11512 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
11513 Pnx = BX * TRANS0 + PnX
11514 Pny = BY * TRANS0 + PnY
11515 Pnz = BZ * TRANS0 + PnZ
11516 * (4) for the rho, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11517 if(ep.eq.0.)ep=1.e-09
11518 PBETA = PPX*BX + PPY*By+ PPZ*Bz
11519 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + EP )
11520 PPx = BX * TRANS0 + PPX
11521 PPy = BY * TRANS0 + PPY
11522 PPz = BZ * TRANS0 + PPZ
11525 ****************************************
11526 SUBROUTINE pprho(SRT,ISEED,PX,PY,PZ,DM1,PNX,
11527 & PNY,PNZ,DM2,PPX,PPY,PPZ,amp,icou1)
11528 * PURPOSE : CALCULATE MOMENTUM OF PARTICLES IN THE FINAL SATAT FROM
11529 * THE PROCESS N+N--->N1+N2+rho
11530 * DATE : Nov.5, 1994
11531 * Generate the masses and momentum for particles in the NN--> process
11532 * for a given center of mass energy srt, the momenta are given in the center
11533 * of mass of the NN
11534 *****************************************
11535 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
11537 COMMON/RNDF77/NSEED
11547 * GENERATE THE MASS FOR THE RHO
11548 RHOMAX=SRT-DM1-DM2-0.02
11549 IF(RHOMAX.LE.0)THEN
11553 AMP=RHOMAS(RHOMAX,ISEED)
11554 * CONSTANTS FOR GENERATING THE LONGITUDINAL MOMENTUM
11555 * FOR ONE OF THE nucleons
11558 * (2) Generate the transverse momentum
11560 * (2.1) estimate the maximum transverse momentum
11561 PTMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11562 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2
11563 PTMAX=SQRT(PTMAX2)*1./3.
11564 7 PT=PTR(PTMAX,ISEED)
11565 * (3) GENGRATE THE LONGITUDINAL MOMENTUM FOR DM1
11566 * USING THE GIVEN DISTRIBUTION
11567 * (3.1) THE MAXIMUM LONGITUDINAL MOMENTUM IS
11568 PZMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11569 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2-PT**2
11571 IF((PZMAX2.LT.0.).and.ntrym.le.100)then
11578 * (3.2) THE GENERATED X IS
11579 * THE DSTRIBUTION HAS A MAXIMUM AT X0=-V/(2*w), f(X0)=1.056
11583 if(abs(xmax).gt.0.26)then
11586 f00=1.+v*abs(xmax)+w*xmax**2
11588 9 X=XMAX*(1.-2.*RANART(NSEED))
11590 xratio=(1.+V*ABS(X)+W*X**2)/f00
11591 clin-8/17/00 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11592 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11595 * The x and y components of the delta1
11596 fai=2.*pi*RANART(NSEED)
11599 * find the momentum of delta2 and rho
11600 * the energy of the delta1
11601 ek=sqrt(dm1**2+PT**2+Pz**2)
11602 * (1) Generate the momentum of the delta2 in the cms of delta2 and rho
11603 * the energy of the cms of Drho
11609 * beta and gamma of the cms of the two partciles
11613 ga=1./sqrt(1.-bx**2-by**2-bz**2)
11615 pn2=((elnc**2+dm2**2-amp**2)/(2.*elnc))**2-dm2**2
11622 clin-10/25/02 get rid of argument usage mismatch in PTR():
11624 c PNT=PTR(0.33*PN,ISEED)
11625 PNT=PTR(xptr,ISEED)
11628 fain=2.*pi*RANART(NSEED)
11633 pnz=SIG*SQRT(pn**2-PNT**2)
11634 en=sqrt(dm2**2+pnx**2+pny**2+pnz**2)
11635 * (2) the momentum for the rho
11639 ep=sqrt(amp**2+ppx**2+ppy**2+ppz**2)
11640 * (3) for the delta2, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11641 PBETA = PnX*BX + PnY*By+ PnZ*Bz
11642 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
11643 Pnx = BX * TRANS0 + PnX
11644 Pny = BY * TRANS0 + PnY
11645 Pnz = BZ * TRANS0 + PnZ
11646 * (4) for the rho, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11647 if(ep.eq.0.)ep=1.e-09
11648 PBETA = PPX*BX + PPY*By+ PPZ*Bz
11649 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + EP )
11650 PPx = BX * TRANS0 + PPX
11651 PPy = BY * TRANS0 + PPY
11652 PPz = BZ * TRANS0 + PPZ
11655 ***************************8
11656 ****************************************
11657 SUBROUTINE ppomga(SRT,ISEED,PX,PY,PZ,DM1,PNX,
11658 & PNY,PNZ,DM2,PPX,PPY,PPZ,icou1)
11659 * PURPOSE : CALCULATE MOMENTUM OF PARTICLES IN THE FINAL SATAT FROM
11660 * THE PROCESS N+N--->N1+N2+OMEGA
11661 * DATE : Nov.5, 1994
11662 * Generate the masses and momentum for particles in the NN--> process
11663 * for a given center of mass energy srt, the momenta are given in the center
11664 * of mass of the NN
11665 *****************************************
11666 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
11668 COMMON/RNDF77/NSEED
11678 * CONSTANTS FOR GENERATING THE LONGITUDINAL MOMENTUM
11679 * FOR ONE OF THE nucleons
11682 * (2) Generate the transverse momentum
11684 * (2.1) estimate the maximum transverse momentum
11685 PTMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11686 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2
11687 PTMAX=SQRT(PTMAX2)*1./3.
11688 7 PT=PTR(PTMAX,ISEED)
11689 * (3) GENGRATE THE LONGITUDINAL MOMENTUM FOR DM1
11690 * USING THE GIVEN DISTRIBUTION
11691 * (3.1) THE MAXIMUM LONGITUDINAL MOMENTUM IS
11692 PZMAX2=(SRT**2-(DM1+DM2+AMP)**2)*
11693 1 (SRT**2-(DM1-AMP-DM2)**2)/4./SRT**2-PT**2
11695 IF((PZMAX2.LT.0.).and.ntrym.le.100)then
11702 * (3.2) THE GENERATED X IS
11703 * THE DSTRIBUTION HAS A MAXIMUM AT X0=-V/(2*w), f(X0)=1.056
11707 if(abs(xmax).gt.0.26)then
11710 f00=1.+v*abs(xmax)+w*xmax**2
11712 9 X=XMAX*(1.-2.*RANART(NSEED))
11714 xratio=(1.+V*ABS(X)+W*X**2)/f00
11715 clin-8/17/00 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11716 IF(xratio.LT.RANART(NSEED).and.ntryx.le.50)GO TO 9
11719 * The x and y components of the delta1
11720 fai=2.*pi*RANART(NSEED)
11723 * find the momentum of delta2 and rho
11724 * the energy of the delta1
11725 ek=sqrt(dm1**2+PT**2+Pz**2)
11726 * (1) Generate the momentum of the delta2 in the cms of delta2 and rho
11727 * the energy of the cms of Drho
11736 ga=1./sqrt(1.-bx**2-by**2-bz**2)
11738 pn2=((elnc**2+dm2**2-amp**2)/(2.*elnc))**2-dm2**2
11745 clin-10/25/02 get rid of argument usage mismatch in PTR():
11747 c PNT=PTR(0.33*PN,ISEED)
11748 PNT=PTR(xptr,ISEED)
11751 fain=2.*pi*RANART(NSEED)
11756 pnz=SIG*SQRT(pn**2-PNT**2)
11757 en=sqrt(dm2**2+pnx**2+pny**2+pnz**2)
11758 * (2) the momentum for the rho
11762 ep=sqrt(amp**2+ppx**2+ppy**2+ppz**2)
11763 * (3) for the delta2, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11764 PBETA = PnX*BX + PnY*By+ PnZ*Bz
11765 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
11766 Pnx = BX * TRANS0 + PnX
11767 Pny = BY * TRANS0 + PnY
11768 Pnz = BZ * TRANS0 + PnZ
11769 * (4) for the rho, LORENTZ-TRANSFORMATION INTO nn cms FRAME
11770 if(ep.eq.0.)ep=1.E-09
11771 PBETA = PPX*BX + PPY*By+ PPZ*Bz
11772 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + EP )
11773 PPx = BX * TRANS0 + PPX
11774 PPy = BY * TRANS0 + PPY
11775 PPz = BZ * TRANS0 + PPZ
11778 ***************************8
11779 ***************************8
11780 * DELTA MASS GENERATOR
11781 REAL FUNCTION RMASS(DMAX,ISEED)
11782 COMMON/RNDF77/NSEED
11786 * THE MINIMUM MASS FOR DELTA
11788 * Delta(1232) production
11789 IF(DMAX.LT.1.232) THEN
11794 IF(FM.EQ.0.)FM=1.E-06
11796 10 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
11798 IF((RANART(NSEED) .GT. FDELTA(DM)/FM).AND.
11799 1 (NTRY1.LE.10)) GOTO 10
11800 clin-2/26/03 sometimes Delta mass can reach very high values (e.g. 15.GeV),
11801 c thus violating the thresh of the collision which produces it
11802 c and leads to large violation of energy conservation.
11803 c To limit the above, limit the Delta mass below a certain value
11804 c (here taken as its central value + 2* B-W fullwidth):
11805 if(dm.gt.1.47) goto 10
11811 *------------------------------------------------------------------
11812 * THE Breit Wigner FORMULA
11813 REAL FUNCTION FRHO(DMASS)
11817 FD=0.25*wid**2/((DMASS-AM0)**2+0.25*WID**2)
11821 ***************************8
11822 * RHO MASS GENERATOR
11823 REAL FUNCTION RHOMAS(DMAX,ISEED)
11824 COMMON/RNDF77/NSEED
11828 * THE MINIMUM MASS FOR DELTA
11830 * RHO(770) production
11831 IF(DMAX.LT.0.77) THEN
11836 IF(FM.EQ.0.)FM=1.E-06
11838 10 DM = RANART(NSEED) * (DMAX-DMIN) + DMIN
11840 IF((RANART(NSEED) .GT. FRHO(DM)/FM).AND.
11841 1 (NTRY1.LE.10)) GOTO 10
11842 clin-2/26/03 limit the rho mass below a certain value
11843 c (here taken as its central value + 2* B-W fullwidth):
11844 if(dm.gt.1.07) goto 10
11849 ******************************************
11851 c real*4 function X2pi(srt)
11852 real function X2pi(srt)
11853 * This function contains the experimental
11854 c total pp-pp+pi(+)pi(-) Xsections *
11855 * srt = DSQRT(s) in GeV *
11856 * xsec = production cross section in mb *
11857 * earray = EXPerimental table with proton momentum in GeV/c *
11858 * xarray = EXPerimental table with cross sections in mb (curve to guide eye)*
11860 ******************************************
11861 c real*4 xarray(15), earray(15)
11862 real xarray(15), earray(15)
11864 data earray /2.23,2.81,3.67,4.0,4.95,5.52,5.97,6.04,
11865 &6.6,6.9,7.87,8.11,10.01,16.0,19./
11866 data xarray /1.22,2.51,2.67,2.95,2.96,2.84,2.8,3.2,
11867 &2.7,3.0,2.54,2.46,2.4,1.66,1.5/
11870 * 1.Calculate p(lab) from srt [GeV]
11871 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
11872 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
11874 if(srt.le.2.2)return
11875 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
11876 if (plab .lt. earray(1)) then
11881 * 2.Interpolate double logarithmically to find sigma(srt)
11884 if (earray(ie) .eq. plab) then
11887 else if (earray(ie) .gt. plab) then
11888 ymin = alog(xarray(ie-1))
11889 ymax = alog(xarray(ie))
11890 xmin = alog(earray(ie-1))
11891 xmax = alog(earray(ie))
11892 X2pi = exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
11899 ******************************************
11900 * for pp-->pn+pi(+)pi(+)pi(-)
11901 c real*4 function X3pi(srt)
11902 real function X3pi(srt)
11903 * This function contains the experimental pp->pp+3pi cross sections *
11904 * srt = DSQRT(s) in GeV *
11905 * xsec = production cross section in mb *
11906 * earray = EXPerimental table with proton energies in MeV *
11907 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
11909 ******************************************
11910 c real*4 xarray(12), earray(12)
11911 real xarray(12), earray(12)
11913 data xarray /0.02,0.4,1.15,1.60,2.19,2.85,2.30,
11914 &3.10,2.47,2.60,2.40,1.70/
11915 data earray /2.23,2.81,3.67,4.00,4.95,5.52,5.97,
11916 &6.04,6.60,6.90,10.01,19./
11919 * 1.Calculate p(lab) from srt [GeV]
11920 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
11921 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
11923 if(srt.le.2.3)return
11924 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
11925 if (plab .lt. earray(1)) then
11930 * 2.Interpolate double logarithmically to find sigma(srt)
11933 if (earray(ie) .eq. plab) then
11936 else if (earray(ie) .gt. plab) then
11937 ymin = alog(xarray(ie-1))
11938 ymax = alog(xarray(ie))
11939 xmin = alog(earray(ie-1))
11940 xmax = alog(earray(ie))
11941 X3pi= exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
11948 ******************************************
11949 ******************************************
11950 * for pp-->pp+pi(+)pi(-)pi(0)
11951 c real*4 function X33pi(srt)
11952 real function X33pi(srt)
11953 * This function contains the experimental pp->pp+3pi cross sections *
11954 * srt = DSQRT(s) in GeV *
11955 * xsec = production cross section in mb *
11956 * earray = EXPerimental table with proton energies in MeV *
11957 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
11959 ******************************************
11960 c real*4 xarray(12), earray(12)
11961 real xarray(12), earray(12)
11963 data xarray /0.02,0.22,0.74,1.10,1.76,1.84,2.20,
11964 &2.40,2.15,2.60,2.30,1.70/
11965 data earray /2.23,2.81,3.67,4.00,4.95,5.52,5.97,
11966 &6.04,6.60,6.90,10.01,19./
11970 if(srt.le.2.3)return
11971 * 1.Calculate p(lab) from srt [GeV]
11972 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
11973 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
11974 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
11975 if (plab .lt. earray(1)) then
11980 * 2.Interpolate double logarithmically to find sigma(srt)
11983 if (earray(ie) .eq. plab) then
11986 else if (earray(ie) .gt. plab) then
11987 ymin = alog(xarray(ie-1))
11988 ymax = alog(xarray(ie))
11989 xmin = alog(earray(ie-1))
11990 xmax = alog(earray(ie))
11991 x33pi= exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
11998 ******************************************
11999 c REAL*4 FUNCTION X4pi(SRT)
12000 REAL FUNCTION X4pi(SRT)
12002 * CROSS SECTION FOR NN-->DD+rho PROCESS
12003 * *****************************
12015 * cross section for two resonance pp-->DD+DN*+N*N*
12017 * cross section for pp-->pp+spi
12018 xpp3pi=3.*(x3pi(es)+x33pi(es))
12019 * cross section for pp-->pD+ and nD++
12020 pps1=sigma(es,1,1,0)+0.5*sigma(es,1,1,1)
12021 pps2=1.5*sigma(es,1,1,1)
12022 ppsngl=pps1+pps2+s1535(es)
12023 * CROSS SECTION FOR KAON PRODUCTION from the four channels
12031 if(es.le.t1nlk)go to 333
12032 pmnlk2=(es**2-t1nlk**2)*(es**2-t2nlk**2)/(4.*es**2)
12038 if(es.le.t1dlk)go to 333
12039 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
12045 if(es.le.t1nsk)go to 333
12046 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
12048 xk2=ppk1(es)+ppk0(es)
12052 if(es.le.t1dsk)go to 333
12053 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
12055 xk4=ppk1(es)+ppk0(es)
12056 * THE TOTAL KAON+ AND KAON0 PRODUCTION CROSS SECTION IS THEN
12057 333 XKAON=3.*(xk1+xk2+xk3+xk4)
12058 * cross section for pp-->DD+rho
12059 x4pi=pp1(es)-ppsngl-xpp2pi-xpp3pi-XKAON
12060 if(x4pi.le.0)x4pi=1.E-06
12064 ******************************************
12065 * for pp-->inelastic
12066 c real*4 function pp1(srt)
12067 real function pp1(srt)
12069 * srt = DSQRT(s) in GeV *
12070 * xsec = production cross section in mb *
12071 * earray = EXPerimental table with proton energies in MeV *
12072 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
12074 ******************************************
12077 * 1.Calculate p(lab) from srt [GeV]
12078 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
12079 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
12080 plab2=((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2
12081 IF(PLAB2.LE.0)RETURN
12085 if ((plab .lt. pmin).or.(plab.gt.pmax)) then
12095 pp1 = a+b*(plab**an)+c*(alog(plab))**2
12096 if(pp1.le.0)pp1=0.0
12099 ******************************************
12101 c real*4 function pp2(srt)
12102 real function pp2(srt)
12104 * srt = DSQRT(s) in GeV *
12105 * xsec = production cross section in mb *
12106 * earray = EXPerimental table with proton energies in MeV *
12107 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
12109 ******************************************
12111 * 1.Calculate p(lab) from srt [GeV]
12112 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
12113 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
12114 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12117 if(plab.gt.pmax)then
12121 if(plab .lt. pmin)then
12131 pp2 = a+b*(plab**an)+c*(alog(plab))**2+d*alog(plab)
12136 ******************************************
12138 c real*4 function ppt(srt)
12139 real function ppt(srt)
12141 * srt = DSQRT(s) in GeV *
12142 * xsec = production cross section in mb *
12143 * earray = EXPerimental table with proton energies in MeV *
12144 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
12146 ******************************************
12148 * 1.Calculate p(lab) from srt [GeV]
12149 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
12150 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
12151 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12154 if ((plab .lt. pmin).or.(plab.gt.pmax)) then
12164 ppt = a+b*(plab**an)+c*(alog(plab))**2+d*alog(plab)
12165 if(ppt.le.0)ppt=0.0
12169 *************************
12170 * cross section for N*(1535) production in PP collisions
12172 * LB1,LB2 ARE THE LABLES OF THE TWO COLLIDING PARTICLES
12173 * SRT IS THE CMS ENERGY
12174 * X1535 IS THE N*(1535) PRODUCTION CROSS SECTION
12175 * NOTE THAT THE N*(1535) PRODUCTION CROSS SECTION IS 2 TIMES THE ETA
12176 * PRODUCTION CROSS SECTION
12177 * DATE: Aug. 1 , 1994
12178 * ********************************
12179 real function s1535(SRT)
12183 IF(SRT.LE.S0)RETURN
12184 S1535=2.*0.102*(SRT-S0)/(0.058+(SRT-S0)**2)
12187 ****************************************
12188 * generate a table for pt distribution for
12190 * THE PROCESS N+N--->N+N+PION
12191 * DATE : July 11, 1994
12192 *****************************************
12193 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
12206 *********************************
12207 real function ptdis(x)
12209 * NUCLEON TRANSVERSE MOMENTUM DISTRIBUTION AT HIGH ENERGIES
12210 * DATE: Aug. 11, 1994
12211 *********************************
12217 ptdis=1./(2.*b)*(1.-exp(-b*x**2))-c/d*x*exp(-d*x)
12218 1 -c/D**2*(exp(-d*x)-1.)
12221 *****************************
12222 subroutine ppxS(lb1,lb2,srt,ppsig,spprho,ipp)
12223 * purpose: this subroutine gives the cross section for pion+pion
12224 * elastic collision
12226 * input: lb1,lb2 and srt are the labels and srt for I1 and I2
12227 * output: ppsig: pp xsection
12228 * ipp: label for the pion+pion channel
12229 * Ipp=0 NOTHING HAPPEND
12230 * 1 for Pi(+)+PI(+) DIRECT
12231 * 2 PI(+)+PI(0) FORMING RHO(+)
12232 * 3 PI(+)+PI(-) FORMING RHO(0)
12233 * 4 PI(0)+PI(O) DIRECT
12234 * 5 PI(0)+PI(-) FORMING RHO(-)
12235 * 6 PI(-)+PI(-) DIRECT
12236 * reference: G.F. Bertsch, Phys. Rev. D37 (1988) 1202.
12237 * date : Aug 29, 1994
12238 *****************************
12239 parameter (amp=0.14,pi=3.1415926)
12248 IF(SRT.LE.0.3)RETURN
12249 q=sqrt((srt/2)**2-amp**2)
12253 trho=0.095*q*(q/amp/(1.+(q/erho)**2))**2
12259 d00=atan(tsigma/2./esi)
12265 d11=atan(trho/2./erh)
12267 s0=8.*pi*sin(d00)**2/q**2
12268 s1=8*pi*3*sin(d11)**2/q**2
12269 s2=8*pi*5*sin(d20)**2/q**2
12274 C ppXS=s0/9.+s1/3.+s2*0.56
12275 C if(ppxs.le.0)ppxs=0.00001
12278 IF(LB1.EQ.5.AND.LB2.EQ.5)THEN
12284 IF((LB1.EQ.5.AND.LB2.EQ.4).OR.(LB1.EQ.4.AND.LB2.EQ.5))THEN
12290 IF((LB1.EQ.5.AND.LB2.EQ.3).OR.(LB1.EQ.3.AND.LB2.EQ.5))THEN
12292 PPSIG=S2/6.+S1/2.+S0/3.
12296 IF(LB1.EQ.4.AND.LB2.EQ.4)THEN
12298 PPSIG=2*S2/3.+S0/3.
12302 IF((LB1.EQ.4.AND.LB2.EQ.3).OR.(LB1.EQ.3.AND.LB2.EQ.4))THEN
12308 IF(LB1.EQ.3.AND.LB2.EQ.3)THEN
12314 **********************************
12315 * elementary kaon production cross sections
12316 * from the CERN data book
12317 * date: Sept.2, 1994
12319 c real*4 function pplpk(srt)
12320 real function pplpk(srt)
12322 * srt = DSQRT(s) in GeV *
12323 * xsec = production cross section in mb *
12324 * earray = EXPerimental table with proton energies in MeV *
12325 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
12327 ******************************************
12329 * 1.Calculate p(lab) from srt [GeV]
12330 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
12331 * find the center of mass energy corresponding to the given pm as
12332 * if Lambda+N+K are produced
12334 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12337 if(plab.gt.pmax)then
12341 if(plab .lt. pmin)then
12350 pplpk = a+b*(plab**an)+c*(alog(plab))**2
12351 if(pplpk.le.0)pplpk=0
12355 ******************************************
12356 * for pp-->pSigma+K0
12357 c real*4 function ppk0(srt)
12358 real function ppk0(srt)
12359 * srt = DSQRT(s) in GeV *
12360 * xsec = production cross section in mb *
12362 ******************************************
12363 c real*4 xarray(7), earray(7)
12364 real xarray(7), earray(7)
12366 data xarray /0.030,0.025,0.025,0.026,0.02,0.014,0.06/
12367 data earray /3.67,4.95,5.52,6.05,6.92,7.87,10./
12370 * 1.Calculate p(lab) from srt [GeV]
12371 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
12372 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
12374 if(srt.le.2.63)return
12375 if(srt.gt.4.54)then
12379 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12380 if (plab .lt. earray(1)) then
12385 * 2.Interpolate double logarithmically to find sigma(srt)
12388 if (earray(ie) .eq. plab) then
12391 else if (earray(ie) .gt. plab) then
12392 ymin = alog(xarray(ie-1))
12393 ymax = alog(xarray(ie))
12394 xmin = alog(earray(ie-1))
12395 xmax = alog(earray(ie))
12396 ppk0 = exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
12404 ******************************************
12405 * for pp-->pSigma0K+
12406 c real*4 function ppk1(srt)
12407 real function ppk1(srt)
12408 * srt = DSQRT(s) in GeV *
12409 * xsec = production cross section in mb *
12411 ******************************************
12412 c real*4 xarray(7), earray(7)
12413 real xarray(7), earray(7)
12415 data xarray /0.013,0.025,0.016,0.012,0.017,0.029,0.025/
12416 data earray /3.67,4.95,5.52,5.97,6.05,6.92,7.87/
12419 * 1.Calculate p(lab) from srt [GeV]
12420 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
12421 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
12423 if(srt.le.2.63)return
12424 if(srt.gt.4.08)then
12428 plab=sqrt(((srt**2-2.*pmass**2)/(2.*pmass))**2-pmass**2)
12429 if (plab .lt. earray(1)) then
12434 * 2.Interpolate double logarithmically to find sigma(srt)
12437 if (earray(ie) .eq. plab) then
12440 else if (earray(ie) .gt. plab) then
12441 ymin = alog(xarray(ie-1))
12442 ymax = alog(xarray(ie))
12443 xmin = alog(earray(ie-1))
12444 xmax = alog(earray(ie))
12445 ppk1 = exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
12453 **********************************
12456 SUBROUTINE CRPN(PX,PY,PZ,SRT,I1,I2,
12457 & IBLOCK,xkaon0,xkaon,Xphi,xphin)
12459 * DEALING WITH PION+N-->L/S+KAON PROCESS AND PION PRODUCTION *
12463 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
12464 * SRT - SQRT OF S *
12465 * IBLOCK - THE INFORMATION BACK *
12466 * 7 PION+N-->L/S+KAON
12467 * iblock - 77 pion+N-->Delta+pion
12468 * iblock - 78 pion+N-->Delta+RHO
12469 * iblock - 79 pion+N-->Delta+OMEGA
12470 * iblock - 222 pion+N-->Phi
12471 **********************************
12472 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
12473 1 AMP=0.93828,AP1=0.13496,APHI=1.020,
12474 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
12475 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
12476 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
12477 COMMON /AA/ R(3,MAXSTR)
12479 COMMON /BB/ P(3,MAXSTR)
12481 COMMON /CC/ E(MAXSTR)
12483 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
12485 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
12487 COMMON/RNDF77/NSEED
12497 if(lb(i1).lt.0 .or. lb(i2).lt.0) ianti=1
12498 if(xkaon0/(xkaon+Xphi).ge.x1)then
12500 *-----------------------------------------------------------------------
12502 if(ianti .eq. 1)iblock=-7
12504 * RELABLE PARTICLES FOR THE PROCESS PION+n-->LAMBDA K OR SIGMA k
12505 * DECIDE LAMBDA OR SIGMA PRODUCTION, AND TO CALCULATE THE NEW
12506 * MOMENTA FOR PARTICLES IN THE FINAL STATE.
12508 IF(PNLKA(SRT)/(PNLKA(SRT)
12509 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
12510 IF(E(I1).LE.0.2)THEN
12517 LB(I2) = 15 + int(3 * RANART(NSEED))
12520 if(ianti .eq. 1)then
12531 LB(I1) = 15 + int(3 * RANART(NSEED))
12534 if(ianti .eq. 1)then
12542 * to gererate the momentum for the kaon and L/S
12543 elseif(Xphi/(xkaon+Xphi).ge.x1)then
12545 if(xphin/Xphi .ge. RANART(NSEED))then
12546 LB(I1)= 1+int(2*RANART(NSEED))
12549 LB(I1)= 6+int(4*RANART(NSEED))
12552 c !! at present only baryon
12553 if(ianti .eq. 1)lb(i1)=-lb(i1)
12560 * CHECK WHAT KIND OF PION PRODUCTION PROCESS HAS HAPPENED
12561 IF(RANART(NSEED).LE.TWOPI(SRT)/
12562 & (TWOPI(SRT)+THREPI(SRT)+FOURPI(SRT)))THEN
12565 IF(THREPI(SRT)/(THREPI(SRT)+FOURPI(SRT)).
12566 & GT.RANART(NSEED))THEN
12573 * pion production (Delta+pion/rho/omega in the final state)
12574 * generate the mass of the delta resonance
12576 * relable the particles
12577 if(iblock.eq.77)then
12578 * GENERATE THE DELTA MASS
12580 dm=rmass(dmax,iseed)
12581 * pion+baryon-->pion+delta
12582 * Relable particles, I1 is assigned to the Delta and I2 is assigned to the
12584 *(1) for pi(+)+p-->D(+)+P(+) OR D(++)+p(0)
12585 if( ((lb(i1).eq.1.and.lb(i2).eq.5).
12586 & or.(lb(i1).eq.5.and.lb(i2).eq.1))
12587 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.3).
12588 & or.(lb(i1).eq.3.and.lb(i2).eq.-1)) )then
12589 if(iabs(lb(i1)).eq.1)then
12622 *(2) for pi(-)+p-->D(0)+P(0) OR D(+)+p(-),or D(-)+p(+)
12623 if( ((lb(i1).eq.1.and.lb(i2).eq.3).
12624 & or.(lb(i1).eq.3.and.lb(i2).eq.1))
12625 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.5).
12626 & or.(lb(i1).eq.5.and.lb(i2).eq.-1)) )then
12627 if(iabs(lb(i1)).eq.1)then
12636 if(X2.gt.0.33.and.X2.le.0.67)then
12659 if(X2.gt.0.33.and.X2.le.0.67)then
12675 *(3) for pi(+)+n-->D(+)+Pi(0) OR D(++)+p(-) or D(0)+pi(+)
12676 if( ((lb(i1).eq.2.and.lb(i2).eq.5).
12677 & or.(lb(i1).eq.5.and.lb(i2).eq.2))
12678 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.3).
12679 & or.(lb(i1).eq.3.and.lb(i2).eq.-2)) )then
12680 if(iabs(lb(i1)).eq.2)then
12689 if(X2.gt.0.33.and.X2.le.0.67)then
12712 if(X2.gt.0.33.and.X2.le.0.67)then
12728 *(4) for pi(0)+p-->D(+)+Pi(0) OR D(++)+p(-) or D(0)+pi(+)
12729 if((iabs(lb(i1)).eq.1.and.lb(i2).eq.4).
12730 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.1))then
12731 if(iabs(lb(i1)).eq.1)then
12740 if(X2.gt.0.33.and.X2.le.0.67)then
12763 if(X2.gt.0.33.and.X2.le.0.67)then
12779 *(5) for pi(-)+n-->D(-)+P(0) OR D(0)+p(-)
12780 if( ((lb(i1).eq.2.and.lb(i2).eq.3).
12781 & or.(lb(i1).eq.3.and.lb(i2).eq.2))
12782 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.5).
12783 & or.(lb(i1).eq.5.and.lb(i2).eq.-2)) )then
12784 if(iabs(lb(i1)).eq.2)then
12816 *(6) for pi(0)+n-->D(0)+P(0), D(-)+p(+) or D(+)+p(-)
12817 if((iabs(lb(i1)).eq.2.and.lb(i2).eq.4).
12818 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.2))then
12819 if(iabs(lb(i1)).eq.2)then
12828 IF(X2.LE.0.67.AND.X2.GT.0.33)THEN
12851 IF(X2.LE.0.67.AND.X2.GT.0.33)THEN
12868 if(iblock.eq.78)then
12869 call Rmasdd(srt,1.232,0.77,1.08,
12870 & 0.28,ISEED,4,dm,ameson)
12872 * pion+baryon-->Rho+delta
12873 *(1) for pi(+)+p-->D(+)+rho(+) OR D(++)+rho(0)
12874 if( ((lb(i1).eq.1.and.lb(i2).eq.5).
12875 & or.(lb(i1).eq.5.and.lb(i2).eq.1))
12876 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.3).
12877 & or.(lb(i1).eq.3.and.lb(i2).eq.-1)) )then
12878 if(iabs(lb(i1)).eq.1)then
12910 *(2) for pi(-)+p-->D(+)+rho(-) OR D(0)+rho(0) or D(-)+rho(+)
12911 if( ((lb(i1).eq.1.and.lb(i2).eq.3).
12912 & or.(lb(i1).eq.3.and.lb(i2).eq.1))
12913 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.5).
12914 & or.(lb(i1).eq.5.and.lb(i2).eq.-1)) )then
12915 if(iabs(lb(i1)).eq.1)then
12924 if(X2.gt.0.33.and.X2.le.0.67)then
12947 if(X2.gt.0.33.and.X2.le.0.67)then
12963 *(3) for pi(+)+n-->D(+)+rho(0) OR D(++)+rho(-) or D(0)+rho(+)
12964 if( ((lb(i1).eq.2.and.lb(i2).eq.5).
12965 & or.(lb(i1).eq.5.and.lb(i2).eq.2))
12966 & .OR.((lb(i1).eq.-2.and.lb(i2).eq.3).
12967 & or.(lb(i1).eq.3.and.lb(i2).eq.-2)) )then
12968 if(iabs(lb(i1)).eq.2)then
12977 if(X2.gt.0.33.and.X2.le.0.67)then
13000 if(X2.gt.0.33.and.X2.le.0.67)then
13016 *(4) for pi(0)+p-->D(+)+rho(0) OR D(++)+rho(-) or D(0)+rho(+)
13017 if((iabs(lb(i1)).eq.1.and.lb(i2).eq.4).
13018 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.1))then
13019 if(iabs(lb(i1)).eq.1)then
13028 if(X2.gt.0.33.and.X2.le.0.67)then
13051 if(X2.gt.0.33.and.X2.le.0.67)then
13067 *(5) for pi(-)+n-->D(-)+rho(0) OR D(0)+rho(-)
13068 if( ((lb(i1).eq.2.and.lb(i2).eq.3).
13069 & or.(lb(i1).eq.3.and.lb(i2).eq.2))
13070 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.5).
13071 & or.(lb(i1).eq.5.and.lb(i2).eq.-2)) )then
13072 if(iabs(lb(i1)).eq.2)then
13104 *(6) for pi(0)+n-->D(0)+rho(0), D(-)+rho(+) and D(+)+rho(-)
13105 if((iabs(lb(i1)).eq.2.and.lb(i2).eq.4).
13106 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.2))then
13107 if(iabs(lb(i1)).eq.2)then
13116 if(x2.gt.0.33.and.x2.le.0.67)then
13138 if(x2.le.0.67.and.x2.gt.0.33)then
13154 if(iblock.eq.79)then
13156 * GENERATE THE DELTA MASS
13157 dmax=srt-0.782-0.02
13158 dm=rmass(dmax,iseed)
13159 * pion+baryon-->omega+delta
13160 *(1) for pi(+)+p-->D(++)+omega(0)
13161 if( ((lb(i1).eq.1.and.lb(i2).eq.5).
13162 & or.(lb(i1).eq.5.and.lb(i2).eq.1))
13163 & .OR.((lb(i1).eq.-1.and.lb(i2).eq.3).
13164 & or.(lb(i1).eq.3.and.lb(i2).eq.-1)) )then
13165 if(iabs(lb(i1)).eq.1)then
13181 *(2) for pi(-)+p-->D(0)+omega(0)
13182 if( ((lb(i1).eq.1.and.lb(i2).eq.3).
13183 & or.(lb(i1).eq.3.and.lb(i2).eq.1))
13184 & .OR. ((lb(i1).eq.-1.and.lb(i2).eq.5).
13185 & or.(lb(i1).eq.5.and.lb(i2).eq.-1)) )then
13186 if(iabs(lb(i1)).eq.1)then
13202 *(3) for pi(+)+n-->D(+)+omega(0)
13203 if( ((lb(i1).eq.2.and.lb(i2).eq.5).
13204 & or.(lb(i1).eq.5.and.lb(i2).eq.2))
13205 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.3).
13206 & or.(lb(i1).eq.3.and.lb(i2).eq.-2)) )then
13207 if(iabs(lb(i1)).eq.2)then
13223 *(4) for pi(0)+p-->D(+)+omega(0)
13224 if((iabs(lb(i1)).eq.1.and.lb(i2).eq.4).
13225 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.1))then
13226 if(iabs(lb(i1)).eq.1)then
13242 *(5) for pi(-)+n-->D(-)+omega(0)
13243 if( ((lb(i1).eq.2.and.lb(i2).eq.3).
13244 & or.(lb(i1).eq.3.and.lb(i2).eq.2))
13245 & .OR. ((lb(i1).eq.-2.and.lb(i2).eq.5).
13246 & or.(lb(i1).eq.5.and.lb(i2).eq.-2)) )then
13247 if(iabs(lb(i1)).eq.2)then
13262 *(6) for pi(0)+n-->D(0)+omega(0)
13263 if((iabs(lb(i1)).eq.2.and.lb(i2).eq.4).
13264 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.2))then
13265 if(iabs(lb(i1)).eq.2)then
13284 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
13287 if(ii .eq. i2)jj = i1
13288 if(iblock .eq. 77)then
13289 if(lb(jj).eq.3)then
13291 elseif(lb(jj).eq.5)then
13294 elseif(iblock .eq. 78)then
13295 if(lb(jj).eq.25)then
13297 elseif(lb(jj).eq.27)then
13303 *-----------------------------------------------------------------------
13304 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
13305 * ENERGY CONSERVATION
13306 50 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
13307 1 - 4.0 * (EM1*EM2)**2
13308 IF(PR2.LE.0.)PR2=0.00000001
13309 PR=SQRT(PR2)/(2.*SRT)
13310 * here we use the same transverse momentum distribution as for
13311 * pp collisions, it might be necessary to use a different distribution
13313 clin-10/25/02 get rid of argument usage mismatch in PTR():
13315 c cc1=ptr(0.33*pr,iseed)
13316 cc1=ptr(xptr,iseed)
13319 c1=sqrt(pr**2-cc1**2)/pr
13320 * C1 = 1.0 - 2.0 * RANART(NSEED)
13321 T1 = 2.0 * PI * RANART(NSEED)
13322 S1 = SQRT( 1.0 - C1**2 )
13325 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
13330 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
13333 **********************************
13336 SUBROUTINE CREN(PX,PY,PZ,SRT,I1,I2,IBLOCK)
13338 * DEALING WITH ETA+N-->L/S+KAON PROCESS *
13342 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
13343 * SRT - SQRT OF S *
13344 * IBLOCK - THE INFORMATION BACK *
13345 * 7 ETA+N-->L/S+KAON
13346 **********************************
13347 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
13348 1 AMP=0.93828,AP1=0.13496,
13349 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
13350 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
13351 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
13352 COMMON /AA/ R(3,MAXSTR)
13354 COMMON /BB/ P(3,MAXSTR)
13356 COMMON /CC/ E(MAXSTR)
13358 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
13360 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
13362 COMMON/RNDF77/NSEED
13372 if(lb(i1).lt.0 .or. lb(i2).lt.0)then
13376 * RELABLE PARTICLES FOR THE PROCESS eta+n-->LAMBDA K OR SIGMA k
13377 * DECIDE LAMBDA OR SIGMA PRODUCTION, AND TO CALCULATE THE NEW
13378 * MOMENTA FOR PARTICLES IN THE FINAL STATE.
13380 IF(PNLKA(SRT)/(PNLKA(SRT)
13381 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
13382 IF(E(I1).LE.0.6)THEN
13389 LB(I2) = 15 + int(3 * RANART(NSEED))
13392 if(ianti .eq. 1)then
13403 LB(I1) = 15 + int(3 * RANART(NSEED))
13406 if(ianti .eq. 1)then
13413 *-----------------------------------------------------------------------
13414 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
13415 * ENERGY CONSERVATION
13416 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
13417 1 - 4.0 * (EM1*EM2)**2
13418 IF(PR2.LE.0.)PR2=1.e-09
13419 PR=SQRT(PR2)/(2.*SRT)
13420 C1 = 1.0 - 2.0 * RANART(NSEED)
13421 T1 = 2.0 * PI * RANART(NSEED)
13422 S1 = SQRT( 1.0 - C1**2 )
13425 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
13429 * FOR THE ISOTROPIC DISTRIBUTION THERE IS NO NEED TO ROTATE
13432 **********************************
13435 c SUBROUTINE Crdir(PX,PY,PZ,SRT,I1,I2)
13436 SUBROUTINE Crdir(PX,PY,PZ,SRT,I1,I2,IBLOCK)
13438 * DEALING WITH pion+N-->pion+N PROCESS *
13442 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
13443 * SRT - SQRT OF S *
13444 * IBLOCK - THE INFORMATION BACK *
13446 **********************************
13447 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
13448 1 AMP=0.93828,AP1=0.13496,
13449 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
13450 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
13451 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
13452 COMMON /AA/ R(3,MAXSTR)
13454 COMMON /BB/ P(3,MAXSTR)
13456 COMMON /CC/ E(MAXSTR)
13458 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
13460 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
13462 COMMON/RNDF77/NSEED
13473 *-----------------------------------------------------------------------
13474 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
13475 * ENERGY CONSERVATION
13476 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
13477 1 - 4.0 * (EM1*EM2)**2
13478 IF(PR2.LE.0.)PR2=1.e-09
13479 PR=SQRT(PR2)/(2.*SRT)
13481 clin-10/25/02 get rid of argument usage mismatch in PTR():
13483 c cc1=ptr(0.33*pr,iseed)
13484 cc1=ptr(xptr,iseed)
13487 c1=sqrt(pr**2-cc1**2)/pr
13488 T1 = 2.0 * PI * RANART(NSEED)
13489 S1 = SQRT( 1.0 - C1**2 )
13492 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
13496 * ROTATE the momentum
13497 call rotate(px0,py0,pz0,px,py,pz)
13500 **********************************
13503 SUBROUTINE CRPD(PX,PY,PZ,SRT,I1,I2,
13504 & IBLOCK,xkaon0,xkaon,Xphi,xphin)
13506 * DEALING WITH PION+D(N*)-->PION +N OR
13507 * L/S+KAON PROCESS *
13511 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
13512 * SRT - SQRT OF S *
13513 * IBLOCK - THE INFORMATION BACK *
13514 * 7 PION+D(N*)-->L/S+KAON
13515 * iblock - 80 pion+D(N*)-->pion+N
13516 * iblock - 81 RHO+D(N*)-->PION+N
13517 * iblock - 82 OMEGA+D(N*)-->PION+N
13518 * 222 PION+D --> PHI
13519 **********************************
13520 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
13521 1 AMP=0.93828,AP1=0.13496,APHI=1.020,
13522 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
13523 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
13524 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
13525 COMMON /AA/ R(3,MAXSTR)
13527 COMMON /BB/ P(3,MAXSTR)
13529 COMMON /CC/ E(MAXSTR)
13531 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
13533 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
13535 COMMON/RNDF77/NSEED
13545 if(lb(i1).lt.0 .or. lb(i2).lt.0)ianti=1
13546 if(xkaon0/(xkaon+Xphi).ge.x1)then
13548 *-----------------------------------------------------------------------
13550 if(ianti .eq. 1)iblock=-7
13552 * RELABLE PARTICLES FOR THE PROCESS PION+n-->LAMBDA K OR SIGMA k
13553 * DECIDE LAMBDA OR SIGMA PRODUCTION, AND TO CALCULATE THE NEW
13554 * MOMENTA FOR PARTICLES IN THE FINAL STATE.
13556 IF(PNLKA(SRT)/(PNLKA(SRT)
13557 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
13558 clin-8/17/00 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
13559 IF(E(I1).LE.0.2)THEN
13566 LB(I2) = 15 + int(3 * RANART(NSEED))
13569 if(ianti .eq. 1)then
13580 LB(I1) = 15 + int(3 * RANART(NSEED))
13583 if(ianti .eq. 1)then
13591 * to gererate the momentum for the kaon and L/S
13594 elseif(Xphi/(xkaon+Xphi).ge.x1)then
13596 if(xphin/Xphi .ge. RANART(NSEED))then
13597 LB(I1)= 1+int(2*RANART(NSEED))
13600 LB(I1)= 6+int(4*RANART(NSEED))
13603 c !! at present only baryon
13604 if(ianti .eq. 1)lb(i1)=-lb(i1)
13611 * PION REABSORPTION HAS HAPPENED
13615 * Relable particles, I1 is assigned to the nucleon
13616 * and I2 is assigned to the pion
13617 * for the reverse of the following process
13618 *(1) for D(+)+P(+)-->p+pion(+)
13619 if( ((lb(i1).eq.8.and.lb(i2).eq.5).
13620 & or.(lb(i1).eq.5.and.lb(i2).eq.8))
13621 & .OR.((lb(i1).eq.-8.and.lb(i2).eq.3).
13622 & or.(lb(i1).eq.3.and.lb(i2).eq.-8)) )then
13623 if(iabs(lb(i1)).eq.8)then
13640 *(2) for D(0)+P(0)-->n+pi(0) or p+pi(-)
13641 if((iabs(lb(i1)).eq.7.and.lb(i2).eq.4).
13642 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.7))then
13643 if(iabs(lb(i1)).eq.7)then
13675 *(3) for D(+)+Pi(0)-->pi(+)+n or pi(0)+p
13676 if((iabs(lb(i1)).eq.8.and.lb(i2).eq.4).
13677 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.8))then
13678 if(iabs(lb(i1)).eq.8)then
13710 *(4) for D(-)+Pi(0)-->n+pi(-)
13711 if((iabs(lb(i1)).eq.6.and.lb(i2).eq.4).
13712 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.6))then
13713 if(iabs(lb(i1)).eq.6)then
13729 *(5) for D(+)+Pi(-)-->pi(0)+n or pi(-)+p
13730 if( ((lb(i1).eq.8.and.lb(i2).eq.3).
13731 & or.(lb(i1).eq.3.and.lb(i2).eq.8))
13732 & .OR.((lb(i1).eq.-8.and.lb(i2).eq.5).
13733 & or.(lb(i1).eq.5.and.lb(i2).eq.-8)) )then
13734 if(iabs(lb(i1)).eq.8)then
13766 *(6) D(0)+P(+)-->n+pi(+) or p+pi(0)
13767 if( ((lb(i1).eq.7.and.lb(i2).eq.5).
13768 & or.(lb(i1).eq.5.and.lb(i2).eq.7))
13769 & .OR.((lb(i1).eq.-7.and.lb(i2).eq.3).
13770 & or.(lb(i1).eq.3.and.lb(i2).eq.-7)) )then
13771 if(iabs(lb(i1)).eq.7)then
13803 *(7) for D(0)+Pi(-)-->n+pi(-)
13804 if( ((lb(i1).eq.7.and.lb(i2).eq.3).
13805 & or.(lb(i1).eq.3.and.lb(i2).eq.7))
13806 & .OR.((lb(i1).eq.-7.and.lb(i2).eq.5).
13807 & or.(lb(i1).eq.5.and.lb(i2).eq.-7)) )then
13808 if(iabs(lb(i1)).eq.7)then
13824 *(8) D(-)+P(+)-->n+pi(0) or p+pi(-)
13825 if( ((lb(i1).eq.6.and.lb(i2).eq.5)
13826 & .or.(lb(i1).eq.5.and.lb(i2).eq.6))
13827 & .OR.((lb(i1).eq.-6.and.lb(i2).eq.3).
13828 & or.(lb(i1).eq.3.and.lb(i2).eq.-6)) )then
13829 if(iabs(lb(i1)).eq.6)then
13862 *(9) D(++)+P(-)-->n+pi(+) or p+pi(0)
13863 if( ((lb(i1).eq.9.and.lb(i2).eq.3)
13864 & .or.(lb(i1).eq.3.and.lb(i2).eq.9))
13865 & .OR. ((lb(i1).eq.-9.and.lb(i2).eq.5)
13866 & .or.(lb(i1).eq.5.and.lb(i2).eq.-9)) )then
13867 if(iabs(lb(i1)).eq.9)then
13899 *(10) for D(++)+Pi(0)-->p+pi(+)
13900 if((iabs(lb(i1)).eq.9.and.lb(i2).eq.4)
13901 & .or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.9))then
13902 if(iabs(lb(i1)).eq.9)then
13918 *(11) for N*(1440)(+)or N*(1535)(+)+P(+)-->p+pion(+)
13919 if( ((lb(i1).eq.11.and.lb(i2).eq.5).
13920 & or.(lb(i1).eq.5.and.lb(i2).eq.11).
13921 & or.(lb(i1).eq.13.and.lb(i2).eq.5).
13922 & or.(lb(i1).eq.5.and.lb(i2).eq.13))
13923 & .OR.((lb(i1).eq.-11.and.lb(i2).eq.3).
13924 & or.(lb(i1).eq.3.and.lb(i2).eq.-11).
13925 & or.(lb(i1).eq.-13.and.lb(i2).eq.3).
13926 & or.(lb(i1).eq.3.and.lb(i2).eq.-13)) )then
13927 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
13943 *(12) for N*(1440) or N*(1535)(0)+P(0)-->n+pi(0) or p+pi(-)
13944 if((iabs(lb(i1)).eq.10.and.lb(i2).eq.4).
13945 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.10).
13946 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.12).
13947 & or.(lb(i2).eq.4.and.iabs(lb(i1)).eq.12))then
13948 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
13980 *(13) for N*(1440) or N*(1535)(+)+Pi(0)-->pi(+)+n or pi(0)+p
13981 if((iabs(lb(i1)).eq.11.and.lb(i2).eq.4).
13982 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.11).
13983 & or.(lb(i1).eq.4.and.iabs(lb(i2)).eq.13).
13984 & or.(lb(i2).eq.4.and.iabs(lb(i1)).eq.13))then
13985 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14017 *(14) for N*(1440) or N*(1535)(+)+Pi(-)-->pi(0)+n or pi(-)+p
14018 if( ((lb(i1).eq.11.and.lb(i2).eq.3).
14019 & or.(lb(i1).eq.3.and.lb(i2).eq.11).
14020 & or.(lb(i1).eq.3.and.lb(i2).eq.13).
14021 & or.(lb(i2).eq.3.and.lb(i1).eq.13))
14022 & .OR.((lb(i1).eq.-11.and.lb(i2).eq.5).
14023 & or.(lb(i1).eq.5.and.lb(i2).eq.-11).
14024 & or.(lb(i1).eq.5.and.lb(i2).eq.-13).
14025 & or.(lb(i2).eq.5.and.lb(i1).eq.-13)) )then
14026 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14058 *(15) N*(1440) or N*(1535)(0)+P(+)-->n+pi(+) or p+pi(0)
14059 if( ((lb(i1).eq.10.and.lb(i2).eq.5).
14060 & or.(lb(i1).eq.5.and.lb(i2).eq.10).
14061 & or.(lb(i1).eq.12.and.lb(i2).eq.5).
14062 & or.(lb(i1).eq.5.and.lb(i2).eq.12))
14063 & .OR.((lb(i1).eq.-10.and.lb(i2).eq.3).
14064 & or.(lb(i1).eq.3.and.lb(i2).eq.-10).
14065 & or.(lb(i1).eq.-12.and.lb(i2).eq.3).
14066 & or.(lb(i1).eq.3.and.lb(i2).eq.-12)) )then
14067 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14099 *(16) for N*(1440) or N*(1535) (0)+Pi(-)-->n+pi(-)
14100 if( ((lb(i1).eq.10.and.lb(i2).eq.3).
14101 & or.(lb(i1).eq.3.and.lb(i2).eq.10).
14102 & or.(lb(i1).eq.3.and.lb(i2).eq.12).
14103 & or.(lb(i1).eq.12.and.lb(i2).eq.3))
14104 & .OR.((lb(i1).eq.-10.and.lb(i2).eq.5).
14105 & or.(lb(i1).eq.5.and.lb(i2).eq.-10).
14106 & or.(lb(i1).eq.5.and.lb(i2).eq.-12).
14107 & or.(lb(i1).eq.-12.and.lb(i2).eq.5)) )then
14108 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14126 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
14129 if(ii .eq. i2)jj = i1
14130 if(lb(jj).eq.3)then
14132 elseif(lb(jj).eq.5)then
14137 *-----------------------------------------------------------------------
14138 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
14139 * ENERGY CONSERVATION
14140 50 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
14141 1 - 4.0 * (EM1*EM2)**2
14142 IF(PR2.LE.0.)PR2=1.E-09
14143 PR=SQRT(PR2)/(2.*SRT)
14145 clin-10/25/02 get rid of argument usage mismatch in PTR():
14147 c cc1=ptr(0.33*pr,iseed)
14148 cc1=ptr(xptr,iseed)
14151 c1=sqrt(pr**2-cc1**2)/pr
14152 c C1 = 1.0 - 2.0 * RANART(NSEED)
14153 T1 = 2.0 * PI * RANART(NSEED)
14154 S1 = SQRT( 1.0 - C1**2 )
14160 * rotate the momentum
14161 call rotate(px0,py0,pz0,px,py,pz)
14164 **********************************
14167 SUBROUTINE CRRD(PX,PY,PZ,SRT,I1,I2,
14168 & IBLOCK,xkaon0,xkaon,Xphi,xphin)
14170 * DEALING WITH rho(omega)+N or D(N*)-->PION +N OR
14171 * L/S+KAON PROCESS *
14175 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
14176 * SRT - SQRT OF S *
14177 * IBLOCK - THE INFORMATION BACK *
14178 * 7 rho(omega)+N or D(N*)-->L/S+KAON
14179 * iblock - 80 pion+D(N*)-->pion+N
14180 * iblock - 81 RHO+D(N*)-->PION+N
14181 * iblock - 82 OMEGA+D(N*)-->PION+N
14182 * iblock - 222 pion+N-->Phi
14183 **********************************
14184 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
14185 1 AMP=0.93828,AP1=0.13496,
14186 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
14187 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,APHI=1.02)
14188 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
14189 COMMON /AA/ R(3,MAXSTR)
14191 COMMON /BB/ P(3,MAXSTR)
14193 COMMON /CC/ E(MAXSTR)
14195 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
14197 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
14199 COMMON/RNDF77/NSEED
14208 if(lb(i1).lt.0 .or. lb(i2).lt.0) ianti=1
14210 if(xkaon0/(xkaon+Xphi).ge.x1)then
14212 *-----------------------------------------------------------------------
14214 if(ianti .eq. 1)iblock=-7
14216 * RELABLE PARTICLES FOR THE PROCESS PION+n-->LAMBDA K OR SIGMA k
14217 * DECIDE LAMBDA OR SIGMA PRODUCTION, AND TO CALCULATE THE NEW
14218 * MOMENTA FOR PARTICLES IN THE FINAL STATE.
14220 IF(PNLKA(SRT)/(PNLKA(SRT)
14221 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
14222 clin-8/17/00 & +PNSKA(SRT)).GT.RANART(NSEED))KAONC=1
14223 IF(E(I1).LE.0.92)THEN
14230 LB(I2) = 15 + int(3 * RANART(NSEED))
14233 if(ianti .eq. 1)then
14244 LB(I1) = 15 + int(3 * RANART(NSEED))
14247 if(ianti .eq. 1)then
14255 * to gererate the momentum for the kaon and L/S
14258 elseif(Xphi/(xkaon+Xphi).ge.x1)then
14260 if(xphin/Xphi .ge. RANART(NSEED))then
14261 LB(I1)= 1+int(2*RANART(NSEED))
14264 LB(I1)= 6+int(4*RANART(NSEED))
14267 c !! at present only baryon
14268 if(ianti .eq. 1)lb(i1)=-lb(i1)
14275 * rho(omega) REABSORPTION HAS HAPPENED
14279 if(lb(i1).eq.28.or.lb(i2).eq.28)go to 60
14280 * we treat Rho reabsorption in the following
14281 * Relable particles, I1 is assigned to the Delta
14282 * and I2 is assigned to the meson
14283 * for the reverse of the following process
14284 *(1) for D(+)+rho(+)-->p+pion(+)
14285 if( ((lb(i1).eq.8.and.lb(i2).eq.27).
14286 & or.(lb(i1).eq.27.and.lb(i2).eq.8))
14287 & .OR. ((lb(i1).eq.-8.and.lb(i2).eq.25).
14288 & or.(lb(i1).eq.25.and.lb(i2).eq.-8)) )then
14289 if(iabs(lb(i1)).eq.8)then
14305 *(2) for D(0)+rho(0)-->n+pi(0) or p+pi(-)
14306 if((iabs(lb(i1)).eq.7.and.lb(i2).eq.26).
14307 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.7))then
14308 if(iabs(lb(i1)).eq.7)then
14340 *(3) for D(+)+rho(0)-->pi(+)+n or pi(0)+p
14341 if((iabs(lb(i1)).eq.8.and.lb(i2).eq.26).
14342 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.8))then
14343 if(iabs(lb(i1)).eq.8)then
14375 *(4) for D(-)+rho(0)-->n+pi(-)
14376 if((iabs(lb(i1)).eq.6.and.lb(i2).eq.26).
14377 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.6))then
14378 if(iabs(lb(i1)).eq.6)then
14394 *(5) for D(+)+rho(-)-->pi(0)+n or pi(-)+p
14395 if( ((lb(i1).eq.8.and.lb(i2).eq.25).
14396 & or.(lb(i1).eq.25.and.lb(i2).eq.8))
14397 & .OR. ((lb(i1).eq.-8.and.lb(i2).eq.27).
14398 & or.(lb(i1).eq.27.and.lb(i2).eq.-8)) )then
14399 if(iabs(lb(i1)).eq.8)then
14431 *(6) D(0)+rho(+)-->n+pi(+) or p+pi(0)
14432 if( ((lb(i1).eq.7.and.lb(i2).eq.27).
14433 & or.(lb(i1).eq.27.and.lb(i2).eq.7))
14434 & .OR.((lb(i1).eq.-7.and.lb(i2).eq.25).
14435 & or.(lb(i1).eq.25.and.lb(i2).eq.-7)) )then
14436 if(iabs(lb(i1)).eq.7)then
14468 *(7) for D(0)+rho(-)-->n+pi(-)
14469 if( ((lb(i1).eq.7.and.lb(i2).eq.25).
14470 & or.(lb(i1).eq.25.and.lb(i2).eq.7))
14471 & .OR.((lb(i1).eq.-7.and.lb(i2).eq.27).
14472 & or.(lb(i1).eq.27.and.lb(i2).eq.-7)) )then
14473 if(iabs(lb(i1)).eq.7)then
14489 *(8) D(-)+rho(+)-->n+pi(0) or p+pi(-)
14490 if( ((lb(i1).eq.6.and.lb(i2).eq.27).
14491 & or.(lb(i1).eq.27.and.lb(i2).eq.6))
14492 & .OR. ((lb(i1).eq.-6.and.lb(i2).eq.25).
14493 & or.(lb(i1).eq.25.and.lb(i2).eq.-6)) )then
14494 if(iabs(lb(i1)).eq.6)then
14526 *(9) D(++)+rho(-)-->n+pi(+) or p+pi(0)
14527 if( ((lb(i1).eq.9.and.lb(i2).eq.25).
14528 & or.(lb(i1).eq.25.and.lb(i2).eq.9))
14529 & .OR.((lb(i1).eq.-9.and.lb(i2).eq.27).
14530 & or.(lb(i1).eq.27.and.lb(i2).eq.-9)) )then
14531 if(iabs(lb(i1)).eq.9)then
14563 *(10) for D(++)+rho(0)-->p+pi(+)
14564 if((iabs(lb(i1)).eq.9.and.lb(i2).eq.26).
14565 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.9))then
14566 if(iabs(lb(i1)).eq.9)then
14582 *(11) for N*(1440)(+)or N*(1535)(+)+rho(+)-->p+pion(+)
14583 if( ((lb(i1).eq.11.and.lb(i2).eq.27).
14584 & or.(lb(i1).eq.27.and.lb(i2).eq.11).
14585 & or.(lb(i1).eq.13.and.lb(i2).eq.27).
14586 & or.(lb(i1).eq.27.and.lb(i2).eq.13))
14587 & .OR. ((lb(i1).eq.-11.and.lb(i2).eq.25).
14588 & or.(lb(i1).eq.25.and.lb(i2).eq.-11).
14589 & or.(lb(i1).eq.-13.and.lb(i2).eq.25).
14590 & or.(lb(i1).eq.25.and.lb(i2).eq.-13)) )then
14591 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14607 *(12) for N*(1440) or N*(1535)(0)+rho(0)-->n+pi(0) or p+pi(-)
14608 if((iabs(lb(i1)).eq.10.and.lb(i2).eq.26).
14609 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.10).
14610 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.12).
14611 & or.(lb(i2).eq.26.and.iabs(lb(i1)).eq.12))then
14612 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14644 *(13) for N*(1440) or N*(1535)(+)+rho(0)-->pi(+)+n or pi(0)+p
14645 if((iabs(lb(i1)).eq.11.and.lb(i2).eq.26).
14646 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.11).
14647 & or.(lb(i1).eq.26.and.iabs(lb(i2)).eq.13).
14648 & or.(lb(i2).eq.26.and.iabs(lb(i1)).eq.13))then
14649 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14681 *(14) for N*(1440) or N*(1535)(+)+rho(-)-->pi(0)+n or pi(-)+p
14682 if( ((lb(i1).eq.11.and.lb(i2).eq.25).
14683 & or.(lb(i1).eq.25.and.lb(i2).eq.11).
14684 & or.(lb(i1).eq.25.and.lb(i2).eq.13).
14685 & or.(lb(i2).eq.25.and.lb(i1).eq.13))
14686 & .OR.((lb(i1).eq.-11.and.lb(i2).eq.27).
14687 & or.(lb(i1).eq.27.and.lb(i2).eq.-11).
14688 & or.(lb(i1).eq.27.and.lb(i2).eq.-13).
14689 & or.(lb(i2).eq.27.and.lb(i1).eq.-13)) )then
14690 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14722 *(15) N*(1440) or N*(1535)(0)+rho(+)-->n+pi(+) or p+pi(0)
14723 if( ((lb(i1).eq.10.and.lb(i2).eq.27).
14724 & or.(lb(i1).eq.27.and.lb(i2).eq.10).
14725 & or.(lb(i1).eq.12.and.lb(i2).eq.27).
14726 & or.(lb(i1).eq.27.and.lb(i2).eq.12))
14727 & .OR.((lb(i1).eq.-10.and.lb(i2).eq.25).
14728 & or.(lb(i1).eq.25.and.lb(i2).eq.-10).
14729 & or.(lb(i1).eq.-12.and.lb(i2).eq.25).
14730 & or.(lb(i1).eq.25.and.lb(i2).eq.-12)) )then
14731 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14763 *(16) for N*(1440) or N*(1535) (0)+rho(-)-->n+pi(-)
14764 if( ((lb(i1).eq.10.and.lb(i2).eq.25).
14765 & or.(lb(i1).eq.25.and.lb(i2).eq.10).
14766 & or.(lb(i1).eq.25.and.lb(i2).eq.12).
14767 & or.(lb(i1).eq.12.and.lb(i2).eq.25))
14768 & .OR. ((lb(i1).eq.-10.and.lb(i2).eq.27).
14769 & or.(lb(i1).eq.27.and.lb(i2).eq.-10).
14770 & or.(lb(i1).eq.27.and.lb(i2).eq.-12).
14771 & or.(lb(i1).eq.-12.and.lb(i2).eq.27)) )then
14772 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14789 * FOR OMEGA REABSORPTION
14790 * Relable particles, I1 is assigned to the Delta
14791 * and I2 is assigned to the meson
14792 * for the reverse of the following process
14793 *(1) for D(0)+OMEGA(0)-->n+pi(0) or p+pi(-)
14794 if((iabs(lb(i1)).eq.7.and.lb(i2).eq.28).
14795 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.7))then
14796 if(iabs(lb(i1)).eq.7)then
14828 *(2) for D(+)+OMEGA(0)-->pi(+)+n or pi(0)+p
14829 if((iabs(lb(i1)).eq.8.and.lb(i2).eq.28).
14830 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.8))then
14831 if(iabs(lb(i1)).eq.8)then
14863 *(3) for D(-)+OMEGA(0)-->n+pi(-)
14864 if((iabs(lb(i1)).eq.6.and.lb(i2).eq.28).
14865 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.6))then
14866 if(iabs(lb(i1)).eq.6)then
14882 *(4) for D(++)+OMEGA(0)-->p+pi(+)
14883 if((iabs(lb(i1)).eq.9.and.lb(i2).eq.28).
14884 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.9))then
14885 if(iabs(lb(i1)).eq.9)then
14901 *(5) for N*(1440) or N*(1535)(0)+omega(0)-->n+pi(0) or p+pi(-)
14902 if((iabs(lb(i1)).eq.10.and.lb(i2).eq.28).
14903 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.10).
14904 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.12).
14905 & or.(lb(i2).eq.28.and.iabs(lb(i1)).eq.12))then
14906 if(iabs(lb(i1)).eq.10.or.iabs(lb(i1)).eq.12)then
14938 *(6) for N*(1440) or N*(1535)(+)+omega(0)-->pi(+)+n or pi(0)+p
14939 if((iabs(lb(i1)).eq.11.and.lb(i2).eq.28).
14940 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.11).
14941 & or.(lb(i1).eq.28.and.iabs(lb(i2)).eq.13).
14942 & or.(lb(i2).eq.28.and.iabs(lb(i1)).eq.13))then
14943 if(iabs(lb(i1)).eq.11.or.iabs(lb(i1)).eq.13)then
14977 if(ianti.eq.1 .and. lb(i1).ge.1 .and. lb(i2).ge.1)then
14980 if(ii .eq. i2)jj = i1
14981 if(lb(jj).eq.3)then
14983 elseif(lb(jj).eq.5)then
14988 *-----------------------------------------------------------------------
14989 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
14990 * ENERGY CONSERVATION
14991 50 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
14992 1 - 4.0 * (EM1*EM2)**2
14993 IF(PR2.LE.0.)PR2=1.E-09
14994 PR=SQRT(PR2)/(2.*SRT)
14995 * C1 = 1.0 - 2.0 * RANART(NSEED)
14997 clin-10/25/02 get rid of argument usage mismatch in PTR():
14999 c cc1=ptr(0.33*pr,iseed)
15000 cc1=ptr(xptr,iseed)
15003 c1=sqrt(pr**2-cc1**2)/pr
15004 T1 = 2.0 * PI * RANART(NSEED)
15005 S1 = SQRT( 1.0 - C1**2 )
15011 * ROTATE THE MOMENTUM
15012 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
15015 **********************************
15018 SUBROUTINE Crlaba(PX,PY,PZ,SRT,brel,brsgm,
15019 & I1,I2,nt,IBLOCK,nchrg,icase)
15021 * DEALING WITH K+ + N(D,N*)-bar <--> La(Si)-bar + pi *
15025 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
15026 * SRT - SQRT OF S *
15027 * IBLOCK - THE INFORMATION BACK *
15028 * 8-> elastic scatt *
15029 * 100-> K+ + N-bar -> Sigma-bar + PI
15030 * 102-> PI + Sigma(Lambda)-bar -> K+ + N-bar
15031 **********************************
15032 PARAMETER (MAXSTR=150001, MAXR=1, AMN=0.939457,
15033 1 AMP=0.93828,AP1=0.13496,
15034 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15035 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
15036 PARAMETER (ETAM=0.5475, AOMEGA=0.782, ARHO=0.77)
15037 COMMON /AA/ R(3,MAXSTR)
15039 COMMON /BB/ P(3,MAXSTR)
15041 COMMON /CC/ E(MAXSTR)
15043 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15045 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15047 COMMON/RNDF77/NSEED
15056 if(icase .eq. 3)then
15058 if(rrr.lt.brel) then
15059 c !! elastic scat. (avoid in reverse process)
15063 if(rrr.lt.(brel+brsgm)) then
15064 c* K+ + N-bar -> Sigma-bar + PI
15065 LB(i1) = -15 - int(3 * RANART(NSEED))
15069 c* K+ + N-bar -> Lambda-bar + PI
15073 LB(i2) = 3 + int(3 * RANART(NSEED))
15079 if(icase .eq. 4)then
15081 if(rrr.lt.brel) then
15086 c PI + Sigma(Lambda)-bar -> K+ + N-bar
15089 LB(i2) = -1 - int(2 * RANART(NSEED))
15090 if(nchrg.eq.-2) LB(i2) = -6
15091 if(nchrg.eq. 1) LB(i2) = -9
15094 if(nchrg.eq.-2.or.nchrg.eq.1) e(i2)=1.232
15100 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
15101 * ENERGY CONSERVATION
15102 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
15103 1 - 4.0 * (EM1*EM2)**2
15104 IF(PR2.LE.0.)PR2=1.e-09
15105 PR=SQRT(PR2)/(2.*SRT)
15106 C1 = 1.0 - 2.0 * RANART(NSEED)
15107 T1 = 2.0 * PI * RANART(NSEED)
15108 S1 = SQRT( 1.0 - C1**2 )
15115 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
15118 **********************************
15121 SUBROUTINE Crkn(PX,PY,PZ,SRT,I1,I2,IBLOCK)
15123 * DEALING WITH kaON+N/pi-->KAON +N/pi elastic PROCESS *
15127 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
15128 * SRT - SQRT OF S *
15129 * IBLOCK - THE INFORMATION BACK *
15130 * 8-> PION+N-->L/S+KAON
15131 **********************************
15132 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15133 1 AMP=0.93828,AP1=0.13496,
15134 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15135 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
15136 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15137 COMMON /AA/ R(3,MAXSTR)
15139 COMMON /BB/ P(3,MAXSTR)
15141 COMMON /CC/ E(MAXSTR)
15143 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15145 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15147 COMMON/RNDF77/NSEED
15154 *-----------------------------------------------------------------------
15159 *-----------------------------------------------------------------------
15160 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
15161 * ENERGY CONSERVATION
15162 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
15163 1 - 4.0 * (EM1*EM2)**2
15164 IF(PR2.LE.0.)PR2=1.e-09
15165 PR=SQRT(PR2)/(2.*SRT)
15166 C1 = 1.0 - 2.0 * RANART(NSEED)
15167 T1 = 2.0 * PI * RANART(NSEED)
15168 S1 = SQRT( 1.0 - C1**2 )
15176 **********************************
15179 SUBROUTINE Crppba(PX,PY,PZ,SRT,I1,I2,IBLOCK)
15182 clin-8/29/00* DEALING WITH anti-nucleon annihilation with
15183 * DEALING WITH anti-baryon annihilation with
15185 * nucleons or baryon resonances
15187 * (1) no. of pions in the final state
15188 * (2) relable particles in the final state
15189 * (3) new momenta of final state particles *
15192 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
15193 * SRT - SQRT OF S *
15194 * IBLOCK - INFORMATION about the reaction channel *
15196 * iblock - 1902 annihilation-->pion(+)+pion(-) (2 pion)
15197 * iblock - 1903 annihilation-->pion(+)+rho(-) (3 pion)
15198 * iblock - 1904 annihilation-->rho(+)+rho(-) (4 pion)
15199 * iblock - 1905 annihilation-->rho(0)+omega (5 pion)
15200 * iblock - 1906 annihilation-->omega+omega (6 pion)
15201 * charge conservation is enforced in relabling particles
15202 * in the final state (note: at the momentum we don't check the
15203 * initial charges while dealing with annihilation, since some
15204 * annihilation channels between antinucleons and nucleons (baryon
15205 * resonances) might be forbiden by charge conservation, this effect
15206 * should be small, but keep it in mind.
15207 **********************************
15208 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15209 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,
15210 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15211 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
15212 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15213 COMMON /AA/ R(3,MAXSTR)
15215 COMMON /BB/ P(3,MAXSTR)
15217 COMMON /CC/ E(MAXSTR)
15219 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15221 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15223 COMMON/RNDF77/NSEED
15230 * determine the no. of pions in the final state using a
15231 * statistical model
15232 call pbarfs(srt,npion,iseed)
15233 * find the masses of the final state particles before calculate
15234 * their momenta, and relable them. The masses of rho and omega
15235 * will be generated according to the Breit Wigner formula (NOTE!!!
15236 * NOT DONE YET, AT THE MOMENT LET US USE FIXED RHO AND OMEGA MAEES)
15238 * Here we generate two stes of integer random numbers (3,4,5)
15239 * one or both of them are used directly as the lables of pions
15240 * similarly, 22+nchrg1 and 22+nchrg2 are used directly
15242 nchrg1=3+int(3*RANART(NSEED))
15243 nchrg2=3+int(3*RANART(NSEED))
15244 * the corresponding masses of pions
15247 if(nchrg1.eq.3.or.nchrg1.eq.5)pmass1=ap2
15248 if(nchrg2.eq.3.or.nchrg2.eq.5)pmass2=ap2
15249 * (1) for 2 pion production
15252 * randomly generate the charges of final state particles,
15257 * TO CALCULATE THE FINAL MOMENTA
15260 * (2) FOR 3 PION PRODUCTION
15269 * (3) FOR 4 PION PRODUCTION
15270 * we allow both rho+rho and pi+omega with 50-50% probability
15273 * determine rho+rho or pi+omega
15274 if(RANART(NSEED).ge.0.5)then
15289 * (4) FOR 5 PION PRODUCTION
15299 * (5) FOR 6 PION PRODUCTION
15311 *-----------------------------------------------------------------------
15312 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
15313 * ENERGY CONSERVATION
15314 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
15315 1 - 4.0 * (EM1*EM2)**2
15316 IF(PR2.LE.0.)PR2=1.E-08
15317 PR=SQRT(PR2)/(2.*SRT)
15318 * WE ASSUME AN ISOTROPIC ANGULAR DISTRIBUTION IN THE CMS
15319 C1 = 1.0 - 2.0 * RANART(NSEED)
15320 T1 = 2.0 * PI * RANART(NSEED)
15321 S1 = SQRT( 1.0 - C1**2 )
15324 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
15329 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
15334 **********************************
15336 * assign final states for K+K- --> light mesons
15338 SUBROUTINE crkkpi(I1,I2,XSK1, XSK2, XSK3, XSK4,
15339 & XSK5, XSK6, XSK7, XSK8, XSK9, XSK10, XSK11, SIGK,
15340 & IBLOCK,lbp1,lbp2,emm1,emm2)
15343 * IBLOCK - INFORMATION about the reaction channel *
15346 **********************************
15347 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15348 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,
15350 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15351 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
15352 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15353 COMMON /AA/ R(3,MAXSTR)
15355 COMMON /BB/ P(3,MAXSTR)
15357 COMMON /CC/ E(MAXSTR)
15359 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15361 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15363 COMMON/RNDF77/NSEED
15369 X1 = RANART(NSEED) * SIGK
15378 XSK10 = XSK9 + XSK10
15379 IF (X1 .LE. XSK1) THEN
15380 LB(I1) = 3 + int(3 * RANART(NSEED))
15381 LB(I2) = 3 + int(3 * RANART(NSEED))
15385 ELSE IF (X1 .LE. XSK2) THEN
15386 LB(I1) = 3 + int(3 * RANART(NSEED))
15387 LB(I2) = 25 + int(3 * RANART(NSEED))
15391 ELSE IF (X1 .LE. XSK3) THEN
15392 LB(I1) = 3 + int(3 * RANART(NSEED))
15397 ELSE IF (X1 .LE. XSK4) THEN
15398 LB(I1) = 3 + int(3 * RANART(NSEED))
15403 ELSE IF (X1 .LE. XSK5) THEN
15404 LB(I1) = 25 + int(3 * RANART(NSEED))
15405 LB(I2) = 25 + int(3 * RANART(NSEED))
15409 ELSE IF (X1 .LE. XSK6) THEN
15410 LB(I1) = 25 + int(3 * RANART(NSEED))
15415 ELSE IF (X1 .LE. XSK7) THEN
15416 LB(I1) = 25 + int(3 * RANART(NSEED))
15421 ELSE IF (X1 .LE. XSK8) THEN
15427 ELSE IF (X1 .LE. XSK9) THEN
15433 ELSE IF (X1 .LE. XSK10) THEN
15455 **********************************
15457 * DEALING WITH K+Y -> piN scattering
15459 SUBROUTINE Crkhyp(PX,PY,PZ,SRT,I1,I2,
15460 & XKY1, XKY2, XKY3, XKY4, XKY5,
15461 & XKY6, XKY7, XKY8, XKY9, XKY10, XKY11, XKY12, XKY13,
15462 & XKY14, XKY15, XKY16, XKY17, SIGK, IKMP,
15466 * (1) relable particles in the final state *
15467 * (2) new momenta of final state particles *
15470 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
15471 * SRT - SQRT OF S *
15472 * IBLOCK - INFORMATION about the reaction channel *
15475 * iblock - 222 !! phi *
15476 **********************************
15477 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15478 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,APHI=1.02,
15479 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15480 parameter (pimass=0.140, AMETA = 0.5473, aka=0.498,
15481 & aml=1.116,ams=1.193, AM1440 = 1.44, AM1535 = 1.535)
15482 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15483 COMMON /AA/ R(3,MAXSTR)
15485 COMMON /BB/ P(3,MAXSTR)
15487 COMMON /CC/ E(MAXSTR)
15489 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15491 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15493 COMMON/RNDF77/NSEED
15503 X1 = RANART(NSEED) * SIGK
15512 XKY10 = XKY9 + XKY10
15513 XKY11 = XKY10 + XKY11
15514 XKY12 = XKY11 + XKY12
15515 XKY13 = XKY12 + XKY13
15516 XKY14 = XKY13 + XKY14
15517 XKY15 = XKY14 + XKY15
15518 XKY16 = XKY15 + XKY16
15519 IF (X1 .LE. XKY1) THEN
15520 LB(I1) = 3 + int(3 * RANART(NSEED))
15521 LB(I2) = 1 + int(2 * RANART(NSEED))
15525 ELSE IF (X1 .LE. XKY2) THEN
15526 LB(I1) = 3 + int(3 * RANART(NSEED))
15527 LB(I2) = 6 + int(4 * RANART(NSEED))
15531 ELSE IF (X1 .LE. XKY3) THEN
15532 LB(I1) = 3 + int(3 * RANART(NSEED))
15533 LB(I2) = 10 + int(2 * RANART(NSEED))
15537 ELSE IF (X1 .LE. XKY4) THEN
15538 LB(I1) = 3 + int(3 * RANART(NSEED))
15539 LB(I2) = 12 + int(2 * RANART(NSEED))
15543 ELSE IF (X1 .LE. XKY5) THEN
15544 LB(I1) = 25 + int(3 * RANART(NSEED))
15545 LB(I2) = 1 + int(2 * RANART(NSEED))
15549 ELSE IF (X1 .LE. XKY6) THEN
15550 LB(I1) = 25 + int(3 * RANART(NSEED))
15551 LB(I2) = 6 + int(4 * RANART(NSEED))
15555 ELSE IF (X1 .LE. XKY7) THEN
15556 LB(I1) = 25 + int(3 * RANART(NSEED))
15557 LB(I2) = 10 + int(2 * RANART(NSEED))
15561 ELSE IF (X1 .LE. XKY8) THEN
15562 LB(I1) = 25 + int(3 * RANART(NSEED))
15563 LB(I2) = 12 + int(2 * RANART(NSEED))
15567 ELSE IF (X1 .LE. XKY9) THEN
15569 LB(I2) = 1 + int(2 * RANART(NSEED))
15573 ELSE IF (X1 .LE. XKY10) THEN
15575 LB(I2) = 6 + int(4 * RANART(NSEED))
15579 ELSE IF (X1 .LE. XKY11) THEN
15581 LB(I2) = 10 + int(2 * RANART(NSEED))
15585 ELSE IF (X1 .LE. XKY12) THEN
15587 LB(I2) = 12 + int(2 * RANART(NSEED))
15591 ELSE IF (X1 .LE. XKY13) THEN
15593 LB(I2) = 1 + int(2 * RANART(NSEED))
15597 ELSE IF (X1 .LE. XKY14) THEN
15599 LB(I2) = 6 + int(4 * RANART(NSEED))
15603 ELSE IF (X1 .LE. XKY15) THEN
15605 LB(I2) = 10 + int(2 * RANART(NSEED))
15609 ELSE IF (X1 .LE. XKY16) THEN
15611 LB(I2) = 12 + int(2 * RANART(NSEED))
15617 LB(I2) = 1 + int(2 * RANART(NSEED))
15625 if(IKMP .eq. -1) LB(I2) = -LB(I2)
15629 *-----------------------------------------------------------------------
15630 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
15631 * ENERGY CONSERVATION
15632 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
15633 1 - 4.0 * (EM1*EM2)**2
15634 IF(PR2.LE.0.)PR2=1.E-08
15635 PR=SQRT(PR2)/(2.*SRT)
15636 * WE ASSUME AN ISOTROPIC ANGULAR DISTRIBUTION IN THE CMS
15637 C1 = 1.0 - 2.0 * RANART(NSEED)
15638 T1 = 2.0 * PI * RANART(NSEED)
15639 S1 = SQRT( 1.0 - C1**2 )
15642 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
15647 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
15650 **********************************
15653 SUBROUTINE CRLAN(PX,PY,PZ,SRT,I1,I2,IBLOCK)
15655 * DEALING WITH La/Si-bar + N --> K+ + pi PROCESS *
15656 * La/Si + N-bar --> K- + pi *
15660 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
15661 * SRT - SQRT OF S *
15662 * IBLOCK - THE INFORMATION BACK *
15664 **********************************
15665 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15666 1 AMP=0.93828,AP1=0.13496,
15667 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15668 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
15669 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15670 COMMON /AA/ R(3,MAXSTR)
15672 COMMON /BB/ P(3,MAXSTR)
15674 COMMON /CC/ E(MAXSTR)
15676 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15678 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15680 COMMON/RNDF77/NSEED
15689 if( (lb(i1).ge.14.and.lb(i1).le.17) .OR.
15690 & (lb(i2).ge.14.and.lb(i2).le.17) )then
15695 LB(I2)= 3 + int(3 * RANART(NSEED))
15700 *-----------------------------------------------------------------------
15701 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
15702 * ENERGY CONSERVATION
15703 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
15704 1 - 4.0 * (EM1*EM2)**2
15705 IF(PR2.LE.0.)PR2=1.e-09
15706 PR=SQRT(PR2)/(2.*SRT)
15707 C1 = 1.0 - 2.0 * RANART(NSEED)
15708 T1 = 2.0 * PI * RANART(NSEED)
15709 S1 = SQRT( 1.0 - C1**2 )
15712 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
15716 * FOR THE ISOTROPIC DISTRIBUTION THERE IS NO NEED TO ROTATE
15720 **********************************
15721 **********************************
15724 SUBROUTINE Crkpla(PX,PY,PZ,EC,SRT,spika,
15725 & emm1,emm2,lbp1,lbp2,I1,I2,icase,srhoks)
15728 * DEALING WITH K+ + Pi ---> La/Si-bar + B, phi+K, phi+K* OR K* *
15729 * K- + Pi ---> La/Si + B-bar OR K*-bar *
15734 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
15735 * SRT - SQRT OF S *
15736 * IBLOCK - THE INFORMATION BACK *
15738 **********************************
15739 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
15740 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,AMRHO=0.769,AMOMGA=0.782,
15741 2 AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
15742 PARAMETER (AKA=0.498,AKS=0.895,ALA=1.1157,ASA=1.1974
15744 PARAMETER (AM1440 = 1.44, AM1535 = 1.535)
15745 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
15746 COMMON /AA/ R(3,MAXSTR)
15748 COMMON /BB/ P(3,MAXSTR)
15750 COMMON /CC/ E(MAXSTR)
15752 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
15754 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
15756 COMMON/RNDF77/NSEED
15776 c if(lb(i1).eq.21.or.lb(i2).eq.21)sigm=10.
15777 pdd = (srt**2-(aka+ap1)**2)*(srt**2-(aka-ap1)**2)
15779 if(srt .lt. (ala+amn))go to 70
15780 XKP1 = sigm*(4./3.)*(srt**2-(ala+amn)**2)*
15781 & (srt**2-(ala-amn)**2)/pdd
15782 if(srt .gt. (ala+am0))then
15783 XKP2 = sigm*(16./3.)*(srt**2-(ala+am0)**2)*
15784 & (srt**2-(ala-am0)**2)/pdd
15786 if(srt .gt. (ala+am1440))then
15787 XKP3 = sigm*(4./3.)*(srt**2-(ala+am1440)**2)*
15788 & (srt**2-(ala-am1440)**2)/pdd
15790 if(srt .gt. (ala+am1535))then
15791 XKP4 = sigm*(4./3.)*(srt**2-(ala+am1535)**2)*
15792 & (srt**2-(ala-am1535)**2)/pdd
15795 if(srt .gt. (asa+amn))then
15796 XKP5 = sigm*4.*(srt**2-(asa+amn)**2)*
15797 & (srt**2-(asa-amn)**2)/pdd
15799 if(srt .gt. (asa+am0))then
15800 XKP6 = sigm*16.*(srt**2-(asa+am0)**2)*
15801 & (srt**2-(asa-am0)**2)/pdd
15803 if(srt .gt. (asa+am1440))then
15804 XKP7 = sigm*4.*(srt**2-(asa+am1440)**2)*
15805 & (srt**2-(asa-am1440)**2)/pdd
15807 if(srt .gt. (asa+am1535))then
15808 XKP8 = sigm*4.*(srt**2-(asa+am1535)**2)*
15809 & (srt**2-(asa-am1535)**2)/pdd
15814 if(srt .gt. aphi+aka)then
15815 pff = sqrt((srt**2-(aphi+aka)**2)*(srt**2-(aphi-aka)**2))
15816 XKP9 = sig1*pff/sqrt(pdd)*1./32./pi/srt**2
15817 if(srt .gt. aphi+aks)then
15818 pff = sqrt((srt**2-(aphi+aks)**2)*(srt**2-(aphi-aks)**2))
15819 XKP10 = sig2*pff/sqrt(pdd)*3./32./pi/srt**2
15823 clin-8/15/02 K pi -> K* (rho omega), from detailed balance,
15824 c neglect rho and omega mass difference for now:
15826 if(srt.gt.(amrho+aks)) then
15828 1 *(srt**2-(0.77-aks)**2)*(srt**2-(0.77+aks)**2)/4
15829 2 /srt**2/(px**2+py**2+pz**2)
15830 if(srt.gt.(amomga+aks)) sigpik=sigpik*12./9.
15834 sigkp = XKP0 + XKP1 + XKP2 + XKP3 + XKP4
15835 & + XKP5 + XKP6 + XKP7 + XKP8 + XKP9 + XKP10 +sigpik
15837 DSkn=SQRT(sigkp/PI/10.)
15839 CALL DISTCE(I1,I2,dsknr,DSkn,DT,EC,SRT,IC,
15843 randu = RANART(NSEED)*sigkp
15854 XKP10 = XKP9 + XKP10
15857 if(randu .le. XKP0)then
15861 * La/Si-bar + B formation
15863 if( randu .le. XKP1 )then
15865 lbp2 = 1 + int(2*RANART(NSEED))
15869 elseif( randu .le. XKP2 )then
15871 lbp2 = 6 + int(4*RANART(NSEED))
15875 elseif( randu .le. XKP3 )then
15877 lbp2 = 10 + int(2*RANART(NSEED))
15881 elseif( randu .le. XKP4 )then
15883 lbp2 = 12 + int(2*RANART(NSEED))
15887 elseif( randu .le. XKP5 )then
15888 lbp1 = -15 - int(3*RANART(NSEED))
15889 lbp2 = 1 + int(2*RANART(NSEED))
15893 elseif( randu .le. XKP6 )then
15894 lbp1 = -15 - int(3*RANART(NSEED))
15895 lbp2 = 6 + int(4*RANART(NSEED))
15899 elseif( randu .lt. XKP7 )then
15900 lbp1 = -15 - int(3*RANART(NSEED))
15901 lbp2 = 10 + int(2*RANART(NSEED))
15905 elseif( randu .lt. XKP8 )then
15906 lbp1 = -15 - int(3*RANART(NSEED))
15907 lbp2 = 12 + int(2*RANART(NSEED))
15911 elseif( randu .lt. XKP9 )then
15912 c !! phi +K formation (iblock=224)
15918 if(lb(i1).eq.21.or.lb(i2).eq.21)then
15919 c !! phi +K-bar formation (iblock=124)
15924 elseif( randu .lt. XKP10 )then
15925 c !! phi +K* formation (iblock=226)
15931 if(lb(i1).eq.21.or.lb(i2).eq.21)then
15938 c !! (rho,omega) +K* formation (iblock=88)
15940 lbp1=25+int(3*RANART(NSEED))
15944 if(srt.gt.(amomga+aks).and.RANART(NSEED).lt.0.25) then
15948 if(lb(i1).eq.21.or.lb(i2).eq.21)then
15956 60 if( icase.eq.2 .and. (lb(i1).eq.21.or.lb(i2).eq.21) )then
15963 *-----------------------------------------------------------------------
15964 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
15965 * ENERGY CONSERVATION
15966 PR2 = (SRT**2 - EMM1**2 - EMM2**2)**2
15967 1 - 4.0 * (EMM1*EMM2)**2
15968 IF(PR2.LE.0.)PR2=1.e-09
15969 PR=SQRT(PR2)/(2.*SRT)
15970 C1 = 1.0 - 2.0 * RANART(NSEED)
15971 T1 = 2.0 * PI * RANART(NSEED)
15972 S1 = SQRT( 1.0 - C1**2 )
15975 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
15979 * FOR THE ISOTROPIC DISTRIBUTION THERE IS NO NEED TO ROTATE
15982 **********************************
15985 SUBROUTINE Crkphi(PX,PY,PZ,EC,SRT,IBLOCK,
15986 & emm1,emm2,lbp1,lbp2,I1,I2,ikk,icase,rrkk,prkk)
15989 * DEALING WITH KKbar, KK*bar, KbarK*, K*K*bar --> Phi + pi(rho,omega)
15990 * and KKbar --> (pi eta) (pi eta), (rho omega) (rho omega)
15991 * and KK*bar or Kbar K* --> (pi eta) (rho omega)
15996 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
15997 * SRT - SQRT OF S *
15998 * IBLOCK - THE INFORMATION BACK *
16000 **********************************
16001 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
16002 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,APHI=1.02,
16003 2 AM0=1.232,AMNS=1.52,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
16004 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,ACAS=1.3213)
16005 PARAMETER (AKS=0.895,AOMEGA=0.7819, ARHO=0.77)
16006 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
16007 COMMON /AA/ R(3,MAXSTR)
16009 COMMON /BB/ P(3,MAXSTR)
16011 COMMON /CC/ E(MAXSTR)
16013 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
16015 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
16017 COMMON/RNDF77/NSEED
16025 c if(srt .lt. aphi+ap1)return
16026 cc if(srt .lt. aphi+ap1) then
16027 if(srt .lt. (aphi+ap1)) then
16033 if((lb1.eq.23.and.lb2.eq.21).or.(lb2.eq.23.and.lb1.eq.21))then
16036 elseif((lb1.eq.21.and.lb2.eq.30).or.(lb2.eq.21.and.lb1.eq.30)
16037 & .or.(lb1.eq.23.and.lb2.eq.-30).or.(lb2.eq.23.and.lb1.eq.-30))then
16053 pii = (srt**2-(e(i1)+e(i2))**2)*(srt**2-(e(i1)-e(i2))**2)
16054 srrt = srt - amax1(srri,srr1)
16055 cc to avoid divergent/negative values at small srrt:
16056 c if(srrt .lt. 0.3)then
16057 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
16058 sig = 1.69/(srrt**0.141 - 0.407)
16060 sig = 3.74 + 0.008*srrt**1.9
16062 sig1=sig*(9./dnr)*(srt**2-(aphi+ap1)**2)*
16063 & (srt**2-(aphi-ap1)**2)/pii
16064 if(srt .gt. aphi+aomega)then
16065 srrt = srt - amax1(srri,srr2)
16066 cc if(srrt .lt. 0.3)then
16067 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
16068 sig = 1.69/(srrt**0.141 - 0.407)
16070 sig = 3.74 + 0.008*srrt**1.9
16072 sig2=sig*(9./dnr)*(srt**2-(aphi+aomega)**2)*
16073 & (srt**2-(aphi-aomega)**2)/pii
16075 if(srt .gt. aphi+arho)then
16076 srrt = srt - amax1(srri,srr3)
16077 cc if(srrt .lt. 0.3)then
16078 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
16079 sig = 1.69/(srrt**0.141 - 0.407)
16081 sig = 3.74 + 0.008*srrt**1.9
16083 sig3=sig*(27./dnr)*(srt**2-(aphi+arho)**2)*
16084 & (srt**2-(aphi-arho)**2)/pii
16086 c sig1 = amin1(20.,sig1)
16087 c sig2 = amin1(20.,sig2)
16088 c sig3 = amin1(20.,sig3)
16094 if((lb1.eq.23.and.lb2.eq.21).or.(lb2.eq.23.and.lb1.eq.21))then
16095 CALL XKKANN(SRT, XSK1, XSK2, XSK3, XSK4, XSK5,
16096 & XSK6, XSK7, XSK8, XSK9, XSK10, XSK11, SIGM, rrkk0)
16097 elseif((lb1.eq.21.and.lb2.eq.30).or.(lb2.eq.21.and.lb1.eq.30)
16098 & .or.(lb1.eq.23.and.lb2.eq.-30).or.(lb2.eq.23.and.lb1.eq.-30))then
16099 CALL XKKSAN(i1,i2,SRT,SIGKS1,SIGKS2,SIGKS3,SIGKS4,SIGM,prkk0)
16103 c sigks = sig1 + sig2 + sig3
16105 sigks = sig1 + sig2 + sig3 + SIGM
16106 DSkn=SQRT(sigks/PI/10.)
16108 CALL DISTCE(I1,I2,dsknr,DSkn,DT,EC,SRT,IC,
16112 ranx = RANART(NSEED)
16116 if(ranx .le. sig1/sigks)then
16117 lbp2 = 3 + int(3*RANART(NSEED))
16119 elseif(ranx .le. (sig1+sig2)/sigks)then
16122 elseif(ranx .le. (sig1+sig2+sig3)/sigks)then
16123 lbp2 = 25 + int(3*RANART(NSEED))
16126 if((lb1.eq.23.and.lb2.eq.21)
16127 & .or.(lb2.eq.23.and.lb1.eq.21))then
16128 CALL crkkpi(I1,I2,XSK1, XSK2, XSK3, XSK4,
16129 & XSK5, XSK6, XSK7, XSK8, XSK9, XSK10, XSK11, SIGM0,
16130 & IBLOCK,lbp1,lbp2,emm1,emm2)
16131 elseif((lb1.eq.21.and.lb2.eq.30)
16132 & .or.(lb2.eq.21.and.lb1.eq.30)
16133 & .or.(lb1.eq.23.and.lb2.eq.-30)
16134 & .or.(lb2.eq.23.and.lb1.eq.-30))then
16135 CALL crkspi(I1,I2,SIGKS1, SIGKS2, SIGKS3, SIGKS4,
16136 & SIGM0,IBLOCK,lbp1,lbp2,emm1,emm2)
16144 *-----------------------------------------------------------------------
16145 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
16146 * ENERGY CONSERVATION
16147 PR2 = (SRT**2 - EMM1**2 - EMM2**2)**2
16148 1 - 4.0 * (EMM1*EMM2)**2
16149 IF(PR2.LE.0.)PR2=1.e-09
16150 PR=SQRT(PR2)/(2.*SRT)
16151 C1 = 1.0 - 2.0 * RANART(NSEED)
16152 T1 = 2.0 * PI * RANART(NSEED)
16153 S1 = SQRT( 1.0 - C1**2 )
16156 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
16160 * FOR THE ISOTROPIC DISTRIBUTION THERE IS NO NEED TO ROTATE
16164 **********************************
16167 SUBROUTINE Crksph(PX,PY,PZ,EC,SRT,
16168 & emm1,emm2,lbp1,lbp2,I1,I2,ikkg,ikkl,iblock,
16172 * DEALING WITH K + rho(omega) or K* + pi(rho,omega)
16173 * --> Phi + K(K*), pi + K* or pi + K, and elastic
16177 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
16178 * SRT - SQRT OF S *
16179 * IBLOCK - THE INFORMATION BACK *
16181 * 223 --> phi + pi(rho,omega)
16182 * 224 --> phi + K <-> K + pi(rho,omega)
16183 * 225 --> phi + K <-> K* + pi(rho,omega)
16184 * 226 --> phi + K* <-> K + pi(rho,omega)
16185 * 227 --> phi + K* <-> K* + pi(rho,omega)
16186 **********************************
16187 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
16188 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,APHI=1.02,
16189 2 AM0=1.232,AMNS=1.52,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
16190 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,ACAS=1.3213)
16191 PARAMETER (AKS=0.895,AOMEGA=0.7819, ARHO=0.77)
16192 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
16193 COMMON /AA/ R(3,MAXSTR)
16195 COMMON /BB/ P(3,MAXSTR)
16197 COMMON /CC/ E(MAXSTR)
16199 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
16201 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
16203 COMMON/RNDF77/NSEED
16212 c K(K*) + rho(omega) -> pi K*(K)
16213 if((lb1.ge.25.and.lb1.le.28).or.(lb2.ge.25.and.lb2.le.28)) then
16214 if(iabs(lb1).eq.30.or.iabs(lb2).eq.30) then
16216 clin-2/26/03 check whether (rho K) is above the (pi K*) thresh:
16217 elseif((lb1.eq.23.or.lb1.eq.21.or.lb2.eq.23.or.lb2.eq.21)
16218 1 .and.srt.gt.(ap2+aks)) then
16223 c if(srt .lt. aphi+aka)return
16224 if(srt .lt. (aphi+aka)) then
16229 c K*-bar +pi --> phi + (K,K*)-bar
16230 if( (iabs(lb1).eq.30.and.(lb2.ge.3.and.lb2.le.5)) .or.
16231 & (iabs(lb2).eq.30.and.(lb1.ge.3.and.lb1.le.5)) )then
16237 clin-2/06/03 these large values reduces to ~10 mb for sig11 or sig22
16238 c due to the factors of ~1/(32*pi*s)~1/200:
16241 c K(-bar)+rho --> phi + (K,K*)-bar
16242 elseif((lb1.eq.23.or.lb1.eq.21.and.(lb2.ge.25.and.lb2.le.27)).or.
16243 & (lb2.eq.23.or.lb2.eq.21.and.(lb1.ge.25.and.lb1.le.27)) )then
16252 elseif( (iabs(lb1).eq.30.and.(lb2.ge.25.and.lb2.le.27)) .or.
16253 & (iabs(lb2).eq.30.and.(lb1.ge.25.and.lb1.le.27)) )then
16262 elseif( ((lb1.eq.23.or.lb1.eq.21) .and. lb2.eq.28).or.
16263 & ((lb2.eq.23.or.lb2.eq.21) .and. lb1.eq.28) )then
16284 c sig11=sig1*(6./dnr)*(srt**2-(aphi+aka)**2)*
16285 c & (srt**2-(aphi-aka)**2)/(srt**2-(e(i1)+e(i2))**2)/
16286 c & (srt**2-(e(i1)-e(i2))**2)
16287 pii = sqrt((srt**2-(e(i1)+e(i2))**2)*(srt**2-(e(i1)-e(i2))**2))
16288 pff = sqrt((srt**2-(aphi+aka)**2)*(srt**2-(aphi-aka)**2))
16289 sig11 = sig1*pff/pii*6./dnr/32./pi/srt**2
16291 if(srt .gt. aphi+aks)then
16292 c sig22=sig2*(18./dnr)*(srt**2-(aphi+aks)**2)*
16293 c & (srt**2-(aphi-aks)**2)/(srt**2-(e(i1)+e(i2))**2)/
16294 c & (srt**2-(e(i1)-e(i2))**2)
16295 pff = sqrt((srt**2-(aphi+aks)**2)*(srt**2-(aphi-aks)**2))
16296 sig22 = sig2*pff/pii*18./dnr/32./pi/srt**2
16298 c sig11 = amin1(20.,sig11)
16299 c sig22 = amin1(20.,sig22)
16303 c sigks = sig11 + sig22
16304 sigks=sig11+sig22+sigela+sigkm
16306 DSkn=SQRT(sigks/PI/10.)
16308 CALL DISTCE(I1,I2,dsknr,DSkn,DT,EC,SRT,IC,
16312 ranx = RANART(NSEED)
16314 if(ranx .le. (sigela/sigks))then
16320 elseif(ranx .le. ((sigela+sigkm)/sigks))then
16321 lbp1=3+int(3*RANART(NSEED))
16323 if(lb1.eq.23.or.lb2.eq.23) then
16326 elseif(lb1.eq.21.or.lb2.eq.21) then
16329 elseif(lb1.eq.30.or.lb2.eq.30) then
16337 elseif(ranx .le. ((sigela+sigkm+sig11)/sigks))then
16341 if(lb1.eq.21.or.lb2.eq.21.or.lb1.eq.-30.or.lb2.eq.-30)then
16352 if(lb1.eq.21.or.lb2.eq.21.or.lb1.eq.-30.or.lb2.eq.-30)then
16363 *-----------------------------------------------------------------------
16364 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
16365 * ENERGY CONSERVATION
16366 PR2 = (SRT**2 - EMM1**2 - EMM2**2)**2
16367 1 - 4.0 * (EMM1*EMM2)**2
16368 IF(PR2.LE.0.)PR2=1.e-09
16369 PR=SQRT(PR2)/(2.*SRT)
16370 C1 = 1.0 - 2.0 * RANART(NSEED)
16371 T1 = 2.0 * PI * RANART(NSEED)
16372 S1 = SQRT( 1.0 - C1**2 )
16375 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
16379 * FOR THE ISOTROPIC DISTRIBUTION THERE IS NO NEED TO ROTATE
16383 **********************************
16384 **********************************
16385 SUBROUTINE bbkaon(ic,SRT,PX,PY,PZ,ana,PlX,
16386 & PlY,PlZ,ala,pkX,PkY,PkZ,icou1)
16387 * purpose: generate the momenta for kaon,lambda/sigma and nucleon/delta
16388 * in the BB-->nlk process
16389 * date: Sept. 9, 1994
16391 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
16393 COMMON/RNDF77/NSEED
16401 if(ic.eq.2.or.ic.eq.4)ala=1.197
16403 * generate the mass of the delta
16405 dmax=srt-aka-ala-0.02
16406 DM1=RMASS(DMAX,ISEED)
16415 pmax=sqrt((srt**2-t1**2)*(srt**2-t2**2))/(2.*srt)
16416 if(pmax.eq.0.)pmax=1.e-09
16417 * (1) Generate the momentum of the kaon according to the distribution Fkaon
16418 * and assume that the angular distribution is isotropic
16419 * in the cms of the colliding pair
16421 1 pk=pmax*RANART(NSEED)
16423 prob=fkaon(pk,pmax)
16424 if((prob.lt.RANART(NSEED)).and.(ntry.le.40))go to 1
16425 cs=1.-2.*RANART(NSEED)
16427 fai=2.*3.14*RANART(NSEED)
16431 * the energy of the kaon
16432 ek=sqrt(aka**2+pk**2)
16433 * (2) Generate the momentum of the nucleon/delta in the cms of N/delta
16435 * the energy of the cms of NL
16441 * beta and gamma of the cms of L/S+N
16445 ga=1./sqrt(1.-bx**2-by**2-bz**2)
16447 pn2=((elnc**2+ana**2-ala**2)/(2.*elnc))**2-ana**2
16448 if(pn2.le.0.)pn2=1.e-09
16450 csn=1.-2.*RANART(NSEED)
16451 ssn=sqrt(1.-csn**2)
16452 fain=2.*3.14*RANART(NSEED)
16453 px=pn*ssn*cos(fain)
16454 py=pn*ssn*sin(fain)
16456 en=sqrt(ana**2+pn2)
16457 * the momentum of the lambda/sigma in the n-l cms frame is
16461 * (3) LORENTZ-TRANSFORMATION INTO nn cms FRAME for the neutron/delta
16462 PBETA = PX*BX + PY*By+ PZ*Bz
16463 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + En )
16464 Px = BX * TRANS0 + PX
16465 Py = BY * TRANS0 + PY
16466 Pz = BZ * TRANS0 + PZ
16467 * (4) Lorentz-transformation for the lambda/sigma
16468 el=sqrt(ala**2+plx**2+ply**2+plz**2)
16469 PBETA = PlX*BX + PlY*By+ PlZ*Bz
16470 TRANS0 = GA * ( GA * PBETA / (GA + 1.) + El )
16471 Plx = BX * TRANS0 + PlX
16472 Ply = BY * TRANS0 + PlY
16473 Plz = BZ * TRANS0 + PlZ
16476 ******************************************
16477 * for pion+pion-->K+K-
16478 c real*4 function pipik(srt)
16479 real function pipik(srt)
16480 * srt = DSQRT(s) in GeV *
16481 * xsec = production cross section in mb *
16482 * NOTE: DEVIDE THE CROSS SECTION TO OBTAIN K+ PRODUCTION *
16483 ******************************************
16484 c real*4 xarray(5), earray(5)
16485 real xarray(5), earray(5)
16487 data xarray /0.001, 0.7,1.5,1.7,2.0/
16488 data earray /1.,1.2,1.6,2.0,2.4/
16491 * 1.Calculate p(lab) from srt [GeV]
16492 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
16493 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
16495 if(srt.le.1.)return
16500 if (srt .lt. earray(1)) then
16501 pipik =xarray(1)/2.
16505 * 2.Interpolate double logarithmically to find sigma(srt)
16508 if (earray(ie) .eq. srt) then
16511 else if (earray(ie) .gt. srt) then
16512 ymin = alog(xarray(ie-1))
16513 ymax = alog(xarray(ie))
16514 xmin = alog(earray(ie-1))
16515 xmax = alog(earray(ie))
16516 pipik = exp(ymin + (alog(srt)-xmin)*(ymax-ymin)
16525 **********************************
16526 * TOTAL PION-P INELASTIC CROSS SECTION
16527 * from the CERN data book
16528 * date: Sept.2, 1994
16529 * for pion++p-->Delta+pion
16530 c real*4 function pionpp(srt)
16531 real function pionpp(srt)
16533 * srt = DSQRT(s) in GeV *
16534 * xsec = production cross section in fm**2 *
16535 * earray = EXPerimental table with proton energies in MeV *
16536 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
16538 ******************************************
16542 IF(SRT.LE.1.22)RETURN
16543 * 1.Calculate p(lab) from srt [GeV]
16544 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
16545 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
16546 plab=sqrt(((srt**2-pmass**2-pmass1**2)/(2.*pmass1))**2-pmass**2)
16549 if(plab.gt.pmax)then
16553 if(plab .lt. pmin)then
16563 pionpp = a+b*(plab**an)+c*(alog(plab))**2+d*alog(plab)
16564 if(pionpp.le.0)pionpp=0
16568 **********************************
16569 * elementary cross sections
16570 * from the CERN data book
16571 * date: Sept.2, 1994
16572 * for pion-+p-->INELASTIC
16573 c real*4 function pipp1(srt)
16574 real function pipp1(srt)
16576 * srt = DSQRT(s) in GeV *
16577 * xsec = production cross section in fm**2 *
16578 * earray = EXPerimental table with proton energies in MeV *
16579 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
16581 ******************************************
16585 IF(SRT.LE.1.22)RETURN
16586 * 1.Calculate p(lab) from srt [GeV]
16587 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
16588 c ekin = 2.*pmass*((srt/(2.*pmass))**2 - 1.)
16589 plab=sqrt(((srt**2-pmass**2-pmass1**2)/(2.*pmass1))**2-pmass**2)
16592 if(plab.gt.pmax)then
16596 if(plab .lt. pmin)then
16606 pipp1 = a+b*(plab**an)+c*(alog(plab))**2+d*alog(plab)
16607 if(pipp1.le.0)pipp1=0
16611 * *****************************
16612 c real*4 function xrho(srt)
16613 real function xrho(srt)
16615 * xsection for pp-->pp+rho
16616 * *****************************
16621 if(srt.le.2.67)return
16622 ESMIN=2.*0.9383+rmass-trho/2.
16624 * the cross section for tho0 production is
16625 xrho0=0.24*(es-esmin)/(1.4+(es-esmin)**2)
16629 * *****************************
16630 c real*4 function omega(srt)
16631 real function omega(srt)
16633 * xsection for pp-->pp+omega
16634 * *****************************
16639 if(srt.le.2.68)return
16640 ESMIN=2.*0.9383+omass-tomega/2.
16642 omega=0.36*(es-esmin)/(1.25+(es-esmin)**2)
16645 ******************************************
16646 * for ppi(+)-->DELTA+pi
16647 c real*4 function TWOPI(srt)
16648 real function TWOPI(srt)
16649 * This function contains the experimental pi+p-->DELTA+PION cross sections *
16650 * srt = DSQRT(s) in GeV *
16651 * xsec = production cross section in mb *
16652 * earray = EXPerimental table with proton energies in MeV *
16653 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
16655 ******************************************
16656 c real*4 xarray(19), earray(19)
16657 real xarray(19), earray(19)
16659 data xarray /0.300E-05,0.187E+01,0.110E+02,0.149E+02,0.935E+01,
16660 &0.765E+01,0.462E+01,0.345E+01,0.241E+01,0.185E+01,0.165E+01,
16661 &0.150E+01,0.132E+01,0.117E+01,0.116E+01,0.100E+01,0.856E+00,
16662 &0.745E+00,0.300E-05/
16663 data earray /0.122E+01, 0.147E+01, 0.172E+01, 0.197E+01,
16664 &0.222E+01, 0.247E+01, 0.272E+01, 0.297E+01, 0.322E+01,
16665 &0.347E+01, 0.372E+01, 0.397E+01, 0.422E+01, 0.447E+01,
16666 &0.472E+01, 0.497E+01, 0.522E+01, 0.547E+01, 0.572E+01/
16671 if(srt.le.1.22)return
16672 * 1.Calculate p(lab) from srt [GeV]
16673 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
16675 if (plab .lt. earray(1)) then
16680 * 2.Interpolate double logarithmically to find sigma(srt)
16683 if (earray(ie) .eq. plab) then
16686 else if (earray(ie) .gt. plab) then
16687 ymin = alog(xarray(ie-1))
16688 ymax = alog(xarray(ie))
16689 xmin = alog(earray(ie-1))
16690 xmax = alog(earray(ie))
16691 TWOPI= exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
16698 ******************************************
16699 ******************************************
16700 * for ppi(+)-->DELTA+RHO
16701 c real*4 function THREPI(srt)
16702 real function THREPI(srt)
16703 * This function contains the experimental pi+p-->DELTA + rho cross sections *
16704 * srt = DSQRT(s) in GeV *
16705 * xsec = production cross section in mb *
16706 * earray = EXPerimental table with proton energies in MeV *
16707 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
16709 ******************************************
16710 c real*4 xarray(15), earray(15)
16711 real xarray(15), earray(15)
16713 data xarray /8.0000000E-06,6.1999999E-05,1.881940,5.025690,
16714 &11.80154,13.92114,15.07308,11.79571,11.53772,10.01197,9.792673,
16715 &9.465264,8.970490,7.944254,6.886320/
16716 data earray /0.122E+01, 0.147E+01, 0.172E+01, 0.197E+01,
16717 &0.222E+01, 0.247E+01, 0.272E+01, 0.297E+01, 0.322E+01,
16718 &0.347E+01, 0.372E+01, 0.397E+01, 0.422E+01, 0.447E+01,
16724 if(srt.le.1.36)return
16725 * 1.Calculate p(lab) from srt [GeV]
16726 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
16728 if (plab .lt. earray(1)) then
16733 * 2.Interpolate double logarithmically to find sigma(srt)
16736 if (earray(ie) .eq. plab) then
16739 else if (earray(ie) .gt. plab) then
16740 ymin = alog(xarray(ie-1))
16741 ymax = alog(xarray(ie))
16742 xmin = alog(earray(ie-1))
16743 xmax = alog(earray(ie))
16744 THREPI = exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
16751 ******************************************
16752 ******************************************
16753 * for ppi(+)-->DELTA+omega
16754 c real*4 function FOURPI(srt)
16755 real function FOURPI(srt)
16756 * This function contains the experimental pi+p-->DELTA+PION cross sections *
16757 * srt = DSQRT(s) in GeV *
16758 * xsec = production cross section in mb *
16759 * earray = EXPerimental table with proton energies in MeV *
16760 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
16762 ******************************************
16763 c real*4 xarray(10), earray(10)
16764 real xarray(10), earray(10)
16766 data xarray /0.0001,1.986597,6.411932,7.636956,
16767 &9.598362,9.889740,10.24317,10.80138,11.86988,12.83925/
16768 data earray /2.468,2.718,2.968,0.322E+01,
16769 &0.347E+01, 0.372E+01, 0.397E+01, 0.422E+01, 0.447E+01,
16775 if(srt.le.1.52)return
16776 * 1.Calculate p(lab) from srt [GeV]
16777 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
16779 if (plab .lt. earray(1)) then
16784 * 2.Interpolate double logarithmically to find sigma(srt)
16787 if (earray(ie) .eq. plab) then
16790 else if (earray(ie) .gt. plab) then
16791 ymin = alog(xarray(ie-1))
16792 ymax = alog(xarray(ie))
16793 xmin = alog(earray(ie-1))
16794 xmax = alog(earray(ie))
16795 FOURPI= exp(ymin + (alog(plab)-xmin)*(ymax-ymin)
16802 ******************************************
16803 ******************************************
16804 * for pion (rho or omega)+baryon resonance collisions
16805 c real*4 function reab(i1,i2,srt,ictrl)
16806 real function reab(i1,i2,srt,ictrl)
16807 * This function calculates the cross section for
16808 * pi+Delta(N*)-->N+PION process *
16809 * srt = DSQRT(s) in GeV *
16810 * reab = cross section in fm**2 *
16811 * ictrl=1,2,3 for pion, rho and omega+D(N*)
16812 ****************************************
16813 PARAMETER (MAXSTR=150001,MAXR=1,PI=3.1415926)
16814 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
16815 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
16816 parameter (amn=0.938,ap1=0.14,arho=0.77,aomega=0.782)
16817 parameter (maxx=20,maxz=24)
16818 COMMON /AA/ R(3,MAXSTR)
16820 COMMON /BB/ P(3,MAXSTR)
16822 COMMON /CC/ E(MAXSTR)
16824 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
16825 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
16826 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
16828 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
16834 if(ictrl.eq.1.and.srt.le.(amn+2.*ap1+0.02))return
16835 if(ictrl.eq.3.and.srt.le.(amn+ap1+aomega+0.02))return
16836 pin2=((srt**2+ap1**2-amn**2)/(2.*srt))**2-ap1**2
16837 if(pin2.le.0)return
16838 * for pion+D(N*)-->pion+N
16845 pout2=((srt**2+ap1**2-ed**2)/(2.*srt))**2-ap1**2
16846 if(pout2.le.0)return
16847 xpro=twopi(srt)/10.
16849 if( ((lb1.eq.8.and.lb2.eq.5).or.
16850 & (lb1.eq.5.and.lb2.eq.8))
16851 & .OR.((lb1.eq.-8.and.lb2.eq.3).or.
16852 & (lb1.eq.3.and.lb2.eq.-8)) )factor=1/4.
16853 if((iabs(lb1).ge.10.and.iabs(lb1).le.13).
16854 & or.(iabs(lb2).ge.10.and.iabs(lb2).le.13))factor=1.
16855 reab=factor*pin2/pout2*xpro
16858 * for rho reabsorption
16860 if(lb(i2).ge.25)then
16867 if(srt.le.(amn+ap1+arho1+0.02))return
16868 pout2=((srt**2+arho1**2-ed**2)/(2.*srt))**2-arho1**2
16869 if(pout2.le.0)return
16870 xpro=threpi(srt)/10.
16872 if( ((lb1.eq.8.and.lb2.eq.27).or.
16873 & (lb1.eq.27.and.lb2.eq.8))
16874 & .OR. ((lb1.eq.-8.and.lb2.eq.25).or.
16875 & (lb1.eq.25.and.lb2.eq.-8)) )factor=1/4.
16876 if((iabs(lb1).ge.10.and.iabs(lb1).le.13).
16877 & or.(iabs(lb2).ge.10.and.iabs(lb2).le.13))factor=1.
16878 reab=factor*pin2/pout2*xpro
16881 * for omega reabsorption
16883 if(e(i1).gt.1)ed=e(i1)
16884 if(e(i2).gt.1)ed=e(i2)
16885 pout2=((srt**2+aomega**2-ed**2)/(2.*srt))**2-aomega**2
16886 if(pout2.le.0)return
16887 xpro=fourpi(srt)/10.
16889 if((iabs(lb1).ge.10.and.iabs(lb1).le.13).
16890 & or.(iabs(lb2).ge.10.and.iabs(lb2).le.13))factor=1./3.
16891 reab=factor*pin2/pout2*xpro
16895 ******************************************
16896 * for the reabsorption of two resonances
16897 * This function calculates the cross section for
16898 * DD-->NN, N*N*-->NN and DN*-->NN
16899 c real*4 function reab2d(i1,i2,srt)
16900 real function reab2d(i1,i2,srt)
16901 * srt = DSQRT(s) in GeV *
16902 * reab = cross section in mb
16903 ****************************************
16904 PARAMETER (MAXSTR=150001,MAXR=1,PI=3.1415926)
16905 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
16906 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
16907 parameter (amn=0.938,ap1=0.14,arho=0.77,aomega=0.782)
16908 parameter (maxx=20,maxz=24)
16909 COMMON /AA/ R(3,MAXSTR)
16911 COMMON /BB/ P(3,MAXSTR)
16913 COMMON /CC/ E(MAXSTR)
16915 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
16916 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
16917 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
16919 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
16927 pin2=(srt/2.)**2-amn**2
16928 pout2=((srt**2+ed1**2-ed2**2)/(2.*srt))**2-ed1**2
16929 if(pout2.le.0)return
16932 if((lb1.ge.10.and.lb1.le.13).and.
16933 & (lb2.ge.10.and.lb2.le.13))factor=1.
16934 if((lb1.ge.6.and.lb1.le.9).and.
16935 & (lb2.gt.10.and.lb2.le.13))factor=1/2.
16936 if((lb2.ge.6.and.lb2.le.9).and.
16937 & (lb1.gt.10.and.lb1.le.13))factor=1/2.
16938 reab2d=factor*pin2/pout2*xpro
16941 ***************************************
16942 SUBROUTINE rotate(PX0,PY0,PZ0,px,py,pz)
16944 * purpose: rotate the momentum of a particle in the CMS of p1+p2 such that
16945 * the x' y' and z' in the cms of p1+p2 is the same as the fixed x y and z
16947 * px0,py0 and pz0 are the cms momentum of the incoming colliding
16949 * px, py and pz are the cms momentum of any one of the particles
16950 * after the collision to be rotated
16951 ***************************************
16952 * the momentum, polar and azimuthal angles of the incoming momentm
16953 PR0 = SQRT( PX0**2 + PY0**2 + PZ0**2 )
16954 IF(PR0.EQ.0)PR0=0.00000001
16956 IF(PX0 .EQ. 0.0 .AND. PY0 .EQ. 0.0) THEN
16961 S2 = SQRT( 1.0 - C2**2 )
16964 * the momentum, polar and azimuthal angles of the momentum to be rotated
16965 PR=SQRT(PX**2+PY**2+PZ**2)
16966 IF(PR.EQ.0)PR=0.0000001
16968 IF(PX.EQ.0.AND.PY.EQ.0)THEN
16973 S1 = SQRT( 1.0 - C1**2 )
16976 SS = C2 * S1 * CT1 + S2 * C1
16977 * THE MOMENTUM AFTER ROTATION
16978 PX = PR * ( SS*CT2 - S1*ST1*ST2 )
16979 PY = PR * ( SS*ST2 + S1*ST1*CT2 )
16980 PZ = PR * ( C1*C2 - S1*S2*CT1 )
16983 ******************************************
16984 c real*4 function Xpp(srt)
16985 real function Xpp(srt)
16986 * This function contains the experimental total n-p cross sections *
16987 * srt = DSQRT(s) in GeV *
16988 * xsec = production cross section in mb *
16989 * earray = EXPerimental table with proton energies in MeV *
16990 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
16991 * WITH A CUTOFF AT 55MB *
16992 ******************************************
16993 c real*4 xarray(14), earray(14)
16994 real xarray(14), earray(14)
16996 data earray /20.,30.,40.,60.,80.,100.,
16998 &350.,460.,560.,660.,800./
16999 data xarray /150.,90.,80.6,48.0,36.6,
17000 &31.6,25.9,24.0,23.1,
17001 &24.0,28.3,33.6,41.5,47/
17005 * 1.Calculate E_kin(lab) [MeV] from srt [GeV]
17006 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
17007 ekin = 2000.*pmass*((srt/(2.*pmass))**2 - 1.)
17008 if (ekin .lt. earray(1)) then
17010 IF(XPP.GT.55)XPP=55
17013 IF(EKIN.GT.EARRAY(14))THEN
17019 * 2.Interpolate double logarithmically to find sigma(srt)
17022 if (earray(ie) .eq. ekin) then
17024 if(xpp.gt.55)xpp=55.
17027 if (earray(ie) .gt. ekin) then
17028 ymin = alog(xarray(ie-1))
17029 ymax = alog(xarray(ie))
17030 xmin = alog(earray(ie-1))
17031 xmax = alog(earray(ie))
17032 XPP = exp(ymin + (alog(ekin)-xmin)
17033 & *(ymax-ymin)/(xmax-xmin) )
17034 IF(XPP.GT.55)XPP=55.
17041 ******************************************
17042 real function Xnp(srt)
17043 * This function contains the experimental total n-p cross sections *
17044 * srt = DSQRT(s) in GeV *
17045 * xsec = production cross section in mb *
17046 * earray = EXPerimental table with proton energies in MeV *
17047 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
17048 * WITH A CUTOFF AT 55MB *
17049 ******************************************
17050 c real*4 xarray(11), earray(11)
17051 real xarray(11), earray(11)
17053 data earray /20.,30.,40.,60.,90.,135.0,200.,
17054 &300.,400.,600.,800./
17055 data xarray / 410.,270.,214.5,130.,78.,53.5,
17056 &41.6,35.9,34.2,34.3,34.9/
17060 * 1.Calculate E_kin(lab) [MeV] from srt [GeV]
17061 * Formula used: DSQRT(s) = 2 m DSQRT(E_kin/(2m) + 1)
17062 ekin = 2000.*pmass*((srt/(2.*pmass))**2 - 1.)
17063 if (ekin .lt. earray(1)) then
17065 IF(XNP.GT.55)XNP=55
17068 IF(EKIN.GT.EARRAY(11))THEN
17073 *Interpolate double logarithmically to find sigma(srt)
17076 if (earray(ie) .eq. ekin) then
17078 if(xnp.gt.55)xnp=55.
17081 if (earray(ie) .gt. ekin) then
17082 ymin = alog(xarray(ie-1))
17083 ymax = alog(xarray(ie))
17084 xmin = alog(earray(ie-1))
17085 xmax = alog(earray(ie))
17086 xNP = exp(ymin + (alog(ekin)-xmin)
17087 & *(ymax-ymin)/(xmax-xmin) )
17088 IF(XNP.GT.55)XNP=55
17095 *******************************
17096 function ptr(ptmax,iseed)
17097 * (2) Generate the transverse momentum
17099 *******************************
17100 COMMON/TABLE/ xarray(0:1000),earray(0:1000)
17102 COMMON/RNDF77/NSEED
17107 if(ptmax.le.1.e-02)then
17111 if(ptmax.gt.2.01)ptmax=2.01
17112 tryial=ptdis(ptmax)/ptdis(2.01)
17113 XT=RANART(NSEED)*tryial
17114 * look up the table and
17115 *Interpolate double logarithmically to find pt
17117 if (earray(ie) .eq. xT) then
17121 if(xarray(ie-1).le.0.00001)go to 50
17122 if(xarray(ie).le.0.00001)go to 50
17123 if(earray(ie-1).le.0.00001)go to 50
17124 if(earray(ie).le.0.00001)go to 50
17125 if (earray(ie) .gt. xT) then
17126 ymin = alog(xarray(ie-1))
17127 ymax = alog(xarray(ie))
17128 xmin = alog(earray(ie-1))
17129 xmax = alog(earray(ie))
17130 ptr= exp(ymin + (alog(xT)-xmin)*(ymax-ymin)
17132 if(ptr.gt.ptmax)ptr=ptmax
17139 **********************************
17140 **********************************
17143 SUBROUTINE XND(px,py,pz,srt,I1,I2,xinel,
17144 & sigk,xsk1,xsk2,xsk3,xsk4,xsk5)
17146 * calculate NUCLEON-BARYON RESONANCE inelatic Xsection *
17149 * CHANNELS. M12 IS THE REVERSAL CHANNEL OF N12 *
17151 * M12=1 FOR p+n-->delta(+)+ n *
17152 * 2 p+n-->delta(0)+ p *
17153 * 3 p+p-->delta(++)+n *
17154 * 4 p+p-->delta(+)+p *
17155 * 5 n+n-->delta(0)+n *
17156 * 6 n+n-->delta(-)+p *
17157 * 7 n+p-->N*(0)(1440)+p *
17158 * 8 n+p-->N*(+)(1440)+n *
17159 * 9 p+p-->N*(+)(1535)+p *
17160 * 10 n+n-->N*(0)(1535)+n *
17161 * 11 n+p-->N*(+)(1535)+n *
17162 * 12 n+p-->N*(0)(1535)+p
17163 * 13 D(++)+D(-)-->N*(+)(1440)+n
17164 * 14 D(++)+D(-)-->N*(0)(1440)+p
17165 * 15 D(+)+D(0)--->N*(+)(1440)+n
17166 * 16 D(+)+D(0)--->N*(0)(1440)+p
17167 * 17 D(++)+D(0)-->N*(+)(1535)+p
17168 * 18 D(++)+D(-)-->N*(0)(1535)+p
17169 * 19 D(++)+D(-)-->N*(+)(1535)+n
17170 * 20 D(+)+D(+)-->N*(+)(1535)+p
17171 * 21 D(+)+D(0)-->N*(+)(1535)+n
17172 * 22 D(+)+D(0)-->N*(0)(1535)+p
17173 * 23 D(+)+D(-)-->N*(0)(1535)+n
17174 * 24 D(0)+D(0)-->N*(0)(1535)+n
17175 * 25 N*(+)(14)+N*(+)(14)-->N*(+)(15)+p
17176 * 26 N*(0)(14)+N*(0)(14)-->N*(0)(15)+n
17177 * 27 N*(+)(14)+N*(0)(14)-->N*(+)(15)+n
17178 * 28 N*(+)(14)+N*(0)(14)-->N*(0)(15)+p
17179 * 29 N*(+)(14)+D+-->N*(+)(15)+p
17180 * 30 N*(+)(14)+D0-->N*(+)(15)+n
17181 * 31 N*(+)(14)+D(-)-->N*(0)(1535)+n
17182 * 32 N*(0)(14)+D++--->N*(+)(15)+p
17183 * 33 N*(0)(14)+D+--->N*(+)(15)+n
17184 * 34 N*(0)(14)+D+--->N*(0)(15)+p
17185 * 35 N*(0)(14)+D0-->N*(0)(15)+n
17186 * 36 N*(+)(14)+D0--->N*(0)(15)+p
17188 ***********************************
17189 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
17190 1 AMP=0.93828,AP1=0.13496,AKA=0.498,APHI=1.020,
17191 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
17192 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
17193 COMMON /AA/ R(3,MAXSTR)
17195 COMMON /BB/ P(3,MAXSTR)
17197 COMMON /CC/ E(MAXSTR)
17199 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
17201 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
17203 common /gg/ dx,dy,dz,dpx,dpy,dpz
17205 COMMON /INPUT/ NSTAR,NDIRCT,DIR
17209 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
17213 COMMON /PA/RPION(3,MAXSTR,MAXR)
17215 COMMON /PB/PPION(3,MAXSTR,MAXR)
17217 COMMON /PC/EPION(MAXSTR,MAXR)
17219 COMMON /PD/LPION(MAXSTR,MAXR)
17221 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
17225 *-----------------------------------------------------------------------
17235 PR = SQRT( PX**2 + PY**2 + PZ**2 )
17236 * CAN HAPPEN ANY MORE ==> RETURN (2.04 = 2*AVMASS + PI-MASS+0.02)
17237 IF (SRT .LT. 2.04) RETURN
17238 * Resonance absorption or Delta + N-->N*(1440), N*(1535)
17239 * COM: TEST FOR DELTA OR N* ABSORPTION
17240 * IN THE PROCESS DELTA+N-->NN, N*+N-->NN
17241 PRF=SQRT(0.25*SRT**2-AVMASS**2)
17247 RENOM=DELTAM*PRF**2/DENOM(SRT,1.)/PR
17248 RENOMN=DELTAM*PRF**2/DENOM(SRT,2.)/PR
17249 RENOM1=DELTAM*PRF**2/DENOM(SRT,-1.)/PR
17250 * avoid the inelastic collisions between n+delta- -->N+N
17251 * and p+delta++ -->N+N due to charge conservation,
17252 * but they can scatter to produce kaons
17253 if((iabs(lb(i1)).eq.2).and.(iabs(lb(i2)).eq.6)) renom=0.
17254 if((iabs(lb(i2)).eq.2).and.(iabs(lb(i1)).eq.6)) renom=0.
17255 if((iabs(lb(i1)).eq.1).and.(iabs(lb(i2)).eq.9)) renom=0.
17256 if((iabs(lb(i2)).eq.1).and.(iabs(lb(i1)).eq.9)) renom=0.
17257 Call M1535(iabs(lb(i1)),iabs(lb(i2)),srt,x1535)
17258 X1440=(3./4.)*SIGMA(SRT,2,0,1)
17259 * CROSS SECTION FOR KAON PRODUCTION from the four channels
17271 c !! phi production
17274 if(srt.le.t1nlk)go to 222
17275 XSK1=1.5*PPLPK(SRT)
17279 if(srt.le.t1dlk)go to 222
17281 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
17283 XSK3=1.5*PPLPK(srt)
17287 if(srt.le.t1nsk)go to 222
17288 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
17290 XSK2=1.5*(PPK1(srt)+PPK0(srt))
17294 if(srt.le.t1dsk)go to 222
17295 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
17297 XSK4=1.5*(PPK1(srt)+PPK0(srt))
17300 if(srt.le.(2.*amn+aphi))go to 222
17301 c !! mb put the correct form
17305 * THE TOTAL KAON+ PRODUCTION CROSS SECTION IS THEN
17306 222 SIGK=XSK1+XSK2+XSK3+XSK4
17313 SIGK = 2.0 * SIGK + xsk5
17314 cbz3/7/99 neutralk end
17316 * avoid the inelastic collisions between n+delta- -->N+N
17317 * and p+delta++ -->N+N due to charge conservation,
17318 * but they can scatter to produce kaons
17319 if(((iabs(lb(i1)).eq.2).and.(iabs(lb(i2)).eq.6)).OR.
17320 & ((iabs(lb(i2)).eq.2).and.(iabs(lb(i1)).eq.6)).OR.
17321 & ((iabs(lb(i1)).eq.1).and.(iabs(lb(i2)).eq.9)).OR.
17322 & ((iabs(lb(i2)).eq.1).and.(iabs(lb(i1)).eq.9)))THEN
17326 * WE DETERMINE THE REACTION CHANNELS IN THE FOLLOWING
17327 * FOR n+delta(++)-->p+p or n+delta(++)-->n+N*(+)(1440),n+N*(+)(1535)
17328 * REABSORPTION OR N*(1535) PRODUCTION LIKE IN P+P OR N*(1440) LIKE PN,
17329 IF(LB(I1)*LB(I2).EQ.18.AND.
17330 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))then
17331 SIGND=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
17332 SIGDN=0.25*SIGND*RENOM
17333 xinel=SIGDN+X1440+X1535+SIGK
17336 * FOR p+delta(-)-->n+n or p+delta(-)-->n+N*(0)(1440),n+N*(0)(1535)
17337 * REABSORPTION OR N*(1535) PRODUCTION LIKE IN P+P OR N*(1440) LIKE PN,
17338 IF(LB(I1)*LB(I2).EQ.6.AND.
17339 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))THEN
17340 SIGND=SIGMA(SRT,1,1,0)+0.5*SIGMA(SRT,1,1,1)
17341 SIGDN=0.25*SIGND*RENOM
17342 xinel=SIGDN+X1440+X1535+SIGK
17345 * FOR p+delta(+)-->p+p, N*(+)(144)+p, N*(+)(1535)+p
17347 IF(LB(I1)*LB(I2).EQ.8.AND.
17348 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))THEN
17349 SIGND=1.5*SIGMA(SRT,1,1,1)
17350 SIGDN=0.25*SIGND*RENOM
17351 xinel=SIGDN+x1440+x1535+SIGK
17354 * FOR n+delta(0)-->n+n, N*(0)(144)+n, N*(0)(1535)+n
17355 IF(LB(I1)*LB(I2).EQ.14.AND.
17356 & (iabs(LB(I1)).EQ.2.AND.iabs(LB(I2)).EQ.2))THEN
17357 SIGND=1.5*SIGMA(SRT,1,1,1)
17358 SIGDN=0.25*SIGND*RENOM
17359 xinel=SIGDN+x1440+x1535+SIGK
17362 * FOR n+delta(+)-->n+p, N*(+)(1440)+n,N*(0)(1440)+p,
17363 * N*(+)(1535)+n,N*(0)(1535)+p
17364 IF(LB(I1)*LB(I2).EQ.16.AND.
17365 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))THEN
17366 SIGND=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
17367 SIGDN=0.5*SIGND*RENOM
17368 xinel=SIGDN+2.*x1440+2.*x1535+SIGK
17371 * FOR p+delta(0)-->n+p, N*(+)(1440)+n,N*(0)(1440)+p,
17372 * N*(+)(1535)+n,N*(0)(1535)+p
17373 IF(LB(I1)*LB(I2).EQ.7)THEN
17374 SIGND=0.5*SIGMA(SRT,1,1,1)+0.25*SIGMA(SRT,1,1,0)
17375 SIGDN=0.5*SIGND*RENOM
17376 xinel=SIGDN+2.*x1440+2.*x1535+SIGK
17379 * FOR p+N*(0)(14)-->p+n, N*(+)(1535)+n,N*(0)(1535)+p
17380 * OR P+N*(0)(14)-->D(+)+N, D(0)+P,
17381 IF(LB(I1)*LB(I2).EQ.10.AND.
17382 & (iabs(LB(I1)).EQ.1.OR.iabs(LB(I2)).EQ.1))then
17383 SIGND=(3./4.)*SIGMA(SRT,2,0,1)
17385 xinel=SIGDN+X1535+SIGK
17388 * FOR n+N*(+)-->p+n, N*(+)(1535)+n,N*(0)(1535)+p
17389 IF(LB(I1)*LB(I2).EQ.22.AND.
17390 & (iabs(LB(I1)).EQ.2.OR.iabs(LB(I2)).EQ.2))then
17391 SIGND=(3./4.)*SIGMA(SRT,2,0,1)
17393 xinel=SIGDN+X1535+SIGK
17396 * FOR N*(1535)+N-->N+N COLLISIONS
17397 IF((iabs(LB(I1)).EQ.12).OR.(iabs(LB(I1)).EQ.13).OR.
17398 1 (iabs(LB(I2)).EQ.12).OR.(iabs(LB(I2)).EQ.13))THEN
17406 **********************************
17409 SUBROUTINE XDDIN(PX,PY,PZ,SRT,I1,I2,
17410 &XINEL,SIGK,XSK1,XSK2,XSK3,XSK4,XSK5)
17412 * DEALING WITH BARYON RESONANCE-BARYON RESONANCE COLLISIONS*
17414 * VALID ONLY FOR BARYON-BARYON-DISTANCES LESS THAN 1.32 FM *
17415 * (1.32 = 2 * HARD-CORE-RADIUS [HRC] ) *
17417 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
17418 * SRT - SQRT OF S *
17419 * NSTAR =1 INCLUDING N* RESORANCE,ELSE NOT *
17420 * NDIRCT=1 INCLUDING DIRECT PION PRODUCTION PROCESS *
17421 * IBLOCK - THE INFORMATION BACK *
17422 * 0-> COLLISION CANNOT HAPPEN *
17423 * 1-> N-N ELASTIC COLLISION *
17424 * 2-> N+N->N+DELTA,OR N+N->N+N* REACTION *
17425 * 3-> N+DELTA->N+N OR N+N*->N+N REACTION *
17426 * 4-> N+N->N+N+PION,DIRTCT PROCESS *
17427 * 5-> DELTA(N*)+DELTA(N*) TOTAL COLLISIONS *
17428 * N12 - IS USED TO SPECIFY BARYON-BARYON REACTION *
17429 * CHANNELS. M12 IS THE REVERSAL CHANNEL OF N12 *
17431 * M12=1 FOR p+n-->delta(+)+ n *
17432 * 2 p+n-->delta(0)+ p *
17433 * 3 p+p-->delta(++)+n *
17434 * 4 p+p-->delta(+)+p *
17435 * 5 n+n-->delta(0)+n *
17436 * 6 n+n-->delta(-)+p *
17437 * 7 n+p-->N*(0)(1440)+p *
17438 * 8 n+p-->N*(+)(1440)+n *
17439 * 9 p+p-->N*(+)(1535)+p *
17440 * 10 n+n-->N*(0)(1535)+n *
17441 * 11 n+p-->N*(+)(1535)+n *
17442 * 12 n+p-->N*(0)(1535)+p
17443 * 13 D(++)+D(-)-->N*(+)(1440)+n
17444 * 14 D(++)+D(-)-->N*(0)(1440)+p
17445 * 15 D(+)+D(0)--->N*(+)(1440)+n
17446 * 16 D(+)+D(0)--->N*(0)(1440)+p
17447 * 17 D(++)+D(0)-->N*(+)(1535)+p
17448 * 18 D(++)+D(-)-->N*(0)(1535)+p
17449 * 19 D(++)+D(-)-->N*(+)(1535)+n
17450 * 20 D(+)+D(+)-->N*(+)(1535)+p
17451 * 21 D(+)+D(0)-->N*(+)(1535)+n
17452 * 22 D(+)+D(0)-->N*(0)(1535)+p
17453 * 23 D(+)+D(-)-->N*(0)(1535)+n
17454 * 24 D(0)+D(0)-->N*(0)(1535)+n
17455 * 25 N*(+)(14)+N*(+)(14)-->N*(+)(15)+p
17456 * 26 N*(0)(14)+N*(0)(14)-->N*(0)(15)+n
17457 * 27 N*(+)(14)+N*(0)(14)-->N*(+)(15)+n
17458 * 28 N*(+)(14)+N*(0)(14)-->N*(0)(15)+p
17459 * 29 N*(+)(14)+D+-->N*(+)(15)+p
17460 * 30 N*(+)(14)+D0-->N*(+)(15)+n
17461 * 31 N*(+)(14)+D(-)-->N*(0)(1535)+n
17462 * 32 N*(0)(14)+D++--->N*(+)(15)+p
17463 * 33 N*(0)(14)+D+--->N*(+)(15)+n
17464 * 34 N*(0)(14)+D+--->N*(0)(15)+p
17465 * 35 N*(0)(14)+D0-->N*(0)(15)+n
17466 * 36 N*(+)(14)+D0--->N*(0)(15)+p
17468 * AND MORE CHANNELS AS LISTED IN THE NOTE BOOK
17470 * NOTE ABOUT N*(1440) RESORANCE: *
17471 * As it has been discussed in VerWest's paper,I= 1 (initial isospin)
17472 * channel can all be attributed to delta resorance while I= 0 *
17473 * channel can all be attribured to N* resorance.Only in n+p *
17474 * one can have I=0 channel so is the N*(1440) resorance *
17475 * REFERENCES: J. CUGNON ET AL., NUCL. PHYS. A352, 505 (1981) *
17476 * Y. KITAZOE ET AL., PHYS. LETT. 166B, 35 (1986) *
17477 * B. VerWest el al., PHYS. PRV. C25 (1982)1979 *
17478 * Gy. Wolf et al, Nucl Phys A517 (1990) 615 *
17479 * CUTOFF = 2 * AVMASS + 20 MEV *
17481 * for N*(1535) we use the parameterization by Gy. Wolf et al *
17482 * Nucl phys A552 (1993) 349, added May 18, 1994 *
17483 **********************************
17484 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
17485 1 AMP=0.93828,AP1=0.13496,AKA=0.498,APHI=1.020,
17486 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
17487 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
17488 COMMON /AA/ R(3,MAXSTR)
17490 COMMON /BB/ P(3,MAXSTR)
17492 COMMON /CC/ E(MAXSTR)
17494 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
17496 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
17498 common /gg/ dx,dy,dz,dpx,dpy,dpz
17500 COMMON /INPUT/ NSTAR,NDIRCT,DIR
17504 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
17508 COMMON /PA/RPION(3,MAXSTR,MAXR)
17510 COMMON /PB/PPION(3,MAXSTR,MAXR)
17512 COMMON /PC/EPION(MAXSTR,MAXR)
17514 COMMON /PD/LPION(MAXSTR,MAXR)
17516 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
17519 *-----------------------------------------------------------------------
17529 PR = SQRT( PX**2 + PY**2 + PZ**2 )
17530 * IF THERE WERE 2 N*(1535) AND THEY DIDN'T SCATT. ELAST.,
17531 * ALLOW THEM TO PRODUCE KAONS. NO OTHER INELASTIC CHANNELS
17533 C if((lb(i1).ge.12).and.(lb(i2).ge.12))return
17534 * ALL the inelastic collisions between N*(1535) and Delta as well
17535 * as N*(1440) TO PRODUCE KAONS, NO OTHER CHANNELS ARE KNOWN
17536 C if((lb(i1).ge.12).and.(lb(i2).ge.3))return
17537 C if((lb(i2).ge.12).and.(lb(i1).ge.3))return
17538 * calculate the N*(1535) production cross section in I1+I2 collisions
17539 call N1535(iabs(lb(i1)),iabs(lb(i2)),srt,X1535)
17541 * for Delta+Delta-->N*(1440 OR 1535)+N AND N*(1440)+N*(1440)-->N*(1535)+X
17542 * AND DELTA+N*(1440)-->N*(1535)+X
17543 * WE ASSUME THEY HAVE THE SAME CROSS SECTIONS as CORRESPONDING N+N COLLISION):
17544 * FOR D++D0, D+D+,D+D-,D0D0,N*+N*+,N*0N*0,N*(+)D+,N*(+)D(-),N*(0)D(0)
17545 * N*(1535) production, kaon production and reabsorption through
17546 * D(N*)+D(N*)-->NN are ALLOWED.
17547 * CROSS SECTION FOR KAON PRODUCTION from the four channels are
17560 if(srt.le.t1nlk)go to 222
17561 XSK1=1.5*PPLPK(SRT)
17565 if(srt.le.t1dlk)go to 222
17567 pmdlk2=(es**2-t1dlk**2)*(es**2-t2dlk**2)/(4.*es**2)
17569 XSK3=1.5*PPLPK(srt)
17573 if(srt.le.t1nsk)go to 222
17574 pmnsk2=(es**2-t1nsk**2)*(es**2-t2nsk**2)/(4.*es**2)
17576 XSK2=1.5*(PPK1(srt)+PPK0(srt))
17580 if(srt.le.t1dsk)go to 222
17581 pmDSk2=(es**2-t1DSk**2)*(es**2-t2DSk**2)/(4.*es**2)
17583 XSK4=1.5*(PPK1(srt)+PPK0(srt))
17586 if(srt.le.(2.*amn+aphi))go to 222
17587 c !! mb put the correct form
17590 * THE TOTAL KAON+ PRODUCTION CROSS SECTION IS THEN
17591 222 SIGK=XSK1+XSK2+XSK3+XSK4
17598 SIGK = 2.0 * SIGK + xsk5
17599 cbz3/7/99 neutralk end
17601 IDD=iabs(LB(I1)*LB(I2))
17602 * The reabsorption cross section for the process
17603 * D(N*)D(N*)-->NN is
17604 s2d=reab2d(i1,i2,srt)
17608 cbz3/16/99 pion end
17610 *(1) N*(1535)+D(N*(1440)) reactions
17611 * we allow kaon production and reabsorption only
17612 if(((iabs(lb(i1)).ge.12).and.(iabs(lb(i2)).ge.12)).OR.
17613 & ((iabs(lb(i1)).ge.12).and.(iabs(lb(i2)).ge.6)).OR.
17614 & ((iabs(lb(i2)).ge.12).and.(iabs(lb(i1)).ge.6)))THEN
17618 * channels have the same charge as pp
17619 IF((IDD.EQ.63).OR.(IDD.EQ.64).OR.(IDD.EQ.48).
17620 1 OR.(IDD.EQ.49).OR.(IDD.EQ.11*11).OR.(IDD.EQ.10*10).
17621 2 OR.(IDD.EQ.88).OR.(IDD.EQ.66).
17622 3 OR.(IDD.EQ.90).OR.(IDD.EQ.70))THEN
17623 XINEL=X1535+SIGK+s2d
17626 * IN DELTA+N*(1440) and N*(1440)+N*(1440) COLLISIONS,
17627 * N*(1535), kaon production and reabsorption are ALLOWED
17628 * IN N*(1440)+N*(1440) COLLISIONS, ONLY N*(1535) IS ALLOWED
17629 IF((IDD.EQ.110).OR.(IDD.EQ.77).OR.(IDD.EQ.80))THEN
17630 XINEL=X1535+SIGK+s2d
17633 IF((IDD.EQ.54).OR.(IDD.EQ.56))THEN
17634 * LIKE FOR N+P COLLISION,
17635 * IN DELTA+DELTA COLLISIONS BOTH N*(1440) AND N*(1535) CAN BE PRODUCED
17636 SIG2=(3./4.)*SIGMA(SRT,2,0,1)
17637 XINEL=2.*(SIG2+X1535)+SIGK+s2d
17642 ******************************************
17643 real function dirct1(srt)
17644 * This function contains the experimental, direct pion(+) + p cross sections *
17645 * srt = DSQRT(s) in GeV *
17646 * dirct1 = cross section in fm**2 *
17647 * earray = EXPerimental table with the srt
17648 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
17649 ******************************************
17650 c real*4 xarray(122), earray(122)
17651 real xarray(122), earray(122)
17654 &1.568300,1.578300,1.588300,1.598300,1.608300,1.618300,1.628300,
17655 &1.638300,1.648300,1.658300,1.668300,1.678300,1.688300,1.698300,
17656 &1.708300,1.718300,1.728300,1.738300,1.748300,1.758300,1.768300,
17657 &1.778300,1.788300,1.798300,1.808300,1.818300,1.828300,1.838300,
17658 &1.848300,1.858300,1.868300,1.878300,1.888300,1.898300,1.908300,
17659 &1.918300,1.928300,1.938300,1.948300,1.958300,1.968300,1.978300,
17660 &1.988300,1.998300,2.008300,2.018300,2.028300,2.038300,2.048300,
17661 &2.058300,2.068300,2.078300,2.088300,2.098300,2.108300,2.118300,
17662 &2.128300,2.138300,2.148300,2.158300,2.168300,2.178300,2.188300,
17663 &2.198300,2.208300,2.218300,2.228300,2.238300,2.248300,2.258300,
17664 &2.268300,2.278300,2.288300,2.298300,2.308300,2.318300,2.328300,
17665 &2.338300,2.348300,2.358300,2.368300,2.378300,2.388300,2.398300,
17666 &2.408300,2.418300,2.428300,2.438300,2.448300,2.458300,2.468300,
17667 &2.478300,2.488300,2.498300,2.508300,2.518300,2.528300,2.538300,
17668 &2.548300,2.558300,2.568300,2.578300,2.588300,2.598300,2.608300,
17669 &2.618300,2.628300,2.638300,2.648300,2.658300,2.668300,2.678300,
17670 &2.688300,2.698300,2.708300,2.718300,2.728300,2.738300,2.748300,
17671 &2.758300,2.768300,2.778300/
17673 &1.7764091E-02,0.5643668,0.8150568,1.045565,2.133695,3.327922,
17674 &4.206488,3.471242,4.486876,5.542213,6.800052,7.192446,6.829848,
17675 &6.580306,6.868410,8.527946,10.15720,9.716511,9.298335,8.901310,
17676 &10.31213,10.52185,11.17630,11.61639,12.05577,12.71596,13.46036,
17677 &14.22060,14.65449,14.94775,14.93310,15.32907,16.56481,16.29422,
17678 &15.18548,14.12658,13.72544,13.24488,13.31003,14.42680,12.84423,
17679 &12.49025,12.14858,11.81870,11.18993,11.35816,11.09447,10.83873,
17680 &10.61592,10.53754,9.425521,8.195912,9.661075,9.696192,9.200142,
17681 &8.953734,8.715461,8.484999,8.320765,8.255512,8.190969,8.127125,
17682 &8.079508,8.073004,8.010611,7.948909,7.887895,7.761005,7.626290,
17683 &7.494696,7.366132,7.530178,8.392097,9.046881,8.962544,8.879403,
17684 &8.797427,8.716601,8.636904,8.558312,8.404368,8.328978,8.254617,
17685 &8.181265,8.108907,8.037527,7.967100,7.897617,7.829057,7.761405,
17686 &7.694647,7.628764,7.563742,7.499570,7.387562,7.273281,7.161334,
17687 &6.973375,6.529592,6.280323,6.293136,6.305725,6.318097,6.330258,
17688 &6.342214,6.353968,6.365528,6.376895,6.388079,6.399081,6.409906,
17689 &6.420560,6.431045,6.441367,6.451529,6.461533,6.471386,6.481091,
17690 &6.490650,6.476413,6.297259,6.097826/
17693 if (srt .lt. earray(1)) then
17697 if (srt .gt. earray(122)) then
17698 dirct1 = xarray(122)
17703 *Interpolate double logarithmically to find xdirct2(srt)
17706 if (earray(ie) .eq. srt) then
17711 if (earray(ie) .gt. srt) then
17712 ymin = alog(xarray(ie-1))
17713 ymax = alog(xarray(ie))
17714 xmin = alog(earray(ie-1))
17715 xmax = alog(earray(ie))
17716 dirct1= exp(ymin + (alog(srt)-xmin)
17717 & *(ymax-ymin)/(xmax-xmin) )
17725 *******************************
17726 ******************************************
17727 real function dirct2(srt)
17728 * This function contains the experimental, direct pion(-) + p cross sections *
17729 * srt = DSQRT(s) in GeV *
17730 * dirct2 = cross section in fm**2
17731 * earray = EXPerimental table with the srt
17732 * xarray = EXPerimental table with cross sections in mb (curve to guide eye) *
17733 ******************************************
17734 c real*4 xarray(122), earray(122)
17735 real xarray(122), earray(122)
17738 &1.568300,1.578300,1.588300,1.598300,1.608300,1.618300,1.628300,
17739 &1.638300,1.648300,1.658300,1.668300,1.678300,1.688300,1.698300,
17740 &1.708300,1.718300,1.728300,1.738300,1.748300,1.758300,1.768300,
17741 &1.778300,1.788300,1.798300,1.808300,1.818300,1.828300,1.838300,
17742 &1.848300,1.858300,1.868300,1.878300,1.888300,1.898300,1.908300,
17743 &1.918300,1.928300,1.938300,1.948300,1.958300,1.968300,1.978300,
17744 &1.988300,1.998300,2.008300,2.018300,2.028300,2.038300,2.048300,
17745 &2.058300,2.068300,2.078300,2.088300,2.098300,2.108300,2.118300,
17746 &2.128300,2.138300,2.148300,2.158300,2.168300,2.178300,2.188300,
17747 &2.198300,2.208300,2.218300,2.228300,2.238300,2.248300,2.258300,
17748 &2.268300,2.278300,2.288300,2.298300,2.308300,2.318300,2.328300,
17749 &2.338300,2.348300,2.358300,2.368300,2.378300,2.388300,2.398300,
17750 &2.408300,2.418300,2.428300,2.438300,2.448300,2.458300,2.468300,
17751 &2.478300,2.488300,2.498300,2.508300,2.518300,2.528300,2.538300,
17752 &2.548300,2.558300,2.568300,2.578300,2.588300,2.598300,2.608300,
17753 &2.618300,2.628300,2.638300,2.648300,2.658300,2.668300,2.678300,
17754 &2.688300,2.698300,2.708300,2.718300,2.728300,2.738300,2.748300,
17755 &2.758300,2.768300,2.778300/
17756 data xarray/0.5773182,1.404156,2.578629,3.832013,4.906011,
17757 &9.076963,13.10492,10.65975,15.31156,19.77611,19.92874,18.68979,
17758 &19.80114,18.39536,14.34269,13.35353,13.58822,14.57031,10.24686,
17759 &11.23386,9.764803,10.35652,10.53539,10.07524,9.582198,9.596469,
17760 &9.818489,9.012848,9.378012,9.529244,9.529698,8.835624,6.671396,
17761 &8.797758,8.133437,7.866227,7.823946,7.808504,7.791755,7.502062,
17762 &7.417275,7.592349,7.752028,7.910585,8.068122,8.224736,8.075289,
17763 &7.895902,7.721359,7.551512,7.386224,7.225343,7.068739,6.916284,
17764 &6.767842,6.623294,6.482520,6.345404,6.211833,7.339510,7.531462,
17765 &7.724824,7.919620,7.848021,7.639856,7.571083,7.508881,7.447474,
17766 &7.386855,7.327011,7.164454,7.001266,6.842526,6.688094,6.537823,
17767 &6.391583,6.249249,6.110689,5.975790,5.894200,5.959503,6.024602,
17768 &6.089505,6.154224,6.218760,6.283128,6.347331,6.297411,6.120248,
17769 &5.948606,6.494864,6.357106,6.222824,6.091910,5.964267,5.839795,
17770 &5.718402,5.599994,5.499146,5.451325,5.404156,5.357625,5.311721,
17771 &5.266435,5.301964,5.343963,5.385833,5.427577,5.469200,5.510702,
17772 &5.552088,5.593359,5.634520,5.675570,5.716515,5.757356,5.798093,
17773 &5.838732,5.879272,5.919717,5.960068,5.980941/
17776 if (srt .lt. earray(1)) then
17780 if (srt .gt. earray(122)) then
17781 dirct2 = xarray(122)
17786 *Interpolate double logarithmically to find xdirct2(srt)
17789 if (earray(ie) .eq. srt) then
17794 if (earray(ie) .gt. srt) then
17795 ymin = alog(xarray(ie-1))
17796 ymax = alog(xarray(ie))
17797 xmin = alog(earray(ie-1))
17798 xmax = alog(earray(ie))
17799 dirct2= exp(ymin + (alog(srt)-xmin)
17800 & *(ymax-ymin)/(xmax-xmin) )
17808 *******************************
17809 ******************************
17810 * this program calculates the elastic cross section for rho+nucleon
17811 * through higher resonances
17812 c real*4 function ErhoN(em1,em2,lb1,lb2,srt)
17813 real function ErhoN(em1,em2,lb1,lb2,srt)
17814 * date : Dec. 19, 1994
17815 * ****************************
17816 c implicit real*4 (a-h,o-z)
17817 dimension arrayj(19),arrayl(19),arraym(19),
17818 &arrayw(19),arrayb(19)
17820 data arrayj /0.5,1.5,0.5,0.5,2.5,2.5,1.5,0.5,1.5,3.5,
17821 &1.5,0.5,1.5,0.5,2.5,0.5,1.5,2.5,3.5/
17822 data arrayl/1,2,0,0,2,3,2,1,1,3,
17823 &1,0,2,0,3,1,1,2,3/
17824 data arraym /1.44,1.52,1.535,1.65,1.675,1.68,1.70,1.71,
17825 &1.72,1.99,1.60,1.62,1.70,1.90,1.905,1.910,
17827 data arrayw/0.2,0.125,0.15,0.15,0.155,0.125,0.1,0.11,
17828 &0.2,0.29,0.25,0.16,0.28,0.15,0.3,0.22,0.25,
17830 data arrayb/0.15,0.20,0.05,0.175,0.025,0.125,0.1,0.20,
17831 &0.53,0.34,0.05,0.07,0.15,0.45,0.45,0.058,
17834 * the minimum energy for pion+delta collision
17837 * include contribution from each resonance
17841 c if(lb1*lb2.eq.27.OR.LB1*LB2.EQ.25*2)branch=0.
17842 c if(lb1*lb2.eq.26.OR.LB1*LB2.EQ.26*2)branch=1./3.
17843 c if(lb1*lb2.eq.27*2.OR.LB1*LB2.EQ.25)branch=2./3.
17845 c if(lb1*lb2.eq.27.OR.LB1*LB2.EQ.25*2)branch=1.
17846 c if(lb1*lb2.eq.26.OR.LB1*LB2.EQ.26*2)branch=2./3.
17847 c if(lb1*lb2.eq.27*2.OR.LB1*LB2.EQ.25)branch=1./3.
17849 if( ((lb1*lb2.eq.27.AND.(LB1.EQ.1.OR.LB2.EQ.1)).OR.
17850 & (LB1*LB2.EQ.25*2.AND.(LB1.EQ.2.OR.LB2.EQ.2)))
17851 & .OR.((lb1*lb2.eq.-25.AND.(LB1.EQ.-1.OR.LB2.EQ.-1)).OR.
17852 & (LB1*LB2.EQ.-27*2.AND.(LB1.EQ.-2.OR.LB2.EQ.-2))) )
17854 if((iabs(lb1*lb2).eq.26.AND.(iabs(LB1).EQ.1.OR.iabs(LB2).EQ.1))
17855 & .OR.(iabs(LB1*LB2).EQ.26*2
17856 & .AND.(iabs(LB1).EQ.2.OR.iabs(LB2).EQ.2)))
17858 if( ((lb1*lb2.eq.27*2.AND.(LB1.EQ.2.OR.LB2.EQ.2)).OR.
17859 & (LB1*LB2.EQ.25.AND.(LB1.EQ.1.OR.LB2.EQ.1)))
17860 & .OR.((lb1*lb2.eq.-25*2.AND.(LB1.EQ.-2.OR.LB2.EQ.-2)).OR.
17861 & (LB1*LB2.EQ.-27.AND.(LB1.EQ.-1.OR.LB2.EQ.-1))) )
17864 if( ((lb1*lb2.eq.27.AND.(LB1.EQ.1.OR.LB2.EQ.1)).OR.
17865 & (LB1*LB2.EQ.25*2.AND.(LB1.EQ.2.OR.LB2.EQ.2)))
17866 & .OR.((lb1*lb2.eq.-25.AND.(LB1.EQ.-1.OR.LB2.EQ.-1)).OR.
17867 & (LB1*LB2.EQ.-27*2.AND.(LB1.EQ.-2.OR.LB2.EQ.-2))) )
17869 if((iabs(lb1*lb2).eq.26.AND.(iabs(LB1).EQ.1.OR.iabs(LB2).EQ.1))
17870 & .OR.(iabs(LB1*LB2).EQ.26*2
17871 & .AND.(iabs(LB1).EQ.2.OR.iabs(LB2).EQ.2)))
17873 if( ((lb1*lb2.eq.27*2.AND.(LB1.EQ.2.OR.LB2.EQ.2)).OR.
17874 & (LB1*LB2.EQ.25.AND.(LB1.EQ.1.OR.LB2.EQ.1)))
17875 & .OR.((lb1*lb2.eq.-25*2.AND.(LB1.EQ.-2.OR.LB2.EQ.-2)).OR.
17876 & (LB1*LB2.EQ.-27.AND.(LB1.EQ.-1.OR.LB2.EQ.-1))) )
17880 xs0=fdR(arraym(ir),arrayj(ir),arrayl(ir),
17881 &arrayw(ir),arrayb(ir),srt,EM1,EM2)
17882 xs=xs+1.3*pi*branch*xs0*(0.1973)**2
17887 ***************************8
17888 *FUNCTION FDE(DMASS) GIVES DELTA MASS DISTRIBUTION BY USING OF
17890 c REAL*4 FUNCTION FDR(DMASS,aj,al,width,widb0,srt,em1,em2)
17891 REAL FUNCTION FDR(DMASS,aj,al,width,widb0,srt,em1,em2)
17895 Ak02= 0.25*(DMASS**2-amd**2-amp**2)**2
17897 IF (ak02 .GT. 0.) THEN
17898 Q0 = SQRT(ak02/DMASS)
17904 Ak2= 0.25*(srt**2-amd**2-amp**2)**2
17906 IF (ak2 .GT. 0.) THEN
17907 Q = SQRT(ak2/DMASS)
17913 b=widb0*1.2*dmass/srt*(q/q0)**(2.*al+1)
17914 & /(1.+0.2*(q/q0)**(2*al))
17915 FDR=(2.*aj+1)*WIDTH**2*b/((srt-dmass)**2
17916 1 +0.25*WIDTH**2)/(6.*q**2)
17919 ******************************
17920 * this program calculates the elastic cross section for pion+delta
17921 * through higher resonances
17922 c REAL*4 FUNCTION DIRCT3(SRT)
17923 REAL FUNCTION DIRCT3(SRT)
17924 * date : Dec. 19, 1994
17925 * ****************************
17926 c implicit real*4 (a-h,o-z)
17927 dimension arrayj(17),arrayl(17),arraym(17),
17928 &arrayw(17),arrayb(17)
17930 data arrayj /1.5,0.5,2.5,2.5,1.5,0.5,1.5,3.5,
17931 &1.5,0.5,1.5,0.5,2.5,0.5,1.5,2.5,3.5/
17932 data arrayl/2,0,2,3,2,1,1,3,
17933 &1,0,2,0,3,1,1,2,3/
17934 data arraym /1.52,1.65,1.675,1.68,1.70,1.71,
17935 &1.72,1.99,1.60,1.62,1.70,1.90,1.905,1.910,
17937 data arrayw/0.125,0.15,0.155,0.125,0.1,0.11,
17938 &0.2,0.29,0.25,0.16,0.28,0.15,0.3,0.22,0.25,
17940 data arrayb/0.55,0.6,0.375,0.6,0.1,0.15,
17941 &0.15,0.05,0.35,0.3,0.15,0.1,0.1,0.22,
17944 * the minimum energy for pion+delta collision
17949 * include contribution from each resonance
17952 if(ir.gt.8)branch=2./3.
17953 xs0=fd1(arraym(ir),arrayj(ir),arrayl(ir),
17954 &arrayw(ir),arrayb(ir),srt)
17955 xs=xs+1.3*pi*branch*xs0*(0.1973)**2
17960 ***************************8
17961 *FUNCTION FDE(DMASS) GIVES DELTA MASS DISTRIBUTION BY USING OF
17963 c REAL*4 FUNCTION FD1(DMASS,aj,al,width,widb0,srt)
17964 REAL FUNCTION FD1(DMASS,aj,al,width,widb0,srt)
17969 Ak02= 0.25*(DMASS**2-amd**2-amp**2)**2
17971 IF (ak02 .GT. 0.) THEN
17972 Q0 = SQRT(ak02/DMASS)
17978 Ak2= 0.25*(srt**2-amd**2-amp**2)**2
17980 IF (ak2 .GT. 0.) THEN
17981 Q = SQRT(ak2/DMASS)
17987 b=widb0*1.2*dmass/srt*(q/q0)**(2.*al+1)
17988 & /(1.+0.2*(q/q0)**(2*al))
17989 FD1=(2.*aj+1)*WIDTH**2*b/((srt-dmass)**2
17990 1 +0.25*WIDTH**2)/(2.*q**2)
17993 ******************************
17994 * this program calculates the elastic cross section for pion+delta
17995 * through higher resonances
17996 c REAL*4 FUNCTION DPION(EM1,EM2,LB1,LB2,SRT)
17997 REAL FUNCTION DPION(EM1,EM2,LB1,LB2,SRT)
17998 * date : Dec. 19, 1994
17999 * ****************************
18000 c implicit real*4 (a-h,o-z)
18001 dimension arrayj(19),arrayl(19),arraym(19),
18002 &arrayw(19),arrayb(19)
18004 data arrayj /0.5,1.5,0.5,0.5,2.5,2.5,1.5,0.5,1.5,3.5,
18005 &1.5,0.5,1.5,0.5,2.5,0.5,1.5,2.5,3.5/
18006 data arrayl/1,2,0,0,2,3,2,1,1,3,
18007 &1,0,2,0,3,1,1,2,3/
18008 data arraym /1.44,1.52,1.535,1.65,1.675,1.68,1.70,1.71,
18009 &1.72,1.99,1.60,1.62,1.70,1.90,1.905,1.910,
18011 data arrayw/0.2,0.125,0.15,0.15,0.155,0.125,0.1,0.11,
18012 &0.2,0.29,0.25,0.16,0.28,0.15,0.3,0.22,0.25,
18014 data arrayb/0.15,0.25,0.,0.05,0.575,0.125,0.379,0.10,
18015 &0.10,0.062,0.45,0.60,0.6984,0.05,0.25,0.089,
18018 * the minimum energy for pion+delta collision
18023 * include contribution from each resonance
18028 c IF(LB1*LB2.EQ.5*7.OR.LB1*LB2.EQ.3*8)branch=1./6.
18029 c IF(LB1*LB2.EQ.4*7.OR.LB1*LB2.EQ.4*8)branch=1./3.
18030 c IF(LB1*LB2.EQ.5*6.OR.LB1*LB2.EQ.3*9)branch=1./2.
18032 c IF(LB1*LB2.EQ.5*8.OR.LB1*LB2.EQ.5*6)branch=2./5.
18033 c IF(LB1*LB2.EQ.3*9.OR.LB1*LB2.EQ.3*7)branch=2./5.
18034 c IF(LB1*LB2.EQ.5*7.OR.LB1*LB2.EQ.3*8)branch=8./15.
18035 c IF(LB1*LB2.EQ.4*7.OR.LB1*LB2.EQ.4*8)branch=1./15.
18036 c IF(LB1*LB2.EQ.4*9.OR.LB1*LB2.EQ.4*6)branch=3./5.
18038 IF( ((LB1*LB2.EQ.5*7.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18039 & (LB1*LB2.EQ.3*8.AND.(LB1.EQ.3.OR.LB2.EQ.3)))
18040 & .OR.((LB1*LB2.EQ.-3*7.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18041 & (LB1*LB2.EQ.-5*8.AND.(LB1.EQ.5.OR.LB2.EQ.5))) )
18043 IF((iabs(LB1*LB2).EQ.4*7.AND.(LB1.EQ.4.OR.LB2.EQ.4)).OR.
18044 & (iabs(LB1*LB2).EQ.4*8.AND.(LB1.EQ.4.OR.LB2.EQ.4)))
18046 IF( ((LB1*LB2.EQ.5*6.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18047 & (LB1*LB2.EQ.3*9.AND.(LB1.EQ.3.OR.LB2.EQ.3)))
18048 & .OR.((LB1*LB2.EQ.-3*6.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18049 & (LB1*LB2.EQ.-5*9.AND.(LB1.EQ.5.OR.LB2.EQ.5))) )
18052 IF( ((LB1*LB2.EQ.5*8.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18053 & (LB1*LB2.EQ.5*6.AND.(LB1.EQ.5.OR.LB2.EQ.5)))
18054 & .OR.((LB1*LB2.EQ.-3*8.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18055 & (LB1*LB2.EQ.-3*6.AND.(LB1.EQ.3.OR.LB2.EQ.3))) )
18057 IF( ((LB1*LB2.EQ.3*9.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18058 & (LB1*LB2.EQ.3*7.AND.(LB1.EQ.3.OR.LB2.EQ.3)))
18059 & .OR. ((LB1*LB2.EQ.-5*9.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18060 & (LB1*LB2.EQ.-5*7.AND.(LB1.EQ.5.OR.LB2.EQ.5))) )
18062 IF( ((LB1*LB2.EQ.5*7.AND.(LB1.EQ.5.OR.LB2.EQ.5)).OR.
18063 & (LB1*LB2.EQ.3*8.AND.(LB1.EQ.3.OR.LB2.EQ.3)))
18064 & .OR.((LB1*LB2.EQ.-3*7.AND.(LB1.EQ.3.OR.LB2.EQ.3)).OR.
18065 & (LB1*LB2.EQ.-5*8.AND.(LB1.EQ.5.OR.LB2.EQ.5))) )
18067 IF((iabs(LB1*LB2).EQ.4*7.AND.(LB1.EQ.4.OR.LB2.EQ.4)).OR.
18068 & (iabs(LB1*LB2).EQ.4*8.AND.(LB1.EQ.4.OR.LB2.EQ.4)))
18070 IF((iabs(LB1*LB2).EQ.4*9.AND.(LB1.EQ.4.OR.LB2.EQ.4)).OR.
18071 & (iabs(LB1*LB2).EQ.4*6.AND.(LB1.EQ.4.OR.LB2.EQ.4)))
18075 xs0=fd2(arraym(ir),arrayj(ir),arrayl(ir),
18076 &arrayw(ir),arrayb(ir),EM1,EM2,srt)
18077 xs=xs+1.3*pi*branch*xs0*(0.1973)**2
18082 ***************************8
18083 *FUNCTION FDE(DMASS) GIVES DELTA MASS DISTRIBUTION BY USING OF
18085 c REAL*4 FUNCTION FD2(DMASS,aj,al,width,widb0,EM1,EM2,srt)
18086 REAL FUNCTION FD2(DMASS,aj,al,width,widb0,EM1,EM2,srt)
18090 Ak02= 0.25*(DMASS**2-amd**2-amp**2)**2
18092 IF (ak02 .GT. 0.) THEN
18093 Q0 = SQRT(ak02/DMASS)
18099 Ak2= 0.25*(srt**2-amd**2-amp**2)**2
18101 IF (ak2 .GT. 0.) THEN
18102 Q = SQRT(ak2/DMASS)
18108 b=widb0*1.2*dmass/srt*(q/q0)**(2.*al+1)
18109 & /(1.+0.2*(q/q0)**(2*al))
18110 FD2=(2.*aj+1)*WIDTH**2*b/((srt-dmass)**2
18111 1 +0.25*WIDTH**2)/(4.*q**2)
18114 ***************************8
18115 * MASS GENERATOR for two resonances simultaneously
18116 subroutine Rmasdd(srt,am10,am20,
18117 &dmin1,dmin2,ISEED,ic,dm1,dm2)
18118 COMMON/RNDF77/NSEED
18124 * the maximum mass for resonance 1
18126 * generate the mass for the first resonance
18131 10 DM1 = RANART(NSEED) * (DMAX1-DMIN1) + DMIN1
18133 * the maximum mass for resonance 2
18134 if(ictrl.eq.0)dmax2=srt-dm1
18135 * generate the mass for the second resonance
18136 20 dm2=RANART(NSEED)*(dmax2-dmin2)+dmin2
18138 * check the energy-momentum conservation with two masses
18139 * q2 in the following is q**2*4*srt**2
18140 q2=((srt**2-dm1**2-dm2**2)**2-4.*dm1**2*dm2**2)
18147 * determine the weight of the mass pair
18148 IF(DMAX1.LT.am10) THEN
18149 if(ic.eq.1)FM1=Fmassd(DMAX1)
18150 if(ic.eq.2)FM1=Fmassn(DMAX1)
18151 if(ic.eq.3)FM1=Fmassd(DMAX1)
18152 if(ic.eq.4)FM1=Fmassd(DMAX1)
18154 if(ic.eq.1)FM1=Fmassd(am10)
18155 if(ic.eq.2)FM1=Fmassn(am10)
18156 if(ic.eq.3)FM1=Fmassd(am10)
18157 if(ic.eq.4)FM1=Fmassd(am10)
18159 IF(DMAX2.LT.am20) THEN
18160 if(ic.eq.1)FM2=Fmassd(DMAX2)
18161 if(ic.eq.2)FM2=Fmassn(DMAX2)
18162 if(ic.eq.3)FM2=Fmassn(DMAX2)
18163 if(ic.eq.4)FM2=Fmassr(DMAX2)
18165 if(ic.eq.1)FM2=Fmassd(am20)
18166 if(ic.eq.2)FM2=Fmassn(am20)
18167 if(ic.eq.3)FM2=Fmassn(am20)
18168 if(ic.eq.4)FM2=Fmassr(am20)
18170 IF(FM1.EQ.0.)FM1=1.e-04
18171 IF(FM2.EQ.0.)FM2=1.e-04
18173 if(ic.eq.1)prob=Fmassd(dm1)*fmassd(dm2)
18174 if(ic.eq.2)prob=Fmassn(dm1)*fmassn(dm2)
18175 if(ic.eq.3)prob=Fmassd(dm1)*fmassn(dm2)
18176 if(ic.eq.4)prob=Fmassd(dm1)*fmassr(dm2)
18177 if(prob.le.1.e-06)prob=1.e-06
18180 IF(RANART(NSEED).GT.fff.AND.
18181 1 NTRY.LE.20) GO TO 10
18183 clin-2/26/03 limit the mass of (rho,Delta,N*1440) below a certain value
18184 c (here taken as its central value + 2* B-W fullwidth):
18185 if((abs(am10-0.77).le.0.01.and.dm1.gt.1.07)
18186 1 .or.(abs(am10-1.232).le.0.01.and.dm1.gt.1.47)
18187 2 .or.(abs(am10-1.44).le.0.01.and.dm1.gt.2.14)) goto 5
18188 if((abs(am20-0.77).le.0.01.and.dm2.gt.1.07)
18189 1 .or.(abs(am20-1.232).le.0.01.and.dm2.gt.1.47)
18190 2 .or.(abs(am20-1.44).le.0.01.and.dm2.gt.2.14)) goto 5
18194 *FUNCTION Fmassd(DMASS) GIVES the delta MASS DISTRIBUTION
18195 REAL FUNCTION Fmassd(DMASS)
18198 Fmassd=am0*WIDTH(DMASS)/((DMASS**2-am0**2)**2
18199 1 +am0**2*WIDTH(DMASS)**2)
18202 *FUNCTION Fmassn(DMASS) GIVES the N* MASS DISTRIBUTION
18203 REAL FUNCTION Fmassn(DMASS)
18206 Fmassn=am0*W1440(DMASS)/((DMASS**2-am0**2)**2
18207 1 +am0**2*W1440(DMASS)**2)
18210 *FUNCTION Fmassr(DMASS) GIVES the rho MASS DISTRIBUTION
18211 REAL FUNCTION Fmassr(DMASS)
18215 Fmassr=am0*Wid/((DMASS**2-am0**2)**2
18219 **********************************
18220 * PURPOSE : flow analysis
18221 * DATE : Feb. 1, 1995
18222 ***********************************
18223 subroutine flow(nt)
18224 c IMPLICIT REAL*4 (A-H,O-Z)
18225 PARAMETER ( PI=3.1415926,APion=0.13957,aka=0.498)
18226 PARAMETER (MAXSTR=150001,MAXR=1,AMU= 0.9383,etaM=0.5475)
18227 DIMENSION ypion(-80:80),ypr(-80:80),ykaon(-80:80)
18228 dimension pxpion(-80:80),pxpro(-80:80),pxkaon(-80:80)
18229 *----------------------------------------------------------------------*
18230 COMMON /AA/ R(3,MAXSTR)
18232 COMMON /BB/ P(3,MAXSTR)
18234 COMMON /CC/ E(MAXSTR)
18236 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
18238 COMMON /RR/ MASSR(0:MAXR)
18242 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
18245 *----------------------------------------------------------------------*
18250 LY=NINT((YCUT2-YCUT1)/DY)
18251 ***********************************
18252 C initialize the transverse momentum counters
18268 IS=IS+MASSR(NRUN-1)
18269 DO 20 J=1,MASSR(NRUN)
18271 * for protons go to 200 to calculate its rapidity and transvese momentum
18273 e00=sqrt(P(1,I)**2+P(2,i)**2+P(3,i)**2+e(I)**2)
18274 y00=0.5*alog((e00+p(3,i))/(e00-p(3,i)))
18275 if(abs(y00).ge.ycut2)go to 20
18277 if(abs(iy).ge.80)go to 20
18278 if(e(i).eq.0)go to 20
18279 if(lb(i).ge.25)go to 20
18280 if((lb(i).le.5).and.(lb(i).ge.3))go to 50
18281 if(lb(i).eq.1.or.lb(i).eq.2)go to 200
18283 c if(lb(i).ge.6.and.lb(i).le.15)go to 200
18284 if(lb(i).ge.6.and.lb(i).le.17)go to 200
18286 if(lb(i).eq.23)go to 400
18288 * calculate rapidity and transverse momentum distribution for pions
18290 * (2) rapidity distribution in the cms frame
18291 ypion(iy)=ypion(iy)+1
18292 pxpion(iy)=pxpion(iy)+p(1,i)/e(I)
18294 * calculate rapidity and transverse energy distribution for baryons
18296 pxpro(iy)=pxpro(iy)+p(1,I)/E(I)
18300 ykaon(iy)=ykaon(iy)+1.
18301 pxkaon(iy)=pxkaon(iy)+p(1,i)/E(i)
18303 C PRINT OUT NUCLEON'S TRANSVERSE MOMENTUM distribution
18311 IF(ypr(npt).eq.0) go to 101
18312 pxpro(NPT)=-Pxpro(NPT)/ypr(NPT)
18313 DNUC=Pxpro(NPT)/SQRT(ypr(NPT))
18314 c WRITE(1041,*)NPT*DY,Pxpro(NPT),DNUC
18315 c print pion's transverse momentum distribution
18316 101 IF(ypion(npt).eq.0) go to 102
18317 pxpion(NPT)=-pxpion(NPT)/ypion(NPT)
18318 DNUCp=pxpion(NPT)/SQRT(ypion(NPT))
18319 c WRITE(1042,*)NPT*DY,Pxpion(NPT),DNUCp
18321 102 IF(ykaon(npt).eq.0) go to 3
18322 pxkaon(NPT)=-pxkaon(NPT)/ykaon(NPT)
18323 DNUCk=pxkaon(NPT)/SQRT(ykaon(NPT))
18324 c WRITE(1043,*)NPT*DY,Pxkaon(NPT),DNUCk
18326 ********************************
18327 * OUTPUT PION AND PROTON RAPIDITY DISTRIBUTIONS
18331 IF(YPR(M).NE.0)DYPR=SQRT(YPR(M))/FLOAT(NRUN)/DY
18332 YPR(M)=YPR(M)/FLOAT(NRUN)/DY
18333 c WRITE(1090,'(E11.3,2X,E11.3,2X,E11.3)')m*DY,YPR(M),DYPR
18336 IF(YPION(M).NE.0)DYPION=SQRT(YPION(M))/FLOAT(NRUN)/DY
18337 YPION(M)=YPION(M)/FLOAT(NRUN)/DY
18338 c WRITE(1091,'(E11.3,2X,E11.3,2X,E11.3)')m*DY,YPION(M),DYPION
18341 IF(YKAON(M).NE.0)DYKAON=SQRT(YKAON(M))/FLOAT(NRUN)/DY
18342 YKAON(M)=YKAON(M)/FLOAT(NRUN)/DY
18343 c WRITE(1092,'(E11.3,2X,E11.3,2X,E11.3)')m*DY,YKAON(M),DYKAON
18348 ********************************************
18349 * Purpose: pp_bar annihilation cross section as a functon of their cms energy
18350 c real*4 function xppbar(srt)
18351 real function xppbar(srt)
18352 * srt = DSQRT(s) in GeV *
18353 * xppbar = pp_bar annihilation cross section in mb *
18355 * Reference: G.J. Wang, R. Bellwied, C. Pruneau and G. Welke
18356 * Proc. of the 14th Winter Workshop on Nuclear Dynamics,
18357 * Snowbird, Utah 31, Eds. W. Bauer and H.G. Ritter
18358 * (Plenum Publishing, 1998) *
18360 ******************************************
18361 Parameter (pmass=0.9383,xmax=400.)
18364 * (1) we introduce a new parameter xmax=400 mb:
18365 * the maximum annihilation xsection
18366 * there are shadowing effects in pp_bar annihilation, with this parameter
18367 * we can probably look at these effects
18368 * (2) Calculate p(lab) from srt [GeV], since the formular in the
18369 * reference applies only to the case of a p_bar on a proton at rest
18370 * Formula used: srt**2=2.*pmass*(pmass+sqrt(pmass**2+plab**2))
18372 plab2=(srt**2/(2.*pmass)-pmass)**2-pmass**2
18375 xppbar=67./(plab**0.7)
18376 if(xppbar.gt.xmax)xppbar=xmax
18381 **********************************
18383 ********************************************
18384 * Purpose: To generate randomly the no. of pions in the final
18385 * state of pp_bar annihilation according to a statistical
18386 * model by using of the rejection method.
18388 c real*4 function pbarfs(srt,npion,iseed)
18389 subroutine pbarfs(srt,npion,iseed)
18392 * srt: DSQRT(s) in GeV *
18393 * npion: No. of pions produced in the annihilation of ppbar at srt *
18394 * nmax=6, cutoff of the maximum no. of n the code can handle
18396 * Reference: C.M. Ko and R. Yuan, Phys. Lett. B192 (1987) 31 *
18398 ******************************************
18399 parameter (pimass=0.140,pi=3.1415926)
18400 Dimension factor(6),pnpi(6)
18401 COMMON/RNDF77/NSEED
18405 C the factorial coefficients in the pion no. distribution
18406 * from n=2 to 6 calculated use the formula in the reference
18412 ene=(srt/pimass)**3/(6.*pi**2)
18413 c the relative probability from n=2 to 6
18415 pnpi(n)=ene**n*factor(n)
18417 c find the maximum of the probabilities, I checked a
18418 c Fortan manual: max() returns the maximum value of
18419 c the same type as in the argument list
18420 pmax=max(pnpi(2),pnpi(3),pnpi(4),pnpi(5),pnpi(6))
18421 c randomly generate n between 2 and 6
18423 10 npion=2+int(5*RANART(NSEED))
18424 clin-4/2008 check bounds:
18425 if(npion.gt.6) goto 10
18426 thisp=pnpi(npion)/pmax
18428 c decide whether to take this npion according to the distribution
18429 c using rejection method.
18430 if((thisp.lt.RANART(NSEED)).and.(ntry.le.20)) go to 10
18431 c now take the last generated npion and return
18434 **********************************
18438 ******************************************
18439 * purpose: Xsection for K+ K- to pi+ pi-
18440 c real*4 function xkkpi(srt)
18441 * srt = DSQRT(s) in GeV *
18442 * xkkpi = xsection in mb obtained from
18443 * the detailed balance *
18444 * ******************************************
18445 c parameter (pimass=0.140,aka=0.498)
18447 c ppi2=(srt/2)**2-pimass**2
18448 c pk2=(srt/2)**2-aka**2
18449 c if(ppi2.le.0.or.pk2.le.0)return
18451 c xkkpi=ppi2/pk2*pipik(srt)
18452 c xkkpi=9.0 / 4.0 * ppi2/pk2*pipik(srt)
18453 c xkkpi = 2.0 * xkkpi
18454 cbz3/9/99 kkbar end
18460 cbz3/9/99 kkbar end
18463 cbz3/9/99 kkbar end
18466 *****************************
18467 * purpose: Xsection for K+ K- to pi+ pi-
18468 SUBROUTINE XKKANN(SRT, XSK1, XSK2, XSK3, XSK4, XSK5,
18469 & XSK6, XSK7, XSK8, XSK9, XSK10, XSK11, SIGK, rrkk)
18470 * srt = DSQRT(s) in GeV *
18471 * xsk1 = annihilation into pi pi *
18472 * xsk2 = annihilation into pi rho (shifted to XKKSAN) *
18473 * xsk3 = annihilation into pi omega (shifted to XKKSAN) *
18474 * xsk4 = annihilation into pi eta *
18475 * xsk5 = annihilation into rho rho *
18476 * xsk6 = annihilation into rho omega *
18477 * xsk7 = annihilation into rho eta (shifted to XKKSAN) *
18478 * xsk8 = annihilation into omega omega *
18479 * xsk9 = annihilation into omega eta (shifted to XKKSAN) *
18480 * xsk10 = annihilation into eta eta *
18481 * sigk = xsection in mb obtained from *
18482 * the detailed balance *
18483 * ***************************
18484 PARAMETER (MAXSTR=150001, MAXX=20, MAXZ=24)
18485 PARAMETER (AKA=0.498, PIMASS=0.140, RHOM = 0.770,
18486 & OMEGAM = 0.7819, ETAM = 0.5473, APHI=1.02)
18487 COMMON /AA/ R(3,MAXSTR)
18489 COMMON /BB/ P(3,MAXSTR)
18491 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
18493 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
18494 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
18495 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
18513 XPION0 = PIPIK(SRT)
18514 c.....take into account both K+ and K0
18515 XPION0 = 2.0 * XPION0
18516 PI2 = S * (S - 4.0 * AKA ** 2)
18517 if(PI2 .le. 0.0)return
18521 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18522 IF (PF2 .GT. 0.0) THEN
18523 XSK1 = 9.0 / 4.0 * PF2 / PI2 * XPION0
18526 clin-8/28/00 (pi eta) eta -> K+K- is assumed the same as pi pi -> K+K-:
18529 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18530 IF (PF2 .GT. 0.0) THEN
18531 XSK4 = 3.0 / 4.0 * PF2 / PI2 * XPION0
18536 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18537 IF (PF2 .GT. 0.0) THEN
18538 XSK10 = 1.0 / 4.0 * PF2 / PI2 * XPION0
18543 clin-11/07/00: (pi eta) (rho omega) -> K* Kbar (or K*bar K) instead to K Kbar:
18546 c PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18547 c IF (PF2 .GT. 0.0) THEN
18548 c XSK2 = 27.0 / 4.0 * PF2 / PI2 * XPION0
18553 c PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18554 c IF (PF2 .GT. 0.0) THEN
18555 c XSK3 = 9.0 / 4.0 * PF2 / PI2 * XPION0
18560 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18561 IF (PF2 .GT. 0.0) THEN
18562 XSK5 = 81.0 / 4.0 * PF2 / PI2 * XPION0
18567 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18568 IF (PF2 .GT. 0.0) THEN
18569 XSK6 = 27.0 / 4.0 * PF2 / PI2 * XPION0
18574 c PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18575 c IF (PF2 .GT. 0.0) THEN
18576 c XSK7 = 9.0 / 4.0 * PF2 / PI2 * XPION0
18581 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18582 IF (PF2 .GT. 0.0) THEN
18583 XSK8 = 9.0 / 4.0 * PF2 / PI2 * XPION0
18588 c PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
18589 c IF (PF2 .GT. 0.0) THEN
18590 c XSK9 = 3.0 / 4.0 * PF2 / PI2 * XPION0
18594 fwdp = 1.68*(aphi**2-4.*aka**2)**1.5/6./aphi/aphi
18595 pkaon=0.5*sqrt(srt**2-4.0*aka**2)
18596 XSK11 = 30.*3.14159*0.1973**2*(aphi*fwdp)**2/
18597 & ((srt**2-aphi**2)**2+(aphi*fwdp)**2)/pkaon**2
18599 SIGK = XSK1 + XSK2 + XSK3 + XSK4 + XSK5 +
18600 & XSK6 + XSK7 + XSK8 + XSK9 + XSK10 + XSK11
18604 cbz3/9/99 kkbar end
18606 *****************************
18607 * purpose: Xsection for Phi + B
18608 SUBROUTINE XphiB(LB1, LB2, EM1, EM2, SRT,
18609 & XSK1, XSK2, XSK3, XSK4, XSK5, SIGP)
18611 * ***************************
18612 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
18613 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
18614 PARAMETER (AKA=0.498, ALA = 1.1157, PIMASS=0.140, APHI=1.02)
18615 parameter (arho=0.77)
18625 srrt = srt - (em1+em2)
18627 c* phi + N(D) -> elastic scattering
18628 c XSK1 = 0.56 !! mb
18629 c !! mb (photo-production xsecn used)
18632 c* phi + N(D) -> pi + N
18633 IF (srt .GT. (ap1+amn)) THEN
18634 XSK2 = 0.0235*srrt**(-0.519)
18637 c* phi + N(D) -> pi + D
18638 IF (srt .GT. (ap1+am0)) THEN
18639 if(srrt .lt. 0.7)then
18640 XSK3 = 0.0119*srrt**(-0.534)
18642 XSK3 = 0.0130*srrt**(-0.304)
18646 c* phi + N(D) -> rho + N
18647 IF (srt .GT. (arho+amn)) THEN
18648 if(srrt .lt. 0.7)then
18649 XSK4 = 0.0166*srrt**(-0.786)
18651 XSK4 = 0.0189*srrt**(-0.277)
18655 c* phi + N(D) -> rho + D (same as pi + D)
18656 IF (srt .GT. (arho+am0)) THEN
18657 if(srrt .lt. 0.7)then
18658 XSK5 = 0.0119*srrt**(-0.534)
18660 XSK5 = 0.0130*srrt**(-0.304)
18664 c* phi + N -> K+ + La
18665 IF( (lb1.ge.1.and.lb1.le.2) .or. (lb2.ge.1.and.lb2.le.2) )THEN
18666 IF (srt .GT. (aka+ala)) THEN
18667 XSK6 = 1.715/((srrt+3.508)**2-12.138)
18670 SIGP = XSK1 + XSK2 + XSK3 + XSK4 + XSK5 + XSK6
18674 **********************************
18676 SUBROUTINE CRPHIB(PX,PY,PZ,SRT,I1,I2,
18677 & XSK1, XSK2, XSK3, XSK4, XSK5, SIGP, IBLOCK)
18680 * DEALING WITH PHI + N(D) --> pi+N(D), rho+N(D), K+ + La
18682 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
18683 * SRT - SQRT OF S *
18684 * IBLOCK - INFORMATION about the reaction channel *
18686 * iblock - 20 elastic
18687 * iblock - 221 K+ formation
18688 * iblock - 223 others
18689 **********************************
18690 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
18691 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,
18692 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
18693 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,ARHO=0.77)
18694 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
18695 COMMON /AA/ R(3,MAXSTR)
18697 COMMON /BB/ P(3,MAXSTR)
18699 COMMON /CC/ E(MAXSTR)
18701 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
18703 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
18705 COMMON/RNDF77/NSEED
18714 X1 = RANART(NSEED) * SIGP
18720 c !! elastic scatt.
18721 IF (X1 .LE. XSK1) THEN
18724 ELSE IF (X1 .LE. XSK2) THEN
18725 LB(I1) = 3 + int(3 * RANART(NSEED))
18726 LB(I2) = 1 + int(2 * RANART(NSEED))
18730 ELSE IF (X1 .LE. XSK3) THEN
18731 LB(I1) = 3 + int(3 * RANART(NSEED))
18732 LB(I2) = 6 + int(4 * RANART(NSEED))
18736 ELSE IF (X1 .LE. XSK4) THEN
18737 LB(I1) = 25 + int(3 * RANART(NSEED))
18738 LB(I2) = 1 + int(2 * RANART(NSEED))
18742 ELSE IF (X1 .LE. XSK5) THEN
18743 LB(I1) = 25 + int(3 * RANART(NSEED))
18744 LB(I2) = 6 + int(4 * RANART(NSEED))
18758 *-----------------------------------------------------------------------
18759 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
18760 * ENERGY CONSERVATION
18761 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
18762 1 - 4.0 * (EM1*EM2)**2
18763 IF(PR2.LE.0.)PR2=1.E-08
18764 PR=SQRT(PR2)/(2.*SRT)
18765 * WE ASSUME AN ISOTROPIC ANGULAR DISTRIBUTION IN THE CMS
18766 C1 = 1.0 - 2.0 * RANART(NSEED)
18767 T1 = 2.0 * PI * RANART(NSEED)
18768 S1 = SQRT( 1.0 - C1**2 )
18771 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
18776 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
18780 *****************************
18781 * purpose: Xsection for Phi + B
18783 SUBROUTINE pibphi(srt,lb1,lb2,em1,em2,Xphi,xphin)
18785 * phi + N(D) <- pi + N
18786 * phi + N(D) <- pi + D
18787 * phi + N(D) <- rho + N
18788 * phi + N(D) <- rho + D (same as pi + D)
18790 * ***************************
18791 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
18792 1 AMP=0.93828,AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
18793 PARAMETER (AKA=0.498, ALA = 1.1157, PIMASS=0.140, APHI=1.02)
18794 parameter (arho=0.77)
18801 if( (lb1.ge.3.and.lb1.le.5) .or.
18802 & (lb2.ge.3.and.lb2.le.5) )then
18804 if( (iabs(lb1).ge.1.and.iabs(lb1).le.2) .or.
18805 & (iabs(lb2).ge.1.and.iabs(lb2).le.2) )then
18806 c* phi + N <- pi + N
18807 IF (srt .GT. (aphi+amn)) THEN
18808 srrt = srt - (aphi+amn)
18809 sig = 0.0235*srrt**(-0.519)
18810 xphin=sig*1.*(srt**2-(aphi+amn)**2)*
18811 & (srt**2-(aphi-amn)**2)/(srt**2-(em1+em2)**2)/
18812 & (srt**2-(em1-em2)**2)
18814 c* phi + D <- pi + N
18815 IF (srt .GT. (aphi+am0)) THEN
18816 srrt = srt - (aphi+am0)
18817 sig = 0.0235*srrt**(-0.519)
18818 xphid=sig*4.*(srt**2-(aphi+am0)**2)*
18819 & (srt**2-(aphi-am0)**2)/(srt**2-(em1+em2)**2)/
18820 & (srt**2-(em1-em2)**2)
18823 c* phi + N <- pi + D
18824 IF (srt .GT. (aphi+amn)) THEN
18825 srrt = srt - (aphi+amn)
18826 if(srrt .lt. 0.7)then
18827 sig = 0.0119*srrt**(-0.534)
18829 sig = 0.0130*srrt**(-0.304)
18831 xphin=sig*(1./4.)*(srt**2-(aphi+amn)**2)*
18832 & (srt**2-(aphi-amn)**2)/(srt**2-(em1+em2)**2)/
18833 & (srt**2-(em1-em2)**2)
18835 c* phi + D <- pi + D
18836 IF (srt .GT. (aphi+am0)) THEN
18837 srrt = srt - (aphi+am0)
18838 if(srrt .lt. 0.7)then
18839 sig = 0.0119*srrt**(-0.534)
18841 sig = 0.0130*srrt**(-0.304)
18843 xphid=sig*1.*(srt**2-(aphi+am0)**2)*
18844 & (srt**2-(aphi-am0)**2)/(srt**2-(em1+em2)**2)/
18845 & (srt**2-(em1-em2)**2)
18850 C** for rho + N(D) colln
18854 if( (iabs(lb1).ge.1.and.iabs(lb1).le.2) .or.
18855 & (iabs(lb2).ge.1.and.iabs(lb2).le.2) )then
18857 c* phi + N <- rho + N
18858 IF (srt .GT. (aphi+amn)) THEN
18859 srrt = srt - (aphi+amn)
18860 if(srrt .lt. 0.7)then
18861 sig = 0.0166*srrt**(-0.786)
18863 sig = 0.0189*srrt**(-0.277)
18865 xphin=sig*(1./3.)*(srt**2-(aphi+amn)**2)*
18866 & (srt**2-(aphi-amn)**2)/(srt**2-(em1+em2)**2)/
18867 & (srt**2-(em1-em2)**2)
18869 c* phi + D <- rho + N
18870 IF (srt .GT. (aphi+am0)) THEN
18871 srrt = srt - (aphi+am0)
18872 if(srrt .lt. 0.7)then
18873 sig = 0.0166*srrt**(-0.786)
18875 sig = 0.0189*srrt**(-0.277)
18877 xphid=sig*(4./3.)*(srt**2-(aphi+am0)**2)*
18878 & (srt**2-(aphi-am0)**2)/(srt**2-(em1+em2)**2)/
18879 & (srt**2-(em1-em2)**2)
18882 c* phi + N <- rho + D (same as pi+D->phi+N)
18883 IF (srt .GT. (aphi+amn)) THEN
18884 srrt = srt - (aphi+amn)
18885 if(srrt .lt. 0.7)then
18886 sig = 0.0119*srrt**(-0.534)
18888 sig = 0.0130*srrt**(-0.304)
18890 xphin=sig*(1./12.)*(srt**2-(aphi+amn)**2)*
18891 & (srt**2-(aphi-amn)**2)/(srt**2-(em1+em2)**2)/
18892 & (srt**2-(em1-em2)**2)
18894 c* phi + D <- rho + D (same as pi+D->phi+D)
18895 IF (srt .GT. (aphi+am0)) THEN
18896 srrt = srt - (aphi+am0)
18897 if(srrt .lt. 0.7)then
18898 sig = 0.0119*srrt**(-0.534)
18900 sig = 0.0130*srrt**(-0.304)
18902 xphid=sig*(1./3.)*(srt**2-(aphi+am0)**2)*
18903 & (srt**2-(aphi-am0)**2)/(srt**2-(em1+em2)**2)/
18904 & (srt**2-(em1-em2)**2)
18912 Xphi = xphin + xphid
18917 *****************************
18918 * purpose: Xsection for phi +M to K+K etc
18919 SUBROUTINE PHIMES(I1, I2, SRT, XSK1, XSK2, XSK3, XSK4, XSK5,
18920 1 XSK6, XSK7, SIGPHI)
18923 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
18924 * SRT - SQRT OF S *
18925 * IBLOCK - THE INFORMATION BACK *
18926 * 223 --> phi destruction
18928 **********************************
18929 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
18930 1 AMP=0.93828,AP1=0.13496,
18931 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
18932 PARAMETER (AKA=0.498, AKS=0.895, AOMEGA=0.7819,
18933 3 ARHO=0.77, APHI=1.02)
18934 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
18935 PARAMETER (MAXX=20, MAXZ=24)
18936 COMMON /AA/ R(3,MAXSTR)
18938 COMMON /BB/ P(3,MAXSTR)
18940 COMMON /CC/ E(MAXSTR)
18942 COMMON /DD/ RHO(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
18943 & RHOP(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ),
18944 & RHON(-MAXX:MAXX,-MAXX:MAXX,-MAXZ:MAXZ)
18946 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
18969 pii = sqrt((S-(em1+em2)**2)*(S-(em1-em2)**2))
18970 * phi + K(-bar) channel
18971 if( lb1.eq.23.or.lb2.eq.23 .or. lb1.eq.21.or.lb2.eq.21 )then
18972 if(srt .gt. (ap1+akap))then
18974 pff = sqrt((S-(ap1+akap)**2)*(S-(ap1-akap)**2))
18975 XSK2 = 195.639*pff/pii/32./pi/S
18977 if(srt .gt. (arho+akap))then
18979 pff = sqrt((S-(arho+akap)**2)*(S-(arho-akap)**2))
18980 XSK3 = 526.702*pff/pii/32./pi/S
18982 if(srt .gt. (aomega+akap))then
18984 pff = sqrt((S-(aomega+akap)**2)*(S-(aomega-akap)**2))
18985 XSK4 = 355.429*pff/pii/32./pi/S
18987 if(srt .gt. (ap1+aks))then
18989 pff = sqrt((S-(ap1+aks)**2)*(S-(ap1-aks)**2))
18990 XSK5 = 2047.042*pff/pii/32./pi/S
18992 if(srt .gt. (arho+aks))then
18994 pff = sqrt((S-(arho+aks)**2)*(S-(arho-aks)**2))
18995 XSK6 = 1371.257*pff/pii/32./pi/S
18997 if(srt .gt. (aomega+aks))then
18999 pff = sqrt((S-(aomega+aks)**2)*(S-(aomega-aks)**2))
19000 XSK7 = 482.292*pff/pii/32./pi/S
19003 elseif( iabs(lb1).eq.30.or.iabs(lb2).eq.30 )then
19004 * phi + K*(-bar) channel
19006 if(srt .gt. (ap1+akap))then
19008 pff = sqrt((S-(ap1+akap)**2)*(S-(ap1-akap)**2))
19009 XSK2 = 372.378*pff/pii/32./pi/S
19011 if(srt .gt. (arho+akap))then
19013 pff = sqrt((S-(arho+akap)**2)*(S-(arho-akap)**2))
19014 XSK3 = 1313.960*pff/pii/32./pi/S
19016 if(srt .gt. (aomega+akap))then
19018 pff = sqrt((S-(aomega+akap)**2)*(S-(aomega-akap)**2))
19019 XSK4 = 440.558*pff/pii/32./pi/S
19021 if(srt .gt. (ap1+aks))then
19022 c XSK5 = 30.0 !wrong
19023 pff = sqrt((S-(ap1+aks)**2)*(S-(ap1-aks)**2))
19024 XSK5 = 1496.692*pff/pii/32./pi/S
19026 if(srt .gt. (arho+aks))then
19028 pff = sqrt((S-(arho+aks)**2)*(S-(arho-aks)**2))
19029 XSK6 = 6999.840*pff/pii/32./pi/S
19031 if(srt .gt. (aomega+aks))then
19033 pff = sqrt((S-(aomega+aks)**2)*(S-(aomega-aks)**2))
19034 XSK7 = 1698.903*pff/pii/32./pi/S
19038 * phi + rho(pi,omega) channel
19041 if(srt .gt. (akap+akap))then
19043 cc if(srrt .lt. 0.3)then
19044 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
19045 XSK2 = 1.69/(srrt**0.141 - 0.407)
19047 XSK2 = 3.74 + 0.008*srrt**1.9
19050 if(srt .gt. (akap+aks))then
19052 srr = amax1(srr1,srr2)
19054 cc if(srrt .lt. 0.3)then
19055 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
19056 XSK3 = 1.69/(srrt**0.141 - 0.407)
19058 XSK3 = 3.74 + 0.008*srrt**1.9
19061 if(srt .gt. (aks+aks))then
19063 srr = amax1(srr1,srr2)
19065 cc if(srrt .lt. 0.3)then
19066 if(srrt .lt. 0.3 .and. srrt .gt. 0.01)then
19067 XSK4 = 1.69/(srrt**0.141 - 0.407)
19069 XSK4 = 3.74 + 0.008*srrt**1.9
19072 c xsk2 = amin1(20.,xsk2)
19073 c xsk3 = amin1(20.,xsk3)
19074 c xsk4 = amin1(20.,xsk4)
19077 SIGPHI = XSK1 + XSK2 + XSK3 + XSK4 + XSK5 + XSK6 + XSK7
19082 **********************************
19084 * DEALING WITH phi+M scatt.
19086 SUBROUTINE CRPHIM(PX,PY,PZ,SRT,I1,I2,
19087 & XSK1, XSK2, XSK3, XSK4, XSK5, XSK6, SIGPHI, IKKG, IKKL, IBLOCK)
19090 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
19091 * SRT - SQRT OF S *
19092 * IBLOCK - THE INFORMATION BACK *
19094 * 223 --> phi + pi(rho,omega)
19095 * 224 --> phi + K -> K + pi(rho,omega)
19096 * 225 --> phi + K -> K* + pi(rho,omega)
19097 * 226 --> phi + K* -> K + pi(rho,omega)
19098 * 227 --> phi + K* -> K* + pi(rho,omega)
19099 **********************************
19100 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
19101 1 AMP=0.93828,AP1=0.13496,ARHO=0.77,AOMEGA=0.7819,
19102 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
19103 PARAMETER (AKA=0.498,AKS=0.895)
19104 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
19105 COMMON /AA/ R(3,MAXSTR)
19107 COMMON /BB/ P(3,MAXSTR)
19109 COMMON /CC/ E(MAXSTR)
19111 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
19113 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
19115 COMMON/RNDF77/NSEED
19125 X1 = RANART(NSEED) * SIGPHI
19131 IF (X1 .LE. XSK1) THEN
19138 if( lb1.eq.23.or.lb1.eq.21.or.iabs(lb1).eq.30 .OR.
19139 & lb2.eq.23.or.lb2.eq.21.or.iabs(lb2).eq.30 )then
19141 if(lb1.eq.23.or.lb2.eq.23)then
19146 elseif(lb1.eq.30.or.lb2.eq.30)then
19151 elseif(lb1.eq.21.or.lb2.eq.21)then
19163 IF (X1 .LE. XSK2) THEN
19164 LB(I1) = 3 + int(3 * RANART(NSEED))
19170 ELSE IF (X1 .LE. XSK3) THEN
19171 LB(I1) = 25 + int(3 * RANART(NSEED))
19177 ELSE IF (X1 .LE. XSK4) THEN
19184 ELSE IF (X1 .LE. XSK5) THEN
19185 LB(I1) = 3 + int(3 * RANART(NSEED))
19192 ELSE IF (X1 .LE. XSK6) THEN
19193 LB(I1) = 25 + int(3 * RANART(NSEED))
19210 c !! phi destruction via (pi,rho,omega)
19212 *phi + pi(rho,omega)
19213 IF (X1 .LE. XSK2) THEN
19221 ELSE IF (X1 .LE. XSK3) THEN
19225 clin-2/10/03 currently take XSK3 to be the sum of KK*bar & KbarK*:
19226 if(RANART(NSEED).le.0.5) then
19236 ELSE IF (X1 .LE. XSK4) THEN
19253 *-----------------------------------------------------------------------
19254 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
19255 * ENERGY CONSERVATION
19256 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
19257 1 - 4.0 * (EM1*EM2)**2
19258 IF(PR2.LE.0.)PR2=1.E-08
19259 PR=SQRT(PR2)/(2.*SRT)
19260 * WE ASSUME AN ISOTROPIC ANGULAR DISTRIBUTION IN THE CMS
19261 C1 = 1.0 - 2.0 * RANART(NSEED)
19262 T1 = 2.0 * PI * RANART(NSEED)
19263 S1 = SQRT( 1.0 - C1**2 )
19266 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
19271 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
19274 **********************************
19275 **********************************
19277 *************************************
19278 * purpose: Xsection for K+Y -> piN *
19279 * Xsection for K+Y-bar -> piN-bar !! sp03/29/01 *
19281 SUBROUTINE XKHYPE(I1, I2, SRT, XKY1, XKY2, XKY3, XKY4, XKY5,
19282 & XKY6, XKY7, XKY8, XKY9, XKY10, XKY11, XKY12, XKY13,
19283 & XKY14, XKY15, XKY16, XKY17, SIGK)
19284 c subroutine xkhype(i1, i2, srt, sigk)
19285 * srt = DSQRT(s) in GeV *
19286 * xkkpi = xsection in mb obtained from *
19287 * the detailed balance *
19288 * ***********************************
19289 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
19290 1 AMP=0.93828,AP1=0.13496,AMRHO=0.769,AMOMGA=0.782,APHI=1.02,
19291 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
19292 parameter (pimass=0.140, AMETA = 0.5473, aka=0.498,
19293 & aml=1.116,ams=1.193, AM1440 = 1.44, AM1535 = 1.535)
19294 COMMON /EE/ID(MAXSTR), LB(MAXSTR)
19320 IF (iabs(LB1) .EQ. 14 .OR. iabs(LB2) .EQ. 14) THEN
19321 XKAON0 = PNLKA(SRT)
19322 XKAON0 = 2.0 * XKAON0
19323 PI2 = (S - (AML + AKA) ** 2) * (S - (AML - AKA) ** 2)
19325 XKAON0 = PNSKA(SRT)
19326 XKAON0 = 2.0 * XKAON0
19327 PI2 = (S - (AMS + AKA) ** 2) * (S - (AMS - AKA) ** 2)
19329 if(PI2 .le. 0.0)return
19333 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19334 IF (PF2 .GT. 0.0) THEN
19335 XKY1 = 3.0 * PF2 / PI2 * XKAON0
19340 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19341 IF (PF2 .GT. 0.0) THEN
19342 XKY2 = 12.0 * PF2 / PI2 * XKAON0
19347 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19348 IF (PF2 .GT. 0.0) THEN
19349 XKY3 = 3.0 * PF2 / PI2 * XKAON0
19354 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19355 IF (PF2 .GT. 0.0) THEN
19356 XKY4 = 3.0 * PF2 / PI2 * XKAON0
19361 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19362 IF (PF2 .GT. 0.0) THEN
19363 XKY5 = 9.0 * PF2 / PI2 * XKAON0
19368 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19369 IF (PF2 .GT. 0.0) THEN
19370 XKY6 = 36.0 * PF2 / PI2 * XKAON0
19375 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19376 IF (PF2 .GT. 0.0) THEN
19377 XKY7 = 9.0 * PF2 / PI2 * XKAON0
19382 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19383 IF (PF2 .GT. 0.0) THEN
19384 XKY8 = 9.0 * PF2 / PI2 * XKAON0
19389 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19390 IF (PF2 .GT. 0.0) THEN
19391 XKY9 = 3.0 * PF2 / PI2 * XKAON0
19396 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19397 IF (PF2 .GT. 0.0) THEN
19398 XKY10 = 12.0 * PF2 / PI2 * XKAON0
19403 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19404 IF (PF2 .GT. 0.0) THEN
19405 XKY11 = 3.0 * PF2 / PI2 * XKAON0
19410 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19411 IF (PF2 .GT. 0.0) THEN
19412 XKY12 = 3.0 * PF2 / PI2 * XKAON0
19417 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19418 IF (PF2 .GT. 0.0) THEN
19419 XKY13 = 1.0 * PF2 / PI2 * XKAON0
19424 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19425 IF (PF2 .GT. 0.0) THEN
19426 XKY14 = 4.0 * PF2 / PI2 * XKAON0
19431 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19432 IF (PF2 .GT. 0.0) THEN
19433 XKY15 = 1.0 * PF2 / PI2 * XKAON0
19438 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19439 IF (PF2 .GT. 0.0) THEN
19440 XKY16 = 1.0 * PF2 / PI2 * XKAON0
19443 csp11/21/01 K+ + La --> phi + N
19444 if(lb1.eq.14 .or. lb2.eq.14)then
19445 if(srt .gt. (aphi+amn))then
19446 srrt = srt - (aphi+amn)
19447 sig = 1.715/((srrt+3.508)**2-12.138)
19450 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
19452 XKY17 = 3.0 * PF2 / PI2 * SIG/10.
19458 IF ((iabs(LB1) .GE. 15 .AND. iabs(LB1) .LE. 17) .OR.
19459 & (iabs(LB2) .GE. 15 .AND. iabs(LB2) .LE. 17)) THEN
19471 XKY11 = XKY11 / DDF
19472 XKY12 = XKY12 / DDF
19473 XKY13 = XKY13 / DDF
19474 XKY14 = XKY14 / DDF
19475 XKY15 = XKY15 / DDF
19476 XKY16 = XKY16 / DDF
19479 SIGK = XKY1 + XKY2 + XKY3 + XKY4 +
19480 & XKY5 + XKY6 + XKY7 + XKY8 +
19481 & XKY9 + XKY10 + XKY11 + XKY12 +
19482 & XKY13 + XKY14 + XKY15 + XKY16 + XKY17
19487 C*******************************
19490 parameter (AMP=0.93828,AMN=0.939457,
19491 1 AM0=1.232,AM1440 = 1.44, AM1535 = 1.535)
19493 c to give default values to parameters for BbarB production from mesons
19494 COMMON/ppbmas/niso(15),nstate,ppbm(15,2),thresh(15),weight(15)
19496 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19498 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19501 c thresh(i) gives the mass thresh for final channel i:
19502 DATA thresh/1.87656,1.877737,1.878914,2.17028,
19503 1 2.171457,2.37828,2.379457,2.464,2.47328,2.474457,
19504 2 2.672,2.767,2.88,2.975,3.07/
19505 c ppbm(i,j=1,2) gives masses for the two final baryons of channel i,
19506 c with j=1 for the lighter baryon:
19507 DATA (ppbm(i,1),i=1,15)/amp,amp,amn,amp,amn,amp,amn,
19508 1 am0,amp,amn,am0,am0,am1440,am1440,am1535/
19509 DATA (ppbm(i,2),i=1,15)/amp,amn,amn,am0,am0,am1440,am1440,
19510 1 am0,am1535,am1535,am1440,am1535,am1440,am1535,am1535/
19511 c factr2(i) gives weights for producing i pions from ppbar annihilation:
19512 DATA factr2/0,1,1.17e-01,3.27e-03,3.58e-05,1.93e-07/
19513 c niso(i) gives the degeneracy factor for final channel i:
19514 DATA niso/1,2,1,16,16,4,4,64,4,4,32,32,4,8,4/
19519 *****************************************
19520 * get the number of BbarB states available for mm collisions of energy srt
19521 subroutine getnst(srt)
19522 * srt = DSQRT(s) in GeV *
19523 *****************************************
19524 parameter (pimass=0.140,pi=3.1415926)
19525 COMMON/ppbmas/niso(15),nstate,ppbm(15,2),thresh(15),weight(15)
19527 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19529 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19536 if(srt.le.thresh(1)) return
19539 if(srt.gt.thresh(i)) nstate=i
19542 pf2=(s-(ppbm(i,1)+ppbm(i,2))**2)
19543 1 *(s-(ppbm(i,1)-ppbm(i,2))**2)/4/s
19544 weight(i)=pf2*niso(i)
19545 wtot=wtot+weight(i)
19547 ene=(srt/pimass)**3/(6.*pi**2)
19548 fsum=factr2(2)+factr2(3)*ene+factr2(4)*ene**2
19549 1 +factr2(5)*ene**3+factr2(6)*ene**4
19554 *****************************************
19555 * for pion+pion-->Bbar B *
19556 c real*4 function ppbbar(srt)
19557 real function ppbbar(srt)
19558 *****************************************
19559 parameter (pimass=0.140,arho=0.77,aomega=0.782)
19560 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19562 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19566 sppb2p=xppbar(srt)*factr2(2)/fsum
19567 pi2=(s-4*pimass**2)/4
19568 ppbbar=4./9.*sppb2p/pi2*wtot
19573 *****************************************
19574 * for pion+rho-->Bbar B *
19575 c real*4 function prbbar(srt)
19576 real function prbbar(srt)
19577 *****************************************
19578 parameter (pimass=0.140,arho=0.77,aomega=0.782)
19579 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19581 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19585 sppb3p=xppbar(srt)*factr2(3)*ene/fsum
19586 pi2=(s-(pimass+arho)**2)*(s-(pimass-arho)**2)/4/s
19587 prbbar=4./27.*sppb3p/pi2*wtot
19592 *****************************************
19593 * for rho+rho-->Bbar B *
19594 c real*4 function rrbbar(srt)
19595 real function rrbbar(srt)
19596 *****************************************
19597 parameter (pimass=0.140,arho=0.77,aomega=0.782)
19598 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19600 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19604 sppb4p=xppbar(srt)*factr2(4)*ene**2/fsum
19605 pi2=(s-4*arho**2)/4
19606 rrbbar=4./81.*(sppb4p/2)/pi2*wtot
19611 *****************************************
19612 * for pi+omega-->Bbar B *
19613 c real*4 function pobbar(srt)
19614 real function pobbar(srt)
19615 *****************************************
19616 parameter (pimass=0.140,arho=0.77,aomega=0.782)
19617 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19619 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19623 sppb4p=xppbar(srt)*factr2(4)*ene**2/fsum
19624 pi2=(s-(pimass+aomega)**2)*(s-(pimass-aomega)**2)/4/s
19625 pobbar=4./9.*(sppb4p/2)/pi2*wtot
19630 *****************************************
19631 * for rho+omega-->Bbar B *
19632 c real*4 function robbar(srt)
19633 real function robbar(srt)
19634 *****************************************
19635 parameter (pimass=0.140,arho=0.77,aomega=0.782)
19636 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19638 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19642 sppb5p=xppbar(srt)*factr2(5)*ene**3/fsum
19643 pi2=(s-(arho+aomega)**2)*(s-(arho-aomega)**2)/4/s
19644 robbar=4./27.*sppb5p/pi2*wtot
19649 *****************************************
19650 * for omega+omega-->Bbar B *
19651 c real*4 function oobbar(srt)
19652 real function oobbar(srt)
19653 *****************************************
19654 parameter (pimass=0.140,arho=0.77,aomega=0.782)
19655 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19657 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19661 sppb6p=xppbar(srt)*factr2(6)*ene**4/fsum
19662 pi2=(s-4*aomega**2)/4
19663 oobbar=4./9.*sppb6p/pi2*wtot
19668 *****************************************
19669 * Generate final states for mm-->Bbar B *
19670 SUBROUTINE bbarfs(lbb1,lbb2,ei1,ei2,iblock,iseed)
19671 *****************************************
19672 COMMON/ppbmas/niso(15),nstate,ppbm(15,2),thresh(15),weight(15)
19674 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19676 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19678 COMMON/RNDF77/NSEED
19682 c determine which final BbarB channel occurs:
19686 wsum=wsum+weight(i)
19687 if(rd.le.(wsum/wtot)) then
19701 elseif(ifs.eq.2) then
19703 if(RANART(NSEED).le.0.5) then
19714 elseif(ifs.eq.3) then
19718 c4&5 (pbar nbar) Delta, (p n) anti-Delta
19719 elseif(ifs.eq.4.or.ifs.eq.5) then
19722 c (pbar nbar) Delta
19731 if(rd2.le.0.25) then
19733 elseif(rd2.le.0.5) then
19735 elseif(rd2.le.0.75) then
19750 if(rd2.le.0.25) then
19752 elseif(rd2.le.0.5) then
19754 elseif(rd2.le.0.75) then
19760 c6&7 (pbar nbar) N*(1440), (p n) anti-N*(1440)
19761 elseif(ifs.eq.6.or.ifs.eq.7) then
19764 c (pbar nbar) N*(1440)
19773 if(rd2.le.0.5) then
19779 c (p n) anti-N*(1440)
19788 if(rd2.le.0.5) then
19794 c8 Delta anti-Delta
19795 elseif(ifs.eq.8) then
19798 if(rd1.le.0.25) then
19800 elseif(rd1.le.0.5) then
19802 elseif(rd1.le.0.75) then
19808 if(rd2.le.0.25) then
19810 elseif(rd2.le.0.5) then
19812 elseif(rd2.le.0.75) then
19817 c9&10 (pbar nbar) N*(1535), (p n) anti-N*(1535)
19818 elseif(ifs.eq.9.or.ifs.eq.10) then
19821 c (pbar nbar) N*(1440)
19830 if(rd2.le.0.5) then
19836 c (p n) anti-N*(1535)
19845 if(rd2.le.0.5) then
19851 c11&12 anti-Delta N*, Delta anti-N*
19852 elseif(ifs.eq.11.or.ifs.eq.12) then
19857 if(rd1.le.0.25) then
19859 elseif(rd1.le.0.5) then
19861 elseif(rd1.le.0.75) then
19869 if(rd2.le.0.5) then
19877 if(rd2.le.0.5) then
19886 if(rd1.le.0.25) then
19888 elseif(rd1.le.0.5) then
19890 elseif(rd1.le.0.75) then
19898 if(rd2.le.0.5) then
19906 if(rd2.le.0.5) then
19913 c13 N*(1440) anti-N*(1440)
19914 elseif(ifs.eq.13) then
19917 if(rd1.le.0.5) then
19923 if(rd2.le.0.5) then
19928 c14 anti-N*(1440) N*(1535), N*(1440) anti-N*(1535)
19929 elseif(ifs.eq.14) then
19932 c anti-N*(1440) N*(1535)
19935 if(rd1.le.0.5) then
19941 if(rd2.le.0.5) then
19947 c N*(1440) anti-N*(1535)
19950 if(rd1.le.0.5) then
19956 if(rd2.le.0.5) then
19962 c15 N*(1535) anti-N*(1535)
19963 elseif(ifs.eq.15) then
19966 if(rd1.le.0.5) then
19972 if(rd2.le.0.5) then
19983 *****************************************
19984 * for pi pi <-> rho rho cross sections
19985 SUBROUTINE spprr(lb1,lb2,srt)
19986 parameter (arho=0.77)
19987 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
19989 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
19994 if((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5)) then
19995 c for now, rho mass taken to be the central value in these two processes
19996 if(srt.gt.(2*arho)) pprr=ptor(srt)
19997 elseif((lb1.ge.25.and.lb1.le.27).and.(lb2.ge.25.and.lb2.le.27))
20005 *****************************************
20006 * for pi pi -> rho rho, determined from detailed balance
20007 real function ptor(srt)
20008 *****************************************
20009 parameter (pimass=0.140,arho=0.77)
20010 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20012 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20017 ptor=9*(s2-4*arho**2)/(s2-4*pimass**2)*rtop(srt)
20022 *****************************************
20023 * for rho rho -> pi pi, assumed a constant cross section (in mb)
20024 real function rtop(srt)
20025 *****************************************
20031 *****************************************
20032 * for pi pi <-> rho rho final states
20033 SUBROUTINE pi2ro2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20034 PARAMETER (MAXSTR=150001)
20035 PARAMETER (AP1=0.13496,AP2=0.13957)
20036 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20038 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20040 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20042 COMMON/RNDF77/NSEED
20046 if((lb(i1).ge.3.and.lb(i1).le.5)
20047 1 .and.(lb(i2).ge.3.and.lb(i2).le.5)) then
20051 c for now, we don't check isospin states(allowing pi+pi+ & pi0pi0 -> 2rho)
20052 c thus the cross sections used are considered as the isospin-averaged ones.
20053 lbb1=25+int(3*RANART(NSEED))
20054 lbb2=25+int(3*RANART(NSEED))
20055 elseif((lb(i1).ge.25.and.lb(i1).le.27)
20056 1 .and.(lb(i2).ge.25.and.lb(i2).le.27)) then
20058 lbb1=3+int(3*RANART(NSEED))
20059 lbb2=3+int(3*RANART(NSEED))
20062 if(lbb1.eq.4) ei1=ap1
20063 if(lbb2.eq.4) ei2=ap1
20069 *****************************************
20070 * for pi pi <-> eta eta cross sections
20071 SUBROUTINE sppee(lb1,lb2,srt)
20072 parameter (ETAM=0.5475)
20073 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20075 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20080 if((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5)) then
20081 if(srt.gt.(2*ETAM)) ppee=ptoe(srt)
20082 elseif(lb1.eq.0.and.lb2.eq.0) then
20089 *****************************************
20090 * for pi pi -> eta eta, determined from detailed balance, spin-isospin averaged
20091 real function ptoe(srt)
20092 *****************************************
20093 parameter (pimass=0.140,ETAM=0.5475)
20094 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20096 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20101 ptoe=1./9.*(s2-4*etam**2)/(s2-4*pimass**2)*etop(srt)
20105 *****************************************
20106 * for eta eta -> pi pi, assumed a constant cross section (in mb)
20107 real function etop(srt)
20108 *****************************************
20110 c eta equilibration:
20111 c most important channel is found to be pi pi <-> pi eta, then
20112 c rho pi <-> rho eta.
20117 *****************************************
20118 * for pi pi <-> eta eta final states
20119 SUBROUTINE pi2et2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20120 PARAMETER (MAXSTR=150001)
20121 PARAMETER (AP1=0.13496,AP2=0.13957,ETAM=0.5475)
20122 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20124 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20126 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20128 COMMON/RNDF77/NSEED
20133 if((lb(i1).ge.3.and.lb(i1).le.5)
20134 1 .and.(lb(i2).ge.3.and.lb(i2).le.5)) then
20138 c for now, we don't check isospin states(allowing pi+pi+ & pi0pi0 -> 2rho)
20139 c thus the cross sections used are considered as the isospin-averaged ones.
20142 elseif(lb(i1).eq.0.and.lb(i2).eq.0) then
20144 lbb1=3+int(3*RANART(NSEED))
20145 lbb2=3+int(3*RANART(NSEED))
20148 if(lbb1.eq.4) ei1=ap1
20149 if(lbb2.eq.4) ei2=ap1
20155 *****************************************
20156 * for pi pi <-> pi eta cross sections
20157 SUBROUTINE spppe(lb1,lb2,srt)
20158 parameter (pimass=0.140,ETAM=0.5475)
20159 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20161 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20166 if((lb1.ge.3.and.lb1.le.5).and.(lb2.ge.3.and.lb2.le.5)) then
20167 if(srt.gt.(ETAM+pimass)) pppe=pptope(srt)
20168 elseif((lb1.ge.3.and.lb1.le.5).and.lb2.eq.0) then
20170 elseif((lb2.ge.3.and.lb2.le.5).and.lb1.eq.0) then
20177 *****************************************
20178 * for pi pi -> pi eta, determined from detailed balance, spin-isospin averaged
20179 real function pptope(srt)
20180 *****************************************
20181 parameter (pimass=0.140,ETAM=0.5475)
20182 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20184 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20189 pf2=(s2-(pimass+ETAM)**2)*(s2-(pimass-ETAM)**2)/2/sqrt(s2)
20190 pi2=(s2-4*pimass**2)*s2/2/sqrt(s2)
20191 pptope=1./3.*pf2/pi2*petopp(srt)
20195 *****************************************
20196 * for pi eta -> pi pi, assumed a constant cross section (in mb)
20197 real function petopp(srt)
20198 *****************************************
20200 c eta equilibration:
20205 *****************************************
20206 * for pi pi <-> pi eta final states
20207 SUBROUTINE pi3eta(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20208 PARAMETER (MAXSTR=150001)
20209 PARAMETER (AP1=0.13496,AP2=0.13957,ETAM=0.5475)
20210 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20212 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20214 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20216 COMMON/RNDF77/NSEED
20221 if((lb(i1).ge.3.and.lb(i1).le.5)
20222 1 .and.(lb(i2).ge.3.and.lb(i2).le.5)) then
20226 c for now, we don't check isospin states(allowing pi+pi+ & pi0pi0 -> 2rho)
20227 c thus the cross sections used are considered as the isospin-averaged ones.
20228 lbb1=3+int(3*RANART(NSEED))
20229 if(lbb1.eq.4) ei1=ap1
20231 elseif((lb(i1).ge.3.and.lb(i1).le.5.and.lb(i2).eq.0).or.
20232 1 (lb(i2).ge.3.and.lb(i2).le.5.and.lb(i1).eq.0)) then
20234 lbb1=3+int(3*RANART(NSEED))
20235 lbb2=3+int(3*RANART(NSEED))
20238 if(lbb1.eq.4) ei1=ap1
20239 if(lbb2.eq.4) ei2=ap1
20245 *****************************************
20246 * for rho pi <-> rho eta cross sections
20247 SUBROUTINE srpre(lb1,lb2,srt)
20248 parameter (pimass=0.140,ETAM=0.5475,arho=0.77)
20249 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20251 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20256 if(lb1.ge.25.and.lb1.le.27.and.lb2.ge.3.and.lb2.le.5) then
20257 if(srt.gt.(ETAM+arho)) rpre=rptore(srt)
20258 elseif(lb2.ge.25.and.lb2.le.27.and.lb1.ge.3.and.lb1.le.5) then
20259 if(srt.gt.(ETAM+arho)) rpre=rptore(srt)
20260 elseif(lb1.ge.25.and.lb1.le.27.and.lb2.eq.0) then
20261 if(srt.gt.(pimass+arho)) rpre=retorp(srt)
20262 elseif(lb2.ge.25.and.lb2.le.27.and.lb1.eq.0) then
20263 if(srt.gt.(pimass+arho)) rpre=retorp(srt)
20269 *****************************************
20270 * for rho pi->rho eta, determined from detailed balance, spin-isospin averaged
20271 real function rptore(srt)
20272 *****************************************
20273 parameter (pimass=0.140,ETAM=0.5475,arho=0.77)
20274 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20276 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20281 pf2=(s2-(arho+ETAM)**2)*(s2-(arho-ETAM)**2)/2/sqrt(s2)
20282 pi2=(s2-(arho+pimass)**2)*(s2-(arho-pimass)**2)/2/sqrt(s2)
20283 rptore=1./3.*pf2/pi2*retorp(srt)
20287 *****************************************
20288 * for rho eta -> rho pi, assumed a constant cross section (in mb)
20289 real function retorp(srt)
20290 *****************************************
20292 c eta equilibration:
20297 *****************************************
20298 * for rho pi <-> rho eta final states
20299 SUBROUTINE rpiret(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20300 PARAMETER (MAXSTR=150001)
20301 PARAMETER (AP1=0.13496,AP2=0.13957,ETAM=0.5475,arho=0.77)
20302 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20304 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20306 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20308 COMMON/RNDF77/NSEED
20312 if((lb(i1).ge.25.and.lb(i1).le.27
20313 1 .and.lb(i2).ge.3.and.lb(i2).le.5).or.
20314 2 (lb(i1).ge.3.and.lb(i1).le.5
20315 3 .and.lb(i2).ge.25.and.lb(i2).le.27)) then
20319 c for now, we don't check isospin states(allowing pi+pi+ & pi0pi0 -> 2rho)
20320 c thus the cross sections used are considered as the isospin-averaged ones.
20321 lbb1=25+int(3*RANART(NSEED))
20323 elseif((lb(i1).ge.25.and.lb(i1).le.27.and.lb(i2).eq.0).or.
20324 1 (lb(i2).ge.25.and.lb(i2).le.27.and.lb(i1).eq.0)) then
20326 lbb1=25+int(3*RANART(NSEED))
20327 lbb2=3+int(3*RANART(NSEED))
20330 if(lbb2.eq.4) ei2=ap1
20336 *****************************************
20337 * for omega pi <-> omega eta cross sections
20338 SUBROUTINE sopoe(lb1,lb2,srt)
20339 parameter (ETAM=0.5475,aomega=0.782)
20340 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20342 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20347 if((lb1.eq.28.and.lb2.ge.3.and.lb2.le.5).or.
20348 1 (lb2.eq.28.and.lb1.ge.3.and.lb1.le.5)) then
20349 if(srt.gt.(aomega+ETAM)) xopoe=xop2oe(srt)
20350 elseif((lb1.eq.28.and.lb2.eq.0).or.
20351 1 (lb1.eq.0.and.lb2.eq.28)) then
20352 if(srt.gt.(aomega+ETAM)) xopoe=xoe2op(srt)
20358 *****************************************
20359 * for omega pi -> omega eta,
20360 c determined from detailed balance, spin-isospin averaged
20361 real function xop2oe(srt)
20362 *****************************************
20363 parameter (pimass=0.140,ETAM=0.5475,aomega=0.782)
20364 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20366 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20371 pf2=(s2-(aomega+ETAM)**2)*(s2-(aomega-ETAM)**2)/2/sqrt(s2)
20372 pi2=(s2-(aomega+pimass)**2)*(s2-(aomega-pimass)**2)/2/sqrt(s2)
20373 xop2oe=1./3.*pf2/pi2*xoe2op(srt)
20377 *****************************************
20378 * for omega eta -> omega pi, assumed a constant cross section (in mb)
20379 real function xoe2op(srt)
20380 *****************************************
20382 c eta equilibration:
20387 *****************************************
20388 * for omega pi <-> omega eta final states
20389 SUBROUTINE opioet(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20390 PARAMETER (MAXSTR=150001)
20391 PARAMETER (AP1=0.13496,AP2=0.13957,ETAM=0.5475,aomega=0.782)
20392 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20394 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20396 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20398 COMMON/RNDF77/NSEED
20403 if((lb(i1).ge.3.and.lb(i1).le.5.and.lb(i2).eq.28).or.
20404 1 (lb(i2).ge.3.and.lb(i2).le.5.and.lb(i1).eq.28)) then
20408 c for now, we don't check isospin states(allowing pi+pi+ & pi0pi0 -> 2rho)
20409 c thus the cross sections used are considered as the isospin-averaged ones.
20412 elseif((lb(i1).eq.28.and.lb(i2).eq.0).or.
20413 1 (lb(i1).eq.0.and.lb(i2).eq.28)) then
20416 lbb2=3+int(3*RANART(NSEED))
20419 if(lbb2.eq.4) ei2=ap1
20425 *****************************************
20426 * for rho rho <-> eta eta cross sections
20427 SUBROUTINE srree(lb1,lb2,srt)
20428 parameter (ETAM=0.5475,arho=0.77)
20429 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20431 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20436 if(lb1.ge.25.and.lb1.le.27.and.
20437 1 lb2.ge.25.and.lb2.le.27) then
20438 if(srt.gt.(2*ETAM)) rree=rrtoee(srt)
20439 elseif(lb1.eq.0.and.lb2.eq.0) then
20440 if(srt.gt.(2*arho)) rree=eetorr(srt)
20446 *****************************************
20447 * for eta eta -> rho rho
20448 c determined from detailed balance, spin-isospin averaged
20449 real function eetorr(srt)
20450 *****************************************
20451 parameter (ETAM=0.5475,arho=0.77)
20452 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20454 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20459 eetorr=81.*(s2-4*arho**2)/(s2-4*etam**2)*rrtoee(srt)
20463 *****************************************
20464 * for rho rho -> eta eta, assumed a constant cross section (in mb)
20465 real function rrtoee(srt)
20466 *****************************************
20468 c eta equilibration:
20473 *****************************************
20474 * for rho rho <-> eta eta final states
20475 SUBROUTINE ro2et2(i1,i2,lbb1,lbb2,ei1,ei2,iblock,iseed)
20476 PARAMETER (MAXSTR=150001)
20477 parameter (ETAM=0.5475,arho=0.77)
20478 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20480 common/ppb1/ene,factr2(6),fsum,ppinnb,s,wtot
20482 common/ppmm/pprr,ppee,pppe,rpre,xopoe,rree
20484 COMMON/RNDF77/NSEED
20489 if(lb(i1).ge.25.and.lb(i1).le.27.and.
20490 1 lb(i2).ge.25.and.lb(i2).le.27) then
20494 c for now, we don't check isospin states(allowing pi+pi+ & pi0pi0 -> 2rho)
20495 c thus the cross sections used are considered as the isospin-averaged ones.
20498 elseif(lb(i1).eq.0.and.lb(i2).eq.0) then
20500 lbb1=25+int(3*RANART(NSEED))
20501 lbb2=25+int(3*RANART(NSEED))
20509 *****************************
20510 * purpose: Xsection for K* Kbar or K*bar K to pi(eta) rho(omega)
20511 SUBROUTINE XKKSAN(i1,i2,SRT,SIGKS1,SIGKS2,SIGKS3,SIGKS4,SIGK,prkk)
20512 * srt = DSQRT(s) in GeV *
20513 * sigk = xsection in mb obtained from *
20514 * the detailed balance *
20515 * ***************************
20516 PARAMETER (AKA=0.498, PIMASS=0.140, RHOM = 0.770,aks=0.895,
20517 & OMEGAM = 0.7819, ETAM = 0.5473)
20518 PARAMETER (MAXSTR=150001)
20519 COMMON /CC/ E(MAXSTR)
20530 clin note that prkk is for pi (rho omega) -> K* Kbar (AND!) K*bar K:
20534 c PI2 = (S - (aks + AKA) ** 2) * (S - (aks - AKA) ** 2)
20535 PI2 = (S - (e(i1) + e(i2)) ** 2) * (S - (e(i1) - e(i2)) ** 2)
20537 if(PI2 .le. 0.0) return
20541 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
20542 IF (PI2 .GT. 0.0 .AND. PF2 .GT. 0.0) THEN
20543 SIGKS1 = 27.0 / 4.0 * PF2 / PI2 * XPION0
20548 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
20549 IF (PI2 .GT. 0.0 .AND. PF2 .GT. 0.0) THEN
20550 SIGKS2 = 9.0 / 4.0 * PF2 / PI2 * XPION0
20555 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
20556 IF (PF2 .GT. 0.0) THEN
20557 SIGKS3 = 9.0 / 4.0 * PF2 / PI2 * XPION0
20562 PF2 = (S - (XM1 + XM2) ** 2) * (S - (XM1 - XM2) ** 2)
20563 IF (PF2 .GT. 0.0) THEN
20564 SIGKS4 = 3.0 / 4.0 * PF2 / PI2 * XPION0
20567 SIGK=SIGKS1+SIGKS2+SIGKS3+SIGKS4
20572 **********************************
20574 * assign final states for KK*bar or K*Kbar --> light mesons
20576 c SUBROUTINE Crkspi(PX,PY,PZ,SRT,I1,I2,IBLOCK)
20577 SUBROUTINE crkspi(I1,I2,XSK1, XSK2, XSK3, XSK4, SIGK,
20578 & IBLOCK,lbp1,lbp2,emm1,emm2)
20580 **********************************
20581 PARAMETER (MAXSTR=150001,MAXR=1)
20582 PARAMETER (AP1=0.13496,AP2=0.13957,RHOM = 0.770,PI=3.1415926)
20583 PARAMETER (AETA=0.548,AMOMGA=0.782)
20584 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
20585 COMMON /AA/ R(3,MAXSTR)
20587 COMMON /BB/ P(3,MAXSTR)
20589 COMMON /CC/ E(MAXSTR)
20591 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20593 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
20595 COMMON/RNDF77/NSEED
20600 * charges of final state mesons:
20602 X1 = RANART(NSEED) * SIGK
20606 IF (X1 .LE. XSK1) THEN
20607 LB(I1) = 3 + int(3 * RANART(NSEED))
20608 LB(I2) = 25 + int(3 * RANART(NSEED))
20611 ELSE IF (X1 .LE. XSK2) THEN
20612 LB(I1) = 3 + int(3 * RANART(NSEED))
20616 ELSE IF (X1 .LE. XSK3) THEN
20618 LB(I2) = 25 + int(3 * RANART(NSEED))
20628 if(lb(i1).eq.4) E(I1) = AP1
20637 *---------------------------------------------------------------------------
20638 * PURPOSE : CALCULATE THE MASS AND MOMENTUM OF K* RESONANCE
20639 * AFTER PION + KAON COLLISION
20640 *clin only here the K* mass may be different from aks=0.895
20641 SUBROUTINE KSRESO(I1,I2)
20642 PARAMETER (MAXSTR=150001,MAXR=1,
20643 1 AMN=0.939457,AMP=0.93828,
20644 2 AP1=0.13496,AP2=0.13957,AM0=1.232,PI=3.1415926)
20645 COMMON /AA/ R(3,MAXSTR)
20647 COMMON /BB/ P(3,MAXSTR)
20649 COMMON /CC/ E(MAXSTR)
20651 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20655 COMMON /PA/RPION(3,MAXSTR,MAXR)
20657 COMMON /PB/PPION(3,MAXSTR,MAXR)
20659 COMMON /PC/EPION(MAXSTR,MAXR)
20661 COMMON /PD/LPION(MAXSTR,MAXR)
20664 * 1. DETERMINE THE MOMENTUM COMPONENT OF THE K* IN THE CMS OF PI-K FRAME
20665 * WE LET I1 TO BE THE K* AND ABSORB I2
20666 E10=SQRT(E(I1)**2+P(1,I1)**2+P(2,I1)**2+P(3,I1)**2)
20667 E20=SQRT(E(I2)**2+P(1,I2)**2+P(2,I2)**2+P(3,I2)**2)
20668 IF(LB(I2) .EQ. 21 .OR. LB(I2) .EQ. 23) THEN
20675 if(LB(I).eq.23) then
20677 else if(LB(I).eq.21) then
20680 P(1,I)=P(1,I1)+P(1,I2)
20681 P(2,I)=P(2,I1)+P(2,I2)
20682 P(3,I)=P(3,I1)+P(3,I2)
20683 * 2. DETERMINE THE MASS OF K* BY USING THE REACTION KINEMATICS
20684 DM=SQRT((E10+E20)**2-P(1,I)**2-P(2,I)**2-P(3,I)**2)
20689 c--------------------------------------------------------
20690 *************************************
20692 SUBROUTINE pertur(PX,PY,PZ,SRT,IRUN,I1,I2,nt,kp,icont)
20694 * PURPOSE: TO PRODUCE CASCADE AND OMEGA PERTURBATIVELY *
20697 * -40 cascade-(bar)
20699 * -41 cascade0(bar)
20701 * -45 Omega baryon(bar)
20703 **********************************
20704 PARAMETER (MAXSTR=150001,MAXR=1,PI=3.1415926)
20705 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
20706 PARAMETER (AMN=0.939457,AMP=0.93828,AP1=0.13496,AP2=0.13957)
20707 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974,aks=0.895)
20708 PARAMETER (ACAS=1.3213,AOME=1.6724,AMRHO=0.769,AMOMGA=0.782)
20709 PARAMETER (AETA=0.548,ADIOMG=3.2288)
20710 parameter (maxx=20,maxz=24)
20711 COMMON /AA/ R(3,MAXSTR)
20713 COMMON /BB/ P(3,MAXSTR)
20715 COMMON /CC/ E(MAXSTR)
20717 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
20719 COMMON /HH/ PROPER(MAXSTR)
20721 common /ff/f(-mx:mx,-my:my,-mz:mz,-mpx:mpx,-mpy:mpy,-mpz:mpzp)
20723 common /gg/ dx,dy,dz,dpx,dpy,dpz
20725 COMMON /INPUT/ NSTAR,NDIRCT,DIR
20729 COMMON /PA/RPION(3,MAXSTR,MAXR)
20731 COMMON /PB/PPION(3,MAXSTR,MAXR)
20733 COMMON /PC/EPION(MAXSTR,MAXR)
20735 COMMON /PD/LPION(MAXSTR,MAXR)
20737 COMMON /PE/PROPI(MAXSTR,MAXR)
20739 COMMON /RR/ MASSR(0:MAXR)
20741 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
20743 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
20745 c perturbative method is disabled:
20746 c common /imulst/ iperts
20748 COMMON/RNDF77/NSEED
20750 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
20751 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
20752 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
20774 c !! flag for real 2-body process (1/0=no/yes)
20776 c !! flag for elastic scatt only (-1=no)
20779 * K-/K*0bar + La/Si --> cascade + pi
20780 * K+/K*0 + La/Si (bar) --> cascade-bar + pi
20781 if( (lb1.eq.21.or.lb1.eq.23.or.iabs(lb1).eq.30) .and.
20782 & (iabs(lb2).ge.14.and.iabs(lb2).le.17) )go to 60
20783 if( (lb2.eq.21.or.lb2.eq.23.or.iabs(lb2).eq.30) .and.
20784 & (iabs(lb1).ge.14.and.iabs(lb1).le.17) )go to 60
20785 * K-/K*0bar + cascade --> omega + pi
20786 * K+/K*0 + cascade-bar --> omega-bar + pi
20787 if( (lb1.eq.21.or.lb1.eq.23.or.iabs(lb1).eq.30) .and.
20788 & (iabs(lb2).eq.40.or.iabs(lb2).eq.41) )go to 70
20789 if( (lb2.eq.21.or.lb2.eq.23.or.iabs(lb2).eq.30) .and.
20790 & (iabs(lb1).eq.40.or.iabs(lb1).eq.41) )go to 70
20792 c annhilation of cascade,cascade-bar, omega,omega-bar
20794 * K- + La/Si <-- cascade + pi(eta,rho,omega)
20795 * K+ + La/Si(bar) <-- cascade-bar + pi(eta,rho,omega)
20796 if( (((lb1.ge.3.and.lb1.le.5).or.lb1.eq.0)
20797 & .and.(iabs(lb2).eq.40.or.iabs(lb2).eq.41))
20798 & .OR. (((lb2.ge.3.and.lb2.le.5).or.lb2.eq.0)
20799 & .and.(iabs(lb1).eq.40.or.iabs(lb1).eq.41)) )go to 90
20800 * K- + cascade <-- omega + pi
20801 * K+ + cascade-bar <-- omega-bar + pi
20802 c if( (lb1.eq.0.and.iabs(lb2).eq.45)
20803 c & .OR. (lb2.eq.0.and.iabs(lb1).eq.45) ) go to 110
20804 if( ((lb1.ge.3.and.lb1.le.5).and.iabs(lb2).eq.45)
20805 & .OR.((lb2.ge.3.and.lb2.le.5).and.iabs(lb1).eq.45) )go to 110
20808 c----------------------------------------------------
20809 * for process: K-bar + L(S) --> Ca + pi
20811 60 if(iabs(lb1).ge.14 .and. iabs(lb1).le.17)then
20821 if(srt .lt. (acas+app))return
20822 srrt = srt - (acas+app) + (amn+akap)
20823 pkaon = sqrt(((srrt**2-(amn**2+akap**2))/2./amn)**2 - akap**2)
20824 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
20825 clin pii & pff should be each divided by (4*srt**2),
20826 c but these two factors cancel out in the ratio pii/pff:
20827 pii = sqrt((srt**2-(amn+akap)**2)*(srt**2-(amn-akap)**2))
20828 pff = sqrt((srt**2-(asap+app)**2)*(srt**2-(asap-app)**2))
20829 cmat = sigca*pii/pff
20831 & sqrt((srt**2-(acas+app)**2)*(srt**2-(acas-app)**2))/
20832 & sqrt((srt**2-(asap+akap)**2)*(srt**2-(asap-akap)**2))
20835 if(srt .gt. (acas+aeta))then
20836 srrt = srt - (acas+aeta) + (amn+akap)
20837 pkaon = sqrt(((srrt**2-(amn**2+akap**2))/2./amn)**2 - akap**2)
20838 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
20839 cmat = sigca*pii/pff
20841 & sqrt((srt**2-(acas+aeta)**2)*(srt**2-(acas-aeta)**2))/
20842 & sqrt((srt**2-(asap+akap)**2)*(srt**2-(asap-akap)**2))
20845 sigca = sigpi + sigeta
20847 clin-2/25/03 disable the perturb option:
20848 c if(iperts .eq. 1) sigpe = 40. !! perturbative xsecn
20849 sig = amax1(sigpe,sigca)
20850 ds = sqrt(sig/31.4)
20852 ec = (em1+em2+0.02)**2
20853 call distce(i1,i2,dsr,ds,dt,ec,srt,ic,px,py,pz)
20854 if(ic .eq. -1)return
20857 c else particle production
20858 if( (lb1.ge.14.and.lb1.le.17) .or.
20859 & (lb2.ge.14.and.lb2.le.17) )then
20860 c !! cascade- or cascde0
20861 lbpp1 = 40 + int(2*RANART(NSEED))
20863 * elseif(lb1 .eq. -14 .or. lb2 .eq. -14)
20864 c !! cascade-bar- or cascde0 -bar
20865 lbpp1 = -40 - int(2*RANART(NSEED))
20868 if(RANART(NSEED) .lt. sigpi/sigca)then
20870 lbpp2 = 3 + int(3*RANART(NSEED))
20877 c* check real process of cascade(bar) and pion formation
20878 if(RANART(NSEED) .lt. brpp)then
20879 c !! real process flag
20883 c !! cascade formed with prob Gam
20887 c !! pion/eta formed with prob 1.
20890 c else only cascade(bar) formed perturbatively
20893 c----------------------------------------------------
20894 * for process: Cas(bar) + K_bar(K) --> Om(bar) + pi !! eta
20896 70 if(iabs(lb1).eq.40 .or. iabs(lb1).eq.41)then
20909 if(srt .lt. (aome+ames))return
20910 srrt = srt - (aome+ames) + (amn+akap)
20911 pkaon = sqrt(((srrt**2-(amn**2+akap**2))/2./amn)**2 - akap**2)
20912 c use K(bar) + Ca --> Om + eta xsecn same as K(bar) + N --> Si + Pi
20913 * as Omega have no resonances
20914 c** using same matrix elements as K-bar + N -> Si + pi
20915 sigomm = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
20917 & sqrt((srt**2-(amn+akap)**2)*(srt**2-(amn-akap)**2))/
20918 & sqrt((srt**2-(asa+app)**2)*(srt**2-(asa-app)**2))
20920 & sqrt((srt**2-(aome+ames)**2)*(srt**2-(aome-ames)**2))/
20921 & sqrt((srt**2-(acap+akap)**2)*(srt**2-(acap-akap)**2))
20923 clin-2/25/03 disable the perturb option:
20924 c if(iperts .eq. 1) sigpe = 40. !! perturbative xsecn
20925 sig = amax1(sigpe,sigom)
20926 ds = sqrt(sig/31.4)
20928 ec = (em1+em2+0.02)**2
20929 call distce(i1,i2,dsr,ds,dt,ec,srt,ic,px,py,pz)
20930 if(ic .eq. -1)return
20933 c else particle production
20934 if( (lb1.ge.40.and.lb1.le.41) .or.
20935 & (lb2.ge.40.and.lb2.le.41) )then
20939 * elseif(lb1 .eq. -40 .or. lb2 .eq. -40)
20946 lbpp2 = 3 + int(3*RANART(NSEED))
20949 c* check real process of omega(bar) and pion formation
20950 xrand=RANART(NSEED)
20951 if(xrand .lt. (proper(idp)*brpp))then
20952 c !! real process flag
20956 c !! P_Om = P_Cas*Gam
20957 proper(i1) = proper(idp)*brpp
20960 c !! pion formed with prob 1.
20962 elseif(xrand.lt.brpp) then
20963 c else omega(bar) formed perturbatively and cascade destroyed
20968 c-----------------------------------------------------------
20969 * for process: Ca + pi/eta --> K-bar + L(S)
20971 90 if(iabs(lb1).eq.40 .or. iabs(lb1).eq.41)then
20982 c akal = (aka+aks)/2. !! average of K and K* taken
20987 if(srt .le. (alas+aka))return
20988 srrt = srt - (acap+app) + (amn+aka)
20989 pkaon = sqrt(((srrt**2-(amn**2+aka**2))/2./amn)**2 - aka**2)
20990 c** using same matrix elements as K-bar + N -> La/Si + pi
20991 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
20993 & sqrt((srt**2-(amn+aka)**2)*(srt**2-(amn-aka)**2))/
20994 & sqrt((srt**2-(alas+0.138)**2)*(srt**2-(alas-0.138)**2))
20996 & sqrt((srt**2-(acap+app)**2)*(srt**2-(acap-app)**2))/
20997 & sqrt((srt**2-(alas+aka)**2)*(srt**2-(alas-aka)**2))
21001 if(lb(idn).eq.0)dfr = 1.
21002 sigcal = sigca*dfr*(srt**2-(alas+aka)**2)*
21003 & (srt**2-(alas-aka)**2)/(srt**2-(acap+app)**2)/
21004 & (srt**2-(acap-app)**2)
21007 if(srt .le. (alas+aka))then
21010 srrt = srt - (acap+app) + (amn+aka)
21011 pkaon = sqrt(((srrt**2-(amn**2+aka**2))/2./amn)**2 - aka**2)
21012 c use K(bar) + La/Si --> Ca + Pi xsecn same as K(bar) + N --> Si + Pi
21013 c** using same matrix elements as K-bar + N -> La/Si + pi
21014 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
21016 & sqrt((srt**2-(amn+aka)**2)*(srt**2-(amn-aka)**2))/
21017 & sqrt((srt**2-(alas+0.138)**2)*(srt**2-(alas-0.138)**2))
21019 & sqrt((srt**2-(acap+app)**2)*(srt**2-(acap-app)**2))/
21020 & sqrt((srt**2-(alas+aka)**2)*(srt**2-(alas-aka)**2))
21024 if(lb(idn).eq.0)dfr = 3.
21025 sigcas = sigca*dfr*(srt**2-(alas+aka)**2)*
21026 & (srt**2-(alas-aka)**2)/(srt**2-(acap+app)**2)/
21027 & (srt**2-(acap-app)**2)
21030 sig = sigcal + sigcas
21032 ds = sqrt(sig/31.4)
21034 ec = (em1+em2+0.02)**2
21035 call distce(i1,i2,dsr,ds,dt,ec,srt,ic,px,py,pz)
21037 clin-2/25/03: checking elastic scatt after failure of inelastic scatt gives
21038 c conditional probability (in general incorrect), tell Pal to correct:
21040 c check for elastic scatt, no particle annhilation
21041 c !! elastic cross section of 20 mb
21042 ds = sqrt(20.0/31.4)
21044 call distce(i1,i2,dsr,ds,dt,ec,srt,icsbel,px,py,pz)
21045 if(icsbel .eq. -1)return
21051 c else pert. produced cascade(bar) is annhilated OR real process
21053 * DECIDE LAMBDA OR SIGMA PRODUCTION
21055 IF(sigcal/sig .GT. RANART(NSEED))THEN
21056 if(lb1.eq.40.or.lb1.eq.41.or.lb2.eq.40.or.lb2.eq.41)then
21065 if(lb1.eq.40.or.lb1.eq.41.or.lb2.eq.40.or.lb2.eq.41)then
21067 lbpp2 = 15 + int(3 * RANART(NSEED))
21070 lbpp2 = -15 - int(3 * RANART(NSEED))
21077 c check for real process for L/S(bar) and K(bar) formation
21078 if(RANART(NSEED) .lt. proper(idp))then
21080 c !! real process flag
21084 c !! K(bar) formed with prob 1.
21088 c !! L/S(bar) formed with prob 1.
21092 c else only cascade(bar) annhilation & go out
21097 c----------------------------------------------------
21098 * for process: Om(bar) + pi --> Cas(bar) + K_bar(K)
21100 110 if(lb1 .eq. 45 .or. lb1 .eq. -45)then
21111 c akal = (aka+aks)/2. !! average of K and K* taken
21114 if(srt .le. (acas+aka))return
21115 srrt = srt - (aome+app) + (amn+aka)
21116 pkaon = sqrt(((srrt**2-(amn**2+aka**2))/2./amn)**2 - aka**2)
21117 c use K(bar) + Ca --> Om + eta xsecn same as K(bar) + N --> Si + Pi
21118 c** using same matrix elements as K-bar + N -> La/Si + pi
21119 sigca = 1.5*( akNPsg(pkaon)+akNPsg(pkaon) )
21121 & sqrt((srt**2-(amn+aka)**2)*(srt**2-(amn-aka)**2))/
21122 & sqrt((srt**2-(asa+0.138)**2)*(srt**2-(asa-0.138)**2))
21124 & sqrt((srt**2-(aomp+app)**2)*(srt**2-(aomp-app)**2))/
21125 & sqrt((srt**2-(acas+aka)**2)*(srt**2-(acas-aka)**2))
21129 sigom = sigom*dfr*(srt**2-(acas+aka)**2)*
21130 & (srt**2-(acas-aka)**2)/(srt**2-(aomp+app)**2)/
21131 & (srt**2-(aomp-app)**2)
21134 ds = sqrt(sigom/31.4)
21136 ec = (em1+em2+0.02)**2
21137 call distce(i1,i2,dsr,ds,dt,ec,srt,ic,px,py,pz)
21139 clin-2/25/03: checking elastic scatt after failure of inelastic scatt gives
21140 c conditional probability (in general incorrect), tell Pal to correct:
21142 c check for elastic scatt, no particle annhilation
21143 c !! elastic cross section of 20 mb
21144 ds = sqrt(20.0/31.4)
21146 call distce(i1,i2,dsr,ds,dt,ec,srt,icsbel,px,py,pz)
21147 if(icsbel .eq. -1)return
21153 c else pert. produced omega(bar) annhilated OR real process
21154 c annhilate only pert. omega, rest from hijing go out WITHOUT annhil.
21155 if(lb1.eq.45 .or. lb2.eq.45)then
21157 lbpp1 = 40 + int(2*RANART(NSEED))
21161 * elseif(lb1 .eq. -45 .or. lb2 .eq. -45)
21163 lbpp1 = -40 - int(2*RANART(NSEED))
21170 c check for real process for Cas(bar) and K(bar) formation
21171 if(RANART(NSEED) .lt. proper(idp))then
21172 c !! real process flag
21176 c !! P_Cas(bar) = P_Om(bar)
21177 proper(i1) = proper(idp)
21180 c !! K(bar) formed with prob 1.
21184 c else Cascade(bar) produced and Omega(bar) annhilated
21187 c !! for produced particles
21190 c-----------------------------------------------------------
21192 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
21193 * ENERGY CONSERVATION
21194 PR2 = (SRT**2 - EMpp1**2 - EMpp2**2)**2
21195 & - 4.0 * (EMpp1*EMpp2)**2
21196 IF(PR2.LE.0.)PR2=0.00000001
21197 PR=SQRT(PR2)/(2.*SRT)
21199 C1 = 1.0 - 2.0 * RANART(NSEED)
21200 T1 = 2.0 * PI * RANART(NSEED)
21201 S1 = SQRT( 1.0 - C1**2 )
21204 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
21209 CALL ROTATE(PX0,PY0,PZ0,PX,PY,PZ)
21210 if(icont .eq. 0)return
21212 * LORENTZ-TRANSFORMATION INTO CMS FRAME
21213 E1CM = SQRT (EMpp1**2 + PX**2 + PY**2 + PZ**2)
21214 P1BETA = PX*BETAX + PY*BETAY + PZ*BETAZ
21215 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) + E1CM )
21216 Ppt11 = BETAX * TRANSF + PX
21217 Ppt12 = BETAY * TRANSF + PY
21218 Ppt13 = BETAZ * TRANSF + PZ
21220 cc** for elastic scattering update the momentum of pertb particles
21221 if(icsbel .ne. -1)then
21222 c if(EMpp1 .gt. 0.9)then
21227 E2CM = SQRT (EMpp2**2 + PX**2 + PY**2 + PZ**2)
21228 TRANSF = GAMMA * ( -GAMMA * P1BETA / (GAMMA + 1) + E2CM )
21229 Ppt21 = BETAX * TRANSF - PX
21230 Ppt22 = BETAY * TRANSF - PY
21231 Ppt23 = BETAZ * TRANSF - PZ
21239 c2008 X01 = 1.0 - 2.0 * RANART(NSEED)
21240 c Y01 = 1.0 - 2.0 * RANART(NSEED)
21241 c Z01 = 1.0 - 2.0 * RANART(NSEED)
21242 c IF ((X01*X01+Y01*Y01+Z01*Z01) .GT. 1.0) GOTO 2008
21251 c if(lbpp1 .eq. 45)then
21252 c write(*,*)'II lb1,lb2,lbpp1,empp1,proper(idp),brpp'
21253 c write(*,*)lb1,lb2,lbpp1,empp1,proper(idp),brpp
21257 PROPI(NNN,IRUN)= proper(idp)*brpp
21258 LPION(NNN,IRUN)= lbpp1
21259 EPION(NNN,IRUN)= empp1
21260 RPION(1,NNN,IRUN)=Xpt
21261 RPION(2,NNN,IRUN)=Ypt
21262 RPION(3,NNN,IRUN)=Zpt
21263 PPION(1,NNN,IRUN)=Ppt11
21264 PPION(2,NNN,IRUN)=Ppt12
21265 PPION(3,NNN,IRUN)=Ppt13
21267 dppion(nnn,irun)=dpertp(i1)*dpertp(i2)
21270 **********************************
21272 SUBROUTINE Crhb(PX,PY,PZ,SRT,I1,I2,IBLOCK)
21274 * DEALING WITH hyperon+N(D,N*)->hyp+N(D,N*) elastic PROCESS *
21278 * PX,PY,PZ - MOMENTUM COORDINATES OF ONE PARTICLE IN CM FRAME*
21279 * SRT - SQRT OF S *
21280 * IBLOCK - THE INFORMATION BACK *
21281 * 144-> hyp+N(D,N*)->hyp+N(D,N*)
21282 **********************************
21283 PARAMETER (MAXSTR=150001,MAXR=1,AMN=0.939457,
21284 1 AMP=0.93828,AP1=0.13496,
21285 2 AP2=0.13957,AM0=1.232,PI=3.1415926,CUTOFF=1.8966,AVMASS=0.9383)
21286 PARAMETER (AKA=0.498,ALA=1.1157,ASA=1.1974)
21287 parameter (MX=4,MY=4,MZ=8,MPX=4,MPY=4,mpz=10,mpzp=10)
21288 COMMON /AA/ R(3,MAXSTR)
21290 COMMON /BB/ P(3,MAXSTR)
21292 COMMON /CC/ E(MAXSTR)
21294 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
21296 common/input1/ MASSPR,MASSTA,ISEED,IAVOID,DT
21298 COMMON/RNDF77/NSEED
21305 *-----------------------------------------------------------------------
21310 *-----------------------------------------------------------------------
21311 * CALCULATE THE MAGNITUDE OF THE FINAL MOMENTUM THROUGH
21312 * ENERGY CONSERVATION
21313 PR2 = (SRT**2 - EM1**2 - EM2**2)**2
21314 1 - 4.0 * (EM1*EM2)**2
21315 IF(PR2.LE.0.)PR2=1.e-09
21316 PR=SQRT(PR2)/(2.*SRT)
21317 C1 = 1.0 - 2.0 * RANART(NSEED)
21318 T1 = 2.0 * PI * RANART(NSEED)
21319 S1 = SQRT( 1.0 - C1**2 )
21327 ****************************************
21329 * Purpose: lambda-baryon elastic xsection as a functon of their cms energy
21330 subroutine lambar(i1,i2,srt,siglab)
21331 * srt = DSQRT(s) in GeV *
21332 * siglab = lambda-nuclar elastic cross section in mb
21333 * = 12 + 0.43/p_lab**3.3 (mb)
21335 * (2) Calculate p(lab) from srt [GeV], since the formular in the
21336 * reference applies only to the case of a p_bar on a proton at rest
21337 * Formula used: srt**2=2.*pmass*(pmass+sqrt(pmass**2+plab**2))
21338 *****************************
21339 PARAMETER (MAXSTR=150001)
21340 COMMON /AA/ R(3,MAXSTR)
21342 COMMON /BB/ P(3,MAXSTR)
21344 COMMON /CC/ E(MAXSTR)
21346 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
21351 if( iabs(lb(i1)).ge.14.and.iabs(lb(i1)).le.17 )then
21358 pthr = srt**2-eml**2-emb**2
21359 if(pthr .gt. 0.)then
21360 plab2=(pthr/2./emb)**2-eml**2
21363 siglab=12. + 0.43/(plab**3.3)
21364 if(siglab.gt.200.)siglab=200.
21369 C------------------------------------------------------------------
21370 clin-7/26/03 improve speed
21371 ***************************************
21372 SUBROUTINE distc0(drmax,deltr0,DT,
21373 1 Ifirst,PX1CM,PY1CM,PZ1CM,
21374 2 x1,y1,z1,px1,py1,pz1,em1,x2,y2,z2,px2,py2,pz2,em2)
21375 * PURPOSE : CHECK IF THE COLLISION BETWEEN TWO PARTICLES CAN HAPPEN
21377 * (2) IF PARTICLE WILL PASS EACH OTHER WITHIN
21378 * TWO HARD CORE RADIUS.
21379 * (3) IF PARTICLES WILL GET CLOSER.
21381 * Ifirst=1 COLLISION may HAPPENED
21382 * Ifirst=-1 COLLISION CAN NOT HAPPEN
21383 *****************************************
21384 COMMON /BG/ BETAX,BETAY,BETAZ,GAMMA
21389 E1=SQRT(EM1**2+PX1**2+PY1**2+PZ1**2)
21390 *NOW PARTICLES ARE CLOSE ENOUGH TO EACH OTHER !
21391 E2 = SQRT ( EM2**2 + PX2**2 + PY2**2 + PZ2**2 )
21392 *NOW THERE IS ENOUGH ENERGY AVAILABLE !
21393 *LORENTZ-TRANSFORMATION IN I1-I2-C.M. SYSTEM
21394 * BETAX, BETAY, BETAZ AND GAMMA HAVE BEEN GIVEN IN THE SUBROUTINE CMS
21395 *TRANSFORMATION OF MOMENTA (PX1CM = - PX2CM)
21396 P1BETA = PX1*BETAX + PY1*BETAY + PZ1 * BETAZ
21397 TRANSF = GAMMA * ( GAMMA * P1BETA / (GAMMA + 1) - E1 )
21398 PRCM = SQRT (PX1CM**2 + PY1CM**2 + PZ1CM**2)
21399 IF (PRCM .LE. 0.00001) return
21400 *TRANSFORMATION OF SPATIAL DISTANCE
21401 DRBETA = BETAX*(X1-X2) + BETAY*(Y1-Y2) + BETAZ*(Z1-Z2)
21402 TRANSF = GAMMA * GAMMA * DRBETA / (GAMMA + 1)
21403 DXCM = BETAX * TRANSF + X1 - X2
21404 DYCM = BETAY * TRANSF + Y1 - Y2
21405 DZCM = BETAZ * TRANSF + Z1 - Z2
21406 *DETERMINING IF THIS IS THE POINT OF CLOSEST APPROACH
21407 DRCM = SQRT (DXCM**2 + DYCM**2 + DZCM**2 )
21408 DZZ = (PX1CM*DXCM + PY1CM*DYCM + PZ1CM*DZCM) / PRCM
21409 if ((drcm**2 - dzz**2) .le. 0.) then
21412 BBB = SQRT (DRCM**2 - DZZ**2)
21414 *WILL PARTICLE PASS EACH OTHER WITHIN 2 * HARD CORE RADIUS ?
21415 IF (BBB .GT. drmax) return
21416 RELVEL = PRCM * (1.0/E1 + 1.0/E2)
21417 DDD = RELVEL * DT * 0.5
21418 *WILL PARTICLES GET CLOSER ?
21419 IF (ABS(DDD) .LT. ABS(DZZ)) return
21423 *---------------------------------------------------------------------------
21425 clin-8/2008 B+B->Deuteron+Meson cross section in mb:
21426 subroutine sbbdm(srt,sdprod,ianti,lbm,xmm,pfinal)
21427 PARAMETER (xmd=1.8756,AP1=0.13496,AP2=0.13957,
21428 1 xmrho=0.770,xmomega=0.782,xmeta=0.548,srt0=2.012)
21429 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
21430 1 px1n,py1n,pz1n,dp1n
21431 common /dpi/em2,lb2
21432 common /para8/ idpert,npertd,idxsec
21433 COMMON/RNDF77/NSEED
21441 if(srt.le.(em1+em2)) return
21445 ctest off check Xsec using fixed mass for resonances:
21446 c if(ilb1.ge.6.and.ilb1.le.9) then
21448 c elseif(ilb1.ge.10.and.ilb1.le.11) then
21450 c elseif(ilb1.ge.12.and.ilb1.le.13) then
21453 c if(ilb2.ge.6.and.ilb2.le.9) then
21455 c elseif(ilb2.ge.10.and.ilb2.le.11) then
21457 c elseif(ilb2.ge.12.and.ilb2.le.13) then
21462 pinitial=sqrt((s-(em1+em2)**2)*(s-(em1-em2)**2))/2./srt
21464 c Determine isospin and spin factors for the ratio between
21465 c BB->Deuteron+Meson and Deuteron+Meson->BB cross sections:
21466 if(idxsec.eq.1.or.idxsec.eq.2) then
21467 c Assume B+B -> d+Meson has the same cross sections as N+N -> d+pi:
21469 c Assume d+Meson -> B+B has the same cross sections as d+pi -> N+N,
21470 c then determine B+B -> d+Meson cross sections:
21471 if(ilb1.ge.1.and.ilb1.le.2.and.
21472 1 ilb2.ge.1.and.ilb2.le.2) then
21474 elseif((ilb1.ge.1.and.ilb1.le.2.and.
21475 1 ilb2.ge.6.and.ilb2.le.9).or.
21476 2 (ilb2.ge.1.and.ilb2.le.2.and.
21477 1 ilb1.ge.6.and.ilb1.le.9)) then
21479 elseif((ilb1.ge.1.and.ilb1.le.2.and.
21480 1 ilb2.ge.10.and.ilb2.le.13).or.
21481 2 (ilb2.ge.1.and.ilb2.le.2.and.
21482 1 ilb1.ge.10.and.ilb1.le.13)) then
21484 elseif(ilb1.ge.6.and.ilb1.le.9.and.
21485 1 ilb2.ge.6.and.ilb2.le.9) then
21487 elseif((ilb1.ge.6.and.ilb1.le.9.and.
21488 1 ilb2.ge.10.and.ilb2.le.13).or.
21489 2 (ilb2.ge.6.and.ilb2.le.9.and.
21490 1 ilb1.ge.10.and.ilb1.le.13)) then
21492 elseif((ilb1.ge.10.and.ilb1.le.11.and.
21493 1 ilb2.ge.10.and.ilb2.le.11).or.
21494 2 (ilb2.ge.12.and.ilb2.le.13.and.
21495 1 ilb1.ge.12.and.ilb1.le.13)) then
21497 elseif((ilb1.ge.10.and.ilb1.le.11.and.
21498 1 ilb2.ge.12.and.ilb2.le.13).or.
21499 2 (ilb2.ge.10.and.ilb2.le.11.and.
21500 1 ilb1.ge.12.and.ilb1.le.13)) then
21504 c d pi: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21505 * (1) FOR P+P->Deuteron+pi+:
21506 IF((ilb1*ilb2).EQ.1)THEN
21508 if(ianti.eq.1) lbm=3
21510 * (2)FOR N+N->Deuteron+pi-:
21511 ELSEIF(ilb1.EQ.2.AND.ilb2.EQ.2)THEN
21513 if(ianti.eq.1) lbm=5
21515 * (3)FOR N+P->Deuteron+pi0:
21516 ELSEIF((ilb1*ilb2).EQ.2)THEN
21520 c For baryon resonances, use isospin-averaged cross sections:
21521 lbm=3+int(3 * RANART(NSEED))
21529 if(srt.ge.(xmd+xmm)) then
21530 pfinal=sqrt((s-(xmd+xmm)**2)*(s-(xmd-xmm)**2))/2./srt
21531 if((ilb1.eq.1.and.ilb2.eq.1).or.
21532 1 (ilb1.eq.2.and.ilb2.eq.2)) then
21533 c for pp or nn initial states:
21534 sbbdpi=fs*pfinal/pinitial/4.
21535 elseif((ilb1.eq.1.and.ilb2.eq.2).or.
21536 1 (ilb1.eq.2.and.ilb2.eq.1)) then
21537 c factor of 1/2 for pn or np initial states:
21538 sbbdpi=fs*pfinal/pinitial/4./2.
21540 c for other BB initial states (spin- and isospin averaged):
21541 if(idxsec.eq.1) then
21542 c 1: assume the same |matrix element|**2 (after averaging over initial
21543 c spins and isospins) for B+B -> deuteron+meson at the same sqrt(s);
21544 sbbdpi=fs*pfinal/pinitial*3./16.
21545 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21546 threshold=amax1(xmd+xmm,em1+em2)
21547 snew=(srt-threshold+srt0)**2
21548 if(idxsec.eq.2) then
21549 c 2: assume the same |matrix element|**2 for B+B -> deuteron+meson
21550 c at the same sqrt(s)-threshold:
21551 sbbdpi=fnndpi(snew)*pfinal/pinitial*3./16.
21552 elseif(idxsec.eq.4) then
21553 c 4: assume the same |matrix element|**2 for B+B <- deuteron+meson
21554 c at the same sqrt(s)-threshold:
21555 sbbdpi=fnndpi(snew)*pfinal/pinitial/6.*pifactor
21557 elseif(idxsec.eq.3) then
21558 c 3: assume the same |matrix element|**2 for B+B <- deuteron+meson
21559 c at the same sqrt(s):
21560 sbbdpi=fs*pfinal/pinitial/6.*pifactor
21566 * d rho: DETERMINE THE CROSS SECTION TO THIS FINAL STATE:
21567 if(srt.gt.(xmd+xmrho)) then
21568 pfinal=sqrt((s-(xmd+xmrho)**2)*(s-(xmd-xmrho)**2))/2./srt
21569 if(idxsec.eq.1) then
21570 sbbdrho=fs*pfinal/pinitial*3./16.
21571 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21572 threshold=amax1(xmd+xmrho,em1+em2)
21573 snew=(srt-threshold+srt0)**2
21574 if(idxsec.eq.2) then
21575 sbbdrho=fnndpi(snew)*pfinal/pinitial*3./16.
21576 elseif(idxsec.eq.4) then
21577 c The spin- and isospin-averaged factor is 3-times larger for rho:
21578 sbbdrho=fnndpi(snew)*pfinal/pinitial/6.*(pifactor*3.)
21580 elseif(idxsec.eq.3) then
21581 sbbdrho=fs*pfinal/pinitial/6.*(pifactor*3.)
21585 * d omega: DETERMINE THE CROSS SECTION TO THIS FINAL STATE:
21586 if(srt.gt.(xmd+xmomega)) then
21587 pfinal=sqrt((s-(xmd+xmomega)**2)*(s-(xmd-xmomega)**2))/2./srt
21588 if(idxsec.eq.1) then
21589 sbbdomega=fs*pfinal/pinitial*3./16.
21590 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21591 threshold=amax1(xmd+xmomega,em1+em2)
21592 snew=(srt-threshold+srt0)**2
21593 if(idxsec.eq.2) then
21594 sbbdomega=fnndpi(snew)*pfinal/pinitial*3./16.
21595 elseif(idxsec.eq.4) then
21596 sbbdomega=fnndpi(snew)*pfinal/pinitial/6.*pifactor
21598 elseif(idxsec.eq.3) then
21599 sbbdomega=fs*pfinal/pinitial/6.*pifactor
21603 * d eta: DETERMINE THE CROSS SECTION TO THIS FINAL STATE:
21604 if(srt.gt.(xmd+xmeta)) then
21605 pfinal=sqrt((s-(xmd+xmeta)**2)*(s-(xmd-xmeta)**2))/2./srt
21606 if(idxsec.eq.1) then
21607 sbbdeta=fs*pfinal/pinitial*3./16.
21608 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21609 threshold=amax1(xmd+xmeta,em1+em2)
21610 snew=(srt-threshold+srt0)**2
21611 if(idxsec.eq.2) then
21612 sbbdeta=fnndpi(snew)*pfinal/pinitial*3./16.
21613 elseif(idxsec.eq.4) then
21614 sbbdeta=fnndpi(snew)*pfinal/pinitial/6.*(pifactor/3.)
21616 elseif(idxsec.eq.3) then
21617 sbbdeta=fs*pfinal/pinitial/6.*(pifactor/3.)
21621 sdprod=sbbdpi+sbbdrho+sbbdomega+sbbdeta
21623 c write(99,111) srt,sbbdpi,sbbdrho,sbbdomega,sbbdeta,sdprod
21624 c 111 format(6(f8.2,1x))
21626 if(sdprod.le.0) return
21628 c choose final state and assign masses here:
21630 if(x1.le.sbbdpi/sdprod) then
21631 c use the above-determined lbm and xmm.
21632 elseif(x1.le.(sbbdpi+sbbdrho)/sdprod) then
21633 lbm=25+int(3*RANART(NSEED))
21635 elseif(x1.le.(sbbdpi+sbbdrho+sbbdomega)/sdprod) then
21646 c Generate angular distribution of Deuteron in the CMS frame:
21647 subroutine bbdangle(pxd,pyd,pzd,nt,ipert1,ianti,idloop,pfinal,
21649 PARAMETER (PI=3.1415926)
21650 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
21651 1 px1n,py1n,pz1n,dp1n
21652 common /dpi/em2,lb2
21653 COMMON/RNDF77/NSEED
21654 common /para8/ idpert,npertd,idxsec
21655 COMMON /AREVT/ IAEVT, IARUN, MISS
21657 c take isotropic distribution for now:
21658 C1=1.0-2.0*RANART(NSEED)
21659 T1=2.0*PI*RANART(NSEED)
21663 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
21667 clin-5/2008 track the number of produced deuterons:
21668 if(idpert.eq.1.and.npertd.ge.1) then
21670 elseif(idpert.eq.2.and.npertd.ge.1) then
21671 dprob=1./float(npertd)
21673 c if(ianti.eq.0) then
21674 c if(idpert.eq.0.or.(idpert.eq.1.and.ipert1.eq.0).or.
21675 c 1 (idpert.eq.2.and.idloop.eq.(npertd+1))) then
21676 c write (91,*) lb1,' *',lb2,' ->d+',lbm,' (regular d prodn)
21677 c 1 @evt#',iaevt,' @nt=',nt
21678 c elseif((idpert.eq.1.or.idpert.eq.2).and.idloop.eq.npertd) then
21679 c write (91,*) lb1,' *',lb2,' ->d+',lbm,' (pert d prodn)
21680 c 1 @evt#',iaevt,' @nt=',nt,' @prob=',dprob
21683 c if(idpert.eq.0.or.(idpert.eq.1.and.ipert1.eq.0).or.
21684 c 1 (idpert.eq.2.and.idloop.eq.(npertd+1))) then
21685 c write (91,*) lb1,' *',lb2,' ->d+',lbm,' (regular dbar prodn)
21686 c 1 @evt#',iaevt,' @nt=',nt
21687 c elseif((idpert.eq.1.or.idpert.eq.2).and.idloop.eq.npertd) then
21688 c write (91,*) lb1,' *',lb2,' ->d+',lbm,' (pert dbar prodn)
21689 c 1 @evt#',iaevt,' @nt=',nt,' @prob=',dprob
21696 c Deuteron+Meson->B+B cross section (in mb)
21697 subroutine sdmbb(SRT,sdm,ianti)
21698 PARAMETER (AMN=0.939457,AMP=0.93828,
21699 1 AM0=1.232,AM1440=1.44,AM1535=1.535,srt0=2.012)
21700 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
21701 1 px1n,py1n,pz1n,dp1n
21702 common /dpi/em2,lb2
21703 common /dpifsl/lbnn1,lbnn2,lbnd1,lbnd2,lbns1,lbns2,lbnp1,lbnp2,
21704 1 lbdd1,lbdd2,lbds1,lbds2,lbdp1,lbdp2,lbss1,lbss2,
21705 2 lbsp1,lbsp2,lbpp1,lbpp2
21706 common /dpifsm/xmnn1,xmnn2,xmnd1,xmnd2,xmns1,xmns2,xmnp1,xmnp2,
21707 1 xmdd1,xmdd2,xmds1,xmds2,xmdp1,xmdp2,xmss1,xmss2,
21708 2 xmsp1,xmsp2,xmpp1,xmpp2
21709 common /dpisig/sdmel,sdmnn,sdmnd,sdmns,sdmnp,sdmdd,sdmds,sdmdp,
21710 1 sdmss,sdmsp,sdmpp
21711 common /para8/ idpert,npertd,idxsec
21712 COMMON/RNDF77/NSEED
21727 ctest off check Xsec using fixed mass for resonances:
21728 c if(lb1.ge.25.and.lb1.le.27) then
21730 c elseif(lb1.eq.28) then
21732 c elseif(lb1.eq.0) then
21735 c if(lb2.ge.25.and.lb2.le.27) then
21737 c elseif(lb2.eq.28) then
21739 c elseif(lb2.eq.0) then
21743 if(srt.le.(em1+em2)) return
21745 pinitial=sqrt((s-(em1+em2)**2)*(s-(em1-em2)**2))/2./srt
21747 c Determine isospin and spin factors for the ratio between
21748 c Deuteron+Meson->BB and BB->Deuteron+Meson cross sections:
21749 if(idxsec.eq.1.or.idxsec.eq.2) then
21750 c Assume B+B -> d+Meson has the same cross sections as N+N -> d+pi,
21751 c then determine d+Meson -> B+B cross sections:
21752 if((lb1.ge.3.and.lb1.le.5).or.
21753 1 (lb2.ge.3.and.lb2.le.5)) then
21755 elseif((lb1.ge.25.and.lb1.le.27).or.
21756 1 (lb2.ge.25.and.lb2.le.27)) then
21758 elseif(lb1.eq.28.or.lb2.eq.28) then
21760 elseif(lb1.eq.0.or.lb2.eq.0) then
21764 c Assume d+Meson -> B+B has the same cross sections as d+pi -> N+N:
21766 clin-9/2008 For elastic collisions:
21767 if(idxsec.eq.1.or.idxsec.eq.3) then
21768 c 1/3: assume the same |matrix element|**2 (after averaging over initial
21769 c spins and isospins) for d+Meson elastic at the same sqrt(s);
21771 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21772 c 2/4: assume the same |matrix element|**2 (after averaging over initial
21773 c spins and isospins) for d+Meson elastic at the same sqrt(s)-threshold:
21775 snew=(srt-threshold+srt0)**2
21779 * NN: DETERMINE THE CHARGE STATES OF PARTICLESIN THE FINAL STATE
21780 IF(((lb1.eq.5.or.lb2.eq.5.or.lb1.eq.27.or.lb2.eq.27)
21781 1 .and.ianti.eq.0).or.
21782 2 ((lb1.eq.3.or.lb2.eq.3.or.lb1.eq.25.or.lb2.eq.25)
21783 3 .and.ianti.eq.1))THEN
21784 * (1) FOR Deuteron+(pi+,rho+) -> P+P or DeuteronBar+(pi-,rho-)-> PBar+PBar:
21789 ELSEIF(lb1.eq.3.or.lb2.eq.3.or.lb1.eq.26.or.lb2.eq.26
21790 1 .or.lb1.eq.28.or.lb2.eq.28.or.lb1.eq.0.or.lb2.eq.0)THEN
21791 * (2) FOR Deuteron+(pi0,rho0,omega,eta) -> N+P
21792 * or DeuteronBar+(pi0,rho0,omega,eta) ->NBar+PBar:
21798 * (3) FOR Deuteron+(pi-,rho-) -> N+N or DeuteronBar+(pi+,rho+)-> NBar+NBar:
21804 if(srt.gt.(xmnn1+xmnn2)) then
21805 pfinal=sqrt((s-(xmnn1+xmnn2)**2)*(s-(xmnn1-xmnn2)**2))/2./srt
21806 if(idxsec.eq.1) then
21807 c 1: assume the same |matrix element|**2 (after averaging over initial
21808 c spins and isospins) for B+B -> deuteron+meson at the same sqrt(s);
21809 sdmnn=fs*pfinal/pinitial*3./16.*xnnfactor
21810 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21811 threshold=amax1(xmnn1+xmnn2,em1+em2)
21812 snew=(srt-threshold+srt0)**2
21813 if(idxsec.eq.2) then
21814 c 2: assume the same |matrix element|**2 for B+B -> deuteron+meson
21815 c at the same sqrt(s)-threshold:
21816 sdmnn=fnndpi(snew)*pfinal/pinitial*3./16.*xnnfactor
21817 elseif(idxsec.eq.4) then
21818 c 4: assume the same |matrix element|**2 for B+B <- deuteron+meson
21819 c at the same sqrt(s)-threshold:
21820 sdmnn=fnndpi(snew)*pfinal/pinitial/6.
21822 elseif(idxsec.eq.3) then
21823 c 3: assume the same |matrix element|**2 for B+B <- deuteron+meson
21824 c at the same sqrt(s):
21825 sdmnn=fs*pfinal/pinitial/6.
21829 * ND: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21830 lbnd1=1+int(2*RANART(NSEED))
21831 lbnd2=6+int(4*RANART(NSEED))
21832 if(lbnd1.eq.1) then
21834 elseif(lbnd1.eq.2) then
21838 if(srt.gt.(xmnd1+xmnd2)) then
21839 pfinal=sqrt((s-(xmnd1+xmnd2)**2)*(s-(xmnd1-xmnd2)**2))/2./srt
21840 if(idxsec.eq.1) then
21841 c The spin- and isospin-averaged factor is 8-times larger for ND:
21842 sdmnd=fs*pfinal/pinitial*3./16.*(xnnfactor*8.)
21843 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21844 threshold=amax1(xmnd1+xmnd2,em1+em2)
21845 snew=(srt-threshold+srt0)**2
21846 if(idxsec.eq.2) then
21847 sdmnd=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*8.)
21848 elseif(idxsec.eq.4) then
21849 sdmnd=fnndpi(snew)*pfinal/pinitial/6.
21851 elseif(idxsec.eq.3) then
21852 sdmnd=fs*pfinal/pinitial/6.
21856 * NS: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21857 lbns1=1+int(2*RANART(NSEED))
21858 lbns2=10+int(2*RANART(NSEED))
21859 if(lbns1.eq.1) then
21861 elseif(lbns1.eq.2) then
21865 if(srt.gt.(xmns1+xmns2)) then
21866 pfinal=sqrt((s-(xmns1+xmns2)**2)*(s-(xmns1-xmns2)**2))/2./srt
21867 if(idxsec.eq.1) then
21868 sdmns=fs*pfinal/pinitial*3./16.*(xnnfactor*2.)
21869 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21870 threshold=amax1(xmns1+xmns2,em1+em2)
21871 snew=(srt-threshold+srt0)**2
21872 if(idxsec.eq.2) then
21873 sdmns=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*2.)
21874 elseif(idxsec.eq.4) then
21875 sdmns=fnndpi(snew)*pfinal/pinitial/6.
21877 elseif(idxsec.eq.3) then
21878 sdmns=fs*pfinal/pinitial/6.
21882 * NP: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21883 lbnp1=1+int(2*RANART(NSEED))
21884 lbnp2=12+int(2*RANART(NSEED))
21885 if(lbnp1.eq.1) then
21887 elseif(lbnp1.eq.2) then
21891 if(srt.gt.(xmnp1+xmnp2)) then
21892 pfinal=sqrt((s-(xmnp1+xmnp2)**2)*(s-(xmnp1-xmnp2)**2))/2./srt
21893 if(idxsec.eq.1) then
21894 sdmnp=fs*pfinal/pinitial*3./16.*(xnnfactor*2.)
21895 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21896 threshold=amax1(xmnp1+xmnp2,em1+em2)
21897 snew=(srt-threshold+srt0)**2
21898 if(idxsec.eq.2) then
21899 sdmnp=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*2.)
21900 elseif(idxsec.eq.4) then
21901 sdmnp=fnndpi(snew)*pfinal/pinitial/6.
21903 elseif(idxsec.eq.3) then
21904 sdmnp=fs*pfinal/pinitial/6.
21908 * DD: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21909 lbdd1=6+int(4*RANART(NSEED))
21910 lbdd2=6+int(4*RANART(NSEED))
21913 if(srt.gt.(xmdd1+xmdd2)) then
21914 pfinal=sqrt((s-(xmdd1+xmdd2)**2)*(s-(xmdd1-xmdd2)**2))/2./srt
21915 if(idxsec.eq.1) then
21916 sdmdd=fs*pfinal/pinitial*3./16.*(xnnfactor*16.)
21917 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21918 threshold=amax1(xmdd1+xmdd2,em1+em2)
21919 snew=(srt-threshold+srt0)**2
21920 if(idxsec.eq.2) then
21921 sdmdd=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*16.)
21922 elseif(idxsec.eq.4) then
21923 sdmdd=fnndpi(snew)*pfinal/pinitial/6.
21925 elseif(idxsec.eq.3) then
21926 sdmdd=fs*pfinal/pinitial/6.
21930 * DS: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21931 lbds1=6+int(4*RANART(NSEED))
21932 lbds2=10+int(2*RANART(NSEED))
21935 if(srt.gt.(xmds1+xmds2)) then
21936 pfinal=sqrt((s-(xmds1+xmds2)**2)*(s-(xmds1-xmds2)**2))/2./srt
21937 if(idxsec.eq.1) then
21938 sdmds=fs*pfinal/pinitial*3./16.*(xnnfactor*8.)
21939 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21940 threshold=amax1(xmds1+xmds2,em1+em2)
21941 snew=(srt-threshold+srt0)**2
21942 if(idxsec.eq.2) then
21943 sdmds=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*8.)
21944 elseif(idxsec.eq.4) then
21945 sdmds=fnndpi(snew)*pfinal/pinitial/6.
21947 elseif(idxsec.eq.3) then
21948 sdmds=fs*pfinal/pinitial/6.
21952 * DP: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21953 lbdp1=6+int(4*RANART(NSEED))
21954 lbdp2=12+int(2*RANART(NSEED))
21957 if(srt.gt.(xmdp1+xmdp2)) then
21958 pfinal=sqrt((s-(xmdp1+xmdp2)**2)*(s-(xmdp1-xmdp2)**2))/2./srt
21959 if(idxsec.eq.1) then
21960 sdmdp=fs*pfinal/pinitial*3./16.*(xnnfactor*8.)
21961 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21962 threshold=amax1(xmdp1+xmdp2,em1+em2)
21963 snew=(srt-threshold+srt0)**2
21964 if(idxsec.eq.2) then
21965 sdmdp=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*8.)
21966 elseif(idxsec.eq.4) then
21967 sdmdp=fnndpi(snew)*pfinal/pinitial/6.
21969 elseif(idxsec.eq.3) then
21970 sdmdp=fs*pfinal/pinitial/6.
21974 * SS: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21975 lbss1=10+int(2*RANART(NSEED))
21976 lbss2=10+int(2*RANART(NSEED))
21979 if(srt.gt.(xmss1+xmss2)) then
21980 pfinal=sqrt((s-(xmss1+xmss2)**2)*(s-(xmss1-xmss2)**2))/2./srt
21981 if(idxsec.eq.1) then
21982 sdmss=fs*pfinal/pinitial*3./16.*xnnfactor
21983 elseif(idxsec.eq.2.or.idxsec.eq.4) then
21984 threshold=amax1(xmss1+xmss2,em1+em2)
21985 snew=(srt-threshold+srt0)**2
21986 if(idxsec.eq.2) then
21987 sdmss=fnndpi(snew)*pfinal/pinitial*3./16.*xnnfactor
21988 elseif(idxsec.eq.4) then
21989 sdmss=fnndpi(snew)*pfinal/pinitial/6.
21991 elseif(idxsec.eq.3) then
21992 sdmns=fs*pfinal/pinitial/6.
21996 * SP: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
21997 lbsp1=10+int(2*RANART(NSEED))
21998 lbsp2=12+int(2*RANART(NSEED))
22001 if(srt.gt.(xmsp1+xmsp2)) then
22002 pfinal=sqrt((s-(xmsp1+xmsp2)**2)*(s-(xmsp1-xmsp2)**2))/2./srt
22003 if(idxsec.eq.1) then
22004 sdmsp=fs*pfinal/pinitial*3./16.*(xnnfactor*2.)
22005 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22006 threshold=amax1(xmsp1+xmsp2,em1+em2)
22007 snew=(srt-threshold+srt0)**2
22008 if(idxsec.eq.2) then
22009 sdmsp=fnndpi(snew)*pfinal/pinitial*3./16.*(xnnfactor*2.)
22010 elseif(idxsec.eq.4) then
22011 sdmsp=fnndpi(snew)*pfinal/pinitial/6.
22013 elseif(idxsec.eq.3) then
22014 sdmsp=fs*pfinal/pinitial/6.
22018 * PP: DETERMINE THE CHARGE STATES OF PARTICLES IN THE FINAL STATE
22019 lbpp1=12+int(2*RANART(NSEED))
22020 lbpp2=12+int(2*RANART(NSEED))
22023 if(srt.gt.(xmpp1+xmpp2)) then
22024 pfinal=sqrt((s-(xmpp1+xmpp2)**2)*(s-(xmpp1-xmpp2)**2))/2./srt
22025 if(idxsec.eq.1) then
22026 sdmpp=fs*pfinal/pinitial*3./16.*xnnfactor
22027 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22028 threshold=amax1(xmpp1+xmpp2,em1+em2)
22029 snew=(srt-threshold+srt0)**2
22030 if(idxsec.eq.2) then
22031 sdmpp=fnndpi(snew)*pfinal/pinitial*3./16.*xnnfactor
22032 elseif(idxsec.eq.4) then
22033 sdmpp=fnndpi(snew)*pfinal/pinitial/6.
22035 elseif(idxsec.eq.3) then
22036 sdmpp=fs*pfinal/pinitial/6.
22040 sdm=sdmel+sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp
22041 1 +sdmss+sdmsp+sdmpp
22042 if(ianti.eq.1) then
22065 c write(98,100) srt,sdmnn,sdmnd,sdmns,sdmnp,sdmdd,sdmds,sdmdp,
22066 c 1 sdmss,sdmsp,sdmpp,sdm
22067 c 100 format(f5.2,11(1x,f5.1))
22072 clin-9/2008 Deuteron+Meson ->B+B and elastic collisions
22073 SUBROUTINE crdmbb(PX,PY,PZ,SRT,I1,I2,IBLOCK,
22074 1 NTAG,sig,NT,ianti)
22075 PARAMETER (MAXSTR=150001,MAXR=1)
22076 COMMON /AA/R(3,MAXSTR)
22077 COMMON /BB/ P(3,MAXSTR)
22078 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
22079 COMMON /CC/ E(MAXSTR)
22080 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
22081 COMMON /AREVT/ IAEVT, IARUN, MISS
22082 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22083 1 px1n,py1n,pz1n,dp1n
22084 common /dpi/em2,lb2
22085 common /para8/ idpert,npertd,idxsec
22086 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
22087 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
22088 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
22089 common /dpifsl/lbnn1,lbnn2,lbnd1,lbnd2,lbns1,lbns2,lbnp1,lbnp2,
22090 1 lbdd1,lbdd2,lbds1,lbds2,lbdp1,lbdp2,lbss1,lbss2,
22091 2 lbsp1,lbsp2,lbpp1,lbpp2
22092 common /dpifsm/xmnn1,xmnn2,xmnd1,xmnd2,xmns1,xmns2,xmnp1,xmnp2,
22093 1 xmdd1,xmdd2,xmds1,xmds2,xmdp1,xmdp2,xmss1,xmss2,
22094 2 xmsp1,xmsp2,xmpp1,xmpp2
22095 common /dpisig/sdmel,sdmnn,sdmnd,sdmns,sdmnp,sdmdd,sdmds,sdmdp,
22096 1 sdmss,sdmsp,sdmpp
22097 COMMON/RNDF77/NSEED
22099 *-----------------------------------------------------------------------
22105 if(sig.le.0) return
22107 if(iabs(lb1).eq.42) then
22116 cccc Elastic collision or destruction of perturbatively-produced deuterons:
22117 if((idpert.eq.1.or.idpert.eq.2).and.dpertp(ideut).ne.1.) then
22118 c choose reaction channels:
22120 if(x1.le.sdmel/sig)then
22121 c Elastic collisions:
22122 c if(ianti.eq.0) then
22123 c write(91,*) ' d+',lbm,' (pert d M elastic) @nt=',nt
22124 c 1 ,' @prob=',dpertp(ideut)
22126 c write(91,*) ' d+',lbm,' (pert dbar M elastic) @nt=',nt
22127 c 1 ,' @prob=',dpertp(ideut)
22129 pfinal=sqrt((s-(em1+em2)**2)*(s-(em1-em2)**2))/2./srt
22130 CALL dmelangle(pxn,pyn,pzn,pfinal)
22131 CALL ROTATE(PX,PY,PZ,Pxn,Pyn,Pzn)
22132 EdCM=SQRT(E(ideut)**2+Pxn**2+Pyn**2+Pzn**2)
22133 PdBETA=Pxn*BETAX+Pyn*BETAY+Pzn*BETAZ
22134 TRANSF=GAMMA*(GAMMA*PdBETA/(GAMMA+1.)+EdCM)
22135 Pt1d=BETAX*TRANSF+Pxn
22136 Pt2d=BETAY*TRANSF+Pyn
22137 Pt3d=BETAZ*TRANSF+Pzn
22147 c Change the position of the perturbative deuteron to that of
22148 c the meson to avoid consecutive collisions between them:
22149 R(1,ideut)=R(1,idm)
22150 R(2,ideut)=R(2,idm)
22151 R(3,ideut)=R(3,idm)
22153 c Destruction of deuterons:
22154 c if(ianti.eq.0) then
22155 c write(91,*) ' d+',lbm,' ->BB (pert d destrn) @nt=',nt
22156 c 1 ,' @prob=',dpertp(ideut)
22158 c write(91,*) ' d+',lbm,' ->BB (pert dbar destrn) @nt=',nt
22159 c 1 ,' @prob=',dpertp(ideut)
22167 cccc Destruction of regularly-produced deuterons:
22169 c choose final state and assign masses here:
22171 if(x1.le.sdmnn/sig)then
22176 elseif(x1.le.(sdmnn+sdmnd)/sig)then
22181 elseif(x1.le.(sdmnn+sdmnd+sdmns)/sig)then
22186 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp)/sig)then
22191 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd)/sig)then
22196 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds)/sig)then
22201 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp)/sig)then
22206 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp
22212 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp
22213 1 +sdmss+sdmsp)/sig)then
22218 elseif(x1.le.(sdmnn+sdmnd+sdmns+sdmnp+sdmdd+sdmds+sdmdp
22219 1 +sdmss+sdmsp+sdmpp)/sig)then
22225 c Elastic collision:
22238 pfinal=sqrt((s-(xmb1+xmb2)**2)*(s-(xmb1-xmb2)**2))/2./srt
22240 if(iblock.eq.502) then
22241 CALL dmangle(pxn,pyn,pzn,nt,ianti,pfinal,lbm)
22242 elseif(iblock.eq.504) then
22243 c if(ianti.eq.0) then
22244 c write (91,*) ' d+',lbm,' (regular d M elastic) @evt#',
22245 c 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22247 c write (91,*) ' d+',lbm,' (regular dbar M elastic) @evt#',
22248 c 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22250 CALL dmelangle(pxn,pyn,pzn,pfinal)
22252 print *, 'Wrong iblock number in crdmbb()'
22255 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
22256 c (This is not needed for isotropic distributions)
22257 CALL ROTATE(PX,PY,PZ,Pxn,Pyn,Pzn)
22258 * LORENTZ-TRANSFORMATION OF THE MOMENTUM OF PARTICLES IN THE FINAL STATE
22259 * FROM THE NUCLEUS-NUCLEUS CMS. FRAME INTO LAB FRAME:
22260 * For the 1st baryon:
22261 E1CM=SQRT(E(I1)**2+Pxn**2+Pyn**2+Pzn**2)
22262 P1BETA=Pxn*BETAX+Pyn*BETAY+Pzn*BETAZ
22263 TRANSF=GAMMA*(GAMMA*P1BETA/(GAMMA+1.)+E1CM)
22264 Pt1i1=BETAX*TRANSF+Pxn
22265 Pt2i1=BETAY*TRANSF+Pyn
22266 Pt3i1=BETAZ*TRANSF+Pzn
22271 * For the 2nd baryon:
22272 E2CM=SQRT(E(I2)**2+Pxn**2+Pyn**2+Pzn**2)
22273 P2BETA=-Pxn*BETAX-Pyn*BETAY-Pzn*BETAZ
22274 TRANSF=GAMMA*(GAMMA*P2BETA/(GAMMA+1.)+E2CM)
22275 Pt1I2=BETAX*TRANSF-Pxn
22276 Pt2I2=BETAY*TRANSF-Pyn
22277 Pt3I2=BETAZ*TRANSF-Pzn
22293 c Generate angular distribution of BB from d+meson in the CMS frame:
22294 subroutine dmangle(pxn,pyn,pzn,nt,ianti,pfinal,lbm)
22295 PARAMETER (PI=3.1415926)
22296 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22297 1 px1n,py1n,pz1n,dp1n
22298 common /dpi/em2,lb2
22299 COMMON /AREVT/ IAEVT, IARUN, MISS
22300 COMMON/RNDF77/NSEED
22302 c take isotropic distribution for now:
22303 C1=1.0-2.0*RANART(NSEED)
22304 T1=2.0*PI*RANART(NSEED)
22308 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
22312 clin-5/2008 track the number of regularly-destructed deuterons:
22313 c if(ianti.eq.0) then
22314 c write (91,*) ' d+',lbm,' ->BB (regular d destrn) @evt#',
22315 c 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22317 c write (91,*) ' d+',lbm,' ->BB (regular dbar destrn) @evt#',
22318 c 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22324 c Angular distribution of d+meson elastic collisions in the CMS frame:
22325 subroutine dmelangle(pxn,pyn,pzn,pfinal)
22326 PARAMETER (PI=3.1415926)
22327 COMMON/RNDF77/NSEED
22329 c take isotropic distribution for now:
22330 C1=1.0-2.0*RANART(NSEED)
22331 T1=2.0*PI*RANART(NSEED)
22335 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
22342 clin-9/2008 Deuteron+Baryon elastic cross section (in mb)
22343 subroutine sdbelastic(SRT,sdb)
22344 PARAMETER (srt0=2.012)
22345 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22346 1 px1n,py1n,pz1n,dp1n
22347 common /dpi/em2,lb2
22348 common /para8/ idpert,npertd,idxsec
22353 if(srt.le.(em1+em2)) return
22355 c For elastic collisions:
22356 if(idxsec.eq.1.or.idxsec.eq.3) then
22357 c 1/3: assume the same |matrix element|**2 (after averaging over initial
22358 c spins and isospins) for d+Baryon elastic at the same sqrt(s);
22360 elseif(idxsec.eq.2.or.idxsec.eq.4) then
22361 c 2/4: assume the same |matrix element|**2 (after averaging over initial
22362 c spins and isospins) for d+Baryon elastic at the same sqrt(s)-threshold:
22364 snew=(srt-threshold+srt0)**2
22370 clin-9/2008 Deuteron+Baryon elastic collisions
22371 SUBROUTINE crdbel(PX,PY,PZ,SRT,I1,I2,IBLOCK,
22372 1 NTAG,sig,NT,ianti)
22373 PARAMETER (MAXSTR=150001,MAXR=1)
22374 COMMON /AA/R(3,MAXSTR)
22375 COMMON /BB/ P(3,MAXSTR)
22376 COMMON /BG/BETAX,BETAY,BETAZ,GAMMA
22377 COMMON /CC/ E(MAXSTR)
22378 COMMON /EE/ ID(MAXSTR),LB(MAXSTR)
22379 COMMON /AREVT/ IAEVT, IARUN, MISS
22380 common/leadng/lb1,px1,py1,pz1,em1,e1,xfnl,yfnl,zfnl,tfnl,
22381 1 px1n,py1n,pz1n,dp1n
22382 common /dpi/em2,lb2
22383 common /para8/ idpert,npertd,idxsec
22384 COMMON /dpert/dpertt(MAXSTR,MAXR),dpertp(MAXSTR),dplast(MAXSTR),
22385 1 dpdcy(MAXSTR),dpdpi(MAXSTR,MAXR),dpt(MAXSTR, MAXR),
22386 2 dpp1(MAXSTR,MAXR),dppion(MAXSTR,MAXR)
22388 *-----------------------------------------------------------------------
22394 if(sig.le.0) return
22397 if(iabs(lb1).eq.42) then
22406 cccc Elastic collision of perturbatively-produced deuterons:
22407 if((idpert.eq.1.or.idpert.eq.2).and.dpertp(ideut).ne.1.) then
22408 c if(ianti.eq.0) then
22409 c write(91,*) ' d+',lbb,' (pert d B elastic) @nt=',nt
22410 c 1 ,' @prob=',dpertp(ideut),p(1,idb),p(2,idb)
22411 c 2 ,p(1,ideut),p(2,ideut)
22413 c write(91,*) ' d+',lbb,' (pert dbar Bbar elastic) @nt=',nt
22414 c 1 ,' @prob=',dpertp(ideut),p(1,idb),p(2,idb)
22415 c 2 ,p(1,ideut),p(2,ideut)
22417 pfinal=sqrt((s-(em1+em2)**2)*(s-(em1-em2)**2))/2./srt
22418 CALL dbelangle(pxn,pyn,pzn,pfinal)
22419 CALL ROTATE(PX,PY,PZ,Pxn,Pyn,Pzn)
22420 EdCM=SQRT(E(ideut)**2+Pxn**2+Pyn**2+Pzn**2)
22421 PdBETA=Pxn*BETAX+Pyn*BETAY+Pzn*BETAZ
22422 TRANSF=GAMMA*(GAMMA*PdBETA/(GAMMA+1.)+EdCM)
22423 Pt1d=BETAX*TRANSF+Pxn
22424 Pt2d=BETAY*TRANSF+Pyn
22425 Pt3d=BETAZ*TRANSF+Pzn
22434 c Change the position of the perturbative deuteron to that of
22435 c the baryon to avoid consecutive collisions between them:
22436 R(1,ideut)=R(1,idb)
22437 R(2,ideut)=R(2,idb)
22438 R(3,ideut)=R(3,idb)
22442 c Elastic collision of regularly-produced deuterons:
22443 c if(ianti.eq.0) then
22444 c write (91,*) ' d+',lbb,' (regular d B elastic) @evt#',
22445 c 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22447 c write (91,*) ' d+',lbb,' (regular dbar Bbar elastic) @evt#',
22448 c 1 iaevt,' @nt=',nt,' lb1,2=',lb1,lb2
22450 pfinal=sqrt((s-(em1+em2)**2)*(s-(em1-em2)**2))/2./srt
22451 CALL dbelangle(pxn,pyn,pzn,pfinal)
22452 * ROTATE THE MOMENTA OF PARTICLES IN THE CMS OF P1+P2
22453 c (This is not needed for isotropic distributions)
22454 CALL ROTATE(PX,PY,PZ,Pxn,Pyn,Pzn)
22455 * LORENTZ-TRANSFORMATION OF THE MOMENTUM OF PARTICLES IN THE FINAL STATE
22456 * FROM THE NUCLEUS-NUCLEUS CMS. FRAME INTO LAB FRAME:
22457 * For the 1st baryon:
22458 E1CM=SQRT(E(I1)**2+Pxn**2+Pyn**2+Pzn**2)
22459 P1BETA=Pxn*BETAX+Pyn*BETAY+Pzn*BETAZ
22460 TRANSF=GAMMA*(GAMMA*P1BETA/(GAMMA+1.)+E1CM)
22461 Pt1i1=BETAX*TRANSF+Pxn
22462 Pt2i1=BETAY*TRANSF+Pyn
22463 Pt3i1=BETAZ*TRANSF+Pzn
22468 * For the 2nd baryon:
22469 E2CM=SQRT(E(I2)**2+Pxn**2+Pyn**2+Pzn**2)
22470 P2BETA=-Pxn*BETAX-Pyn*BETAY-Pzn*BETAZ
22471 TRANSF=GAMMA*(GAMMA*P2BETA/(GAMMA+1.)+E2CM)
22472 Pt1I2=BETAX*TRANSF-Pxn
22473 Pt2I2=BETAY*TRANSF-Pyn
22474 Pt3I2=BETAZ*TRANSF-Pzn
22490 c Part of the cross section function of NN->Deuteron+Pi (in mb):
22492 parameter(srt0=2.012)
22493 if(s.le.srt0**2) then
22496 fnndpi=26.*exp(-(s-4.65)**2/0.1)+4.*exp(-(s-4.65)**2/2.)
22497 1 +0.28*exp(-(s-6.)**2/10.)
22502 c Angular distribution of d+baryon elastic collisions in the CMS frame:
22503 subroutine dbelangle(pxn,pyn,pzn,pfinal)
22504 PARAMETER (PI=3.1415926)
22505 COMMON/RNDF77/NSEED
22507 c take isotropic distribution for now:
22508 C1=1.0-2.0*RANART(NSEED)
22509 T1=2.0*PI*RANART(NSEED)
22513 * THE MOMENTUM IN THE CMS IN THE FINAL STATE
22520 c Cross section of Deuteron+Pi elastic (in mb):
22522 parameter(srt0=2.012)
22523 if(s.le.srt0**2) then
22526 fdpiel=63.*exp(-(s-4.67)**2/0.15)+15.*exp(-(s-6.25)**2/0.3)
22531 c Cross section of Deuteron+N elastic (in mb):
22533 parameter(srt0=2.012)
22534 if(s.le.srt0**2) then
22537 fdbel=2500.*exp(-(s-7.93)**2/0.003)
22538 1 +300.*exp(-(s-7.93)**2/0.1)+10.