ATLAS Offline Software
xAODSimHitToRpcMeasCnvAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef XAODMUONSIMHITCNV_xAODSimHitToRpcMeasurementCnvAlg_H
5 #define XAODMUONSIMHITCNV_xAODSimHitToRpcMeasurementCnvAlg_H
6 
8 
12 
14 
17 
18 
21 
23 #include <CLHEP/Random/RandomEngine.h>
33  public:
34  xAODSimHitToRpcMeasCnvAlg(const std::string& name, ISvcLocator* pSvcLocator);
35 
37 
38  StatusCode execute(const EventContext& ctx) const override;
39  StatusCode initialize() override;
40  StatusCode finalize() override;
41 
42  private:
43  CLHEP::HepRandomEngine* getRandomEngine(const EventContext& ctx) const;
44 
48  void digitizeHit(const double hitTime,
49  const double locPosOnStrip,
50  const MuonGMR4::StripDesignPtr& designPtr,
51  const Identifier& gasGapId,
52  const bool measuresPhi,
53  xAOD::RpcStripContainer& prdContainer,
54  CLHEP::HepRandomEngine* engine) const;
55 
56  void digitizeHit(const double hitTime,
57  const Amg::Vector2D& locPosOnStrip,
58  const MuonGMR4::StripDesignPtr& designPtr,
59  const Identifier& gasGapId,
60  xAOD::RpcStrip2DContainer& prdContainer,
61  CLHEP::HepRandomEngine* engine) const;
62 
66  int stripNumber(const MuonGMR4::StripDesign& design,
67  const Amg::Vector2D& locHitPosOnPlane) const;
68 
69 
70  SG::ReadHandleKey<ActsGeometryContext> m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
71 
72  SG::ReadHandleKey<xAOD::MuonSimHitContainer> m_readKey{this, "InputCollection", "xRpcSimHits",
73  "Name of the new xAOD SimHit collection"};
74 
75  SG::WriteHandleKey<xAOD::RpcStripContainer> m_writeKey{this, "OutputContainer", "xRpcStrips",
76  "Output container"};
77 
78  SG::WriteHandleKey<xAOD::RpcStrip2DContainer> m_writeKeyBI{this, "OutputContainerBI", "xRpcBILStrips",
79  "Output container of the 2D BIL rpc strips"};
82 
83  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
84 
85  ServiceHandle<IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc", ""}; // Random number service
86  Gaudi::Property<std::string> m_streamName{this, "RandomStream", "RpcSimHitForkLifting"};
87 
88  mutable std::array<std::atomic<unsigned>, 2> m_allHits ATLAS_THREAD_SAFE{};
89  mutable std::array<std::atomic<unsigned>, 2> m_acceptedHits ATLAS_THREAD_SAFE{};
90 
91  int m_stIdxBIL{-1};
92 
93 };
94 
95 #endif
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
xAODSimHitToRpcMeasCnvAlg::ATLAS_THREAD_SAFE
std::array< std::atomic< unsigned >, 2 > m_allHits ATLAS_THREAD_SAFE
Definition: xAODSimHitToRpcMeasCnvAlg.h:88
xAODSimHitToRpcMeasCnvAlg::~xAODSimHitToRpcMeasCnvAlg
~xAODSimHitToRpcMeasCnvAlg()=default
GeoModel::TransientConstSharedPtr< StripDesign >
MuonGMR4::StripDesign
Definition: StripDesign.h:30
xAODSimHitToRpcMeasCnvAlg::stripNumber
int stripNumber(const MuonGMR4::StripDesign &design, const Amg::Vector2D &locHitPosOnPlane) const
Returns the number of the strip that's closest to the hit position on the strip plane -1 is returned ...
Definition: xAODSimHitToRpcMeasCnvAlg.cxx:222
MuonGMR4::MuonDetectorManager
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonDetectorManager.h:61
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
xAODSimHitToRpcMeasCnvAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: xAODSimHitToRpcMeasCnvAlg.h:83
SG::ReadHandleKey< ActsGeometryContext >
RpcStripContainer.h
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
xAODSimHitToRpcMeasCnvAlg::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Definition: xAODSimHitToRpcMeasCnvAlg.h:85
xAODSimHitToRpcMeasCnvAlg::digitizeHit
void digitizeHit(const double hitTime, const double locPosOnStrip, const MuonGMR4::StripDesignPtr &designPtr, const Identifier &gasGapId, const bool measuresPhi, xAOD::RpcStripContainer &prdContainer, CLHEP::HepRandomEngine *engine) const
Smears the local simHit position orthogonal to the strip and writes a 1D rpc strip measurement.
Definition: xAODSimHitToRpcMeasCnvAlg.cxx:55
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
xAODSimHitToRpcMeasCnvAlg::initialize
StatusCode initialize() override
Definition: xAODSimHitToRpcMeasCnvAlg.cxx:36
xAODSimHitToRpcMeasCnvAlg::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
Definition: xAODSimHitToRpcMeasCnvAlg.h:70
xAODSimHitToRpcMeasCnvAlg::getRandomEngine
CLHEP::HepRandomEngine * getRandomEngine(const EventContext &ctx) const
Definition: xAODSimHitToRpcMeasCnvAlg.cxx:286
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAODSimHitToRpcMeasCnvAlg::m_writeKeyBI
SG::WriteHandleKey< xAOD::RpcStrip2DContainer > m_writeKeyBI
Definition: xAODSimHitToRpcMeasCnvAlg.h:78
MuonDetectorManager.h
MuonSimHitContainer.h
xAODSimHitToRpcMeasCnvAlg::finalize
StatusCode finalize() override
Definition: xAODSimHitToRpcMeasCnvAlg.cxx:48
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
xAODSimHitToRpcMeasCnvAlg::m_streamName
Gaudi::Property< std::string > m_streamName
Definition: xAODSimHitToRpcMeasCnvAlg.h:86
ReadCondHandleKey.h
AthReentrantAlgorithm.h
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
RpcStrip2DContainer.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
xAODSimHitToRpcMeasCnvAlg::xAODSimHitToRpcMeasCnvAlg
xAODSimHitToRpcMeasCnvAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: xAODSimHitToRpcMeasCnvAlg.cxx:32
xAODSimHitToRpcMeasCnvAlg::m_stIdxBIL
int m_stIdxBIL
Definition: xAODSimHitToRpcMeasCnvAlg.h:91
xAODSimHitToRpcMeasCnvAlg::execute
StatusCode execute(const EventContext &ctx) const override
Definition: xAODSimHitToRpcMeasCnvAlg.cxx:241
xAODSimHitToRpcMeasCnvAlg::m_writeKey
SG::WriteHandleKey< xAOD::RpcStripContainer > m_writeKey
Definition: xAODSimHitToRpcMeasCnvAlg.h:75
xAODSimHitToRpcMeasCnvAlg
The xAODSimHitToRpcMasCnvAlg is a short cut towards the RpcStrip measurement The RpcSimHits are taken...
Definition: xAODSimHitToRpcMeasCnvAlg.h:32
hitTime
float hitTime(const AFP_SIDSimHit &hit)
Definition: AFP_SIDSimHit.h:39
checker_macros.h
Define macros for attributes used to control the static checker.
xAODSimHitToRpcMeasCnvAlg::m_DetMgr
const MuonGMR4::MuonDetectorManager * m_DetMgr
Access to the new readout geometry.
Definition: xAODSimHitToRpcMeasCnvAlg.h:81
IMuonIdHelperSvc.h
IAthRNGSvc.h
ServiceHandle< Muon::IMuonIdHelperSvc >
xAODSimHitToRpcMeasCnvAlg::m_readKey
SG::ReadHandleKey< xAOD::MuonSimHitContainer > m_readKey
Definition: xAODSimHitToRpcMeasCnvAlg.h:72