ATLAS Offline Software
Loading...
Searching...
No Matches
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
24namespace Trk {
25 class Surface;
26}
27
28namespace Muon {
29
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
base-class for combined reconstruction output Provides access to MuonType and Author
Definition TagBase.h:48
std::vector< MuonLayerSurface > SurfaceVec
ToolHandle< Trk::IParticleCaloExtensionTool > m_caloExtensionTool
MuonSectorMapping m_sectorMapping
sector mapping helper
MuonStationIndex::DetectorRegionIndex DetRegIdx
reference surfaces per region and sector
ToolHandle< Trk::IExtrapolator > m_extrapolator
ServiceHandle< IMuonIdHelperSvc > m_idHelperSvc
bool initializeGeometryBarrel(int sector, const Amg::Transform3D &sectorRotation)
bool muonLayerInterSections(const EventContext &ctx, const MuonCombined::TagBase &cmb_tag, SystemExtensionCache &cache) const override
bool muonSystemExtension(const EventContext &ctx, SystemExtensionCache &cache) const override
get muon system extension
std::array< std::array< SurfaceVec, 16 >, MuonStationIndex::toInt(DetRegIdx::DetectorRegionIndexMax)> m_referenceSurfaces
bool initializeGeometry()
initialize geometry
SurfaceVec getSurfacesForIntersection(const Trk::TrackParameters &muonEntryPars, const SystemExtensionCache &cache) const
get surfaces to be intersected for a given start parameters
virtual ~MuonSystemExtensionTool()=default
ServiceHandle< IMuonEDMHelperSvc > m_edmHelperSvc
PublicToolHandle< MuonEDMPrinterTool > m_printer
bool initializeGeometryEndcap(int sector, MuonStationIndex::DetectorRegionIndex regionIndex, const Amg::Transform3D &sectorRotation)
Tracking class to hold the extrapolation from a particle from the calo entry to the end of muon syste...
Abstract Base Class for tracking surfaces.
Eigen::Affine3d Transform3D
DetectorRegionIndex
enum to classify the different layers in the muon spectrometer
constexpr int toInt(const EnumType enumVal)
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersBase< TrackParametersDim, Charged > TrackParameters