]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/fluka/betarn.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / fluka / betarn.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:19:54  cernlib
6 * Geant
7 *
8 *
9 #include "geant321/pilot.h"
10 *CMZ :  3.21/02 29/03/94  15.41.41  by  S.Giani
11 *-- Author :
12 *$ CREATE BETARN.FOR
13 *COPY BETARN
14 *
15 *=== betarn ===========================================================*
16 *
17       FUNCTION BETARN(GAM,ETA)
18  
19 #include "geant321/dblprc.inc"
20 #include "geant321/dimpar.inc"
21 #include "geant321/iounit.inc"
22 *
23 *----------------------------------------------------------------------*
24 *                                                                      *
25 *     New version:                                                     *
26 *     Created on 20 february 1991  by    Alfredo Ferrari & Paola Sala  *
27 *                                                   Infn - Milan       *
28 *                                                                      *
29 *     Last change on 20-feb-91     by    Alfredo Ferrari               *
30 *                                                                      *
31 *     Sampling from beta distribution in [0,1) :                       *
32 *                                                                      *
33 *     P(X) = X**(GAM-1.D0)*(1.D0-X)**(ETA-1)*GAMM(ETA+GAM)             *
34 *          / (GAMM(GAM*GAMM(ETA))                                      *
35 *                                                                      *
36 *----------------------------------------------------------------------*
37 *
38       REAL RNDM(2)
39 *
40       GAMI  = 1.D+00 / GAM
41       ETAM1 = ETA - 1.D+00
42       NTAM1 = NINT (ETA - 1.D+00)
43 *  +-------------------------------------------------------------------*
44 *  |
45       IF ( ETAM1 - NTAM1 .NE. 0.D+00 ) THEN
46 *  |  +----------------------------------------------------------------*
47 *  |  |  First sample from X**(gam-1) and then reject according to
48 *  |  |  (1-X)**(eta-1)
49   100    CONTINUE
50             CALL GRNDM(RNDM,2)
51             BETARN = RNDM (1)**GAMI
52             REJE   = ( 1.D+00 - BETARN )**ETAM1
53          IF ( RNDM (2) .GE. REJE ) GO TO 100
54 *  |  |
55 *  |  +----------------------------------------------------------------*
56 *  |
57 *  +-------------------------------------------------------------------*
58 *  |
59       ELSE
60 *  |  +----------------------------------------------------------------*
61 *  |  |  First sample from X**(gam-1) and then reject according to
62 *  |  |  (1-X)**(eta-1)
63   200    CONTINUE
64             CALL GRNDM(RNDM,2)
65             BETARN = RNDM (1)**GAMI
66             REJE   = ( 1.D+00 - BETARN )**NTAM1
67          IF ( RNDM (2) .GE. REJE ) GO TO 200
68 *  |  |
69 *  |  +----------------------------------------------------------------*
70       END IF
71 *  |
72 *  +-------------------------------------------------------------------*
73       RETURN
74 *=== End of function betarn ===========================================*
75       END