Belle II Software  release-05-01-25
CDCMCCloneLookUp.h
1 #pragma once
2 
3 #include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
4 #include <tracking/trackFindingCDC/mclookup/ITrackType.h>
5 
6 #include <tracking/trackFindingCDC/mclookup/CDCMCTrackLookUp.h>
7 #include <tracking/trackFindingCDC/mclookup/CDCMCHitLookUp.h>
8 
9 #include <map>
10 #include <vector>
11 
12 namespace Belle2 {
17  namespace TrackFindingCDC {
18 
29 
30  public:
32  static CDCMCCloneLookUp& getInstance();
35  CDCMCCloneLookUp& operator=(const CDCMCCloneLookUp&) = delete;
36 
38  void fill(std::vector<CDCTrack>& cdcTracks);
39 
41  void clear();
42 
44  bool isTrackClone(const CDCTrack& cdcTrack);
45 
46  private:
48  CDCMCCloneLookUp() = default;
49 
52  std::map<const ITrackType, std::vector<CDCTrack*>> getMatchedCDCTracksByMCID(
53  std::vector<CDCTrack>& cdcTracks);
54 
58  CDCTrack* findBestMatchedTrack(std::vector<CDCTrack*> matchedTrackPtrs);
59 
61  std::map<const CDCTrack*, bool> m_cdcTrackIsCloneMap;
62  };
63 
67  operator FunctorTag();
68 
71  CompareCDCTracks(const CDCMCTrackLookUp& cdcMCTrackLookUp,
72  const CDCMCHitLookUp& cdcMCHitLookUp)
73  : m_CDCMCTrackLookUp(cdcMCTrackLookUp)
74  , m_CDCMCHitLookUp(cdcMCHitLookUp) {};
75 
76 
82  bool operator()(const CDCTrack* ptrCDCTrack1, const CDCTrack* ptrCDCTrack2) const;
83 
84  private:
86  unsigned int getNumberOfCorrectHits(const CDCTrack* ptrCDCTrack) const;
87 
92  };
93  } // namespace TrackFindingCDC
95 } // namespace Belle2
Belle2::TrackFindingCDC::CDCTrack
Class representing a sequence of three dimensional reconstructed hits.
Definition: CDCTrack.h:51
Belle2::TrackFindingCDC::CDCMCCloneLookUp::CDCMCCloneLookUp
CDCMCCloneLookUp()=default
Singleton: Default ctor only available to getInstance method.
Belle2::TrackFindingCDC::CDCMCCloneLookUp::getMatchedCDCTracksByMCID
std::map< const ITrackType, std::vector< CDCTrack * > > getMatchedCDCTracksByMCID(std::vector< CDCTrack > &cdcTracks)
Helper function which returns a map of MCTrackIDs to vectors of CDTrack pointers.
Definition: CDCMCCloneLookUp.cc:17
Belle2::TrackFindingCDC::CompareCDCTracks::getNumberOfCorrectHits
unsigned int getNumberOfCorrectHits(const CDCTrack *ptrCDCTrack) const
Get number of hits in track that are correctly matched.
Definition: CDCMCCloneLookUp.cc:38
Belle2::TrackFindingCDC::CDCMCCloneLookUp::m_cdcTrackIsCloneMap
std::map< const CDCTrack *, bool > m_cdcTrackIsCloneMap
Map of track pointers to isClone indicator from MCTruth-based assumption.
Definition: CDCMCCloneLookUp.h:61
Belle2::TrackFindingCDC::CDCMCCloneLookUp::fill
void fill(std::vector< CDCTrack > &cdcTracks)
fill with all cdcTracks in an event
Definition: CDCMCCloneLookUp.cc:84
Belle2::TrackFindingCDC::CompareCDCTracks::m_CDCMCHitLookUp
const CDCMCHitLookUp & m_CDCMCHitLookUp
Reference to a CDCMCHitLookUp instance, assigned in the constructor of this functor.
Definition: CDCMCCloneLookUp.h:91
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::CDCMCHitLookUp
Interface class to the Monte Carlo information for individual hits.
Definition: CDCMCHitLookUp.h:41
Belle2::TrackFindingCDC::CDCMCCloneLookUp
Class providing information whether a PR CDC track is the best match or a clone.
Definition: CDCMCCloneLookUp.h:28
Belle2::TrackFindingCDC::CompareCDCTracks::operator()
bool operator()(const CDCTrack *ptrCDCTrack1, const CDCTrack *ptrCDCTrack2) const
Compare both CDC tracks to get the better matched one.
Definition: CDCMCCloneLookUp.cc:48
Belle2::TrackFindingCDC::CompareCDCTracks
Functor which which decides which of two tracks to declare as best match.
Definition: CDCMCCloneLookUp.h:65
Belle2::TrackFindingCDC::FunctorTag
Tag class to facilitate marking of class as a functor in the sense of this code.
Definition: FunctorTag.h:30
Belle2::TrackFindingCDC::CDCMCCloneLookUp::findBestMatchedTrack
CDCTrack * findBestMatchedTrack(std::vector< CDCTrack * > matchedTrackPtrs)
Helper function which takes a vector of pointers to CDCTracks which are matched to the same MC partic...
Definition: CDCMCCloneLookUp.cc:66
Belle2::TrackFindingCDC::CompareCDCTracks::CompareCDCTracks
CompareCDCTracks(const CDCMCTrackLookUp &cdcMCTrackLookUp, const CDCMCHitLookUp &cdcMCHitLookUp)
Constructor of the CDC track comparer to get the better match, taking references to MC lookup singlet...
Definition: CDCMCCloneLookUp.h:71
Belle2::TrackFindingCDC::CDCMCCloneLookUp::getInstance
static CDCMCCloneLookUp & getInstance()
Getter for the singletone instance.
Definition: CDCMCCloneLookUp.cc:11
Belle2::TrackFindingCDC::CDCMCCloneLookUp::clear
void clear()
Clear eventwise lookup tables.
Definition: CDCMCCloneLookUp.cc:78
Belle2::TrackFindingCDC::CDCMCTrackLookUp
Specialisation of the lookup for the truth values of reconstructed tracks.
Definition: CDCMCTrackLookUp.h:33
Belle2::TrackFindingCDC::CompareCDCTracks::m_CDCMCTrackLookUp
const CDCMCTrackLookUp & m_CDCMCTrackLookUp
Reference to a CDCMCTrackLookUp instance, assigned in the constructor of this functor.
Definition: CDCMCCloneLookUp.h:89
Belle2::TrackFindingCDC::CDCMCCloneLookUp::isTrackClone
bool isTrackClone(const CDCTrack &cdcTrack)
getter for information from m_cdcTrackIsCloneMap
Definition: CDCMCCloneLookUp.cc:113