HighLAND
TPCTrackEffSystematics.hxx
1 #ifndef TPCTrackEffSystematics_h
2 #define TPCTrackEffSystematics_h
3 
4 #include "EventWeightBase.hxx"
5 #include "ToyExperiment.hxx"
6 #include "BinnedParams.hxx"
7 
8 /// This systematic smears the momentum of tracks with TPC information, by a
9 /// random amount from a Gaussian distribution.
10 ///
11 /// The amount each track is changed by uses two Gaussian distributions.
12 /// The first distribution uses the input parameters to select a resolution.
13 /// This is called once for each virtual analysis. The second distribution
14 /// then uses the chosen resolution as its width, and the amount to vary each
15 /// track's momentum is chosen from this distribution. This is called for each
16 /// track individually.
18 public:
19 
20  /// this is only 1 toy experiment, as we only store the weight for a change of one sigma.
21  /// The mean and sigma for each momentum bin is defined in a data file.
22  /// the Gaussian distribution from which the resolution of each virtual
23  /// analysis is selected from.
24  TPCTrackEffSystematics(bool computecounters=false);
25 
26  virtual ~TPCTrackEffSystematics() {}
27 
28  Weight_h ComputeWeight(const ToyExperiment&, const AnaEventC&, const ToyBoxB&){return 1;}
29  Weight_h ComputeWeight(const ToyExperiment& toy, const AnaEventC& event, const ToyBoxB& box, const SelectionBase& sel);
30 
31 protected:
32 
33  /// Is this true track relevant for this systematic ?
34  bool IsRelevantTrueObject(const AnaEventC& event, const AnaTrueObjectC& trueTrack) const;
35 
36  /// Get the TrackGroup IDs array for this systematic
37  Int_t GetRelevantRecObjectGroups(const SelectionBase& sel, Int_t ibranch, Int_t* IDs) const;
38 
39  /// Get the TrueTrackGroup IDs array for this systematic
40  Int_t GetRelevantTrueObjectGroups(const SelectionBase& sel, Int_t ibranch, Int_t* IDs) const;
41 
42  /// Check the true-reco association
43  bool CheckTrueRecoAssociation(const AnaTrueObjectC& trueTrack, const AnaRecObjectC& track) const;
44 
45 protected:
46 
47  /// The systematic source parameters
49 
50  /// value of psycheSystematics.Tracker.FullCorrelations parameter
52 
53 };
54 
55 #endif
bool _full_correlations
value of psycheSystematics.Tracker.FullCorrelations parameter
bool _computecounters
The systematic source parameters.
bool CheckTrueRecoAssociation(const AnaTrueObjectC &trueTrack, const AnaRecObjectC &track) const
Check the true-reco association.
Int_t GetRelevantTrueObjectGroups(const SelectionBase &sel, Int_t ibranch, Int_t *IDs) const
Get the TrueTrackGroup IDs array for this systematic.
TPCTrackEffSystematics(bool computecounters=false)
Int_t GetRelevantRecObjectGroups(const SelectionBase &sel, Int_t ibranch, Int_t *IDs) const
Get the TrackGroup IDs array for this systematic.
bool IsRelevantTrueObject(const AnaEventC &event, const AnaTrueObjectC &trueTrack) const
Is this true track relevant for this systematic ?
Weight_h ComputeWeight(const ToyExperiment &, const AnaEventC &, const ToyBoxB &)