ATLAS Offline Software
MuonEtaHoughTransformAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONR4__HOUGHTRANSFORMALG__H
6 #define MUONR4__HOUGHTRANSFORMALG__H
7 
9 
11 #include "GaudiKernel/ToolHandle.h"
21 #include "Gaudi/Property.h"
22 
23 // muon includes
24 
25 
26 namespace MuonR4{
27 
35  public:
36  MuonEtaHoughTransformAlg(const std::string& name, ISvcLocator* pSvcLocator);
37  virtual ~MuonEtaHoughTransformAlg() = default;
38  virtual StatusCode initialize() override;
39  virtual StatusCode execute(const EventContext& ctx) const override;
40 
41  private:
42 
46  template <class ContainerType> StatusCode retrieveContainer(const EventContext& ctx,
48  const ContainerType* & contToPush) const;
49 
56  const MuonSpacePointContainer & spacePoints ) const;
57 
61 
68  HoughSetupForBucket& currentBucket) const;
69 
74  const MuonR4::HoughHitType & SP) const;
75 
79  void extendWithPhiHits(std::vector<HoughHitType> & hitList, HoughSetupForBucket& bucket) const ;
80 
81  // target resolution in the angle
82  DoubleProperty m_targetResoTanTheta{this, "ResolutionTargetTanTheta", 0.02};
83  // target resolution in the y intercept
84  DoubleProperty m_targetResoIntercept{this, "ResolutionTargetIntercept", 10.};
85  // minimum search window half width, tan(theta)
86  // - in multiples of the target resolution
87  DoubleProperty m_minSigmasSearchTanTheta{this, "minSigmasSearchTanTheta", 3.};
88  // minimum search window half width, intercept
89  // - in multiples of the target resolution
90  DoubleProperty m_minSigmasSearchIntercept{this, "minSigmasSearchIntercept", 3.};
91  // number of accumulator bins for the angle
92  IntegerProperty m_nBinsTanTheta{this, "nBinsTanTheta", 20};
93  // number of accumulator bins for the intercept
94  IntegerProperty m_nBinsIntercept{this, "nBinsIntercept", 200};
95 
96  // input space points from SG
97  SG::ReadHandleKey<MuonR4::MuonSpacePointContainer> m_spacePointKey{this, "SpacePointContainer", "MuonSpacePoints"};
98 
99  // output maxima for downstram processing
100  SG::WriteHandleKey<StationHoughMaxContainer> m_maxima{this, "StationHoughMaxContainer", "MuonHoughStationMaxima"};
101 
102  // ACTS geometry context
103  SG::ReadHandleKey<ActsGeometryContext> m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
104 
105  };
106 }
107 
108 
109 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
MuonR4::MuonEtaHoughTransformAlg::m_maxima
SG::WriteHandleKey< StationHoughMaxContainer > m_maxima
Definition: MuonEtaHoughTransformAlg.h:100
MuonR4::MuonEtaHoughTransformAlg::retrieveContainer
StatusCode retrieveContainer(const EventContext &ctx, const SG::ReadHandleKey< ContainerType > &key, const ContainerType *&contToPush) const
Helper method to fetch data from StoreGate.
Definition: MuonEtaHoughTransformAlg.cxx:27
MuonR4::MuonEtaHoughTransformAlg::m_spacePointKey
SG::ReadHandleKey< MuonR4::MuonSpacePointContainer > m_spacePointKey
Definition: MuonEtaHoughTransformAlg.h:97
MuonR4::MuonEtaHoughTransformAlg::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
Definition: MuonEtaHoughTransformAlg.h:103
MuonR4::HoughHitType
std::shared_ptr< MuonR4::MuonSpacePoint > HoughHitType
Definition: MuonHoughDefs.h:20
MuonR4::MuonEtaHoughTransformAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: MuonEtaHoughTransformAlg.cxx:42
SG::ReadHandleKey< ContainerType >
MuonR4::MuonEtaHoughTransformAlg::~MuonEtaHoughTransformAlg
virtual ~MuonEtaHoughTransformAlg()=default
RpcStripContainer.h
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
MuonR4::MuonEtaHoughTransformAlg::m_targetResoIntercept
DoubleProperty m_targetResoIntercept
Definition: MuonEtaHoughTransformAlg.h:84
MuonR4::MuonEtaHoughTransformAlg
Algorithm to handle the eta hough transform.
Definition: MuonEtaHoughTransformAlg.h:34
MuonR4::MuonEtaHoughTransformAlg::m_targetResoTanTheta
DoubleProperty m_targetResoTanTheta
Definition: MuonEtaHoughTransformAlg.h:82
SG::WriteHandleKey< StationHoughMaxContainer >
MuonR4::MuonHoughEventData_impl
Templated event data class for the phase-2 muon hough transform.
Definition: MuonHoughEventData.h:34
TgcStripContainer.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MuonR4::MuonEtaHoughTransformAlg::MuonEtaHoughTransformAlg
MuonEtaHoughTransformAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: MuonEtaHoughTransformAlg.cxx:14
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
MuonR4::MuonEtaHoughTransformAlg::m_nBinsTanTheta
IntegerProperty m_nBinsTanTheta
Definition: MuonEtaHoughTransformAlg.h:92
MuonR4::MuonEtaHoughTransformAlg::m_nBinsIntercept
IntegerProperty m_nBinsIntercept
Definition: MuonEtaHoughTransformAlg.h:94
ReadCondHandleKey.h
MuonR4::MuonEtaHoughTransformAlg::extendWithPhiHits
void extendWithPhiHits(std::vector< HoughHitType > &hitList, HoughSetupForBucket &bucket) const
extend a maximum with all compatible (pure) phi hits.
Definition: MuonEtaHoughTransformAlg.cxx:193
AthReentrantAlgorithm.h
MdtDriftCircleContainer.h
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
MuonHoughDefs.h
MuonR4::MuonEtaHoughTransformAlg::initialize
virtual StatusCode initialize() override
Definition: MuonEtaHoughTransformAlg.cxx:18
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
MuonR4::MuonEtaHoughTransformAlg::m_minSigmasSearchIntercept
DoubleProperty m_minSigmasSearchIntercept
Definition: MuonEtaHoughTransformAlg.h:90
MuonR4::MuonHoughEventData_impl::HoughSetupForBucket
Hough transform configuration for one bucket of the search space.
Definition: MuonHoughEventData.h:45
MuonR4
The CsvMuonSimHitDumper reads a Simulation Hit container for muons and dumps information to csv files...
Definition: MuonSpacePoint.h:11
MuonR4::MuonEtaHoughTransformAlg::m_minSigmasSearchTanTheta
DoubleProperty m_minSigmasSearchTanTheta
Definition: MuonEtaHoughTransformAlg.h:87
MuonR4::MuonEtaHoughTransformAlg::fillFromSpacePoint
void fillFromSpacePoint(MuonHoughEventData &data, const MuonR4::HoughHitType &SP) const
fill the accumulator from a given space point.
Definition: MuonEtaHoughTransformAlg.cxx:175
MuonSpacePointContainer.h
MuonR4::MuonEtaHoughTransformAlg::prepareHoughPlane
StatusCode prepareHoughPlane(MuonHoughEventData &data) const
prepare the accumulator and the peak finder once per event
Definition: MuonEtaHoughTransformAlg.cxx:103
MuonR4::MuonEtaHoughTransformAlg::preProcess
StatusCode preProcess(MuonHoughEventData &data, const MuonSpacePointContainer &spacePoints) const
pre-processing method called once per event.
Definition: MuonEtaHoughTransformAlg.cxx:74
MuonR4::MuonEtaHoughTransformAlg::processBucket
StatusCode processBucket(MuonHoughEventData &data, HoughSetupForBucket &currentBucket) const
process a bucket.
Definition: MuonEtaHoughTransformAlg.cxx:118
StationHoughMaxContainer.h
IMuonIdHelperSvc.h
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37