#pragma once // Tb/TbKernel #include "TbKernel/TbAlgorithm.h" /** @class TbClusterAssociator TbClusterAssociator.h * */ class TbClusterAssociator : public TbAlgorithm { public: /// Constructor TbClusterAssociator(const std::string& name, ISvcLocator* pSvcLocator); /// Destructor virtual ~TbClusterAssociator() {} virtual StatusCode initialize(); ///< Algorithm initialization virtual StatusCode execute(); ///< Algorithm execution private: std::vector<unsigned int> m_duts; std::string m_trackLocation; std::string m_clusterLocation; /// Flag to use individual pixel hits or cluster coordinate for association. bool m_useHits; /// Flag to associate clusters to more than one track or not. bool m_reuseClusters; /// Time window double m_twindow; /// Spatial window double m_xwindow; /// Chi2 cut double m_maxChi2; /// Check if a cluster has hits within the tolerance window. bool match(const LHCb::TbCluster* cluster, const double x, const double y) const; };