#include <LumiReWeighting.h>
Public Member Functions | |
PoissonMeanShifter () | |
PoissonMeanShifter (float Shift) | |
PoissonMeanShifter () | |
PoissonMeanShifter (float Shift) | |
double | ShiftWeight (float pvnum) |
double | ShiftWeight (float pvnum) |
double | ShiftWeight (int ibin) |
double | ShiftWeight (int ibin) |
Private Attributes | |
double | Pweight_ [25] |
Definition at line 31 of file LumiReWeighting.h.
reweight::PoissonMeanShifter::PoissonMeanShifter | ( | ) | [inline] |
Definition at line 35 of file LumiReWeighting.h.
{ };
reweight::PoissonMeanShifter::PoissonMeanShifter | ( | float | Shift | ) | [inline] |
Definition at line 37 of file LumiReWeighting.h.
References constexpr, funct::exp(), and Pweight_.
{ // these are the polynomial or exponential coefficients for each bin of a 25-bin sequence that // convert the Distribution of the 2011 luminosity to something with a lower or higher peak luminosity. // The distributions aren't quite poisson because they model luminosity decreasing during a fill. This implies that // they do get wider as the mean increases, so the weights are not linear with increasing mean. 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. }; constexpr double p1_minus[20] = { -0.677786, -0.619614, -0.49465, -0.357963, -0.238359, -0.110002, 0.0348629, 0.191263, 0.347648, 0.516615, 0.679646, 0.836673, 0.97764, 1.135, 1.29922, 1.42467, 1.55901, 1.61762, 1.67275, 1.96008 }; constexpr double p2_minus[20] = { 0.526164, 0.251816, 0.11049, 0.026917, -0.0464692, -0.087022, -0.0931581, -0.0714295, -0.0331772, 0.0347473, 0.108658, 0.193048, 0.272314, 0.376357, 0.4964, 0.58854, 0.684959, 0.731063, 0.760044, 1.02386 }; constexpr double p1_expoM[5] = { 1.63363e-03, 6.79290e-04, 3.69900e-04, 2.24349e-04, 9.87156e-06 }; constexpr double p2_expoM[5] = { 2.64692, 3.26585, 3.53229, 4.18035, 5.64027 }; 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. }; constexpr double p1_plus[20] = { -0.739059, -0.594445, -0.477276, -0.359707, -0.233573, -0.103458, 0.0373401, 0.176571, 0.337617, 0.499074, 0.675126, 0.840522, 1.00917, 1.15847, 1.23816, 1.44271, 1.52982, 1.46385, 1.5802, 0.988689 }; constexpr double p2_plus[20] = { 0.208068, 0.130033, 0.0850356, 0.0448344, 0.000749832, -0.0331347, -0.0653281, -0.0746009, -0.0800667, -0.0527636, -0.00402649, 0.103338, 0.261261, 0.491084, 0.857966, 1.19495, 1.75071, 2.65559, 3.35433, 5.48835 }; constexpr double p1_expoP[5] = { 1.42463e-01, 4.18966e-02, 1.12697e-01, 1.66197e-01, 1.50768e-01 }; constexpr double p2_expoP[5] = { 1.98758, 2.27217, 2.26799, 2.38455, 2.52428 }; // initialize weights based on desired Shift for (int ibin=0;ibin<20;ibin++) { if( Shift < .0) { Pweight_[ibin] = p0_minus[ibin] + p1_minus[ibin]*Shift + p2_minus[ibin]*Shift*Shift; } else { Pweight_[ibin] = p0_plus[ibin] + p1_plus[ibin]*Shift + p2_plus[ibin]*Shift*Shift; } } // last few bins fit better to an exponential... for (int ibin=20;ibin<25;ibin++) { if( Shift < 0.) { Pweight_[ibin] = p1_expoM[ibin-20]*exp(p2_expoM[ibin-20]*Shift); } else { Pweight_[ibin] = p1_expoP[ibin-20]*exp(p2_expoP[ibin-20]*Shift); } } };
reweight::PoissonMeanShifter::PoissonMeanShifter | ( | ) | [inline] |
Definition at line 43 of file LumiReweightingStandAlone.h.
{ };
reweight::PoissonMeanShifter::PoissonMeanShifter | ( | float | Shift | ) | [inline] |
Definition at line 45 of file LumiReweightingStandAlone.h.
References funct::exp(), and Pweight_.
{ // these are the polynomial or exponential coefficients for each bin of a 25-bin sequence that // convert the Distribution of the 2011 luminosity to something with a lower or higher peak luminosity. // The distributions aren't quite poisson because they model luminosity decreasing during a fill. This implies that // they do get wider as the mean increases, so the weights are not linear with increasing mean. static double p0_minus[20] = { 1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1. }; static double p1_minus[20] = { -0.677786, -0.619614, -0.49465, -0.357963, -0.238359, -0.110002, 0.0348629, 0.191263, 0.347648, 0.516615, 0.679646, 0.836673, 0.97764, 1.135, 1.29922, 1.42467, 1.55901, 1.61762, 1.67275, 1.96008 }; static double p2_minus[20] = { 0.526164, 0.251816, 0.11049, 0.026917, -0.0464692, -0.087022, -0.0931581, -0.0714295, -0.0331772, 0.0347473, 0.108658, 0.193048, 0.272314, 0.376357, 0.4964, 0.58854, 0.684959, 0.731063, 0.760044, 1.02386 }; static double p1_expoM[5] = { 1.63363e-03, 6.79290e-04, 3.69900e-04, 2.24349e-04, 9.87156e-06 }; static double p2_expoM[5] = { 2.64692, 3.26585, 3.53229, 4.18035, 5.64027 }; static double p0_plus[20] = { 1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,1. }; static double p1_plus[20] = { -0.739059, -0.594445, -0.477276, -0.359707, -0.233573, -0.103458, 0.0373401, 0.176571, 0.337617, 0.499074, 0.675126, 0.840522, 1.00917, 1.15847, 1.23816, 1.44271, 1.52982, 1.46385, 1.5802, 0.988689 }; static double p2_plus[20] = { 0.208068, 0.130033, 0.0850356, 0.0448344, 0.000749832, -0.0331347, -0.0653281, -0.0746009, -0.0800667, -0.0527636, -0.00402649, 0.103338, 0.261261, 0.491084, 0.857966, 1.19495, 1.75071, 2.65559, 3.35433, 5.48835 }; static double p1_expoP[5] = { 1.42463e-01, 4.18966e-02, 1.12697e-01, 1.66197e-01, 1.50768e-01 }; static double p2_expoP[5] = { 1.98758, 2.27217, 2.26799, 2.38455, 2.52428 }; // initialize weights based on desired Shift for (int ibin=0;ibin<20;ibin++) { if( Shift < .0) { Pweight_[ibin] = p0_minus[ibin] + p1_minus[ibin]*Shift + p2_minus[ibin]*Shift*Shift; } else { Pweight_[ibin] = p0_plus[ibin] + p1_plus[ibin]*Shift + p2_plus[ibin]*Shift*Shift; } } // last few bins fit better to an exponential... for (int ibin=20;ibin<25;ibin++) { if( Shift < 0.) { Pweight_[ibin] = p1_expoM[ibin-20]*exp(p2_expoM[ibin-20]*Shift); } else { Pweight_[ibin] = p1_expoP[ibin-20]*exp(p2_expoP[ibin-20]*Shift); } } };
double reweight::PoissonMeanShifter::ShiftWeight | ( | int | ibin | ) | [inline] |
Definition at line 196 of file LumiReWeighting.h.
References Pweight_.
Referenced by ShiftWeight().
{ if(ibin<25 && ibin>=0) { return Pweight_[ibin]; } else { return 0;} };
double reweight::PoissonMeanShifter::ShiftWeight | ( | float | pvnum | ) | [inline] |
Definition at line 211 of file LumiReweightingStandAlone.h.
References Pweight_.
{ int ibin = int(pvnum); if(ibin<25 && ibin>=0) { return Pweight_[ibin]; } else { return 0;} };
double reweight::PoissonMeanShifter::ShiftWeight | ( | int | ibin | ) | [inline] |
Definition at line 204 of file LumiReweightingStandAlone.h.
References Pweight_.
{ if(ibin<25 && ibin>=0) { return Pweight_[ibin]; } else { return 0;} };
double reweight::PoissonMeanShifter::ShiftWeight | ( | float | pvnum | ) | [inline] |
Definition at line 202 of file LumiReWeighting.h.
References ShiftWeight().
{ return ShiftWeight(int(pvnum)); };
double reweight::PoissonMeanShifter::Pweight_ [private] |
Definition at line 204 of file LumiReWeighting.h.
Referenced by PoissonMeanShifter(), and ShiftWeight().