HighLAND
FluxWeightSystematics.hxx
1 #ifndef FluxWeightSystematics_h
2 #define FluxWeightSystematics_h
3 
4 #include "EventWeightBase.hxx"
5 #include "BinnedParams.hxx"
6 #include "FluxWeighting.hxx"
7 
8 /// This is a normalization systematic. It takes into account the uncertainty on the neutrino flux
9 
11  public:
12 
13  FluxWeightSystematics(const std::string& name);
14  virtual ~FluxWeightSystematics() {}
15 
16  /// Apply this systematic
18  Weight_h ComputeWeight(const ToyExperiment& toy, const AnaEventC& event, const ToyBoxB& box);
19  virtual bool IsCorrectRunPeriod(int runPeriod)=0; ///Bit of a hack right now; hopefully future will have the beam polarity as a variable
20 
21 protected:
22  /// Access to the flux weighting.
24 
25 
26 };
27 
28 //We don't have 3D systematics, so fake it with two 2D class; also allows neutrino or anti-neutrino
29 //only analysis
30 
32  public:
33 
35  virtual ~FluxWeightSystematicsNeutrino() {}
36  bool IsCorrectRunPeriod(int runPeriod);
37 
38 };
39 
41  public:
42 
45  bool IsCorrectRunPeriod(int runPeriod);
46 
47 
48 };
49 
50 
51 
52 #endif
FluxWeighting * _flux
Bit of a hack right now; hopefully future will have the beam polarity as a variable.
virtual Weight_h ComputeWeight(const ToyExperiment &toy, const AnaEventC &event, const ToyBoxB &box, const SelectionBase &sel)
This is now the actual method called by SystematicManager, which allows further selection tunning of ...
This is a normalization systematic. It takes into account the uncertainty on the neutrino flux...
Weight_h ComputeWeight(const ToyExperiment &toy, const AnaEventC &event, const ToyBoxB &box)