ATLAS Offline Software
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
MuonHough::MuonDetectorDescription Class Reference

class managing geometry of the Hough spaces More...

#include <MuonRegionHough.h>

Collaboration diagram for MuonHough::MuonDetectorDescription:

Public Types

using DetRegIdx = Muon::MuonStationIndex::DetectorRegionIndex
 
using LayIdx = Muon::MuonStationIndex::LayerIndex
 

Public Member Functions

 MuonDetectorDescription ()
 constructor More...
 
RegionDescriptor getDescriptor (int sector, DetRegIdx region, LayIdx layer) const
 

Private Member Functions

void initDefaultRegions ()
 initialize default geometry More...
 

Private Attributes

RegionDescriptionVec m_regionDescriptions
 cached geometry More...
 

Detailed Description

class managing geometry of the Hough spaces

Definition at line 20 of file MuonRegionHough.h.

Member Typedef Documentation

◆ DetRegIdx

Definition at line 23 of file MuonRegionHough.h.

◆ LayIdx

Definition at line 24 of file MuonRegionHough.h.

Constructor & Destructor Documentation

◆ MuonDetectorDescription()

MuonHough::MuonDetectorDescription::MuonDetectorDescription ( )

constructor

Definition at line 59 of file MuonRegionHough.cxx.

59 { initDefaultRegions(); }

Member Function Documentation

◆ getDescriptor()

RegionDescriptor MuonHough::MuonDetectorDescription::getDescriptor ( int  sector,
DetRegIdx  region,
LayIdx  layer 
) const

Definition at line 61 of file MuonRegionHough.cxx.

61  {
62  bool isSmall = (sector % 2 == 0);
63  using namespace Muon::MuonStationIndex;
65  if (chIndex == ChIdx::ChUnknown || chIndex == ChIdx::ChIndexMax) {
66  return RegionDescriptor{};
67  }
68 
69  RegionDescriptor descriptor = m_regionDescriptions[toInt(chIndex)];
70  descriptor.sector = sector;
71  // exceptions for a few barrel regions
72  if (region == DetRegIdx::Barrel) {
73  if ((sector == 10 || sector == 14) && layer == LayIdx::Inner)
74  descriptor.referencePosition = 5400.;
75  else if ((sector == 11 || sector == 13) && layer == LayIdx::Outer)
76  descriptor.referencePosition = 10650.;
77  } else if (region == DetRegIdx::EndcapC) { // multiply reference position by -1 for C side
78  descriptor.region = region;
79  if (layer == LayIdx::BarrelExtended) {
80  descriptor.yMinRange *= -1;
81  descriptor.yMaxRange *= -1;
82  std::swap(descriptor.yMinRange, descriptor.yMaxRange);
83  } else {
84  descriptor.referencePosition *= -1;
85  }
86  }
87  return descriptor;
88  }

◆ initDefaultRegions()

void MuonHough::MuonDetectorDescription::initDefaultRegions ( )
private

initialize default geometry

Definition at line 90 of file MuonRegionHough.cxx.

