]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA/pythia/pyi3au.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / PYTHIA / pythia / pyi3au.F
1  
2 C***********************************************************************
3  
4       SUBROUTINE PYI3AU(EPS,RAT,Y3RE,Y3IM)
5  
6 C...Calculates real and imaginary parts of the auxiliary function I3;
7 C...see R. K. Ellis, I. Hinchliffe, M. Soldate and J. J. van der Bij,
8 C...Nucl. Phys. B297 (1988) 221.
9       COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
10       SAVE /LUDAT1/
11  
12       BE=0.5*(1.+SQRT(1.+RAT*EPS))
13       IF(EPS.LT.1.) GA=0.5*(1.+SQRT(1.-EPS))
14  
15       IF(EPS.LT.0.) THEN
16         IF(ABS(EPS).LT.1.E-4.AND.ABS(RAT*EPS).LT.1.E-4) THEN
17           F3RE=PYSPEN(-0.25*EPS/(1.+0.25*(RAT-1.)*EPS),0.,1)-
18      &    PYSPEN((1.-0.25*EPS)/(1.+0.25*(RAT-1.)*EPS),0.,1)+
19      &    PYSPEN(0.25*(RAT+1.)*EPS/(1.+0.25*RAT*EPS),0.,1)-
20      &    PYSPEN((RAT+1.)/RAT,0.,1)+0.5*(LOG(1.+0.25*RAT*EPS)**2-
21      &    LOG(0.25*RAT*EPS)**2)+LOG(1.-0.25*EPS)*
22      &    LOG((1.+0.25*(RAT-1.)*EPS)/(1.+0.25*RAT*EPS))+
23      &    LOG(-0.25*EPS)*LOG(0.25*RAT*EPS/(1.+0.25*(RAT-1.)*EPS))
24         ELSEIF(ABS(EPS).LT.1.E-4.AND.ABS(RAT*EPS).GE.1.E-4) THEN
25           F3RE=PYSPEN(-0.25*EPS/(BE-0.25*EPS),0.,1)-
26      &    PYSPEN((1.-0.25*EPS)/(BE-0.25*EPS),0.,1)+
27      &    PYSPEN((BE-1.+0.25*EPS)/BE,0.,1)-
28      &    PYSPEN((BE-1.+0.25*EPS)/(BE-1.),0.,1)+
29      &    0.5*(LOG(BE)**2-LOG(BE-1.)**2)+
30      &    LOG(1.-0.25*EPS)*LOG((BE-0.25*EPS)/BE)+
31      &    LOG(-0.25*EPS)*LOG((BE-1.)/(BE-0.25*EPS))
32         ELSEIF(ABS(EPS).GE.1.E-4.AND.ABS(RAT*EPS).LT.1.E-4) THEN
33           F3RE=PYSPEN((GA-1.)/(GA+0.25*RAT*EPS),0.,1)-
34      &    PYSPEN(GA/(GA+0.25*RAT*EPS),0.,1)+
35      &    PYSPEN((1.+0.25*RAT*EPS-GA)/(1.+0.25*RAT*EPS),0.,1)-
36      &    PYSPEN((1.+0.25*RAT*EPS-GA)/(0.25*RAT*EPS),0.,1)+
37      &    0.5*(LOG(1.+0.25*RAT*EPS)**2-LOG(0.25*RAT*EPS)**2)+
38      &    LOG(GA)*LOG((GA+0.25*RAT*EPS)/(1.+0.25*RAT*EPS))+
39      &    LOG(GA-1.)*LOG(0.25*RAT*EPS/(GA+0.25*RAT*EPS))
40         ELSE
41           F3RE=PYSPEN((GA-1.)/(GA+BE-1.),0.,1)-
42      &    PYSPEN(GA/(GA+BE-1.),0.,1)+PYSPEN((BE-GA)/BE,0.,1)-
43      &    PYSPEN((BE-GA)/(BE-1.),0.,1)+0.5*(LOG(BE)**2-LOG(BE-1.)**2)+
44      &    LOG(GA)*LOG((GA+BE-1.)/BE)+LOG(GA-1.)*LOG((BE-1.)/(GA+BE-1.))
45         ENDIF
46         F3IM=0.
47       ELSEIF(EPS.LT.1.) THEN
48         IF(ABS(EPS).LT.1.E-4.AND.ABS(RAT*EPS).LT.1.E-4) THEN
49           F3RE=PYSPEN(-0.25*EPS/(1.+0.25*(RAT-1.)*EPS),0.,1)-
50      &    PYSPEN((1.-0.25*EPS)/(1.+0.25*(RAT-1.)*EPS),0.,1)+
51      &    PYSPEN((1.-0.25*EPS)/(-0.25*(RAT+1.)*EPS),0.,1)-
52      &    PYSPEN(1./(RAT+1.),0.,1)+LOG((1.-0.25*EPS)/(0.25*EPS))*
53      &    LOG((1.+0.25*(RAT-1.)*EPS)/(0.25*(RAT+1.)*EPS))
54           F3IM=-PARU(1)*LOG((1.+0.25*(RAT-1.)*EPS)/(0.25*(RAT+1.)*EPS))
55         ELSEIF(ABS(EPS).LT.1.E-4.AND.ABS(RAT*EPS).GE.1.E-4) THEN
56           F3RE=PYSPEN(-0.25*EPS/(BE-0.25*EPS),0.,1)-
57      &    PYSPEN((1.-0.25*EPS)/(BE-0.25*EPS),0.,1)+
58      &    PYSPEN((1.-0.25*EPS)/(1.-0.25*EPS-BE),0.,1)-
59      &    PYSPEN(-0.25*EPS/(1.-0.25*EPS-BE),0.,1)+
60      &    LOG((1.-0.25*EPS)/(0.25*EPS))*
61      &    LOG((BE-0.25*EPS)/(BE-1.+0.25*EPS))
62           F3IM=-PARU(1)*LOG((BE-0.25*EPS)/(BE-1.+0.25*EPS))
63         ELSEIF(ABS(EPS).GE.1.E-4.AND.ABS(RAT*EPS).LT.1.E-4) THEN
64           F3RE=PYSPEN((GA-1.)/(GA+0.25*RAT*EPS),0.,1)-
65      &    PYSPEN(GA/(GA+0.25*RAT*EPS),0.,1)+
66      &    PYSPEN(GA/(GA-1.-0.25*RAT*EPS),0.,1)-
67      &    PYSPEN((GA-1.)/(GA-1.-0.25*RAT*EPS),0.,1)+
68      &    LOG(GA/(1.-GA))*LOG((GA+0.25*RAT*EPS)/(1.+0.25*RAT*EPS-GA))
69           F3IM=-PARU(1)*LOG((GA+0.25*RAT*EPS)/(1.+0.25*RAT*EPS-GA))
70         ELSE
71           F3RE=PYSPEN((GA-1.)/(GA+BE-1.),0.,1)-
72      &    PYSPEN(GA/(GA+BE-1.),0.,1)+PYSPEN(GA/(GA-BE),0.,1)-
73      &    PYSPEN((GA-1.)/(GA-BE),0.,1)+LOG(GA/(1.-GA))*
74      &    LOG((GA+BE-1.)/(BE-GA))
75           F3IM=-PARU(1)*LOG((GA+BE-1.)/(BE-GA))
76          ENDIF
77       ELSE
78         RSQ=EPS/(EPS-1.+(2.*BE-1.)**2)
79         RCTHE=RSQ*(1.-2.*BE/EPS)
80         RSTHE=SQRT(MAX(0.,RSQ-RCTHE**2))
81         RCPHI=RSQ*(1.+2.*(BE-1.)/EPS)
82         RSPHI=SQRT(MAX(0.,RSQ-RCPHI**2))
83         R=SQRT(RSQ)
84         THE=ACOS(MAX(-0.999999,MIN(0.999999,RCTHE/R)))
85         PHI=ACOS(MAX(-0.999999,MIN(0.999999,RCPHI/R)))
86         F3RE=PYSPEN(RCTHE,RSTHE,1)+PYSPEN(RCTHE,-RSTHE,1)-
87      &  PYSPEN(RCPHI,RSPHI,1)-PYSPEN(RCPHI,-RSPHI,1)+
88      &  (PHI-THE)*(PHI+THE-PARU(1))
89         F3IM=PYSPEN(RCTHE,RSTHE,2)+PYSPEN(RCTHE,-RSTHE,2)-
90      &  PYSPEN(RCPHI,RSPHI,2)-PYSPEN(RCPHI,-RSPHI,2)
91       ENDIF
92  
93       Y3RE=2./(2.*BE-1.)*F3RE
94       Y3IM=2./(2.*BE-1.)*F3IM
95  
96       RETURN
97       END