HighLAND
MomResolMCCorrection.hxx
1 #ifndef MomResolMCCorrection_h
2 #define MomResolMCCorrection_h
3 
4 #include "CorrectionBase.hxx"
5 #include "BaseDataClasses.hxx"
6 #include "MomentumResolVariation.hxx"
7 #include "ToyExperiment.hxx"
8 
9 
10 /// This class defines a correction that affects the reconstructed TPC Momentum of an
11 /// AnaTpcSegment as well as the global (AnaTrack) track Momentum. It basically applies an additional smearing.
12 /// This correction is applied to MC only
13 
15 
16 public:
17 
19 
20  virtual ~MomResolMCCorrection() {}
21 
22  /// Apply the momentum correction to all the relevant objects: AnaTrack and corresponding
23  void Apply(AnaSpillC& spill);
24 
25  /// Get the variation given a track
26  bool GetVariation(AnaTrackB* track, Float_t& variation);
27 
28  /// Get the variation given a track
29  bool GetVariationTPC(AnaTPCParticleB* track, Float_t& variation);
30 
31  /// Get the variation given a track
32  bool GetVariation(AnaTrackB* track, Float_t& variation, const ToyExperiment& exp){
33  (void)exp;
34  return GetVariation(track, variation);
35  }
36 
37  /// Get the variation given a track
38  bool GetVariationTPC(AnaTPCParticleB* track, Float_t& variation, const ToyExperiment& exp){
39  (void)exp;
40  return GetVariationTPC(track, variation);
41  }
42 
43 
44 protected:
45 
46  /// Check whether a track is relevant to apply the correction: e.g. momentum resolution was studied for tracker objects only
47  /// Probably should be moved to a base class
48  bool IsRelevantObject(const AnaRecObjectC* object);
49 
50  /// Some default toy experiment, not used at the moment
52 
53 private:
54  bool _tpc_based_var;
55 };
56 
57 #endif
ToyExperiment _exp
Some default toy experiment, not used at the moment.
void Apply(AnaSpillC &spill)
Apply the momentum correction to all the relevant objects: AnaTrack and corresponding.
bool GetVariationTPC(AnaTPCParticleB *track, Float_t &variation)
Get the variation given a track.
All corrections should be registered with the CorrectionManager.
bool GetVariationTPC(AnaTPCParticleB *track, Float_t &variation, const ToyExperiment &exp)
Get the variation given a track.
Representation of a global track.
bool GetVariation(AnaTrackB *track, Float_t &variation)
Get the variation given a track.
bool IsRelevantObject(const AnaRecObjectC *object)
Representation of a TPC segment of a global track.
bool GetVariation(AnaTrackB *track, Float_t &variation, const ToyExperiment &exp)
Get the variation given a track.