ATLAS Offline Software
TrackingHelpers.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
7 
8 namespace{
10  using PrdLinkVec_t = std::vector<PrdLink_t>;
11 }
12 
13 namespace MuonR4{
16  static const SG::ConstAccessor<SegLink_t> acc{"parentSegment"};
17  if (acc.isAvailable(seg)){
18  const SegLink_t& link{acc(seg)};
19  if (link.isValid()){
20  return *link;
21  }
22  }
23  return nullptr;
24  }
25  std::vector<const xAOD::UncalibratedMeasurement*> collectMeasurements(const Segment& seg,
26  bool skipOutlier) {
27  std::vector<const xAOD::UncalibratedMeasurement*> out{};
28  out.reserve(seg.measurements().size()*2);
29  for (const auto& meas : seg.measurements()){
31  if (skipOutlier && meas->fitState() != CalibratedSpacePoint::State::Valid) {
32  continue;
33  }
34  // Remove the external constraints
35  const SpacePoint* sp = meas->spacePoint();
36  if (!sp) {
37  continue;
38  }
39  out.emplace_back(sp->primaryMeasurement());
40  if (sp->secondaryMeasurement()) {
41  out.emplace_back(sp->secondaryMeasurement());
42  }
43  }
44  return out;
45  }
46  std::vector<const xAOD::UncalibratedMeasurement*> collectMeasurements(const xAOD::MuonSegment& segment,
47  bool skipOutlier) {
48  static const SG::ConstAccessor<PrdLinkVec_t> acc_prdLinks{"prdLinks"};
49  static const SG::ConstAccessor<std::vector<char>> acc_prdState{"prdState"};
50  std::vector<const xAOD::UncalibratedMeasurement*> out{};
51  const PrdLinkVec_t& links{acc_prdLinks(segment)};
52  out.reserve(links.size());
53  for (std::size_t l = 0 ; l < links.size(); ++l) {
54  const PrdLink_t& link{links[l]};
55  if (!skipOutlier ||
56  acc_prdState(segment)[l] == Acts::toUnderlying(CalibratedSpacePoint::State::Valid)) {
57  out.push_back(*link);
58 
59  }
60  }
61  return out;
62  }
63 }
MuonR4::collectMeasurements
std::vector< const xAOD::UncalibratedMeasurement * > collectMeasurements(const Segment &seg, bool skipOutlier=true)
Helper function to extract the measurements from the segment.
Definition: TrackingHelpers.cxx:25
MuonR4::CalibratedSpacePoint::State::Valid
@ Valid
MuonR4::PrdLink_t
ElementLink< PrdCont_t > PrdLink_t
Abrivation to call the link to an element inside an uncalibrated measurement container.
Definition: xAODSegmentCnvAlg.cxx:24
MuonR4::Segment
Placeholder for what will later be the muon segment EDM representation.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonPatternEvent/MuonPatternEvent/Segment.h:19
MuonR4::Segment::measurements
const MeasVec & measurements() const
Returns the associated measurements.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonPatternEvent/MuonPatternEvent/Segment.h:49
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:70
xAOD::MuonSegment_v1
Class describing a MuonSegment.
Definition: MuonSegment_v1.h:33
MuonR4::SpacePoint::secondaryMeasurement
const xAOD::UncalibratedMeasurement * secondaryMeasurement() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:78
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:157
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:55
MuonR4::detailedSegment
const Segment * detailedSegment(const xAOD::MuonSegment &seg)
Helper function to navigate from the xAOD::MuonSegment to the MuonR4::Segment.
Definition: TrackingHelpers.cxx:14
MuonR4::SpacePoint::primaryMeasurement
const xAOD::UncalibratedMeasurement * primaryMeasurement() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:75
DMTest::links
links
Definition: CLinks_v1.cxx:22
MuonPatternContainer.h
UncalibratedMeasurementContainer.h
MuonR4::PrdLinkVec_t
std::vector< PrdLink_t > PrdLinkVec_t
Abrivation of a collection of Prd links.
Definition: xAODSegmentCnvAlg.cxx:26
AthenaPoolTestRead.acc
acc
Definition: AthenaPoolTestRead.py:16
MuonR4::SpacePoint
The muon space point is the combination of two uncalibrated measurements one of them measures the eta...
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePoint.h:24
TrackingHelpers.h
MuonR4
This header ties the generic definitions in this package.
Definition: HoughEventData.h:16