XSecSysts.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "CAFAna/Core/ISyst.h"
4 
6 
7 // Names for the GENIE systs
8 #include "nugen/NuReweight/ReweightLabels.h"
9 
10 #include "NOvARwgt/rwgt/ISystKnob.h"
11 
12 namespace ana
13 {
14  //----------------------------------------------------------------------------------
15 
16  /// Base class for systs actually implemented in NOvARwgt.
17  class NOvARwgtSyst : public ISyst
18  {
19  public:
20  NOvARwgtSyst(std::string shortName, std::string latexName, const novarwgt::ISystKnob * knob)
21  : ISyst(shortName, latexName), // todo: should this be pulling the shortName from the knob's Name()?
22  fNOvARwgtKnob(knob)
23  {}
24 
25  void TruthShift(double sigma, caf::SRNeutrinoProxy* nu, double& weight) const override;
26 
27  const novarwgt::ISystKnob * GetNOvARwgtKnob() const { return fNOvARwgtKnob; }
28 
29  private:
30  const novarwgt::ISystKnob * fNOvARwgtKnob;
31  };
32 
33  //----------------------------------------------------------------------
34 
35  /// Convenience function to get a GENIE knob syst. (Allows using the GENIE knob name & description as the default.)
36  const NOvARwgtSyst * GetGenieKnobSyst(rwgt::ReweightLabel_t knobIdx, std::string altShortName="", std::string altLatexName="");
37 
38  //----------------------------------------------------------------------
39  /// \brief 20% uncertainty scale on coherent CC events. See documentation in NOvARwgt
41 
42  /// \brief 20% uncertainty scale on coherent NC events. See documentation in NOvARwgt
44 
45  //----------------------------------------------------------------------
46  /// 2017 'reduced' M_A^QE shift. See documentation in NOvARwgt.
48 
49  //----------------------------------------------------------------------
50  /// 2018 'reduced' M_A^QE shift. See documentation in NOvARwgt
52 
53  //----------------------------------------------------------------------
54  ///@{
55  /// 2020 z-expansion knobs with proper correlations. See documentation in NOvARwgt
60  ///@}
61 
62  //----------------------------------------------------------------------
63  /// Radiative corrections syst (nues). See documentation in NOvARwgt
64  extern const NOvARwgtSyst kRadCorrNue;
65 
66  /// Radiative corrections syst (nuebars). See documentation in NOvARwgt
68 
69  //----------------------------------------------------------------------
70  /// Second-class current syst. See documentation in NOvARwgt
72 
73 
74  //----------------------------------------------------------------------
75  /// Nuclear Optical Potential. See documentation in NOvARwgt
77 } // namespace
const novarwgt::ISystKnob * fNOvARwgtKnob
Definition: XSecSysts.h:30
const NOvARwgtSyst kZExpEV2Syst2020("ZExpAxialFFSyst2020_EV2","CCQE z-exp EV shift #2", novarwgt::kZExpEV2Syst2020)
Definition: XSecSysts.h:57
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 Var weight
Proxy for caf::SRNeutrino.
Definition: SRProxy.h:510
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 'reduced' M_A^QE shift. See documentation in NOvARwgt
Definition: XSecSysts.h:51
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 'reduced' M_A^QE shift. See documentation in NOvARwgt.
Definition: XSecSysts.h:47
void TruthShift(double sigma, caf::SRNeutrinoProxy *nu, double &weight) const override
Definition: XSecSysts.cxx:22
const NOvARwgtSyst kNucOptPtlSyst("nucoptptl","Nuclear Optical Potential for #nu_{#mu}", novarwgt::kNucOptPtl_Syst)
Nuclear Optical Potential. See documentation in NOvARwgt.
Definition: XSecSysts.h:76
Encapsulate code to systematically shift a caf::SRProxy.
Definition: ISyst.h:14
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 kZExpEV1Syst2020("ZExpAxialFFSyst2020_EV1","CCQE z-exp EV shift #1", novarwgt::kZExpEV1Syst2020)
Definition: XSecSysts.h:56
const NOvARwgtSyst kZExpEV4Syst2020("ZExpAxialFFSyst2020_EV4","CCQE z-exp EV shift #4", novarwgt::kZExpEV4Syst2020)
Definition: XSecSysts.h:59
const NOvARwgtSyst kCOHCCScaleSyst2018("COHCCScale2018","Coherent CC Scale", novarwgt::kCOHNormCCSystKnob)
20% uncertainty scale on coherent CC events. See documentation in NOvARwgt
Definition: XSecSysts.h:40
double sigma(TH1F *hist, double percentile)
const NOvARwgtSyst kZExpEV3Syst2020("ZExpAxialFFSyst2020_EV3","CCQE z-exp EV shift #3", novarwgt::kZExpEV3Syst2020)
Definition: XSecSysts.h:58
const NOvARwgtSyst kCOHNCScaleSyst2018("COHNCScale2018","Coherent NC Scale", novarwgt::kCOHNormNCSystKnob)
20% uncertainty scale on coherent NC events. See documentation in NOvARwgt
Definition: XSecSysts.h:43
NOvARwgtSyst(std::string shortName, std::string latexName, const novarwgt::ISystKnob *knob)
Definition: XSecSysts.h:20
const novarwgt::ISystKnob * GetNOvARwgtKnob() const
Definition: XSecSysts.h:27
string shortName
THUMBNAIL BLOCK: We need to make a thumbnail for each.
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 NOvARwgtSyst kRadCorrNue("radcorrnue","Radiative corrections for #nu_{e}", novarwgt::kSimpleRadiativeCorrNueXsecSystKnob)
Radiative corrections syst (nues). See documentation in NOvARwgt.
Definition: XSecSysts.h:64
Base class for systs actually implemented in NOvARwgt.
Definition: XSecSysts.h:17
enum BeamMode string