ATLAS Offline Software
PhiHoughTransformAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef MUONR4_MUONPATTERNRECOGNITIONALGS_PHIHOUGHTRANSFORMALG__H
5 #define MUONR4_MUONPATTERNRECOGNITIONALGS_PHIHOUGHTRANSFORMALG__H
6 
9 
12 
16 
19 
20 // muon includes
21 
22 
23 namespace MuonR4{
24 
34  public:
35  using AthReentrantAlgorithm::AthReentrantAlgorithm;
36  virtual ~PhiHoughTransformAlg() = default;
37  virtual StatusCode initialize() override;
38  virtual StatusCode execute(const EventContext& ctx) const override;
39 
40  private:
45  void prepareHoughPlane(HoughEventData & data) const;
46 
53  void preProcessMaximum(const ActsGeometryContext& gctx,
54  const MuonR4::HoughMaximum & maximum,
55  HoughEventData & data) const;
56 
62  std::unique_ptr<SegmentSeed> recoverSinglePhiMax(HoughEventData & data, const MuonR4::HoughMaximum & maximum) const;
63 
71  std::vector<MuonR4::ActsPeakFinderForMuon::Maximum> findRankedSegmentSeeds(const EventContext& ctx,
73  const MuonR4::HoughMaximum & maximum) const;
74 
79  int countIncompatibleEtaHits(const MuonR4::ActsPeakFinderForMuon::Maximum & phiMaximum, const MuonR4::HoughMaximum & etaMaximum) const;
80 
87  std::unique_ptr<SegmentSeed> buildSegmentSeed(const HoughMaximum & etaMax,
88  const MuonR4::ActsPeakFinderForMuon::Maximum & phiMax) const;
89 
90  // read handle key for the input maxima (from a previous eta-transform)
91  SG::ReadHandleKey<EtaHoughMaxContainer> m_maxima{this, "ReadKey", "MuonHoughStationMaxima"};
92  // write handle key for the output segment seeds
93  SG::WriteHandleKey<SegmentSeedContainer> m_segmentSeeds{this, "WriteKey", "MuonHoughStationSegmentSeeds"};
94 
95  // access to the ACTS geometry context
96  SG::ReadHandleKey<ActsGeometryContext> m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
98  ToolHandle<MuonValR4::IPatternVisualizationTool> m_visionTool{this, "VisualizationTool", ""};
99  // steers the target resolution in tan(phi)
100  DoubleProperty m_targetResoTanPhi{this, "ResolutionTargetTanAngle", 0.04};
101  // steers the target resolution in the x-axis intercept
102  DoubleProperty m_targetResoIntercept{this, "ResolutionTargetIntercept", 30.};
103  // minimum search window half width, tan(phi)
104  // - in multiples of the target resolution
105  DoubleProperty m_minSigmasSearchTanPhi{this, "minSigmasSearchTanPhi", 1.};
106  // minimum search window half width, intercept
107  // - in multiples of the target resolution
108  DoubleProperty m_minSigmasSearchIntercept{this, "minSigmasSearchIntercept", 1.};
109 
110  // number of accumulator bins in tan(phi)
111  // target resolution in the angle
112  IntegerProperty m_nBinsTanPhi{this, "nBinsTanAngle", 5};
113  // number of accumulator bins in the x-axis intercept
114  IntegerProperty m_nBinsIntercept{this, "nBinsIntercept", 10};
115  // maximum number of eta measurements allowed to be discarded by
116  // a valid phi-extension
117  IntegerProperty m_maxEtaHolesOnMax{this, "maxEtaHoles", 1};
118  // flag to steer whether to recover maxima with a single phi measurement
119  // using a beam spot projection. Should not be used in splashes or cosmics.
120  BooleanProperty m_recoverSinglePhiWithBS{this, "recoverSinglePhiHitsWithBS", true};
121  // Flag to steer whether space points shall be downweighted according to their instance
122  // multiplicity of the phi measurement such that it effectively contributes with weight 1
123  BooleanProperty m_downWeightMultiplePrd{this, "downWeightPrdMultiplicity", false};
124  };
125 }
126 
127 
128 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
MuonR4::PhiHoughTransformAlg::m_segmentSeeds
SG::WriteHandleKey< SegmentSeedContainer > m_segmentSeeds
Definition: PhiHoughTransformAlg.h:93
MuonR4::PhiHoughTransformAlg::buildSegmentSeed
std::unique_ptr< SegmentSeed > buildSegmentSeed(const HoughMaximum &etaMax, const MuonR4::ActsPeakFinderForMuon::Maximum &phiMax) const
constructs a segment seed from an eta maximum and a phi-extension.
Definition: PhiHoughTransformAlg.cxx:64
MuonR4::PhiHoughTransformAlg::prepareHoughPlane
void prepareHoughPlane(HoughEventData &data) const
prepare the hough plane once per event.
Definition: PhiHoughTransformAlg.cxx:30
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
MuonR4::PhiHoughTransformAlg::initialize
virtual StatusCode initialize() override
Definition: PhiHoughTransformAlg.cxx:23
MuonR4::PhiHoughTransformAlg::m_targetResoIntercept
DoubleProperty m_targetResoIntercept
Definition: PhiHoughTransformAlg.h:102
IPatternVisualizationTool.h
MuonR4::PhiHoughTransformAlg::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
Definition: PhiHoughTransformAlg.h:96
MuonR4::PhiHoughTransformAlg::m_targetResoTanPhi
DoubleProperty m_targetResoTanPhi
Definition: PhiHoughTransformAlg.h:100
MuonR4::PhiHoughTransformAlg::m_nBinsTanPhi
IntegerProperty m_nBinsTanPhi
Definition: PhiHoughTransformAlg.h:112
MuonR4::PhiHoughTransformAlg::m_minSigmasSearchIntercept
DoubleProperty m_minSigmasSearchIntercept
Definition: PhiHoughTransformAlg.h:108
xAOD::etaMax
etaMax
Definition: HIEventShape_v2.cxx:46
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
MuonR4::PhiHoughTransformAlg::m_nBinsIntercept
IntegerProperty m_nBinsIntercept
Definition: PhiHoughTransformAlg.h:114
MuonR4::PhiHoughTransformAlg::m_visionTool
ToolHandle< MuonValR4::IPatternVisualizationTool > m_visionTool
Pattern visualization tool.
Definition: PhiHoughTransformAlg.h:98
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
MuonR4::PhiHoughTransformAlg::countIncompatibleEtaHits
int countIncompatibleEtaHits(const MuonR4::ActsPeakFinderForMuon::Maximum &phiMaximum, const MuonR4::HoughMaximum &etaMaximum) const
helper to count the number of eta measurements that would be discarded for a given phi extension cand...
Definition: PhiHoughTransformAlg.cxx:44
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MuonPatternContainer.h
MuonR4::PhiHoughTransformAlg
Algorithm to handle the phi hough transform.
Definition: PhiHoughTransformAlg.h:33
MuonR4::PhiHoughTransformAlg::m_minSigmasSearchTanPhi
DoubleProperty m_minSigmasSearchTanPhi
Definition: PhiHoughTransformAlg.h:105
MuonR4::PhiHoughTransformAlg::findRankedSegmentSeeds
std::vector< MuonR4::ActsPeakFinderForMuon::Maximum > findRankedSegmentSeeds(const EventContext &ctx, HoughEventData &data, const MuonR4::HoughMaximum &maximum) const
perform a hough search for the most promising phi extension of an eta-maximum Performs a local hough ...
Definition: PhiHoughTransformAlg.cxx:131
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:27
AthReentrantAlgorithm.h
MuonR4::PhiHoughTransformAlg::m_maxEtaHolesOnMax
IntegerProperty m_maxEtaHolesOnMax
Definition: PhiHoughTransformAlg.h:117
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
MuonHoughDefs.h
MuonR4::PhiHoughTransformAlg::m_recoverSinglePhiWithBS
BooleanProperty m_recoverSinglePhiWithBS
Definition: PhiHoughTransformAlg.h:120
MuonR4::PhiHoughTransformAlg::preProcessMaximum
void preProcessMaximum(const ActsGeometryContext &gctx, const MuonR4::HoughMaximum &maximum, HoughEventData &data) const
pre-processing for a given input eta-maximum Counts potential phi-hits and defines the search space
Definition: PhiHoughTransformAlg.cxx:81
MuonR4
This header ties the generic definitions in this package.
Definition: HoughEventData.h:16
MuonR4::PhiHoughTransformAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: PhiHoughTransformAlg.cxx:189
MuonR4::HoughMaximum
Data class to represent an eta maximum in hough space.
Definition: HoughMaximum.h:14
MuonR4::PhiHoughTransformAlg::m_maxima
SG::ReadHandleKey< EtaHoughMaxContainer > m_maxima
Definition: PhiHoughTransformAlg.h:91
HoughEventData.h
SpacePointContainer.h
MuonR4::PhiHoughTransformAlg::~PhiHoughTransformAlg
virtual ~PhiHoughTransformAlg()=default
MuonR4::PhiHoughTransformAlg::m_downWeightMultiplePrd
BooleanProperty m_downWeightMultiplePrd
Definition: PhiHoughTransformAlg.h:123
MuonR4::PhiHoughTransformAlg::recoverSinglePhiMax
std::unique_ptr< SegmentSeed > recoverSinglePhiMax(HoughEventData &data, const MuonR4::HoughMaximum &maximum) const
extend an eta maximum with just a single attached phi measurement.
Definition: PhiHoughTransformAlg.cxx:174
IMuonIdHelperSvc.h
MuonR4::HoughEventData_impl
Templated event data class for the phase-2 muon hough transform.
Definition: HoughEventData.h:22