HighLAND
P0DELossScaleSystematics.hxx
1 #ifndef p0dMomScaleSystematics_h
2 #define p0dMomScaleSystematics_h
3 
4 #include "EventVariationBase.hxx"
5 #include "BinnedParams.hxx"
6 #include <string>
7 
8 /// This systematic shifts the momentum of all tracks in the P0D FV with TPC information.
9 /// The shift is applied to the P0D momentum loss, which is defined as the difference between the global track momentum and the first subdetector entrance momentum (i.e. the momentum at the upstream end of TPC1 for the vast majority of tracks in the selection)
10 /// For each virtual analysis, all tracks are shifted by the same amount.
11 /// The shift for each analysis is chosen from a Gaussian distribution
12 /// specified by the user.
14  public:
15 
16  /// Instantiate the momentum scale systematic. nbins bins for the PDF. scale and scaleError describe
17  /// the Gaussian distribution from which the shift in momentum is chosen.
19 
20  virtual ~P0DELossScaleSystematics() {}
21 
22  /// Apply the systematic
23  virtual void Apply(const ToyExperiment& toy, AnaEventC& event);
24 
25  /// Undo the systematic variations done by ApplyVariation. This is faster than resetting the full Spill
26  virtual bool UndoSystematic(AnaEventC& event);
27 
28 protected:
29 
30  /// Get the TrackGroup IDs array for this systematic
31  Int_t GetRelevantRecObjectGroups(const SelectionBase& sel, Int_t* IDs) const;
32 
33 };
34 
35 #endif
virtual bool UndoSystematic(AnaEventC &event)
Undo the systematic variations done by ApplyVariation. This is faster than resetting the full Spill...
virtual 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.