- #ifndef TB_SIMPLETRACKING_H
- #define TB_SIMPLETRACKING_H 1
-
- // Tb/TbEvent
- #include "Event/TbCluster.h"
- #include "Event/TbTrack.h"
-
- // Tb/TbKernel
- #include "TbKernel/ITbTrackFit.h"
- #include "TbKernel/TbAlgorithm.h"
-
- /** @class TbSimpleTracking TbSimpleTracking.h
- *
- */
-
- class TbSimpleTracking : public TbAlgorithm {
- public:
- /// Constructor
- TbSimpleTracking(const std::string &name, ISvcLocator *pSvcLocator);
- /// Destructor
- virtual ~TbSimpleTracking() {}
-
- virtual StatusCode initialize(); ///< Algorithm initialization
- virtual StatusCode execute(); ///< Algorithm execution
-
- private:
- /// TES location prefix of clusters
- std::string m_clusterLocation;
- /// TES location of tracks
- std::string m_trackLocation;
-
- /// Tolerance window in time for adding clusters to a track and for occupancy
- /// cut
- double m_timeWindow;
- /// Minimum number of clusters required to form a track
- unsigned int m_nMinPlanes;
- /// Number of non-masked planes
- unsigned int m_nMaxPlanes;
- /// Tolerance window in x and y for adding clusters to a track
- double m_maxDist;
- /// Angular cut (in radians) for adding clusters to a track
- double m_maxAngle;
-
- /// List of clusters
- std::vector<LHCb::TbClusters *> m_clusters;
-
- /// Name of the track fit tool
- std::string m_trackFitTool;
- /// Track fit tool
- ITbTrackFit *m_trackFit;
-
- bool m_recheckTrack;
- bool m_removeOutliers;
- double m_chargeCutLow;
- unsigned int m_maxClusterSize;
- unsigned int m_maxClusterWidth;
- unsigned int m_maxOccupancy;
- std::vector<double> m_htimesHighOccupancy;
- bool m_doOccupancyCut;
- bool m_monitoring;
-
- void findHighOccupancies();
- bool lowClusterOccupancy(const double t) const;
- void appendTrackingEfficiencies();
- void recheckTrack(LHCb::TbTrack *track);
- /// Extrapolate and add clusters to a given seed track.
- bool extendTrack(LHCb::TbTrack *track, const bool fwd);
- /// Look for a matching cluster on a given plane.
- const LHCb::TbCluster *bestCluster(const unsigned int plane,
- const double xPred, const double yPred,
- const double tPred, const double tol);
- /// Functor for lower bound search.
- class lowerBound {
- public:
- bool operator()(const LHCb::TbCluster *lhs, const double t) const {
- return lhs->htime() < t;
- }
- };
- };
- #endif