HighLAND
IgnoreRightECalRuns3and4Correction.hxx
1 #ifndef IgnoreRightECalRuns3and4Correction_h
2 #define IgnoreRightECalRuns3and4Correction_h
3 
4 #include "CorrectionBase.hxx"
5 #include <vector>
6 #include <utility>
7 
8 /// This correction removes all information from the right ECal
9 /// in runs 3 and 4 data, and runs 3 and 4 equivalent MC. The reason
10 /// for this is that a TFB died during the earthquake, and has not been
11 /// replaced. This affects the ECal PID and energy resolution in a way that
12 /// a systematic has not been evaluated for yet. So the simple solution is
13 /// to just ignore that ECal entirely.
14 ///
15 /// The parameters in baseAnalysis.parameters.dat define the run periods for which
16 /// this correction should be applied.
18  public:
19 
20  /// Constructor, which reads in the parameter file to set up the run
21  /// periods for which the correction should be applied.
23 
25 
26  /// Apply the variation to all tracks with TPC info.
27  void Apply(AnaSpillC& spill);
28 
29  private:
30 
31  /// Whether we should apply the correction to this event.
32  bool ShouldApplyCorrection(AnaSpillC& spill);
33 
34  /// Join the base string with the pairing integer.
35  std::string GetParamString(std::string base, int pairing);
36 
37  /// The run periods to apply this correction for in MC. List of start-end
38  /// run numbers, inclusive.
39  std::vector<std::pair<int, int> > _runs_MC;
40 
41  /// The run periods to apply this correction for in data. List of start-end
42  /// run numbers, inclusive.
43  std::vector<std::pair<int, int> > _runs_Data;
44 };
45 
46 #endif
All corrections should be registered with the CorrectionManager.
void Apply(AnaSpillC &spill)
Apply the variation to all tracks with TPC info.