]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ISAJET/code/eemax.F
Coding conventions (Gustavo)
[u/mrichter/AliRoot.git] / ISAJET / code / eemax.F
CommitLineData
0795afa3 1#include "isajet/pilot.h"
2 SUBROUTINE EEMAX
3C FIND UPPER BOUND FOR E+E- CROSS SECTION SUMMED OVER ALLOWED
4C TYPES.
5C VER 7.17: ENSURE XJMIN < XX < XJMAX
6C VER 7.42: ENACT BREMSSTRAHLUNG EFFECT
7#if defined(CERNLIB_IMPNONE)
8 IMPLICIT NONE
9#endif
10#include "isajet/itapes.inc"
11#include "isajet/jetsig.inc"
12#include "isajet/eepar.inc"
13#include "isajet/jetlim.inc"
14#include "isajet/jetpar.inc"
15#include "isajet/primar.inc"
16#include "isajet/xmssm.inc"
17#include "isajet/sssm.inc"
18#include "isajet/brembm.inc"
19C
20 REAL ETEST(3),XDI(3),RSH,XD,XDUMMY,SSFEL,DX,XX
21 INTEGER NET,NXD,NX,NX1,IET,IXD,IX,I
22C
23 NET=1
24 NXD=1
25 ETEST(1)=ECM
26C Initialize beam/brem spectra convolution and fit
27 IF (IBEAM) THEN
28 QSQBM=RSHMAX**2
29 EB=RSHMAX/2.
30 WRITE(ITLIS,*) ' BEGINNING BREM/BEAM CONVOLUTION AND FIT...'
31 XDUMMY=SSFEL(.1,1)
32 END IF
33 IF (IBREM) THEN
34 NET=3
35 NXD=3
36 ETEST(1)=RSHMIN
37 IF (RSHMAX.GT.AMZ.AND.RSHMIN.LT.AMZ) THEN
38 ETEST(2)=AMZ
39 ELSE
40 ETEST(2)=RSHMIN+(RSHMAX-RSHMIN)/2.
41 END IF
42 ETEST(3)=MIN(RSHMAX,.999*ECM)
43 END IF
44 SGMXEE=0.
45 NX=50
46 IF(FIXYJ(1)) NX=1
47 NX1=NX+1
48 DX=(XJMAX(1)-XJMIN(1))/NX
49C SCAN IN X=COS(THETA)
50 DO IET=1,NET
51 RSH=ETEST(IET)
52 SHAT=RSH*RSH
53 XDI(1)=-(1.-SHAT/SCM)
54 XDI(2)=0.
55 XDI(3)=-XDI(1)
56 DO IXD=1,NXD
57 XD=XDI(IXD)
58 X1=(XD+SQRT(XD**2+4*SHAT/SCM))/2.
59 X2=X1-XD
60 DO 100 IX=1,NX1
61 XX=XJMIN(1)+DX*(IX-1)
62 IF(XX.LT.XJMIN(1)) XX=XJMIN(1)
63 IF(XX.GT.XJMAX(1)) XX=XJMAX(1)
64 CTH(1)=XX
65 CTH(2)=-XX
66 DO 110 I=1,2
67 XJ(I)=CTH(I)
68 TH(I)=ACOS(CTH(I))
69 STH(I)=SIN(TH(I))
70 PT(I)=HALFE*STH(I)
71 IF(IX.EQ.1) YJ(I)=YJMIN(I)
72 IF(IX.EQ.NX1) YJ(I)=YJMAX(I)
73 IF(IX.GT.1.AND.IX.LT.NX1)
74 1 YJ(I)=.5*ALOG((1.+CTH(I))/(1.-CTH(I)))
75110 CONTINUE
76C COMPUTE CROSS SECTION
77 IF (GOMSSM) THEN
78 CALL SIGSSE
79 ELSE
80 CALL SIGEE
81 END IF
82 IF(SIGMA.GT.SGMXEE) SGMXEE=SIGMA
83100 CONTINUE
84 END DO
85 END DO
86C REQUIRE CROSS SECTION BE POSITIVE
87 WRITE(ITLIS,1000) SGMXEE
881000 FORMAT(///' MAXIMUM D(SIGMA)/D(COS THETA) = ',E12.4)
89 IF(SGMXEE.GT.0) RETURN
90 STOP 99
91 END