 |
ATLAS Offline Software
|
Go to the documentation of this file.
4 #ifndef MUONTRACKFINDINGTOOLS_MSTRACKSEEDER_H
5 #define MUONTRACKFINDINGTOOLS_MSTRACKSEEDER_H
9 #include "GaudiKernel/SystemOfUnits.h"
10 #include "Acts/Utilities/KDTree.hpp"
51 std::set<double>
fieldExtpSteps{0.,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1};
54 using SearchTree_t = Acts::KDTree<3, const xAOD::MuonSegment*, double, std::array, 6>;
97 const double projectPhi)
const;
145 std::unique_ptr<MsTrackSeedContainer>
findTrackSeeds(
const EventContext& ctx,
@ ePosOnCylinder
Extrapolation position along the cylinder surface.
@ eSector
Sector of the associated spectrometer sector.
A spectrometer sector forms the envelope of all chambers that are placed in the same MS sector & laye...
double barrelRadius
The radius of the barrel cylinder to seed.
bool withinBounds(const Amg::Vector2D &projPos, const Location loc) const
Returns whether the expression on the cylinder is within the surface bounds.
std::unique_ptr< MsTrackSeedContainer > findTrackSeeds(const EventContext &ctx, const ActsTrk::GeometryContext &gctx, const xAOD::MuonSegmentContainer &segments) const
Constructs the MS track seeds from the segment container.
double barrelLength
The maximum length of the barrel cylinder, if not capped by the placement of the endcap discs.
Eigen::Matrix< double, 2, 1 > Vector2D
static SectorProjector projectorFromSeed(const xAOD::MuonSegment &seg, const MsTrackSeed &refSeed)
Returns the Sector projector within the context of a MsTrackSeed.
Acts::KDTree< 3, const xAOD::MuonSegment *, double, std::array, 6 > SearchTree_t
Definition of the search tree class.
Class describing a MuonSegment.
double endcapDiscZ
Position of the endcap discs.
std::optional< double > calculateRadius(VecOpt_t &&pI, VecOpt_t &&pM, VecOpt_t &&pO, const Amg::Vector3D &planeNorm) const
Calculates the radius of the bending circle from three points using the sagitta.
Location
Enum defining whether the seed is made in the endcap / barrel.
SeedCoords
Abrivation of the seed coordinates.
Amg::Vector2D expressOnCylinder(const ActsTrk::GeometryContext &gctx, const xAOD::MuonSegment &segment, const Location loc, const SectorProjector proj) const
Expresses the segment on the cylinder surface.
static double projectedPhi(const int sector, const SectorProjector proj)
Returns the projected phi for a given sector and projector.
void appendSegment(const ActsTrk::GeometryContext &gctx, const xAOD::MuonSegment *segment, const Location loc, TreeRawVec_t &outContainer) const
Append the to the raw data container.
const MuonGMR4::SpectrometerSector * envelope(const xAOD::MuonSegment &segment) const
Returns the spectrometer envelope associated to the segment (Coord system where the parameter are exp...
SearchTree_t::vector_t TreeRawVec_t
Abbrivation of the KDTree raw data vector.
std::optional< Amg::Vector3D > VecOpt_t
Class to provide easy MsgStream access and capabilities.
MsTrackSeed::Location Location
Enum toggling whether the segment is in the endcap or barrel.
@ center
Project the segment onto the overlap with the previous sector.
std::set< double > fieldExtpSteps
Steps between two segments to integrate the magnetic field.
const MuonGMR4::MuonDetectorManager * detMgr
Detector manager to fetch the sector enevelope transforms.
Amg::Vector3D projectOntoSector(const ActsTrk::GeometryContext &gctx, const xAOD::MuonSegment &segment, const SectorProjector proj) const
Projects the segment's position onto the sector centre or onto the overlap point with one of the neig...
double endcapDiscRadius
Radius of the endcap discs.
MsTrackSeeder::SearchTree_t SearchTree_t
double seedHalfLength
Maximum separation of point on the cylinder to be picked up onto a seed.
Helper class to group muon sgements that may belong to a muon trajectory.
double estimateQtimesP(const ActsTrk::GeometryContext &gctx, const AtlasFieldCacheCondObj &magField, const MsTrackSeed &seed) const
Estimate the q /p of the seed candidate from the contained segments.
Eigen::Matrix< double, 3, 1 > Vector3D
This header ties the generic definitions in this package.
const ISegmentSelectionTool * selector
Pointer to the segement selection tool which compares two segments for their compatibilitiy.
@ rightOverlap
Project the segment onto the sector centre.
std::vector< MsTrackSeed > MsTrackSeedContainer
SectorProjector
Enumeration to select the sector projection.
std::unique_ptr< MsTrackSeedContainer > resolveOverlaps(MsTrackSeedContainer &&unresolved) const
Removes exact duplciates or partial subsets of the MsTrackSeeds.
SearchTree_t constructTree(const ActsTrk::GeometryContext &gctx, const xAOD::MuonSegmentContainer &segments) const
Construct a complete search tree from a MuonSegment container.
@ eDetSection
Encode the seed location (-1,1 -> endcaps, 0 -> barrel
MsTrackSeeder(const std::string &msgName, Config &&cfg)
Standard constructor.
Amg::Vector3D projectOntoPhiPlane(const ActsTrk::GeometryContext &gctx, const xAOD::MuonSegment &segment, const double projectPhi) const