ATLAS Offline Software
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 Member Functions

 MuonDetectorDescription ()
 constructor More...
 
RegionDescriptor getDescriptor (int sector, Muon::MuonStationIndex::DetectorRegionIndex region, Muon::MuonStationIndex::LayerIndex 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.

Constructor & Destructor Documentation

◆ MuonDetectorDescription()

MuonHough::MuonDetectorDescription::MuonDetectorDescription ( )

constructor

Definition at line 67 of file MuonRegionHough.cxx.

67 { initDefaultRegions(); }

Member Function Documentation

◆ getDescriptor()

RegionDescriptor MuonHough::MuonDetectorDescription::getDescriptor ( int  sector,
Muon::MuonStationIndex::DetectorRegionIndex  region,
Muon::MuonStationIndex::LayerIndex  layer 
) const

Definition at line 69 of file MuonRegionHough.cxx.

70  {
71  bool isSmall = (sector % 2 == 0);
73  // std::cout << "chamberIndex " << chIndex << " region " << region << " layer " << layer << " isSmall " << isSmall << std::endl ;
74  // if (region%2 != 1 && layer == 4 && !isSmall){//fix bee chamber in the endcap, add them back in for larger chambers//possible bug
75  // in chamber to index
76  // chIndex = Muon::MuonStationIndex::BEE;
77  // }
78 
79  if (chIndex < 0 || chIndex >= Muon::MuonStationIndex::ChIndexMax) {
80  RegionDescriptor descriptor;
81  return descriptor;
82  }
83 
84  RegionDescriptor descriptor = m_regionDescriptions[chIndex];
85  descriptor.sector = sector;
86  // exceptions for a few barrel regions
87  if (region == Muon::MuonStationIndex::Barrel) {
88  if ((sector == 10 || sector == 14) && layer == Muon::MuonStationIndex::Inner)
89  descriptor.referencePosition = 5400.;
90  else if ((sector == 11 || sector == 13) && layer == Muon::MuonStationIndex::Outer)
91  descriptor.referencePosition = 10650.;
92  } else if (region == Muon::MuonStationIndex::EndcapC) { // multiply reference position by -1 for C side
93  descriptor.region = region;
95  descriptor.yMinRange *= -1;
96  descriptor.yMaxRange *= -1;
97  std::swap(descriptor.yMinRange, descriptor.yMaxRange);
98  } else {
99  descriptor.referencePosition *= -1;
100  }
101  }
102 
103  if (descriptor.chIndex < 0 || descriptor.chIndex >= Muon::MuonStationIndex::ChIndexMax) {
104  std::cout << " bad descriptor!!!! " << Muon::MuonStationIndex::regionName(region) << " "
105  << Muon::MuonStationIndex::layerName(layer) << " " << isSmall << " " << chIndex << std::endl;
106  }
107  return descriptor;
108  }

◆ initDefaultRegions()

void MuonHough::MuonDetectorDescription::initDefaultRegions ( )
private

initialize default geometry

Definition at line 110 of file MuonRegionHough.cxx.

110  {
111  double scalefactor = 1.0; // can be used to tune the steps in theta variation!
112  int inner_step = 3; // default is 3
113  int middle_step = 5 * scalefactor; // default is 5--range is 0.25
114  int outer_step = 7 * scalefactor; // default is 7--range is 0.35
115  double inner_gap = 0.05; // default is 0.05
116  double middle_gap = 0.1 / scalefactor; // default is 0.1
117  double outer_gap = middle_gap; // default is 0.1
118  int ystep = 30; // default is 30
121  4560, -7500, 7500, ystep, middle_gap, inner_step);
123  4950, -7000, 7000, ystep, middle_gap, inner_step);
125  8096, -9500, 9500, ystep, middle_gap, middle_step);
127  7153, -9500, 9500, ystep, middle_gap, middle_step);
129  10570, -13500, 13500, ystep, outer_gap, outer_step);
131  9500, -13500, 13500, ystep, outer_gap, outer_step);
133  1, Muon::MuonStationIndex::EndcapA, Muon::MuonStationIndex::BEE, 4415, 7500, 13000, ystep, middle_gap, middle_step);
135  1, Muon::MuonStationIndex::EndcapA, Muon::MuonStationIndex::EIS, 7270, 1000, 7000, ystep, inner_gap, inner_step); // 7
137  1, Muon::MuonStationIndex::EndcapA, Muon::MuonStationIndex::EIL, 7675, 1000, 8000, ystep, inner_gap, inner_step);
139  1, Muon::MuonStationIndex::EndcapA, Muon::MuonStationIndex::EES, 10800, 4000, 10000, ystep, middle_gap, middle_step);
141  1, Muon::MuonStationIndex::EndcapA, Muon::MuonStationIndex::EEL, 11330, 4000, 10000, ystep, middle_gap, middle_step);
143  1, Muon::MuonStationIndex::EndcapA, Muon::MuonStationIndex::EMS, 13872, 1500, 13000, ystep, middle_gap, middle_step);
145  1, Muon::MuonStationIndex::EndcapA, Muon::MuonStationIndex::EML, 14310, 1500, 13000, ystep, middle_gap, middle_step);
147  1, Muon::MuonStationIndex::EndcapA, Muon::MuonStationIndex::EOS, 21841, 2000, 13500, ystep, outer_gap, outer_step);
149  1, Muon::MuonStationIndex::EndcapA, Muon::MuonStationIndex::EOL, 21421, 2000, 13500, ystep, outer_gap, outer_step);
150  }

