1 #ifndef PhysicsTools_Utilities_interface_LumiReWeighting_h
2 #define PhysicsTools_Utilities_interface_LumiReWeighting_h
41 constexpr
double p0_minus[20] = {1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.};
42 constexpr
double p1_minus[20] = {-0.677786, -0.619614, -0.49465, -0.357963, -0.238359, -0.110002, 0.0348629,
43 0.191263, 0.347648, 0.516615, 0.679646, 0.836673, 0.97764, 1.135,
44 1.29922, 1.42467, 1.55901, 1.61762, 1.67275, 1.96008};
45 constexpr
double p2_minus[20] = {0.526164, 0.251816, 0.11049, 0.026917, -0.0464692, -0.087022, -0.0931581,
46 -0.0714295, -0.0331772, 0.0347473, 0.108658, 0.193048, 0.272314, 0.376357,
47 0.4964, 0.58854, 0.684959, 0.731063, 0.760044, 1.02386};
49 constexpr
double p1_expoM[5] = {1.63363e-03, 6.79290e-04, 3.69900e-04, 2.24349e-04, 9.87156e-06};
51 constexpr
double p2_expoM[5] = {2.64692, 3.26585, 3.53229, 4.18035, 5.64027};
53 constexpr
double p0_plus[20] = {1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.};
54 constexpr
double p1_plus[20] = {-0.739059, -0.594445, -0.477276, -0.359707, -0.233573, -0.103458, 0.0373401,
55 0.176571, 0.337617, 0.499074, 0.675126, 0.840522, 1.00917, 1.15847,
56 1.23816, 1.44271, 1.52982, 1.46385, 1.5802, 0.988689};
57 constexpr
double p2_plus[20] = {0.208068, 0.130033, 0.0850356, 0.0448344, 0.000749832,
58 -0.0331347, -0.0653281, -0.0746009, -0.0800667, -0.0527636,
59 -0.00402649, 0.103338, 0.261261, 0.491084, 0.857966,
60 1.19495, 1.75071, 2.65559, 3.35433, 5.48835};
62 constexpr
double p1_expoP[5] = {1.42463e-01, 4.18966e-02, 1.12697e-01, 1.66197e-01, 1.50768e-01};
64 constexpr
double p2_expoP[5] = {1.98758, 2.27217, 2.26799, 2.38455, 2.52428};
68 for (
int ibin = 0; ibin < 20; ibin++) {
70 Pweight_[ibin] = p0_minus[ibin] + p1_minus[ibin] * Shift + p2_minus[ibin] * Shift * Shift;
72 Pweight_[ibin] = p0_plus[ibin] + p1_plus[ibin] * Shift + p2_plus[ibin] * Shift * Shift;
78 for (
int ibin = 20; ibin < 25; ibin++) {
80 Pweight_[ibin] = p1_expoM[ibin - 20] *
exp(p2_expoM[ibin - 20] * Shift);
82 Pweight_[ibin] = p1_expoP[ibin - 20] *
exp(p2_expoP[ibin - 20] * Shift);
88 if (ibin < 25 && ibin >= 0) {
114 const std::vector<float>& Lumi_distr,
std::string DataHistName_
Exp< T >::type exp(const T &t)
std::shared_ptr< TFile > generatedFile_
double ShiftWeight(int ibin)
std::shared_ptr< TH1 > Data_distr_
double weightOOT(const edm::EventBase &e)
double ShiftWeight(float pvnum)
std::shared_ptr< TFile > dataFile_
edm::InputTag pileupSumInfoTag_
std::shared_ptr< TH1 > weights_
std::shared_ptr< TH1 > MC_distr_
std::string dataFileName_
PoissonMeanShifter(float Shift)
std::string generatedFileName_