1 #ifndef ElectroWeakAnalysis_ZMuMu_ZMuMuBackNorm_h
2 #define ElectroWeakAnalysis_ZMuMu_ZMuMuBackNorm_h
6 #include <boost/shared_ptr.hpp>
14 ZMuMuBackNorm(boost::shared_ptr<double>
l, boost::shared_ptr<double>
a, boost::shared_ptr<double>
b):
17 pol_(-
pow(*l, 2)- (*l) * (*a) - 2 * (*b), -
pow(*l, 2) * (*a) - 2 * (*l) * (*b), -
pow(*l, 2) * (*b)) {}
19 lambda(new double(l)),
a1(new double(a)),
a2(new double(b)),
22 double operator()(
const int x_min,
const int x_max)
const {
23 double l = - (*(
expo_.lambda));
24 double l3inv = 1/(l*l*
l);
25 double N1 =
expo_(x_max)*l3inv *
pol_(x_max);
26 double N2 =
expo_(x_min)*l3inv *
pol_(x_min);
30 expo_.setParameters(-l);
32 pol_.setParameters(-l2-l*a-2*b, -l2*a-2*l*b, -l2*b);
ZMuMuBackNorm(const Exponential &expo, const Polynomial< 2 > &pol)
boost::shared_ptr< double > lambda
ZMuMuBackNorm(boost::shared_ptr< double > l, boost::shared_ptr< double > a, boost::shared_ptr< double > b)
ZMuMuBackNorm(double l, double a, double b)
void setParameters(double l, double a, double b)
boost::shared_ptr< double > a2
boost::shared_ptr< double > a1
double operator()(const int x_min, const int x_max) const
Power< A, B >::type pow(const A &a, const B &b)