]>
Commit | Line | Data |
---|---|---|
0795afa3 | 1 | #include "isajet/pilot.h" |
2 | SUBROUTINE EEMAX | |
3 | C FIND UPPER BOUND FOR E+E- CROSS SECTION SUMMED OVER ALLOWED | |
4 | C TYPES. | |
5 | C VER 7.17: ENSURE XJMIN < XX < XJMAX | |
6 | C 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" | |
19 | C | |
20 | REAL ETEST(3),XDI(3),RSH,XD,XDUMMY,SSFEL,DX,XX | |
21 | INTEGER NET,NXD,NX,NX1,IET,IXD,IX,I | |
22 | C | |
23 | NET=1 | |
24 | NXD=1 | |
25 | ETEST(1)=ECM | |
26 | C 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 | |
49 | C 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))) | |
75 | 110 CONTINUE | |
76 | C 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 | |
83 | 100 CONTINUE | |
84 | END DO | |
85 | END DO | |
86 | C REQUIRE CROSS SECTION BE POSITIVE | |
87 | WRITE(ITLIS,1000) SGMXEE | |
88 | 1000 FORMAT(///' MAXIMUM D(SIGMA)/D(COS THETA) = ',E12.4) | |
89 | IF(SGMXEE.GT.0) RETURN | |
90 | STOP 99 | |
91 | END |