5#ifndef DCMATH_SEGMENTFINDER_H
6#define DCMATH_SEGMENTFINDER_H
48 bool dropHits(
Segment& segment,
bool& hasDroppedHit,
unsigned int& dropDepth)
const;
60 void setPhiRoad(
double phiRoad,
double phiChamber,
double sinPhiCut = 0.2,
bool useRoadPhi =
true,
bool useChamberPhi =
true);
149 if (prodRoad < 0.) prodRoad *= -1.;
154 if (prodChamber < 0.) prodChamber *= -1.;
Define macros for attributes used to control the static checker.
This class represents a drift time measurement.
Implementation of 2 dimensional vector class.
void setDeltaCutT0(double deltaCut)
void fullScan(const DCVec &seeds, const DCVec &dcs, const CLVec &cls, ResolvedCollection< Segment, IsSubsetSegment< SortDcsByY > > &segments) const
void printSettings() const
print settings
SegmentFinder(const SegmentFinder &)=delete
copy c'tor deleted to prevent ownership/leak issues
void setMaxDropDepth(int max)
std::shared_ptr< const DCSLFitter > m_fitter
void setRecoverMDT(bool doRecover)
SegmentFinder & operator=(const SegmentFinder &)=delete
assignment deleted to prevent ownership/leak issues
void associateClusters(SegVec &segs, const CLVec &cls) const
void setRPCPullCut(double cut)
void setMdtGeometry(const ChamberGeometry *mdtGeo)
bool dropHits(Segment &segment, bool &hasDroppedHit, unsigned int &dropDepth) const
bool m_removeSingleOutliers
SegVec findSegments(const DCVec &dcs) const
static DCVec selectSeeds(const DCVec &dcs, int maxSerie)
void setDropHits(bool doDrop)
DCSLHitSelector m_hitSelector
void setRemoveSingleOutliers(bool removeSingleOutliers)
void handleSeedPair(const DriftCircle &seed1, const DriftCircle &seeds2, const DCVec &dcs, const CLVec &cls, MatchDCWithLine &matchWithLine, ResolvedCollection< Segment, IsSubsetSegment< SortDcsByY > > &segments) const
bool m_singleMultiLayerScan
void setPhiRoad(double phiRoad, double phiChamber, double sinPhiCut=0.2, bool useRoadPhi=true, bool useChamberPhi=true)
void setDeltaCut(double cut)
unsigned int m_dropDepthMax
void setRatioEmptyTubesCut(double ratioEmptyTubesCut)
void setUseChamberPhi(bool useChamberPhi)
void setTGCPullCut(double cut)
double m_ratioEmptyTubesCut
double tubeRadius() const
DCVec emptyNeighbours(const DCVec &dcs) const
static std::pair< DCVec, DCVec > splitInMulitlayers(const DCVec &dcs)
void debugLevel(int debugLevel)
void setResidualCutT0(double resCut)
bool goodHitRatio(Segment &seg) const
void handleHits(const DCVec &dcs, const CLVec &clusters, ResolvedCollection< Segment, IsSubsetSegment< SortDcsByY > > &segments) const
static void updateMatch(Segment &seg, MatchDCWithLine &matchWithLine)
void setSeedCleaning(bool doCleanup)
void updateDirections()
update the cached values for the phi road and chamber road
bool directionCheck(const LocVec2D &LocVec2D) const
void setUseSegmentQuality(bool useQ)
void twoMultiLayerScan(const DCVec &seeds_ml1, const DCVec &seeds_ml2, const DCVec &dcs, const CLVec &cls, ResolvedCollection< Segment, IsSubsetSegment< SortDcsByY > > &segments) const
void setSortSegmentsUsingAllHits(bool doAllHitsSort)
unsigned int emptyCrossedTubes(const Line &line, const DCVec &closeEmptyTubes) const
MatchCrossedTubes m_matchCrossed
const ChamberGeometry * m_mdtGeometry
std::vector< int > m_dropDepthAcceptCounts ATLAS_THREAD_SAFE
SegVec cleanSegments(const SegVec &segments) const
SegVec refitSegments(const SegVec &segs) const
static DCVec removeDCOnSegments(const DCVec &dcs, const SegVec &segs)
void setChi2DropCut(double chi2)
bool m_doCurvedSegmentFinder
void setFitter(std::shared_ptr< const DCSLFitter > fitter)
void setCurvedSegmentFinder(bool doCurvedSegmentFinder)
void crossedTubes(Segment &seg) const
void setSingleMultiLayerScan(bool doScan)
double chi2(TH1 *h0, TH1 *h1)
Function object to check whether two Segments are sub/super sets or different.
std::vector< Cluster > CLVec
std::vector< Segment > SegVec
std::vector< DriftCircle > DCVec