ATLAS Offline Software
MuonSystemExtensionTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 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"
21 
22 
23 namespace Trk {
24  class Surface;
25 }
26 
27 namespace Muon {
28 
29  class MuonSystemExtension;
30 
32  public:
33  typedef std::vector<MuonLayerSurface> SurfaceVec;
34 
36  MuonSystemExtensionTool(const std::string& type, const std::string& name, const IInterface* parent);
37  virtual ~MuonSystemExtensionTool() = default;
38  StatusCode initialize() override;
39 
41  bool muonSystemExtension(const EventContext& ctx, SystemExtensionCache& cache) const override;
42 
43  bool muonLayerInterSections(const EventContext& ctx,
44  const MuonCombined::TagBase& cmb_tag,
45  SystemExtensionCache& cache) const override;
46 
47  private:
49  bool initializeGeometry();
50  bool initializeGeometryBarrel(int sector, const Amg::AngleAxis3D& sectorRotation);
52  const Amg::AngleAxis3D& sectorRotation);
53 
55  SurfaceVec getSurfacesForIntersection(const Trk::TrackParameters& muonEntryPars, const SystemExtensionCache& cache) const;
56 
57  MuonSystemExtension::Intersection makeInterSection(const std::shared_ptr<const Trk::TrackParameters>& pars, const MuonLayerSurface& surf) const;
58 
59 
60  ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtensionTool{
61  this,
62  "ParticleCaloExtensionTool",
63  "Trk::ParticleCaloExtensionTool/ParticleCaloExtensionTool",
64  };
65  ToolHandle<Trk::IExtrapolator> m_extrapolator{
66  this,
67  "Extrapolator",
68  "Trk::Extrapolator/AtlasExtrapolator",
69  };
70 
71  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
72 
73 
75  std::vector<std::vector<SurfaceVec> > m_referenceSurfaces;
76 
79  };
80 } // namespace Muon
81 
82 #endif
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
IMuonSystemExtensionTool.h
TrackParameters.h
Muon::MuonSystemExtensionTool::initialize
StatusCode initialize() override
Definition: MuonSystemExtensionTool.cxx:37
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:274
Muon::MuonSystemExtensionTool::m_sectorMapping
MuonSectorMapping m_sectorMapping
sector mapping helper
Definition: MuonSystemExtensionTool.h:78
Muon::MuonSystemExtensionTool
Definition: MuonSystemExtensionTool.h:31
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:7
Muon::MuonSystemExtensionTool::initializeGeometry
bool initializeGeometry()
initialize geometry
Definition: MuonSystemExtensionTool.cxx:46
Muon::MuonSystemExtensionTool::initializeGeometryEndcap
bool initializeGeometryEndcap(int sector, MuonStationIndex::DetectorRegionIndex regionIndex, const Amg::AngleAxis3D &sectorRotation)
Definition: MuonSystemExtensionTool.cxx:66
IExtrapolator.h
Muon::MuonSystemExtensionTool::m_referenceSurfaces
std::vector< std::vector< SurfaceVec > > m_referenceSurfaces
reference surfaces per region and sector
Definition: MuonSystemExtensionTool.h:75
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
Muon::MuonSystemExtensionTool::muonSystemExtension
bool muonSystemExtension(const EventContext &ctx, SystemExtensionCache &cache) const override
get muon system extension
Definition: MuonSystemExtensionTool.cxx:154
Muon::MuonSystemExtensionTool::~MuonSystemExtensionTool
virtual ~MuonSystemExtensionTool()=default
Muon::MuonSystemExtensionTool::SurfaceVec
std::vector< MuonLayerSurface > SurfaceVec
Definition: MuonSystemExtensionTool.h:33
MuonLayerSurface.h
Muon::MuonSystemExtensionTool::initializeGeometryBarrel
bool initializeGeometryBarrel(int sector, const Amg::AngleAxis3D &sectorRotation)
Definition: MuonSystemExtensionTool.cxx:111
Muon::MuonSystemExtensionTool::MuonSystemExtensionTool
MuonSystemExtensionTool(const std::string &type, const std::string &name, const IInterface *parent)
Default AlgTool functions.
Definition: MuonSystemExtensionTool.cxx:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Muon::MuonLayerSurface
types
Definition: MuonLayerSurface.h:15
AthAlgTool.h
Muon::MuonSystemExtensionTool::makeInterSection
MuonSystemExtension::Intersection makeInterSection(const std::shared_ptr< const Trk::TrackParameters > &pars, const MuonLayerSurface &surf) const
Definition: MuonSystemExtensionTool.cxx:246
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:192
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:65
Muon::MuonSectorMapping
Definition: MuonSectorMapping.h:20
Amg::AngleAxis3D
Eigen::AngleAxisd AngleAxis3D
Definition: GeoPrimitives.h:45
Muon::MuonSystemExtension::Intersection
data per intersection
Definition: MuonSystemExtension.h:21
MuonStationIndex.h
Muon::MuonSystemExtensionTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonSystemExtensionTool.h:71
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:317
Muon::MuonSystemExtensionTool::m_caloExtensionTool
ToolHandle< Trk::IParticleCaloExtensionTool > m_caloExtensionTool
Definition: MuonSystemExtensionTool.h:60
IMuonIdHelperSvc.h
MuonCombined::TagBase
base-class for combined reconstruction output Provides access to MuonType and Author
Definition: TagBase.h:48
ServiceHandle< Muon::IMuonIdHelperSvc >