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 19 of file MuonRegionHough.h.

Member Typedef Documentation

◆ DetRegIdx

Definition at line 22 of file MuonRegionHough.h.

◆ LayIdx

Definition at line 23 of file MuonRegionHough.h.

Constructor & Destructor Documentation

◆ MuonDetectorDescription()

MuonHough::MuonDetectorDescription::MuonDetectorDescription ( )

constructor

Definition at line 57 of file MuonRegionHough.cxx.

57 { initDefaultRegions(); }

Member Function Documentation

◆ getDescriptor()

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

Definition at line 59 of file MuonRegionHough.cxx.

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

◆ initDefaultRegions()

void MuonHough::MuonDetectorDescription::initDefaultRegions ( )
private

initialize default geometry

Definition at line 87 of file MuonRegionHough.cxx.

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

Member Data Documentation

◆ m_regionDescriptions

RegionDescriptionVec MuonHough::MuonDetectorDescription::m_regionDescriptions
private

cached geometry

Definition at line 35 of file MuonRegionHough.h.


The documentation for this class was generated from the following files:
BIS
@ BIS
Definition: RegSelEnums.h:11
Muon::MuonStationIndex::toChamberIndex
static ChIndex toChamberIndex(DetectorRegionIndex region, LayerIndex layer, bool isSmall)
convert DetectorRegionIndex + LayerIndex + isSmall into ChIndex
Definition: MuonStationIndex.cxx:98
BIL
@ BIL
Definition: RegSelEnums.h:10
xAOD::L2MuonParameters::BEE
@ BEE
BEE measurement point.
Definition: TrigMuonDefs.h:24
MuonHough::MuonDetectorDescription::initDefaultRegions
void initDefaultRegions()
initialize default geometry
Definition: MuonRegionHough.cxx:87
BOL
@ BOL
Definition: RegSelEnums.h:14
DetType::Barrel
@ Barrel
Definition: DetType.h:14
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
WriteCalibToCool.swap
swap
Definition: WriteCalibToCool.py:94
MuonHough::MuonDetectorDescription::m_regionDescriptions
RegionDescriptionVec m_regionDescriptions
cached geometry
Definition: MuonRegionHough.h:35
MuonHough::ChIdx
Muon::MuonStationIndex::ChIndex ChIdx
Definition: MuonRegionHough.cxx:9
BML
@ BML
Definition: RegSelEnums.h:12
BMS
@ BMS
Definition: RegSelEnums.h:13
if
if(febId1==febId2)
Definition: LArRodBlockPhysicsV0.cxx:567
BOS
@ BOS
Definition: RegSelEnums.h:15