C THIS FUNCTION IS TO CALCULATE THE NUCLEAR PROFILE FUNCTION C OF THE COLLIDERING SYSTEM (IN UNITS OF 1/mb) FUNCTION FLAP(X) REAL HIPR1, HINT1 COMMON/HIPARNT/HIPR1(100),IHPR2(50),HINT1(100),IHNT2(50) REAL BB, B1, PHI, Z1 COMMON/PACT_HIJING/BB,B1,PHI,Z1 EXTERNAL FGP1 B1=X FLAP=GAUSS2(FGP1,0.0,2.0*HIPR1(40),0.01) RETURN END C FUNCTION FLAP1(X) REAL BB, B1, PHI, Z1 COMMON/PACT_HIJING/BB,B1,PHI,Z1 R=SQRT(BB**2+X**2) FLAP1=WDSAX1(R) RETURN END C FUNCTION FLAP2(X) REAL BB, B1, PHI, Z1 COMMON/PACT_HIJING/BB,B1,PHI,Z1 R=SQRT(BB**2+X**2) FLAP2=WDSAX2(R) RETURN END C FUNCTION FGP1(X) REAL HIPR1, HINT1 COMMON/HIPARNT/HIPR1(100),IHPR2(50),HINT1(100),IHNT2(50) REAL BB, B1, PHI, Z1 COMMON/PACT_HIJING/BB,B1,PHI,Z1 EXTERNAL FGP2 PHI=X FGP1=2.0*GAUSS3(FGP2,0.0,HIPR1(34),0.01) RETURN END C FUNCTION FGP2(X) REAL HIPR1, HINT1 COMMON/HIPARNT/HIPR1(100),IHPR2(50),HINT1(100),IHNT2(50) REAL BB, B1, PHI, Z1 COMMON/PACT_HIJING/BB,B1,PHI,Z1 EXTERNAL FGP3 Z1=X FGP2=2.0*GAUSS4(FGP3,0.0,HIPR1(35),0.01) RETURN END C FUNCTION FGP3(X) REAL BB, B1, PHI, Z1 COMMON/PACT_HIJING/BB,B1,PHI,Z1 R1=SQRT(B1**2+Z1**2) R2=SQRT(BB**2+B1**2-2.0*B1*BB*COS(PHI)+X**2) FGP3=B1*WDSAX1(R1)*WDSAX2(R2) RETURN END C FUNCTION WDSAX1(X) REAL HIPR1, HINT1 COMMON/HIPARNT/HIPR1(100),IHPR2(50),HINT1(100),IHNT2(50) WDSAX1=HINT1(75)*(1.+HINT1(74)*(X/HINT1(72))**2)/ & (1+EXP((X-HINT1(72))/HINT1(73))) IF (HINT1(74).LT.0.) THEN IF (X.GE.HINT1(72)/SQRT(ABS(HINT1(74)))) WDSAX1=0. ENDIF RETURN END C FUNCTION WDSAX2(X) REAL HIPR1, HINT1 COMMON/HIPARNT/HIPR1(100),IHPR2(50),HINT1(100),IHNT2(50) WDSAX2=HINT1(79)*(1.+HINT1(78)*(X/HINT1(76))**2)/ & (1+EXP((X-HINT1(76))/HINT1(77))) IF (HINT1(78).LT.0.) THEN IF (X.GE.HINT1(76)/SQRT(ABS(HINT1(78)))) WDSAX2=0. ENDIF RETURN END C FUNCTION PROFILE(XB) REAL HIPR1, HINT1 COMMON/HIPARNT/HIPR1(100),IHPR2(50),HINT1(100),IHNT2(50) REAL BB, B1, PHI, Z1 COMMON/PACT_HIJING/BB,B1,PHI,Z1 SAVE EXTERNAL FLAP, FLAP1, FLAP2 C BB=XB PROFILE=1.0 IF(IHNT2(1).GT.1 .AND. IHNT2(3).GT.1) THEN PROFILE=float(IHNT2(1))*float(IHNT2(3))*0.1* & GAUSS1(FLAP,0.0,HIPR1(34),0.01) ELSE IF(IHNT2(1).EQ.1 .AND. IHNT2(3).GT.1) THEN PROFILE=0.2*float(IHNT2(3))* & GAUSS1(FLAP2,0.0,HIPR1(35),0.001) ELSE IF(IHNT2(1).GT.1 .AND. IHNT2(3).EQ.1) THEN PROFILE=0.2*float(IHNT2(1))* & GAUSS1(FLAP1,0.0,HIPR1(34),0.001) ENDIF RETURN END