HighLAND
MomentumScaleSystematics.hxx
1 #ifndef MomentumScaleSystematics_h
2 #define MomentumScaleSystematics_h
3 
4 #include "EventVariationBase.hxx"
5 #include "BinnedParams.hxx"
6 
7 /// This systematic shifts the momentum of all tracks with TPC information.
8 ///
9 /// For each virtual analysis, all tracks are shifted by the same amount.
10 /// The shift for each analysis is chosen from a Gaussian distribution
11 /// specified by the user.
13 public:
14 
15  /// Instantiate the momentum scale systematic. nbins bins for the PDF. scale and scaleError describe
16  /// the Gaussian distribution from which the shift in momentum is chosen.
18 
19  virtual ~MomentumScaleSystematics() {}
20 
21  /// Apply the systematic
22  void Apply(const ToyExperiment& toy, AnaEventC& event);
23 
24  ///
25  virtual void ApplyP0DTPC(const ToyExperiment& toy, AnaEventC& event);
26 
27  /// Undo the systematic variations done by ApplyVariation. This is faster tha reseting the full Spill
28  bool UndoSystematic(AnaEventC& event);
29 
30 protected:
31 
32  /// Get the TrackGroup IDs array for this systematic
33  Int_t GetRelevantRecObjectGroups(const SelectionBase& sel, Int_t* IDs) const;
34 
35 protected:
36 
37  /// Width of the scale distribution.
38  Float_t _scaleError;
39 
40  ///
41  bool _useP0DFV;
42 };
43 
44 #endif
bool UndoSystematic(AnaEventC &event)
Undo the systematic variations done by ApplyVariation. This is faster tha reseting the full Spill...
void Apply(const ToyExperiment &toy, AnaEventC &event)
Apply the systematic.
Int_t GetRelevantRecObjectGroups(const SelectionBase &sel, Int_t *IDs) const
Get the TrackGroup IDs array for this systematic.
Float_t _scaleError
Width of the scale distribution.