PredictionGenerator3Flavor.h
Go to the documentation of this file.
2 
4 
5 #include "CAFAna/Core/Cut.h"
7 #include "CAFAna/Core/HistAxis.h"
8 #include "CAFAna/Core/Var.h"
9 #include "CAFAna/Vars/HistAxes.h"
10 #include "CAFAna/Core/SystShifts.h"
11 
14 
15 namespace ana
16 {
17  //---------------------------------------------------------------------------
18 
19  /// Generates extrapolated Numu predictions
21  {
22  public:
24  const HistAxis axis,
25  const Cut cutFD,
26  const Cut cutND,
27  const SystShifts shiftDataND = kNoShift,
28  const Var wei = kUnweighted );
29  std::unique_ptr<IPrediction> Generate(
31  const SystShifts& shiftMC = kNoShift ) const override;
32  private:
33  const HistAxis fAxis;
34  const Cut fCutFD;
35  const Cut fCutND;
37  const Var fWei;
38  };
39 
44 
45  //---------------------------------------------------------------------------
46 
47  /// Generates extrapolated Nue predictions using ProportionalDecomp
49  {
50  public:
52  const HistAxis axis,
53  const HistAxis axisNDNumu,
54  const Cut cutFD,
55  const Cut cutNDNue,
56  const Cut cutNDNumu,
57  const SystShifts shiftDataND = kNoShift,
58  const Var wei = kUnweighted );
59  std::unique_ptr<IPrediction> Generate(
61  const SystShifts& shiftMC = kNoShift ) const override;
62  private:
63  const HistAxis fAxis;
65  const Cut fCutFD;
66  const Cut fCutNDNue;
67  const Cut fCutNDNumu;
69  const Var fWei;
70  };
71 
72  //---------------------------------------------------------------------------
73  // rhc part
75  {
76  public:
78  const HistAxis axis,
79  const HistAxis axisNDNumu,
80  const Cut cutFD,
81  const Cut cutNDNue,
82  const Cut cutNDNumu,
83  const SystShifts shiftDataND = kNoShift,
84  const Var wei = kUnweighted );
85  std::unique_ptr<IPrediction> Generate(
87  const SystShifts& shiftMC = kNoShift ) const override;
88  private:
89  const HistAxis fAxis;
91  const Cut fCutFD;
92  const Cut fCutNDNue;
93  const Cut fCutNDNumu;
95  const Var fWei;
96  };
97 
98  //---------------------------------------------------------------------------
99 
100  /// Generates extrapolated Nue predictions using Michel+BEN decomposition
102  {
103  public:
104  enum EBENAnaStyle {kSAKaScale, k2017KaScale};
105 
107  const HistAxis axis,
108  const HistAxis axisNDNumu,
109  const Cut cutFD,
110  const Cut cutNDNue,
111  const Cut cutNDNumu,
112  const SystShifts shiftDataND = kNoShift,
113  const Var wei = kUnweighted,
114  const EBENAnaStyle benStyle= k2017KaScale );
115  std::unique_ptr<IPrediction> Generate(
116  Loaders& loaders,
117  const SystShifts& shiftMC = kNoShift ) const override;
118  private:
121  const Cut fCutFD;
122  const Cut fCutNDNue;
125  const Var fWei;
127  };
128 
129  //---------------------------------------------------------------------------
130 
131  /// Generates extrapolated Nue signal-only predictions
133  {
134  public:
136  const HistAxis axis,
137  const HistAxis axisNDNumu,
138  const Cut cutFD,
139  const Cut cutNDNumu,
140  const SystShifts shiftDataND = kNoShift,
141  const Var wei = kUnweighted );
142  std::unique_ptr<IPrediction> Generate(
143  Loaders& loaders,
144  const SystShifts& shiftMC = kNoShift ) const override;
145  private:
148  const Cut fCutFD;
151  const Var fWei;
152  };
153 
154  //---------------------------------------------------------------------------
155 
156  /// Generates extrapolated Nue background-only predictions using Michel+BEN decomposition
158  {
159  public:
160  enum EBENAnaStyle {kSAKaScale, k2017KaScale};
161 
163  const bool isRHC,
164  const HistAxis axis,
165  const Cut cutFD,
166  const Cut cutNDNue,
167  const SystShifts shiftDataND = kNoShift,
168  const Var wei = kUnweighted,
169  const EBENAnaStyle benStyle= k2017KaScale );
170  std::unique_ptr<IPrediction> Generate(
171  Loaders& loaders,
172  const SystShifts& shiftMC = kNoShift ) const override;
173  private:
174  const bool fIsRHC;
176  const Cut fCutFD;
177  const Cut fCutNDNue;
179  const Var fWei;
181  };
182 
183  //---------------------------------------------------------------------------
184 
185  /// Generates extrapolated Nue background-only predictions using ProportionalDecomp
187  {
188  public:
190  const bool isRHC,
191  const HistAxis axis,
192  const Cut cutFD,
193  const Cut cutNDNue,
194  const SystShifts shiftDataND = kNoShift,
195  const Var wei = kUnweighted );
196  std::unique_ptr<IPrediction> Generate(
197  Loaders& loaders,
198  const SystShifts& shiftMC = kNoShift ) const override;
199  private:
200  const bool fIsRHC;
202  const Cut fCutFD;
203  const Cut fCutNDNue;
205  const Var fWei;
206  };
207 }
const NumuExtrapGenerator kNumuCCExtrap(kNumuCCAxis, kNumuFD, kNumuND)
Cuts and Vars for the 2020 FD DiF Study.
Definition: vars.h:6
const NumuExtrapGenerator kNumuQEExtrap(kNumuQEAxis, kNumuQEFD, kNumuQEND)
NumuExtrapGenerator(const HistAxis axis, const Cut cutFD, const Cut cutND, const SystShifts shiftDataND=kNoShift, const Var wei=kUnweighted)
Simple record of shifts applied to systematic parameters.
Definition: SystShifts.h:20
Collection of SpectrumLoaders for many configurations.
Definition: Loaders.h:23
const HistAxis kNumuQEAxis("Quasielastic Energy Estimator (GeV)", kNumuEnergyBinning, kQEE)
Definition: HistAxes.h:9
const Cut kNumuFD
Definition: NumuCuts.h:53
Generates extrapolated Numu predictions.
const Cut kNumuQEND
Definition: NumuCuts.h:66
Generates extrapolated Nue predictions using ProportionalDecomp.
const HistAxis kNumuCCAxis("Reconstructed Neutrino Energy (GeV)", kNumuEnergyBinning, kCCE)
Definition: HistAxes.h:8
const Cut kNumuND
Definition: NumuCuts.h:55
std::unique_ptr< IPrediction > Generate(Loaders &loaders, const SystShifts &shiftMC=kNoShift) const override
Generates extrapolated Nue signal-only predictions.
const Cut kNumuNonQEFD
Definition: NumuCuts.h:67
const HistAxis kNumuNonQEAxis("Non-Quasielastic Energy Estimator (GeV)", kNumuEnergyBinning, kCCE)
Definition: HistAxes.h:10
Generates extrapolated Nue background-only predictions using ProportionalDecomp.
const SystShifts kNoShift
Definition: SystShifts.cxx:22
Generates extrapolated Nue background-only predictions using Michel+BEN decomposition.
std::vector< Loaders * > loaders
Definition: syst_header.h:386
Generates extrapolated Nue predictions using Michel+BEN decomposition.
const Cut kNumuQEFD
Definition: NumuCuts.h:65
Given loaders and an MC shift, Generate() generates an IPrediction.
const Cut kNumuNonQEND
Definition: NumuCuts.h:68
const Var kUnweighted
The simplest possible Var, always 1. Used as a default weight.
Definition: Var.h:96
const NumuExtrapGenerator kNumuNonQEExtrap(kNumuNonQEAxis, kNumuNonQEFD, kNumuNonQEND)