ATLAS Offline Software
MuonSystemExtensionTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUON_MUONSYSTEMEXTENSIONTOOL_H
6 #define MUON_MUONSYSTEMEXTENSIONTOOL_H
7 
8 #include <vector>
9 
11 #include "GaudiKernel/ToolHandle.h"
22 
23 
24 namespace Trk {
25  class Surface;
26 }
27 
28 namespace Muon {
29 
30  class MuonSystemExtension;
31 
32  class MuonSystemExtensionTool : public extends<AthAlgTool, IMuonSystemExtensionTool> {
33  public:
34  typedef std::vector<MuonLayerSurface> SurfaceVec;
35 
37  using base_class::base_class;
38  virtual ~MuonSystemExtensionTool() = default;
39  StatusCode initialize() override;
40 
42  bool muonSystemExtension(const EventContext& ctx, SystemExtensionCache& cache) const override;
43 
44  bool muonLayerInterSections(const EventContext& ctx,
45  const MuonCombined::TagBase& cmb_tag,
46  SystemExtensionCache& cache) const override;
47 
48  private:
50  bool initializeGeometry();
51  bool initializeGeometryBarrel(int sector, const Amg::Transform3D& sectorRotation);
53  const Amg::Transform3D& sectorRotation);
54 
56  SurfaceVec getSurfacesForIntersection(const Trk::TrackParameters& muonEntryPars, const SystemExtensionCache& cache) const;
57 
58  ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtensionTool{
59  this,
60  "ParticleCaloExtensionTool",
61  "Trk::ParticleCaloExtensionTool/ParticleCaloExtensionTool",
62  };
63  ToolHandle<Trk::IExtrapolator> m_extrapolator{this,"Extrapolator",""};
64 
65  PublicToolHandle<MuonEDMPrinterTool> m_printer{this, "Printer", "Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"};
66 
67  ServiceHandle<IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
68 
69  ServiceHandle<IMuonEDMHelperSvc> m_edmHelperSvc{this,"edmHelper","Muon::MuonEDMHelperSvc/MuonEDMHelperSvc",
70  "Handle to the service providing the IMuonEDMHelperSvc interface"};
71 
74  std::array<std::array<SurfaceVec, 16> ,
75  MuonStationIndex::toInt(DetRegIdx::DetectorRegionIndexMax)> m_referenceSurfaces{};
76 
79  };
80 } // namespace Muon
81 
82 #endif
IMuonSystemExtensionTool.h
Muon::MuonSystemExtensionTool::m_edmHelperSvc
ServiceHandle< IMuonEDMHelperSvc > m_edmHelperSvc
Definition: MuonSystemExtensionTool.h:69
TrackParameters.h
MuonEDMPrinterTool.h
Muon::MuonSystemExtensionTool::initialize
StatusCode initialize() override
Definition: MuonSystemExtensionTool.cxx:35
Muon::MuonSystemExtensionTool::m_idHelperSvc
ServiceHandle< IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonSystemExtensionTool.h:67
Muon::MuonSystemExtensionTool::initializeGeometryEndcap
bool initializeGeometryEndcap(int sector, MuonStationIndex::DetectorRegionIndex regionIndex, const Amg::Transform3D &sectorRotation)
Definition: MuonSystemExtensionTool.cxx:61
Muon::MuonSystemExtensionTool::getSurfacesForIntersection
SurfaceVec getSurfacesForIntersection(const Trk::TrackParameters &muonEntryPars, const SystemExtensionCache &cache) const
get surfaces to be intersected for a given start parameters
Definition: MuonSystemExtensionTool.cxx:219
Muon::MuonSystemExtensionTool::m_sectorMapping
MuonSectorMapping m_sectorMapping
sector mapping helper
Definition: MuonSystemExtensionTool.h:78
Muon::MuonSystemExtensionTool
Definition: MuonSystemExtensionTool.h:32
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
Muon::MuonSystemExtensionTool::initializeGeometry
bool initializeGeometry()
initialize geometry
Definition: MuonSystemExtensionTool.cxx:44
IExtrapolator.h
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition: TrackSystemController.h:45
Muon::MuonSystemExtensionTool::initializeGeometryBarrel
bool initializeGeometryBarrel(int sector, const Amg::Transform3D &sectorRotation)
Definition: MuonSystemExtensionTool.cxx:94
Muon::MuonSystemExtensionTool::muonSystemExtension
bool muonSystemExtension(const EventContext &ctx, SystemExtensionCache &cache) const override
get muon system extension
Definition: MuonSystemExtensionTool.cxx:130
Muon::MuonSystemExtensionTool::~MuonSystemExtensionTool
virtual ~MuonSystemExtensionTool()=default
Muon::MuonSystemExtensionTool::SurfaceVec
std::vector< MuonLayerSurface > SurfaceVec
Definition: MuonSystemExtensionTool.h:34
MuonLayerSurface.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
AthAlgTool.h
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Muon::MuonSystemExtensionTool::m_printer
PublicToolHandle< MuonEDMPrinterTool > m_printer
Definition: MuonSystemExtensionTool.h:65
TrackParticle.h
IParticleCaloExtensionTool.h
MuonSectorMapping.h
Muon::MuonStationIndex::DetectorRegionIndex
DetectorRegionIndex
enum to classify the different layers in the muon spectrometer
Definition: MuonStationIndex.h:47
Muon::MuonSystemExtensionTool::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Definition: MuonSystemExtensionTool.h:63
Muon::MuonSectorMapping
Definition: MuonSectorMapping.h:20
Muon::MuonSystemExtensionTool::m_referenceSurfaces
std::array< std::array< SurfaceVec, 16 >, MuonStationIndex::toInt(DetRegIdx::DetectorRegionIndexMax)> m_referenceSurfaces
Definition: MuonSystemExtensionTool.h:75
MuonStationIndex.h
Muon::MuonSystemExtensionTool::muonLayerInterSections
bool muonLayerInterSections(const EventContext &ctx, const MuonCombined::TagBase &cmb_tag, SystemExtensionCache &cache) const override
Definition: MuonSystemExtensionTool.cxx:270
Muon::MuonSystemExtensionTool::m_caloExtensionTool
ToolHandle< Trk::IParticleCaloExtensionTool > m_caloExtensionTool
Definition: MuonSystemExtensionTool.h:58
IMuonIdHelperSvc.h
MuonCombined::TagBase
base-class for combined reconstruction output Provides access to MuonType and Author
Definition: TagBase.h:48
Muon::MuonStationIndex::toInt
constexpr int toInt(const EnumType enumVal)
Definition: MuonStationIndex.h:61
ServiceHandle
Definition: ClusterMakerTool.h:37