]>
Commit | Line | Data |
---|---|---|
da0e9ce3 | 1 | #include "EvtGenBase/EvtPatches.hh" |
2 | /******************************************************************************* | |
3 | * Project: BaBar detector at the SLAC PEP-II B-factory | |
4 | * Package: EvtGenBase | |
0ca57c2f | 5 | * File: $Id: EvtIntegPdf1D.cpp,v 1.3 2009-03-16 15:48:09 robbep Exp $ |
da0e9ce3 | 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 |