![]() |
ATLAS Offline Software
|
Helper class to group muon sgements that may belong to a muon trajectory. More...
#include <MsTrackSeeder.h>
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< MsTrackSeedContainer > | findTrackSeeds (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< MsTrackSeedContainer > | resolveOverlaps (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... | |
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.
Enum toggling whether the segment is in the endcap or barrel.
Definition at line 48 of file MsTrackSeeder.h.
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.
|
private |
Abbrivation of the KDTree raw data vector.
Definition at line 84 of file MsTrackSeeder.h.
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.
Standard constructor.
msgName | Name of the seeder's msgStream |
cfg | Configured cylinder dimensions, cuts & selection tool |
Definition at line 11 of file MsTrackSeeder.cxx.
|
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
segment | Pointer to the segment to add |
loc | Switch whether the segment shall be projected onto barrel/endcap |
outContainer | Raw 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.
SearchTree_t MuonR4::MsTrackSeeder::constructTree | ( | const xAOD::MuonSegmentContainer & | segments | ) | const |
Construct a complete search tree from a MuonSegment container.
segments | Reference to the segment container to construct. |
Definition at line 71 of file MsTrackSeeder.cxx.
Amg::Vector2D MuonR4::MsTrackSeeder::expressOnCylinder | ( | const xAOD::MuonSegment & | segment, |
const Location | loc | ||
) | const |
Expresses the segment on the cylinder surface.
segment | Reference to the segment of consideration |
loc | Surface location: [barrel/endcap] |
Definition at line 15 of file MsTrackSeeder.cxx.
std::unique_ptr< MsTrackSeedContainer > MuonR4::MsTrackSeeder::findTrackSeeds | ( | const EventContext & | ctx, |
const xAOD::MuonSegmentContainer & | segments | ||
) | const |
Constructs the MS track seeds from the segment container.
ctx | EventContext to access conditions / event data |
segments | Refrence 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.
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
|
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.
|
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.
|
inlineinherited |
Test the output level.
lvl | The message level to test against |
true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
|
private |
Removes exact duplciates or partial subsets of the MsTrackSeeds.
unresolved | Input 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.
|
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.
bool MuonR4::MsTrackSeeder::withinBounds | ( | const Amg::Vector2D & | projPos, |
const Location | loc | ||
) | const |
Returns whether the expression on the cylinder is within the surface bounds.
projPos | Projected position on the cylinder |
loc | Surface location: [barrel/endcap] |
Definition at line 33 of file MsTrackSeeder.cxx.
|
mutableprivateinherited |
Messaging initialized (initMessaging)
Definition at line 141 of file AthMessaging.h.
|
private |
Definition at line 98 of file MsTrackSeeder.h.
|
mutableprivateinherited |
MessageSvc pointer.
Definition at line 135 of file AthMessaging.h.
|
mutableprivateinherited |
Current logging level.
Definition at line 138 of file AthMessaging.h.
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
|
privateinherited |
Message source name.
Definition at line 129 of file AthMessaging.h.