ATLAS Offline Software
HoughDataPerSec.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 MUONRECTOOLINTERFACES_HOUGHDATAPERSEC_H
6 #define MUONRECTOOLINTERFACES_HOUGHDATAPERSEC_H
7 
8 #include <map>
9 #include <memory>
10 #include <set>
11 #include <vector>
12 
13 #include "AthenaKernel/CLASS_DEF.h"
18 
19 namespace Muon {
20  struct HoughDataPerSec {
23 
24  using MaximumVec = std::vector<std::shared_ptr<MuonHough::MuonLayerHough::Maximum>>;
25  using PhiMaximumVec = std::vector<std::shared_ptr<MuonHough::MuonPhiLayerHough::Maximum>>;
26 
27  using RegionHitVec = std::vector<HitVec>;
28  using RegionMaximumVec = std::vector<MaximumVec>;
29 
31 
32  using RegionPhiHitVec = std::vector<PhiHitVec>;
33  using MaximumAssociationMap = std::map<MuonHough::MuonLayerHough::Maximum*, MaximumVec> ;
34  using RegionPhiMaximumVec = std::vector<PhiMaximumVec>;
35 
40  phiHitVec.resize(detRegMax);
41  phiMaxVec.resize(detRegMax);
42  }
43 
45 
47 
48  ~HoughDataPerSec() = default;
49 
50 
51  int sector{-1};
52  RegionHitVec hitVec{}; // Owns the contained objects
53  RegionPhiHitVec phiHitVec{}; // Owns the contained objects
54  RegionMaximumVec maxVec{}; // Owns the contained objects
55  RegionPhiMaximumVec phiMaxVec{}; // Owns the contained objects
56  std::array<int, detRegMax> nlayersWithMaxima{};
57  std::array<int, detRegMax> nphilayersWithMaxima{};
58  std::array<int, detRegMax> nmaxHitsInRegion{};
59  std::array<int, detRegMax> nphimaxHitsInRegion{};
60  MaximumAssociationMap maxAssociationMap{}; // stores association of a given maximium with other maxima in neighbouring sectors
61  std::set<MuonHough::MuonLayerHough::Maximum*>
62  associatedToOtherSector{}; // used to flagged maxima that were already associated to another sector
63  // returns the number of phi and eta hits in the region with most eta hits
64  // regions with phi hits are always prefered over regions without
66  };
67 
69  std::vector<HoughDataPerSec> vec;
70  MuonHough::MuonDetectorHough detectorHoughTransforms; // Kept with the vec because it has references to these objects
71  std::vector<std::unique_ptr<TgcHitClusteringObj>>
72  tgcClusteringObjs; // Kept with the vec because it has references to these objects
73  };
74 } // namespace Muon
75 
76 CLASS_DEF(Muon::HoughDataPerSec, 163257499, 1)
77 CLASS_DEF(Muon::HoughDataPerSectorVec, 61014906, 1)
78 
79 #endif
TgcHitClustering.h
MuonRegionHough.h
MuonHough::PhiHitVec
std::vector< std::shared_ptr< MuonHough::PhiHit > > PhiHitVec
Definition: MuonPhiLayerHough.h:20
Muon::HoughDataPerSectorVec::tgcClusteringObjs
std::vector< std::unique_ptr< TgcHitClusteringObj > > tgcClusteringObjs
Definition: HoughDataPerSec.h:72
MuonHough::HitVec
std::vector< std::shared_ptr< MuonHough::Hit > > HitVec
Definition: MuonLayerHough.h:21
Muon::HoughDataPerSec::phiHitVec
RegionPhiHitVec phiHitVec
Definition: HoughDataPerSec.h:53
Muon::HoughDataPerSec::phiMaxVec
RegionPhiMaximumVec phiMaxVec
Definition: HoughDataPerSec.h:55
Muon::MuonStationIndex::sectorLayerHashMax
constexpr unsigned int sectorLayerHashMax()
maximum create a hash out of region and layer
Definition: MuonStationIndex.h:110
Muon::HoughDataPerSec::HoughDataPerSec
HoughDataPerSec(HoughDataPerSec &&other)=default
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
Muon::HoughDataPerSec::MaximumAssociationMap
std::map< MuonHough::MuonLayerHough::Maximum *, MaximumVec > MaximumAssociationMap
Definition: HoughDataPerSec.h:33
Muon::HoughDataPerSec::nphilayersWithMaxima
std::array< int, detRegMax > nphilayersWithMaxima
Definition: HoughDataPerSec.h:57
Muon::HoughDataPerSec::nlayersWithMaxima
std::array< int, detRegMax > nlayersWithMaxima
Definition: HoughDataPerSec.h:56
Muon::HoughDataPerSec::nmaxHitsInRegion
std::array< int, detRegMax > nmaxHitsInRegion
Definition: HoughDataPerSec.h:58
Muon::HoughDataPerSec::operator=
HoughDataPerSec & operator=(HoughDataPerSec &&other)=default
Muon::HoughDataPerSec::~HoughDataPerSec
~HoughDataPerSec()=default
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition: TrackSystemController.h:45
Muon::MuonStationIndex::DetectorRegionIndex::DetectorRegionIndexMax
@ DetectorRegionIndexMax
Muon::HoughDataPerSec::HoughDataPerSec
HoughDataPerSec()
Default constructor.
Definition: HoughDataPerSec.h:37
Muon::HoughDataPerSec::PhiHitVec
MuonHough::PhiHitVec PhiHitVec
Definition: HoughDataPerSec.h:22
MuonLayerHough.h
Muon::HoughDataPerSec::nphimaxHitsInRegion
std::array< int, detRegMax > nphimaxHitsInRegion
Definition: HoughDataPerSec.h:59
Muon::HoughDataPerSec::associatedToOtherSector
std::set< MuonHough::MuonLayerHough::Maximum * > associatedToOtherSector
Definition: HoughDataPerSec.h:62
Muon::HoughDataPerSec::maxEtaHits
int maxEtaHits() const
Definition: HoughDataPerSec.h:65
Muon::HoughDataPerSec::HitVec
MuonHough::HitVec HitVec
Definition: HoughDataPerSec.h:21
Muon::HoughDataPerSec::PhiMaximumVec
std::vector< std::shared_ptr< MuonHough::MuonPhiLayerHough::Maximum > > PhiMaximumVec
Definition: HoughDataPerSec.h:25
Muon::HoughDataPerSec::RegionPhiMaximumVec
std::vector< PhiMaximumVec > RegionPhiMaximumVec
Definition: HoughDataPerSec.h:34
Muon::HoughDataPerSectorVec::vec
std::vector< HoughDataPerSec > vec
Definition: HoughDataPerSec.h:69
Muon::HoughDataPerSectorVec::detectorHoughTransforms
MuonHough::MuonDetectorHough detectorHoughTransforms
Definition: HoughDataPerSec.h:70
Muon::HoughDataPerSec::detRegMax
static constexpr int detRegMax
Definition: HoughDataPerSec.h:30
Muon::HoughDataPerSec::RegionMaximumVec
std::vector< MaximumVec > RegionMaximumVec
Definition: HoughDataPerSec.h:28
MuonHough::MuonDetectorHough
class managing all Hough transforms in the detector
Definition: MuonRegionHough.h:66
Muon::HoughDataPerSec
Definition: HoughDataPerSec.h:20
MuonPhiLayerHough.h
Muon::HoughDataPerSectorVec
Definition: HoughDataPerSec.h:68
Muon::HoughDataPerSec::RegionHitVec
std::vector< HitVec > RegionHitVec
Definition: HoughDataPerSec.h:27
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
Muon::HoughDataPerSec::maxAssociationMap
MaximumAssociationMap maxAssociationMap
Definition: HoughDataPerSec.h:60
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:67
Muon::HoughDataPerSec::sector
int sector
Definition: HoughDataPerSec.h:51
Muon::HoughDataPerSec::RegionPhiHitVec
std::vector< PhiHitVec > RegionPhiHitVec
Definition: HoughDataPerSec.h:32
CLASS_DEF.h
macros to associate a CLID to a type
Muon::HoughDataPerSec::hitVec
RegionHitVec hitVec
Definition: HoughDataPerSec.h:52
Muon::HoughDataPerSec::MaximumVec
std::vector< std::shared_ptr< MuonHough::MuonLayerHough::Maximum > > MaximumVec
Definition: HoughDataPerSec.h:24
Muon::MuonStationIndex::toInt
constexpr int toInt(const EnumType enumVal)
Definition: MuonStationIndex.h:61
Muon::HoughDataPerSec::maxVec
RegionMaximumVec maxVec
Definition: HoughDataPerSec.h:54