ATLAS Offline Software
Loading...
Searching...
No Matches
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
18
19namespace Muon {
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
43
44 HoughDataPerSec(HoughDataPerSec&& other) = default;
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
65 int maxEtaHits() const { return std::max(nmaxHitsInRegion[0], std::max(nmaxHitsInRegion[1], nmaxHitsInRegion[2])); }
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
77CLASS_DEF(Muon::HoughDataPerSectorVec, 61014906, 1)
78
79#endif
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
class managing all Hough transforms in the detector
std::vector< std::shared_ptr< MuonHough::PhiHit > > PhiHitVec
std::vector< std::shared_ptr< MuonHough::Hit > > HitVec
constexpr int toInt(const EnumType enumVal)
constexpr unsigned int sectorLayerHashMax()
maximum create a hash out of region and layer
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
std::array< int, detRegMax > nlayersWithMaxima
std::array< int, detRegMax > nphimaxHitsInRegion
std::map< MuonHough::MuonLayerHough::Maximum *, MaximumVec > MaximumAssociationMap
std::vector< std::shared_ptr< MuonHough::MuonPhiLayerHough::Maximum > > PhiMaximumVec
RegionPhiMaximumVec phiMaxVec
MaximumAssociationMap maxAssociationMap
HoughDataPerSec()
Default constructor.
std::vector< std::shared_ptr< MuonHough::MuonLayerHough::Maximum > > MaximumVec
std::vector< HitVec > RegionHitVec
std::vector< PhiMaximumVec > RegionPhiMaximumVec
MuonHough::PhiHitVec PhiHitVec
std::vector< PhiHitVec > RegionPhiHitVec
HoughDataPerSec(HoughDataPerSec &&other)=default
MuonHough::HitVec HitVec
RegionPhiHitVec phiHitVec
std::vector< MaximumVec > RegionMaximumVec
~HoughDataPerSec()=default
static constexpr int detRegMax
std::array< int, detRegMax > nmaxHitsInRegion
HoughDataPerSec & operator=(HoughDataPerSec &&other)=default
std::set< MuonHough::MuonLayerHough::Maximum * > associatedToOtherSector
RegionMaximumVec maxVec
std::array< int, detRegMax > nphilayersWithMaxima
std::vector< HoughDataPerSec > vec
MuonHough::MuonDetectorHough detectorHoughTransforms
std::vector< std::unique_ptr< TgcHitClusteringObj > > tgcClusteringObjs