CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/ElectroWeakAnalysis/ZMuMu/interface/ZMuTrackScaledNormalBack.h

Go to the documentation of this file.
00001 #ifndef ElectroWeakAnalysis_ZMuMu_ZMuTrackScaledNormalBack_h
00002 #define ElectroWeakAnalysis_ZMuMu_ZMuTrackScaledNormalBack_h
00003 #include "ElectroWeakAnalysis/ZMuMu/interface/ZMuTrackScaledFunction.h"
00004 #include "ElectroWeakAnalysis/ZMuMu/interface/ZMuMuNormalBack.h"
00005 #include <boost/shared_ptr.hpp>
00006 
00007 namespace function {
00008   class ZMuTrackScaledNormalBack { 
00009    public:
00010     enum{ arguments = 1}; 
00011     enum{ parameters = 13};
00012     ZMuTrackScaledNormalBack(boost::shared_ptr<double> m, boost::shared_ptr<double> g, boost::shared_ptr<double> Ng, boost::shared_ptr<double> Ni, 
00013                              boost::shared_ptr<double> me, boost::shared_ptr<double> s, 
00014                              boost::shared_ptr<double> N, boost::shared_ptr<double> eff_tr, boost::shared_ptr<double> eff_sa, 
00015                              boost::shared_ptr<double> Nb, boost::shared_ptr<double> l, boost::shared_ptr<double> a, boost::shared_ptr<double> b, 
00016                              int bin, int rmin, int rmax):
00017       mass(m), width(g), Ngamma(Ng), Nint(Ni), 
00018       mean(me), sigma(s), 
00019       numberOfEvents(N), efficiencyTrack(eff_tr), efficiencyStandalone(eff_sa), 
00020       Nbkg(Nb), lambda(l), a1(a), a2(b), 
00021       binScaleFactor(bin), x_min(rmin), x_max(rmax), 
00022       zmts_(m, g, Ng, Ni, me, s, N, eff_tr, eff_sa, bin), zmmnb_(Nb, l, a, b, rmin, rmax) {}
00023     ZMuTrackScaledNormalBack(double m, double g, double Ng, double Ni, 
00024                              double me, double s, 
00025                              double N, double eff_tr, double eff_sa, 
00026                              double Nb, double l, double a, double b, 
00027                              int bin, int rmin, int rmax): 
00028       mass(new double(m)), width(new double(g)), Ngamma(new double(Ng)), Nint(new double(Ni)), 
00029       mean(new double(me)), sigma(new double(s)), 
00030       numberOfEvents(new double(N)), efficiencyTrack(new double(eff_tr)), efficiencyStandalone(new double(eff_sa)), 
00031       Nbkg(new double(Nb)), lambda(new double(l)), a1(new double(a)), a2(new double(b)), 
00032       binScaleFactor(bin), x_min(rmin), x_max(rmax), 
00033       zmts_(m, g, Ng, Ni, me, s, N, eff_tr, eff_sa, bin), zmmnb_(Nb, l, a, b, rmin, rmax) {}
00034     void setParameters(double m, double g, double Ng, double Ni, 
00035                        double me, double s, 
00036                        double N, double eff_tr, double eff_sa, 
00037                        double Nb, double l, double a, double b) { 
00038       zmts_.setParameters(m, g, Ng, Ni, me, s, N, eff_tr, eff_sa);
00039       zmmnb_.setParameters(Nb, l, a, b);
00040     } 
00041     double operator()(double x) const { 
00042       return zmts_(x) + zmmnb_(x);
00043     }
00044     boost::shared_ptr<double> mass, width, Ngamma, Nint, mean, sigma;
00045     boost::shared_ptr<double> numberOfEvents, efficiencyTrack, efficiencyStandalone;
00046     boost::shared_ptr<double> Nbkg, lambda, a1, a2;
00047     int binScaleFactor, x_min, x_max; 
00048   private:
00049     ZMuTrackScaledFunction zmts_; 
00050     ZMuMuNormalBack zmmnb_;
00051   };
00052 }
00053 
00054 #endif