XSecSystLists.cxx
Go to the documentation of this file.
1 /*
2  * XSecSystLists.cxx
3  *
4  * Created on: Aug 14, 2017
5  * Author: J. Wolcott <jwolcott@fnal.gov>
6  */
7 
9 
10 #include <cassert>
11 #include <iostream>
12 #include <vector>
13 
14 #include "CAFAna/Core/ISyst.h"
15 #include "CAFAna/Systs/DISSysts.h"
16 #include "CAFAna/Systs/FSISysts.h"
17 #include "CAFAna/Systs/MECSysts.h"
18 #include "CAFAna/Systs/RESSysts.h"
19 #include "CAFAna/Systs/RPASysts.h"
20 #include "CAFAna/Systs/XSecSysts.h"
21 #include "CAFAna/Vars/XsecTunes.h"
22 
23 #include "NOvARwgt/rwgt/tunes/Tunes2017.h"
24 #include "NOvARwgt/rwgt/tunes/Tunes2018.h"
25 #include "NOvARwgt/rwgt/tunes/Tunes2020.h"
26 
27 
28 namespace ana
29 {
30  /// Compare the list of systs made here to what is expected for a given NOvARwgt tune.
31  void CheckSystsMatchWithNOvARwgt(const std::vector<const ISyst*>& systsHere, const novarwgt::Tune & novaRwgtTune)
32  {
33  // easiest to just make two temporary sets and compare them.
34  // note that they must be set<>, not unordered_set<>,
35  // since std::set_symmetric_difference() requires its input to be sorted
36  std::set<const novarwgt::ISystKnob*> systsHereSet;
37  std::transform(systsHere.begin(), systsHere.end(), std::inserter(systsHereSet, systsHereSet.end()),
38  [](const ISyst * s)
39  {
40  if ( auto casted = dynamic_cast<const NOvARwgtSyst*>(s) )
41  return casted->GetNOvARwgtKnob();
42  else
43  return static_cast<const novarwgt::ISystKnob*>(nullptr);
44  });
45  std::set<const novarwgt::ISystKnob*> tuneSysts;
46  std::transform(novaRwgtTune.SystKnobs().begin(), novaRwgtTune.SystKnobs().end(),
47  std::inserter(tuneSysts, tuneSysts.end()),
48  [](const auto & systNameKnobPair)
49  {
50  return systNameKnobPair.second;
51  });
52 
53  std::unordered_set<const novarwgt::ISystKnob*> diff;
54  std::set_symmetric_difference(systsHereSet.begin(), systsHereSet.end(),
55  tuneSysts.begin(), tuneSysts.end(),
56  std::inserter(diff, diff.end()));
57  if (!diff.empty())
58  {
59  std::cerr << "XSecSystsLists does not match NOvARwgt tune object!" << std::endl;
60  std::cerr << " Present in XSecSystLists but not NOvARwgt: ";
61  for (const auto & item : diff)
62  {
63  if (systsHereSet.find(item) != systsHereSet.end())
64  continue;
65  std::cerr << item->Name() << " ";
66  }
68  std::cerr << " Present in NOvARwgt but not XSecSystLists: ";
69  for (const auto & item : diff)
70  {
71  if (tuneSysts.find(item) != tuneSysts.end())
72  continue;
73  std::cerr << item->Name() << " ";
74  }
76  exit(1);
77  }
78  }
79 
80  // -------------------------------------------------------------------------------
81 
82  /// 2020 systematics list. Similar to 2018, but:
83  /// * Updates to RPA CCQE (don't need an energy offset since we use Valencia as base model now)
84  /// * RES "RPA" replaced by smaller, better motivated low-Q^2 suppression knob
85  /// * Retuned MEC systs based on prod5
86  /// * Custom Formation Zone and FSI knobs using "BDT reweight" method
87  std::vector<const ISyst*> getAllXsecNuTruthSysts_2020()
88  {
89  // note: we *could* just pull these all out of the corresponding NOvARwgt Tune.
90  // but I felt that it was perhaps more descriptive to leave the names here,
91  // because then if people need to make smaller versions and/or adjustments
92  // to test things there's an obvious template to copy and modify.
93  std::vector<const ISyst*> systs
94  {
95  // NOvA "custom" systs first:
96  // (1a) RPA CCQE
99 
100  // (1b) z-expansion custom knobs
105 
106  // (2) RES low-Q^2 suppression
108 
109  // (3) MEC
116 
117  // (4) soft DIS n-pion
150 
151  // (5) replacement formation zone
153 
154  // (6) replacement FSI knobs for hN
159 
160  // (7) nue/numu cross section ratio based on T2K's simple model
161  &kRadCorrNue,
164 
165  // now for the GENIE knobs.
166  // BEWARE: this is NOT a list of ALL
167  // GENIE knobs; some knobs are mutually exclusive
168  // (e.g., MA_RES and the combination MARes_Shape, CCRES_Norm),
169  // some of them are superseded by our custom uncertainties,
170  // and some of them don't actually do anything.
171  // But it is "complete," in the sense that all of the uncertainties
172  // we want GENIE to treat are represented either here or above.
173  // Adjust with care!
174 
175  // QE
176  GetGenieKnobSyst(rwgt::fReweightMaNCEL), ///< Ma NCEL, affects dsigma(NCEL)/dQ2 both in shape and normalization
177  GetGenieKnobSyst(rwgt::fReweightEtaNCEL), ///< NCEL strange axial form factor eta, affects dsigma(NCEL)/dQ2 both in shape and normalization
178 
179  // RES
180  GetGenieKnobSyst(rwgt::fReweightMaCCRES), ///< Ma CCRES, affects d2sigma(CCRES)/dWdQ2 both in shape and normalization
181  GetGenieKnobSyst(rwgt::fReweightMvCCRES), ///< Mv CCRES, affects d2sigma(CCRES)/dWdQ2 both in shape and normalization
182  GetGenieKnobSyst(rwgt::fReweightMaNCRES), ///< Ma NCRES, affects d2sigma(NCRES)/dWdQ2 both in shape and normalization
183  GetGenieKnobSyst(rwgt::fReweightMvNCRES), ///< Mv NCRES, affects d2sigma(NCRES)/dWdQ2 both in shape and normalization
184 
185  // COH
186  // The following CC & NC COH scale
187  // systematics replace the GENIE COH M_A & R_0
188  // systematics rwgt::fReweightMaCOHpi and rwgt::fReweightR0COHpi),
189  // which are broken
192 
193  // Non-resonance background tweaking parameters:
194 
195  // DIS: Bodek-Yang
196  GetGenieKnobSyst(rwgt::fReweightAhtBY), ///< Bodek-Yang model parameter A_{ht} - incl. both shape and normalization effect
197  GetGenieKnobSyst(rwgt::fReweightBhtBY), ///< Bodek-Yang model parameter B_{ht} - incl. both shape and normalization effect
198  GetGenieKnobSyst(rwgt::fReweightCV1uBY), ///< Bodek-Yang model parameter CV1u - incl. both shape and normalization effect
199  GetGenieKnobSyst(rwgt::fReweightCV2uBY), ///< Bodek-Yang model parameter CV2u - incl. both shape and normalization effect
200 
201  // DIS: general
202  // NOTE: The following systematic knobs do nothing,
203  // so they have been disabled.
204  // If they are fixed in future versions of GENIE we should reconsider.
205  //GetGenieKnobSyst(rwgt::fReweightNormDISCC), ///< inclusive DIS CC normalization (currently does nothing, but should retain for future)
206  //GetGenieKnobSyst(rwgt::fReweightRnubarnuCC), ///< ratio of \sigma(\bar\nu CC) / \sigma(\nu CC) (currently does nothing, but should retain for future)
207  //GetGenieKnobSyst(rwgt::fReweightDISNuclMod), ///< DIS nuclear modification (shadowing, anti-shadowing, EMC) (currently does nothing, but should retain for future)
208 
209  // NC: general
210  // NOTE: This knob currently does nothing, so it has been disabled.
211  // If it is fixed in future versions of GENIE we should reconsider.
212  /// NC total normalization (currently does nothing, but should retain for future).
213  /// Use the 3-arg constructor because GENIE currently doesn't provide a name for it
214  // GetGenieKnobSyst(rwgt::fReweightNC, "NCScale", "NC absolute scale"),
215 
216  // Hadronization
217  GetGenieKnobSyst(rwgt::fReweightAGKY_xF1pi), ///< xF distribution for low multiplicity (N + pi) DIS f/s produced by AGKY
218  GetGenieKnobSyst(rwgt::fReweightAGKY_pT1pi), ///< pT distribution for low multiplicity (N + pi) DIS f/s produced by AGKY
219 
220  // Resonance decays
221  GetGenieKnobSyst(rwgt::fReweightBR1gamma), ///< Resonance -> X + gamma branching ratio, eg Delta+(1232) -> p gamma
222  GetGenieKnobSyst(rwgt::fReweightBR1eta), ///< Resonance -> X + eta branching ratio, eg N+(1440) -> p eta
223  GetGenieKnobSyst(rwgt::fReweightTheta_Delta2Npi), ///< distort pi angular distribution in Delta -> N + pi
224 
225  // Alternative approach to CCQE form factors (not MA).
226  GetGenieKnobSyst(rwgt::fReweightZNormCCQE), ///< Z-expansion CCQE normalization (energy independent)
227  // note that the other 4 z-expansion knobs have been replaced by the custom ones further above
228 
229  };
231 
232  return systs;
233  } // getAllXsecNuTruthSysts_2020()
234 
235  std::vector<const ISyst*> getAllXsecSysts_2020()
236  {
238  }
239 
240  // -------------------------------------------------------------------------------
241 
242  // 2018 systematics list (ref needed)
243  // same as 2017 except new MEC and RES RPA systematics
244 
245  std::vector<const ISyst*> getAllXsecNuTruthSysts_2018_base()
246  {
247  // note: we *could* just pull these all out of the corresponding NOvARwgt Tune.
248  // but I felt that it was perhaps more descriptive to leave the names here,
249  // because then if people need to make smaller versions and/or adjustments
250  // to test things there's an obvious template to copy and modify.
251  return std::vector<const ISyst*>
252  {
253  // NOvA "custom" systs first:
254  //
255  // (1) "Reduced" M_A uncertainty (as compared to GENIE M_A knob)
257 
258  // (5) soft DIS n-pion
291 
292  // (6) nue/numu cross section ratio based on T2K's simple model
293  &kRadCorrNue,
296 
297  // now for all the GENIE knobs.
298  // BEWARE: this is NOT a list of ALL
299  // GENIE knobs; some of them are mutually exclusive
300  // (e.g., MA_RES and the combination MARes_Shape, CCRES_Norm),
301  // and some of them are superseded by uncertainties above
302  // (MAQE by kMAQEGenieReducedSyst2017,
303  // the Rv{n,p}CC{1,2}pi by the soft DIS n-pion).
304  // But it is "complete," in the sense that all of the uncertainties
305  // GENIE can treat are represented either here or above.
306  // Adjust with care!
307 
308  // QE
309  GetGenieKnobSyst(rwgt::fReweightMaNCEL), ///< Ma NCEL, affects dsigma(NCEL)/dQ2 both in shape and normalization
310  GetGenieKnobSyst(rwgt::fReweightEtaNCEL), ///< NCEL strange axial form factor eta, affects dsigma(NCEL)/dQ2 both in shape and normalization
311  GetGenieKnobSyst(rwgt::fReweightVecCCQEshape), ///< elastic nucleon form factors (BBA/default -> dipole) - shape only effect of dsigma(CCQE)/dQ2
312 
313  // RES
314  GetGenieKnobSyst(rwgt::fReweightMaCCRES), ///< Ma CCRES, affects d2sigma(CCRES)/dWdQ2 both in shape and normalization
315  GetGenieKnobSyst(rwgt::fReweightMvCCRES), ///< Mv CCRES, affects d2sigma(CCRES)/dWdQ2 both in shape and normalization
316  GetGenieKnobSyst(rwgt::fReweightMaNCRES), ///< Ma NCRES, affects d2sigma(NCRES)/dWdQ2 both in shape and normalization
317  GetGenieKnobSyst(rwgt::fReweightMvNCRES), ///< Mv NCRES, affects d2sigma(NCRES)/dWdQ2 both in shape and normalization
318 
319  // COH
320  //GetGenieKnobSyst(rwgt::fReweightMaCOHpi), ///< Ma for COH pion production
321  //GetGenieKnobSyst(rwgt::fReweightR0COHpi), ///< R0 for COH pion production
322  // 2018 Analysis: The following CC & NC COH scale
323  // systematics replace the GENIE COH M_A & R_0
324  // systematics above which are broken
327 
328  // Non-resonance background tweaking parameters:
329 
330  // DIS: Bodek-Yang
331  GetGenieKnobSyst(rwgt::fReweightAhtBY), ///< Bodek-Yang model parameter A_{ht} - incl. both shape and normalization effect
332  GetGenieKnobSyst(rwgt::fReweightBhtBY), ///< Bodek-Yang model parameter B_{ht} - incl. both shape and normalization effect
333  GetGenieKnobSyst(rwgt::fReweightCV1uBY), ///< Bodek-Yang model parameter CV1u - incl. both shape and normalization effect
334  GetGenieKnobSyst(rwgt::fReweightCV2uBY), ///< Bodek-Yang model parameter CV2u - incl. both shape and normalization effect
335 
336  // DIS: general
337  GetGenieKnobSyst(rwgt::fReweightNormDISCC), ///< inclusive DIS CC normalization (currently does nothing, but should retain for future)
338  GetGenieKnobSyst(rwgt::fReweightRnubarnuCC), ///< ratio of \sigma(\bar\nu CC) / \sigma(\nu CC) (currently does nothing, but should retain for future)
339  GetGenieKnobSyst(rwgt::fReweightDISNuclMod), ///< DIS nuclear modification (shadowing, anti-shadowing, EMC) (currently does nothing, but should retain for future)
340 
341  // NC: general
342  /// NC total normalization (currently does nothing, but should retain for future).
343  /// Use the 3-arg constructor because GENIE currently doesn't provide a name for it
344  GetGenieKnobSyst(rwgt::fReweightNC, "NCScale", "NC absolute scale"),
345 
346 
347  // Hadronization
348  GetGenieKnobSyst(rwgt::fReweightAGKY_xF1pi), ///< xF distribution for low multiplicity (N + pi) DIS f/s produced by AGKY
349  GetGenieKnobSyst(rwgt::fReweightAGKY_pT1pi), ///< pT distribution for low multiplicity (N + pi) DIS f/s produced by AGKY
350  GetGenieKnobSyst(rwgt::fReweightFormZone), ///< formation zone
351 
352 
353  // Intranuclear rescattering
354  GetGenieKnobSyst(rwgt::fReweightMFP_pi), ///< mean free path for pions
355  GetGenieKnobSyst(rwgt::fReweightMFP_N), ///< mean free path for nucleons
356  GetGenieKnobSyst(rwgt::fReweightFrCEx_pi), ///< charge exchange probability for pions, for given total rescattering probability
357  //GetGenieKnobSyst(rwgt::fReweightFrElas_pi), ///< elastic probability for pions, for given total rescattering probability
358  GetGenieKnobSyst(rwgt::fReweightFrInel_pi), ///< inelastic probability for pions, for given total rescattering probability
359  GetGenieKnobSyst(rwgt::fReweightFrAbs_pi), ///< absorption probability for pions, for given total rescattering probability
360  GetGenieKnobSyst(rwgt::fReweightFrPiProd_pi), ///< pion production probability for pions, for given total rescattering probability
361  GetGenieKnobSyst(rwgt::fReweightFrCEx_N), ///< charge exchange probability for nucleons, for given total rescattering probability
362  //GetGenieKnobSyst(rwgt::fReweightFrElas_N), ///< elastic probability for nucleons, for given total rescattering probability
363  GetGenieKnobSyst(rwgt::fReweightFrInel_N), ///< inelastic probability for nucleons, for given total rescattering probability
364  GetGenieKnobSyst(rwgt::fReweightFrAbs_N), ///< absorption probability for nucleons, for given total rescattering probability
365  GetGenieKnobSyst(rwgt::fReweightFrPiProd_N), ///< pion production probability for nucleons, for given total rescattering probability
366 
367  // Nuclear model
368  GetGenieKnobSyst(rwgt::fReweightCCQEPauliSupViaKF), ///< Change Fermi momentum used in Pauli suppression calculation
369  GetGenieKnobSyst(rwgt::fReweightCCQEMomDistroFGtoSF), ///< Use a spectral function instead of relativistic Fermi gas initial nucleon momentum distribution
370 
371  // Resonance decays
372  GetGenieKnobSyst(rwgt::fReweightBR1gamma), ///< Resonance -> X + gamma branching ratio, eg Delta+(1232) -> p gamma
373  GetGenieKnobSyst(rwgt::fReweightBR1eta), ///< Resonance -> X + eta branching ratio, eg N+(1440) -> p eta
374  GetGenieKnobSyst(rwgt::fReweightTheta_Delta2Npi), ///< distort pi angular distribution in Delta -> N + pi
375 
376  // Alternative approach to CCQE form factors.
377  // Mutually exclusive with kMAQAGenieReducedSyst2017 above.
378  // But we should probably switch to these in future anyway
379 // GetGenieKnobSyst(rwgt::fReweightZNormCCQE), ///< Z-expansion CCQE normalization (energy independent)
380 // GetGenieKnobSyst(rwgt::fReweightZExpA1CCQE), ///< Z-expansion coefficient 1, affects dsigma(CCQE)/dQ2 both in shape and normalization
381 // GetGenieKnobSyst(rwgt::fReweightZExpA2CCQE), ///< Z-expansion coefficient 2, affects dsigma(CCQE)/dQ2 both in shape and normalization
382 // GetGenieKnobSyst(rwgt::fReweightZExpA3CCQE), ///< Z-expansion coefficient 3, affects dsigma(CCQE)/dQ2 both in shape and normalization
383 // GetGenieKnobSyst(rwgt::fReweightZExpA4CCQE), ///< Z-expansion coefficient 4, affects dsigma(CCQE)/dQ2 both in shape and normalization
384 // GetGenieKnobSyst(rwgt::fReweightAxFFCCQEshape), ///< axial nucleon form factors (dipole -> z-expansion) - shape only effect of dsigma(CCQE)/dQ2
385 
386  };
387  } // getAllXsecNuTruthSysts_2018_base()
388 
389 
390  // TODO NUTRUTHSYST
391  std::vector<const ISyst*> getAllXsecNuTruthSysts_2018()
392  {
393  std::vector<const ISyst*> systs =
394  {
395  // (2) RPA CCQE (note these MUST be used with the kRPAWeightCCQE2018 central value weight from CAFAnaVars/GenieWeights.h!)
398 
399  // (3) RPA RES
401 
402  // (4) MEC
409  };
410 
411  std::vector<const ISyst*> concat = getAllXsecNuTruthSysts_2018_base();
412  systs.insert(systs.end(), concat.begin(), concat.end());
413 
415  return systs;
416 
417  }
418 
419  std::vector<const ISyst*> getAllXsecNuTruthSysts_2018_RPAFix()
420  {
421  std::vector<const ISyst*> systs =
422  {
423 
424  // (2) RPA CCQE (note these MUST be used with the kRPAWeightCCQE2018 central value weight from CAFAnaVars/GenieWeights.h!)
427 
428  // (3) RPA RES
430 
431  // (4) MEC
438  };
439  std::vector<const ISyst*> concat = getAllXsecNuTruthSysts_2018_base();
440  systs.insert(systs.end(), concat.begin(), concat.end());
441 
443 
444 
445  return systs;
446  }
447 
448 
449  std::vector<const ISyst*> getAllXsecSysts_2018_RPAFix()
450  {
451  auto spillTruthSysts = getAllXsecNuTruthSysts_2018_RPAFix();
452 
453  std::vector<const ISyst*> systs;
454  for (const auto & STsystPtr : spillTruthSysts)
455  systs.emplace_back(STsystPtr);
456 
457  return systs;
458  }
459 
460  std::vector<const ISyst*> getAllXsecSysts_2018()
461  {
463  }
464 
465 // -------------------------------------------------------------------------------
466 
467  // 2017 list
468 
469  std::vector<const ISyst*> getAllXsecNuTruthSysts_2017()
470  {
471  std::vector<const ISyst*> ret
472  {
473  // NOvA "custom" systs first:
474  //
475  // (1) "Reduced" M_A uncertainty (as compared to GENIE M_A knob)
477 
478  // (2) RPA CCQE (note these MUST be used with the kRPAWeightCCQE2017 central value weight from CAFAnaVars/GenieWeights.h!)
481 
482  // (3) RPA RES
484 
485  // (4) MEC
489 
490  // (5) soft DIS n-pion
523 
524  // (6) nue/numu cross section ratio based on T2K's simple model
525  &kRadCorrNue,
528 
529  // now for all the GENIE knobs.
530  // BEWARE: this is NOT a list of ALL
531  // GENIE knobs; some of them are mutually exclusive
532  // (e.g., MA_RES and the combination MARes_Shape, CCRES_Norm),
533  // and some of them are superseded by uncertainties above
534  // (MAQE by kMAQEGenieReducedSyst2017,
535  // the Rv{n,p}CC{1,2}pi by the soft DIS n-pion).
536  // But it is "complete," in the sense that all of the uncertainties
537  // GENIE can treat are represented either here or above.
538  // Adjust with care!
539 
540  // QE
541  GetGenieKnobSyst(rwgt::fReweightMaNCEL), ///< Ma NCEL, affects dsigma(NCEL)/dQ2 both in shape and normalization
542  GetGenieKnobSyst(rwgt::fReweightEtaNCEL), ///< NCEL strange axial form factor eta, affects dsigma(NCEL)/dQ2 both in shape and normalization
543  GetGenieKnobSyst(rwgt::fReweightVecCCQEshape), ///< elastic nucleon form factors (BBA/default -> dipole) - shape only effect of dsigma(CCQE)/dQ2
544 
545  // RES
546  GetGenieKnobSyst(rwgt::fReweightMaCCRES), ///< Ma CCRES, affects d2sigma(CCRES)/dWdQ2 both in shape and normalization
547  GetGenieKnobSyst(rwgt::fReweightMvCCRES), ///< Mv CCRES, affects d2sigma(CCRES)/dWdQ2 both in shape and normalization
548  GetGenieKnobSyst(rwgt::fReweightMaNCRES), ///< Ma NCRES, affects d2sigma(NCRES)/dWdQ2 both in shape and normalization
549  GetGenieKnobSyst(rwgt::fReweightMvNCRES), ///< Mv NCRES, affects d2sigma(NCRES)/dWdQ2 both in shape and normalization
550 
551  // COH
552  GetGenieKnobSyst(rwgt::fReweightMaCOHpi), ///< Ma for COH pion production
553  GetGenieKnobSyst(rwgt::fReweightR0COHpi), ///< R0 for COH pion production
554  // Non-resonance background tweaking parameters:
555 
556  // DIS: Bodek-Yang
557  GetGenieKnobSyst(rwgt::fReweightAhtBY), ///< Bodek-Yang model parameter A_{ht} - incl. both shape and normalization effect
558  GetGenieKnobSyst(rwgt::fReweightBhtBY), ///< Bodek-Yang model parameter B_{ht} - incl. both shape and normalization effect
559  GetGenieKnobSyst(rwgt::fReweightCV1uBY), ///< Bodek-Yang model parameter CV1u - incl. both shape and normalization effect
560  GetGenieKnobSyst(rwgt::fReweightCV2uBY), ///< Bodek-Yang model parameter CV2u - incl. both shape and normalization effect
561 
562  // DIS: general
563  GetGenieKnobSyst(rwgt::fReweightNormDISCC), ///< inclusive DIS CC normalization (currently does nothing, but should retain for future)
564  GetGenieKnobSyst(rwgt::fReweightRnubarnuCC), ///< ratio of \sigma(\bar\nu CC) / \sigma(\nu CC) (currently does nothing, but should retain for future)
565  GetGenieKnobSyst(rwgt::fReweightDISNuclMod), ///< DIS nuclear modification (shadowing, anti-shadowing, EMC) (currently does nothing, but should retain for future)
566 
567  // NC: general
568  GetGenieKnobSyst(rwgt::fReweightNC), ///< NC total normalization (currently does nothing, but should retain for future)
569 
570 
571  // Hadronization
572  GetGenieKnobSyst(rwgt::fReweightAGKY_xF1pi), ///< xF distribution for low multiplicity (N + pi) DIS f/s produced by AGKY
573  GetGenieKnobSyst(rwgt::fReweightAGKY_pT1pi), ///< pT distribution for low multiplicity (N + pi) DIS f/s produced by AGKY
574  GetGenieKnobSyst(rwgt::fReweightFormZone), ///< formation zone
575 
576 
577  // Intranuclear rescattering
578  GetGenieKnobSyst(rwgt::fReweightMFP_pi), ///< mean free path for pions
579  GetGenieKnobSyst(rwgt::fReweightMFP_N), ///< mean free path for nucleons
580  GetGenieKnobSyst(rwgt::fReweightFrCEx_pi), ///< charge exchange probability for pions, for given total rescattering probability
581  //GetGenieKnobSyst(rwgt::fReweightFrElas_pi), ///< elastic probability for pions, for given total rescattering probability
582  GetGenieKnobSyst(rwgt::fReweightFrInel_pi), ///< inelastic probability for pions, for given total rescattering probability
583  GetGenieKnobSyst(rwgt::fReweightFrAbs_pi), ///< absorption probability for pions, for given total rescattering probability
584  GetGenieKnobSyst(rwgt::fReweightFrPiProd_pi), ///< pion production probability for pions, for given total rescattering probability
585  GetGenieKnobSyst(rwgt::fReweightFrCEx_N), ///< charge exchange probability for nucleons, for given total rescattering probability
586  //GetGenieKnobSyst(rwgt::fReweightFrElas_N), ///< elastic probability for nucleons, for given total rescattering probability
587  GetGenieKnobSyst(rwgt::fReweightFrInel_N), ///< inelastic probability for nucleons, for given total rescattering probability
588  GetGenieKnobSyst(rwgt::fReweightFrAbs_N), ///< absorption probability for nucleons, for given total rescattering probability
589  GetGenieKnobSyst(rwgt::fReweightFrPiProd_N), ///< pion production probability for nucleons, for given total rescattering probability
590 
591  // Nuclear model
592  GetGenieKnobSyst(rwgt::fReweightCCQEPauliSupViaKF), ///< Change Fermi momentum used in Pauli suppression calculation
593  GetGenieKnobSyst(rwgt::fReweightCCQEMomDistroFGtoSF), ///< Use a spectral function instead of relativistic Fermi gas initial nucleon momentum distribution
594 
595  // Resonance decays
596  GetGenieKnobSyst(rwgt::fReweightBR1gamma), ///< Resonance -> X + gamma branching ratio, eg Delta+(1232) -> p gamma
597  GetGenieKnobSyst(rwgt::fReweightBR1eta), ///< Resonance -> X + eta branching ratio, eg N+(1440) -> p eta
598  GetGenieKnobSyst(rwgt::fReweightTheta_Delta2Npi), ///< distort pi angular distribution in Delta -> N + pi
599 
600  // Alternative approach to CCQE form factors.
601  // Mutually exclusive with kMAQAGenieReducedSyst2017 above.
602  // But we should probably switch to these in future anyway
603 // GetGenieKnobSyst(rwgt::fReweightZNormCCQE), ///< Z-expansion CCQE normalization (energy independent)
604 // GetGenieKnobSyst(rwgt::fReweightZExpA1CCQE), ///< Z-expansion coefficient 1, affects dsigma(CCQE)/dQ2 both in shape and normalization
605 // GetGenieKnobSyst(rwgt::fReweightZExpA2CCQE), ///< Z-expansion coefficient 2, affects dsigma(CCQE)/dQ2 both in shape and normalization
606 // GetGenieKnobSyst(rwgt::fReweightZExpA3CCQE), ///< Z-expansion coefficient 3, affects dsigma(CCQE)/dQ2 both in shape and normalization
607 // GetGenieKnobSyst(rwgt::fReweightZExpA4CCQE), ///< Z-expansion coefficient 4, affects dsigma(CCQE)/dQ2 both in shape and normalization
608 // GetGenieKnobSyst(rwgt::fReweightAxFFCCQEshape), ///< axial nucleon form factors (dipole -> z-expansion) - shape only effect of dsigma(CCQE)/dQ2
609 
610  };
611 
613 
614  return ret;
615  } // getAllXsecNuTruthSysts_2017()
616 
617  std::vector<const ISyst*> getAllXsecSysts_2017()
618  {
620  }
621 
622 
623 
624 
625 
626 } // namespace ana
const NOvARwgtSyst kMECShapeSyst2018AntiNu("MECShape2018AntiNu","MEC 2018 (q_{0}, |#vec{q}|) response, antineutrinos", novarwgt::kMECQ0Q3RespSystNubar2018)
Definition: MECSysts.h:26
const NOvARwgtSyst kZExpEV2Syst2020("ZExpAxialFFSyst2020_EV2","CCQE z-exp EV shift #2", novarwgt::kZExpEV2Syst2020)
Definition: XSecSysts.h:57
const NOvARwgtSyst kDISvpNC2pi_2020("DISvpNC2pi_2020","DIS vpNC2pi", novarwgt::kDIS_NC_2pi_nu_p_SystKnob_2020)
Definition: DISSysts.h:21
std::vector< const ISyst * > getAllXsecNuTruthSysts_2018()
const NOvARwgtSyst kDISvbarnCC2pi_2017("DISvbarnCC2pi_2017","DIS vbarnCC2pi", novarwgt::kDIS_CC_2pi_nubar_n_SystKnob_2017)
Definition: DISSysts.h:76
const NOvARwgtSyst kMECShapeSyst2018RPAFixAntiNu("MECShape2018NuRPAfixAntiNu","MEC 2018 shape (RPA fix), antineutrinos", novarwgt::kMECQ0Q3RespSystNubar2018_RPAfix)
Definition: MECSysts.h:29
const NOvARwgtSyst k2ndClassCurrs("2ndclasscurr","Second class currents", novarwgt::kSimpleSecondClassCurrentsSystKnob)
Second-class current syst. See documentation in NOvARwgt.
Definition: XSecSysts.h:71
Cuts and Vars for the 2020 FD DiF Study.
Definition: vars.h:6
const NOvARwgtSyst kDISvbarnNC1pi_2017("DISvbarnNC1pi_2017","DIS vbarnNC1pi", novarwgt::kDIS_NC_1pi_nubar_n_SystKnob_2017)
Definition: DISSysts.h:79
const NOvARwgtSyst khNFSISyst2020_MFP("hNFSI_MFP_2020","hN FSI mean free path", novarwgt::khNFSISyst2020_MFP)
Definition: FSISysts.h:13
std::vector< const ISyst * > getAllXsecSysts_2018()
Get master XSec syst list for 2018 analyses.
std::vector< SystGroupDef > systs
Definition: syst_header.h:385
const NOvARwgtSyst kDISvnNC3pi_2020("DISvnNC3pi_2020","DIS vnNC3pi", novarwgt::kDIS_NC_3pluspi_nu_n_SystKnob_2020)
Definition: DISSysts.h:30
const NOvARwgtSyst kRPACCQEEnhSyst2018("RPAShapeenh2018","RPA shape: higher-Q^{2} enhancement (2018)", novarwgt::kRPACCQEEnhSyst2018)
Definition: RPASysts.h:13
const NOvARwgtSyst kDISvbarpCC2pi_2020("DISvbarpCC2pi_2020","DIS vbarpCC2pi", novarwgt::kDIS_CC_2pi_nubar_p_SystKnob_2020)
Definition: DISSysts.h:33
const NOvARwgtSyst kDISvbarpNC3pi_2020("DISvbarpNC3pi_2020","DIS vbarpNC3pi", novarwgt::kDIS_NC_3pluspi_nubar_p_SystKnob_2020)
Definition: DISSysts.h:38
const NOvARwgtSyst kDISvbarnNC3pi_2020("DISvbarnNC3pi_2020","DIS vbarnNC3pi", novarwgt::kDIS_NC_3pluspi_nubar_n_SystKnob_2020)
Definition: DISSysts.h:46
const NOvARwgtSyst kDISvbarpCC0pi_2020("DISvbarpCC0pi_2020","DIS vbarpCC0pi", novarwgt::kDIS_CC_0pi_nubar_p_SystKnob_2020)
Definition: DISSysts.h:31
const NOvARwgtSyst kDISvnCC0pi_2017("DISvnCC0pi_2017","DIS vnCC0pi", novarwgt::kDIS_CC_0pi_nu_n_SystKnob_2017)
Definition: DISSysts.h:58
const NOvARwgtSyst kDISvbarnCC2pi_2020("DISvbarnCC2pi_2020","DIS vbarnCC2pi", novarwgt::kDIS_CC_2pi_nubar_n_SystKnob_2020)
Definition: DISSysts.h:41
const NOvARwgtSyst kDISvpNC2pi_2017("DISvpNC2pi_2017","DIS vpNC2pi", novarwgt::kDIS_NC_2pi_nu_p_SystKnob_2017)
Definition: DISSysts.h:56
const NOvARwgtSyst kDISvnNC2pi_2020("DISvnNC2pi_2020","DIS vnNC2pi", novarwgt::kDIS_NC_2pi_nu_n_SystKnob_2020)
Definition: DISSysts.h:29
const NOvARwgtSyst kRPARESSyst2018Test("RPAShapeRES2018Test","RPA shape: resonance events (2018)", novarwgt::kRPARESSyst2018_ExtrapKludge)
same as the regular 2018 version but with a nudge above sigma = 1 to help the extrapolation ...
Definition: RPASysts.h:23
const NOvARwgtSyst kDISvnNC2pi_2017("DISvnNC2pi_2017","DIS vnNC2pi", novarwgt::kDIS_NC_2pi_nu_n_SystKnob_2017)
Definition: DISSysts.h:64
const NOvARwgtSyst kMECShapeSyst2020Nu("MECShape2020Nu","MEC 2020 (q_{0}, |#vec{q}|) response, neutrinos", novarwgt::kMECQ0Q3RespSyst2020_NuOnly)
Definition: MECSysts.h:11
const NOvARwgtSyst kDISvbarnCC0pi_2017("DISvbarnCC0pi_2017","DIS vbarnCC0pi", novarwgt::kDIS_CC_0pi_nubar_n_SystKnob_2017)
Definition: DISSysts.h:74
const NOvARwgtSyst kDISvnCC1pi_2020("DISvnCC1pi_2020","DIS vnCC1pi", novarwgt::kDIS_CC_1pi_nu_n_SystKnob_2020)
Definition: DISSysts.h:24
const NOvARwgtSyst kDISvpCC0pi_2020("DISvpCC0pi_2020","DIS vpCC0pi", novarwgt::kDIS_CC_0pi_nu_p_SystKnob_2020)
Definition: DISSysts.h:15
const NOvARwgtSyst kDISvnNC3pi_2017("DISvnNC3pi_2017","DIS vnNC3pi", novarwgt::kDIS_NC_3pluspi_nu_n_SystKnob_2017)
Definition: DISSysts.h:65
const NOvARwgtSyst kRPACCQESuppSyst2019("RPAShapesupp2019","RPA shape: low-Q^{2} suppression (2019)", novarwgt::kRPACCQESuppSyst2019)
Definition: RPASysts.h:16
const NOvARwgtSyst kMAQEGenieReducedSyst2018(genie::rew::GSyst::AsString(genie::rew::EGSyst(rwgt::fReweightMaCCQE))++"_reduced_2018", genie::rew::GSyst::AsString(genie::rew::EGSyst(rwgt::fReweightMaCCQE))++"_reduced_2018", novarwgt::kMAQEGenieReducedSyst2018)
2018 &#39;reduced&#39; M_A^QE shift. See documentation in NOvARwgt
Definition: XSecSysts.h:51
const NOvARwgtSyst kDISvbarnNC2pi_2020("DISvbarnNC2pi_2020","DIS vbarnNC2pi", novarwgt::kDIS_NC_2pi_nubar_n_SystKnob_2020)
Definition: DISSysts.h:45
const NOvARwgtSyst kDISvpCC2pi_2020("DISvpCC2pi_2020","DIS vpCC2pi", novarwgt::kDIS_CC_2pi_nu_p_SystKnob_2020)
Definition: DISSysts.h:17
const NOvARwgtSyst kDISvpCC2pi_2017("DISvpCC2pi_2017","DIS vpCC2pi", novarwgt::kDIS_CC_2pi_nu_p_SystKnob_2017)
Definition: DISSysts.h:52
const NOvARwgtSyst kDISvpCC3pi_2020("DISvpCC3pi_2020","DIS vpCC3pi", novarwgt::kDIS_CC_3pluspi_nu_p_SystKnob_2020)
Definition: DISSysts.h:18
const NOvARwgtSyst kDISvbarpNC1pi_2020("DISvbarpNC1pi_2020","DIS vbarpNC1pi", novarwgt::kDIS_NC_1pi_nubar_p_SystKnob_2020)
Definition: DISSysts.h:36
const NOvARwgtSyst kDISvbarpNC2pi_2017("DISvbarpNC2pi_2017","DIS vbarpNC2pi", novarwgt::kDIS_NC_2pi_nubar_p_SystKnob_2017)
Definition: DISSysts.h:72
std::vector< const ISyst * > getAllXsecNuTruthSysts_2020()
Get master XSec syst list for 2020 analyses.
const NOvARwgtSyst kMECEnuShapeSyst2018AntiNu("MECEnuShapeAntiNu","MEC E_{#nu} shape, antineutrinos", novarwgt::kMECEnuShapeSyst2017_NubarOnly)
Definition: MECSysts.h:32
const NOvARwgtSyst kMAQEGenieReducedSyst2017(genie::rew::GSyst::AsString(genie::rew::EGSyst(rwgt::fReweightMaCCQE))++"_reduced", genie::rew::GSyst::AsString(genie::rew::EGSyst(rwgt::fReweightMaCCQE))++"_reduced", novarwgt::kMAQEGenieReducedSyst2017)
2017 &#39;reduced&#39; M_A^QE shift. See documentation in NOvARwgt.
Definition: XSecSysts.h:47
const NOvARwgtSyst kMECShapeSyst2018Nu("MECShape2018Nu","MEC 2018 (q_{0}, |#vec{q}|) response, neutrinos", novarwgt::kMECQ0Q3RespSystNu2018)
Definition: MECSysts.h:25
const NOvARwgtSyst kDISvpCC1pi_2017("DISvpCC1pi_2017","DIS vpCC1pi", novarwgt::kDIS_CC_1pi_nu_p_SystKnob_2017)
Definition: DISSysts.h:51
OStream cerr
Definition: OStream.cxx:7
const NOvARwgtSyst kDISvbarnCC1pi_2017("DISvbarnCC1pi_2017","DIS vbarnCC1pi", novarwgt::kDIS_CC_1pi_nubar_n_SystKnob_2017)
Definition: DISSysts.h:75
const NOvARwgtSyst kMECInitStateNPFracSyst2018AntiNu("MECInitStateNPFracAntiNu","MEC initial state np fraction, antineutrinos", novarwgt::kMECInitStateNPFracSyst2017_NubarOnly)
Definition: MECSysts.h:35
const NOvARwgtSyst kDISvbarnCC0pi_2020("DISvbarnCC0pi_2020","DIS vbarnCC0pi", novarwgt::kDIS_CC_0pi_nubar_n_SystKnob_2020)
Definition: DISSysts.h:39
std::vector< const ISyst * > getAllXsecNuTruthSysts_2018_base()
Get master XSec syst list for 2018 analyses.
const NOvARwgtSyst kRPACCQEEnhSyst2019("RPAShapeenh2019","RPA shape: higher-Q^{2} enhancement (2019)", novarwgt::kRPACCQEEnhSyst2019)
Definition: RPASysts.h:15
const NOvARwgtSyst khNFSISyst2020_EV3("hNFSI_FateFracEV3_2020","hN FSI fate fraction eigenvector #3", novarwgt::khNFSISyst2020_EV3)
Definition: FSISysts.h:12
const NOvARwgtSyst kMECEnuShapeSyst2018Nu("MECEnuShapeNu","MEC E_{#nu} shape, neutrinos", novarwgt::kMECEnuShapeSyst2017_NuOnly)
Definition: MECSysts.h:31
Encapsulate code to systematically shift a caf::SRProxy.
Definition: ISyst.h:14
const NOvARwgtSyst kDISvbarpNC2pi_2020("DISvbarpNC2pi_2020","DIS vbarpNC2pi", novarwgt::kDIS_NC_2pi_nubar_p_SystKnob_2020)
Definition: DISSysts.h:37
const NOvARwgtSyst kDISvbarpNC0pi_2020("DISvbarpNC0pi_2020","DIS vbarpNC0pi", novarwgt::kDIS_NC_0pi_nubar_p_SystKnob_2020)
Definition: DISSysts.h:35
const NOvARwgtSyst kDISvbarnNC0pi_2020("DISvbarnNC0pi_2020","DIS vbarnNC0pi", novarwgt::kDIS_NC_0pi_nubar_n_SystKnob_2020)
Definition: DISSysts.h:43
const NOvARwgtSyst kMECEnuShapeSyst2017("MECEnuShape","MEC E_{#nu} shape", novarwgt::kMECEnuShapeSyst2017)
Definition: MECSysts.h:43
const NOvARwgtSyst kDISvnCC1pi_2017("DISvnCC1pi_2017","DIS vnCC1pi", novarwgt::kDIS_CC_1pi_nu_n_SystKnob_2017)
Definition: DISSysts.h:59
const NOvARwgtSyst kRadCorrNuebar("radcorrnuebar","Radiative corrections for #bar{#nu}_{e}", novarwgt::kSimpleRadiativeCorrNuebarXsecSystKnob)
Radiative corrections syst (nuebars). See documentation in NOvARwgt.
Definition: XSecSysts.h:67
const NOvARwgtSyst kDISvnCC2pi_2020("DISvnCC2pi_2020","DIS vnCC2pi", novarwgt::kDIS_CC_2pi_nu_n_SystKnob_2020)
Definition: DISSysts.h:25
std::vector< const ISyst * > getAllXsecNuTruthSysts_2018_RPAFix()
const NOvARwgtSyst kFormZone_2020("FormZone2020","DIS Formation Zone", novarwgt::kFormZoneSyst2020)
Definition: DISSysts.h:7
const NOvARwgtSyst kDISvbarpCC2pi_2017("DISvbarpCC2pi_2017","DIS vbarpCC2pi", novarwgt::kDIS_CC_2pi_nubar_p_SystKnob_2017)
Definition: DISSysts.h:68
const NOvARwgtSyst kRPACCQEEnhSyst2017("RPAShapeenh2017","RPA shape: higher-Q^{2} enhancement (2017)", novarwgt::kRPACCQEEnhSyst2017)
Definition: RPASysts.h:11
const XML_Char * s
Definition: expat.h:262
std::vector< const ISyst * > getAllXsecSysts_2020()
const NOvARwgtSyst kDISvnNC1pi_2017("DISvnNC1pi_2017","DIS vnNC1pi", novarwgt::kDIS_NC_1pi_nu_n_SystKnob_2017)
Definition: DISSysts.h:63
const NOvARwgtSyst kDISvbarnNC3pi_2017("DISvbarnNC3pi_2017","DIS vbarnNC3pi", novarwgt::kDIS_NC_3pluspi_nubar_n_SystKnob_2017)
Definition: DISSysts.h:81
const NOvARwgtSyst kDISvbarpCC3pi_2020("DISvbarpCC3pi_2020","DIS vbarpCC3pi", novarwgt::kDIS_CC_3pluspi_nubar_p_SystKnob_2020)
Definition: DISSysts.h:34
const NOvARwgtSyst kDISvpCC3pi_2017("DISvpCC3pi_2017","DIS vpCC3pi", novarwgt::kDIS_CC_3pluspi_nu_p_SystKnob_2017)
Definition: DISSysts.h:53
const NOvARwgtSyst kZExpEV1Syst2020("ZExpAxialFFSyst2020_EV1","CCQE z-exp EV shift #1", novarwgt::kZExpEV1Syst2020)
Definition: XSecSysts.h:56
const NOvARwgtSyst khNFSISyst2020_EV1("hNFSI_FateFracEV1_2020","hN FSI fate fraction eigenvector #1", novarwgt::khNFSISyst2020_EV1)
Definition: FSISysts.h:10
const NOvARwgtSyst kDISvpCC0pi_2017("DISvpCC0pi_2017","DIS vpCC0pi", novarwgt::kDIS_CC_0pi_nu_p_SystKnob_2017)
Definition: DISSysts.h:50
const NOvARwgtSyst kMECInitStateNPFracSyst2020AntiNu("MECInitStateNPFrac2020AntiNu","MEC initial state np fraction, antineutrinos", novarwgt::kMECInitStateNPFracSyst2020_NubarOnly)
Definition: MECSysts.h:18
const NOvARwgtSyst kDISvbarpNC1pi_2017("DISvbarpNC1pi_2017","DIS vbarpNC1pi", novarwgt::kDIS_NC_1pi_nubar_p_SystKnob_2017)
Definition: DISSysts.h:71
const NOvARwgtSyst kMECInitStateNPFracSyst2018Nu("MECInitStateNPFracNu","MEC initial state np fraction, neutrinos", novarwgt::kMECInitStateNPFracSyst2017_NuOnly)
Definition: MECSysts.h:34
const NOvARwgtSyst kDISvbarpCC1pi_2020("DISvbarpCC1pi_2020","DIS vbarpCC1pi", novarwgt::kDIS_CC_1pi_nubar_p_SystKnob_2020)
Definition: DISSysts.h:32
const NOvARwgtSyst kDISvbarpNC0pi_2017("DISvbarpNC0pi_2017","DIS vbarpNC0pi", novarwgt::kDIS_NC_0pi_nubar_p_SystKnob_2017)
Definition: DISSysts.h:70
const NOvARwgtSyst kRPACCQESuppSyst2017("RPAShapesupp2017","RPA shape: low-Q^{2} suppression (2017)", novarwgt::kRPACCQESuppSyst2017)
Definition: RPASysts.h:12
const NOvARwgtSyst kDISvnCC0pi_2020("DISvnCC0pi_2020","DIS vnCC0pi", novarwgt::kDIS_CC_0pi_nu_n_SystKnob_2020)
Definition: DISSysts.h:23
const novarwgt::Tune kCVTune2018({{"MA_QE", novarwgt::GetWeighter< MAQEWeight_2018 >()}, {"RPA_QE", novarwgt::GetWeighter< RPAWeightCCQE_2017 >("CV", novarwgt::kScQuasiElastic, true, false, true)},{"RPA_RES", novarwgt::GetWeighter< RPAWeightQ2_2017 >(novarwgt::kRxnCC, novarwgt::kScResonant, true)},{"Nonres1pi", novarwgt::GetWeighter< Nonres1PiWgt >(false, true)},{"HighW", novarwgt::GetWeighter< HighWDISWgt_2018 >()},{"MEC", novarwgt::GetWeighter< EmpiricalMECWgt2018 >()},}, k2018GENIEKnobs|k2018MECKnobs|k2018OtherCustomKnobs)
CV tune used for 2018 analysis.
const NOvARwgtSyst kDISvbarnNC1pi_2020("DISvbarnNC1pi_2020","DIS vbarnNC1pi", novarwgt::kDIS_NC_1pi_nubar_n_SystKnob_2020)
Definition: DISSysts.h:44
const NOvARwgtSyst kDISvpNC1pi_2017("DISvpNC1pi_2017","DIS vpNC1pi", novarwgt::kDIS_NC_1pi_nu_p_SystKnob_2017)
Definition: DISSysts.h:55
const NOvARwgtSyst kDISvnCC2pi_2017("DISvnCC2pi_2017","DIS vnCC2pi", novarwgt::kDIS_CC_2pi_nu_n_SystKnob_2017)
Definition: DISSysts.h:60
const NOvARwgtSyst kZExpEV4Syst2020("ZExpAxialFFSyst2020_EV4","CCQE z-exp EV shift #4", novarwgt::kZExpEV4Syst2020)
Definition: XSecSysts.h:59
const NOvARwgtSyst kRPACCQEEnhSyst2020("RPAShapeenh2020","RPA shape: higher-Q^{2} enhancement (2020)", novarwgt::kRPACCQEEnhSyst2020)
Definition: RPASysts.h:17
const NOvARwgtSyst kRPARESSyst2019("RPAShapeRES2019","RPA shape: resonance events", novarwgt::kRPARESSyst2019)
Definition: RPASysts.h:24
const NOvARwgtSyst kCOHCCScaleSyst2018("COHCCScale2018","Coherent CC Scale", novarwgt::kCOHNormCCSystKnob)
20% uncertainty scale on coherent CC events. See documentation in NOvARwgt
Definition: XSecSysts.h:40
const NOvARwgtSyst kDISvbarnCC3pi_2020("DISvbarnCC3pi_2020","DIS vbarnCC3pi", novarwgt::kDIS_CC_3pluspi_nubar_n_SystKnob_2020)
Definition: DISSysts.h:42
const novarwgt::Tune kCVTune2018_RPAfix({{"MA_QE", novarwgt::GetWeighter< MAQEWeight_2018 >()},{"RPA_QE", novarwgt::GetWeighter< RPAWeightCCQE_2017 >("CV", novarwgt::kScQuasiElastic, false, false, true)},{"RPA_RES", novarwgt::GetWeighter< RPAWeightQ2_2017 >(novarwgt::kRxnCC, novarwgt::kScResonant)},{"Nonres1pi", novarwgt::GetWeighter< Nonres1PiWgt >(false, true)},{"HighW", novarwgt::GetWeighter< HighWDISWgt_2018 >()},{"MEC", novarwgt::GetWeighter< EmpiricalMECWgt2018RPAFix >()},}, k2018GENIEKnobs|k2018MECKnobs_RPAFix|k2018OtherCustomKnobs)
const NOvARwgtSyst kRESLowQ2SuppressionSyst2020("LowQ2RESSupp2020","RES low-Q^2 suppression", novarwgt::kRESLowQ2SuppressionSyst2020)
Definition: RESSysts.h:10
const NOvARwgtSyst kZExpEV3Syst2020("ZExpAxialFFSyst2020_EV3","CCQE z-exp EV shift #3", novarwgt::kZExpEV3Syst2020)
Definition: XSecSysts.h:58
const NOvARwgtSyst khNFSISyst2020_EV2("hNFSI_FateFracEV2_2020","hN FSI fate fraction eigenvector #2", novarwgt::khNFSISyst2020_EV2)
Definition: FSISysts.h:11
void CheckSystsMatchWithNOvARwgt(const std::vector< const ISyst * > &systsHere, const novarwgt::Tune &novaRwgtTune)
Compare the list of systs made here to what is expected for a given NOvARwgt tune.
const NOvARwgtSyst kDISvbarnNC0pi_2017("DISvbarnNC0pi_2017","DIS vbarnNC0pi", novarwgt::kDIS_NC_0pi_nubar_n_SystKnob_2017)
Definition: DISSysts.h:78
const novarwgt::Tune kCVTune2017({{"RPA_QE", novarwgt::GetWeighter< RPAWeightCCQE_2017 >("CV", novarwgt::kScNull, true, true, false)},{"Nonres1pi", novarwgt::GetWeighter< Nonres1PiWgt >(true, false)},{"MEC", novarwgt::GetWeighter< EmpiricalMECWgt2017 >()},}, k2017GENIEKnobs|k2017CustomKnobs)
CV MC tune used in 2017 analyses.
const NOvARwgtSyst kDISvbarpCC1pi_2017("DISvbarpCC1pi_2017","DIS vbarpCC1pi", novarwgt::kDIS_CC_1pi_nubar_p_SystKnob_2017)
Definition: DISSysts.h:67
std::vector< const ISyst * > getAllXsecSysts_2018_RPAFix()
const NOvARwgtSyst kCOHNCScaleSyst2018("COHNCScale2018","Coherent NC Scale", novarwgt::kCOHNormNCSystKnob)
20% uncertainty scale on coherent NC events. See documentation in NOvARwgt
Definition: XSecSysts.h:43
const NOvARwgtSyst kMECInitStateNPFracSyst2020Nu("MECInitStateNPFrac2020Nu","MEC initial state np fraction, neutrinos", novarwgt::kMECInitStateNPFracSyst2020_NuOnly)
Definition: MECSysts.h:17
const NOvARwgtSyst kMECShapeSyst2020AntiNu("MECShape2020AntiNu","MEC 2020 (q_{0}, |#vec{q}|) response, antineutrinos", novarwgt::kMECQ0Q3RespSyst2020_NubarOnly)
Definition: MECSysts.h:12
const NOvARwgtSyst kDISvbarpCC0pi_2017("DISvbarpCC0pi_2017","DIS vbarpCC0pi", novarwgt::kDIS_CC_0pi_nubar_p_SystKnob_2017)
Definition: DISSysts.h:66
const NOvARwgtSyst kRPACCQESuppSyst2020("RPAShapesupp2020","RPA shape: low-Q^{2} suppression (2020)", novarwgt::kRPACCQESuppSyst2020)
Definition: RPASysts.h:18
const NOvARwgtSyst kMECEnuShapeSyst2020AntiNu("MECEnuShape2020AntiNu","MEC E_{#nu} shape, antineutrinos", novarwgt::kMECEnuShapeSyst2020_NubarOnly)
Definition: MECSysts.h:15
const NOvARwgtSyst kMECq0ShapeSyst2017("MECq0Shape","MEC q_{0} shape", novarwgt::kMECq0ShapeSyst2017)
Definition: MECSysts.h:41
const NOvARwgtSyst kDISvnCC3pi_2017("DISvnCC3pi_2017","DIS vnCC3pi", novarwgt::kDIS_CC_3pluspi_nu_n_SystKnob_2017)
Definition: DISSysts.h:61
const NOvARwgtSyst kDISvpCC1pi_2020("DISvpCC1pi_2020","DIS vpCC1pi", novarwgt::kDIS_CC_1pi_nu_p_SystKnob_2020)
Definition: DISSysts.h:16
exit(0)
const NOvARwgtSyst kDISvbarnCC3pi_2017("DISvbarnCC3pi_2017","DIS vbarnCC3pi", novarwgt::kDIS_CC_3pluspi_nubar_n_SystKnob_2017)
Definition: DISSysts.h:77
const NOvARwgtSyst kDISvbarpNC3pi_2017("DISvbarpNC3pi_2017","DIS vbarpNC3pi", novarwgt::kDIS_NC_3pluspi_nubar_p_SystKnob_2017)
Definition: DISSysts.h:73
const NOvARwgtSyst kRPARESSyst2017("RPAShapeRES2017","RPA shape: resonance events", novarwgt::kRPARESSyst2017)
Definition: RPASysts.h:20
const NOvARwgtSyst kDISvnCC3pi_2020("DISvnCC3pi_2020","DIS vnCC3pi", novarwgt::kDIS_CC_3pluspi_nu_n_SystKnob_2020)
Definition: DISSysts.h:26
const NOvARwgtSyst kRPACCQESuppSyst2018("RPAShapesupp2018","RPA shape: low-Q^{2} suppression (2018)", novarwgt::kRPACCQESuppSyst2018)
Definition: RPASysts.h:14
std::vector< const ISyst * > getAllXsecNuTruthSysts_2017()
Get master XSec syst list for 2017 analyses (NuTruthSyst variant)
const NOvARwgtSyst kMECShapeSyst2018RPAFixNu("MECShape2018NuRPAfixNu","MEC 2018 shape (RPA fix), neutrinos", novarwgt::kMECQ0Q3RespSystNu2018_RPAfix)
Definition: MECSysts.h:28
const NOvARwgtSyst kDISvnNC0pi_2020("DISvnNC0pi_2020","DIS vnNC0pi", novarwgt::kDIS_NC_0pi_nu_n_SystKnob_2020)
Definition: DISSysts.h:27
const NOvARwgtSyst kDISvnNC1pi_2020("DISvnNC1pi_2020","DIS vnNC1pi", novarwgt::kDIS_NC_1pi_nu_n_SystKnob_2020)
Definition: DISSysts.h:28
const NOvARwgtSyst kDISvpNC3pi_2017("DISvpNC3pi_2017","DIS vpNC3pi", novarwgt::kDIS_NC_3pluspi_nu_p_SystKnob_2017)
Definition: DISSysts.h:57
const NOvARwgtSyst * GetGenieKnobSyst(rwgt::ReweightLabel_t knobIdx, std::string altName, std::string altLabel)
Convenience function to get a GENIE knob syst. (Allows using the GENIE knob name & description as the...
Definition: XSecSysts.cxx:119
const novarwgt::Tune kCVTune2020({{"MEC", novarwgt::GetWeighter< novarwgt::ValenciaMECWgt2020 >()},{"hN-FSI", novarwgt::GetWeighter< novarwgt::hNCVWgt2020 >()},}, k2020GENIEKnobs|k2020OtherCustomKnobs|k2020MECKnobs)
const NOvARwgtSyst kDISvpNC3pi_2020("DISvpNC3pi_2020","DIS vpNC3pi", novarwgt::kDIS_NC_3pluspi_nu_p_SystKnob_2020)
Definition: DISSysts.h:22
const NOvARwgtSyst kDISvpNC0pi_2020("DISvpNC0pi_2020","DIS vpNC0pi", novarwgt::kDIS_NC_0pi_nu_p_SystKnob_2020)
Definition: DISSysts.h:19
const NOvARwgtSyst kDISvpNC0pi_2017("DISvpNC0pi_2017","DIS vpNC0pi", novarwgt::kDIS_NC_0pi_nu_p_SystKnob_2017)
Definition: DISSysts.h:54
const NOvARwgtSyst kRadCorrNue("radcorrnue","Radiative corrections for #nu_{e}", novarwgt::kSimpleRadiativeCorrNueXsecSystKnob)
Radiative corrections syst (nues). See documentation in NOvARwgt.
Definition: XSecSysts.h:64
const NOvARwgtSyst kDISvbarpCC3pi_2017("DISvbarpCC3pi_2017","DIS vbarpCC3pi", novarwgt::kDIS_CC_3pluspi_nubar_p_SystKnob_2017)
Definition: DISSysts.h:69
const NOvARwgtSyst kDISvpNC1pi_2020("DISvpNC1pi_2020","DIS vpNC1pi", novarwgt::kDIS_NC_1pi_nu_p_SystKnob_2020)
Definition: DISSysts.h:20
std::vector< const ISyst * > getAllXsecSysts_2017()
Get master XSec syst list for 2017 analyses.
const NOvARwgtSyst kDISvbarnCC1pi_2020("DISvbarnCC1pi_2020","DIS vbarnCC1pi", novarwgt::kDIS_CC_1pi_nubar_n_SystKnob_2020)
Definition: DISSysts.h:40
const NOvARwgtSyst kMECInitStateNPFracSyst2017("MECInitStateNPFrac","MEC initial state np fraction", novarwgt::kMECInitStateNPFracSyst2017)
Definition: MECSysts.h:42
const NOvARwgtSyst kDISvbarnNC2pi_2017("DISvbarnNC2pi_2017","DIS vbarnNC2pi", novarwgt::kDIS_NC_2pi_nubar_n_SystKnob_2017)
Definition: DISSysts.h:80
const NOvARwgtSyst kMECEnuShapeSyst2020Nu("MECEnuShape2020Nu","MEC E_{#nu} shape, neutrinos", novarwgt::kMECEnuShapeSyst2020_NuOnly)
Definition: MECSysts.h:14
const NOvARwgtSyst kDISvnNC0pi_2017("DISvnNC0pi_2017","DIS vnNC0pi", novarwgt::kDIS_NC_0pi_nu_n_SystKnob_2017)
Definition: DISSysts.h:62