Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / giface / gmusig.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:21:15  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.38  by  S.Giani
11 *-- Author :
12       FUNCTION GMUSIG(E,E1,COST)
13 C
14 C *** CALCULATION OF MUON-NUCLEUS CROSS SECTIONS IN CURRENT MATERIAL ***
15 C *** NVE 16-MAR-1988 CERN GENEVA ***
16 C
17 C CALLED BY : GMUNUI
18 C ORIGIN : F.CARMINATI, H.FESEFELDT
19 C
20 #include "geant321/gcbank.inc"
21 #include "geant321/gconsp.inc"
22 C
23       REAL NU,K,MMU
24       PARAMETER (ALPHA=0.007299)
25 C
26 C
27 C --- GET MUON MASS FROM GEANT PARTICLE DATA BANK ---
28       LNVE=LQ(JPART-5)
29       MMU=Q(LNVE+7)
30 C
31       GMUSIG=0.
32       IF(E1.LE.MMU) GO TO 9999
33       IF(COST.GE.1.) THEN
34          GMUSIG=BIG
35          GOTO 9999
36       ELSE
37          TAGTB2 = (1.-COST)/SQRT((1.-COST)*(1.+COST))
38       ENDIF
39       P      = E*E-MMU*MMU
40       P1     = E1*E1-MMU*MMU
41       IF(P.LT.0..OR.P1.LT.0.) GOTO 9999
42       P      = SQRT(P)
43       P1     = SQRT(P1)
44       Q2     = 2.*(E*E1-P*P1*COST-MMU*MMU)
45       IF(Q2.LE.0.) GOTO 9999
46       W2 = PMASS*( PMASS + 2.0*(E-E1) ) - Q2
47       IF ( W2.LE.0.0 ) GOTO 9999
48       NU     = E-E1
49       K      = NU+0.5*Q2/NU
50       EPS    = 1./(1.+2.*TAGTB2*TAGTB2*(Q2+NU*NU)/Q2)
51       IF(EPS.GE.1) THEN
52          GMUSIG=BIG
53       ELSE
54          GAM    = ALPHA*K*E1/(PI*Q2*E*(1.-EPS))
55          ST     = 0.12
56          SL     = 0.3*(1.-Q2/(NU*1.868))*ST
57          IF(SL.LT.0.) SL=0.
58          SLST   = ST+EPS*SL
59          GMUSIG = MAX(GAM*SLST,0.0)
60       ENDIF
61 C
62  9999 CONTINUE
63       END