ATLAS Offline Software
Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
MuonR4::MsTrackSeeder Class Reference

Helper class to group muon sgements that may belong to a muon trajectory. More...

#include <MsTrackSeeder.h>

Inheritance diagram for MuonR4::MsTrackSeeder:
Collaboration diagram for MuonR4::MsTrackSeeder:

Classes

struct  Config
 

Public Types

enum  SeedCoords { eDetSection, eSector, ePosOnCylinder }
 Abrivation of the seed coordinates. More...
 
using SearchTree_t = Acts::KDTree< 3, const xAOD::MuonSegment *, double, std::array, 6 >
 Definition of the search tree class. More...
 
using Location = MsTrackSeed::Location
 Enum toggling whether the segment is in the endcap or barrel. More...
 

Public Member Functions

 MsTrackSeeder (const std::string &msgName, Config &&cfg)
 Standard constructor. More...
 
SearchTree_t constructTree (const xAOD::MuonSegmentContainer &segments) const
 Construct a complete search tree from a MuonSegment container. More...
 
Amg::Vector2D expressOnCylinder (const xAOD::MuonSegment &segment, const Location loc) const
 Expresses the segment on the cylinder surface. More...
 
bool withinBounds (const Amg::Vector2D &projPos, const Location loc) const
 Returns whether the expression on the cylinder is within the surface bounds. More...
 
std::unique_ptr< MsTrackSeedContainerfindTrackSeeds (const EventContext &ctx, const xAOD::MuonSegmentContainer &segments) const
 Constructs the MS track seeds from the segment container. More...
 
bool msgLvl (const MSG::Level lvl) const
 Test the output level. More...
 
MsgStream & msg () const
 The standard message stream. More...
 
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream. More...
 
void setLevel (MSG::Level lvl)
 Change the current logging level. More...
 

Private Types

using TreeRawVec_t = SearchTree_t::vector_t
 Abbrivation of the KDTree raw data vector. More...
 

Private Member Functions

void appendSegment (const xAOD::MuonSegment *segment, const Location loc, TreeRawVec_t &outContainer) const
 Append the to the raw data container. More...
 
std::unique_ptr< MsTrackSeedContainerresolveOverlaps (MsTrackSeedContainer &&unresolved) const
 Removes exact duplciates or partial subsets of the MsTrackSeeds. More...
 
void initMessaging () const
 Initialize our message level and MessageSvc. More...
 

Private Attributes

Config m_cfg {}
 
std::string m_nm
 Message source name. More...
 
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels) More...
 
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer. More...
 
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level. More...
 
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging) More...
 

Detailed Description

Helper class to group muon sgements that may belong to a muon trajectory.

The reconstructed muon segments are projected onto the surface of a cylinder crossing roughly the middle stations of the MS. They are then appended to a 3-dimensional search tree using the extrapolated coordinate on the cylnder, the cylinder surface index and the segment's associated sector number.

Definition at line 25 of file MsTrackSeeder.h.

Member Typedef Documentation

◆ Location

Enum toggling whether the segment is in the endcap or barrel.

Definition at line 48 of file MsTrackSeeder.h.

◆ SearchTree_t

using MuonR4::MsTrackSeeder::SearchTree_t = Acts::KDTree<3, const xAOD::MuonSegment*, double, std::array, 6>

Definition of the search tree class.

Definition at line 46 of file MsTrackSeeder.h.

◆ TreeRawVec_t

using MuonR4::MsTrackSeeder::TreeRawVec_t = SearchTree_t::vector_t
private

Abbrivation of the KDTree raw data vector.

Definition at line 84 of file MsTrackSeeder.h.

Member Enumeration Documentation

◆ SeedCoords

Abrivation of the seed coordinates.

Enumerator
eDetSection 

