EvtItgThreeCoeffFcn Class Reference

#include <EvtItgThreeCoeffFcn.hh>

Inheritance diagram for EvtItgThreeCoeffFcn:

EvtItgAbsFunction List of all members.

Public Member Functions

 EvtItgThreeCoeffFcn (double(*theFunction)(double, const std::vector< double > &, const std::vector< double > &, const std::vector< double > &), double lowerRange, double upperRange, const std::vector< double > &coeffs1, const std::vector< double > &coeffs2, const std::vector< double > &coeffs3)
virtual ~EvtItgThreeCoeffFcn ()
virtual void setCoeff (int, int, double)
virtual double getCoeff (int, int)
virtual double value (double x) const
virtual double operator() (double x) const
double upperRange () const
double lowerRange () const
void getRange (double &lower, double &upper) const

Protected Member Functions

virtual double myFunction (double x) const
void setRange (double x1, double x2)

Private Member Functions

 EvtItgThreeCoeffFcn (const EvtItgThreeCoeffFcn &)
EvtItgThreeCoeffFcnoperator= (const EvtItgThreeCoeffFcn &)

Private Attributes

double(* _myFunction )(double x, const std::vector< double > &coeffs1, const std::vector< double > &coeffs2, const std::vector< double > &coeffs3)
std::vector< double > _coeffs1
std::vector< double > _coeffs2
std::vector< double > _coeffs3

Detailed Description

Definition at line 35 of file EvtItgThreeCoeffFcn.hh.


Constructor & Destructor Documentation

EvtItgThreeCoeffFcn::EvtItgThreeCoeffFcn ( double(*)(double, const std::vector< double > &, const std::vector< double > &, const std::vector< double > &)  theFunction,
double  lowerRange,
double  upperRange,
const std::vector< double > &  coeffs1,
const std::vector< double > &  coeffs2,
const std::vector< double > &  coeffs3 
)

Definition at line 32 of file EvtItgThreeCoeffFcn.cc.

00032                                                                                                                                                                                                                                                                                                    :
00033   EvtItgAbsFunction(lowerRange, upperRange),
00034   _myFunction(theFunction),
00035   _coeffs1(coeffs1),
00036   _coeffs2(coeffs2), 
00037   _coeffs3(coeffs3)
00038 {}

EvtItgThreeCoeffFcn::~EvtItgThreeCoeffFcn (  )  [virtual]

Definition at line 40 of file EvtItgThreeCoeffFcn.cc.

00041 {}

EvtItgThreeCoeffFcn::EvtItgThreeCoeffFcn ( const EvtItgThreeCoeffFcn  )  [private]


Member Function Documentation

double EvtItgThreeCoeffFcn::getCoeff ( int  ,
int   
) [virtual]

Implements EvtItgAbsFunction.

Definition at line 58 of file EvtItgThreeCoeffFcn.cc.

References _coeffs1, _coeffs2, and _coeffs3.

00059 {
00060   if (vect == 1) return _coeffs1[which];
00061   else if (vect == 2) return _coeffs2[which];
00062   else if (vect == 3) return _coeffs3[which];
00063   else {return 0;}
00064 }

void EvtItgAbsFunction::getRange ( double &  lower,
double &  upper 
) const [inline, inherited]

Definition at line 53 of file EvtItgAbsFunction.hh.

References EvtItgAbsFunction::_lowerRange, and EvtItgAbsFunction::_upperRange.

00053 { lower = _lowerRange; upper = _upperRange; } 

double EvtItgAbsFunction::lowerRange (  )  const [inline, inherited]

Definition at line 52 of file EvtItgAbsFunction.hh.

References EvtItgAbsFunction::_lowerRange.

Referenced by EvtItgAbsIntegrator::boundsCheck(), and EvtItgAbsIntegrator::normalisation().

00052 {return _lowerRange;}

double EvtItgThreeCoeffFcn::myFunction ( double  x  )  const [protected, virtual]

