GENIEReweightTable.h
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////
2 /// \brief Store +/-1,2sigma shifts for all GENIE reweighting systematics
3 /// \author Christopher Backhouse - bckhouse@caltech.edu
4 ////////////////////////////////////////////////////////////////////////
5 
6 #ifndef RWGT_GENIEREWEIGHTTABLE_H
7 #define RWGT_GENIEREWEIGHTTABLE_H
8 
9 #include <vector>
10 
11 namespace rwgt
12 {
13  /// \brief Store +/-1,2sigma shifts for all GENIE reweighting systematics
14  ///
15  /// Warning: fReweightCCQEMomDistroFGtoSF and fReweightTheta_Delta2Npi are
16  /// not conventional systematics, but knobs varying from 0-1 between two
17  /// alternatives. The mapping is -2, -1, 0, +1, +2 sigma -> 0.25, 0.5, 0,
18  /// 0.75, 1.0
20  {
21  public:
22  unsigned int NShifts() const {return fMinus2Sigma.size();}
23  double Minus2Sigma(int i) const {return fMinus2Sigma[i];}
24  double Minus1Sigma(int i) const {return fMinus1Sigma[i];}
25  double Plus1Sigma(int i) const {return fPlus1Sigma[i];}
26  double Plus2Sigma(int i) const {return fPlus2Sigma[i];}
27 
28  void SetWeights(unsigned int i, double m2, double m1, double p1, double p2);
29  protected:
30  std::vector<double> fMinus2Sigma;
31  std::vector<double> fMinus1Sigma;
32  std::vector<double> fPlus1Sigma;
33  std::vector<double> fPlus2Sigma;
34  };
35 }
36 
37 #endif
double Plus1Sigma(int i) const
double Minus2Sigma(int i) const
std::vector< double > fMinus2Sigma
void SetWeights(unsigned int i, double m2, double m1, double p1, double p2)
std::vector< double > fPlus2Sigma
double Plus2Sigma(int i) const
Use NuReweight to compute +/-1,2sigma shifts for all systematics.
Definition: FillTruth.h:18
std::vector< double > fPlus1Sigma
double Minus1Sigma(int i) const
static constexpr Double_t m2
Definition: Munits.h:145
std::vector< double > fMinus1Sigma
Store +/-1,2sigma shifts for all GENIE reweighting systematics.
unsigned int NShifts() const