Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
MuonRegionHough.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONREGIONHOUGH_H
6 #define MUONREGIONHOUGH_H
7 
8 #include <cmath>
9 #include <iostream>
10 #include <vector>
11 #include <format>
12 
16 
17 namespace MuonHough {
18 
21  public:
22 
27 
28 
29  RegionDescriptor getDescriptor(int sector, DetRegIdx region, LayIdx layer) const;
30 
31  private:
33  void initDefaultRegions();
34 
37  };
38 
41  public:
43  MuonSectorHough(int sector, const MuonDetectorDescription& regionDescriptions);
44 
47 
52  using namespace Muon::MuonStationIndex;
53  int index = sectorLayerHash(region, layer);
54  return *m_transforms.at(index);
55  }
56 
58  void reset();
59 
60  private:
61  std::vector<std::unique_ptr<MuonLayerHough>> m_transforms;
62  // int m_sector; /// sector number
63  };
64 
67  public:
72  return *m_phiTransforms[static_cast<int>(region)];
73  }
74 
76  MuonLayerHough& hough(int sector, DetRegIdx region, LayIdx layer) {
77  return m_sectors.at(sector - 1)->hough(region, layer);
78  }
79 
81  void reset();
82 
85 
87  MuonDetectorHough(const RegionDescriptionVec& regionDescriptors);
88 
91 
92  private:
93  void init();
94 
95  std::vector<std::unique_ptr<MuonSectorHough>> m_sectors;
96  std::vector<std::unique_ptr<MuonPhiLayerHough>> m_phiTransforms;
97  };
98 
99 
100 } // namespace MuonHough
101 #endif
Muon::MuonStationIndex::LayerIndex
LayerIndex
enum to classify the different layers in the muon spectrometer
Definition: MuonStationIndex.h:38
MuonHough::MuonDetectorHough::hough
MuonLayerHough & hough(int sector, DetRegIdx region, LayIdx layer)
access precision transform
Definition: MuonRegionHough.h:76
MuonHough::MuonDetectorHough::m_sectors
std::vector< std::unique_ptr< MuonSectorHough > > m_sectors
Definition: MuonRegionHough.h:95
Muon::MuonStationIndex
Definition: MuonStationIndex.h:13
index
Definition: index.py:1
Muon::MuonStationIndex::sectorLayerHash
unsigned int sectorLayerHash(DetectorRegionIndex detectorRegionIndex, LayerIndex layerIndex)
create a hash out of region and layer
MuonHough::MuonSectorHough::reset
void reset()
reset histograms
Definition: MuonRegionHough.cxx:34
MuonHough::MuonLayerHough
Definition: MuonLayerHough.h:59
MuonHough::MuonDetectorDescription::initDefaultRegions
void initDefaultRegions()
initialize default geometry
Definition: MuonRegionHough.cxx:90
MuonHough::RegionDescriptor
struct containing all information to build a Hough transform for a given chamber index
Definition: MuonLayerHough.h:25
MuonHough::MuonSectorHough::MuonSectorHough
MuonSectorHough(int sector, const MuonDetectorDescription &regionDescriptions)
constructor for a given sector using the default geometry
Definition: MuonRegionHough.cxx:10
MuonLayerHough.h
MuonHough::MuonSectorHough::hough
MuonLayerHough & hough(DetRegIdx region, LayIdx layer)
access the Hough transform for a given region
Definition: MuonRegionHough.h:51
MuonHough::MuonPhiLayerHough
Definition: MuonPhiLayerHough.h:22
MuonHough::MuonDetectorHough::~MuonDetectorHough
~MuonDetectorHough()
destructor
MuonHough::MuonDetectorDescription
class managing geometry of the Hough spaces
Definition: MuonRegionHough.h:20
MuonHough::MuonDetectorHough::m_phiTransforms
std::vector< std::unique_ptr< MuonPhiLayerHough > > m_phiTransforms
sector transforms
Definition: MuonRegionHough.h:96
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
MuonHough
Definition: MuonLayerHoughTool.h:40
MuonHough::MuonDetectorHough::phiHough
MuonPhiLayerHough & phiHough(DetRegIdx region)
access phi transform
Definition: MuonRegionHough.h:71
MuonHough::MuonDetectorDescription::getDescriptor
RegionDescriptor getDescriptor(int sector, DetRegIdx region, LayIdx layer) const
Definition: MuonRegionHough.cxx:61
MuonHough::MuonDetectorDescription::m_regionDescriptions
RegionDescriptionVec m_regionDescriptions
cached geometry
Definition: MuonRegionHough.h:36
MuonHough::MuonDetectorDescription::MuonDetectorDescription
MuonDetectorDescription()
constructor
Definition: MuonRegionHough.cxx:59
MuonHough::MuonDetectorHough
class managing all Hough transforms in the detector
Definition: MuonRegionHough.h:66
MuonHough::MuonSectorHough::m_transforms
std::vector< std::unique_ptr< MuonLayerHough > > m_transforms
Definition: MuonRegionHough.h:61
python.PyKernel.init
def init(v_theApp, v_rootStream=None)
Definition: PyKernel.py:45
MuonPhiLayerHough.h
MuonHough::MuonSectorHough::~MuonSectorHough
~MuonSectorHough()
destructor
Muon::MuonStationIndex::DetectorRegionIndex
DetectorRegionIndex
enum to classify the different layers in the muon spectrometer
Definition: MuonStationIndex.h:47
MuonHough::MuonSectorHough
class managing all precision Hough transforms in a sector
Definition: MuonRegionHough.h:40
MuonStationIndex.h
MuonHough::RegionDescriptionVec
std::vector< RegionDescriptor > RegionDescriptionVec
Definition: MuonLayerHough.h:56
MuonHough::MuonDetectorHough::MuonDetectorHough
MuonDetectorHough(const RegionDescriptionVec &regionDescriptors)
constructor using custom region definitions