]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ISAJET/code/logthw.F
Separated TOF libraries (base,rec,sim)
[u/mrichter/AliRoot.git] / ISAJET / code / logthw.F
1 #include "isajet/pilot.h"
2       LOGICAL FUNCTION LOGTHW(IERR)
3 C
4 C        SET AND CHECK THETA LIMITS FOR W(Z0)
5 C
6 #include "isajet/itapes.inc"
7 #include "isajet/jetlim.inc"
8 #include "isajet/primar.inc"
9 #include "isajet/jetpar.inc"
10 #include "isajet/const.inc"
11 #include "isajet/dylim.inc"
12 #include "isajet/keys.inc"
13 #include "isajet/q1q2.inc"
14       DATA UNDEF/-.9E9/
15 C
16 C            INVERSE HYPERBOLIC COSINE FUNCTION
17       ACOSH(X)=ALOG(X+SQRT(X**2-1.0))
18 C            INVERSE HYPERBOLIC SINE FUNCTION
19       ASINH(X)=ALOG(X+SQRT(X**2+1.0))
20 C
21       HALFPI=PI/2.
22       LOGTHW=.TRUE.
23 C
24       IF(THWMIN.LT.UNDEF.AND.THWMAX.LT.UNDEF) THEN
25           THWMIN=2.*ATAN(EXP(-YWMAX))
26           THWMAX=2.*ATAN(EXP(-YWMIN))
27       ELSEIF(THWMIN.GT.UNDEF) THEN
28         IF(THWMAX.GT.UNDEF) THEN
29           LOGTHW=.FALSE.
30           CALL LOGERR(113,1,IERR)
31         ELSE
32           TAMIN=TAN(THWMIN)
33           TAMAX=TAN(THWMAX)
34           IF(THWMIN.LT.HALFPI)
35      1    YWMX=ASINH(QTMAX/SQRT(QTMAX**2+QMIN**2)/TAMIN)
36           IF(THWMIN.GE.HALFPI)
37      1    YWMX=ASINH(QTMIN/SQRT(QTMIN**2+QMAX**2)/TAMIN)
38           IF(THWMAX.GT.HALFPI)
39      1    YWMN=ASINH(QTMAX/SQRT(QTMAX**2+QMIN**2)/TAMAX)
40           IF(THWMAX.LT.HALFPI)
41      1    YWMN=ASINH(QTMIN/SQRT(QTMIN**2+QMAX**2)/TAMAX)
42           IF(YWMIN.LT.YWMN) YWMIN=YWMN
43           IF(YWMAX.GT.YWMX) YWMAX=YWMX
44           IF(FIXYW.AND.(YW.LT.YWMIN.OR.YW.GT.YWMAX)) THEN
45             CALL LOGERR(102,1,IERR)
46             LOGTHW=.FALSE.
47           ENDIF
48         ENDIF
49       ENDIF
50 C
51       IF(YWMIN.LT.0) THWMAX=ATAN2(QTMIN,SQRT(QTMIN**2+QMAX**2)*
52      1              SINH(YWMIN))
53       IF(YWMIN.GE.0) THWMAX=ATAN2(QTMAX,SQRT(QTMAX**2+QMIN**2)*
54      1               SINH(YWMIN))
55       IF(YWMAX.GE.0) THWMIN=ATAN2(QTMIN,SQRT(QTMIN**2+QMAX**2)*
56      U               SINH(YWMAX))
57       IF(YWMAX.LT.0) THWMIN=ATAN2(QTMAX,SQRT(QTMAX**2+QMIN**2)*
58      1               SINH(YWMAX))
59 C
60       RETURN
61       END