18 declareInterface<IMdtSegmentFinder>(
this);
27 return StatusCode::SUCCESS;
90 segmentFinder.
setFitter(std::make_shared<TrkDriftCircleMath::DCSLFitter>());
100 bool highOccupancy =
false;
101 bool aboveOccupancyCut =
false;
102 double occupancyMax = 0.;
103 unsigned int nmdtHits = 0;
107 for (; mit != mit_end; ++mit) {
108 unsigned int channels = mit->first->getNLayers() * mit->first->getNtubesperlayer();
109 double occupancy = (double)mit->second / (
double)channels;
111 nmdtHits += mit->second;
113 occupancyMax = std::max(occupancy, occupancyMax);
121 if (nmdtHits != dcvec.size()) {
122 ATH_MSG_WARNING(
" inconsistent number of mdt hits " << nmdtHits <<
" from vec " << dcvec.size());
123 nmdtHits = dcvec.size();
126 if (aboveOccupancyCut) {
127 ATH_MSG_DEBUG(
" layer with occupancy above threshold, aborting segment finding "
139 segmentFinder.
setFitter(std::make_shared<TrkDriftCircleMath::DCSLFitter>());
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
Gaudi::Property< double > m_occupancyCutOff
Gaudi::Property< bool > m_enableSeedCleaning
Gaudi::Property< double > m_rpcAssociationPullCut
Gaudi::Property< bool > m_useChamberTheta
Gaudi::Property< double > m_tightRoadCut
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
ToolHandle< IDCSLFitProvider > m_dcslFitProvider
Gaudi::Property< double > m_chi2PerDofDrop
Gaudi::Property< bool > m_useSegmentQuality
virtual const TrkDriftCircleMath::SegVec findSegments(const TrkDriftCircleMath::DCVec &dcvec, const TrkDriftCircleMath::CLVec &clvec, const TrkDriftCircleMath::Road &road, const TrkDriftCircleMath::DCStatistics &dcstats, const TrkDriftCircleMath::ChamberGeometry *multiGeo) const
IMdtMdtMathSegmentFinder interface implementation.
MdtMathSegmentFinder(const std::string &t, const std::string &n, const IInterface *p)
Gaudi::Property< unsigned int > m_maxHitsPerFullSearch
Gaudi::Property< int > m_finderDebugLevel
Gaudi::Property< double > m_mdtAssociationPullCut
Gaudi::Property< bool > m_doCurvedSegmentFinder
Gaudi::Property< double > m_residualCutT0Segments
Gaudi::Property< double > m_tgcAssociationPullCut
Gaudi::Property< bool > m_doAllHitSort
Gaudi::Property< bool > m_recoverMdtOutliers
Gaudi::Property< double > m_ratioEmptyTubesCut
Gaudi::Property< bool > m_doRoadAngleSeeding
Gaudi::Property< bool > m_removeSingleOutliers
Gaudi::Property< bool > m_doDrop
Gaudi::Property< bool > m_doSingleMultiLayerScan
Gaudi::Property< double > m_deltaCutT0Segments
Gaudi::Property< double > m_occupancyThreshold
Gaudi::Property< bool > m_doIPAngleSeeding
Gaudi::Property< double > m_roadWidth
virtual StatusCode initialize()
This class offers no functionality, but to define a standard device for the maker to transfer to the ...
TrkDriftCircleMath::Road - encodes the road given to the segment finder in station coordinates.
double chamberAngle() const
returns the angle of the line from the chamber center to the IP in local AMDB chamber coordinates
double width() const
returns the width angle of the road
double angle() const
returns the angle of the road in local coordinates
void setDeltaCutT0(double deltaCut)
void setRecoverMDT(bool doRecover)
void setRPCPullCut(double cut)
void setMdtGeometry(const ChamberGeometry *mdtGeo)
SegVec findSegments(const DCVec &dcs) const
void setDropHits(bool doDrop)
void setRemoveSingleOutliers(bool removeSingleOutliers)
void setPhiRoad(double phiRoad, double phiChamber, double sinPhiCut=0.2, bool useRoadPhi=true, bool useChamberPhi=true)
void setRatioEmptyTubesCut(double ratioEmptyTubesCut)
void setUseChamberPhi(bool useChamberPhi)
void setTGCPullCut(double cut)
void debugLevel(int debugLevel)
void setResidualCutT0(double resCut)
void setSeedCleaning(bool doCleanup)
void setUseSegmentQuality(bool useQ)
void setSortSegmentsUsingAllHits(bool doAllHitsSort)
void setChi2DropCut(double chi2)
void setFitter(std::shared_ptr< const DCSLFitter > fitter)
void setCurvedSegmentFinder(bool doCurvedSegmentFinder)
void setSingleMultiLayerScan(bool doScan)
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
std::vector< Cluster > CLVec
std::vector< Segment > SegVec
std::vector< DriftCircle > DCVec
DCStatistics::const_iterator DCStatCit
Helper struct to overload the destructors of smart pointers.