1 #include "EvtGenBase/EvtPatches.hh"
2 /*******************************************************************************
3 * Project: BaBar detector at the SLAC PEP-II B-factory
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
8 * Copyright (C) 2002 Caltech
9 *******************************************************************************/
12 #include "EvtGenBase/EvtPatches.hh"
13 #include "EvtGenBase/EvtMacros.hh"
14 #include "EvtGenBase/EvtIntegPdf1D.hh"
16 EvtIntegPdf1D::EvtIntegPdf1D(double min, double max)
17 : EvtPdf<EvtPoint1D>(), _min(min), _max(max)
22 EvtIntegPdf1D::EvtIntegPdf1D(const EvtIntegPdf1D& other)
23 : EvtPdf<EvtPoint1D>(other), _min(other._min), _max(other._max)
26 EvtIntegPdf1D::~EvtIntegPdf1D()
29 EvtValError EvtIntegPdf1D::compute_integral() const
31 double x1 = pdfIntegral(_min);
32 double x2 = pdfIntegral(_max);
33 return EvtValError(x2-x1,0.);
37 EvtPoint1D EvtIntegPdf1D::randomPoint()
39 double itgmin = pdfIntegral(_min);
40 double itgmax = pdfIntegral(_max);
41 double itgrnd = EvtRandom::Flat(itgmin,itgmax);
43 return EvtPoint1D(_min,_max,pdfIntegralInverse(itgrnd));