 |
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef MUONR4_MUONPATTERNRECOGNITIONALGS_NSWSEGMENTFINDERALG_H
6 #define MUONR4_MUONPATTERNRECOGNITIONALGS_NSWSEGMENTFINDERALG_H
36 using AthReentrantAlgorithm::AthReentrantAlgorithm;
66 unsigned int nExtSeeds,
67 unsigned int nSegments);
92 if(
eta != o.eta)
return eta < o.eta;
93 if(
side != o.side)
return side < o.side;
113 using HitLaySpan_t = std::vector<std::reference_wrapper<const HitVec>>;
117 using UsedHitSpan_t = std::vector<std::reference_wrapper<std::vector<unsigned int>>>;
188 unsigned int increase,
189 bool markNeighborHits)
const;
208 std::pair<std::vector<std::unique_ptr<SegmentSeed>>, std::vector<std::unique_ptr<Segment>>>
211 const EventContext& ctx)
const;
229 ToolHandle<MuonValR4::IPatternVisualizationTool>
m_visionTool{
this,
"VisualizationTool",
""};
232 ToolHandle<ISpacePointCalibrator>
m_calibTool{
this,
"Calibrator",
"" };
253 UnsignedIntegerProperty
m_maxUsed{
this,
"maxHitIsUsed", 6};
std::unique_ptr< SeedStatistics > m_seedCounter ATLAS_THREAD_SAFE
BooleanProperty m_markHitsFromSeed
HitWindow
To fastly check whether a hit is roughly compatible with a muon trajectory a narrow corridor is opene...
std::array< const SpacePoint *, 4 > InitialSeed_t
Abbrivation of the
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
std::vector< std::reference_wrapper< const HitVec > > HitLaySpan_t
Abbrivation of the space comprising multiple hit vectors without copy.
void printTableSeedStats(MsgStream &msg) const
A spectrometer sector forms the envelope of all chambers that are placed in the same MS sector & laye...
std::vector< HitVec > HitLayVec
StripOrient
Enumeration to classify the orientation of a NSW strip
SG::ReadHandleKey< ActsTrk::GeometryContext > m_geoCtxKey
@ tooHigh
The hit is inside the defined window and hence an initial candidate.
DoubleProperty m_maxClustersInLayer
unsigned int nExtSeeds
number of successfully extended seeds
std::unique_ptr< SegmentFit::SegmentLineFitter > m_lineFitter
unsigned int nSegments
number of segments constucted
std::unique_ptr< SegmentSeed > buildSegmentSeed(const InitialSeed_t &initialSeed, const AmgSymMatrix(2)&bMatrix, const HoughMaximum &max, const HitLaySpan_t &extensionLayers, const UsedHitSpan_t &usedHits) const
Build the final seed from the initial seed hits and then attempt to append hits from the complementar...
Seed statistics per sector to be printed in the end.
virtual StatusCode execute(const EventContext &ctx) const override
@ Unknown
Combined 2D space point (sTGC wire + strip / sTgc pad)
DoubleProperty m_windowTheta
SeedStatistic_T m_seedStat
Property holding a SG store/key/clid from which a ReadHandle is made.
UnsignedIntegerProperty m_maxUsed
void constructPrelimnarySeeds(const Amg::Vector3D &beamSpot, const HitLaySpan_t &combinatoricLayers, const UsedHitSpan_t &usedHits, InitialSeedVec_t &outVec) const
Construct a set of prelimnary seeds from the selected combinatoric layers.
std::vector< const SpacePoint * > HitVec
SG::WriteHandleKey< SegmentContainer > m_writeSegmentKey
ToolHandle< MuonValR4::IPatternVisualizationTool > m_visionTool
Pattern visualization tool.
#define AmgSymMatrix(dim)
void markHitsAsUsed(const HitVec &spacePoints, const HitLayVec &allSortHits, UsedHitMarker_t &usedHitMarker, unsigned int increase, bool markNeighborHits) const
Hits that are used in a good seed/segment built should be flagged as used and not contribute to other...
An algorithm that can be simultaneously executed in multiple threads.
std::map< SectorField, SeedField > SeedStatistic_T
@ inside
The hit is below the predefined corridor.
DoubleProperty m_minClusSize
SG::ReadHandleKey< EtaHoughMaxContainer > m_etaKey
Property holding a SG store/key/clid from which a WriteHandle is made.
DoubleProperty m_maxdYWindow
bool operator<(SectorField const &o) const noexcept
virtual StatusCode finalize() override
ToolHandle< ISpacePointCalibrator > m_calibTool
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual ~NswSegmentFinderAlg()=default
DoubleProperty m_maxInvalidClusters
std::pair< std::vector< std::unique_ptr< SegmentSeed > >, std::vector< std::unique_ptr< Segment > > > findSegmentsFromMaximum(const HoughMaximum &max, const ActsTrk::GeometryContext &gctx, const EventContext &ctx) const
Find seed and segment from an eta hough maximum.
StripOrient classifyStrip(const SpacePoint &spacePoint) const
Determines the orientation of the strip space point.
std::vector< std::reference_wrapper< std::vector< unsigned int > >> UsedHitSpan_t
Abbrivation of the container to pass a subset of markers wtihout copy.
@ X
Stereo strips with negative angle.
The muon space point is the combination of two uncalibrated measurements one of them measures the eta...
SG::WriteHandleKey< SegmentSeedContainer > m_writeSegmentSeedKey
Property holding a SG store/key/clid from which a WriteHandle is made.
HitVec extendHits(const Amg::Vector3D &startPos, const Amg::Vector3D &direction, const HitLaySpan_t &extensionLayers, const UsedHitSpan_t &usedHits) const
Extend the seed with the hits from the other layers.
sector's field to dump the seed statistics
DoubleProperty m_minPullThreshold
void addToStat(const MuonGMR4::SpectrometerSector *msSector, unsigned int nSeeds, unsigned int nExtSeeds, unsigned int nSegments)
BooleanProperty m_dumpSeedStatistics
Eigen::Matrix< double, 3, 1 > Vector3D
HitWindow hitFromIPCorridor(const SpacePoint &testHit, const Amg::Vector3D &beamSpotPos, const Amg::Vector3D &dirEstUp, const Amg::Vector3D &dirEstDn) const
The hit is above the predefined corridor.
This header ties the generic definitions in this package.
std::vector< InitialSeed_t > InitialSeedVec_t
Vector of initial seeds.
DoubleProperty m_minSeedHits
Data class to represent an eta maximum in hough space.
Representation of a segment seed (a fully processed hough maximum) produced by the hough transform.
std::unique_ptr< Segment > fitSegmentSeed(const EventContext &ctx, const ActsTrk::GeometryContext &gctx, const SegmentSeed *patternSeed) const
Fit the segment seed.
@ V
Stereo strips with positive angle.
AthConfigFlags beamSpot(AthConfigFlags flags, str instanceName, str recoMode)
SpacePointPerLayerSplitter::HitVec HitVec
SpacePointPerLayerSplitter::HitLayVec HitLayVec
ChIndex
enum to classify the different chamber layers in the muon spectrometer
virtual StatusCode initialize() override
unsigned int nSeeds
number of total seeds constructed
std::vector< std::vector< unsigned int > > UsedHitMarker_t
Abbrivation of the container book keeping whether a hit is used or not.
@ C
Single phi measurements.
SpacePointPerLayerSplitter::HitVec HitVec
UsedHitMarker_t emptyBookKeeper(const HitLayVec &sortedSp) const
Constructs an empty HitMarker from the split space points.