Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:15:43

0001 C
0002 C
0003 C
0004 C
0005 C
0006         SUBROUTINE JETINI(JP,JT,I_TRIG)
0007 C*******Initialize PYTHIA for jet production**********************
0008 C       I_TRIG=0: for normal processes
0009 C       I_TRIG=1: for triggered processes
0010 C       JP: sequence number of the projectile
0011 C       JT: sequence number of the target
0012 C     For A+A collisions, one has to initilize pythia
0013 C     separately for each type of collisions, pp, pn,np and nn,
0014 C     or hp and hn for hA collisions. In this subroutine we use the following
0015 C     catalogue for different type of collisions:
0016 C     h+h: h+h (I_TYPE=1)
0017 C     h+A: h+p (I_TYPE=1), h+n (I_TYPE=2)
0018 C     A+h: p+h (I_TYPE=1), n+h (I_TYPE=2)
0019 C     A+A: p+p (I_TYPE=1), p+n (I_TYPE=2), n+p (I_TYPE=3), n+n (I_TYPE=4)
0020 C*****************************************************************
0021         CHARACTER BEAM*16,TARG*16
0022         DIMENSION XSEC0(8,0:200),COEF0(8,200,20),INI(8),
0023      &          MINT44(8),MINT45(8)
0024 
0025         SAVE XSEC0, COEF0, INI, MINT44, MINT45             ! Uzhi
0026 
0027         COMMON/HIJCRDN/YP(3,300),YT(3,300)
0028         SAVE  /HIJCRDN/
0029         COMMON/HIPARNT/HIPR1(100),IHPR2(50),HINT1(100),IHNT2(50)
0030         SAVE  /HIPARNT/
0031         COMMON/HISTRNG/NFP(300,15),PP(300,15),NFT(300,15),PT(300,15)
0032         SAVE  /HISTRNG/
0033         COMMON/HIPYINT/MINT4,MINT5,ATCO(200,20),ATXS(0:200)
0034         SAVE  /HIPYINT/
0035 C
0036         COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0037         SAVE  /LUDAT1/
0038         COMMON/LUDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5)    
0039         SAVE  /LUDAT3/
0040         COMMON/PYHISUBS/MSEL,MSUB(200),KFIN(2,-40:40),CKIN(200)
0041         SAVE  /PYHISUBS/
0042         COMMON/PYHIPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
0043         SAVE  /PYHIPARS/
0044         COMMON/PYHIINT1/MINT(400),VINT(400)
0045         SAVE  /PYHIINT1/
0046         COMMON/PYHIINT2/ISET(200),KFPR(200,2),COEF(200,20),ICOL(40,4,2)
0047         SAVE  /PYHIINT2/
0048         COMMON/PYHIINT5/NGEN(0:200,3),XSEC(0:200,3)
0049         SAVE  /PYHIINT5/
0050         DATA INI/8*0/I_LAST/-1/
0051 
0052         SAVE I_LAST                                       ! Uzhi
0053 
0054 C
0055         IHNT2(11)=JP
0056         IHNT2(12)=JT
0057         IF(IHNT2(5).NE.0 .AND. IHNT2(6).NE.0) THEN
0058            I_TYPE=1
0059         ELSE IF(IHNT2(5).NE.0 .AND. IHNT2(6).EQ.0) THEN
0060            I_TYPE=1
0061            IF(NFT(JT,4).EQ.2112) I_TYPE=2
0062         ELSE IF(IHNT2(5).EQ.0 .AND. IHNT2(6).NE.0) THEN
0063            I_TYPE=1
0064            IF(NFP(JP,4).EQ.2112) I_TYPE=2
0065         ELSE
0066            IF(NFP(JP,4).EQ.2212 .AND. NFT(JT,4).EQ.2212) THEN
0067               I_TYPE=1
0068            ELSE IF(NFP(JP,4).EQ.2212 .AND. NFT(JT,4).EQ.2112) THEN
0069               I_TYPE=2
0070            ELSE IF(NFP(JP,4).EQ.2112 .AND. NFT(JT,4).EQ.2212) THEN
0071               I_TYPE=3
0072            ELSE
0073               I_TYPE=4
0074            ENDIF
0075         ENDIF
0076 c
0077         IF(I_TRIG.NE.0) GO TO 160
0078         IF(I_TRIG.EQ.I_LAST) GO TO 150
0079         MSTP(2)=2
0080 c                       ********second order running alpha_strong
0081         MSTP(33)=1
0082         PARP(31)=HIPR1(17)
0083 C                       ********inclusion of K factor
0084         MSTP(51)=3
0085 C                       ********Duke-Owens set 1 structure functions
0086         MSTP(61)=1
0087 C                       ********INITIAL STATE RADIATION
0088         MSTP(71)=1
0089 C                       ********FINAL STATE RADIATION
0090         IF(IHPR2(2).EQ.0.OR.IHPR2(2).EQ.2) MSTP(61)=0
0091         IF(IHPR2(2).EQ.0.OR.IHPR2(2).EQ.1) MSTP(71)=0
0092 c
0093         MSTP(81)=0
0094 C                       ******** NO MULTIPLE INTERACTION
0095         MSTP(82)=1
0096 C                       *******STRUCTURE OF MUTLIPLE INTERACTION
0097         MSTP(111)=0
0098 C               ********frag off(have to be done by local call)
0099         IF(IHPR2(10).EQ.0) MSTP(122)=0
0100 C               ********No printout of initialization information
0101         PARP(81)=HIPR1(8)
0102         CKIN(5)=HIPR1(8)
0103         CKIN(3)=HIPR1(8)
0104         CKIN(4)=HIPR1(9)
0105         IF(HIPR1(9).LE.HIPR1(8)) CKIN(4)=-1.0
0106         CKIN(9)=-10.0
0107         CKIN(10)=10.0
0108         MSEL=0
0109         DO 100 ISUB=1,200
0110            MSUB(ISUB)=0
0111  100    CONTINUE
0112         MSUB(11)=1
0113         MSUB(12)=1
0114         MSUB(13)=1
0115         MSUB(28)=1
0116         MSUB(53)=1
0117         MSUB(68)=1
0118         MSUB(81)=1
0119         MSUB(82)=1
0120         DO 110 J=1,MIN(8,MDCY(21,3))
0121  110    MDME(MDCY(21,2)+J-1,1)=0
0122         ISEL=4
0123         IF(HINT1(1).GE.20.0 .and. IHPR2(18).EQ.1) ISEL=5
0124         MDME(MDCY(21,2)+ISEL-1,1)=1
0125 C                       ********QCD subprocesses
0126         MSUB(14)=1
0127         MSUB(18)=1
0128         MSUB(29)=1
0129 C                       ******* direct photon production
0130  150    IF(INI(I_TYPE).NE.0) GO TO 800
0131         GO TO 400
0132 C
0133 C       *****triggered subprocesses, jet, photon, heavy quark and DY
0134 C
0135  160    I_TYPE=4+I_TYPE
0136         IF(I_TRIG.EQ.I_LAST) GO TO 260
0137         PARP(81)=ABS(HIPR1(10))-0.25
0138         CKIN(5)=ABS(HIPR1(10))-0.25
0139         CKIN(3)=ABS(HIPR1(10))-0.25
0140         CKIN(4)=ABS(HIPR1(10))+0.25
0141         IF(HIPR1(10).LT.HIPR1(8)) CKIN(4)=-1.0
0142 c
0143         MSEL=0
0144         DO 101 ISUB=1,200
0145            MSUB(ISUB)=0
0146  101    CONTINUE
0147         IF(IHPR2(3).EQ.1) THEN
0148            MSUB(11)=1
0149            MSUB(12)=1
0150            MSUB(13)=1
0151            MSUB(28)=1
0152            MSUB(53)=1
0153            MSUB(68)=1
0154            MSUB(81)=1
0155            MSUB(82)=1
0156            MSUB(14)=1
0157            MSUB(18)=1
0158            MSUB(29)=1
0159            DO 102 J=1,MIN(8,MDCY(21,3))
0160  102       MDME(MDCY(21,2)+J-1,1)=0
0161            ISEL=4
0162            IF(HINT1(1).GE.20.0 .and. IHPR2(18).EQ.1) ISEL=5
0163            MDME(MDCY(21,2)+ISEL-1,1)=1
0164 C                       ********QCD subprocesses
0165         ELSE IF(IHPR2(3).EQ.2) THEN
0166            MSUB(14)=1
0167            MSUB(18)=1
0168            MSUB(29)=1
0169 C               ********Direct photon production
0170 c               q+qbar->g+gamma,q+qbar->gamma+gamma, q+g->q+gamma
0171         ELSE IF(IHPR2(3).EQ.3) THEN
0172            CKIN(3)=MAX(0.0,HIPR1(10))
0173            CKIN(5)=HIPR1(8)
0174            PARP(81)=HIPR1(8)
0175            MSUB(81)=1
0176            MSUB(82)=1
0177            DO 105 J=1,MIN(8,MDCY(21,3))
0178  105       MDME(MDCY(21,2)+J-1,1)=0
0179            ISEL=4
0180            IF(HINT1(1).GE.20.0 .and. IHPR2(18).EQ.1) ISEL=5
0181            MDME(MDCY(21,2)+ISEL-1,1)=1
0182 C             **********Heavy quark production
0183         ENDIF
0184 260     IF(INI(I_TYPE).NE.0) GO TO 800
0185 C
0186 C
0187 400     INI(I_TYPE)=1
0188         IF(IHPR2(10).EQ.0) MSTP(122)=0
0189         IF(NFP(JP,4).EQ.2212) THEN
0190                 BEAM='P'
0191         ELSE IF(NFP(JP,4).EQ.-2212) THEN
0192                 BEAM='P~'
0193         ELSE IF(NFP(JP,4).EQ.2112) THEN
0194                 BEAM='N'
0195         ELSE IF(NFP(JP,4).EQ.-2112) THEN
0196                 BEAM='N~'
0197         ELSE IF(NFP(JP,4).EQ.211) THEN
0198                 BEAM='PI+'
0199         ELSE IF(NFP(JP,4).EQ.-211) THEN
0200                 BEAM='PI-'
0201         ELSE IF(NFP(JP,4).EQ.321) THEN
0202                 BEAM='PI+'
0203         ELSE IF(NFP(JP,4).EQ.-321) THEN
0204                 BEAM='PI-'
0205         ELSE
0206                 WRITE(6,*) 'unavailable beam type', NFP(JP,4)
0207         ENDIF
0208         IF(NFT(JT,4).EQ.2212) THEN
0209                 TARG='P'
0210         ELSE IF(NFT(JT,4).EQ.-2212) THEN
0211                 TARG='P~'
0212         ELSE IF(NFT(JT,4).EQ.2112) THEN
0213                 TARG='N'
0214         ELSE IF(NFT(JT,4).EQ.-2112) THEN
0215                 TARG='N~'
0216         ELSE IF(NFT(JT,4).EQ.211) THEN
0217                 TARG='PI+'
0218         ELSE IF(NFT(JT,4).EQ.-211) THEN
0219                 TARG='PI-'
0220         ELSE IF(NFT(JT,4).EQ.321) THEN
0221                 TARG='PI+'
0222         ELSE IF(NFT(JT,4).EQ.-321) THEN
0223                 TARG='PI-'
0224         ELSE
0225                 WRITE(6,*) 'unavailable target type', NFT(JT,4)
0226         ENDIF
0227 C
0228         IHNT2(16)=1
0229 C       ******************indicate for initialization use when
0230 C                         structure functions are called in PYTHIA
0231 C
0232         CALL PYHIINIT('CMS',BEAM,TARG,HINT1(1))
0233         MINT4=MINT(44)
0234         MINT5=MINT(45)
0235         MINT44(I_TYPE)=MINT(44)
0236         MINT45(I_TYPE)=MINT(45)
0237         ATXS(0)=XSEC(0,1)
0238         XSEC0(I_TYPE,0)=XSEC(0,1)
0239         DO 500 I=1,200
0240                 ATXS(I)=XSEC(I,1)
0241                 XSEC0(I_TYPE,I)=XSEC(I,1)
0242                 DO 500 J=1,20
0243                         ATCO(I,J)=COEF(I,J)
0244                         COEF0(I_TYPE,I,J)=COEF(I,J)
0245 500     CONTINUE
0246 C
0247         IHNT2(16)=0
0248 C
0249         RETURN
0250 C               ********Store the initialization information for
0251 C                               late use
0252 C
0253 C
0254 800     MINT(44)=MINT44(I_TYPE)
0255         MINT(45)=MINT45(I_TYPE)
0256         MINT4=MINT(44)
0257         MINT5=MINT(45)
0258         XSEC(0,1)=XSEC0(I_TYPE,0)
0259         ATXS(0)=XSEC(0,1)
0260         DO 900 I=1,200
0261                 XSEC(I,1)=XSEC0(I_TYPE,I)
0262                 ATXS(I)=XSEC(I,1)
0263         DO 900 J=1,20
0264                 COEF(I,J)=COEF0(I_TYPE,I,J)
0265                 ATCO(I,J)=COEF(I,J)
0266 900     CONTINUE
0267         I_LAST=I_TRIG
0268         MINT(11)=NFP(JP,4)
0269         MINT(12)=NFT(JT,4)
0270         RETURN
0271         END