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