File indexing completed on 2025-08-05 08:18:19
0001 #ifndef TRACKBASE_EMBRECOMATCH_H
0002 #define TRACKBASE_EMBRECOMATCH_H
0003
0004 #include <phool/PHObject.h>
0005 #include <trackbase/TrkrDefs.h>
0006 #include <climits>
0007 #include <cmath>
0008 #include <vector>
0009
0010 class EmbRecoMatch : public PHObject
0011 {
0012 public:
0013 EmbRecoMatch(){};
0014 ~EmbRecoMatch() override = default;
0015
0016 virtual unsigned short idTruthTrack() const { return std::numeric_limits<unsigned short>::max(); };
0017 virtual unsigned short nClustersTruth() const { return std::numeric_limits<unsigned short>::max(); };
0018 virtual unsigned short nMatches() const { return std::numeric_limits<unsigned short>::max(); };
0019
0020 virtual unsigned short idRecoTrack(unsigned short = 0) const { return std::numeric_limits<unsigned short>::max(); };
0021 virtual unsigned short idTpcTrackSeed(unsigned short = 0) const { return std::numeric_limits<unsigned short>::max(); };
0022 virtual unsigned short idSvtxTrackSeed(unsigned short = 0) const { return std::numeric_limits<unsigned short>::max(); };
0023
0024 virtual unsigned short nClustersReco(unsigned short = 0) const { return std::numeric_limits<unsigned short>::max(); };
0025 virtual unsigned short nClustersMatched(unsigned short = 0) const { return std::numeric_limits<unsigned short>::max(); };
0026
0027 virtual float nRatioMatched() const { return std::numeric_limits<float>::quiet_NaN(); };
0028
0029 struct Comp
0030 {
0031 bool operator()(const unsigned int lhs, const EmbRecoMatch* rhs) const
0032 {
0033 return lhs < rhs->idTruthTrack();
0034 }
0035 bool operator()(const EmbRecoMatch* lhs, const unsigned int rhs) const
0036 {
0037 return lhs->idTruthTrack() < rhs;
0038 }
0039 bool operator()(const EmbRecoMatch* lhs, const EmbRecoMatch* rhs) const
0040 {
0041 if (lhs->idTruthTrack() != rhs->idTruthTrack())
0042 return lhs->idTruthTrack() < rhs->idTruthTrack();
0043 else
0044 return lhs->idRecoTrack() < rhs->idRecoTrack();
0045 }
0046 };
0047
0048 protected:
0049 ClassDefOverride(EmbRecoMatch, 1)
0050 };
0051
0052 #endif