WRITE(MSTU(11),5100)
CALL PYSTOP(1)
ENDIF
-
+
+ DO 2 I = 1, 4000
+ DO 1 J = 1, 5
+ V(I,J) = 0.
+ 1 ENDDO
+ 2 ENDDO
C...Initial values for some counters.
MSTU(1)=0
MSTU(2)=0
C... Evolve massive quark creation separately.
MCRQQ=0
IF (MQMASS.NE.0) THEN
- PT2CR=(RMQ2+VINT(18))*(RML**(TPM/(TPL*PYR(0)**(-TML/WN)-TPM)))
- & -VINT(18)
+ if (WN .eq. 0.) THEN
+ ARG = -1.
+ ELSE
+ ARG = TPM/(TPL*PYR(0)**(-TML/WN)-TPM)
+ ENDIF
+ PT2CR=(RMQ2+VINT(18))*(RML**ARG)-VINT(18)
C... Ensure mininimum PT2CR and force creation near threshold.
IF (PT2CR.LT.TMIN*RMQ2) THEN
NTHRES=NTHRES+1
DO 850 I=IC1+1,IC2-1
IF((K(I,1).EQ.1.OR.K(I,1).EQ.2).AND.
& KCHG(PYCOMP(K(I,2)),2).NE.0) THEN
- FRAC1=FOUR(IC2,I)/(FOUR(IC1,I)+FOUR(IC2,I))
+ IF (ABS(FOUR(IC1,I)+FOUR(IC2,I)).GT.0.D0) THEN
+ FRAC1=FOUR(IC2,I)/(FOUR(IC1,I)+FOUR(IC2,I))
+ ELSE
+ FRAC1 = 1.D0
+ ENDIF
DO 840 J=1,4
P(N+2,J)=P(N+2,J)+FRAC1*P(I,J)
840 CONTINUE
ALPHA=1D0
BETA=1D0
ELSE
- ALPHA=FOUR(NSAV+1,I2)/FOUR(I1,I2)
- BETA=FOUR(NSAV+1,I1)/FOUR(I1,I2)
+ IF (ABS(FOUR(I1,I2)).GT.0.D0) THEN
+ ALPHA=FOUR(NSAV+1,I2)/FOUR(I1,I2)
+ BETA=FOUR(NSAV+1,I1)/FOUR(I1,I2)
+ ELSE
+ ALPHA=1D0
+ BETA=1D0
+ ENDIF
ENDIF
DO 1030 J=1,4
PG(J)=ALPHA*P(I1,J)+BETA*P(I2,J)
KF=ISIGN(1000*KFLD+100*KFLE+10*KFLF+KFLS,KFL1)
IF(KSIG.EQ.0) KF=ISIGN(1000*KFLD+100*KFLF+10*KFLE+KFLS,KFL1)
ENDIF
+C -------------------------------------------------------------------------
+C Extracted from a private e-mail exchange with Torbjorn Sjostrand
+C
+C No, Lambda(1520) is not included and not foreseen.
+C So if you want it in Pythia, it would have to be a hack.
+C What you could do is:
+C 1) In PYKFDI, just before the RETURN above label 140, you could check if
+C a Lambda, Sigma0 or Sigma*0 has been produced, and with some small
+C probability switch such a particle to the Lambda(1520) code. That is,
+C if KF = 3122, 3212, or 3214 and a random number below some number, switch
+C to KF = 3124. (And correspondingly for anticparticles.)
+C 2) Use the PYUPDA routine (see manual) to include particle and decay data
+C for the Lambda(1520).
+C -------------------------------------------------------------------------
+
+ IF (IABS(KF).EQ.3122) THEN
+C Converting a fraction (0.20) of Lambda0 to Lambda(1520) + c.c.
+C This fraction is based on the experimental measurement at ISR
+C Bobbink 83, NP B217,11 (1983)
+C The region 0.5 < XF < 1.0 has been extrapolated to XF=0
+ IF(PYR(0).LE.0.20) KF=ISIGN(3124,KF)
+ ENDIF
+
+ IF(IABS(KF).EQ.3212) THEN
+C Converting a fraction (0.20) of Sigma0 to Lambda(1520) + c.c.
+C We suppose the same fraction as for Lambda0
+ IF(PYR(0).LE.0.20) KF=ISIGN(3124,KF)
+ ENDIF
+
+ IF (IABS(KF).EQ.3214) THEN
+C Converting a fraction (0.30) of Sigma0(1385) to Lambda(1520) + c.c.
+C This is conservative extimate supposing that the ratio
+C scales as (M_Sigma1385/M_Lambda0)^2 ~ 1.5
+ IF(PYR(0).LE.0.30) KF=ISIGN(3124,KF)
+ ENDIF
RETURN
C...Use tabulated probabilities to select new flavour and hadron.
END
C*********************************************************************
-
+
+c Dummy routine commented out:
+c A reweighting routine for AliRoot is implemented in pyevwt.f
+c
C...PYEVWT
C...Dummy routine, which the user can replace in order to multiply the
C...standard PYTHIA differential cross-section by a process- and
C...MSTP(142)=2 it corresponds to a modification of the underlying
C...physics.
- SUBROUTINE PYEVWT(WTXS)
+c SUBROUTINE PYEVWT(WTXS)
C...Double precision and integer declarations.
- IMPLICIT DOUBLE PRECISION(A-H, O-Z)
- IMPLICIT INTEGER(I-N)
- INTEGER PYK,PYCHGE,PYCOMP
+c IMPLICIT DOUBLE PRECISION(A-H, O-Z)
+c IMPLICIT INTEGER(I-N)
+c INTEGER PYK,PYCHGE,PYCOMP
C...Commonblocks.
- COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
- COMMON/PYINT1/MINT(400),VINT(400)
- COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
- SAVE /PYDAT1/,/PYINT1/,/PYINT2/
+c COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
+c COMMON/PYINT1/MINT(400),VINT(400)
+c COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2)
+c SAVE /PYDAT1/,/PYINT1/,/PYINT2/
C...Set default weight for WTXS.
- WTXS=1D0
+c WTXS=1D0
C...Read out subprocess number.
- ISUB=MINT(1)
- ISTSB=ISET(ISUB)
+c ISUB=MINT(1)
+c ISTSB=ISET(ISUB)
C...Read out tau, y*, cos(theta), tau' (where defined, else =0).
- TAU=VINT(21)
- YST=VINT(22)
- CTH=0D0
- IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) CTH=VINT(23)
- TAUP=0D0
- IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUP=VINT(26)
+c TAU=VINT(21)
+c YST=VINT(22)
+c CTH=0D0
+c IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) CTH=VINT(23)
+c TAUP=0D0
+c IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUP=VINT(26)
C...Read out x_1, x_2, x_F, shat, that, uhat, p_T^2.
- X1=VINT(41)
- X2=VINT(42)
- XF=X1-X2
- SHAT=VINT(44)
- THAT=VINT(45)
- UHAT=VINT(46)
- PT2=VINT(48)
+c X1=VINT(41)
+c X2=VINT(42)
+c XF=X1-X2
+c SHAT=VINT(44)
+c THAT=VINT(45)
+c UHAT=VINT(46)
+c PT2=VINT(48)
C...Modifications by user to be put here.
C...Stop program if this routine is ever called.
C...You should not copy these lines to your own routine.
- WRITE(MSTU(11),5000)
- CALL PYSTOP(4)
+c WRITE(MSTU(11),5000)
+c CALL PYSTOP(4)
C...Format for error printout.
- 5000 FORMAT(1X,'Error: you did not link your PYEVWT routine ',
- &'correctly.'/1X,'Dummy routine in PYTHIA file called instead.'/
- &1X,'Execution stopped!')
+c 5000 FORMAT(1X,'Error: you did not link your PYEVWT routine ',
+c &'correctly.'/1X,'Dummy routine in PYTHIA file called instead.'/
+c &1X,'Execution stopped!')
- RETURN
- END
+c RETURN
+c END
C*********************************************************************
> XMIN,XMAX,Q2MIN,Q2MAX)
IF (MSTP(194) .EQ. 0) THEN
CALL SETLHAPARM("EKS98")
- ELSE
+ ELSE IF (MSTP(194) .EQ. 9) THEN
+ CALL SETLHAPARM("EPS09LO")
+ ELSE IF (MSTP(194) .EQ. 19) THEN
+ CALL SETLHAPARM("EPS09NLO")
+ ELSE IF (MSTP(194) .EQ. 8) THEN
CALL SETLHAPARM("EPS08")
+ ELSE
+ CALL SETLHAPARM("EPS09LO")
ENDIF
ELSE
write(6,*) "-> pdfset"
COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
COMMON/PYINT1/MINT(400),VINT(400)
C write(6,*) "structm_alice->"
- IF (MSTP(192) .GT. 0 .AND. MSTP(193) .GT. 0) THEN
- A=MSTP(191+MINT(124))
-C write(6,*) mint(124), "-> structa ", A
+ A=MSTP(191+MINT(124))
+ IF (A .GT. 1) THEN
CALL STRUCTA(XX,QQ,A,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL)
ELSE
-C write(6,*) mint(124), "-> structm "
CALL STRUCTM(XX,QQ,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL)
ENDIF
END