Member Data Documentation

◆ m_regionDescriptions

RegionDescriptionVec MuonHough::MuonDetectorDescription::m_regionDescriptions
private

cached geometry

Definition at line 32 of file MuonRegionHough.h.


The documentation for this class was generated from the following files:
Muon::MuonStationIndex::BIS
@ BIS
Definition: MuonStationIndex.h:17
Muon::MuonStationIndex::toChamberIndex
static ChIndex toChamberIndex(DetectorRegionIndex region, LayerIndex layer, bool isSmall)
convert DetectorRegionIndex + LayerIndex + isSmall into ChIndex
Definition: MuonStationIndex.cxx:98
Muon::MuonStationIndex::CSS
@ CSS
Definition: MuonStationIndex.h:18
Muon::MuonStationIndex::BarrelExtended
@ BarrelExtended
EE.
Definition: MuonStationIndex.h:42
Muon::MuonStationIndex::EndcapA
@ EndcapA
Definition: MuonStationIndex.h:49
Muon::MuonStationIndex::Inner
@ Inner
Definition: MuonStationIndex.h:40
Muon::MuonStationIndex::Outer
@ Outer
Definition: MuonStationIndex.h:40
Muon::MuonStationIndex::EEL
@ EEL
Definition: MuonStationIndex.h:18
Muon::MuonStationIndex::BML
@ BML
Definition: MuonStationIndex.h:17
Muon::MuonStationIndex::BOS
@ BOS
Definition: MuonStationIndex.h:17
MuonHough::MuonDetectorDescription::initDefaultRegions
void initDefaultRegions()
initialize default geometry
Definition: MuonRegionHough.cxx:110
Muon::MuonStationIndex::BMS
@ BMS
Definition: MuonStationIndex.h:17
Muon::MuonStationIndex::EIS
@ EIS
Definition: MuonStationIndex.h:18
Muon::MuonStationIndex::EOS
@ EOS
Definition: MuonStationIndex.h:18
Muon::MuonStationIndex::regionName
static const std::string & regionName(DetectorRegionIndex index)
convert DetectorRegionIndex into a string
Definition: MuonStationIndex.cxx:176
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
Muon::MuonStationIndex::Barrel
@ Barrel
Definition: MuonStationIndex.h:49
Muon::MuonStationIndex::layerName
static const std::string & layerName(LayerIndex index)
convert LayerIndex into a string
Definition: MuonStationIndex.cxx:192
WriteCalibToCool.swap
swap
Definition: WriteCalibToCool.py:94
Muon::MuonStationIndex::EES
@ EES
Definition: MuonStationIndex.h:18
MuonHough::MuonDetectorDescription::m_regionDescriptions
RegionDescriptionVec m_regionDescriptions
cached geometry
Definition: MuonRegionHough.h:32
Muon::MuonStationIndex::ChIndexMax
@ ChIndexMax
Definition: MuonStationIndex.h:19
Muon::MuonStationIndex::EML
@ EML
Definition: MuonStationIndex.h:18
Muon::MuonStationIndex::BIL
@ BIL
Definition: MuonStationIndex.h:17
Muon::MuonStationIndex::EndcapC
@ EndcapC
Definition: MuonStationIndex.h:49
Muon::MuonStationIndex::BEE
@ BEE
Definition: MuonStationIndex.h:17
Muon::MuonStationIndex::ChIndex
ChIndex
enum to classify the different chamber layers in the muon spectrometer
Definition: MuonStationIndex.h:15
Muon::MuonStationIndex::EMS
@ EMS
Definition: MuonStationIndex.h:18
Muon::MuonStationIndex::EOL
@ EOL
Definition: MuonStationIndex.h:18
Muon::MuonStationIndex::BOL
@ BOL
Definition: MuonStationIndex.h:17
Muon::MuonStationIndex::EIL
@ EIL
Definition: MuonStationIndex.h:18