CP3-llbb Framework
PUReweighter.h
1 #pragma once
2 
3 #include <cstdint>
4 #include <map>
5 #include <memory>
6 
7 #include <TH1.h>
8 
9 #include <FWCore/ParameterSet/interface/ParameterSet.h>
10 
11 namespace Framework {
12  enum PUProfile : uint8_t {
13  Spring15_50ns,
14  Spring15_25ns,
15  Fall15_25ns,
16  Spring16_25ns,
17  Moriond17_25ns
18  };
19 
20  PUProfile stringToPUProfile(const std::string&);
21 
22  class PUReweighter {
23  public:
24  PUReweighter(const edm::ParameterSet&, PUProfile mc_pu_profile);
25 
26  float getWeight(float n_interactions);
27 
28  private:
29  std::shared_ptr<TH1> m_pu_weights;
30 
31  std::map<PUProfile, std::vector<float>> m_pu_profiles {
32  {
33  // From https://github.com/cms-sw/cmssw/blob/CMSSW_8_0_X/SimGeneral/MixingModule/python/mix_2016_25ns_Moriond17MC_PoissonOOTPU_cfi.py
34  Moriond17_25ns,
35  {
36  1.78653e-05,
37  2.56602e-05,
38  5.27857e-05,
39  8.88954e-05,
40  0.000109362,
41  0.000140973,
42  0.000240998,
43  0.00071209,
44  0.00130121,
45  0.00245255,
46  0.00502589,
47  0.00919534,
48  0.0146697,
49  0.0204126,
50  0.0267586,
51  0.0337697,
52  0.0401478,
53  0.0450159,
54  0.0490577,
55  0.0524855,
56  0.0548159,
57  0.0559937,
58  0.0554468,
59  0.0537687,
60  0.0512055,
61  0.0476713,
62  0.0435312,
63  0.0393107,
64  0.0349812,
65  0.0307413,
66  0.0272425,
67  0.0237115,
68  0.0208329,
69  0.0182459,
70  0.0160712,
71  0.0142498,
72  0.012804,
73  0.011571,
74  0.010547,
75  0.00959489,
76  0.00891718,
77  0.00829292,
78  0.0076195,
79  0.0069806,
80  0.0062025,
81  0.00546581,
82  0.00484127,
83  0.00407168,
84  0.00337681,
85  0.00269893,
86  0.00212473,
87  0.00160208,
88  0.00117884,
89  0.000859662,
90  0.000569085,
91  0.000365431,
92  0.000243565,
93  0.00015688,
94  9.88128e-05,
95  6.53783e-05,
96  3.73924e-05,
97  2.61382e-05,
98  2.0307e-05,
99  1.73032e-05,
100  1.435e-05,
101  1.36486e-05,
102  1.35555e-05,
103  1.37491e-05,
104  1.34255e-05,
105  1.33987e-05,
106  1.34061e-05,
107  1.34211e-05,
108  1.34177e-05,
109  1.32959e-05,
110  1.33287e-05
111  }
112  },
113  {
114  // From https://github.com/cms-sw/cmssw/blob/CMSSW_8_0_X/SimGeneral/MixingModule/python/mix_2016_25ns_SpringMC_PUScenarioV1_PoissonOOTPU_cfi.py
115  Spring16_25ns,
116  {
117  0.000829312873542,
118  0.00124276120498,
119  0.00339329181587,
120  0.00408224735376,
121  0.00383036590008,
122  0.00659159288946,
123  0.00816022734493,
124  0.00943640833116,
125  0.0137777376066,
126  0.017059392038,
127  0.0213193035468,
128  0.0247343174676,
129  0.0280848773878,
130  0.0323308476564,
131  0.0370394341409,
132  0.0456917721191,
133  0.0558762890594,
134  0.0576956187107,
135  0.0625325287017,
136  0.0591603758776,
137  0.0656650815128,
138  0.0678329011676,
139  0.0625142146389,
140  0.0548068448797,
141  0.0503893295063,
142  0.040209818868,
143  0.0374446988111,
144  0.0299661572042,
145  0.0272024759921,
146  0.0219328403791,
147  0.0179586571619,
148  0.0142926728247,
149  0.00839941654725,
150  0.00522366397213,
151  0.00224457976761,
152  0.000779274977993,
153  0.000197066585944,
154  7.16031761328e-05,
155  0.0,
156  0.0,
157  0.0,
158  0.0,
159  0.0,
160  0.0,
161  0.0,
162  0.0,
163  0.0,
164  0.0,
165  0.0,
166  0.0
167  }
168  },
169  {
170  // From https://github.com/cms-sw/cmssw/blob/CMSSW_7_6_X/SimGeneral/MixingModule/python/mix_2015_25ns_FallMC_matchData_PoissonOOTPU_cfi.py
171  Fall15_25ns,
172  {
173  0.000108643,
174  0.000388957,
175  0.000332882,
176  0.00038397,
177  0.000549167,
178  0.00105412,
179  0.00459007,
180  0.0210314,
181  0.0573688,
182  0.103986,
183  0.142369,
184  0.157729,
185  0.147685,
186  0.121027,
187  0.08855,
188  0.0582866,
189  0.0348526,
190  0.019457,
191  0.0107907,
192  0.00654313,
193  0.00463195,
194  0.00370927,
195  0.0031137,
196  0.00261141,
197  0.00215499,
198  0.00174491,
199  0.00138268,
200  0.00106731,
201  0.000798828,
202  0.00057785,
203  0.00040336,
204  0.00027161,
205  0.000176535,
206  0.00011092,
207  6.75502e-05,
208  4.00323e-05,
209  2.32123e-05,
210  1.32585e-05,
211  7.51611e-06,
212  4.25902e-06,
213  2.42513e-06,
214  1.39077e-06,
215  8.02452e-07,
216  4.64159e-07,
217  2.67845e-07,
218  1.5344e-07,
219  8.68966e-08,
220  4.84931e-08,
221  2.6606e-08,
222  1.433e-08
223  }
224  },
225  {
226  Spring15_25ns,
227  {
228  4.8551E-07,
229  1.74806E-06,
230  3.30868E-06,
231  1.62972E-05,
232  4.95667E-05,
233  0.000606966,
234  0.003307249,
235  0.010340741,
236  0.022852296,
237  0.041948781,
238  0.058609363,
239  0.067475755,
240  0.072817826,
241  0.075931405,
242  0.076782504,
243  0.076202319,
244  0.074502547,
245  0.072355135,
246  0.069642102,
247  0.064920999,
248  0.05725576,
249  0.047289348,
250  0.036528446,
251  0.026376131,
252  0.017806872,
253  0.011249422,
254  0.006643385,
255  0.003662904,
256  0.001899681,
257  0.00095614,
258  0.00050028,
259  0.000297353,
260  0.000208717,
261  0.000165856,
262  0.000139974,
263  0.000120481,
264  0.000103826,
265  8.88868E-05,
266  7.53323E-05,
267  6.30863E-05,
268  5.21356E-05,
269  4.24754E-05,
270  3.40876E-05,
271  2.69282E-05,
272  2.09267E-05,
273  1.5989E-05,
274  4.8551E-06,
275  2.42755E-06,
276  4.8551E-07,
277  2.42755E-07,
278  1.21378E-07,
279  4.8551E-08
280  }
281  }
282  };
283  };
284 };
Definition: PUReweighter.h:22