Back to home page

sPhenix code displayed by LXR

 
 

    


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  // G4TPC_TruthTrack_h