File indexing completed on 2025-08-05 08:18:01
0001 #ifndef TRKRCLUSTERISMATCHER__H
0002 #define TRKRCLUSTERISMATCHER__H
0003
0004
0005
0006
0007
0008
0009
0010 #include <array>
0011 #include <string>
0012
0013 #include <trackbase/TrkrDefs.h>
0014
0015 class ActsGeometry;
0016 class TrkrCluster;
0017 class PHCompositeNode;
0018 class TrkrClusterContainer;
0019 class TrackClusEvaluator;
0020
0021 class TrkrClusterIsMatcher
0022 {
0023 public:
0024 TrkrClusterIsMatcher(){};
0025
0026 bool operator()(TrkrDefs::cluskey key_T, TrkrDefs::cluskey key_R);
0027
0028 int init(PHCompositeNode* topNode,
0029 const std::string& name_truth_clusters = "TRKR_TRUTHCLUSTERCONTAINER",
0030 const std::string& name_reco_clusters = "TRKR_CLUSTER");
0031
0032 void set_tol_phi_MVTX(float _val);
0033 void set_tol_phi_INTT(float _val);
0034 void set_tol_phi_TPC(float _val);
0035
0036 void set_tol_z_MVTX(float _val);
0037 void set_tol_t_TPC(float _val);
0038
0039
0040
0041 bool single_pixel_phi_MVTX{false};
0042 bool single_pixel_phi_INTT{false};
0043 bool single_bin_phi_TPC{true};
0044
0045 bool single_pixel_z_MVTX{false};
0046 bool single_pixel_z_INTT{false};
0047 bool single_bin_t_TPC{true};
0048
0049
0050
0051 TrkrCluster* clus_T{nullptr};
0052 TrkrCluster* clus_R{nullptr};
0053 int layer{0};
0054 int det_0123{0};
0055 bool is_match{false};
0056 float dphi{0.};
0057
0058
0059 std::array<float, 56> pitch_phi{0.};
0060 float pitch_z_MVTX{0.};
0061 float step_t_TPC{0.};
0062
0063 std::array<float, 56> tol_pitch_phi{0.};
0064 float tol_pitch_z_MVTX{0.};
0065 float tol_step_t_TPC{0.};
0066
0067
0068 TrkrClusterContainer* m_TruthClusters{nullptr};
0069 TrkrClusterContainer* m_RecoClusters{nullptr};
0070 ActsGeometry* m_ActsGeometry{nullptr};
0071
0072
0073
0074
0075
0076
0077
0078
0079 float tol_phi_MVTX{0.5};
0080 float tol_phi_INTT{0.5};
0081 float tol_phi_TPC{1.0};
0082
0083 float tol_z_MVTX{0.5};
0084 float tol_t_TPC{1.0};
0085 };
0086
0087 #endif