]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TEvtGen/EvtGenModels/EvtItgAbsIntegrator.hh
added a histogram
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtItgAbsIntegrator.hh
CommitLineData
da0e9ce3 1//--------------------------------------------------------------------------
2//
3//
4// Copyright Information: See EvtGen/COPYRIGHT
5//
6// Environment:
7// This software is part of the EvtGen package developed jointly
8// for the BaBar and CLEO collaborations. If you use all or part
9// of it, please give an appropriate acknowledgement.
10//
11// Module: EvtItgAbsIntegrator.hh
12//
13// Description:
14// Abstraction of a generic integrator (Stolen and modified from
15// the BaBar IntegrationUtils package - author: Phil Strother).
16//
17// Modification history:
18//
19// Jane Tinslay March 21, 2001 Module adapted for use in
20// EvtGen
21//
22//------------------------------------------------------------------------
23
24#ifndef EVTITGABSINTEGRATOR_HH
25#define EVTITGABSINTEGRATOR_HH
26
27
28#include "EvtGenModels/EvtItgAbsFunction.hh"
29
30class EvtItgAbsIntegrator {
31
32public:
33
34 EvtItgAbsIntegrator(const EvtItgAbsFunction &);
35
36 virtual ~EvtItgAbsIntegrator( );
37
38 double evaluate(double lower, double upper) const;
39
40 double normalisation() const;
41
42protected:
43
44 double trapezoid(double lower, double higher, int n,
45 double &result) const;
46
47 virtual double evaluateIt(double lower, double higher) const=0;
48
49 double myFunction(double x) const {return _myFunction(x);}
50
51private:
52
53 const EvtItgAbsFunction &_myFunction;
54
55 void boundsCheck(double &, double &) const;
56
57 // Note: if your class needs a copy constructor or an assignment operator,
58 // make one of the following public and implement it.
59 EvtItgAbsIntegrator();
60 EvtItgAbsIntegrator( const EvtItgAbsIntegrator& ); // Copy Constructor
61 EvtItgAbsIntegrator& operator= ( const EvtItgAbsIntegrator& ); // Assignment op
62
63};
64
65#endif // EVTITGABSINTEGRATOR_HH