Encode the seed location (-1,1 -> endcaps, 0 -> barrel

eSector 

Sector of the associated spectrometer sector.

ePosOnCylinder 

Extrapolation position along the cylinder surface.

Definition at line 50 of file MsTrackSeeder.h.

50  {
54  eSector,
57  };

Constructor & Destructor Documentation

◆ MsTrackSeeder()

MuonR4::MsTrackSeeder::MsTrackSeeder ( const std::string &  msgName,
Config &&  cfg 
)

Standard constructor.

Parameters
msgNameName of the seeder's msgStream
cfgConfigured cylinder dimensions, cuts & selection tool

Definition at line 11 of file MsTrackSeeder.cxx.

11  :
12  AthMessaging{msgName},
13  m_cfg{std::move(cfg)}{}

Member Function Documentation

◆ appendSegment()

void MuonR4::MsTrackSeeder::appendSegment ( const xAOD::MuonSegment segment,
const Location  loc,
TreeRawVec_t outContainer 
) const
private

Append the to the raw data container.

If the projection onto the barrel cylinder / endcap discs exceeds the bounds, the segment is not added. Segments in sector 1/16 are mirrored into sector 0/17 to complete the search range

Parameters
segmentPointer to the segment to add
locSwitch whether the segment shall be projected onto barrel/endcap
outContainerRaw KDTree data vector where the segment is appended

Extend the segment's at the sector numbering discontinuity

Definition at line 48 of file MsTrackSeeder.cxx.

50  {
51 
52  const Amg::Vector2D refPoint{expressOnCylinder(*segment, loc)};
53  ATH_MSG_VERBOSE(__func__<<"() "<<__LINE__<<" - Try to add new segment: "
54  <<detailedSegment(*segment)->msSector()->identString()<<" "
55  <<Amg::toString(segment->position())<<" + "<<Amg::toString(segment->direction())
56  <<" --> "<<Amg::toString(refPoint));
57  if (!withinBounds(refPoint, loc)) {
58  return;
59  }
60  std::array<double, 3> coords{};
61  coords[eDetSection] = sign(refPoint[1]) * static_cast<int>(loc);
62  const int sector = detailedSegment(*segment)->msSector()->sector();
63  coords[eSector] = sector;
64  coords[ePosOnCylinder] = refPoint[Location::Barrel == loc];
65  outContainer.emplace_back(std::move(coords), segment);
67  if (sector == 1 || sector== 16) {
68  outContainer.emplace_back(outContainer.back()).first[eSector] = (sector == 1 ? 17 : 0);
69  }
70  }

◆ constructTree()

SearchTree_t MuonR4::MsTrackSeeder::constructTree ( const xAOD::MuonSegmentContainer segments) const

Construct a complete search tree from a MuonSegment container.

Parameters
segmentsReference to the segment container to construct.

Definition at line 71 of file MsTrackSeeder.cxx.

71  {
72  TreeRawVec_t rawData{};
73  rawData.reserve(2*segments.size());
74  for (const xAOD::MuonSegment* segment : segments){
77  }
78  ATH_MSG_VERBOSE("Create a new tree with "<<rawData.size()<<" entries. ");
79  return SearchTree_t{std::move(rawData)};
80  }

◆ expressOnCylinder()

Amg::Vector2D MuonR4::MsTrackSeeder::expressOnCylinder ( const xAOD::MuonSegment segment,
const Location  loc 
) const

Expresses the segment on the cylinder surface.

Parameters
segmentReference to the segment of consideration
locSurface location: [barrel/endcap]

Definition at line 15 of file MsTrackSeeder.cxx.

16  {
17  const Amg::Vector3D pos{segment.position()};
18  const Amg::Vector3D dir{segment.direction()};
19 
20  const Amg::Vector2D projPos{pos.perp(), pos.z()};
21  const Amg::Vector2D projDir{dir.perp(), dir.z()};
22 
23  double lambda{0.};
24  if (Location::Barrel == loc) {
25  lambda = Amg::intersect<2>(projPos, projDir, Amg::Vector2D::UnitX(),
26  m_cfg.barrelRadius).value_or(10. * Gaudi::Units::km);
27  } else {
28  lambda = Amg::intersect<2>(projPos, projDir, Amg::Vector2D::UnitY(),
29  sign(projPos[1])* m_cfg.endcapDiscZ).value_or(10. * Gaudi::Units::km);
30  }
31  return projPos + lambda * projDir;
32  }

◆ findTrackSeeds()

std::unique_ptr< MsTrackSeedContainer > MuonR4::MsTrackSeeder::findTrackSeeds ( const EventContext &  ctx,
const xAOD::MuonSegmentContainer segments 
) const

Constructs the MS track seeds from the segment container.

Parameters
ctxEventContext to access conditions / event data
segmentsRefrence to the overall event's segment container

Bad segment not suitable for track seeding or the segment coordinates are just mirrored at the overlap between sector 1 -> 16

Define the search range.

Ensure that only endcap / barrel seeds are considered. The values are integers -> add tiny margin

Move 25 cm along the projected plane

Include the neighbouring sectors

Using the cube above, let the tree search for all compatible segments

Ensure that the sector overlap and momentum vectors are compatible with a MS trajectory

No segments were combined

Calculate the seed's position

Definition at line 81 of file MsTrackSeeder.cxx.

82  {
83  SearchTree_t orderedSegs{constructTree(segments)};
84  MsTrackSeedContainer trackSeeds{};
85 
86  for (const auto& [coords, seedCandidate] : orderedSegs) {
89  const Segment* recoCandidate = detailedSegment(*seedCandidate);
90  if (coords[eSector] == 0 || coords[eSector] == 17 ||
91  !m_cfg.selector->passSeedingQuality(ctx, *recoCandidate)){
92  continue;
93  }
95  SearchTree_t::range_t selectRange{};
98  selectRange[eDetSection].shrink(coords[eDetSection] - 0.1, coords[eDetSection] + 0.1);
100  selectRange[ePosOnCylinder].shrink(coords[ePosOnCylinder] - m_cfg.seedHalfLength,
103  selectRange[eSector].shrink(coords[eSector]-1.25, coords[eSector] + 1.25);
104 
105  MsTrackSeed newSeed{static_cast<Location>(std::abs(coords[eDetSection]))};
108  orderedSegs.rangeSearchMapDiscard(selectRange, [this, &ctx, &newSeed, &recoCandidate](
109  const SearchTree_t::coordinate_t& /*coords*/,
110  const xAOD::MuonSegment* extendWithMe) {
112  const Segment* extendCandidate = detailedSegment(*extendWithMe);
113  if (m_cfg.selector->compatibleForTrack(ctx, *recoCandidate, *extendCandidate)) {
114  newSeed.addSegment(extendWithMe);
115  }
116  });
118  if (newSeed.segments().empty()) {
119  continue;
120  }
121  newSeed.addSegment(seedCandidate);
123  const double r = newSeed.location() == Location::Barrel ? m_cfg.barrelRadius : coords[ePosOnCylinder];
124  const double z = newSeed.location() == Location::Barrel ? coords[ePosOnCylinder]
125  : coords[eDetSection]* m_cfg.endcapDiscZ;
126  Amg::Vector3D pos = r * Amg::dirFromAngles(seedCandidate->position().phi(), 90. * Gaudi::Units::deg)
127  + z * Amg::Vector3D::UnitZ();
128 
129  newSeed.setPosition(std::move(pos));
130  trackSeeds.emplace_back(std::move(newSeed));
131  }
132  return resolveOverlaps(std::move(trackSeeds));
133  }

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40 {
42  m_lvl = m_imsg ?
43  static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
44  MSG::INFO;
45 }

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 164 of file AthMessaging.h.

165 {
166  MsgStream* ms = m_msg_tls.get();
167  if (!ms) {
168  if (!m_initialized.test_and_set()) initMessaging();
169  ms = new MsgStream(m_imsg,m_nm);
170  m_msg_tls.reset( ms );
171  }
172 
173  ms->setLevel (m_lvl);
174  return *ms;
175 }

◆ msg() [2/2]

MsgStream & AthMessaging::msg ( const MSG::Level  lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 179 of file AthMessaging.h.

180 { return msg() << lvl; }

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152 {
153  if (!m_initialized.test_and_set()) initMessaging();
154  if (m_lvl <= lvl) {
155  msg() << lvl;
156  return true;
157  } else {
158  return false;
159  }
160 }

◆ resolveOverlaps()

std::unique_ptr< MsTrackSeedContainer > MuonR4::MsTrackSeeder::resolveOverlaps ( MsTrackSeedContainer &&  unresolved) const
private

Removes exact duplciates or partial subsets of the MsTrackSeeds.

Parameters
unresolvedInput MsTrackSeedContainer with duplicates

Resort the seeds starting from the ones with the most segments to the lowest

Only seeds which are not subsets of others are kept

Definition at line 135 of file MsTrackSeeder.cxx.

135  {
136 
138  std::ranges::sort(unresolved, [](const MsTrackSeed& a, const MsTrackSeed&b) {
139  return a.segments().size() > b.segments().size();
140  });
141  auto outputSeeds = std::make_unique<MsTrackSeedContainer>();
142  outputSeeds->reserve(unresolved.size());
143  std::ranges::copy_if(std::move(unresolved), std::back_inserter(*outputSeeds),
144  [this, &outputSeeds](const MsTrackSeed& testMe) {
146  const bool add = std::ranges::none_of(*outputSeeds, [&testMe](const MsTrackSeed& goodSeed){
147  return testMe < goodSeed;
148  });
149  if (add) {
150  ATH_MSG_VERBOSE("Add new seed "<<std::endl<<testMe);
151  }
152  return add;
153  });
154  return outputSeeds;
155  }

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level  lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29 {
30  m_lvl = lvl;
31 }

◆ withinBounds()

bool MuonR4::MsTrackSeeder::withinBounds ( const Amg::Vector2D projPos,
const Location  loc 
) const

Returns whether the expression on the cylinder is within the surface bounds.

Parameters
projPosProjected position on the cylinder
locSurface location: [barrel/endcap]

Definition at line 33 of file MsTrackSeeder.cxx.

34  {
35  using enum Location;
36  if (loc == Barrel && std::abs(projPos[1]) > std::min(m_cfg.endcapDiscZ, m_cfg.barrelLength)) {
37  ATH_MSG_VERBOSE(__func__<<"() "<<__LINE__<<" Position "<<Amg::toString(projPos)<<
38  "exceeds cylinder boundaries ("<<m_cfg.barrelRadius<<", "
40  return false;
41  } else if (loc == Endcap && (0 > projPos[0] || projPos[0] > m_cfg.endcapDiscRadius)) {
42  ATH_MSG_VERBOSE(__func__<<"() "<<__LINE__<<" Position "<<Amg::toString(projPos)<<
43  "exceeds endcap boundaries ("<<m_cfg.endcapDiscRadius<<", "<<(sign(projPos[1])*m_cfg.endcapDiscZ)<<")");
44  return false;
45  }
46  return true;
47  }

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_cfg

Config MuonR4::MsTrackSeeder::m_cfg {}
private

Definition at line 98 of file MsTrackSeeder.h.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels)

Definition at line 132 of file AthMessaging.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.


The documentation for this class was generated from the following files:
MuonR4::MsTrackSeed::Location::Barrel
@ Barrel
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
beamspotman.r
def r
Definition: beamspotman.py:674
MuonGMR4::SpectrometerSector::sector
int sector() const
Returns the sector of the MS-sector.
Definition: SpectrometerSector.cxx:64
MuonR4::ISegmentSelectionTool::passSeedingQuality
virtual bool passSeedingQuality(const EventContext &ctx, const Segment &segment) const =0
Returns whether a segment provides enough mdt & phi measurements to use it for track finding seeding.
Trk::TrackState::Segment
@ Segment
Definition: TrackStateDefs.h:37
MuonR4::MsTrackSeeder::Config::barrelRadius
double barrelRadius
The radius of the barrel cylinder to seed.
Definition: MsTrackSeeder.h:30
MuonR4::MsTrackSeeder::withinBounds
bool withinBounds(const Amg::Vector2D &projPos, const Location loc) const
Returns whether the expression on the cylinder is within the surface bounds.
Definition: MsTrackSeeder.cxx:33
MuonR4::MsTrackSeeder::Config::barrelLength
double barrelLength
The maximum length of the barrel cylinder, if not capped by the placement of the endcap discs.
Definition: MsTrackSeeder.h:33
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
MuonR4::ISegmentSelectionTool::compatibleForTrack
virtual bool compatibleForTrack(const EventContext &ctx, const Segment &segA, const Segment &segB) const =0
Returns whether a segment passes the base selection quality in order to be picked up onto a track.
MuonR4::MsTrackSeeder::SearchTree_t
Acts::KDTree< 3, const xAOD::MuonSegment *, double, std::array, 6 > SearchTree_t
Definition of the search tree class.
Definition: MsTrackSeeder.h:46
deg
#define deg
Definition: SbPolyhedron.cxx:17
xAOD::MuonSegment_v1
Class describing a MuonSegment.
Definition: MuonSegment_v1.h:33
MuonR4::MsTrackSeed::Location::Endcap
@ Endcap
MuonR4::MsTrackSeeder::appendSegment
void appendSegment(const xAOD::MuonSegment *segment, const Location loc, TreeRawVec_t &outContainer) const
Append the to the raw data container.
Definition: MsTrackSeeder.cxx:48
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
MuonR4::MsTrackSeeder::eSector
@ eSector
Sector of the associated spectrometer sector.
Definition: MsTrackSeeder.h:54
MuonR4::MsTrackSeeder::Config::endcapDiscZ
double endcapDiscZ
Position of the endcap discs.
Definition: MsTrackSeeder.h:35
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
MuonGMR4::SpectrometerSector::identString
std::string identString() const
Returns a string encoding the chamber index & the sector of the MS sector.
Definition: SpectrometerSector.cxx:66
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
MuonR4::detailedSegment
const Segment * detailedSegment(const xAOD::MuonSegment &seg)
Helper function to navigate from the xAOD::MuonSegment to the MuonR4::Segment.
Definition: TrackingHelpers.cxx:7
MuonR4::MsTrackSeeder::m_cfg
Config m_cfg
Definition: MsTrackSeeder.h:98
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
Amg::toString
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Definition: GeoPrimitivesToStringConverter.h:40
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
MuonR4::MsTrackSeeder::constructTree
SearchTree_t constructTree(const xAOD::MuonSegmentContainer &segments) const
Construct a complete search tree from a MuonSegment container.
Definition: MsTrackSeeder.cxx:71
z
#define z
MuonR4::MsTrackSeeder::TreeRawVec_t
SearchTree_t::vector_t TreeRawVec_t
Abbrivation of the KDTree raw data vector.
Definition: MsTrackSeeder.h:84
AnalysisUtils::copy_if
Out copy_if(In first, const In &last, Out res, const Pred &p)
Definition: IFilterUtils.h:30
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
add
bool add(const std::string &hname, TKey *tobj)
Definition: fastadd.cxx:55
MuonR4::MsTrackSeeder::Location
MsTrackSeed::Location Location
Enum toggling whether the segment is in the endcap or barrel.
Definition: MsTrackSeeder.h:48
python.SystemOfUnits.km
float km
Definition: SystemOfUnits.py:110
MuonR4::Segment::msSector
const MuonGMR4::SpectrometerSector * msSector() const
Returns the associated MS sector.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonPatternEvent/MuonPatternEvent/Segment.h:39
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
beamspotman.dir
string dir
Definition: beamspotman.py:621
MuonR4::MsTrackSeeder::ePosOnCylinder
@ ePosOnCylinder
Extrapolation position along the cylinder surface.
Definition: MsTrackSeeder.h:56
MuonR4::sign
constexpr double sign(const double x)
Returns the sign of a number.
Definition: MatrixUtils.h:11
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:76
MuonR4::MsTrackSeeder::Config::endcapDiscRadius
double endcapDiscRadius
Radius of the endcap discs.
Definition: MsTrackSeeder.h:37
MuonR4::MsTrackSeeder::Config::seedHalfLength
double seedHalfLength
Maximum separation of point on the cylinder to be picked up onto a seed.
Definition: MsTrackSeeder.h:40
WriteCaloSwCorrections.cfg
cfg
Definition: WriteCaloSwCorrections.py:23
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:16
Amg::dirFromAngles
Amg::Vector3D dirFromAngles(const double phi, const double theta)
Constructs a direction vector from the azimuthal & polar angles.
Definition: GeoPrimitivesHelpers.h:299
MuonR4::MsTrackSeeder::Config::selector
const ISegmentSelectionTool * selector
Pointer to the segement selection tool which compares two segments for their compatibilitiy.
Definition: MsTrackSeeder.h:43
a
TList * a
Definition: liststreamerinfos.cxx:10
python.Constants.INFO
int INFO
Definition: Control/AthenaCommon/python/Constants.py:15
AthMessaging::m_nm
std::string m_nm
Message source name.
Definition: AthMessaging.h:129
MuonR4::MsTrackSeedContainer
std::vector< MsTrackSeed > MsTrackSeedContainer
Definition: MsTrackSeed.h:61
MuonR4::MsTrackSeeder::resolveOverlaps
std::unique_ptr< MsTrackSeedContainer > resolveOverlaps(MsTrackSeedContainer &&unresolved) const
Removes exact duplciates or partial subsets of the MsTrackSeeds.
Definition: MsTrackSeeder.cxx:135
AthMessaging::initMessaging
void initMessaging() const
Initialize our message level and MessageSvc.
Definition: AthMessaging.cxx:39
AthMessaging::m_msg_tls
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
Definition: AthMessaging.h:132
MuonR4::MsTrackSeeder::expressOnCylinder
Amg::Vector2D expressOnCylinder(const xAOD::MuonSegment &segment, const Location loc) const
Expresses the segment on the cylinder surface.
Definition: MsTrackSeeder.cxx:15
MuonR4::MsTrackSeeder::eDetSection
@ eDetSection
Encode the seed location (-1,1 -> endcaps, 0 -> barrel
Definition: MsTrackSeeder.h:52
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
NSWL1::PadTriggerAdapter::segment
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)
Definition: PadTriggerAdapter.cxx:5
python.SystemOfUnits.ms
float ms
Definition: SystemOfUnits.py:148