ATLAS Offline Software
HoughDataPerSec.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 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  typedef std::vector<HitVec> RegionHitVec;
28  typedef std::vector<PhiHitVec> RegionPhiHitVec;
29  typedef std::map<MuonHough::MuonLayerHough::Maximum*, MaximumVec> MaximumAssociationMap;
30  typedef std::vector<MaximumVec> RegionMaximumVec;
31  typedef std::vector<PhiMaximumVec> RegionPhiMaximumVec;
32 
34  sector = -1;
43  }
44 
45  ~HoughDataPerSec() = default;
46 
47 
48  int sector;
49  RegionHitVec hitVec; // Owns the contained objects
50  RegionPhiHitVec phiHitVec; // Owns the contained objects
51  RegionMaximumVec maxVec; // Owns the contained objects
52  RegionPhiMaximumVec phiMaxVec; // Owns the contained objects
53  std::vector<int> nlayersWithMaxima;
54  std::vector<int> nphilayersWithMaxima;
55  std::vector<int> nmaxHitsInRegion;
56  std::vector<int> nphimaxHitsInRegion;
57  MaximumAssociationMap maxAssociationMap; // stores association of a given maximium with other maxima in neighbouring sectors
58  std::set<MuonHough::MuonLayerHough::Maximum*>
59  associatedToOtherSector; // used to flagged maxima that were already associated to another sector
60  // returns the number of phi and eta hits in the region with most eta hits
61  // regions with phi hits are always prefered over regions without
63  };
64 
66  std::vector<HoughDataPerSec> vec;
67  MuonHough::MuonDetectorHough detectorHoughTransforms; // Kept with the vec because it has references to these objects
68  std::vector<std::unique_ptr<TgcHitClusteringObj>>
69  tgcClusteringObjs; // Kept with the vec because it has references to these objects
70  };
71 } // namespace Muon
72 
73 CLASS_DEF(Muon::HoughDataPerSec, 163257499, 1)
74 CLASS_DEF(Muon::HoughDataPerSectorVec, 61014906, 1)
75 
76 #endif
TgcHitClustering.h
MuonRegionHough.h
MuonHough::PhiHitVec
std::vector< std::shared_ptr< MuonHough::PhiHit > > PhiHitVec
Definition: MuonPhiLayerHough.h:20
Muon::HoughDataPerSec::nlayersWithMaxima
std::vector< int > nlayersWithMaxima
Definition: HoughDataPerSec.h:53
max
#define max(a, b)
Definition: cfImp.cxx:41
Muon::HoughDataPerSectorVec::tgcClusteringObjs
std::vector< std::unique_ptr< TgcHitClusteringObj > > tgcClusteringObjs
Definition: HoughDataPerSec.h:69
MuonHough::HitVec
std::vector< std::shared_ptr< MuonHough::Hit > > HitVec
Definition: MuonLayerHough.h:21
Muon::HoughDataPerSec::phiHitVec
RegionPhiHitVec phiHitVec
Definition: HoughDataPerSec.h:50
Muon::HoughDataPerSec::phiMaxVec
RegionPhiMaximumVec phiMaxVec
Definition: HoughDataPerSec.h:52
Muon::HoughDataPerSec::RegionHitVec
std::vector< HitVec > RegionHitVec
Definition: HoughDataPerSec.h:27
Muon::MuonStationIndex::sectorLayerHashMax
static unsigned int sectorLayerHashMax()
maximum create a hash out of region and layer
Definition: MuonStationIndex.cxx:231
Muon::HoughDataPerSec::~HoughDataPerSec
~HoughDataPerSec()=default
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
Muon::HoughDataPerSec::HoughDataPerSec
HoughDataPerSec()
Definition: HoughDataPerSec.h:33
Muon::HoughDataPerSec::PhiHitVec
MuonHough::PhiHitVec PhiHitVec
Definition: HoughDataPerSec.h:22
MuonLayerHough.h
Muon::HoughDataPerSec::associatedToOtherSector
std::set< MuonHough::MuonLayerHough::Maximum * > associatedToOtherSector
Definition: HoughDataPerSec.h:59
Muon::HoughDataPerSec::maxEtaHits
int maxEtaHits() const
Definition: HoughDataPerSec.h:62
Muon::HoughDataPerSec::RegionPhiHitVec
std::vector< PhiHitVec > RegionPhiHitVec
Definition: HoughDataPerSec.h:28
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::RegionMaximumVec
std::vector< MaximumVec > RegionMaximumVec
Definition: HoughDataPerSec.h:30
Muon::HoughDataPerSectorVec::vec
std::vector< HoughDataPerSec > vec
Definition: HoughDataPerSec.h:66
Muon::HoughDataPerSec::RegionPhiMaximumVec
std::vector< PhiMaximumVec > RegionPhiMaximumVec
Definition: HoughDataPerSec.h:31
Muon::HoughDataPerSectorVec::detectorHoughTransforms
MuonHough::MuonDetectorHough detectorHoughTransforms
Definition: HoughDataPerSec.h:67
Muon::HoughDataPerSec::MaximumAssociationMap
std::map< MuonHough::MuonLayerHough::Maximum *, MaximumVec > MaximumAssociationMap
Definition: HoughDataPerSec.h:29
MuonHough::MuonDetectorHough
class managing all Hough transforms in the detector
Definition: MuonRegionHough.h:56
Muon::HoughDataPerSec::nphilayersWithMaxima
std::vector< int > nphilayersWithMaxima
Definition: HoughDataPerSec.h:54
Muon::MuonStationIndex::DetectorRegionIndexMax
@ DetectorRegionIndexMax
Definition: MuonStationIndex.h:50
Muon::HoughDataPerSec
Definition: HoughDataPerSec.h:20
MuonPhiLayerHough.h
Muon::HoughDataPerSectorVec
Definition: HoughDataPerSec.h:65
Muon::HoughDataPerSec::maxAssociationMap
MaximumAssociationMap maxAssociationMap
Definition: HoughDataPerSec.h:57
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:64
Muon::HoughDataPerSec::nmaxHitsInRegion
std::vector< int > nmaxHitsInRegion
Definition: HoughDataPerSec.h:55
Muon::HoughDataPerSec::sector
int sector
Definition: HoughDataPerSec.h:48
Muon::HoughDataPerSec::nphimaxHitsInRegion
std::vector< int > nphimaxHitsInRegion
Definition: HoughDataPerSec.h:56
CLASS_DEF.h
macros to associate a CLID to a type
Muon::HoughDataPerSec::hitVec
RegionHitVec hitVec
Definition: HoughDataPerSec.h:49
Muon::HoughDataPerSec::MaximumVec
std::vector< std::shared_ptr< MuonHough::MuonLayerHough::Maximum > > MaximumVec
Definition: HoughDataPerSec.h:24
Muon::HoughDataPerSec::maxVec
RegionMaximumVec maxVec
Definition: HoughDataPerSec.h:51