NumuVarsExtra.cxx
Go to the documentation of this file.
3 #include "CAFAna/Vars/Vars.h"
6 
8 
9 #include "Utilities/func/MathUtil.h"
10 
11 namespace ana
12 {
13 
14  const Binning kXYBinsND = Binning::Simple(44,-2.20,2.20);
15  const Binning kZBinsND = Binning::Simple(40, 0,20.00);
16  const Binning kXYBinsFD = Binning::Simple(160, -8.0, 8.0);
17  const Binning kZBinsFD = Binning::Simple(120, 0, 60.0);
18 
23 
24  const MultiVar kPngCalE([](const caf::SRProxy* sr)
25  {
26  std::vector<double> E;
27  if(!sr->vtx.elastic.IsValid) return E;
28  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
29  E.emplace_back(sr->vtx.elastic.fuzzyk.png[i].calE);
30  }
31  return E;
32  });
33 
34 
35  const MultiVar kPngWtCalE([](const caf::SRProxy* sr)
36  {
37  std::vector<double> E;
38  if(!sr->vtx.elastic.IsValid) return E;
39  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
40  E.emplace_back(sr->vtx.elastic.fuzzyk.png[i].weightedCalE);
41  }
42  return E;
43  });
44 
45  const MultiVar kPngNhit([](const caf::SRProxy* sr)
46  {
47  std::vector<double> nhit;
48  if(!sr->vtx.elastic.IsValid) return nhit;
49  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
50  nhit.emplace_back(sr->vtx.elastic.fuzzyk.png[i].nhit);
51  }
52  return nhit;
53  });
54 
55  const MultiVar kPngNhitX([](const caf::SRProxy* sr)
56  {
57  std::vector<double> nhit;
58  if(!sr->vtx.elastic.IsValid) return nhit;
59  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
60  nhit.emplace_back(sr->vtx.elastic.fuzzyk.png[i].nhitx);
61  }
62  return nhit;
63  });
64 
65 
66  const MultiVar kPngNhitY([](const caf::SRProxy* sr)
67  {
68  std::vector<double> nhit;
69  if(!sr->vtx.elastic.IsValid) return nhit;
70  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
71  nhit.emplace_back(sr->vtx.elastic.fuzzyk.png[i].nhity);
72  }
73  return nhit;
74  });
75 
76  const MultiVar kPngNPlane([](const caf::SRProxy* sr)
77  {
78  std::vector<double> nplane;
79  if(!sr->vtx.elastic.IsValid) return nplane;
80  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
81  nplane.emplace_back(sr->vtx.elastic.fuzzyk.png[i].nplane);
82  }
83  return nplane;
84  });
85 
86  const MultiVar kPngMaxPlaneCont([](const caf::SRProxy* sr)
87  {
88  std::vector<double> maxplane;
89  if(!sr->vtx.elastic.IsValid) return maxplane;
90  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
91  maxplane.emplace_back(sr->vtx.elastic.fuzzyk.png[i].maxplanecont);
92  }
93  return maxplane;
94  });
95 
96  const MultiVar kPngMaxPlaneGap([](const caf::SRProxy* sr)
97  {
98  std::vector<double> maxplane;
99  if(!sr->vtx.elastic.IsValid) return maxplane;
100  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
101  maxplane.emplace_back(sr->vtx.elastic.fuzzyk.png[i].maxplanegap);
102  }
103  return maxplane;
104  });
105 
106  const MultiVar kPngLen([](const caf::SRProxy* sr)
107  {
108  std::vector<double> len;
109  if(!sr->vtx.elastic.IsValid) return len;
110  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
111  len.emplace_back(sr->vtx.elastic.fuzzyk.png[i].len/100.);
112  }
113  return len;
114  });
115 
116  const MultiVar kPngDirX([](const caf::SRProxy* sr)
117  {
118  std::vector<double> dir;
119  if(!sr->vtx.elastic.IsValid) return dir;
120  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
121  dir.emplace_back(sr->vtx.elastic.fuzzyk.png[i].dir.X());
122  }
123  return dir;
124  });
125  const MultiVar kPngDirY([](const caf::SRProxy* sr)
126  {
127  std::vector<double> dir;
128  if(!sr->vtx.elastic.IsValid) return dir;
129  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
130  dir.emplace_back(sr->vtx.elastic.fuzzyk.png[i].dir.Y());
131  }
132  return dir;
133  });
134  const MultiVar kPngDirZ([](const caf::SRProxy* sr)
135  {
136  std::vector<double> dir;
137  if(!sr->vtx.elastic.IsValid) return dir;
138  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
139  dir.emplace_back(sr->vtx.elastic.fuzzyk.png[i].dir.Z());
140  }
141  return dir;
142  });
143 
144  const MultiVar kPngStartX([](const caf::SRProxy* sr)
145  {
146  std::vector<double> start;
147  if(!sr->vtx.elastic.IsValid) return start;
148  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
149  start.emplace_back(sr->vtx.elastic.fuzzyk.png[i].start.X()/100.);
150  }
151  return start;
152  });
153  const MultiVar kPngStartY([](const caf::SRProxy* sr)
154  {
155  std::vector<double> start;
156  if(!sr->vtx.elastic.IsValid) return start;
157  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
158  start.emplace_back(sr->vtx.elastic.fuzzyk.png[i].start.Y()/100.);
159  }
160  return start;
161  });
162  const MultiVar kPngStartZ([](const caf::SRProxy* sr)
163  {
164  std::vector<double> start;
165  if(!sr->vtx.elastic.IsValid) return start;
166  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng; ++i){
167  start.emplace_back(sr->vtx.elastic.fuzzyk.png[i].start.Z()/100.);
168  }
169  return start;
170  });
171 
172 
173 
174 
175 
176 
177  const MultiVar kPng2dCalE([](const caf::SRProxy* sr)
178  {
179  std::vector<double> E;
180  if(!sr->vtx.elastic.IsValid) return E;
181  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
182  E.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].calE);
183  }
184  return E;
185  });
186 
187 
188  const MultiVar kPng2dWtCalE([](const caf::SRProxy* sr)
189  {
190  std::vector<double> E;
191  if(!sr->vtx.elastic.IsValid) return E;
192  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
193  E.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].weightedCalE);
194  }
195  return E;
196  });
197 
198  const MultiVar kPng2dNhit([](const caf::SRProxy* sr)
199  {
200  std::vector<double> nhit;
201  if(!sr->vtx.elastic.IsValid) return nhit;
202  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
203  nhit.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].nhit);
204  }
205  return nhit;
206  });
207 
208  const MultiVar kPng2dNhitX([](const caf::SRProxy* sr)
209  {
210  std::vector<double> nhit;
211  if(!sr->vtx.elastic.IsValid) return nhit;
212  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
213  nhit.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].nhitx);
214  }
215  return nhit;
216  });
217 
218 
219  const MultiVar kPng2dNhitY([](const caf::SRProxy* sr)
220  {
221  std::vector<double> nhit;
222  if(!sr->vtx.elastic.IsValid) return nhit;
223  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
224  nhit.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].nhity);
225  }
226  return nhit;
227  });
228 
229  const MultiVar kPng2dNPlane([](const caf::SRProxy* sr)
230  {
231  std::vector<double> nplane;
232  if(!sr->vtx.elastic.IsValid) return nplane;
233  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
234  nplane.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].nplane);
235  }
236  return nplane;
237  });
238 
239  const MultiVar kPng2dMaxPlaneCont([](const caf::SRProxy* sr)
240  {
241  std::vector<double> maxplane;
242  if(!sr->vtx.elastic.IsValid) return maxplane;
243  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
244  maxplane.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].maxplanecont);
245  }
246  return maxplane;
247  });
248 
249  const MultiVar kPng2dMaxPlaneGap([](const caf::SRProxy* sr)
250  {
251  std::vector<double> maxplane;
252  if(!sr->vtx.elastic.IsValid) return maxplane;
253  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
254  maxplane.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].maxplanegap);
255  }
256  return maxplane;
257  });
258 
259  const MultiVar kPng2dLen([](const caf::SRProxy* sr)
260  {
261  std::vector<double> len;
262  if(!sr->vtx.elastic.IsValid) return len;
263  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
264  len.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].len/100.);
265  }
266  return len;
267  });
268 
269 
270  const MultiVar kPng2dDirX([](const caf::SRProxy* sr)
271  {
272  std::vector<double> dir;
273  if(!sr->vtx.elastic.IsValid) return dir;
274  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
275  dir.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].dir.X());
276  }
277  return dir;
278  });
279  const MultiVar kPng2dDirY([](const caf::SRProxy* sr)
280  {
281  std::vector<double> dir;
282  if(!sr->vtx.elastic.IsValid) return dir;
283  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
284  dir.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].dir.Y());
285  }
286  return dir;
287  });
288  const MultiVar kPng2dDirZ([](const caf::SRProxy* sr)
289  {
290  std::vector<double> dir;
291  if(!sr->vtx.elastic.IsValid) return dir;
292  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
293  dir.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].dir.Z());
294  }
295  return dir;
296  });
297 
298  const MultiVar kPng2dStartX([](const caf::SRProxy* sr)
299  {
300  std::vector<double> start;
301  if(!sr->vtx.elastic.IsValid) return start;
302  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
303  start.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].start.X()/100.);
304  }
305  return start;
306  });
307  const MultiVar kPng2dStartY([](const caf::SRProxy* sr)
308  {
309  std::vector<double> start;
310  if(!sr->vtx.elastic.IsValid) return start;
311  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
312  start.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].start.Y()/100.);
313  }
314  return start;
315  });
316  const MultiVar kPng2dStartZ([](const caf::SRProxy* sr)
317  {
318  std::vector<double> start;
319  if(!sr->vtx.elastic.IsValid) return start;
320  for(unsigned int i = 0; i < sr->vtx.elastic.fuzzyk.npng2d; ++i){
321  start.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].start.Z()/100.);
322  }
323  return start;
324  });
325 
326 
327  const Var kNPng3D([](const caf::SRProxy* sr)
328  {
329  if(!sr->vtx.elastic.IsValid) return -5;
330  return (int)sr->vtx.elastic.fuzzyk.npng;
331  });
332 
333  const Var kNPng2D([](const caf::SRProxy* sr)
334  {
335  if(!sr->vtx.elastic.IsValid) return -5;
336  return (int)sr->vtx.elastic.fuzzyk.npng2d;
337  });
338 
339  const Var kOrphCalE([](const caf::SRProxy* sr)
340  {
341  if(!sr->vtx.elastic.IsValid) return -5.f;
342  return (float)sr->vtx.elastic.fuzzyk.orphCalE;
343  });
344 
345  const Var kKalTrkOverlapE([](const caf::SRProxy* sr)
346  {
347  if(sr->trk.kalman.ntracks < 1) return -5.f;
348  return (float)sr->trk.kalman.tracks[0].overlapE;
349  });
350 
351  const Var kVtxXm([](const caf::SRProxy* sr)
352  {
353  return float(kVtxX(sr)/100.);
354  });
355 
356  const Var kVtxYm([](const caf::SRProxy* sr)
357  {
358  return float(kVtxY(sr)/100.);
359  });
360 
361  const Var kVtxZm([](const caf::SRProxy* sr)
362  {
363  return float(kVtxZ(sr)/100.);
364  });
365 
366  const Var kNNonNoise([](const caf::SRProxy* sr)
367  {
368  if(sr->mc.nnu==0) return -5.f;
369  return float(sr->slc.nnonnoise);
370  });
371 
372  const Var kNNonNoiseWt([](const caf::SRProxy* sr)
373  {
374  if(sr->mc.nnu==0) return -5.f;
375  return float(1./kNNonNoise(sr));
376  });
377 
378 
379  const Var kTrueVisE([](const caf::SRProxy* sr)
380  {
381  if(sr->mc.nnu==0) return -5.f;
382  return (float)sr->mc.nu[0].visE;
383  });
384 
385  const Var kTrueVisEinSlc([](const caf::SRProxy* sr)
386  {
387  if(sr->mc.nnu==0) return -5.f;
388  return (float)sr->mc.nu[0].visEinslc;
389  });
390 
391  const Var kTrueVisENeutron([](const caf::SRProxy* sr)
392  {
393  if(sr->mc.nnu==0) return -5.f;
394  return (float)sr->mc.nu[0].visENeutron;
395  });
396 
397  const Var kTrueVisEinSlcNeutron([](const caf::SRProxy* sr)
398  {
399  if(sr->mc.nnu==0) return -5.f;
400  return (float)sr->mc.nu[0].visEinslcNeutron;
401  });
402 
403  const Var kTrueVisEBirks([](const caf::SRProxy* sr)
404  {
405  if(sr->mc.nnu==0) return -5.f;
406  return (float)sr->mc.nu[0].visEBirks;
407  });
408 
409  const Var kTrueVisEinSlcBirks([](const caf::SRProxy* sr)
410  {
411  if(sr->mc.nnu==0) return -5.f;
412  return (float)sr->mc.nu[0].visEinslcBirks;
413  });
414 
415  const Var kTrueVisENeutronBirks([](const caf::SRProxy* sr)
416  {
417  if(sr->mc.nnu==0) return -5.f;
418  return (float)sr->mc.nu[0].visENeutronBirks;
419  });
420 
421  const Var kTrueVisEinSlcNeutronBirks([](const caf::SRProxy* sr)
422  {
423  if(sr->mc.nnu==0) return -5.f;
424  return (float)sr->mc.nu[0].visEinslcNeutronBirks;
425  });
426 
427  const Var kTrueSlcEff([](const caf::SRProxy* sr)
428  {
429  if(sr->mc.nnu==0) return -5.f;
430  return (float)sr->mc.nu[0].eff;
431  });
432 
433  const Var kTrueSlcPur([](const caf::SRProxy* sr)
434  {
435  if(sr->mc.nnu==0) return -5.f;
436  return (float)sr->mc.nu[0].pur;
437  });
438 
439  const Var kTrueNHitsSlc([](const caf::SRProxy* sr)
440  {
441  if(sr->mc.nnu==0) return -5.f;
442  return (float)sr->mc.nu[0].nhitslc;
443  });
444 
445  const Var kTrueNHitsTot([](const caf::SRProxy* sr)
446  {
447  if(sr->mc.nnu==0) return -5.f;
448  return (float)sr->mc.nu[0].nhittot;
449  });
450 
451  const Var kTrueMomX([](const caf::SRProxy* sr)
452  {
453  if(sr->mc.nnu==0) return -5.f;
454  return (float)sr->mc.nu[0].p.X();
455  });
456 
457  const Var kTrueMomY([](const caf::SRProxy* sr)
458  {
459  if(sr->mc.nnu==0) return -5.f;
460  return (float)sr->mc.nu[0].p.Y();
461  });
462 
463  const Var kTrueMomZ([](const caf::SRProxy* sr)
464  {
465  if(sr->mc.nnu==0) return -5.f;
466  return (float)sr->mc.nu[0].p.Z();
467  });
468 
469 
470  const Var kTrueVtxX([](const caf::SRProxy* sr)
471  {
472  if(sr->mc.nnu==0) return -5555.f;
473  return float(sr->mc.nu[0].vtx.X()/100.);
474  });
475 
476  const Var kTrueVtxY([](const caf::SRProxy* sr)
477  {
478  if(sr->mc.nnu==0) return -5555.f;
479  return float(sr->mc.nu[0].vtx.Y()/100.);
480  });
481 
482  const Var kTrueVtxZ([](const caf::SRProxy* sr)
483  {
484  if(sr->mc.nnu==0) return -5.f;
485  return float(sr->mc.nu[0].vtx.Z()/100.);
486  });
487 
488  const Var kEres([](const caf::SRProxy* sr)
489  {
490  if(sr->mc.nnu==0) return -5.f;
491  return float((kCCE(sr)-kTrueE(sr))/kTrueE(sr));
492  });
493 
494  const Var kMuEres([](const caf::SRProxy* sr)
495  {
496  if(sr->mc.nnu==0) return -5.f;
497  return float((kMuE(sr)-kTrueMuonE(sr))/kTrueMuonE(sr));
498  });
499 
500  const Var kHadEres([](const caf::SRProxy* sr)
501  {
502  if(sr->mc.nnu==0) return -5.f;
503  float recoE = kHadE(sr);
504  float trueE = kTrueE(sr)-kMuE(sr);
505 
506  return float((recoE-trueE)/trueE);
507  });
508 
509  const Var kTrkNPlaneGapFrac([](const caf::SRProxy* sr)
510  {
511  if(sr->mc.nnu==0) return -5.f;
512  if (sr->trk.kalman.ntracks > 0 && sr->trk.kalman.idxremid != 999)
513  return float(float(sr->trk.kalman.tracks[0].nplanegap)/float(sr->trk.kalman.tracks[0].nplane));
514  return -5.f;
515  });
516 
517  // --- NuTree ---
518 
519  const NuTruthVar kTrueVisE_NT([](const caf::SRNeutrinoProxy* nu)
520  {
521  return (float)nu->visE;
522  });
523 
525  {
526  return (float)nu->visEinslc;
527  });
528 
530  {
531  return (float)nu->visENeutron;
532  });
533 
535  {
536  return (float)nu->visEinslcNeutron;
537  });
538 
540  {
541  return (float)nu->visEBirks;
542  });
543 
545  {
546  return (float)nu->visEinslcBirks;
547  });
548 
550  {
551  return (float)nu->visENeutronBirks;
552  });
553 
555  {
556  return (float)nu->visEinslcNeutronBirks;
557  });
558 
560  {
561  return (float)nu->eff;
562  });
563 
565  {
566  return (float)nu->pur;
567  });
568 
570  {
571  return (float)nu->nhitslc;
572  });
573 
575  {
576  return (float)nu->nhittot;
577  });
578 
579  const NuTruthVar kTrueMomX_NT([](const caf::SRNeutrinoProxy* nu)
580  {
581  return (float)nu->p.X();
582  });
583 
584  const NuTruthVar kTrueMomY_NT([](const caf::SRNeutrinoProxy* nu)
585  {
586  return (float)nu->p.Y();
587  });
588 
589  const NuTruthVar kTrueMomZ_NT([](const caf::SRNeutrinoProxy* nu)
590  {
591  return (float)nu->p.Z();
592  });
593 
594  const NuTruthVar kTrueVtxX_NT([](const caf::SRNeutrinoProxy* nu)
595  {
596  return float(nu->vtx.X()/100.);
597  });
598 
599  const NuTruthVar kTrueVtxY_NT([](const caf::SRNeutrinoProxy* nu)
600  {
601  return float(nu->vtx.Y()/100.);
602  });
603 
604  const NuTruthVar kTrueVtxZ_NT([](const caf::SRNeutrinoProxy* nu)
605  {
606  return float(nu->vtx.Z()/100.);
607  });
608 
609  const NuTruthVar kTrueLepE_NT([](const caf::SRNeutrinoProxy* nu)
610  {
611  // lepton is the first entry in the primaries list
612  return float(nu->prim[0].p.E);
613  });
614 
615  const NuTruthVar kTrueMode_NT([](const caf::SRNeutrinoProxy* nu)
616  {
617  return int(nu->mode);
618  });
619 
620  const NuTruthVar kTrueq0q3_NT([](const caf::SRNeutrinoProxy* nu)
621  {
622  return float(kTrueQ0_NT(nu)/kTrueQ3_NT(nu));
623  });
624 
625  const Var kAngleKal = SIMPLEVAR(sel.cosrej.anglekal);
626  const Var kNueCosRejPngPTP = SIMPLEVAR(sel.nuecosrej.pngptp);
627 }
const MultiVar kPngCalE([](const caf::SRProxy *sr){std::vector< double > E;if(!sr->vtx.elastic.IsValid) return E;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){E.emplace_back(sr->vtx.elastic.fuzzyk.png[i].calE);}return E;})
Definition: NumuVarsExtra.h:22
const XML_Char int len
Definition: expat.h:262
const Var kHadE
Definition: NumuVars.h:23
caf::Proxy< size_t > npng
Definition: SRProxy.h:2038
const MultiVar kPngDirY([](const caf::SRProxy *sr){std::vector< double > dir;if(!sr->vtx.elastic.IsValid) return dir;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){dir.emplace_back(sr->vtx.elastic.fuzzyk.png[i].dir.Y());}return dir;})
Definition: NumuVarsExtra.h:32
const NuTruthVar kTrueSlcEff_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->eff;})
Definition: NumuVarsExtra.h:99
const NuTruthVar kTrueVisEinSlc_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->visEinslc;})
Definition: NumuVarsExtra.h:92
const NuTruthVar kTrueVtxZ_NT([](const caf::SRNeutrinoProxy *nu){return float(nu->vtx.Z()/100.);})
caf::Proxy< caf::SRFuzzyK > fuzzyk
Definition: SRProxy.h:2059
Represent the binning of a Spectrum&#39;s x-axis.
Definition: Binning.h:16
Cuts and Vars for the 2020 FD DiF Study.
Definition: vars.h:6
const MultiVar kPngNhit([](const caf::SRProxy *sr){std::vector< double > nhit;if(!sr->vtx.elastic.IsValid) return nhit;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){nhit.emplace_back(sr->vtx.elastic.fuzzyk.png[i].nhit);}return nhit;})
Definition: NumuVarsExtra.h:24
caf::Proxy< float > visENeutronBirks
Definition: SRProxy.h:568
const Var kNPng2D([](const caf::SRProxy *sr){if(!sr->vtx.elastic.IsValid) return-5;return(int) sr->vtx.elastic.fuzzyk.npng2d;})
Definition: NumuVarsExtra.h:57
const Var kTrueMomY([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].p.Y();})
Definition: NumuVarsExtra.h:80
const MultiVar kPng2dDirX([](const caf::SRProxy *sr){std::vector< double > dir;if(!sr->vtx.elastic.IsValid) return dir;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){dir.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].dir.X());}return dir;})
Definition: NumuVarsExtra.h:48
const MultiVar kPng2dCalE([](const caf::SRProxy *sr){std::vector< double > E;if(!sr->vtx.elastic.IsValid) return E;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){E.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].calE);}return E;})
Definition: NumuVarsExtra.h:39
const MultiVar kPngStartX([](const caf::SRProxy *sr){std::vector< double > start;if(!sr->vtx.elastic.IsValid) return start;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){start.emplace_back(sr->vtx.elastic.fuzzyk.png[i].start.X()/100.);}return start;})
Definition: NumuVarsExtra.h:34
caf::Proxy< unsigned int > idxremid
Definition: SRProxy.h:1777
caf::Proxy< size_t > ntracks
Definition: SRProxy.h:1778
Proxy for caf::SRNeutrino.
Definition: SRProxy.h:510
const MultiVar kPngMaxPlaneCont([](const caf::SRProxy *sr){std::vector< double > maxplane;if(!sr->vtx.elastic.IsValid) return maxplane;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){maxplane.emplace_back(sr->vtx.elastic.fuzzyk.png[i].maxplanecont);}return maxplane;})
Definition: NumuVarsExtra.h:28
const NuTruthVar kTrueQ0_NT([](const caf::SRNeutrinoProxy *nu){return nu->y *nu->E;})
True energy transfer (q0 = 0th component of four-momentum transfer)
Definition: TruthVars.h:31
const MultiVar kPng2dNhitY([](const caf::SRProxy *sr){std::vector< double > nhit;if(!sr->vtx.elastic.IsValid) return nhit;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){nhit.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].nhity);}return nhit;})
Definition: NumuVarsExtra.h:43
Proxy for caf::StandardRecord.
Definition: SRProxy.h:2126
const NuTruthVar kTrueQ3_NT([](const caf::SRNeutrinoProxy *nu){return sqrt(nu->q2+util::sqr(kTrueQ0_NT(nu)));})
True magnitude of three-momentum transfer.
Definition: TruthVars.h:37
caf::Proxy< std::vector< caf::SRNeutrino > > nu
Definition: SRProxy.h:618
const Binning kZBinsND
const NuTruthVar kTrueMomY_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->p.Y();})
const NuTruthVar kTrueq0q3_NT([](const caf::SRNeutrinoProxy *nu){return float(kTrueQ0_NT(nu)/kTrueQ3_NT(nu));})
const MultiVar kPngNhitY([](const caf::SRProxy *sr){std::vector< double > nhit;if(!sr->vtx.elastic.IsValid) return nhit;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){nhit.emplace_back(sr->vtx.elastic.fuzzyk.png[i].nhity);}return nhit;})
Definition: NumuVarsExtra.h:26
const Var kMuEres([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return float((kMuE(sr)-kTrueMuonE(sr))/kTrueMuonE(sr));})
Definition: NumuVarsExtra.h:86
const MultiVar kPngDirZ([](const caf::SRProxy *sr){std::vector< double > dir;if(!sr->vtx.elastic.IsValid) return dir;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){dir.emplace_back(sr->vtx.elastic.fuzzyk.png[i].dir.Z());}return dir;})
Definition: NumuVarsExtra.h:33
const NuTruthVar kTrueVisEinSlcBirks_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->visEinslcBirks;})
Definition: NumuVarsExtra.h:96
nhit
Definition: demo1.py:25
const MultiVar kPngStartZ([](const caf::SRProxy *sr){std::vector< double > start;if(!sr->vtx.elastic.IsValid) return start;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){start.emplace_back(sr->vtx.elastic.fuzzyk.png[i].start.Z()/100.);}return start;})
Definition: NumuVarsExtra.h:36
const Var kTrueVisEinSlc([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].visEinslc;})
Definition: NumuVarsExtra.h:68
caf::Proxy< int > mode
Definition: SRProxy.h:543
caf::Proxy< short int > nnu
Definition: SRProxy.h:617
const NuTruthVar kTrueNHitsSlc_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->nhitslc;})
const MultiVar kPng2dStartX([](const caf::SRProxy *sr){std::vector< double > start;if(!sr->vtx.elastic.IsValid) return start;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){start.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].start.X()/100.);}return start;})
Definition: NumuVarsExtra.h:51
const Var kVtxX
const MultiVar kPng2dMaxPlaneCont([](const caf::SRProxy *sr){std::vector< double > maxplane;if(!sr->vtx.elastic.IsValid) return maxplane;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){maxplane.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].maxplanecont);}return maxplane;})
Definition: NumuVarsExtra.h:45
const NuTruthVar kTrueMomZ_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->p.Z();})
const Var kNNonNoise([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return float(sr->slc.nnonnoise);})
Definition: NumuVarsExtra.h:63
const Var kTrueNHitsTot([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].nhittot;})
Definition: NumuVarsExtra.h:78
_Var< caf::SRProxy > Var
Representation of a variable to be retrieved from a caf::StandardRecord object.
Definition: Var.h:74
const NuTruthVar kTrueVisENeutron_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->visENeutron;})
Definition: NumuVarsExtra.h:93
const Var kVtxZm([](const caf::SRProxy *sr){return float(kVtxZ(sr)/100.);})
Definition: NumuVarsExtra.h:62
const Var kNPng3D([](const caf::SRProxy *sr){if(!sr->vtx.elastic.IsValid) return-5;return(int) sr->vtx.elastic.fuzzyk.npng;})
Definition: NumuVarsExtra.h:56
const Var kOrphCalE([](const caf::SRProxy *sr){if(!sr->vtx.elastic.IsValid) return-5.f;return(float) sr->vtx.elastic.fuzzyk.orphCalE;})
Definition: NumuVarsExtra.h:58
caf::Proxy< caf::SRElastic > elastic
Definition: SRProxy.h:2118
const MultiVar kPng2dStartZ([](const caf::SRProxy *sr){std::vector< double > start;if(!sr->vtx.elastic.IsValid) return start;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){start.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].start.Z()/100.);}return start;})
Definition: NumuVarsExtra.h:53
caf::Proxy< caf::SRVector3D > vtx
Definition: SRProxy.h:573
const MultiVar kPngNPlane([](const caf::SRProxy *sr){std::vector< double > nplane;if(!sr->vtx.elastic.IsValid) return nplane;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){nplane.emplace_back(sr->vtx.elastic.fuzzyk.png[i].nplane);}return nplane;})
Definition: NumuVarsExtra.h:27
const Var kTrueVisENeutronBirks([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].visENeutronBirks;})
Definition: NumuVarsExtra.h:73
const MultiVar kPngMaxPlaneGap([](const caf::SRProxy *sr){std::vector< double > maxplane;if(!sr->vtx.elastic.IsValid) return maxplane;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){maxplane.emplace_back(sr->vtx.elastic.fuzzyk.png[i].maxplanegap);}return maxplane;})
Definition: NumuVarsExtra.h:29
const MultiVar kPng2dNhitX([](const caf::SRProxy *sr){std::vector< double > nhit;if(!sr->vtx.elastic.IsValid) return nhit;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){nhit.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].nhitx);}return nhit;})
Definition: NumuVarsExtra.h:42
caf::Proxy< float > pur
Definition: SRProxy.h:556
caf::Proxy< unsigned int > nhittot
Definition: SRProxy.h:545
const MultiVar kPng2dDirY([](const caf::SRProxy *sr){std::vector< double > dir;if(!sr->vtx.elastic.IsValid) return dir;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){dir.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].dir.Y());}return dir;})
Definition: NumuVarsExtra.h:49
const Var kTrkNPlaneGapFrac([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;if(sr->trk.kalman.ntracks > 0 &&sr->trk.kalman.idxremid!=999) return float(float(sr->trk.kalman.tracks[0].nplanegap)/float(sr->trk.kalman.tracks[0].nplane));return-5.f;})
Definition: NumuVarsExtra.h:88
const Var kTrueE([](const caf::SRProxy *sr){assert(sr->mc.nnu==1);return sr->mc.nu[0].E;})
Definition: Vars.cxx:85
const Binning kXYBinsFD
const MultiVar kPng2dMaxPlaneGap([](const caf::SRProxy *sr){std::vector< double > maxplane;if(!sr->vtx.elastic.IsValid) return maxplane;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){maxplane.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].maxplanegap);}return maxplane;})
Definition: NumuVarsExtra.h:46
caf::Proxy< float > visE
Definition: SRProxy.h:565
const NuTruthVar kTrueVisEinSlcNeutronBirks_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->visEinslcNeutronBirks;})
Definition: NumuVarsExtra.h:98
if(dump)
const MultiVar kPngLen([](const caf::SRProxy *sr){std::vector< double > len;if(!sr->vtx.elastic.IsValid) return len;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){len.emplace_back(sr->vtx.elastic.fuzzyk.png[i].len/100.);}return len;})
Definition: NumuVarsExtra.h:30
caf::Proxy< float > visEinslcBirks
Definition: SRProxy.h:570
const Var kTrueVisEinSlcNeutronBirks([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].visEinslcNeutronBirks;})
Definition: NumuVarsExtra.h:74
caf::Proxy< caf::SRTrackBranch > trk
Definition: SRProxy.h:2145
const Binning kZBinsFD
Float_t E
Definition: plot.C:20
const Var kTrueVisEBirks([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].visEBirks;})
Definition: NumuVarsExtra.h:71
const Binning kHadronicEnergyBinning
const Var kHadEres([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;float recoE=kHadE(sr);float trueE=kTrueE(sr)-kMuE(sr);return float((recoE-trueE)/trueE);})
Definition: NumuVarsExtra.h:87
const MultiVar kPngNhitX([](const caf::SRProxy *sr){std::vector< double > nhit;if(!sr->vtx.elastic.IsValid) return nhit;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){nhit.emplace_back(sr->vtx.elastic.fuzzyk.png[i].nhitx);}return nhit;})
Definition: NumuVarsExtra.h:25
caf::Proxy< float > visEinslcNeutron
Definition: SRProxy.h:571
_Var< caf::SRNeutrinoProxy > NuTruthVar
Var designed to be used over the nuTree, ie all neutrinos, not just those that got slices...
Definition: Var.h:82
const Var kCCE
Definition: NumuVars.h:21
const Binning kEnergyBinning
const NuTruthVar kTrueNHitsTot_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->nhittot;})
caf::Proxy< unsigned int > nnonnoise
Definition: SRProxy.h:1318
caf::StandardRecord * sr
caf::Proxy< unsigned int > nhitslc
Definition: SRProxy.h:544
const Var kTrueSlcPur([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].pur;})
Definition: NumuVarsExtra.h:76
const Var kNueCosRejPngPTP
const NuTruthVar kTrueVisENeutronBirks_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->visENeutronBirks;})
Definition: NumuVarsExtra.h:97
caf::Proxy< float > eff
Definition: SRProxy.h:526
const MultiVar kPngWtCalE([](const caf::SRProxy *sr){std::vector< double > E;if(!sr->vtx.elastic.IsValid) return E;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){E.emplace_back(sr->vtx.elastic.fuzzyk.png[i].weightedCalE);}return E;})
Definition: NumuVarsExtra.h:23
#define SIMPLEVAR(CAFNAME)
For Vars where literally all you need is a single CAF variable.
Definition: Var.h:88
const Var kKalTrkOverlapE([](const caf::SRProxy *sr){if(sr->trk.kalman.ntracks< 1) return-5.f;return(float) sr->trk.kalman.tracks[0].overlapE;})
Definition: NumuVarsExtra.h:59
const NuTruthVar kTrueMomX_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->p.X();})
caf::Proxy< float > visEinslc
Definition: SRProxy.h:569
const MultiVar kPng2dNPlane([](const caf::SRProxy *sr){std::vector< double > nplane;if(!sr->vtx.elastic.IsValid) return nplane;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){nplane.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].nplane);}return nplane;})
Definition: NumuVarsExtra.h:44
const MultiVar kPngStartY([](const caf::SRProxy *sr){std::vector< double > start;if(!sr->vtx.elastic.IsValid) return start;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){start.emplace_back(sr->vtx.elastic.fuzzyk.png[i].start.Y()/100.);}return start;})
Definition: NumuVarsExtra.h:35
const Var kTrueMomX([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].p.X();})
Definition: NumuVarsExtra.h:79
const Var kTrueVisENeutron([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].visENeutron;})
Definition: NumuVarsExtra.h:69
caf::Proxy< caf::SRTruthBranch > mc
Definition: SRProxy.h:2138
const Var kTrueVtxZ([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return float(sr->mc.nu[0].vtx.Z()/100.);})
Definition: NumuVarsExtra.h:84
const Var kTrueVisE([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].visE;})
Definition: NumuVarsExtra.h:67
caf::Proxy< float > orphCalE
Definition: SRProxy.h:2042
const NuTruthVar kTrueVisE_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->visE;})
Definition: NumuVarsExtra.h:91
caf::Proxy< caf::SRKalman > kalman
Definition: SRProxy.h:1797
const NuTruthVar kTrueSlcPur_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->pur;})
const Binning kXYBinsND
caf::Proxy< bool > IsValid
Definition: SRProxy.h:2058
const NuTruthVar kTrueVtxY_NT([](const caf::SRNeutrinoProxy *nu){return float(nu->vtx.Y()/100.);})
const Var kTrueVisEinSlcBirks([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].visEinslcBirks;})
Definition: NumuVarsExtra.h:72
const Var kVtxY
caf::Proxy< caf::SRSlice > slc
Definition: SRProxy.h:2142
const Var kTrueVisEinSlcNeutron([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].visEinslcNeutron;})
Definition: NumuVarsExtra.h:70
TDirectory * dir
Definition: macro.C:5
caf::Proxy< float > visEinslcNeutronBirks
Definition: SRProxy.h:572
const Var kEres([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return float((kCCE(sr)-kTrueE(sr))/kTrueE(sr));})
Definition: NumuVarsExtra.h:85
const Var kTrueMomZ([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].p.Z();})
Definition: NumuVarsExtra.h:81
const Var kTrueMuonE([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return 0.f;if(sr->mc.nu[0].prim.empty()) return 0.f;if(std::abs(sr->mc.nu[0].prim[0].pdg)!=13) return 0.f;return float(sr->mc.nu[0].prim[0].p.E);})
Definition: NumuVars.h:107
const Binning kEnergyBinningZoom
const MultiVar kPngDirX([](const caf::SRProxy *sr){std::vector< double > dir;if(!sr->vtx.elastic.IsValid) return dir;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng;++i){dir.emplace_back(sr->vtx.elastic.fuzzyk.png[i].dir.X());}return dir;})
Definition: NumuVarsExtra.h:31
caf::Proxy< float > visENeutron
Definition: SRProxy.h:567
const Var kAngleKal
_MultiVar< caf::SRProxy > MultiVar
Definition: MultiVar.h:52
const Var kVtxZ
const MultiVar kPng2dLen([](const caf::SRProxy *sr){std::vector< double > len;if(!sr->vtx.elastic.IsValid) return len;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){len.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].len/100.);}return len;})
Definition: NumuVarsExtra.h:47
const NuTruthVar kTrueLepE_NT([](const caf::SRNeutrinoProxy *nu){return float(nu->prim[0].p.E);})
caf::Proxy< caf::SRLorentzVector > p
Definition: SRProxy.h:551
const MultiVar kPng2dDirZ([](const caf::SRProxy *sr){std::vector< double > dir;if(!sr->vtx.elastic.IsValid) return dir;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){dir.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].dir.Z());}return dir;})
Definition: NumuVarsExtra.h:50
caf::Proxy< std::vector< caf::SRKalmanTrack > > tracks
Definition: SRProxy.h:1780
caf::Proxy< size_t > npng2d
Definition: SRProxy.h:2039
const MultiVar kPng2dNhit([](const caf::SRProxy *sr){std::vector< double > nhit;if(!sr->vtx.elastic.IsValid) return nhit;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){nhit.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].nhit);}return nhit;})
Definition: NumuVarsExtra.h:41
const Var kVtxXm([](const caf::SRProxy *sr){return float(kVtxX(sr)/100.);})
Definition: NumuVarsExtra.h:60
caf::Proxy< caf::SRVertexBranch > vtx
Definition: SRProxy.h:2146
const NuTruthVar kTrueMode_NT([](const caf::SRNeutrinoProxy *nu){return int(nu->mode);})
const Var kMuE
Definition: NumuVars.h:22
static Binning Simple(int n, double lo, double hi, const std::vector< std::string > &labels={})
Definition: Binning.cxx:107
const NuTruthVar kTrueVtxX_NT([](const caf::SRNeutrinoProxy *nu){return float(nu->vtx.X()/100.);})
caf::Proxy< float > visEBirks
Definition: SRProxy.h:566
const NuTruthVar kTrueVisEBirks_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->visEBirks;})
Definition: NumuVarsExtra.h:95
const Var kTrueVtxX([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5555.f;return float(sr->mc.nu[0].vtx.X()/100.);})
Definition: NumuVarsExtra.h:82
const Binning kHadronicEnergyBinningZoom
const Var kVtxYm([](const caf::SRProxy *sr){return float(kVtxY(sr)/100.);})
Definition: NumuVarsExtra.h:61
const MultiVar kPng2dWtCalE([](const caf::SRProxy *sr){std::vector< double > E;if(!sr->vtx.elastic.IsValid) return E;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){E.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].weightedCalE);}return E;})
Definition: NumuVarsExtra.h:40
caf::Proxy< std::vector< caf::SRTrueParticle > > prim
Definition: SRProxy.h:555
const MultiVar kPng2dStartY([](const caf::SRProxy *sr){std::vector< double > start;if(!sr->vtx.elastic.IsValid) return start;for(unsigned int i=0;i< sr->vtx.elastic.fuzzyk.npng2d;++i){start.emplace_back(sr->vtx.elastic.fuzzyk.png2d[i].start.Y()/100.);}return start;})
Definition: NumuVarsExtra.h:52
const Var kNNonNoiseWt([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return float(1./kNNonNoise(sr));})
Definition: NumuVarsExtra.h:64
const Var kTrueVtxY([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5555.f;return float(sr->mc.nu[0].vtx.Y()/100.);})
Definition: NumuVarsExtra.h:83
const Var kTrueSlcEff([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].eff;})
Definition: NumuVarsExtra.h:75
const NuTruthVar kTrueVisEinSlcNeutron_NT([](const caf::SRNeutrinoProxy *nu){return(float) nu->visEinslcNeutron;})
Definition: NumuVarsExtra.h:94
const Var kTrueNHitsSlc([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-5.f;return(float) sr->mc.nu[0].nhitslc;})
Definition: NumuVarsExtra.h:77