HighLAND
tutorialVariationSystematics.hxx
1 #ifndef tutorialVariationSystematics_h
2 #define tutorialVariationSystematics_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 ~tutorialVariationSystematics() {}
20 
21  /// Apply the systematic
22  virtual void Apply(const ToyExperiment& toy, AnaEventC& event);
23 
24  /// Undo the systematic variations done by ApplyVariation. This is faster tha reseting the full Spill
25  virtual bool UndoSystematic(AnaEventC& event);
26 
27 protected:
28 
29  /// Get the TrackGroup IDs array for this systematic
30  Int_t GetRelevantRecObjectGroups(const SelectionBase& sel, Int_t* IDs) const;
31 
32 protected:
33  /// Mean of the scale distribution.
34  Float_t _scale;
35 
36  /// Width of the scale distribution.
37  Float_t _scaleError;
38 };
39 
40 #endif
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.
virtual bool UndoSystematic(AnaEventC &event)
Undo the systematic variations done by ApplyVariation. This is faster tha reseting the full Spill...
Float_t _scale
Mean of the scale distribution.
virtual void Apply(const ToyExperiment &toy, AnaEventC &event)
Apply the systematic.