PredictionGenerator3Flavor.cxx
Go to the documentation of this file.
2 
15 
16 namespace ana
17 {
18  //--------------------------------------------------------------------------
19  //rhc
21  const HistAxis axis,
22  const HistAxis axisNDNumu,
23  const Cut cutFD,
24  const Cut cutNDNue,
25  const Cut cutNDNumu,
26  const SystShifts shiftDataND,
27  const Var wei
28  ) : fAxis(axis), fAxisNDNumu(axisNDNumu), fCutFD(cutFD), fCutNDNue(cutNDNue),
29  fCutNDNumu(cutNDNumu), fShiftDataND(shiftDataND), fWei(wei)
30  {}
31 
32  std::unique_ptr<ana::IPrediction> NuePropExtrapRHCGenerator::Generate(
34  const SystShifts &shiftMC
35  ) const
36  {
37  NumuDecomp *numuDecomp = new NumuDecomp(
38  loaders, fAxisNDNumu, fCutNDNumu, shiftMC, fShiftDataND, fWei);
39  ProportionalDecomp *nueDecomp = new ProportionalDecomp(
40  loaders, fAxis, fCutNDNue, shiftMC, fShiftDataND, fWei);
41  auto extrap = std::make_unique<NueRHCExtrap>(
42  loaders, *nueDecomp, *numuDecomp, fAxis, fAxisNDNumu,
43  fCutFD, fCutNDNue, fCutNDNumu, shiftMC, fWei);
44  return std::make_unique<PredictionExtrap>(std::move(extrap));
45  }
46 
48  const HistAxis axis,
49  const HistAxis axisNDNumu,
50  const Cut cutFD,
51  const Cut cutNDNue,
52  const Cut cutNDNumu,
53  const SystShifts shiftDataND,
54  const Var wei,
55  const EBENAnaStyle benStyle
56  ) : fAxis(axis), fAxisNDNumu(axisNDNumu), fCutFD(cutFD), fCutNDNue(cutNDNue),
57  fCutNDNumu(cutNDNumu), fShiftDataND(shiftDataND), fWei(wei), fBenStyle(benStyle)
58  {}
59 
60  std::unique_ptr<ana::IPrediction> NueComboExtrapGenerator::Generate(
62  const SystShifts &shiftMC
63  ) const
64  {
65  NumuDecomp *numuDecomp = new NumuDecomp(
66  loaders, fAxisNDNumu, fCutNDNumu, shiftMC, fShiftDataND, fWei);
68  loaders, fAxis, fCutNDNue, shiftMC, fShiftDataND, fWei);
69  if (fBenStyle == kSAKaScale)
70  {
71  delete benDecomp;
72  benDecomp = new BENDecomp(
73  loaders, fAxis, fCutNDNue, shiftMC, fShiftDataND, fWei);
74  }
75  MichelDecomp *nueDecomp = new MichelDecomp(
76  loaders, fAxis, fCutNDNue, benDecomp, shiftMC, fShiftDataND, fWei);
77  auto extrap = std::make_unique<NueExtrap>(
78  loaders, *nueDecomp, *numuDecomp, fAxis, fAxisNDNumu,
79  fCutFD, fCutNDNue, fCutNDNumu, shiftMC, fWei);
80  return std::make_unique<PredictionExtrap>(std::move(extrap));
81  }
82 
84  const HistAxis axis,
85  const HistAxis axisNDNumu,
86  const Cut cutFD,
87  const Cut cutNDNumu,
88  const SystShifts shiftDataND,
89  const Var wei
90  ) : fAxis(axis), fAxisNDNumu(axisNDNumu), fCutFD(cutFD),
91  fCutNDNumu(cutNDNumu), fShiftDataND(shiftDataND), fWei(wei)
92  {}
93 
94  std::unique_ptr<ana::IPrediction> NueSignalExtrapGenerator::Generate(
96  const SystShifts &shiftMC
97  ) const
98  {
99  NumuDecomp *numuDecomp = new NumuDecomp(
100  loaders, fAxisNDNumu, fCutNDNumu, shiftMC, fShiftDataND, fWei);
101  auto extrap = std::make_unique<NueSignalOnlyExtrap>(
102  loaders, *numuDecomp, fAxis, fAxisNDNumu, fCutFD, fCutNDNumu, shiftMC, fWei);
103  return std::make_unique<PredictionExtrap>(std::move(extrap));
104  }
105 
107  const bool isRHC,
108  const HistAxis axis,
109  const Cut cutFD,
110  const Cut cutNDNue,
111  const SystShifts shiftDataND,
112  const Var wei,
113  const EBENAnaStyle benStyle
114  ) : fIsRHC(isRHC), fAxis(axis), fCutFD(cutFD), fCutNDNue(cutNDNue),
115  fShiftDataND(shiftDataND), fWei(wei), fBenStyle(benStyle)
116  {}
117 
118  std::unique_ptr<ana::IPrediction> NueBkgdComboExtrapGenerator::Generate(
119  Loaders &loaders,
120  const SystShifts &shiftMC
121  ) const
122  {
124  loaders, fAxis, fCutNDNue, shiftMC, fShiftDataND, fWei);
125  if (fBenStyle == kSAKaScale)
126  {
127  delete benDecomp;
128  benDecomp = new BENDecomp(
129  loaders, fAxis, fCutNDNue, shiftMC, fShiftDataND, fWei);
130  }
131  MichelDecomp *nueDecomp = new MichelDecomp(
132  loaders, fAxis, fCutNDNue, benDecomp, shiftMC, fShiftDataND, fWei);
133  auto extrap = std::make_unique<NueBkgdOnlyExtrap>(
134  fIsRHC, loaders, *nueDecomp, fAxis, fCutFD, fCutNDNue, shiftMC, fWei);
135  return std::make_unique<PredictionExtrap>(std::move(extrap));
136  }
137 
139  const bool isRHC,
140  const HistAxis axis,
141  const Cut cutFD,
142  const Cut cutNDNue,
143  const SystShifts shiftDataND,
144  const Var wei
145  ) : fIsRHC(isRHC), fAxis(axis), fCutFD(cutFD), fCutNDNue(cutNDNue),
146  fShiftDataND(shiftDataND), fWei(wei)
147  {}
148 
149  std::unique_ptr<ana::IPrediction> NueBkgdPropExtrapGenerator::Generate(
150  Loaders &loaders,
151  const SystShifts &shiftMC
152  ) const
153  {
154  ProportionalDecomp *nueDecomp = new ProportionalDecomp(
155  loaders, fAxis, fCutNDNue, shiftMC, fShiftDataND, fWei);
156  auto extrap = std::make_unique<NueBkgdOnlyExtrap>(
157  fIsRHC, loaders, *nueDecomp, fAxis, fCutFD, fCutNDNue, shiftMC, fWei);
158  return std::make_unique<PredictionExtrap>(std::move(extrap));
159  }
160 
162  const HistAxis axis,
163  const Cut cutFD,
164  const Cut cutND,
165  const SystShifts shiftDataND,
166  const Var wei
167  ) : fAxis(axis), fCutFD(cutFD), fCutND(cutND),
168  fShiftDataND(shiftDataND), fWei(wei)
169  {}
170 
171  std::unique_ptr<ana::IPrediction> NumuExtrapGenerator::Generate(
172  Loaders &loaders,
173  const SystShifts &shiftMC
174  ) const
175  {
177  loaders, fAxis, fCutND, shiftMC, fShiftDataND, fWei);
178  auto extrap = std::make_unique<NumuExtrap>(
179  loaders, *decomp, fAxis, fCutFD, fCutND, shiftMC, fWei);
180  return std::make_unique<PredictionExtrap>(std::move(extrap));
181  }
182 
184  const HistAxis axis,
185  const HistAxis axisNDNumu,
186  const Cut cutFD,
187  const Cut cutNDNue,
188  const Cut cutNDNumu,
189  const SystShifts shiftDataND,
190  const Var wei
191  ) : fAxis(axis), fAxisNDNumu(axisNDNumu), fCutFD(cutFD), fCutNDNue(cutNDNue),
192  fCutNDNumu(cutNDNumu), fShiftDataND(shiftDataND), fWei(wei)
193  {}
194 
195  std::unique_ptr<ana::IPrediction> NuePropExtrapGenerator::Generate(
196  Loaders &loaders,
197  const SystShifts &shiftMC
198  ) const
199  {
200  NumuDecomp *numuDecomp = new NumuDecomp(
201  loaders, fAxisNDNumu, fCutNDNumu, shiftMC, fShiftDataND, fWei);
202  ProportionalDecomp *nueDecomp = new ProportionalDecomp(
203  loaders, fAxis, fCutNDNue, shiftMC, fShiftDataND, fWei);
204  auto extrap = std::make_unique<NueExtrap>(
205  loaders, *nueDecomp, *numuDecomp, fAxis, fAxisNDNumu,
206  fCutFD, fCutNDNue, fCutNDNumu, shiftMC, fWei);
207  return std::make_unique<PredictionExtrap>(std::move(extrap));
208  }
209 }
NueBkgdComboExtrapGenerator(const bool isRHC, const HistAxis axis, const Cut cutFD, const Cut cutNDNue, const SystShifts shiftDataND=kNoShift, const Var wei=kUnweighted, const EBENAnaStyle benStyle=k2017KaScale)
Cuts and Vars for the 2020 FD DiF Study.
Definition: vars.h:6
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
std::unique_ptr< IPrediction > Generate(Loaders &loaders, const SystShifts &shiftMC=kNoShift) const override
Collection of SpectrumLoaders for many configurations.
Definition: Loaders.h:23
NueBkgdPropExtrapGenerator(const bool isRHC, const HistAxis axis, const Cut cutFD, const Cut cutNDNue, const SystShifts shiftDataND=kNoShift, const Var wei=kUnweighted)
NuePropExtrapRHCGenerator(const HistAxis axis, const HistAxis axisNDNumu, const Cut cutFD, const Cut cutNDNue, const Cut cutNDNumu, const SystShifts shiftDataND=kNoShift, const Var wei=kUnweighted)
NueComboExtrapGenerator(const HistAxis axis, const HistAxis axisNDNumu, const Cut cutFD, const Cut cutNDNue, const Cut cutNDNumu, const SystShifts shiftDataND=kNoShift, const Var wei=kUnweighted, const EBENAnaStyle benStyle=k2017KaScale)
Uses MC for NC and CC components, assigns remainder of data to CC.
Definition: NumuDecomp.h:10
std::unique_ptr< IPrediction > Generate(Loaders &loaders, const SystShifts &shiftMC=kNoShift) const override
std::unique_ptr< IPrediction > Generate(Loaders &loaders, const SystShifts &shiftMC=kNoShift) const override
NueSignalExtrapGenerator(const HistAxis axis, const HistAxis axisNDNumu, const Cut cutFD, const Cut cutNDNumu, const SystShifts shiftDataND=kNoShift, const Var wei=kUnweighted)
std::unique_ptr< IPrediction > Generate(Loaders &loaders, const SystShifts &shiftMC=kNoShift) const override
Splits Data proportionally according to MC.
std::vector< Loaders * > loaders
Definition: syst_header.h:386
NuePropExtrapGenerator(const HistAxis axis, const HistAxis axisNDNumu, const Cut cutFD, const Cut cutNDNue, const Cut cutNDNumu, const SystShifts shiftDataND=kNoShift, const Var wei=kUnweighted)
std::unique_ptr< IPrediction > Generate(Loaders &loaders, const SystShifts &shiftMC=kNoShift) const override
std::unique_ptr< IPrediction > Generate(Loaders &loaders, const SystShifts &shiftMC=kNoShift) const override
std::unique_ptr< IPrediction > Generate(Loaders &loaders, const SystShifts &shiftMC=kNoShift) const override