ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/dhidas/OSUAnalysis/Tools/src/EventWeightProvider.cpp
Revision: 1.3
Committed: Sun Dec 18 16:37:29 2011 UTC (13 years, 5 months ago) by clseitz
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +35 -71 lines
Log Message:
general update

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 clseitz 1.2
79     //cross section S-channel only
80    
81     //xsection[DataType::WprimeTToTTD_M600] = 8;
82     // xsection[DataType::WprimeTToTTD_M800] = 2.2;
83     //xsection[DataType::WprimeTToTTD_M1000] = 0.72;
84     xsection[DataType::WprimeToTBbar_M1000] = 8;
85 clseitz 1.3
86     xsection[DataType::WprimeTToTTD_M400] = 70.3;
87 clseitz 1.2 xsection[DataType::WprimeTToTTD_M600] = 18.2;
88     xsection[DataType::WprimeTToTTD_M800] = 6.5;
89 clseitz 1.3 xsection[DataType::WprimeTToTTD_M1000] = 2.8;
90     xsection[DataType::WprimeTToTTD_M1200] = 1.4;
91 clseitz 1.2
92    
93 dhidas 1.1 xsection[DataType::WprimeTToTTD_M1000] = 0.72;
94 clseitz 1.2
95 dhidas 1.1 return xsection;
96     }
97    
98     EventWeightProvider::EventWeightProvider(float lumiInInversePb, unsigned short tev, std::string pileUpEstimationFile) :
99     lumiInInversePb(lumiInInversePb),
100     tev(tev),
101     useSkimEff(true),
102     xsection(),
103     estimatedPileUp(getPileUpHistogram(pileUpEstimationFile)),
104     pileUpWeights(),
105     numberOfEventsWithTooHighPileUp(0),
106     numberOfProcessedEvents(),
107     numberOfPattplSkimEvents(),
108     numberOfNtplSkimEvents(),
109     numberOfElectronSkimEvents(),
110     numberOfMuonSkimEvents()
111     {
112     generate_flat10_weights();
113     if (tev == 7)
114     xsection = sevenTeV::getXSections();
115     defineNumberOfProducedEvents();
116     // defineNumberOfSkimmedEvents();
117     }
118    
119     void EventWeightProvider::defineNumberOfProducedEvents() {
120     numberOfProcessedEvents[DataType::DATA] = 0;
121    
122    
123     /*
124     numberOfProcessedEvents[DataType::ttjets] = 3688248; // V8 PATtuple
125     numberOfPattplSkimEvents[DataType::ttjets] = 3683795; // V8 PATtuple
126     numberOfNtplSkimEvents[DataType::ttjets] = 1173710; // V8 PATtuple
127     numberOfElectronSkimEvents[DataType::ttjets] = 727781; // V8 PATtuple
128     numberOfMuonSkimEvents[DataType::ttjets] = 510117; // V8 PATtuple
129     */
130     // PATtuple /TTJets_TuneZ2_7TeV-madgraph-tauola/srappocc-ttbsm_v8_Summer11-PU_S4_START42_V11-v1-5c91b0700768331a44f51c8a9892d391/USER
131    
132     numberOfProcessedEvents[DataType::ttjets] = 3701947 ; // V9 PATtuple
133     numberOfPattplSkimEvents[DataType::ttjets] = 3697476; // V9 PATtuple
134     numberOfNtplSkimEvents[DataType::ttjets] = 1348512; // V9 PATtuple
135     numberOfElectronSkimEvents[DataType::ttjets] = 730452; // V9 PATtuple
136     numberOfMuonSkimEvents[DataType::ttjets] = 716210; // V9 PATtuple
137     // PATtuple /TTJets_TuneZ2_7TeV-madgraph-tauola/srappocc-ttbsm_v9_Summer11-PU_S4_START42_V11-v1-bf57a985b107a689982b667a3f2f23c7/USER
138    
139     /*
140     // numberOfProcessedEvents[DataType::ttjets] = 3701947; // v2 AOD ntuple original dataset number
141     numberOfProcessedEvents[DataType::ttjets] = 3664929; // v2 AOD ntuple, two jobs failed
142     numberOfPattplSkimEvents[DataType::ttjets] = 3664929; // v2 AOD ntuple
143     numberOfNtplSkimEvents[DataType::ttjets] = 1687141; // v2 AOD ntuple
144     numberOfElectronSkimEvents[DataType::ttjets] = 1123778; // v2 AOD ntuple
145     numberOfMuonSkimEvents[DataType::ttjets] = 738210; // v2 AOD ntuple
146     */
147    
148     // 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
149     // numberOfNtplSkimEvents[DataType::ttjets] = 1696252; // Previous ntuple collection
150     // numberOfElectronSkimEvents[DataType::ttjets] = 1129134;
151     // numberOfMuonSkimEvents[DataType::ttjets] = 742786;
152    
153     // numberOfProcessedEvents[DataType::ttbar] = 3570035;
154     numberOfProcessedEvents[DataType::ttbar] = 1089625; // TT_TuneZ2_7TeV-pythia6-tauola_Summer11-PU_S3_START42_V11-v2_AODSIM. Checked 21/07/11
155     // numberOfProcessedEvents[DataType::Zjets] = 34016401;
156     numberOfProcessedEvents[DataType::Zjets] = 32512091;
157     numberOfPattplSkimEvents[DataType::Zjets] = 32475188;
158     numberOfNtplSkimEvents[DataType::Zjets] = 15161964;
159     numberOfElectronSkimEvents[DataType::Zjets] = 7503990;
160     numberOfMuonSkimEvents[DataType::Zjets] = 7680017;
161     // Previous values before LoosePFlow
162     // numberOfNtplSkimEvents[DataType::Zjets] = 16354092;
163     // numberOfElectronSkimEvents[DataType::Zjets] = 8390919;
164     // numberOfMuonSkimEvents[DataType::Zjets] = 8056270;
165     // PATtuple V8 /DYJetsToLL_TuneZ2_M-50_7TeV-madgraph-tauola/skhalil-ttbsm_v8_Summer11-PU_S4_START42_V11-v1-87037ef7c828ea57e128f1ace23a632e/USER
166    
167     // numberOfProcessedEvents[DataType::Wjets] = 54895290; // Old AOD dataset
168     // numberOfNtplSkimEvents[DataType::Wjets] = 17166386; // previous
169     // numberOfElectronSkimEvents[DataType::Wjets] = 8630776; // previous
170     // numberOfMuonSkimEvents[DataType::Wjets] = 8587398; // previous
171    
172     // numberOfProcessedEvents[DataType::Wjets] = 49484941;
173     // numberOfPattplSkimEvents[DataType::Wjets] = 49335978;
174     // numberOfNtplSkimEvents[DataType::Wjets] = 15175745;
175     // numberOfElectronSkimEvents[DataType::Wjets] = 7365443;
176     // numberOfMuonSkimEvents[DataType::Wjets] = 7817858;
177     // PATtuple V8 /WJetsToLNu_TuneZ2_7TeV-madgraph-tauola/srappocc-ttbsm_v8_Summer11-PU_S4_START42_V11-v1-87037ef7c828ea57e128f1ace23a632e/USER
178     numberOfProcessedEvents[DataType::Wjets] = 77105816;
179     numberOfPattplSkimEvents[DataType::Wjets] = 76978604;
180     numberOfNtplSkimEvents[DataType::Wjets] = 24580667;
181     numberOfElectronSkimEvents[DataType::Wjets] = 11449725;
182     numberOfMuonSkimEvents[DataType::Wjets] = 13144761;
183     // PATtuple V9 /WJetsToLNu_TuneZ2_7TeV-madgraph-tauola/dstrom-prod_2011_10_05_17_14_11-bf57a985b107a689982b667a3f2f23c7/USER
184    
185     numberOfProcessedEvents[DataType::WToENu] = 5334220; // Checked 21/07/11
186     numberOfPattplSkimEvents[DataType::WToENu] = 5334220;
187     numberOfNtplSkimEvents[DataType::WToENu] = 2662025;
188     numberOfElectronSkimEvents[DataType::WToENu] = 2662025;
189     numberOfMuonSkimEvents[DataType::WToENu] = 0;
190    
191     numberOfProcessedEvents[DataType::QCD_Flat_15to3000] = 10960800;
192     // numberOfPattplSkimEvents[DataType::QCD_Flat_15to3000] = 10929635; // According to PATtple twiki
193     numberOfPattplSkimEvents[DataType::QCD_Flat_15to3000] = 10751721; // Actual received
194     numberOfNtplSkimEvents[DataType::QCD_Flat_15to3000] = 163974;
195     numberOfElectronSkimEvents[DataType::QCD_Flat_15to3000] = 163906;
196     numberOfMuonSkimEvents[DataType::QCD_Flat_15to3000] = 70;
197     // Previous values before LoosePFlow
198     // numberOfNtplSkimEvents[DataType::QCD_Flat_15to3000] = 1010202;
199     // numberOfElectronSkimEvents[DataType::QCD_Flat_15to3000] = 775300;
200     // numberOfMuonSkimEvents[DataType::QCD_Flat_15to3000] = 256834;
201     // PATtuple V8 /QCD_Pt-15to3000_TuneZ2_Flat_7TeV_pythia6/srappocc-ttbsm_v8_Summer11-PU_S3_-START42_V11-v2-d870fa9b0dd695e8eb649b7e725d070f/USER
202     numberOfProcessedEvents[DataType::QCD_EMEnriched_Pt20to30] = 22529376;
203     numberOfProcessedEvents[DataType::QCD_EMEnriched_Pt30to80] = 36409308;
204    
205     numberOfProcessedEvents[DataType::QCD_EMEnriched_Pt80to170] = 8150672;
206     numberOfPattplSkimEvents[DataType::QCD_EMEnriched_Pt80to170] = 5078282; // Actual received
207 clseitz 1.3
208 dhidas 1.1
209     numberOfProcessedEvents[DataType::QCD_BCtoE_Pt20to30] = 2081560; // Checked 21/07/11
210    
211     numberOfProcessedEvents[DataType::QCD_BCtoE_Pt30to80] = 2030033; // Checked 19/08/11
212     numberOfPattplSkimEvents[DataType::QCD_BCtoE_Pt30to80] = 2004505; // Actual received
213     numberOfNtplSkimEvents[DataType::QCD_BCtoE_Pt30to80] = 98332;
214     numberOfElectronSkimEvents[DataType::QCD_BCtoE_Pt30to80] = 98318;
215     numberOfMuonSkimEvents[DataType::QCD_BCtoE_Pt30to80] = 17;
216    
217     numberOfProcessedEvents[DataType::QCD_BCtoE_Pt80to170] = 1082691; // Checked 19/08/11
218     numberOfPattplSkimEvents[DataType::QCD_BCtoE_Pt80to170] = 362356; // Actual received
219     numberOfNtplSkimEvents[DataType::QCD_BCtoE_Pt80to170] = 63109;
220     numberOfElectronSkimEvents[DataType::QCD_BCtoE_Pt80to170] = 63092;
221     numberOfMuonSkimEvents[DataType::QCD_BCtoE_Pt80to170] = 22;
222    
223     numberOfProcessedEvents[DataType::QCD_MuEnriched_Pt20Pt15] = 24324525; // Number missing, just use received
224     numberOfPattplSkimEvents[DataType::QCD_MuEnriched_Pt20Pt15] = 24324525; // Actual received
225     numberOfNtplSkimEvents[DataType::QCD_MuEnriched_Pt20Pt15] = 2711630;
226     numberOfElectronSkimEvents[DataType::QCD_MuEnriched_Pt20Pt15] = 80370;
227     numberOfMuonSkimEvents[DataType::QCD_MuEnriched_Pt20Pt15] = 2650602;
228    
229     numberOfProcessedEvents[DataType::PhotonJets_Pt40to100] = 2217101;
230     numberOfProcessedEvents[DataType::PhotonJets_Pt100to200] = 1065691;
231     numberOfProcessedEvents[DataType::PhotonJets_Pt200toInf] = 1079950;
232    
233     numberOfProcessedEvents[DataType::WWtoAnything] = 2039440;
234     numberOfProcessedEvents[DataType::WZtoAnything] = 2085696;
235     numberOfProcessedEvents[DataType::ZZtoAnything] = 2108608;
236    
237     numberOfProcessedEvents[DataType::singleTop_And_W] = 489417;
238     numberOfProcessedEvents[DataType::singleTopTChannel] = 484060;
239     numberOfProcessedEvents[DataType::singleTopSChannel] = 494967;
240     numberOfProcessedEvents[DataType::VQQ] = 720613;
241     numberOfProcessedEvents[DataType::Zprime_M500GeV_W5GeV] = 227068;
242     numberOfProcessedEvents[DataType::Zprime_M500GeV_W50GeV] = 238963;
243     numberOfProcessedEvents[DataType::Zprime_M750GeV_W7500MeV] = 204819;
244     numberOfProcessedEvents[DataType::Zprime_M1TeV_W10GeV] = 213384;
245     numberOfProcessedEvents[DataType::Zprime_M1TeV_W100GeV] = 200387;
246     numberOfProcessedEvents[DataType::Zprime_M1250GeV_W12500MeV] = 233361;
247     numberOfProcessedEvents[DataType::Zprime_M1500GeV_W15GeV] = 193779;
248     numberOfProcessedEvents[DataType::Zprime_M1500GeV_W150GeV] = 199121;
249     numberOfProcessedEvents[DataType::Zprime_M2TeV_W20GeV] = 238752;
250     numberOfProcessedEvents[DataType::Zprime_M2TeV_W200GeV] = 213363;
251     numberOfProcessedEvents[DataType::Zprime_M3TeV_W30GeV] = 205270;
252     numberOfProcessedEvents[DataType::Zprime_M3TeV_W300GeV] = 229034;
253     numberOfProcessedEvents[DataType::Zprime_M4TeV_W40GeV] = 183920;
254     numberOfProcessedEvents[DataType::Zprime_M4TeV_W400GeV] = 238142;
255    
256 clseitz 1.3 numberOfProcessedEvents[DataType::WprimeTToTTD_M400] = 499956; // V9
257     numberOfNtplSkimEvents[DataType::WprimeTToTTD_M400] = 190954;
258     numberOfNtplSkimEvents[DataType::WprimeTToTTD_M400] = 1;
259     numberOfElectronSkimEvents[DataType::WprimeTToTTD_M400] = 1;
260     numberOfMuonSkimEvents[DataType::WprimeTToTTD_M400] = 1;
261    
262    
263     numberOfProcessedEvents[DataType::WprimeTToTTD_M600] =749928; // With muons
264     numberOfNtplSkimEvents[DataType::WprimeTToTTD_M600] = 299938; // V8 prescription
265     numberOfNtplSkimEvents[DataType::WprimeTToTTD_M600] = 1;
266     numberOfElectronSkimEvents[DataType::WprimeTToTTD_M600] = 1;
267     numberOfMuonSkimEvents[DataType::WprimeTToTTD_M600] = 1;
268    
269     numberOfProcessedEvents[DataType::WprimeTToTTD_M800] = 689950;
270     numberOfNtplSkimEvents[DataType::WprimeTToTTD_M800] = 283455;
271     numberOfNtplSkimEvents[DataType::WprimeTToTTD_M800] = 1;
272     numberOfElectronSkimEvents[DataType::WprimeTToTTD_M800] = 1;
273     numberOfMuonSkimEvents[DataType::WprimeTToTTD_M800] = 1;
274    
275     numberOfProcessedEvents[DataType::WprimeTToTTD_M1000] = 499952; // With muons
276     numberOfNtplSkimEvents[DataType::WprimeTToTTD_M1000] = 208408; // V8
277     numberOfNtplSkimEvents[DataType::WprimeTToTTD_M1000] = 1;
278     numberOfElectronSkimEvents[DataType::WprimeTToTTD_M1000] = 1;
279     numberOfMuonSkimEvents[DataType::WprimeTToTTD_M1000] = 1;
280    
281     numberOfProcessedEvents[DataType::WprimeTToTTD_M1200] = 499954; // V9
282     numberOfNtplSkimEvents[DataType::WprimeTToTTD_M1200] = 210556;
283     numberOfNtplSkimEvents[DataType::WprimeTToTTD_M1200] = 1;
284     numberOfElectronSkimEvents[DataType::WprimeTToTTD_M1200] = 1;
285     numberOfMuonSkimEvents[DataType::WprimeTToTTD_M1200] = 1;
286 dhidas 1.1
287     }
288    
289     EventWeightProvider::~EventWeightProvider() {
290    
291     }
292    
293     double EventWeightProvider::getWeight(DataType::value type) {
294     if (type == DataType::DATA)
295     return 1.;
296     else
297     return xsection[type] * lumiInInversePb / numberOfProcessedEvents[type];
298     }
299    
300     float EventWeightProvider::reweightPileUp(unsigned int numberOfVertices){
301     if(numberOfVertices >= pileUpWeights.size()){
302     ++numberOfEventsWithTooHighPileUp;
303     return 0.;
304     }
305    
306     return pileUpWeights.at(numberOfVertices);
307     }
308    
309     boost::shared_ptr<TH1D> EventWeightProvider::getPileUpHistogram(std::string pileUpEstimationFile){
310     std::cout << "Using pile-up estimation file " << pileUpEstimationFile << std::endl;
311     boost::scoped_ptr<TFile> file(TFile::Open(pileUpEstimationFile.c_str()));
312     boost::shared_ptr<TH1D> pileUp((TH1D*) file->Get("pileup")->Clone());
313     file->Close();
314     return pileUp;
315     }
316    
317     void EventWeightProvider::generate_flat10_weights(){
318     // see SimGeneral/MixingModule/python/mix_E7TeV_FlatDist10_2011EarlyData_inTimeOnly_cfi.py; copy and paste from there:
319 clseitz 1.2 //only use this for Wprime with true Mc compared to true data Cert_160404-180252_7TeV_PromptReco_Collisons11_JSON.pileup_v2.root
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    
324    
325     //USE THIS FOR TTBAR with Cert_160404_180252_7TeV_Collisions11_JSON.pileup_v2.root
326     // Summer11 PU_S3 and PU_S4, distribution obtained by only looking at the in-time crossing. This is the "spike+smear" distribution, RECOMMENDED FOR REWEIGHTING.
327     const boost::array<double, 35> npu_probs = {{1.45346E-01, 6.42802E-02, 6.95255E-02, 6.96747E-02, 6.92955E-02, 6.84997E-02, 6.69528E-02, 6.45515E-02, 6.09865E-02, 5.63323E-02, 5.07322E-02, 4.44681E-02, 3.79205E-02, 3.15131E-02, 2.54220E-02, 2.00184E-02, 1.53776E-02, 1.15387E-02, 8.47608E-03, 6.08715E-03, 4.28255E-03, 2.97185E-03, 2.01918E-03, 1.34490E-03, 8.81587E-04, 5.69954E-04, 3.61493E-04, 2.28692E-04, 1.40791E-04, 8.44606E-05, 5.10204E-05, 3.07802E-05, 1.81401E-05, 1.00201E-05, 5.80004E-06 }};
328    
329    
330 dhidas 1.1 double s = 0.0;
331     for (unsigned int npu = 0; npu < npu_probs.size(); ++npu) {
332     double npu_estimated = estimatedPileUp->GetBinContent(estimatedPileUp->GetXaxis()->FindBin(npu));
333     pileUpWeights[npu] = npu_estimated / npu_probs[npu];
334 clseitz 1.2 // std::cout<<npu_estimated
335     //std::cout<<npu<<std::endl;
336 dhidas 1.1 s += npu_estimated;
337     }
338     // 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 (!)
339     for (unsigned int npu = 0; npu < pileUpWeights.size(); ++npu) {
340     pileUpWeights[npu] /= s;
341     }
342     }
343    
344     unsigned long EventWeightProvider::getNumberOfEventsWithTooHighPileUp() const{
345     return numberOfEventsWithTooHighPileUp;
346     }
347    
348     } // namespace BAT