Here is denlan.
Cheers, Olivier
--
Org: CERN - European Laboratory for Particle Physics.
Mail: 1211 Geneve 23 - Switzerland
E-Mail: Olivier.Couet@cern.ch Phone: +41 22 7676522
WWW: http://cern.ch/Olivier.Couet/ Fax: +41 22 7677155
On Mon, 16 Dec 2002, Suzanne Panacek wrote:
>
> ----- Original Message -----
> From: <henry.kasha@yale.edu>
> To: <spanacek@fnal.gov>
> Cc: <KASHA@hepmail.physics.yale.edu>
> Sent: Sunday, December 15, 2002 9:45 PM
> Subject: Some source code from CERNLIB and ROOT
>
>
> > Hello Suzanne,
> >
> > May I ask you how I can obtain (or download):
> >
> > 1 -- The source of random tossing according to the Landau distribution
> > landau() in ROOT
> >
> > 2 == The source code of CERNLIB routine G110 denlan
> >
> > As in thr past, I would greatly appreciate your help.
> >
> > Henry Kasha (CDF)
> >
>
>
*
* $Id: denlan.F,v 1.1.1.1 1996/04/01 15:02:43 mclareni Exp $
*
* $Log: denlan.F,v $
* Revision 1.1.1.1 1996/04/01 15:02:43 mclareni
* Mathlib gen
*
*
#include "gen/pilot.h"
C This will be DENLAN,IF=DOUBLE and DENLAN64,IF=-DOUBLE
FUNCTION DENLAN(X)
DIMENSION P1(0:4),P2(0:4),P3(0:4),P4(0:4),P5(0:4),P6(0:4)
DIMENSION Q1(0:4),Q2(0:4),Q3(0:4),Q4(0:4),Q5(0:4),Q6(0:4)
DIMENSION A1(1:3),A2(1:2)
DATA (P1(I),I=0,4),(Q1(I),I=0,4)
1/ 0.42598 94875E+0,-0.12497 62550E+0, 0.39842 43700E-1,
2 -0.62982 87635E-2, 0.15111 62253E-2,
3 1.0 ,-0.33882 60629E+0, 0.95943 93323E-1,
4 -0.16080 42283E-1, 0.37789 42063E-2/
DATA (P2(I),I=0,4),(Q2(I),I=0,4)
1/ 0.17885 41609E+0, 0.11739 57403E+0, 0.14888 50518E-1,
2 -0.13949 89411E-2, 0.12836 17211E-3,
3 1.0 , 0.74287 95082E+0, 0.31539 32961E+0,
4 0.66942 19548E-1, 0.87906 09714E-2/
DATA (P3(I),I=0,4),(Q3(I),I=0,4)
1/ 0.17885 44503E+0, 0.93591 61662E-1, 0.63253 87654E-2,
2 0.66116 67319E-4,-0.20310 49101E-5,
3 1.0 , 0.60978 09921E+0, 0.25606 16665E+0,
4 0.47467 22384E-1, 0.69573 01675E-2/
DATA (P4(I),I=0,4),(Q4(I),I=0,4)
1/ 0.98740 54407E+0, 0.11867 23273E+3, 0.84927 94360E+3,
2 -0.74377 92444E+3, 0.42702 62186E+3,
3 1.0 , 0.10686 15961E+3, 0.33764 96214E+3,
4 0.20167 12389E+4, 0.15970 63511E+4/
DATA (P5(I),I=0,4),(Q5(I),I=0,4)
1/ 0.10036 75074E+1, 0.16757 02434E+3, 0.47897 11289E+4,
2 0.21217 86767E+5,-0.22324 94910E+5,
3 1.0 , 0.15694 24537E+3, 0.37453 10488E+4,
4 0.98346 98876E+4, 0.66924 28357E+5/
DATA (P6(I),I=0,4),(Q6(I),I=0,4)
1/ 0.10008 27619E+1, 0.66491 43136E+3, 0.62972 92665E+5,
2 0.47555 46998E+6,-0.57436 09109E+7,
3 1.0 , 0.65141 01098E+3, 0.56974 73333E+5,
4 0.16591 74725E+6,-0.28157 59939E+7/
DATA (A1(I),I=1,3)
1/ 0.41666 66667E-1,-0.19965 27778E-1, 0.27095 38966E-1/
DATA (A2(I),I=1,2)
1/-0.18455 68670E+1,-0.42846 40743E+1/
V=X
IF(V .LT. -5.5) THEN
U=EXP(V+1.0)
DENLAN=0.3989422803*(EXP(-1/U)/SQRT(U))*
1 (1+(A1(1)+(A1(2)+A1(3)*U)*U)*U)
ELSEIF(V .LT. -1) THEN
U=EXP(-V-1)
DENLAN=EXP(-U)*SQRT(U)*
1 (P1(0)+(P1(1)+(P1(2)+(P1(3)+P1(4)*V)*V)*V)*V)/
2 (Q1(0)+(Q1(1)+(Q1(2)+(Q1(3)+Q1(4)*V)*V)*V)*V)
ELSEIF(V .LT. 1) THEN
DENLAN=(P2(0)+(P2(1)+(P2(2)+(P2(3)+P2(4)*V)*V)*V)*V)/
1 (Q2(0)+(Q2(1)+(Q2(2)+(Q2(3)+Q2(4)*V)*V)*V)*V)
ELSEIF(V .LT. 5) THEN
DENLAN=(P3(0)+(P3(1)+(P3(2)+(P3(3)+P3(4)*V)*V)*V)*V)/
1 (Q3(0)+(Q3(1)+(Q3(2)+(Q3(3)+Q3(4)*V)*V)*V)*V)
ELSEIF(V .LT. 12) THEN
U=1/V
DENLAN=U**2*(P4(0)+(P4(1)+(P4(2)+(P4(3)+P4(4)*U)*U)*U)*U)/
1 (Q4(0)+(Q4(1)+(Q4(2)+(Q4(3)+Q4(4)*U)*U)*U)*U)
ELSEIF(V .LT. 50) THEN
U=1/V
DENLAN=U**2*(P5(0)+(P5(1)+(P5(2)+(P5(3)+P5(4)*U)*U)*U)*U)/
1 (Q5(0)+(Q5(1)+(Q5(2)+(Q5(3)+Q5(4)*U)*U)*U)*U)
ELSEIF(V .LT. 300) THEN
U=1/V
DENLAN=U**2*(P6(0)+(P6(1)+(P6(2)+(P6(3)+P6(4)*U)*U)*U)*U)/
1 (Q6(0)+(Q6(1)+(Q6(2)+(Q6(3)+Q6(4)*U)*U)*U)*U)
ELSE
U=1/(V-V*LOG(V)/(V+1))
DENLAN=U**2*(1+(A2(1)+A2(2)*U)*U)
ENDIF
RETURN
END
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:23 MET