1 #include "FluxWeighting.hxx" 2 #include "ND280AnalysisUtils.hxx" 6 std::string
const& version,
7 std::string
const& tuning,
8 std::string
const& planeident) {
11 bool load_run5 =
false;
12 bool load_run6 =
false;
13 if (fluxfolder.find(
"13a") != std::string::npos) {
15 if (fluxfolder.find(
"av1.1") != std::string::npos) load_run6 =
true;
18 std::cout <<
" ------------------------------------------------------ " 20 std::cout <<
" ------------------------------------------------------ " 22 std::cout <<
" Flux reweight is enabled " << std::endl;
23 std::cout <<
" Folder : " << fluxfolder << std::endl;
24 std::cout <<
" File : " 25 << fluxfolder +
"/runXXX/" + planeident +
"_" + version +
28 std::cout <<
" Tuning : " << tuning << std::endl;
29 std::cout <<
" ------------------------------------------------------ " 31 std::cout <<
" ------------------------------------------------------ " 34 std::string file1 =
"/run1/" + planeident +
"_" + version +
"_run1.root";
35 std::string file2 =
"/run2/" + planeident +
"_" + version +
"_run2.root";
36 std::string file3b =
"/run3b/" + planeident +
"_" + version +
"_run3b.root";
37 std::string file3c =
"/run3c/" + planeident +
"_" + version +
"_run3c.root";
38 std::string file4 =
"/run4/" + planeident +
"_" + version +
"_run4.root";
39 std::string file5a =
"/run5a/" + planeident +
"_" + version +
"_run5a.root";
40 std::string file5b =
"/run5b/" + planeident +
"_" + version +
"_run5b.root";
42 "/run5c/" + planeident +
"_" + version +
"_run5c_antinumode.root";
44 "/run6b/" + planeident +
"_" + version +
"_run6b_antinumode.root";
46 "/run6c/" + planeident +
"_" + version +
"_run6c_antinumode.root";
48 "/run6d/" + planeident +
"_" + version +
"_run6d_antinumode.root";
50 "/run6e/" + planeident +
"_" + version +
"_run6e_antinumode.root";
52 run1_file =
new TFile(file1.insert(0, fluxfolder).c_str(),
"READ");
53 run2_file =
new TFile(file2.insert(0, fluxfolder).c_str(),
"READ");
54 run3b_file =
new TFile(file3b.insert(0, fluxfolder).c_str(),
"READ");
55 run3c_file =
new TFile(file3c.insert(0, fluxfolder).c_str(),
"READ");
56 run4_file =
new TFile(file4.insert(0, fluxfolder).c_str(),
"READ");
59 run5a_file =
new TFile(file5a.insert(0, fluxfolder).c_str(),
"READ");
60 run5b_file =
new TFile(file5b.insert(0, fluxfolder).c_str(),
"READ");
61 run5c_file =
new TFile(file5c.insert(0, fluxfolder).c_str(),
"READ");
69 run6b_file =
new TFile(file6b.insert(0, fluxfolder).c_str(),
"READ");
70 run6c_file =
new TFile(file6c.insert(0, fluxfolder).c_str(),
"READ");
71 run6d_file =
new TFile(file6d.insert(0, fluxfolder).c_str(),
"READ");
72 run6e_file =
new TFile(file6e.insert(0, fluxfolder).c_str(),
"READ");
81 run1_weight_numu =
dynamic_cast<TH1D*
>(run1_file->Get(
82 (
"enu_" + planeident +
"_" + tuning +
"_numu_ratio").c_str()));
83 if (run1_weight_numu) {
84 run1_weight_numu =
static_cast<TH1D*
>(run1_weight_numu->Clone());
85 run1_weight_numu->SetDirectory(NULL);
87 run1_weight_numubar =
dynamic_cast<TH1D*
>(run1_file->Get(
88 (
"enu_" + planeident +
"_" + tuning +
"_numub_ratio").c_str()));
89 if (run1_weight_numubar) {
90 run1_weight_numubar =
static_cast<TH1D*
>(run1_weight_numubar->Clone());
91 run1_weight_numubar->SetDirectory(NULL);
93 run1_weight_nue =
dynamic_cast<TH1D*
>(run1_file->Get(
94 (
"enu_" + planeident +
"_" + tuning +
"_nue_ratio").c_str()));
95 if (run1_weight_nue) {
96 run1_weight_nue =
static_cast<TH1D*
>(run1_weight_nue->Clone());
97 run1_weight_nue->SetDirectory(NULL);
99 run1_weight_nuebar =
dynamic_cast<TH1D*
>(run1_file->Get(
100 (
"enu_" + planeident +
"_" + tuning +
"_nueb_ratio").c_str()));
101 if (run1_weight_nuebar) {
102 run1_weight_nuebar =
static_cast<TH1D*
>(run1_weight_nuebar->Clone());
103 run1_weight_nuebar->SetDirectory(NULL);
106 run2_weight_numu =
dynamic_cast<TH1D*
>(run2_file->Get(
107 (
"enu_" + planeident +
"_" + tuning +
"_numu_ratio").c_str()));
108 if (run2_weight_numu) {
109 run2_weight_numu =
static_cast<TH1D*
>(run2_weight_numu->Clone());
110 run2_weight_numu->SetDirectory(NULL);
112 run2_weight_numubar =
dynamic_cast<TH1D*
>(run2_file->Get(
113 (
"enu_" + planeident +
"_" + tuning +
"_numub_ratio").c_str()));
114 if (run2_weight_numubar) {
115 run2_weight_numubar =
static_cast<TH1D*
>(run2_weight_numubar->Clone());
116 run2_weight_numubar->SetDirectory(NULL);
118 run2_weight_nue =
dynamic_cast<TH1D*
>(run2_file->Get(
119 (
"enu_" + planeident +
"_" + tuning +
"_nue_ratio").c_str()));
120 if (run2_weight_nue) {
121 run2_weight_nue =
static_cast<TH1D*
>(run2_weight_nue->Clone());
122 run2_weight_nue->SetDirectory(NULL);
124 run2_weight_nuebar =
dynamic_cast<TH1D*
>(run2_file->Get(
125 (
"enu_" + planeident +
"_" + tuning +
"_nueb_ratio").c_str()));
126 if (run2_weight_nuebar) {
127 run2_weight_nuebar =
static_cast<TH1D*
>(run2_weight_nuebar->Clone());
128 run2_weight_nuebar->SetDirectory(NULL);
131 run3b_weight_numu =
dynamic_cast<TH1D*
>(run3b_file->Get(
132 (
"enu_" + planeident +
"_" + tuning +
"_numu_ratio").c_str()));
133 if (run3b_weight_numu) {
134 run3b_weight_numu =
static_cast<TH1D*
>(run3b_weight_numu->Clone());
135 run3b_weight_numu->SetDirectory(NULL);
137 run3b_weight_numubar =
dynamic_cast<TH1D*
>(run3b_file->Get(
138 (
"enu_" + planeident +
"_" + tuning +
"_numub_ratio").c_str()));
139 if (run3b_weight_numubar) {
140 run3b_weight_numubar =
static_cast<TH1D*
>(run3b_weight_numubar->Clone());
141 run3b_weight_numubar->SetDirectory(NULL);
143 run3b_weight_nue =
dynamic_cast<TH1D*
>(run3b_file->Get(
144 (
"enu_" + planeident +
"_" + tuning +
"_nue_ratio").c_str()));
145 if (run3b_weight_nue) {
146 run3b_weight_nue =
static_cast<TH1D*
>(run3b_weight_nue->Clone());
147 run3b_weight_nue->SetDirectory(NULL);
149 run3b_weight_nuebar =
dynamic_cast<TH1D*
>(run3b_file->Get(
150 (
"enu_" + planeident +
"_" + tuning +
"_nueb_ratio").c_str()));
151 if (run3b_weight_nuebar) {
152 run3b_weight_nuebar =
static_cast<TH1D*
>(run3b_weight_nuebar->Clone());
153 run3b_weight_nuebar->SetDirectory(NULL);
156 run3c_weight_numu =
dynamic_cast<TH1D*
>(run3c_file->Get(
157 (
"enu_" + planeident +
"_" + tuning +
"_numu_ratio").c_str()));
158 if (run3c_weight_numu) {
159 run3c_weight_numu =
static_cast<TH1D*
>(run3c_weight_numu->Clone());
160 run3c_weight_numu->SetDirectory(NULL);
162 run3c_weight_numubar =
dynamic_cast<TH1D*
>(run3c_file->Get(
163 (
"enu_" + planeident +
"_" + tuning +
"_numub_ratio").c_str()));
164 if (run3c_weight_numubar) {
165 run3c_weight_numubar =
static_cast<TH1D*
>(run3c_weight_numubar->Clone());
166 run3c_weight_numubar->SetDirectory(NULL);
168 run3c_weight_nue =
dynamic_cast<TH1D*
>(run3c_file->Get(
169 (
"enu_" + planeident +
"_" + tuning +
"_nue_ratio").c_str()));
170 if (run3c_weight_nue) {
171 run3c_weight_nue =
static_cast<TH1D*
>(run3c_weight_nue->Clone());
172 run3c_weight_nue->SetDirectory(NULL);
174 run3c_weight_nuebar =
dynamic_cast<TH1D*
>(run3c_file->Get(
175 (
"enu_" + planeident +
"_" + tuning +
"_nueb_ratio").c_str()));
176 if (run3c_weight_nuebar) {
177 run3c_weight_nuebar =
static_cast<TH1D*
>(run3c_weight_nuebar->Clone());
178 run3c_weight_nuebar->SetDirectory(NULL);
181 run4_weight_numu =
dynamic_cast<TH1D*
>(run4_file->Get(
182 (
"enu_" + planeident +
"_" + tuning +
"_numu_ratio").c_str()));
183 if (run4_weight_numu) {
184 run4_weight_numu =
static_cast<TH1D*
>(run4_weight_numu->Clone());
185 run4_weight_numu->SetDirectory(NULL);
187 run4_weight_numubar =
dynamic_cast<TH1D*
>(run4_file->Get(
188 (
"enu_" + planeident +
"_" + tuning +
"_numub_ratio").c_str()));
189 if (run4_weight_numubar) {
190 run4_weight_numubar =
static_cast<TH1D*
>(run4_weight_numubar->Clone());
191 run4_weight_numubar->SetDirectory(NULL);
193 run4_weight_nue =
dynamic_cast<TH1D*
>(run4_file->Get(
194 (
"enu_" + planeident +
"_" + tuning +
"_nue_ratio").c_str()));
195 if (run4_weight_nue) {
196 run4_weight_nue =
static_cast<TH1D*
>(run4_weight_nue->Clone());
197 run4_weight_nue->SetDirectory(NULL);
199 run4_weight_nuebar =
dynamic_cast<TH1D*
>(run4_file->Get(
200 (
"enu_" + planeident +
"_" + tuning +
"_nueb_ratio").c_str()));
201 if (run4_weight_nuebar) {
202 run4_weight_nuebar =
static_cast<TH1D*
>(run4_weight_nuebar->Clone());
203 run4_weight_nuebar->SetDirectory(NULL);
207 run5a_weight_numu =
dynamic_cast<TH1D*
>(run5a_file->Get(
208 (
"enu_" + planeident +
"_" + tuning +
"_numu_ratio").c_str()));
209 if (run5a_weight_numu) {
210 run5a_weight_numu =
static_cast<TH1D*
>(run5a_weight_numu->Clone());
211 run5a_weight_numu->SetDirectory(NULL);
213 run5a_weight_numubar =
dynamic_cast<TH1D*
>(run5a_file->Get(
214 (
"enu_" + planeident +
"_" + tuning +
"_numub_ratio").c_str()));
215 if (run5a_weight_numubar) {
216 run5a_weight_numubar =
static_cast<TH1D*
>(run5a_weight_numubar->Clone());
217 run5a_weight_numubar->SetDirectory(NULL);
219 run5a_weight_nue =
dynamic_cast<TH1D*
>(run5a_file->Get(
220 (
"enu_" + planeident +
"_" + tuning +
"_nue_ratio").c_str()));
221 if (run5a_weight_nue) {
222 run5a_weight_nue =
static_cast<TH1D*
>(run5a_weight_nue->Clone());
223 run5a_weight_nue->SetDirectory(NULL);
225 run5a_weight_nuebar =
dynamic_cast<TH1D*
>(run5a_file->Get(
226 (
"enu_" + planeident +
"_" + tuning +
"_nueb_ratio").c_str()));
227 if (run5a_weight_nuebar) {
228 run5a_weight_nuebar =
static_cast<TH1D*
>(run5a_weight_nuebar->Clone());
229 run5a_weight_nuebar->SetDirectory(NULL);
232 run5b_weight_numu =
dynamic_cast<TH1D*
>(run5b_file->Get(
233 (
"enu_" + planeident +
"_" + tuning +
"_numu_ratio").c_str()));
234 if (run5b_weight_numu) {
235 run5b_weight_numu =
static_cast<TH1D*
>(run5b_weight_numu->Clone());
236 run5b_weight_numu->SetDirectory(NULL);
238 run5b_weight_numubar =
dynamic_cast<TH1D*
>(run5b_file->Get(
239 (
"enu_" + planeident +
"_" + tuning +
"_numub_ratio").c_str()));
240 if (run5b_weight_numubar) {
241 run5b_weight_numubar =
static_cast<TH1D*
>(run5b_weight_numubar->Clone());
242 run5b_weight_numubar->SetDirectory(NULL);
244 run5b_weight_nue =
dynamic_cast<TH1D*
>(run5b_file->Get(
245 (
"enu_" + planeident +
"_" + tuning +
"_nue_ratio").c_str()));
246 if (run5b_weight_nue) {
247 run5b_weight_nue =
static_cast<TH1D*
>(run5b_weight_nue->Clone());
248 run5b_weight_nue->SetDirectory(NULL);
250 run5b_weight_nuebar =
dynamic_cast<TH1D*
>(run5b_file->Get(
251 (
"enu_" + planeident +
"_" + tuning +
"_nueb_ratio").c_str()));
252 if (run5b_weight_nuebar) {
253 run5b_weight_nuebar =
static_cast<TH1D*
>(run5b_weight_nuebar->Clone());
254 run5b_weight_nuebar->SetDirectory(NULL);
257 run5c_weight_numu =
dynamic_cast<TH1D*
>(run5c_file->Get(
258 (
"enu_" + planeident +
"_" + tuning +
"_numu_ratio").c_str()));
259 if (run5c_weight_numu) {
260 run5c_weight_numu =
static_cast<TH1D*
>(run5c_weight_numu->Clone());
261 run5c_weight_numu->SetDirectory(NULL);
263 run5c_weight_numubar =
dynamic_cast<TH1D*
>(run5c_file->Get(
264 (
"enu_" + planeident +
"_" + tuning +
"_numub_ratio").c_str()));
265 if (run5c_weight_numubar) {
266 run5c_weight_numubar =
static_cast<TH1D*
>(run5c_weight_numubar->Clone());
267 run5c_weight_numubar->SetDirectory(NULL);
269 run5c_weight_nue =
dynamic_cast<TH1D*
>(run5c_file->Get(
270 (
"enu_" + planeident +
"_" + tuning +
"_nue_ratio").c_str()));
271 if (run5c_weight_nue) {
272 run5c_weight_nue =
static_cast<TH1D*
>(run5c_weight_nue->Clone());
273 run5c_weight_nue->SetDirectory(NULL);
275 run5c_weight_nuebar =
dynamic_cast<TH1D*
>(run5c_file->Get(
276 (
"enu_" + planeident +
"_" + tuning +
"_nueb_ratio").c_str()));
277 if (run5c_weight_nuebar) {
278 run5c_weight_nuebar =
static_cast<TH1D*
>(run5c_weight_nuebar->Clone());
279 run5c_weight_nuebar->SetDirectory(NULL);
282 run5a_weight_numu = NULL;
283 run5a_weight_numubar = NULL;
284 run5a_weight_nue = NULL;
285 run5a_weight_nuebar = NULL;
287 run5b_weight_numu = NULL;
288 run5b_weight_numubar = NULL;
289 run5b_weight_nue = NULL;
290 run5b_weight_nuebar = NULL;
292 run5c_weight_numu = NULL;
293 run5c_weight_numubar = NULL;
294 run5c_weight_nue = NULL;
295 run5c_weight_nuebar = NULL;
298 run6b_weight_numu =
dynamic_cast<TH1D*
>(run6b_file->Get(
299 (
"enu_" + planeident +
"_" + tuning +
"_numu_ratio").c_str()));
300 if (run6b_weight_numu) {
301 run6b_weight_numu =
static_cast<TH1D*
>(run6b_weight_numu->Clone());
302 run6b_weight_numu->SetDirectory(NULL);
304 run6b_weight_numubar =
dynamic_cast<TH1D*
>(run6b_file->Get(
305 (
"enu_" + planeident +
"_" + tuning +
"_numub_ratio").c_str()));
306 if (run6b_weight_numubar) {
307 run6b_weight_numubar =
static_cast<TH1D*
>(run6b_weight_numubar->Clone());
308 run6b_weight_numubar->SetDirectory(NULL);
310 run6b_weight_nue =
dynamic_cast<TH1D*
>(run6b_file->Get(
311 (
"enu_" + planeident +
"_" + tuning +
"_nue_ratio").c_str()));
312 if (run6b_weight_nue) {
313 run6b_weight_nue =
static_cast<TH1D*
>(run6b_weight_nue->Clone());
314 run6b_weight_nue->SetDirectory(NULL);
316 run6b_weight_nuebar =
dynamic_cast<TH1D*
>(run6b_file->Get(
317 (
"enu_" + planeident +
"_" + tuning +
"_nueb_ratio").c_str()));
318 if (run6b_weight_nuebar) {
319 run6b_weight_nuebar =
static_cast<TH1D*
>(run6b_weight_nuebar->Clone());
320 run6b_weight_nuebar->SetDirectory(NULL);
322 run6c_weight_numu =
dynamic_cast<TH1D*
>(run6c_file->Get(
323 (
"enu_" + planeident +
"_" + tuning +
"_numu_ratio").c_str()));
324 if (run6c_weight_numu) {
325 run6c_weight_numu =
static_cast<TH1D*
>(run6c_weight_numu->Clone());
326 run6c_weight_numu->SetDirectory(NULL);
328 run6c_weight_numubar =
dynamic_cast<TH1D*
>(run6c_file->Get(
329 (
"enu_" + planeident +
"_" + tuning +
"_numub_ratio").c_str()));
330 if (run6c_weight_numubar) {
331 run6c_weight_numubar =
static_cast<TH1D*
>(run6c_weight_numubar->Clone());
332 run6c_weight_numubar->SetDirectory(NULL);
334 run6c_weight_nue =
dynamic_cast<TH1D*
>(run6c_file->Get(
335 (
"enu_" + planeident +
"_" + tuning +
"_nue_ratio").c_str()));
336 if (run6c_weight_nue) {
337 run6c_weight_nue =
static_cast<TH1D*
>(run6c_weight_nue->Clone());
338 run6c_weight_nue->SetDirectory(NULL);
340 run6c_weight_nuebar =
dynamic_cast<TH1D*
>(run6c_file->Get(
341 (
"enu_" + planeident +
"_" + tuning +
"_nueb_ratio").c_str()));
342 if (run6c_weight_nuebar) {
343 run6c_weight_nuebar =
static_cast<TH1D*
>(run6c_weight_nuebar->Clone());
344 run6c_weight_nuebar->SetDirectory(NULL);
346 run6d_weight_numu =
dynamic_cast<TH1D*
>(run6d_file->Get(
347 (
"enu_" + planeident +
"_" + tuning +
"_numu_ratio").c_str()));
348 if (run6d_weight_numu) {
349 run6d_weight_numu =
static_cast<TH1D*
>(run6d_weight_numu->Clone());
350 run6d_weight_numu->SetDirectory(NULL);
352 run6d_weight_numubar =
dynamic_cast<TH1D*
>(run6d_file->Get(
353 (
"enu_" + planeident +
"_" + tuning +
"_numub_ratio").c_str()));
354 if (run6d_weight_numubar) {
355 run6d_weight_numubar =
static_cast<TH1D*
>(run6d_weight_numubar->Clone());
356 run6d_weight_numubar->SetDirectory(NULL);
358 run6d_weight_nue =
dynamic_cast<TH1D*
>(run6d_file->Get(
359 (
"enu_" + planeident +
"_" + tuning +
"_nue_ratio").c_str()));
360 if (run6d_weight_nue) {
361 run6d_weight_nue =
static_cast<TH1D*
>(run6d_weight_nue->Clone());
362 run6d_weight_nue->SetDirectory(NULL);
364 run6d_weight_nuebar =
dynamic_cast<TH1D*
>(run6d_file->Get(
365 (
"enu_" + planeident +
"_" + tuning +
"_nueb_ratio").c_str()));
366 if (run6d_weight_nuebar) {
367 run6d_weight_nuebar =
static_cast<TH1D*
>(run6d_weight_nuebar->Clone());
368 run6d_weight_nuebar->SetDirectory(NULL);
370 run6e_weight_numu =
dynamic_cast<TH1D*
>(run6e_file->Get(
371 (
"enu_" + planeident +
"_" + tuning +
"_numu_ratio").c_str()));
372 if (run6e_weight_numu) {
373 run6e_weight_numu =
static_cast<TH1D*
>(run6e_weight_numu->Clone());
374 run6e_weight_numu->SetDirectory(NULL);
376 run6e_weight_numubar =
dynamic_cast<TH1D*
>(run6e_file->Get(
377 (
"enu_" + planeident +
"_" + tuning +
"_numub_ratio").c_str()));
378 if (run6e_weight_numubar) {
379 run6e_weight_numubar =
static_cast<TH1D*
>(run6e_weight_numubar->Clone());
380 run6e_weight_numubar->SetDirectory(NULL);
382 run6e_weight_nue =
dynamic_cast<TH1D*
>(run6e_file->Get(
383 (
"enu_" + planeident +
"_" + tuning +
"_nue_ratio").c_str()));
384 if (run6e_weight_nue) {
385 run6e_weight_nue =
static_cast<TH1D*
>(run6e_weight_nue->Clone());
386 run6e_weight_nue->SetDirectory(NULL);
388 run6e_weight_nuebar =
dynamic_cast<TH1D*
>(run6e_file->Get(
389 (
"enu_" + planeident +
"_" + tuning +
"_nueb_ratio").c_str()));
390 if (run6e_weight_nuebar) {
391 run6e_weight_nuebar =
static_cast<TH1D*
>(run6e_weight_nuebar->Clone());
392 run6e_weight_nuebar->SetDirectory(NULL);
396 run6b_weight_numu = NULL;
397 run6b_weight_numubar = NULL;
398 run6b_weight_nue = NULL;
399 run6b_weight_nuebar = NULL;
400 run6c_weight_numu = NULL;
401 run6c_weight_numubar = NULL;
402 run6c_weight_nue = NULL;
403 run6c_weight_nuebar = NULL;
404 run6d_weight_numu = NULL;
405 run6d_weight_numubar = NULL;
406 run6d_weight_nue = NULL;
407 run6d_weight_nuebar = NULL;
408 run6e_weight_numu = NULL;
409 run6e_weight_numubar = NULL;
410 run6e_weight_nue = NULL;
411 run6e_weight_nuebar = NULL;
469 if (!run1_weight_numu || !run1_weight_numubar || !run1_weight_nue ||
470 !run1_weight_nuebar) {
472 <<
"ERROR: Flux weighting was requested, but could not be initialised." 475 <<
" Specify a valid flux file and tuning in your parameters file, or" 478 <<
" disable the flux weighting. Flux files can be downloaded from" 480 std::cerr <<
" http://www.t2k.org/beam/NuFlux/FluxRelease" << std::endl;
486 FluxWeighting::~FluxWeighting() {
488 if (run1_weight_numu) {
489 delete run1_weight_numu;
490 delete run2_weight_numu;
491 delete run3b_weight_numu;
492 delete run3c_weight_numu;
493 delete run4_weight_numu;
494 if (run5a_weight_numu) {
495 delete run5a_weight_numu;
496 delete run5b_weight_numu;
497 delete run5c_weight_numu;
498 if (run6b_weight_numu) {
499 delete run6b_weight_numu;
500 delete run6c_weight_numu;
501 delete run6d_weight_numu;
502 delete run6e_weight_numu;
506 if (run1_weight_numubar) {
507 delete run1_weight_numubar;
508 delete run2_weight_numubar;
509 delete run3b_weight_numubar;
510 delete run3c_weight_numubar;
511 delete run4_weight_numubar;
512 if (run5a_weight_numubar) {
513 delete run5a_weight_numubar;
514 delete run5b_weight_numubar;
515 delete run5c_weight_numubar;
516 if (run6b_weight_numubar) {
517 delete run6b_weight_numubar;
518 delete run6c_weight_numubar;
519 delete run6d_weight_numubar;
520 delete run6e_weight_numubar;
524 if (run1_weight_nue) {
525 delete run1_weight_nue;
526 delete run2_weight_nue;
527 delete run3b_weight_nue;
528 delete run3c_weight_nue;
529 delete run4_weight_nue;
530 if (run5a_weight_nue) {
531 delete run5a_weight_nue;
532 delete run5b_weight_nue;
533 delete run5c_weight_nue;
534 if (run6b_weight_nue) {
535 delete run6b_weight_nue;
536 delete run6c_weight_nue;
537 delete run6d_weight_nue;
538 delete run6e_weight_nue;
542 if (run1_weight_nuebar) {
543 delete run1_weight_nuebar;
544 delete run2_weight_nuebar;
545 delete run3b_weight_nuebar;
546 delete run3c_weight_nuebar;
547 delete run4_weight_nuebar;
548 if (run5a_weight_nuebar) {
549 delete run5a_weight_nuebar;
550 delete run5b_weight_nuebar;
551 delete run5c_weight_nuebar;
552 if (run6b_weight_nuebar) {
553 delete run6b_weight_nuebar;
554 delete run6c_weight_nuebar;
555 delete run6d_weight_nuebar;
556 delete run6e_weight_nuebar;
566 Float_t weight =
GetWeight(vertex, RunPeriod);
576 event.Weight *= weight;
598 switch (vertex.
NuPDG) {
602 hist = run1_weight_numu;
605 hist = run2_weight_numu;
608 hist = run2_weight_numu;
611 hist = run3b_weight_numu;
614 hist = run3c_weight_numu;
617 hist = run4_weight_numu;
620 hist = run4_weight_numu;
623 hist = run5a_weight_numu;
626 hist = run5c_weight_numu;
629 hist = run6b_weight_numu;
632 hist = run6c_weight_numu;
635 hist = run6d_weight_numu;
638 hist = run6e_weight_numu;
641 std::cerr <<
"Unknown run number " << RunPeriod
642 <<
": setting event weight to 1." << std::endl;
649 hist = run1_weight_numubar;
652 hist = run2_weight_numubar;
655 hist = run2_weight_numubar;
658 hist = run3b_weight_numubar;
661 hist = run3c_weight_numubar;
664 hist = run4_weight_numubar;
667 hist = run4_weight_numubar;
670 hist = run5a_weight_numubar;
673 hist = run5c_weight_numubar;
676 hist = run6b_weight_numubar;
679 hist = run6c_weight_numubar;
682 hist = run6d_weight_numubar;
685 hist = run6e_weight_numubar;
688 std::cerr <<
"Unknown run number " << RunPeriod
689 <<
": setting event weight to 1." << std::endl;
696 hist = run1_weight_nue;
699 hist = run2_weight_nue;
702 hist = run2_weight_nue;
705 hist = run3b_weight_nue;
708 hist = run3c_weight_nue;
711 hist = run4_weight_nue;
714 hist = run4_weight_nue;
717 hist = run5a_weight_nue;
720 hist = run5c_weight_nue;
723 hist = run6b_weight_nue;
726 hist = run6c_weight_nue;
729 hist = run6d_weight_nue;
732 hist = run6e_weight_nue;
735 std::cerr <<
"Unknown run number " << RunPeriod
736 <<
": setting event weight to 1." << std::endl;
743 hist = run1_weight_nuebar;
746 hist = run2_weight_nuebar;
749 hist = run2_weight_nuebar;
752 hist = run3b_weight_nuebar;
755 hist = run3c_weight_nuebar;
758 hist = run4_weight_nuebar;
761 hist = run4_weight_nuebar;
764 hist = run5a_weight_nuebar;
767 hist = run5c_weight_nuebar;
770 hist = run6b_weight_nuebar;
773 hist = run6c_weight_nuebar;
776 hist = run6d_weight_nuebar;
779 hist = run6e_weight_nuebar;
782 std::cerr <<
"Unknown run number " << RunPeriod
783 <<
": setting event weight to 1." << std::endl;
788 std::cerr <<
"Unknown neutrino flavour " << vertex.
NuPDG 789 <<
": setting event weight to 1." << std::endl;
794 int bin = hist->FindBin(vertex.
NuEnergy / 1000.);
795 weight = hist->GetBinContent(bin);
797 std::cerr <<
"Couldn't get correct flux weighting histogram - check you " 798 "have the right tuning folder specified in the parameters file" Int_t NuPDG
The PDG code of the incoming neutrino.
Representation of a true Monte Carlo vertex.
AnaEventInfoB EventInfo
Run, sunrun, event, time stamp, etc.
FluxWeighting(std::string const &fluxfolder, std::string const &version, std::string const &tuning, std::string const &planeident="nd5")
Float_t NuEnergy
The true energy of the incoming neutrino.
int GetRunPeriod(int run, int subrun=-1)
Returns the run period (sequentially: 0,1,2,3,4,5 ...)
void UpdateBunchWeight(AnaBunchB &bunch, AnaTrueVertexB *vertex, int RunPeriod)
Float_t GetWeight(AnaTrueVertexB *vertex, int RunPeriod)
Float_t Weight
The weight to apply to this bunch (nominally 1). An example is the beam flux weight.
void UpdateEventWeight(AnaEventB &event, AnaTrueVertexB *vertex)
Int_t Run
The ND280 run number.