Implements EvtItgAbsFunction.

Definition at line 45 of file EvtItgThreeCoeffFcn.cc.

References _coeffs1, _coeffs2, _coeffs3, and _myFunction.

00045                                              {
00046   return _myFunction(x, _coeffs1, _coeffs2, _coeffs3);
00047 }

double EvtItgAbsFunction::operator() ( double  x  )  const [virtual, inherited]

Definition at line 54 of file EvtItgAbsFunction.cc.

References EvtItgAbsFunction::myFunction().

00054                                            {
00055   return myFunction(x);
00056 }

EvtItgThreeCoeffFcn& EvtItgThreeCoeffFcn::operator= ( const EvtItgThreeCoeffFcn  )  [private]

void EvtItgThreeCoeffFcn::setCoeff ( int  ,
int  ,
double   
) [virtual]

Implements EvtItgAbsFunction.

Definition at line 50 of file EvtItgThreeCoeffFcn.cc.

References _coeffs1, _coeffs2, and _coeffs3.

Referenced by EvtBtoXsgammaKagan::computeHadronicMass().

00051 {
00052   if (vect == 1) _coeffs1[which] = value;
00053   else if (vect == 2) _coeffs2[which] = value;
00054   else if (vect == 3) _coeffs3[which] = value;
00055 }

void EvtItgAbsFunction::setRange ( double  x1,
double  x2 
) [inline, protected, inherited]

Definition at line 60 of file EvtItgAbsFunction.hh.

References EvtItgAbsFunction::_lowerRange, and EvtItgAbsFunction::_upperRange.

00060 { _lowerRange=x1; _upperRange=x2; };

double EvtItgAbsFunction::upperRange (  )  const [inline, inherited]

Definition at line 51 of file EvtItgAbsFunction.hh.

References EvtItgAbsFunction::_upperRange.

Referenced by EvtItgAbsIntegrator::boundsCheck(), and EvtItgAbsIntegrator::normalisation().

00051 {return _upperRange;}

double EvtItgAbsFunction::value ( double  x  )  const [virtual, inherited]

Definition at line 45 of file EvtItgAbsFunction.cc.

References EvtItgAbsFunction::_lowerRange, EvtItgAbsFunction::_upperRange, calibUtil::ERROR, EvtItgAbsFunction::myFunction(), and report().

Referenced by EvtBtoXsgammaRootFinder::GetRootSingleFunc().

00045                                        {
00046   if (x >= _lowerRange && x <= _upperRange) return myFunction(x);
00047    report(ERROR,"EvtGen") << "Error in EvtItgAbsFunction::value.  Given co-ordinate " << x
00048                 << " is outside of allowed range [" << _lowerRange << ", "
00049                 << _upperRange << "].  Returning 0.0" << endl;
00050   return 0.0;  // Never get here
00051 }


Member Data Documentation

std::vector<double> EvtItgThreeCoeffFcn::_coeffs1 [private]

Definition at line 60 of file EvtItgThreeCoeffFcn.hh.

Referenced by getCoeff(), myFunction(), and setCoeff().

std::vector<double> EvtItgThreeCoeffFcn::_coeffs2 [private]

Definition at line 61 of file EvtItgThreeCoeffFcn.hh.

Referenced by getCoeff(), myFunction(), and setCoeff().

std::vector<double> EvtItgThreeCoeffFcn::_coeffs3 [private]

Definition at line 62 of file EvtItgThreeCoeffFcn.hh.

Referenced by getCoeff(), myFunction(), and setCoeff().

double(* EvtItgThreeCoeffFcn::_myFunction)(double x, const std::vector< double > &coeffs1, const std::vector< double > &coeffs2, const std::vector< double > &coeffs3) [private]

Referenced by myFunction().


Generated on Tue Nov 29 23:19:04 2016 for BOSS_7.0.2 by  doxygen 1.4.7