ATLAS Offline Software
Loading...
Searching...
No Matches
MdtMathSegmentFinder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef DCMATHSEGMENTMAKER_MDTMATHSEGMENTFINDER_H
6#define DCMATHSEGMENTMAKER_MDTMATHSEGMENTFINDER_H
7
9#include "GaudiKernel/ServiceHandle.h"
10#include "GaudiKernel/ToolHandle.h"
14
15namespace Muon {
16 class MdtMathSegmentFinder : virtual public IMdtSegmentFinder::IMdtSegmentFinder, public AthAlgTool {
17 public:
18 MdtMathSegmentFinder(const std::string& t, const std::string& n, const IInterface* p);
19
21
22 virtual StatusCode initialize();
23
28 const TrkDriftCircleMath::ChamberGeometry* multiGeo) const;
29
30 protected:
31 ToolHandle<IDCSLFitProvider> m_dcslFitProvider{
32 this,
33 "DCFitProvider",
34 ""
35 };
36
38 this,
39 "MuonIdHelperSvc",
40 "Muon::MuonIdHelperSvc/MuonIdHelperSvc"
41 };
42
43 Gaudi::Property<int> m_finderDebugLevel{this, "FinderDebugLevel", 0, "switch on debug output of finder"};
44 Gaudi::Property<bool> m_doDrop{this, "DoDrop", true, "Recursive outlier removal"};
45 Gaudi::Property<bool> m_useChamberTheta{this, "UseChamberTheta", true, "Always look for pointing segments"};
46
47 Gaudi::Property<bool> m_enableSeedCleaning {this, "EnableSeedCleaning", false, "only use dc witout neighbours as seeds"};
48 Gaudi::Property<double> m_occupancyThreshold{this, "OccupancyThreshold", 0.3, "occupancy threshold before enabling seed cleaning"};
49 Gaudi::Property<double> m_occupancyCutOff {this, "OccupancyCutoff", 0.8, "above the occupancy threshold no segment finding"};
50 Gaudi::Property<double> m_roadWidth {this, "AssociationRoadWidth", 1.5, "Road width used during hit association with seed lines"};
51 Gaudi::Property<double> m_chi2PerDofDrop {this, "Chi2PerDofDropping", 10., "Chi2 cut for recursive outlier removal"};
52 Gaudi::Property<double> m_ratioEmptyTubesCut{this, "RatioEmptyTubeCut", 1.1, "holes/hits cut - holes are all non-hits along the line"};
53
54 Gaudi::Property<double> m_rpcAssociationPullCut{this, "RPCAssocationPullcut", 5., "Association cut for RPCs"};
55 Gaudi::Property<double> m_tgcAssociationPullCut{this, "TGCAssocationPullcut", 5., "Association cut for TGCs"};
56 Gaudi::Property<double> m_mdtAssociationPullCut{this, "MDTAssocationPullcut", 5., "Association cut for MDTs"};
57
58 Gaudi::Property<bool> m_doAllHitSort{this, "SortSegmentWithAllHits", true, "Including triggers in segment selection"};
59
60 Gaudi::Property<bool> m_doRoadAngleSeeding{this, "DoRoadSeeding", true, "use angle of road to seed segment search"};
61
62
63 Gaudi::Property<bool> m_doIPAngleSeeding{this, "DoIPSeeding", true, "use angle of IP to seed segment search"};
64 Gaudi::Property<double> m_tightRoadCut{this, "TightRoadCut", 0.1,
65 "tight cut on angle with prediction, used for very busy chambers"};
66
67 Gaudi::Property<bool> m_doSingleMultiLayerScan{this, "DoSingleMultiLayerScan", true, "Look for segments in one multi layer"};
68
69 Gaudi::Property<bool> m_recoverMdtOutliers{this, "RecoverMdtOutliers", true, "Recover MDT outliers after fit"};
70
71 Gaudi::Property<bool> m_removeSingleOutliers{this, "RemoveSingleMdtOutliers", true, "Remove single MDT outliers"};
72 Gaudi::Property<bool> m_doCurvedSegmentFinder{this, "DoCurvedSegmentFinder", false, "Use the curved segment finding routine"};
73 Gaudi::Property<double> m_deltaCutT0Segments{this, "DeltaCutT0Segments", 5., "Delta cut for segments with T0 fit"};
74 Gaudi::Property<double> m_residualCutT0Segments {this, "ResidualCutT0Segments", 1., "Residual cut for segments with T0 fit"};
75 Gaudi::Property<bool> m_useSegmentQuality{this, "UseSegmentQuality", false, "Use segment quality in hit dropping"};
76
77 Gaudi::Property<unsigned int> m_maxHitsPerFullSearch{this, "MaxHitsPerFullSearch", 100,
78 "maximum number of hits, above will use faster search mode"};
79 };
80
81} // namespace Muon
82
83#endif
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
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
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.
Definition Road.h:15
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
std::vector< DriftCircle > DCVec