ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/dhidas/OSUAnalysis/Tools/src/EventWeightProvider.cpp
Revision: 1.1.1.1 (vendor branch)
Committed: Thu Dec 1 16:28:48 2011 UTC (13 years, 5 months ago) by dhidas
Branch: dhidas
CVS Tags: START
Changes since 1.1: +0 -0 lines
Log Message:
osu copy modified

File Contents

# User Rev Content
1 dhidas 1.1 /*
2     * CrossSections.cpp
3     *
4     * Created on: 13 Aug 2010
5     * Author: kreczko
6     */
7    
8     #include "../interface/EventWeightProvider.h"
9     #include "TFile.h"
10     #include <boost/scoped_ptr.hpp>
11     #include <iostream>
12    
13     namespace BAT {
14    
15     boost::array<float, DataType::NUMBER_OF_DATA_TYPES> sevenTeV::getXSections() {
16     boost::array<float, DataType::NUMBER_OF_DATA_TYPES> xsection;
17     xsection[DataType::DATA] = 0;
18     xsection[DataType::ttbar] = 157.5;
19     xsection[DataType::ttjets] = 157.5;
20    
21     xsection[DataType::Zjets] = 3048.;
22     // From twiki.cern.ch/twiki/bin/view/CMS/CrossSectionDetails
23     // For DYJetsToLL_TuneZ2_M-50_7TeV-madgraph-tauola
24    
25     xsection[DataType::Wjets] = 31314.;
26     // From twiki.cern.ch/twiki/bin/view/CMS/CrossSectionDetails
27     // for WJetsToLNu_TuneZ2_7TeV-madgraph-tauola
28    
29     // xsection[DataType::Wjets] = 24640.;
30     xsection[DataType::WToENu] = 7899.;
31    
32     xsection[DataType::QCD_Flat_15to3000] = 2.213e5; // Fake number
33     // xsection[DataType::QCD_Flat_15to3000] = 2.213e10; // Too big
34     // Need per-event weighting
35     // From twiki.cern.ch/twiki/bin/view/CMS/ProductionSummer2011
36     // for QCD_Pt-15to3000_TuneZ2_Flat_7TeV_pythia6
37    
38     xsection[DataType::QCD_EMEnriched_Pt20to30] = 0.2355e9 * 0.0073;//xs 0.2355 mb (filter efficiency=0.0073)
39     xsection[DataType::QCD_EMEnriched_Pt30to80] = 0.0593e9 * 0.059; //xs 0.0593 mb
40     // xsection[DataType::QCD_EMEnriched_Pt80to170] = 0.906e6 * 0.148; //xs 0.906e-3 mb, total 134088 pb
41     xsection[DataType::QCD_EMEnriched_Pt80to170] = 139500; // From twiki.cern.ch/twiki/bin/view/CMS/CrossSectionDetails
42    
43     xsection[DataType::QCD_MuEnriched_Pt20Pt15] = 84680; // From twiki.cern.ch/twiki/bin/view/CMS/CrossSectionDetails
44    
45     xsection[DataType::QCD_BCtoE_Pt20to30] = 0.2355e9 * 0.00046; //xs 0.2355 mb (filter efficiency=0.00046)
46     // xsection[DataType::QCD_BCtoE_Pt30to80] = 0.0593e9 * 0.00234; //xs 0.0593 mb, total 138762 pb
47     xsection[DataType::QCD_BCtoE_Pt30to80] = 136800; // From twiki.cern.ch/twiki/bin/view/CMS/CrossSectionDetails
48     // xsection[DataType::QCD_BCtoE_Pt80to170] = 0.906e6 * 0.0104; //xs 0.906e-3 mb, total 9422 pb
49     xsection[DataType::QCD_BCtoE_Pt80to170] = 9360; // From twiki.cern.ch/twiki/bin/view/CMS/CrossSectionDetails
50    
51     xsection[DataType::PhotonJets_Pt40to100] = 23620.; //pb
52     xsection[DataType::PhotonJets_Pt100to200] = 3476.; //pb
53     xsection[DataType::PhotonJets_Pt200toInf] = 485.; //pb
54    
55     xsection[DataType::WWtoAnything] = 43.; //pb
56     xsection[DataType::WZtoAnything] = 18.; //pb
57     xsection[DataType::ZZtoAnything] = 5.9; //pb
58    
59     xsection[DataType::singleTop_And_W] = 10.6; //xs 11 pb (NLO MCFM) inclusive t,W decay
60     xsection[DataType::singleTopTChannel] = 21.53;
61     xsection[DataType::singleTopSChannel] = 1.40; //=4.21/3 15Jul
62    
63     xsection[DataType::VQQ] = 36.;
64     xsection[DataType::Zprime_M500GeV_W5GeV] = 50;
65     xsection[DataType::Zprime_M500GeV_W50GeV] = 50;
66     xsection[DataType::Zprime_M750GeV_W7500MeV] = 50;
67     xsection[DataType::Zprime_M1TeV_W10GeV] = 50;
68     xsection[DataType::Zprime_M1TeV_W100GeV] = 50;
69     xsection[DataType::Zprime_M1250GeV_W12500MeV] = 50;
70     xsection[DataType::Zprime_M1500GeV_W15GeV] = 50;
71     xsection[DataType::Zprime_M1500GeV_W150GeV] = 50;
72     xsection[DataType::Zprime_M2TeV_W20GeV] = 50;
73     xsection[DataType::Zprime_M2TeV_W200GeV] = 50;
74     xsection[DataType::Zprime_M3TeV_W30GeV] = 50;
75     xsection[DataType::Zprime_M3TeV_W300GeV] = 50;
76     xsection[DataType::Zprime_M4TeV_W40GeV] = 50;
77     xsection[DataType::Zprime_M4TeV_W400GeV] = 50;
78     xsection[DataType::WprimeTToTTD_M400] = 32;
79     xsection[DataType::WprimeTToTTD_M600] = 8;
80     xsection[DataType::WprimeTToTTD_M800] = 2.2;
81     xsection[DataType::WprimeTToTTD_M1000] = 0.72;
82     xsection[DataType::WprimeToTBbar_M1000] = 8;
83     return xsection;
84     }
85    
86     EventWeightProvider::EventWeightProvider(float lumiInInversePb, unsigned short tev, std::string pileUpEstimationFile) :
87     lumiInInversePb(lumiInInversePb),
88     tev(tev),
89     useSkimEff(true),
90     xsection(),
91     estimatedPileUp(getPileUpHistogram(pileUpEstimationFile)),
92     pileUpWeights(),
93     numberOfEventsWithTooHighPileUp(0),
94     numberOfProcessedEvents(),
95     numberOfPattplSkimEvents(),
96     numberOfNtplSkimEvents(),
97     numberOfElectronSkimEvents(),
98     numberOfMuonSkimEvents()
99     {
100     generate_flat10_weights();
101     if (tev == 7)
102     xsection = sevenTeV::getXSections();
103     defineNumberOfProducedEvents();
104     // defineNumberOfSkimmedEvents();
105     }
106    
107     void EventWeightProvider::defineNumberOfProducedEvents() {
108     numberOfProcessedEvents[DataType::DATA] = 0;
109    
110    
111     /*
112     numberOfProcessedEvents[DataType::ttjets] = 3688248; // V8 PATtuple
113     numberOfPattplSkimEvents[DataType::ttjets] = 3683795; // V8 PATtuple
114     numberOfNtplSkimEvents[DataType::ttjets] = 1173710; // V8 PATtuple
115     numberOfElectronSkimEvents[DataType::ttjets] = 727781; // V8 PATtuple
116     numberOfMuonSkimEvents[DataType::ttjets] = 510117; // V8 PATtuple
117     */
118     // PATtuple /TTJets_TuneZ2_7TeV-madgraph-tauola/srappocc-ttbsm_v8_Summer11-PU_S4_START42_V11-v1-5c91b0700768331a44f51c8a9892d391/USER
119    
120     numberOfProcessedEvents[DataType::ttjets] = 3701947 ; // V9 PATtuple
121     numberOfPattplSkimEvents[DataType::ttjets] = 3697476; // V9 PATtuple
122     numberOfNtplSkimEvents[DataType::ttjets] = 1348512; // V9 PATtuple
123     numberOfElectronSkimEvents[DataType::ttjets] = 730452; // V9 PATtuple
124     numberOfMuonSkimEvents[DataType::ttjets] = 716210; // V9 PATtuple
125     // PATtuple /TTJets_TuneZ2_7TeV-madgraph-tauola/srappocc-ttbsm_v9_Summer11-PU_S4_START42_V11-v1-bf57a985b107a689982b667a3f2f23c7/USER
126    
127     /*
128     // numberOfProcessedEvents[DataType::ttjets] = 3701947; // v2 AOD ntuple original dataset number
129     numberOfProcessedEvents[DataType::ttjets] = 3664929; // v2 AOD ntuple, two jobs failed
130     numberOfPattplSkimEvents[DataType::ttjets] = 3664929; // v2 AOD ntuple
131     numberOfNtplSkimEvents[DataType::ttjets] = 1687141; // v2 AOD ntuple
132     numberOfElectronSkimEvents[DataType::ttjets] = 1123778; // v2 AOD ntuple
133     numberOfMuonSkimEvents[DataType::ttjets] = 738210; // v2 AOD ntuple
134     */
135    
136     // numberOfProcessedEvents[DataType::ttjets] = 3652589; // TTJets_TuneZ2_7TeV-madgraph-tauola_Summer11-PU_S4_START42_V11-v2_AODSIM_CMSSW_4_2_4_Ov3.5 04/08/2011
137     // numberOfNtplSkimEvents[DataType::ttjets] = 1696252; // Previous ntuple collection
138     // numberOfElectronSkimEvents[DataType::ttjets] = 1129134;
139     // numberOfMuonSkimEvents[DataType::ttjets] = 742786;
140    
141     // numberOfProcessedEvents[DataType::ttbar] = 3570035;
142     numberOfProcessedEvents[DataType::ttbar] = 1089625; // TT_TuneZ2_7TeV-pythia6-tauola_Summer11-PU_S3_START42_V11-v2_AODSIM. Checked 21/07/11
143     // numberOfProcessedEvents[DataType::Zjets] = 34016401;
144     numberOfProcessedEvents[DataType::Zjets] = 32512091;
145     numberOfPattplSkimEvents[DataType::Zjets] = 32475188;
146     numberOfNtplSkimEvents[DataType::Zjets] = 15161964;
147     numberOfElectronSkimEvents[DataType::Zjets] = 7503990;
148     numberOfMuonSkimEvents[DataType::Zjets] = 7680017;
149     // Previous values before LoosePFlow
150     // numberOfNtplSkimEvents[DataType::Zjets] = 16354092;
151     // numberOfElectronSkimEvents[DataType::Zjets] = 8390919;
152     // numberOfMuonSkimEvents[DataType::Zjets] = 8056270;
153     // PATtuple V8 /DYJetsToLL_TuneZ2_M-50_7TeV-madgraph-tauola/skhalil-ttbsm_v8_Summer11-PU_S4_START42_V11-v1-87037ef7c828ea57e128f1ace23a632e/USER
154    
155     // numberOfProcessedEvents[DataType::Wjets] = 54895290; // Old AOD dataset
156     // numberOfNtplSkimEvents[DataType::Wjets] = 17166386; // previous
157     // numberOfElectronSkimEvents[DataType::Wjets] = 8630776; // previous
158     // numberOfMuonSkimEvents[DataType::Wjets] = 8587398; // previous
159    
160     // numberOfProcessedEvents[DataType::Wjets] = 49484941;
161     // numberOfPattplSkimEvents[DataType::Wjets] = 49335978;
162     // numberOfNtplSkimEvents[DataType::Wjets] = 15175745;
163     // numberOfElectronSkimEvents[DataType::Wjets] = 7365443;
164     // numberOfMuonSkimEvents[DataType::Wjets] = 7817858;
165     // PATtuple V8 /WJetsToLNu_TuneZ2_7TeV-madgraph-tauola/srappocc-ttbsm_v8_Summer11-PU_S4_START42_V11-v1-87037ef7c828ea57e128f1ace23a632e/USER
166     numberOfProcessedEvents[DataType::Wjets] = 77105816;
167     numberOfPattplSkimEvents[DataType::Wjets] = 76978604;
168     numberOfNtplSkimEvents[DataType::Wjets] = 24580667;
169     numberOfElectronSkimEvents[DataType::Wjets] = 11449725;
170     numberOfMuonSkimEvents[DataType::Wjets] = 13144761;
171     // PATtuple V9 /WJetsToLNu_TuneZ2_7TeV-madgraph-tauola/dstrom-prod_2011_10_05_17_14_11-bf57a985b107a689982b667a3f2f23c7/USER
172    
173     numberOfProcessedEvents[DataType::WToENu] = 5334220; // Checked 21/07/11
174     numberOfPattplSkimEvents[DataType::WToENu] = 5334220;
175     numberOfNtplSkimEvents[DataType::WToENu] = 2662025;
176     numberOfElectronSkimEvents[DataType::WToENu] = 2662025;
177     numberOfMuonSkimEvents[DataType::WToENu] = 0;
178    
179     numberOfProcessedEvents[DataType::QCD_Flat_15to3000] = 10960800;
180     // numberOfPattplSkimEvents[DataType::QCD_Flat_15to3000] = 10929635; // According to PATtple twiki
181     numberOfPattplSkimEvents[DataType::QCD_Flat_15to3000] = 10751721; // Actual received
182     numberOfNtplSkimEvents[DataType::QCD_Flat_15to3000] = 163974;
183     numberOfElectronSkimEvents[DataType::QCD_Flat_15to3000] = 163906;
184     numberOfMuonSkimEvents[DataType::QCD_Flat_15to3000] = 70;
185     // Previous values before LoosePFlow
186     // numberOfNtplSkimEvents[DataType::QCD_Flat_15to3000] = 1010202;
187     // numberOfElectronSkimEvents[DataType::QCD_Flat_15to3000] = 775300;
188     // numberOfMuonSkimEvents[DataType::QCD_Flat_15to3000] = 256834;
189     // PATtuple V8 /QCD_Pt-15to3000_TuneZ2_Flat_7TeV_pythia6/srappocc-ttbsm_v8_Summer11-PU_S3_-START42_V11-v2-d870fa9b0dd695e8eb649b7e725d070f/USER
190     numberOfProcessedEvents[DataType::QCD_EMEnriched_Pt20to30] = 22529376;
191     numberOfProcessedEvents[DataType::QCD_EMEnriched_Pt30to80] = 36409308;
192    
193     numberOfProcessedEvents[DataType::QCD_EMEnriched_Pt80to170] = 8150672;
194     numberOfPattplSkimEvents[DataType::QCD_EMEnriched_Pt80to170] = 5078282; // Actual received
195     numberOfNtplSkimEvents[DataType::QCD_EMEnriched_Pt80to170] = 123843;
196     numberOfElectronSkimEvents[DataType::QCD_EMEnriched_Pt80to170] = 123744;
197     numberOfMuonSkimEvents[DataType::QCD_EMEnriched_Pt80to170] = 101;
198    
199     numberOfProcessedEvents[DataType::QCD_BCtoE_Pt20to30] = 2081560; // Checked 21/07/11
200    
201     numberOfProcessedEvents[DataType::QCD_BCtoE_Pt30to80] = 2030033; // Checked 19/08/11
202     numberOfPattplSkimEvents[DataType::QCD_BCtoE_Pt30to80] = 2004505; // Actual received
203     numberOfNtplSkimEvents[DataType::QCD_BCtoE_Pt30to80] = 98332;
204     numberOfElectronSkimEvents[DataType::QCD_BCtoE_Pt30to80] = 98318;
205     numberOfMuonSkimEvents[DataType::QCD_BCtoE_Pt30to80] = 17;
206    
207     numberOfProcessedEvents[DataType::QCD_BCtoE_Pt80to170] = 1082691; // Checked 19/08/11
208     numberOfPattplSkimEvents[DataType::QCD_BCtoE_Pt80to170] = 362356; // Actual received
209     numberOfNtplSkimEvents[DataType::QCD_BCtoE_Pt80to170] = 63109;
210     numberOfElectronSkimEvents[DataType::QCD_BCtoE_Pt80to170] = 63092;
211     numberOfMuonSkimEvents[DataType::QCD_BCtoE_Pt80to170] = 22;
212    
213     numberOfProcessedEvents[DataType::QCD_MuEnriched_Pt20Pt15] = 24324525; // Number missing, just use received
214     numberOfPattplSkimEvents[DataType::QCD_MuEnriched_Pt20Pt15] = 24324525; // Actual received
215     numberOfNtplSkimEvents[DataType::QCD_MuEnriched_Pt20Pt15] = 2711630;
216     numberOfElectronSkimEvents[DataType::QCD_MuEnriched_Pt20Pt15] = 80370;
217     numberOfMuonSkimEvents[DataType::QCD_MuEnriched_Pt20Pt15] = 2650602;
218    
219     numberOfProcessedEvents[DataType::PhotonJets_Pt40to100] = 2217101;
220     numberOfProcessedEvents[DataType::PhotonJets_Pt100to200] = 1065691;
221     numberOfProcessedEvents[DataType::PhotonJets_Pt200toInf] = 1079950;
222    
223     numberOfProcessedEvents[DataType::WWtoAnything] = 2039440;
224     numberOfProcessedEvents[DataType::WZtoAnything] = 2085696;
225     numberOfProcessedEvents[DataType::ZZtoAnything] = 2108608;
226    
227     numberOfProcessedEvents[DataType::singleTop_And_W] = 489417;
228     numberOfProcessedEvents[DataType::singleTopTChannel] = 484060;
229     numberOfProcessedEvents[DataType::singleTopSChannel] = 494967;
230     numberOfProcessedEvents[DataType::VQQ] = 720613;
231     numberOfProcessedEvents[DataType::Zprime_M500GeV_W5GeV] = 227068;
232     numberOfProcessedEvents[DataType::Zprime_M500GeV_W50GeV] = 238963;
233     numberOfProcessedEvents[DataType::Zprime_M750GeV_W7500MeV] = 204819;
234     numberOfProcessedEvents[DataType::Zprime_M1TeV_W10GeV] = 213384;
235     numberOfProcessedEvents[DataType::Zprime_M1TeV_W100GeV] = 200387;
236     numberOfProcessedEvents[DataType::Zprime_M1250GeV_W12500MeV] = 233361;
237     numberOfProcessedEvents[DataType::Zprime_M1500GeV_W15GeV] = 193779;
238     numberOfProcessedEvents[DataType::Zprime_M1500GeV_W150GeV] = 199121;
239     numberOfProcessedEvents[DataType::Zprime_M2TeV_W20GeV] = 238752;
240     numberOfProcessedEvents[DataType::Zprime_M2TeV_W200GeV] = 213363;
241     numberOfProcessedEvents[DataType::Zprime_M3TeV_W30GeV] = 205270;
242     numberOfProcessedEvents[DataType::Zprime_M3TeV_W300GeV] = 229034;
243     numberOfProcessedEvents[DataType::Zprime_M4TeV_W40GeV] = 183920;
244     numberOfProcessedEvents[DataType::Zprime_M4TeV_W400GeV] = 238142;
245    
246     numberOfProcessedEvents[DataType::WprimeTToTTD_M400] = 96990; // V9
247     numberOfPattplSkimEvents[DataType::WprimeTToTTD_M400] = 96698;
248     numberOfNtplSkimEvents[DataType::WprimeTToTTD_M400] = 37674;
249     numberOfElectronSkimEvents[DataType::WprimeTToTTD_M400] = 21097;
250     numberOfMuonSkimEvents[DataType::WprimeTToTTD_M400] = 19681;
251    
252     // numberOfProcessedEvents[DataType::WprimeTToTTD_M600] = 96500; // Muonless generation
253     // numberOfPattplSkimEvents[DataType::WprimeTToTTD_M600] = 34552; // After generator filter
254     // numberOfNtplSkimEvents[DataType::WprimeTToTTD_M600] = 25535;
255     // numberOfElectronSkimEvents[DataType::WprimeTToTTD_M600] = 22774;
256     // numberOfMuonSkimEvents[DataType::WprimeTToTTD_M600] = 7012;
257    
258     numberOfProcessedEvents[DataType::WprimeTToTTD_M600] = 86991; // With muons
259     numberOfPattplSkimEvents[DataType::WprimeTToTTD_M600] = 86601;
260     numberOfElectronSkimEvents[DataType::WprimeTToTTD_M600] = 19580;
261     numberOfNtplSkimEvents[DataType::WprimeTToTTD_M600] = 29439; // V8 prescription
262     numberOfMuonSkimEvents[DataType::WprimeTToTTD_M600] = 11656; // V8
263     // numberOfNtplSkimEvents[DataType::WprimeTToTTD_M600] = 35447;// V9
264     // numberOfMuonSkimEvents[DataType::WprimeTToTTD_M600] = 19127; // V9
265    
266     numberOfProcessedEvents[DataType::WprimeTToTTD_M800] = 84993;
267     numberOfPattplSkimEvents[DataType::WprimeTToTTD_M800] = 84416;
268     numberOfNtplSkimEvents[DataType::WprimeTToTTD_M800] = 29269; // V8
269     numberOfMuonSkimEvents[DataType::WprimeTToTTD_M800] = 11363;
270     // numberOfNtplSkimEvents[DataType::WprimeTToTTD_M800] = 35916; // V9
271     // numberOfMuonSkimEvents[DataType::WprimeTToTTD_M800] = 19677; // V9
272     numberOfElectronSkimEvents[DataType::WprimeTToTTD_M800] = 19619;
273    
274     // numberOfProcessedEvents[DataType::WprimeTToTTD_M1000] = 93000; // From Khristian's e-mail, muonless generation
275     // numberOfPattplSkimEvents[DataType::WprimeTToTTD_M1000] = 35600; // After generator filter
276     // numberOfNtplSkimEvents[DataType::WprimeTToTTD_M1000] = 26563;
277     // numberOfElectronSkimEvents[DataType::WprimeTToTTD_M1000] = 23025;
278     // numberOfMuonSkimEvents[DataType::WprimeTToTTD_M1000] = 8849;
279     numberOfProcessedEvents[DataType::WprimeTToTTD_M1000] = 94996; // With muons
280     numberOfPattplSkimEvents[DataType::WprimeTToTTD_M1000] = 94145;
281     numberOfElectronSkimEvents[DataType::WprimeTToTTD_M1000] = 21854;
282     // numberOfNtplSkimEvents[DataType::WprimeTToTTD_M1000] = 40756; // V9
283     // numberOfMuonSkimEvents[DataType::WprimeTToTTD_M1000] = 22898; // V9
284     numberOfNtplSkimEvents[DataType::WprimeTToTTD_M1000] = 32039; // V8
285     numberOfMuonSkimEvents[DataType::WprimeTToTTD_M1000] = 12054; // V8
286    
287     numberOfProcessedEvents[DataType::WprimeToTBbar_M1000] = 110000; // Checked 21/07/11
288     }
289    
290     EventWeightProvider::~EventWeightProvider() {
291    
292     }
293    
294     double EventWeightProvider::getWeight(DataType::value type) {
295     if (type == DataType::DATA)
296     return 1.;
297     else
298     return xsection[type] * lumiInInversePb / numberOfProcessedEvents[type];
299     }
300    
301     float EventWeightProvider::reweightPileUp(unsigned int numberOfVertices){
302     if(numberOfVertices >= pileUpWeights.size()){
303     ++numberOfEventsWithTooHighPileUp;
304     return 0.;
305     }
306    
307     return pileUpWeights.at(numberOfVertices);
308     }
309    
310     boost::shared_ptr<TH1D> EventWeightProvider::getPileUpHistogram(std::string pileUpEstimationFile){
311     std::cout << "Using pile-up estimation file " << pileUpEstimationFile << std::endl;
312     boost::scoped_ptr<TFile> file(TFile::Open(pileUpEstimationFile.c_str()));
313     boost::shared_ptr<TH1D> pileUp((TH1D*) file->Get("pileup")->Clone());
314     file->Close();
315     return pileUp;
316     }
317    
318     void EventWeightProvider::generate_flat10_weights(){
319     // see SimGeneral/MixingModule/python/mix_E7TeV_FlatDist10_2011EarlyData_inTimeOnly_cfi.py; copy and paste from there:
320     const boost::array<double, 25> npu_probs = {{0.0698146584, 0.0698146584, 0.0698146584,0.0698146584,0.0698146584,0.0698146584,0.0698146584,0.0698146584,0.0698146584,0.0698146584,0.0698146584 /* <-- 10*/,
321     0.0630151648,0.0526654164,0.0402754482,0.0292988928,0.0194384503,0.0122016783,0.007207042,0.004003637,0.0020278322,
322     0.0010739954,0.0004595759,0.0002229748,0.0001028162,4.58337152809607E-05 /* <-- 24 */}};
323     double s = 0.0;
324     for (unsigned int npu = 0; npu < npu_probs.size(); ++npu) {
325     double npu_estimated = estimatedPileUp->GetBinContent(estimatedPileUp->GetXaxis()->FindBin(npu));
326     pileUpWeights[npu] = npu_estimated / npu_probs[npu];
327     s += npu_estimated;
328     }
329     // normalize weights such that the total sum of weights over thw whole sample is 1.0, i.e., sum_i result[i] * npu_probs[i] should be 1.0 (!)
330     for (unsigned int npu = 0; npu < pileUpWeights.size(); ++npu) {
331     pileUpWeights[npu] /= s;
332     }
333     }
334    
335     unsigned long EventWeightProvider::getNumberOfEventsWithTooHighPileUp() const{
336     return numberOfEventsWithTooHighPileUp;
337     }
338    
339     } // namespace BAT