ATLAS Offline Software
EtaHoughTransformAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "EtaHoughTransformAlg.h"
6 
9 
13 
14 namespace MuonR4{
16  ISvcLocator* pSvcLocator)
17  : AthReentrantAlgorithm(name, pSvcLocator) {}
18 
22  ATH_CHECK(m_maxima.initialize());
23  ATH_CHECK(m_visionTool.retrieve(EnableTool{!m_visionTool.empty()}));
24  return StatusCode::SUCCESS;
25 }
26 
27 template <class ContainerType>
30  const ContainerType*& contToPush) const {
31  contToPush = nullptr;
32  if (key.empty()) {
33  ATH_MSG_VERBOSE("No key has been parsed for object "
34  << typeid(ContainerType).name());
35  return StatusCode::SUCCESS;
36  }
37  SG::ReadHandle readHandle{key, ctx};
38  ATH_CHECK(readHandle.isPresent());
39  contToPush = readHandle.cptr();
40  return StatusCode::SUCCESS;
41 }
42 
43 StatusCode EtaHoughTransformAlg::execute(const EventContext& ctx) const {
44 
46  const SpacePointContainer* spacePoints{nullptr};
47  ATH_CHECK(retrieveContainer(ctx, m_spacePointKey, spacePoints));
48 
49  // book the output container
51  ATH_CHECK(writeMaxima.record(std::make_unique<EtaHoughMaxContainer>()));
52 
53  const ActsGeometryContext* gctx{nullptr};
55 
57 
59  preProcess(ctx, *gctx, *spacePoints, data);
60 
64  for (auto& [station, stationHoughBuckets] : data.houghSetups) {
65  // reset the list of maxima
66  for (auto& bucket : stationHoughBuckets) {
67  processBucket(ctx, data, bucket);
68  }
69  for (HoughMaximum& max : data.maxima) {
70  writeMaxima->push_back(std::make_unique<HoughMaximum>(std::move(max)));
71  }
72  data.maxima.clear();
73  }
74  std::stable_sort(writeMaxima->begin(), writeMaxima->end(),
75  [](const HoughMaximum* a, const HoughMaximum* b){
76  return (*a->parentBucket()) < (*b->parentBucket());
77  });
78  return StatusCode::SUCCESS;
79 }
80 void EtaHoughTransformAlg::preProcess(const EventContext& ctx,
81  const ActsGeometryContext& gctx,
82  const SpacePointContainer& spacePoints,
83  HoughEventData& data) const {
84 
85  ATH_MSG_DEBUG("Load " << spacePoints.size() << " space point buckets");
86  for (const SpacePointBucket* bucket : spacePoints) {
87  if (m_visionTool.isEnabled()) {
88  m_visionTool->visualizeBucket(ctx, *bucket, "bucket");
89  }
90  std::vector<HoughSetupForBucket>& buckets = data.houghSetups[bucket->front()->msSector()];
91  HoughSetupForBucket& hs{buckets.emplace_back(bucket)};
92  const Amg::Transform3D globToLoc{hs.bucket->msSector()->globalToLocalTrans(gctx)};
93  Amg::Vector3D leftSide = globToLoc.translation() - (hs.bucket->coveredMin() * Amg::Vector3D::UnitY());
94  Amg::Vector3D rightSide = globToLoc.translation() - (hs.bucket->coveredMax() * Amg::Vector3D::UnitY());
95 
96  // get the average z of our hits and use it to correct our angle estimate
97  double zmin{1.e9}, zmax{-1.e9};
98  for (const std::shared_ptr<MuonR4::SpacePoint> & sp : *bucket) {
99  zmin = std::min(zmin, sp->positionInChamber().z());
100  zmax = std::max(zmax, sp->positionInChamber().z());
101  }
102  const double z = 0.5*(zmin + zmax);
103 
104  // estimate the angle, adding extra tolerance based on our target resolution
105  const double tanThetaLeft = (leftSide.y() - m_targetResoIntercept) / (leftSide.z() - z) - m_targetResoTanTheta;
106  const double tanThetaRight = (rightSide.y() + m_targetResoIntercept) / (rightSide.z() - z) + m_targetResoTanTheta;
107  hs.searchWindowTanAngle = {tanThetaLeft, tanThetaRight};
108  double ymin{1e9}, ymax{-1e9};
109 
112  for (const std::shared_ptr<MuonR4::SpacePoint> & hit : *bucket){
113  // two estimates: For the two extrema of tan(theta) resulting from the guesstimate
114  double y0l = hit->positionInChamber().y() - hit->positionInChamber().z() * tanThetaLeft;
115  double y0r = hit->positionInChamber().y() - hit->positionInChamber().z() * tanThetaRight;
116  // pick the widest envelope
119  }
120  hs.searchWindowIntercept = {ymin, ymax};
121  }
122 }
124  switch (hit->type()){
126  const auto* dc = static_cast<const xAOD::MdtDriftCircle*>(hit->primaryMeasurement());
128  break;
129  }
132  return hit->measuresEta();
133  break;
134  default:
135  break;
136  }
137  return false;
138 }
139 
141  HoughPlaneConfig cfg;
142  cfg.nBinsX = m_nBinsTanTheta;
143  cfg.nBinsY = m_nBinsIntercept;
144  ActsPeakFinderForMuonCfg peakFinderCfg;
145  peakFinderCfg.fractionCutoff = m_peakFractionCutOff;
146  peakFinderCfg.threshold = m_peakThreshold;
147  peakFinderCfg.minSpacingBetweenPeaks = {m_minMaxDistTheta, m_minMaxDistIntercept};
148  data.houghPlane = std::make_unique<HoughPlane>(cfg);
149  data.peakFinder = std::make_unique<ActsPeakFinderForMuon>(peakFinderCfg);
150 }
151 
152 void EtaHoughTransformAlg::processBucket(const EventContext& ctx,
154  HoughSetupForBucket& bucket) const {
156 
157  double chamberCenter = 0.5 * (bucket.searchWindowIntercept.first +
158  bucket.searchWindowIntercept.second);
159  // build a symmetric window around the (geometric) chamber center so that
160  // the bin width is equivalent to our target resolution
161  double searchStart = chamberCenter - 0.5 * data.houghPlane->nBinsY() * m_targetResoIntercept;
162  double searchEnd = chamberCenter + 0.5 * data.houghPlane->nBinsY() * m_targetResoIntercept;
163  // Protection for very wide buckets - if the search space does not cover all
164  // of the bucket, widen the bin size so that we cover everything
165  searchStart = std::min(searchStart, bucket.searchWindowIntercept.first -
167  searchEnd = std::max(searchEnd, bucket.searchWindowIntercept.second +
169  // also treat tan(theta)
170  double tanThetaMean = 0.5 * (bucket.searchWindowTanAngle.first +
171  bucket.searchWindowTanAngle.second);
172  double searchStartTanTheta = tanThetaMean - 0.5 * data.houghPlane->nBinsX() * m_targetResoTanTheta;
173  double searchEndTanTheta = tanThetaMean + 0.5 * data.houghPlane->nBinsX() * m_targetResoTanTheta;
174  searchStartTanTheta = std::min(searchStartTanTheta, bucket.searchWindowTanAngle.first -
176  searchEndTanTheta = std::max(searchEndTanTheta, bucket.searchWindowTanAngle.second +
178 
179  data.currAxisRanges = Acts::HoughTransformUtils::HoughAxisRanges{
180  searchStartTanTheta, searchEndTanTheta, searchStart, searchEnd};
181 
182  data.houghPlane->reset();
183  for (const SpacePointBucket::value_type& hit : *(bucket.bucket)) {
184  fillFromSpacePoint(data, hit.get());
185  }
186  auto maxima = data.peakFinder->findPeaks(*(data.houghPlane), data.currAxisRanges);
187  if (m_visionTool.isEnabled()) {
188  m_visionTool->visualizeAccumulator(ctx, *data.houghPlane, data.currAxisRanges, maxima,
189  "#eta Hough accumulator");
190  }
191  if (maxima.empty()) {
192  ATH_MSG_DEBUG("Station "<<bucket.bucket->msSector()->identString()
193  <<":\n Mean tanTheta was "<<tanThetaMean
194  << " and my intercept "<<chamberCenter
195  <<", with hits in the bucket in "<< bucket.bucket->coveredMin()
196  <<" - "<<bucket.bucket->coveredMax()
197  <<". The bucket found a search range of ("
198  <<bucket.searchWindowTanAngle.first<<" - "
199  <<bucket.searchWindowTanAngle.second<<") and ("
200  <<bucket.searchWindowIntercept.first<<" - "
201  <<bucket.searchWindowIntercept.second
202  <<") , and my final search range is ["
203  <<searchStartTanTheta<<" - "<<searchEndTanTheta
204  <<"] and ["<<searchStart<<" - "<<searchEnd
205  <<"] with "<<m_nBinsTanTheta<<" and "
206  <<m_nBinsIntercept<<" bins.");
207  return;
208  }
209  for (const auto& max : maxima) {
211  std::vector<HoughHitType> hitList;
212  hitList.reserve(max.hitIdentifiers.size());
213  unsigned int nPrec{0};
214  for (const HoughHitType& hit : max.hitIdentifiers) {
215  nPrec += isPrecisionHit(hit);
216  hitList.push_back(hit);
217  }
218  if (nPrec < m_nPrecHitCut) {
219  ATH_MSG_VERBOSE("The maximum did not pass the precision hit cut");
220  continue;
221  }
222  size_t nHits = hitList.size();
223  extendWithPhiHits(hitList, bucket);
224  sortByLayer(hitList);
225  const HoughMaximum& houghMax{data.maxima.emplace_back(max.x, max.y, nHits, std::move(hitList), bucket.bucket)};
226  if (m_visionTool.isEnabled()) {
227  const SegmentSeed seed{houghMax};
228  m_visionTool->visualizeSeed(ctx, seed, "#eta-HoughSeed");
229  }
230  }
231 }
233 
234  using namespace std::placeholders;
235  double w = 1.0;
236  // downweight RPC measurements in the barrel relative to MDT
238  w = 0.5;
239  }
241  data.houghPlane->fill<HoughHitType>(SP, data.currAxisRanges, HoughHelpers::Eta::houghParamMdtLeft,
242  std::bind(HoughHelpers::Eta::houghWidthMdt, _1, _2, m_targetResoIntercept), SP, 0, w);
243  data.houghPlane->fill<HoughHitType>(SP, data.currAxisRanges, HoughHelpers::Eta::houghParamMdtRight,
244  std::bind(HoughHelpers::Eta::houghWidthMdt, _1, _2, m_targetResoIntercept), SP, 0, w);
245  } else {
246  if (SP->measuresEta()) {
247  data.houghPlane->fill<HoughHitType>(SP, data.currAxisRanges, HoughHelpers::Eta::houghParamStrip,
248  std::bind(HoughHelpers::Eta::houghWidthStrip, _1, _2, m_targetResoIntercept), SP, 0, w * (
249  m_downWeightMultiplePrd ? 1.0 / SP->nEtaInstanceCounts() : 1.));
250  }
251  }
252 }
253 void EtaHoughTransformAlg::extendWithPhiHits(std::vector<HoughHitType>& hitList,
254  HoughSetupForBucket& bucket) const {
255  for (const SpacePointBucket::value_type& hit : *bucket.bucket) {
256  if (!hit->measuresEta()) {
257  hitList.push_back(hit.get());
258  }
259  }
260 }
261 }
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
ymin
double ymin
Definition: listroot.cxx:63
MuonR4::EtaHoughTransformAlg::m_minMaxDistIntercept
DoubleProperty m_minMaxDistIntercept
Definition: EtaHoughTransformAlg.h:100
MuonR4::SpacePoint::type
xAOD::UncalibMeasType type() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:131
max
#define max(a, b)
Definition: cfImp.cxx:41
MuonR4::EtaHoughTransformAlg::m_downWeightMultiplePrd
BooleanProperty m_downWeightMultiplePrd
Definition: EtaHoughTransformAlg.h:112
MuonR4::SpacePointBucket
: The muon space point bucket represents a collection of points that will bre processed together in t...
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePointContainer.h:21
MuonR4::SpacePointBucket::msSector
const MuonGMR4::SpectrometerSector * msSector() const
returns th associated muonChamber
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePointContainer.h:35
MuonR4::EtaHoughTransformAlg::m_targetResoIntercept
DoubleProperty m_targetResoIntercept
Definition: EtaHoughTransformAlg.h:88
MuonR4::SpacePointBucket::coveredMin
double coveredMin() const
lower interval value covered by the bucket
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePointContainer.h:31
PixelAthClusterMonAlgCfg.zmin
zmin
Definition: PixelAthClusterMonAlgCfg.py:169
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
MuonR4::EtaHoughTransformAlg::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
Definition: EtaHoughTransformAlg.h:119
SegmentSeed.h
xAOD::UncalibMeasType::MMClusterType
@ MMClusterType
MuonR4::HoughEventData_impl::HoughSetupForBucket::searchWindowIntercept
std::pair< double, double > searchWindowIntercept
Definition: HoughEventData.h:46
HoughHelperFunctions.h
MuonR4::ActsPeakFinderForMuonCfg
Acts::HoughTransformUtils::PeakFinders::IslandsAroundMaxConfig ActsPeakFinderForMuonCfg
Definition: MuonHoughDefs.h:26
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::ReadHandleKey< ContainerType >
xAOD::UncalibMeasType::sTgcStripType
@ sTgcStripType
SpectrometerSector.h
MuonGMR4::SpectrometerSector::identString
std::string identString() const
Returns a string encoding the chamber index & the sector of the MS sector.
Definition: SpectrometerSector.cxx:45
Muon::MdtStatusDriftTime
@ MdtStatusDriftTime
The tube produced a vaild measurement.
Definition: MdtDriftCircleStatus.h:34
MuonR4::EtaHoughTransformAlg::initialize
virtual StatusCode initialize() override
Definition: EtaHoughTransformAlg.cxx:19
ReadCondHandle.h
MuonR4::EtaHoughTransformAlg::m_minSigmasSearchTanTheta
DoubleProperty m_minSigmasSearchTanTheta
Definition: EtaHoughTransformAlg.h:91
MuonR4::EtaHoughTransformAlg::m_visionTool
ToolHandle< MuonValR4::IPatternVisualizationTool > m_visionTool
Pattern visualization tool.
Definition: EtaHoughTransformAlg.h:121
MuonR4::sortByLayer
void sortByLayer(std::vector< const SpacePoint * > &spacePoints)
Sorts the space points in a vector by z.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/UtilFunctions.cxx:80
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
MuonR4::HoughHelpers::Eta::houghWidthStrip
double houghWidthStrip(double tanTheta, const MuonR4::HoughHitType &strip, double targetReso)
Uncertainty parametrisation for strip measurements.
Definition: HoughHelperFunctions.cxx:27
EtaHoughTransformAlg.h
MuonR4::SpacePoint::primaryMeasurement
const xAOD::UncalibratedMeasurement * primaryMeasurement() const
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:107
MuonR4::SpacePointBucket::coveredMax
double coveredMax() const
upper interval value covered by the bucket
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/MuonSpacePoint/SpacePointContainer.h:33
MuonR4::HoughHelpers::Eta::houghWidthMdt
double houghWidthMdt(double tanTheta, const MuonR4::HoughHitType &dc, double targetReso)
uncertainty parametrisation for drift circles
Definition: HoughHelperFunctions.cxx:21
MuonR4::EtaHoughTransformAlg::m_minMaxDistTheta
DoubleProperty m_minMaxDistTheta
Definition: EtaHoughTransformAlg.h:98
MuonR4::EtaHoughTransformAlg::m_peakThreshold
DoubleProperty m_peakThreshold
Definition: EtaHoughTransformAlg.h:96
xAOD::UncalibratedMeasurement_v1::type
virtual xAOD::UncalibMeasType type() const =0
Returns the type of the measurement type as a simple enumeration.
MuonR4::HoughEventData_impl::HoughSetupForBucket::bucket
const SpacePointBucket * bucket
Definition: HoughEventData.h:42
CreatePhysValWebPage.hs
hs
Definition: CreatePhysValWebPage.py:107
z
#define z
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
UtilFunctions.h
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MuonR4::EtaHoughTransformAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: EtaHoughTransformAlg.cxx:43
PixelAthClusterMonAlgCfg.zmax
zmax
Definition: PixelAthClusterMonAlgCfg.py:169
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MuonR4::EtaHoughTransformAlg::m_nPrecHitCut
UnsignedIntegerProperty m_nPrecHitCut
Definition: EtaHoughTransformAlg.h:104
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
MuonR4::EtaHoughTransformAlg::processBucket
void processBucket(const EventContext &ctx, HoughEventData &data, HoughSetupForBucket &currentBucket) const
process a bucket.
Definition: EtaHoughTransformAlg.cxx:152
MuonR4::HoughHelpers::Eta::houghParamMdtLeft
double houghParamMdtLeft(double tanTheta, const MuonR4::HoughHitType &dc)
left-side straight line parametrisation for drift circles
Definition: HoughHelperFunctions.cxx:9
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:27
min
#define min(a, b)
Definition: cfImp.cxx:40
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:18
MuonR4::EtaHoughTransformAlg::m_nBinsIntercept
IntegerProperty m_nBinsIntercept
Definition: EtaHoughTransformAlg.h:109
MuonR4::HoughEventData_impl::HoughSetupForBucket
Hough transform configuration for one bucket of the search space.
Definition: HoughEventData.h:40
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
MuonR4::EtaHoughTransformAlg::EtaHoughTransformAlg
EtaHoughTransformAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: EtaHoughTransformAlg.cxx:15
WriteCaloSwCorrections.cfg
cfg
Definition: WriteCaloSwCorrections.py:23
MuonR4::EtaHoughTransformAlg::m_peakFractionCutOff
DoubleProperty m_peakFractionCutOff
Definition: EtaHoughTransformAlg.h:102
MuonR4::EtaHoughTransformAlg::m_maxima
SG::WriteHandleKey< EtaHoughMaxContainer > m_maxima
Definition: EtaHoughTransformAlg.h:117
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonR4
This header ties the generic definitions in this package.
Definition: HoughEventData.h:16
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
MuonR4::EtaHoughTransformAlg::preProcess
void preProcess(const EventContext &ctx, const ActsGeometryContext &gctx, const SpacePointContainer &spacePoints, HoughEventData &data) const
pre-processing method called once per event.
Definition: EtaHoughTransformAlg.cxx:80
a
TList * a
Definition: liststreamerinfos.cxx:10
MuonR4::HoughMaximum
Data class to represent an eta maximum in hough space.
Definition: HoughMaximum.h:14
MuonR4::EtaHoughTransformAlg::extendWithPhiHits
void extendWithPhiHits(std::vector< HoughHitType > &hitList, HoughSetupForBucket &bucket) const
extend a maximum with all compatible (pure) phi hits.
Definition: EtaHoughTransformAlg.cxx:253
MuonR4::EtaHoughTransformAlg::m_targetResoTanTheta
DoubleProperty m_targetResoTanTheta
Definition: EtaHoughTransformAlg.h:86
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
MuonR4::SpacePoint::measuresEta
bool measuresEta() const
: Does the space point contain an eta measurement
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/SpacePoint.cxx:137
MuonR4::EtaHoughTransformAlg::m_spacePointKey
SG::ReadHandleKey< SpacePointContainer > m_spacePointKey
Definition: EtaHoughTransformAlg.h:115
MuonR4::HoughEventData_impl::HoughSetupForBucket::searchWindowTanAngle
std::pair< double, double > searchWindowTanAngle
Definition: HoughEventData.h:48
MuonR4::EtaHoughTransformAlg::isPrecisionHit
static bool isPrecisionHit(const HoughHitType &hit)
Returns whether the hit is a precision hit or not.
Definition: EtaHoughTransformAlg.cxx:123
MuonR4::SegmentSeed
Representation of a segment seed (a fully processed hough maximum) produced by the hough transform.
Definition: SegmentSeed.h:14
MuonR4::EtaHoughTransformAlg::m_nBinsTanTheta
IntegerProperty m_nBinsTanTheta
Definition: EtaHoughTransformAlg.h:107
xAOD::MdtDriftCircle_v1::status
MdtDriftCircleStatus status() const
Returns the status of the measurement.
MuonR4::EtaHoughTransformAlg::prepareHoughPlane
void prepareHoughPlane(HoughEventData &data) const
prepare the accumulator and the peak finder once per event
Definition: EtaHoughTransformAlg.cxx:140
MuonR4::EtaHoughTransformAlg::retrieveContainer
StatusCode retrieveContainer(const EventContext &ctx, const SG::ReadHandleKey< ContainerType > &key, const ContainerType *&contToPush) const
Helper method to fetch data from StoreGate.
Definition: EtaHoughTransformAlg.cxx:28
MuonR4::HoughHelpers::Eta::houghParamMdtRight
double houghParamMdtRight(double tanTheta, const MuonR4::HoughHitType &dc)
right-side straight line parametrisation for drift circles
Definition: HoughHelperFunctions.cxx:13
MuonR4::HoughHelpers::Eta::houghParamStrip
double houghParamStrip(double tanTheta, const MuonR4::HoughHitType &strip)
straight line parametrisation for strip detector measurements
Definition: HoughHelperFunctions.cxx:17
xAOD::MdtDriftCircle_v1
https://gitlab.cern.ch/atlas/athena/-/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecEvent/Mu...
Definition: MdtDriftCircle_v1.h:21
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
xAOD::UncalibMeasType::RpcStripType
@ RpcStripType
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
xAOD::UncalibMeasType::MdtDriftCircleType
@ MdtDriftCircleType
ymax
double ymax
Definition: listroot.cxx:64
MuonR4::HoughEventData_impl
Templated event data class for the phase-2 muon hough transform.
Definition: HoughEventData.h:22
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
MuonR4::EtaHoughTransformAlg::fillFromSpacePoint
void fillFromSpacePoint(HoughEventData &data, const MuonR4::HoughHitType &SP) const
fill the accumulator from a given space point.
Definition: EtaHoughTransformAlg.cxx:232
MuonR4::EtaHoughTransformAlg::m_minSigmasSearchIntercept
DoubleProperty m_minSigmasSearchIntercept
Definition: EtaHoughTransformAlg.h:94