ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonReconstruction
MuonRecTools
MuonRecToolInterfaces
MuonRecToolInterfaces
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
"
14
#include "
MuonClusterization/TgcHitClustering.h
"
15
#include "
MuonLayerHough/MuonLayerHough.h
"
16
#include "
MuonLayerHough/MuonPhiLayerHough.h
"
17
#include "
MuonLayerHough/MuonRegionHough.h
"
18
19
namespace
Muon
{
20
struct
HoughDataPerSec
{
21
using
HitVec
=
MuonHough::HitVec
;
22
using
PhiHitVec
=
MuonHough::PhiHitVec
;
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
30
static
constexpr
int
detRegMax
=
MuonStationIndex::toInt
(
MuonStationIndex::DetectorRegionIndex::DetectorRegionIndexMax
);
31
32
using
RegionPhiHitVec
= std::vector<PhiHitVec>;
33
using
MaximumAssociationMap
= std::map<MuonHough::MuonLayerHough::Maximum*, MaximumVec> ;
34
using
RegionPhiMaximumVec
= std::vector<PhiMaximumVec>;
35
37
HoughDataPerSec
() {
38
hitVec
.resize(
MuonStationIndex::sectorLayerHashMax
());
39
maxVec
.resize(
MuonStationIndex::sectorLayerHashMax
());
40
phiHitVec
.resize(
detRegMax
);
41
phiMaxVec
.resize(
detRegMax
);
42
}
43
44
HoughDataPerSec
(
HoughDataPerSec
&& other) =
default
;
45
46
HoughDataPerSec
&
operator=
(
HoughDataPerSec
&& other) =
default
;
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
68
struct
HoughDataPerSectorVec
{
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
CLASS_DEF.h
macros to associate a CLID to a type
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
MuonLayerHough.h
MuonPhiLayerHough.h
MuonRegionHough.h
TgcHitClustering.h
MuonHough::MuonDetectorHough
class managing all Hough transforms in the detector
Definition
MuonRegionHough.h:66
MuonHough::PhiHitVec
std::vector< std::shared_ptr< MuonHough::PhiHit > > PhiHitVec
Definition
MuonPhiLayerHough.h:20
MuonHough::HitVec
std::vector< std::shared_ptr< MuonHough::Hit > > HitVec
Definition
MuonLayerHough.h:21
Muon::MuonStationIndex::DetectorRegionIndex::DetectorRegionIndexMax
@ DetectorRegionIndexMax
Definition
MuonStationIndex.h:51
Muon::MuonStationIndex::toInt
constexpr int toInt(const EnumType enumVal)
Definition
MuonStationIndex.h:62
Muon::MuonStationIndex::sectorLayerHashMax
constexpr unsigned int sectorLayerHashMax()
maximum create a hash out of region and layer
Definition
MuonStationIndex.h:117
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition
TrackSystemController.h:46
Muon::HoughDataPerSec
Definition
HoughDataPerSec.h:20
Muon::HoughDataPerSec::nlayersWithMaxima
std::array< int, detRegMax > nlayersWithMaxima
Definition
HoughDataPerSec.h:56
Muon::HoughDataPerSec::nphimaxHitsInRegion
std::array< int, detRegMax > nphimaxHitsInRegion
Definition
HoughDataPerSec.h:59
Muon::HoughDataPerSec::MaximumAssociationMap
std::map< MuonHough::MuonLayerHough::Maximum *, MaximumVec > MaximumAssociationMap
Definition
HoughDataPerSec.h:33
Muon::HoughDataPerSec::HitVec
MuonHough::HitVec HitVec
Definition
HoughDataPerSec.h:21
Muon::HoughDataPerSec::phiMaxVec
RegionPhiMaximumVec phiMaxVec
Definition
HoughDataPerSec.h:55
Muon::HoughDataPerSec::maxAssociationMap
MaximumAssociationMap maxAssociationMap
Definition
HoughDataPerSec.h:60
Muon::HoughDataPerSec::HoughDataPerSec
HoughDataPerSec()
Default constructor.
Definition
HoughDataPerSec.h:37
Muon::HoughDataPerSec::MaximumVec
std::vector< std::shared_ptr< MuonHough::MuonLayerHough::Maximum > > MaximumVec
Definition
HoughDataPerSec.h:24
Muon::HoughDataPerSec::maxEtaHits
int maxEtaHits() const
Definition
HoughDataPerSec.h:65
Muon::HoughDataPerSec::RegionHitVec
std::vector< HitVec > RegionHitVec
Definition
HoughDataPerSec.h:27
Muon::HoughDataPerSec::hitVec
RegionHitVec hitVec
Definition
HoughDataPerSec.h:52
Muon::HoughDataPerSec::RegionPhiMaximumVec
std::vector< PhiMaximumVec > RegionPhiMaximumVec
Definition
HoughDataPerSec.h:34
Muon::HoughDataPerSec::PhiHitVec
MuonHough::PhiHitVec PhiHitVec
Definition
HoughDataPerSec.h:22
Muon::HoughDataPerSec::sector
int sector
Definition
HoughDataPerSec.h:51
Muon::HoughDataPerSec::RegionPhiHitVec
std::vector< PhiHitVec > RegionPhiHitVec
Definition
HoughDataPerSec.h:32
Muon::HoughDataPerSec::HoughDataPerSec
HoughDataPerSec(HoughDataPerSec &&other)=default
Muon::HoughDataPerSec::PhiMaximumVec
std::vector< std::shared_ptr< MuonHough::MuonPhiLayerHough::Maximum > > PhiMaximumVec
Definition
HoughDataPerSec.h:25
Muon::HoughDataPerSec::phiHitVec
RegionPhiHitVec phiHitVec
Definition
HoughDataPerSec.h:53
Muon::HoughDataPerSec::RegionMaximumVec
std::vector< MaximumVec > RegionMaximumVec
Definition
HoughDataPerSec.h:28
Muon::HoughDataPerSec::~HoughDataPerSec
~HoughDataPerSec()=default
Muon::HoughDataPerSec::detRegMax
static constexpr int detRegMax
Definition
HoughDataPerSec.h:30
Muon::HoughDataPerSec::nmaxHitsInRegion
std::array< int, detRegMax > nmaxHitsInRegion
Definition
HoughDataPerSec.h:58
Muon::HoughDataPerSec::operator=
HoughDataPerSec & operator=(HoughDataPerSec &&other)=default
Muon::HoughDataPerSec::associatedToOtherSector
std::set< MuonHough::MuonLayerHough::Maximum * > associatedToOtherSector
Definition
HoughDataPerSec.h:62
Muon::HoughDataPerSec::maxVec
RegionMaximumVec maxVec
Definition
HoughDataPerSec.h:54
Muon::HoughDataPerSec::nphilayersWithMaxima
std::array< int, detRegMax > nphilayersWithMaxima
Definition
HoughDataPerSec.h:57
Muon::HoughDataPerSectorVec
Definition
HoughDataPerSec.h:68
Muon::HoughDataPerSectorVec::vec
std::vector< HoughDataPerSec > vec
Definition
HoughDataPerSec.h:69
Muon::HoughDataPerSectorVec::detectorHoughTransforms
MuonHough::MuonDetectorHough detectorHoughTransforms
Definition
HoughDataPerSec.h:70
Muon::HoughDataPerSectorVec::tgcClusteringObjs
std::vector< std::unique_ptr< TgcHitClusteringObj > > tgcClusteringObjs
Definition
HoughDataPerSec.h:72
Generated on
for ATLAS Offline Software by
1.17.0