Systs.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "CAFAna/Core/ISyst.h"
4 
5 // Historically these systs have always been accessible via this header
9 
10 namespace ana
11 {
12 
13  //----------------------------------------------------------------------
14 
15  namespace label {
16  enum AnaLabel_t{
20  }
21 
22  //----------------------------------------------------------------------
23  /// Absolute normalization systematic
24  class NormSyst: public ISyst
25  {
26  public:
27  NormSyst() : ISyst("norm", "Normalization") {}
28 
29  void Shift(double sigma, caf::SRProxy* sr, double& weight) const override;
30  };
31 
32  extern const NormSyst kNormSyst;
33 
34  //----------------------------------------------------------------------
35  /// Relative (uncorrelated FD to ND) normalization systematic
36  class RelNormSyst: public ISyst
37  {
38  public:
39  RelNormSyst() : ISyst("relNorm", "Relative Normalization") {}
40 
41  void Shift(double sigma, caf::SRProxy* sr, double& weight) const override;
42  };
43 
44  extern const RelNormSyst kRelNormSyst;
45 
46  //----------------------------------------------------------------------
47  /// Absolute Neutral Current scale systematic
48  class NCScaleSyst: public ISyst
49  {
50  public:
51  NCScaleSyst() : ISyst("ncScale", "Neutral Current Scale") {}
52 
53  void Shift(double sigma, caf::SRProxy* sr, double& weight) const override;
54  };
55 
56  extern const NCScaleSyst kNCScaleSyst;
57 
58  //----------------------------------------------------------------------
59  /// Absolute scale of beam \f$ \nu_e \f$'s systematic
60  class BeamNueScaleSyst: public ISyst
61  {
62  public:
63  BeamNueScaleSyst() : ISyst("nueScale", "Beam #nu_{e} Scale") {}
64 
65  void Shift(double sigma, caf::SRProxy* sr, double& weight) const override;
66  };
67 
69 
70  //----------------------------------------------------------------------
71  // Absolute scale of numuCC systematic
72  class NumuCCScaleSyst: public ISyst
73  {
74  public:
75  NumuCCScaleSyst() : ISyst("numuScale", "#nu_{#mu}CC Scale") {}
76 
77  void Shift(double sigma, caf::SRProxy* sr, double& weight) const override;
78  };
79 
80  extern const NumuCCScaleSyst kNumuCCScaleSyst;
81 
82  //----------------------------------------------------------------------
83  // Absolute scale of Kaon Flux systematic
84  class KaonScaleSyst: public ISyst
85  {
86  public:
87  KaonScaleSyst() : ISyst("kaonScale", "Kaon Flux Scale") {}
88 
89  void Shift(double sigma, caf::SRProxy* sr, double& weight) const override;
90  };
91 
92  extern const KaonScaleSyst kKaonScaleSyst;
93 
94  //----------------------------------------------------------------------
95  /// Shift beam intensity - reweights nslcs dist to fake a different intensity
96  class BeamIntensitySyst: public ISyst
97  {
98  public:
99  BeamIntensitySyst() : ISyst("BeamInt", "Beam Intensity") {}
100 
101  void Shift(double sigma, caf::SRProxy* sr, double& weight) const override;
102  };
103 
105 
106  //----------------------------------------------------------------------
107 
108  /// LEM-shift systematic
109  class LEMScaleSyst : public ISyst
110  {
111  public:
112  LEMScaleSyst() : ISyst("lemScale", "LEM Scale") {}
113 
114  void Shift(double sigma, caf::SRProxy* sr, double& weight) const override;
115  };
116 
117  extern const LEMScaleSyst kLEMScaleSyst;
118 
119  //----------------------------------------------------------------------
120 
121  /// RemID-shift systematic
122  class RemIDScaleSyst : public ISyst
123  {
124  public:
125  RemIDScaleSyst() : ISyst("remidScale", "RemID Scale") {}
126 
127  void Shift(double sigma, caf::SRProxy* sr, double& weight) const override;
128  };
129 
130  extern const RemIDScaleSyst kRemIDScaleSyst;
131 
132  //----------------------------------------------------------------------
133 
134  /// Rock muon normalization - reweights all events with vtx outside det
135  class RockMuonNormSyst: public ISyst
136  {
137  public:
138  RockMuonNormSyst() : ISyst("rockNorm", "Rock Muon Normalization") {}
139 
140  void Shift(double sigma, caf::SRProxy* sr, double& weight) const override;
141  };
142 
143  extern const RockMuonNormSyst kRockMuonNormSyst;
144 
145  //----------------------------------------------------------------------
146 
147  // Containment efficiency systematic
148  class ContainmentSyst: public ISyst
149  {
150  public:
151  ContainmentSyst() : ISyst("cont", "Containment Efficiency") {}
152 
153  void Shift(double sigma, caf::SRProxy* sr, double& weight) const override;
154  };
155 
156  extern const ContainmentSyst kContainmentSyst;
157 
158 
159  //----------------------------------------------------------------------
160 
161  /// Hacked systematic to deal with high W DIS events. These events are
162  /// well constrained by proton collisions, so GENIE treats them different.
163  class DISHighWScaleSyst: public ISyst
164  {
165  public:
166  DISHighWScaleSyst() : ISyst("DISHighWScale","Scale for DIS events with W>2"){}
167 
168  void Shift(double sigma, caf::SRProxy* sr, double& weight) const override;
169  };
170 
172 
173  //----------------------------------------------------------------------
174 
175  /// 100% uncertainty scale on taus
177 
178 } // namespace
Cuts and Vars for the 2020 FD DiF Study.
Definition: vars.h:6
const LEMScaleSyst kLEMScaleSyst
Definition: Systs.cxx:21
const KaonScaleSyst kKaonScaleSyst
Definition: Systs.cxx:19
const Var weight
Relative (uncorrelated FD to ND) normalization systematic.
Definition: Systs.h:36
Proxy for caf::StandardRecord.
Definition: SRProxy.h:2126
const NuTruthSystComponentScale kTauScaleSyst("NuTauScale","#nu_{#tau} Scale", kIsTau_NT &&!kIsNC_NT, 0.6, NuTruthSystComponentScale::kLinear)
100% uncertainty scale on taus
Definition: Systs.h:176
const BeamNueScaleSyst kBeamNueScaleSyst
Definition: Systs.cxx:17
NormSyst()
Definition: Systs.h:27
const DISHighWScaleSyst kDISHighWScaleSyst
Definition: Systs.cxx:25
LEM-shift systematic.
Definition: Systs.h:109
RemID-shift systematic.
Definition: Systs.h:122
AnaLabel_t
Definition: Systs.h:16
Encapsulate code to systematically shift a caf::SRProxy.
Definition: ISyst.h:14
Uncertainty in the scale of a single component of the spectrum.
const BeamIntensitySyst kBeamIntensitySyst
Definition: Systs.cxx:20
const char * label
const NormSyst kNormSyst
Definition: Systs.cxx:14
Definition: Shift.h:6
const ContainmentSyst kContainmentSyst
Definition: Systs.cxx:24
Rock muon normalization - reweights all events with vtx outside det.
Definition: Systs.h:135
Absolute scale of beam 's systematic.
Definition: Systs.h:60
caf::StandardRecord * sr
Absolute Neutral Current scale systematic.
Definition: Systs.h:48
double sigma(TH1F *hist, double percentile)
Absolute normalization systematic.
Definition: Systs.h:24
const NumuCCScaleSyst kNumuCCScaleSyst
Definition: Systs.cxx:18
const RelNormSyst kRelNormSyst
Definition: Systs.cxx:15
const RockMuonNormSyst kRockMuonNormSyst
Definition: Systs.cxx:23
Shift beam intensity - reweights nslcs dist to fake a different intensity.
Definition: Systs.h:96
const NCScaleSyst kNCScaleSyst
Definition: Systs.cxx:16
const RemIDScaleSyst kRemIDScaleSyst
Definition: Systs.cxx:22