ATLAS Offline Software
Loading...
Searching...
No Matches
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
17namespace MuonHough {
18
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
class managing geometry of the Hough spaces
RegionDescriptor getDescriptor(int sector, DetRegIdx region, LayIdx layer) const
RegionDescriptionVec m_regionDescriptions
cached geometry
Muon::MuonStationIndex::LayerIndex LayIdx
Muon::MuonStationIndex::DetectorRegionIndex DetRegIdx
void initDefaultRegions()
initialize default geometry
Muon::MuonStationIndex::DetectorRegionIndex DetRegIdx
Muon::MuonStationIndex::LayerIndex LayIdx
std::vector< std::unique_ptr< MuonPhiLayerHough > > m_phiTransforms
sector transforms
std::vector< std::unique_ptr< MuonSectorHough > > m_sectors
MuonPhiLayerHough & phiHough(DetRegIdx region)
access phi transform
MuonDetectorHough(const RegionDescriptionVec &regionDescriptors)
constructor using custom region definitions
void reset()
reset histograms
MuonDetectorHough()
constructor using default region definitions
MuonLayerHough & hough(int sector, DetRegIdx region, LayIdx layer)
access precision transform
void reset()
reset histograms
Muon::MuonStationIndex::DetectorRegionIndex DetRegIdx
std::vector< std::unique_ptr< MuonLayerHough > > m_transforms
MuonLayerHough & hough(DetRegIdx region, LayIdx layer)
access the Hough transform for a given region
MuonSectorHough(int sector, const MuonDetectorDescription &regionDescriptions)
constructor for a given sector using the default geometry
Muon::MuonStationIndex::LayerIndex LayIdx
std::vector< RegionDescriptor > RegionDescriptionVec
DetectorRegionIndex
enum to classify the different layers in the muon spectrometer
unsigned int sectorLayerHash(DetectorRegionIndex detectorRegionIndex, LayerIndex layerIndex)
create a hash out of region and layer
LayerIndex
enum to classify the different layers in the muon spectrometer
Definition index.py:1
struct containing all information to build a Hough transform for a given chamber index