ATLAS Offline Software
MuonSystemExtensionTool.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 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 
33  public:
34  typedef std::vector<MuonLayerSurface> SurfaceVec;
35 
37  MuonSystemExtensionTool(const std::string& type, const std::string& name, const IInterface* parent);
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<Muon::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 
73  std::array<std::array<SurfaceVec, 16> ,
75 
78  };
79 } // namespace Muon
80 
81 #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:43
Muon::MuonSystemExtensionTool::initializeGeometryEndcap
bool initializeGeometryEndcap(int sector, MuonStationIndex::DetectorRegionIndex regionIndex, const Amg::Transform3D &sectorRotation)
Definition: MuonSystemExtensionTool.cxx:69
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:231
Muon::MuonSystemExtensionTool::m_sectorMapping
MuonSectorMapping m_sectorMapping
sector mapping helper
Definition: MuonSystemExtensionTool.h:77
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:52
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:105
Muon::MuonSystemExtensionTool::muonSystemExtension
bool muonSystemExtension(const EventContext &ctx, SystemExtensionCache &cache) const override
get muon system extension
Definition: MuonSystemExtensionTool.cxx:142
Muon::MuonSystemExtensionTool::~MuonSystemExtensionTool
virtual ~MuonSystemExtensionTool()=default
Muon::MuonSystemExtensionTool::SurfaceVec
std::vector< MuonLayerSurface > SurfaceVec
Definition: MuonSystemExtensionTool.h:34
MuonLayerSurface.h
Muon::MuonSystemExtensionTool::MuonSystemExtensionTool
MuonSystemExtensionTool(const std::string &type, const std::string &name, const IInterface *parent)
Default AlgTool functions.
Definition: MuonSystemExtensionTool.cxx:38
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
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Trk::ParametersBase
Definition: ParametersBase.h:55
Muon::MuonStationIndex::DetectorRegionIndex
DetectorRegionIndex
enum to classify the different layers in the muon spectrometer
Definition: MuonStationIndex.h:47
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
Muon::MuonSystemExtensionTool::m_referenceSurfaces
std::array< std::array< SurfaceVec, 16 >, MuonStationIndex::DetectorRegionIndexMax > m_referenceSurfaces
reference surfaces per region and sector
Definition: MuonSystemExtensionTool.h:74
Muon::MuonStationIndex::DetectorRegionIndexMax
@ DetectorRegionIndexMax
Definition: MuonStationIndex.h:50
Muon::MuonSystemExtensionTool::m_printer
PublicToolHandle< MuonEDMPrinterTool > m_printer
Definition: MuonSystemExtensionTool.h:65
Muon::IMuonSystemExtensionTool::SystemExtensionCache
Helper struct to pipe all data needed by the tool to equip the Id track with a MuonSystemExtension.
Definition: IMuonSystemExtensionTool.h:41
TrackParticle.h
IParticleCaloExtensionTool.h
MuonSectorMapping.h
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
Muon::IMuonSystemExtensionTool
Definition: IMuonSystemExtensionTool.h:29
Muon::MuonSystemExtensionTool::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Definition: MuonSystemExtensionTool.h:63
Muon::MuonSectorMapping
Definition: MuonSectorMapping.h:20
MuonStationIndex.h
Muon::MuonSystemExtensionTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonSystemExtensionTool.h:67
AthAlgTool
Definition: AthAlgTool.h:26
Muon::MuonSystemExtensionTool::muonLayerInterSections
bool muonLayerInterSections(const EventContext &ctx, const MuonCombined::TagBase &cmb_tag, SystemExtensionCache &cache) const override
Constructs the layer intersections from a primary muon track using the track states in the muon spect...
Definition: MuonSystemExtensionTool.cxx:281
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
ServiceHandle< Muon::IMuonIdHelperSvc >