ATLAS Offline Software
MuonLayerROTs.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_MUONLAYERROTS_H
6 #define MUON_MUONLAYERROTS_H
7 
8 #include <vector>
9 #include <memory>
10 
14 
15 namespace Muon {
16 
18  class MuonLayerROTs {
19  public:
21  MuonLayerROTs() = default;
27  ~MuonLayerROTs() = default;
28 
30  void addMdts(const std::vector<const MdtDriftCircleOnTrack*>& mdts);
31 
33  void replaceMdts(const std::vector<const MdtDriftCircleOnTrack*>& mdts);
34 
36  void addClusters(const std::vector<const MuonClusterOnTrack*>& clusters, MuonStationIndex::TechnologyIndex tech);
37 
39  void replaceClusters(const std::vector<const MuonClusterOnTrack*>& clusters, MuonStationIndex::TechnologyIndex tech);
40 
42  const std::vector<const MdtDriftCircleOnTrack*>& getMdts() const;
43 
45  const std::vector<const MuonClusterOnTrack*>& getClusters(MuonStationIndex::TechnologyIndex tech) const;
46 
47  private:
49  std::vector<const MdtDriftCircleOnTrack*> m_mdts{};
51  std::array<std::vector<const MuonClusterOnTrack*>, s_techMax> m_clustersPerTechnology{};
52 
53  std::vector<std::unique_ptr<const Trk::RIO_OnTrack>> m_garbage{};
54  };
55 
56  inline const std::vector<const MdtDriftCircleOnTrack*>& MuonLayerROTs::getMdts() const { return m_mdts; }
57 
58  inline const std::vector<const MuonClusterOnTrack*>&
60  using namespace MuonStationIndex;
61  return m_clustersPerTechnology[toInt(tech)];
62  }
63 } // namespace Muon
64 
65 #endif
Muon::MuonLayerROTs::getClusters
const std::vector< const MuonClusterOnTrack * > & getClusters(MuonStationIndex::TechnologyIndex tech) const
access calibrated MuonClusters for a given technolgy
Definition: MuonLayerROTs.h:59
Muon::MuonLayerROTs::s_techMax
static constexpr int s_techMax
Definition: MuonLayerROTs.h:50
Muon::MuonStationIndex::TechnologyIndex
TechnologyIndex
enum to classify the different layers in the muon spectrometer
Definition: MuonStationIndex.h:54
Muon::MuonLayerROTs::m_clustersPerTechnology
std::array< std::vector< const MuonClusterOnTrack * >, s_techMax > m_clustersPerTechnology
Definition: MuonLayerROTs.h:51
Muon::MuonLayerROTs::getMdts
const std::vector< const MdtDriftCircleOnTrack * > & getMdts() const
access calibrated MDT's
Definition: MuonLayerROTs.h:56
Muon::MuonLayerROTs::~MuonLayerROTs
~MuonLayerROTs()=default
destructor
MdtDriftCircleOnTrack.h
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition: TrackSystemController.h:45
Muon::MuonStationIndex::TechnologyIndex::TechnologyIndexMax
@ TechnologyIndexMax
Muon::MuonLayerROTs::addMdts
void addMdts(const std::vector< const MdtDriftCircleOnTrack * > &mdts)
add MDTs, will merge them with existing MDT's.
Definition: MuonLayerROTs.cxx:9
Muon::MuonLayerROTs::MuonLayerROTs
MuonLayerROTs()=default
constructor
Muon::MuonLayerROTs::addClusters
void addClusters(const std::vector< const MuonClusterOnTrack * > &clusters, MuonStationIndex::TechnologyIndex tech)
add MuonClusters of a given technology, will merge them with existing clusters.
Definition: MuonLayerROTs.cxx:17
Muon::MuonLayerROTs::m_mdts
std::vector< const MdtDriftCircleOnTrack * > m_mdts
payload
Definition: MuonLayerROTs.h:49
Muon::MuonLayerROTs::MuonLayerROTs
MuonLayerROTs(MuonLayerROTs &&other)=default
Move constructor.
Muon::MuonLayerROTs::replaceClusters
void replaceClusters(const std::vector< const MuonClusterOnTrack * > &clusters, MuonStationIndex::TechnologyIndex tech)
add MuonClusters of a given technology, will remove any existing clusters.
Definition: MuonLayerROTs.cxx:33
Muon::MuonLayerROTs::replaceMdts
void replaceMdts(const std::vector< const MdtDriftCircleOnTrack * > &mdts)
add MDTs, will remove any existing MDT's.
Definition: MuonLayerROTs.cxx:28
Muon::MuonLayerROTs
struct holding RIO_OnTracks for a given layer
Definition: MuonLayerROTs.h:18
MuonR4::SegmentFit::toInt
constexpr int toInt(const ParamDefs p)
Definition: MuonHoughDefs.h:42
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
Muon::MuonLayerROTs::m_garbage
std::vector< std::unique_ptr< const Trk::RIO_OnTrack > > m_garbage
Definition: MuonLayerROTs.h:53
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
MuonClusterOnTrack.h
MuonStationIndex.h
Muon::MuonLayerROTs::operator=
MuonLayerROTs & operator=(MuonLayerROTs &&)=default
Move assignment.
Muon::MuonStationIndex::toInt
constexpr int toInt(const EnumType enumVal)
Definition: MuonStationIndex.h:61