]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenBase/EvtIntegPdf1D.cxx
AliDecayer realisation for the EvtGen code and EvtGen itself.
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenBase / EvtIntegPdf1D.cxx
1 #include "EvtGenBase/EvtPatches.hh"
2 /*******************************************************************************
3  * Project: BaBar detector at the SLAC PEP-II B-factory
4  * Package: EvtGenBase
5  *    File: $Id: EvtIntegPdf1D.cc,v 1.10 2004/12/21 19:58:44 ryd Exp $
6  *  Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002
7  *
8  * Copyright (C) 2002 Caltech
9  *******************************************************************************/
10
11 #include <assert.h>
12 #include "EvtGenBase/EvtPatches.hh"
13 #include "EvtGenBase/EvtMacros.hh"
14 #include "EvtGenBase/EvtIntegPdf1D.hh"
15
16 EvtIntegPdf1D::EvtIntegPdf1D(double min, double max)
17   : EvtPdf<EvtPoint1D>(), _min(min), _max(max)
18 {
19   assert(min <= max);
20 }
21
22 EvtIntegPdf1D::EvtIntegPdf1D(const EvtIntegPdf1D& other)
23   : EvtPdf<EvtPoint1D>(other), _min(other._min), _max(other._max)
24 {}
25
26 EvtIntegPdf1D::~EvtIntegPdf1D() 
27 {}
28
29 EvtValError EvtIntegPdf1D::compute_integral() const
30 {
31   double x1 = pdfIntegral(_min); 
32   double x2 = pdfIntegral(_max);
33   return EvtValError(x2-x1,0.);
34 }
35
36
37 EvtPoint1D EvtIntegPdf1D::randomPoint()
38 {
39   double itgmin = pdfIntegral(_min);
40   double itgmax = pdfIntegral(_max);
41   double itgrnd = EvtRandom::Flat(itgmin,itgmax);
42
43   return EvtPoint1D(_min,_max,pdfIntegralInverse(itgrnd));
44 }
45
46