* $Id$ C********************************************************************* FUNCTION ULMASS_HIJING(KF) C...Purpose: to give the mass of a particle/parton. #include "ludat1_hijing.inc" #include "ludat2_hijing.inc" C...Reset variables. Compressed code. ULMASS_HIJING=0. KFA=IABS(KF) KC=LUCOMP_HIJING(KF) IF(KC.EQ.0) RETURN PARF(106)=PMAS(6,1) PARF(107)=PMAS(7,1) PARF(108)=PMAS(8,1) C...Guarantee use of constituent masses for internal checks. IF((MSTJ(93).EQ.1.OR.MSTJ(93).EQ.2).AND.KFA.LE.10) THEN ULMASS_HIJING=PARF(100+KFA) IF(MSTJ(93).EQ.2) ULMASS_HIJING=MAX(0.,ULMASS_HIJING-PARF(121)) C...Masses that can be read directly off table. ELSEIF(KFA.LE.100.OR.KC.LE.80.OR.KC.GT.100) THEN ULMASS_HIJING=PMAS(KC,1) C...Find constituent partons and their masses. ELSE KFLA=MOD(KFA/1000,10) KFLB=MOD(KFA/100,10) KFLC=MOD(KFA/10,10) KFLS=MOD(KFA,10) KFLR=MOD(KFA/10000,10) PMA=PARF(100+KFLA) PMB=PARF(100+KFLB) PMC=PARF(100+KFLC) C...Construct masses for various meson, diquark and baryon cases. IF(KFLA.EQ.0.AND.KFLR.EQ.0.AND.KFLS.LE.3) THEN IF(KFLS.EQ.1) PMSPL=-3./(PMB*PMC) IF(KFLS.GE.3) PMSPL=1./(PMB*PMC) ULMASS_HIJING=PARF(111)+PMB+PMC+PARF(113)*PARF(101)**2*PMSPL ELSEIF(KFLA.EQ.0) THEN KMUL=2 IF(KFLS.EQ.1) KMUL=3 IF(KFLR.EQ.2) KMUL=4 IF(KFLS.EQ.5) KMUL=5 ULMASS_HIJING=PARF(113+KMUL)+PMB+PMC ELSEIF(KFLC.EQ.0) THEN IF(KFLS.EQ.1) PMSPL=-3./(PMA*PMB) IF(KFLS.EQ.3) PMSPL=1./(PMA*PMB) ULMASS_HIJING=2.*PARF(112)/3.+PMA+PMB+PARF(114)*PARF(101)**2 $ *PMSPL IF(MSTJ(93).EQ.1) ULMASS_HIJING=PMA+PMB IF(MSTJ(93).EQ.2) ULMASS_HIJING=MAX(0.,ULMASS_HIJING-PARF(122) $ -2.*PARF(112)/3.) ELSE IF(KFLS.EQ.2.AND.KFLA.EQ.KFLB) THEN PMSPL=1./(PMA*PMB)-2./(PMA*PMC)-2./(PMB*PMC) ELSEIF(KFLS.EQ.2.AND.KFLB.GE.KFLC) THEN PMSPL=-2./(PMA*PMB)-2./(PMA*PMC)+1./(PMB*PMC) ELSEIF(KFLS.EQ.2) THEN PMSPL=-3./(PMB*PMC) ELSE PMSPL=1./(PMA*PMB)+1./(PMA*PMC)+1./(PMB*PMC) ENDIF ULMASS_HIJING=PARF(112)+PMA+PMB+PMC+PARF(114)*PARF(101)**2 $ *PMSPL ENDIF ENDIF C...Optional mass broadening according to truncated Breit-Wigner C...(either in m or in m^2). IF(MSTJ(24).GE.1.AND.PMAS(KC,2).GT.1E-4) THEN IF(MSTJ(24).EQ.1.OR.(MSTJ(24).EQ.2.AND.KFA.GT.100)) THEN ULMASS_HIJING=ULMASS_HIJING+0.5*PMAS(KC,2)*TAN((2. $ *RLU_HIJING(0)-1.)*ATAN(2.*PMAS(KC,3)/PMAS(KC,2))) ELSE PM0=ULMASS_HIJING PMLOW=ATAN((MAX(0.,PM0-PMAS(KC,3))**2-PM0**2)/ & (PM0*PMAS(KC,2))) PMUPP=ATAN((PM0+PMAS(KC,3))**2-PM0**2)/(PM0*PMAS(KC,2)) ULMASS_HIJING=SQRT(MAX(0.,PM0**2+PM0*PMAS(KC,2)*TAN(PMLOW+ & (PMUPP-PMLOW)*RLU_HIJING(0)))) ENDIF ENDIF MSTJ(93)=0 RETURN END