]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/fluka/twopar.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / GEANT321 / fluka / twopar.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:19:58  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.44  by  S.Giani
11 *-- Author :
12 *$ CREATE TWOPAR.FOR
13 *COPY TWOPAR
14 *
15 *=== twopar ===========================================================*
16 *
17       SUBROUTINE TWOPAR(E1,E2,P1,P2,COD1,COD2,COF1,COF2,SIF1,SIF2,
18      1IT1,IT2,UMOO,ECM,P,N,AM1,AM2)
19  
20 #include "geant321/dblprc.inc"
21 #include "geant321/dimpar.inc"
22 #include "geant321/iounit.inc"
23 C     ******************************************************
24 C     QUASI TWO PARTICLE PRODUCTION
25 C     TWOPAR CALCULATES THE ENERGYS AND THE MOMENTA
26 C     FOR THE CREATED PARTICLES OR RESONANCES IT1 AND IT2
27 C     IN THE CM - SYSTEM
28 C     COD1,COD2,COF1,COF2,SIF1,SIF2 ARE THE ANGLES FOR
29 C     SPHERICAL COORDINATES
30 C     ******************************************************
31       COMMON /FKGAMR/ REDU,AMO,AMM(15 )
32       COMMON/FKABLT/AM(110),GA(110),TAU(110),ICH(110)
33      *,IBAR(110),K1(110),K2(110)
34    9   CONTINUE
35       AMA=AM1
36       AMB=AM2
37       AMA2=AMA*AMA
38       AMB2=AMB*AMB
39       S=UMOO*UMOO
40       E1=(S-AMB2+AMA2)/(2.D0*UMOO)
41       E2=(S-AMA2+AMB2)/(2.D0*UMOO)
42       AMTE=MAX(E1*E1-AMA2,ZERZER)
43   11  CONTINUE
44       AMTE=AMTE
45       P1=SQRT(AMTE)
46       P2=P1
47 C     / P2 / = / P1 /  BUT OPPOSITE DIRECTIONS
48 C     DETERMINATION  OF  THE ANGLES
49 C     COS(THETA1)=COD1      COS(THETA2)=COD2
50 C     SIN(PHI1)=SIF1        SIN(PHI2)=SIF2
51 C     COS(PHI1)=COF1        COS(PHI2)=COF2
52 C     PHI IS UNIFORMLY DISTRIBUTED IN ( 0,2*PI )
53       CALL COSI(COF1,SIF1)
54       COF2=-COF1
55       SIF2=-SIF1
56 C     CALCULATION OF THETA1
57       CALL TCHOIC(TR,P,P1,ECM,E1,IT1,IT2,N,AM1,AM2)
58       COD1=(TR-AMA2-AM(N)*AM(N)+2.D0*ECM*E1)/(2.D0*P*P1+1.D-18)
59       IF (ABS(COD1) .GT. 1.D+00) COD1 = SIGN (ONEONE,COD1)
60       COD2=-COD1
61       RETURN
62       END