90  {
91  double scalefactor = 1.0; // can be used to tune the steps in theta variation!
92  int inner_step = 3; // default is 3
93  int middle_step = 5 * scalefactor; // default is 5--range is 0.25
94  int outer_step = 7 * scalefactor; // default is 7--range is 0.35
95  double inner_gap = 0.05; // default is 0.05
96  double middle_gap = 0.1 / scalefactor; // default is 0.1
97  double outer_gap = middle_gap; // default is 0.1
98  int ystep = 30; // default is 30
99  m_regionDescriptions.resize(static_cast<int>(ChIdx::ChIndexMax));
100  m_regionDescriptions[static_cast<int>(ChIdx::BIS)] = RegionDescriptor(1, DetRegIdx::Barrel, ChIdx::BIS,
101  4560, -7500, 7500, ystep, middle_gap, inner_step);
102  m_regionDescriptions[static_cast<int>(ChIdx::BIL)] = RegionDescriptor(1, DetRegIdx::Barrel, ChIdx::BIL,
103  4950, -7000, 7000, ystep, middle_gap, inner_step);
104  m_regionDescriptions[static_cast<int>(ChIdx::BMS)] = RegionDescriptor(1, DetRegIdx::Barrel, ChIdx::BMS,
105  8096, -9500, 9500, ystep, middle_gap, middle_step);
106  m_regionDescriptions[static_cast<int>(ChIdx::BML)] = RegionDescriptor(1, DetRegIdx::Barrel, ChIdx::BML,
107  7153, -9500, 9500, ystep, middle_gap, middle_step);
108  m_regionDescriptions[static_cast<int>(ChIdx::BOS)] = RegionDescriptor(1, DetRegIdx::Barrel, ChIdx::BOS,
109  10570, -13500, 13500, ystep, outer_gap, outer_step);
110  m_regionDescriptions[static_cast<int>(ChIdx::BOL)] = RegionDescriptor(1, DetRegIdx::Barrel, ChIdx::BOL,
111  9500, -13500, 13500, ystep, outer_gap, outer_step);
112  m_regionDescriptions[static_cast<int>(ChIdx::BEE)] = RegionDescriptor(1, DetRegIdx::EndcapA, ChIdx::BEE,
113  4415, 7500, 13000, ystep, middle_gap, middle_step);
114  m_regionDescriptions[static_cast<int>(ChIdx::EIS)] = RegionDescriptor(1, DetRegIdx::EndcapA, ChIdx::EIS,
115  7270, 1000, 7000, ystep, inner_gap, inner_step); // 7
116  m_regionDescriptions[static_cast<int>(ChIdx::EIL)] = RegionDescriptor(1, DetRegIdx::EndcapA, ChIdx::EIL,
117  7675, 1000, 8000, ystep, inner_gap, inner_step);
118  m_regionDescriptions[static_cast<int>(ChIdx::EES)] = RegionDescriptor(1, DetRegIdx::EndcapA, ChIdx::EES,
119  10800, 4000, 10000, ystep, middle_gap, middle_step);
120  m_regionDescriptions[static_cast<int>(ChIdx::EEL)] = RegionDescriptor(1, DetRegIdx::EndcapA, ChIdx::EEL,
121  11330, 4000, 10000, ystep, middle_gap, middle_step);
122  m_regionDescriptions[static_cast<int>(ChIdx::EMS)] = RegionDescriptor(1, DetRegIdx::EndcapA, ChIdx::EMS,
123  13872, 1500, 13000, ystep, middle_gap, middle_step);
124  m_regionDescriptions[static_cast<int>(ChIdx::EML)] = RegionDescriptor(1, DetRegIdx::EndcapA, ChIdx::EML,
125  14310, 1500, 13000, ystep, middle_gap, middle_step);
126  m_regionDescriptions[static_cast<int>(ChIdx::EOS)] = RegionDescriptor(1, DetRegIdx::EndcapA, ChIdx::EOS,
127  21841, 2000, 13500, ystep, outer_gap, outer_step);
128  m_regionDescriptions[static_cast<int>(ChIdx::EOL)] = RegionDescriptor(1, DetRegIdx::EndcapA, ChIdx::EOL,
129  21421, 2000, 13500, ystep, outer_gap, outer_step);
130  }

Member Data Documentation

◆ m_regionDescriptions

RegionDescriptionVec MuonHough::MuonDetectorDescription::m_regionDescriptions
private

cached geometry

Definition at line 36 of file MuonRegionHough.h.


The documentation for this class was generated from the following files:
Muon::MuonStationIndex::DetectorRegionIndex::Barrel
@ Barrel
Muon::MuonStationIndex::LayerIndex::Outer
@ Outer
Muon::MuonStationIndex::toChamberIndex
ChIndex toChamberIndex(DetectorRegionIndex region, LayerIndex layer, bool isSmall)
convert DetectorRegionIndex + LayerIndex + isSmall into ChIndex
Definition: MuonStationIndex.cxx:63
Muon::MuonStationIndex::ChIndex::EEL
@ EEL
Muon::MuonStationIndex
Definition: MuonStationIndex.h:13
Muon::MuonStationIndex::ChIndex::EML
@ EML
Muon::MuonStationIndex::ChIndex::EOS
@ EOS
Muon::MuonStationIndex::ChIndex::BIL
@ BIL
Muon::MuonStationIndex::LayerIndex::Inner
@ Inner
MuonHough::MuonDetectorDescription::initDefaultRegions
void initDefaultRegions()
initialize default geometry
Definition: MuonRegionHough.cxx:90
Muon::MuonStationIndex::ChIndex::EIS
@ EIS
Muon::MuonStationIndex::ChIndex::EIL
@ EIL
Muon::MuonStationIndex::ChIndex::BIS
@ BIS
Muon::MuonStationIndex::chIndex
ChIndex chIndex(const std::string &index)
convert ChIndex name string to enum
Definition: MuonStationIndex.cxx:11
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
Muon::MuonStationIndex::ChIndex::BML
@ BML
Muon::MuonStationIndex::ChIndex::BOS
@ BOS
WriteCalibToCool.swap
swap
Definition: WriteCalibToCool.py:94
Muon::MuonStationIndex::ChIndex::EES
@ EES
Muon::MuonStationIndex::ChIndex::BEE
@ BEE
Muon::MuonStationIndex::ChIndex::BMS
@ BMS
MuonHough::MuonDetectorDescription::m_regionDescriptions
RegionDescriptionVec m_regionDescriptions
cached geometry
Definition: MuonRegionHough.h:36
MuonR4::SegmentFit::toInt
constexpr int toInt(const ParamDefs p)
Definition: MuonHoughDefs.h:42
MuonHough::ChIdx
Muon::MuonStationIndex::ChIndex ChIdx
Definition: MuonRegionHough.cxx:9
Muon::MuonStationIndex::ChIndex::EOL
@ EOL
Muon::MuonStationIndex::ChIndex::EMS
@ EMS
Muon::MuonStationIndex::isSmall
bool isSmall(const ChIndex index)
Returns true if the chamber index is in a small sector.
Muon::MuonStationIndex::ChIndex::BOL
@ BOL