* $Id$ C C C SUBROUTINE HIJHRD(JP,JT,JOUT,JFLG,IOPJET0) C C IOPTJET=1, ALL JET WILL FORM SINGLE STRING SYSTEM C 0, ONLY Q-QBAR JET FORM SINGLE STRING SYSTEM C*******Perform jets production and fragmentation when JP JT ******* C scatter. JOUT-> number of hard scatterings precede this one * C for the the same pair(JP,JT). JFLG->a flag to show whether * C jets can be produced (with valence quark=1,gluon=2, q-qbar=3)* C or not(0). Information of jets are in COMMON/ATTJET and * C /MINJET. ABS(NFP(JP,6)) is the total number jets produced by * C JP. If NFP(JP,6)<0 JP can not produce jet anymore. * C******************************************************************* DIMENSION IP(100,2),IPQ(50),IPB(50),IT(100,2),ITQ(50),ITB(50) #define BLANKET_SAVE #include "hijcrdn.inc" #include "hiparnt.inc" #include "hijdat.inc" #include "histrng.inc" #include "hijjet1.inc" #include "hijjet2.inc" #include "hijjet4.inc" C************************************ HIJING common block #include "lujets_hijing.inc" #include "ludat1_hijing.inc" #include "pysubs_hijing.inc" #include "pypars_hijing.inc" #include "pyint1_hijing.inc" #include "pyint2_hijing.inc" #include "pyint5_hijing.inc" #include "hipyint.inc" SAVE C*********************************** LU common block MXJT=500 C SIZE OF COMMON BLOCK FOR # OF PARTON PER STRING MXSG=900 C SIZE OF COMMON BLOCK FOR # OF SINGLE STRINGS MXSJ=100 C SIZE OF COMMON BLOCK FOR # OF PARTON PER SINGLE C STRING JFLG=0 IHNT2(11)=JP IHNT2(12)=JT C IOPJET=IOPJET0 IF(IOPJET.EQ.1.AND.(NFP(JP,6).NE.0.OR.NFT(JT,6).NE.0)) & IOPJET=0 IF(JP.GT.IHNT2(1) .OR. JT.GT.IHNT2(3)) RETURN IF(NFP(JP,6).LT.0 .OR. NFT(JT,6).LT.0) RETURN C ******** JP or JT can not produce jet anymore C IF(JOUT.EQ.0) THEN EPP=PP(JP,4)+PP(JP,3) EPM=PP(JP,4)-PP(JP,3) ETP=PT(JT,4)+PT(JT,3) ETM=PT(JT,4)-PT(JT,3) IF(EPP.LT.0.0) GO TO 1000 IF(EPM.LT.0.0) GO TO 1000 IF(ETP.LT.0.0) GO TO 1000 IF(ETM.LT.0.0) GO TO 1000 IF(EPP/(EPM+0.01).LE.ETP/(ETM+0.01)) RETURN ENDIF C ********for the first hard scattering of (JP,JT) C have collision only when Ycm(JP)>Ycm(JT) ECUT1=HIPR1(1)+HIPR1(8)+PP(JP,14)+PP(JP,15) ECUT2=HIPR1(1)+HIPR1(8)+PT(JT,14)+PT(JT,15) IF(PP(JP,4).LE.ECUT1) THEN NFP(JP,6)=-ABS(NFP(JP,6)) RETURN ENDIF IF(PT(JT,4).LE.ECUT2) THEN NFT(JT,6)=-ABS(NFT(JT,6)) RETURN ENDIF C *********must have enough energy to produce jets MISS=0 MISP=0 MIST=0 C IF(NFP(JP,10).EQ.0 .AND. NFT(JT,10).EQ.0) THEN MINT(44)=MINT4 MINT(45)=MINT5 XSEC(0,1)=ATXS(0) XSEC(11,1)=ATXS(11) XSEC(12,1)=ATXS(12) XSEC(28,1)=ATXS(28) DO 120 I=1,20 COEF(11,I)=ATCO(11,I) COEF(12,I)=ATCO(12,I) COEF(28,I)=ATCO(28,I) 120 CONTINUE ELSE ISUB11=0 ISUB12=0 ISUB28=0 IF(XSEC(11,1).NE.0) ISUB11=1 IF(XSEC(12,1).NE.0) ISUB12=1 IF(XSEC(28,1).NE.0) ISUB28=1 MINT(44)=MINT4-ISUB11-ISUB12-ISUB28 MINT(45)=MINT5-ISUB11-ISUB12-ISUB28 XSEC(0,1)=ATXS(0)-ATXS(11)-ATXS(12)-ATXS(28) XSEC(11,1)=0.0 XSEC(12,1)=0.0 XSEC(28,1)=0.0 DO 110 I=1,20 COEF(11,I)=0.0 COEF(12,I)=0.0 COEF(28,I)=0.0 110 CONTINUE ENDIF C ********Scatter the valence quarks only once per NN C collision, C afterwards only gluon can have hard scattering. 155 CALL PYTHIA_HIJING JJ=MINT(31) IF(JJ.NE.1) GO TO 155 C *********one hard collision at a time IF(K(7,2).EQ.-K(8,2)) THEN QMASS2=(P(7,4)+P(8,4))**2-(P(7,1)+P(8,1))**2 & -(P(7,2)+P(8,2))**2-(P(7,3)+P(8,3))**2 QM=ULMASS_HIJING(K(7,2)) IF(QMASS2.LT.(2.0*QM+HIPR1(1))**2) GO TO 155 ENDIF C ********q-qbar jets must has minimum mass HIPR1(1) PXP=PP(JP,1)-P(3,1) PYP=PP(JP,2)-P(3,2) PZP=PP(JP,3)-P(3,3) PEP=PP(JP,4)-P(3,4) PXT=PT(JT,1)-P(4,1) PYT=PT(JT,2)-P(4,2) PZT=PT(JT,3)-P(4,3) PET=PT(JT,4)-P(4,4) IF(PEP.LE.ECUT1) THEN MISP=MISP+1 IF(MISP.LT.50) GO TO 155 NFP(JP,6)=-ABS(NFP(JP,6)) RETURN ENDIF IF(PET.LE.ECUT2) THEN MIST=MIST+1 IF(MIST.LT.50) GO TO 155 NFT(JT,6)=-ABS(NFT(JT,6)) RETURN ENDIF C ******** if the remain energy