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

class managing geometry of the chamber layers More...

#include <MuonChamberLayerDescription.h>

Collaboration diagram for Muon::MuonChamberLayerDescription:

Public Types

using LayerIdx = MuonStationIndex::LayerIndex
 
using DetRegIdx = MuonStationIndex::DetectorRegionIndex
 

Public Member Functions

 MuonChamberLayerDescription ()
 constructor More...
 
MuonChamberLayerDescriptor getDescriptor (int sector, DetRegIdx region, LayerIdx layer) const
 

Private Types

using MuonChamberLayerDescriptorVec = std::vector< MuonChamberLayerDescriptor >
 cached geometry More...
 

Private Member Functions

void initDefaultRegions ()
 initialize default geometry More...
 

Private Attributes

MuonChamberLayerDescriptorVec m_chamberLayerDescriptors {}
 

Detailed Description

class managing geometry of the chamber layers

Definition at line 15 of file MuonChamberLayerDescription.h.

Member Typedef Documentation

◆ DetRegIdx

Definition at line 21 of file MuonChamberLayerDescription.h.

◆ LayerIdx

Definition at line 20 of file MuonChamberLayerDescription.h.

◆ MuonChamberLayerDescriptorVec

cached geometry

Definition at line 30 of file MuonChamberLayerDescription.h.

Constructor & Destructor Documentation

◆ MuonChamberLayerDescription()

Muon::MuonChamberLayerDescription::MuonChamberLayerDescription ( )

constructor

Definition at line 11 of file MuonChamberLayerDescription.cxx.

11 { initDefaultRegions(); }

Member Function Documentation

◆ getDescriptor()

MuonChamberLayerDescriptor Muon::MuonChamberLayerDescription::getDescriptor ( int  sector,
DetRegIdx  region,
LayerIdx  layer 
) const

Definition at line 13 of file MuonChamberLayerDescription.cxx.

13  {
14  bool isSmall = (sector % 2 == 0);
15  using namespace MuonStationIndex;
17 
18 
19  if (chIndex == ChIndex::ChUnknown|| chIndex >= ChIndex::ChIndexMax) {
20  MuonChamberLayerDescriptor descriptor;
21  return descriptor;
22  }
23 
24  MuonChamberLayerDescriptor descriptor = m_chamberLayerDescriptors[toInt(chIndex)];
25  descriptor.sector = sector;
26  // exceptions for a few barrel regions
27  if (region == DetRegIdx::Barrel) {
28  if ((sector == 10 || sector == 14) && layer == LayerIdx::Inner)
29  descriptor.referencePosition = 5400.;
30  else if ((sector == 11 || sector == 13) && layer == LayerIdx::Outer)
31  descriptor.referencePosition = 10650.;
32  } else if (region == DetRegIdx::EndcapC) { // multiply reference position by -1 for C side
33  descriptor.region = region;
34  if (layer == LayerIdx::BarrelExtended) {
35  descriptor.yMinRange *= -1;
36  descriptor.yMaxRange *= -1;
37  std::swap(descriptor.yMinRange, descriptor.yMaxRange);
38  } else {
39  descriptor.referencePosition *= -1;
40  }
41  }
42  return descriptor;
43  }

◆ initDefaultRegions()

void Muon::MuonChamberLayerDescription::initDefaultRegions ( )
private

initialize default geometry

Definition at line 45 of file MuonChamberLayerDescription.cxx.

45  {
46  using namespace MuonStationIndex;
47 
49  m_chamberLayerDescriptors[toInt(ChIndex::BIS)] = MuonChamberLayerDescriptor{1, DetRegIdx::Barrel, ChIndex::BIS, 4560, -7500, 7500, 30, 0.1, 3};
50  m_chamberLayerDescriptors[toInt(ChIndex::BIL)] = MuonChamberLayerDescriptor{1, DetRegIdx::Barrel, ChIndex::BIL, 4950, -7000, 7000, 30, 0.1, 3};
51  m_chamberLayerDescriptors[toInt(ChIndex::BMS)] = MuonChamberLayerDescriptor{1, DetRegIdx::Barrel, ChIndex::BMS, 8096, -9500, 9500, 30, 0.1, 5};
52  m_chamberLayerDescriptors[toInt(ChIndex::BML)] = MuonChamberLayerDescriptor{1, DetRegIdx::Barrel, ChIndex::BML, 7153, -9500, 9500, 30, 0.1, 5};
53  m_chamberLayerDescriptors[toInt(ChIndex::BOS)] = MuonChamberLayerDescriptor{1, DetRegIdx::Barrel, ChIndex::BOS, 10570, -13500, 13500, 30, 0.1, 7};
54  m_chamberLayerDescriptors[toInt(ChIndex::BOL)] = MuonChamberLayerDescriptor{1, DetRegIdx::Barrel, ChIndex::BOL, 9500, -13500, 13500, 30, 0.1, 7};
55  m_chamberLayerDescriptors[toInt(ChIndex::BEE)] = MuonChamberLayerDescriptor{1, DetRegIdx::EndcapA, ChIndex::BEE, 4415, 7500, 13000, 30, 0.1, 5};
56  m_chamberLayerDescriptors[toInt(ChIndex::EIS)] = MuonChamberLayerDescriptor{1, DetRegIdx::EndcapA, ChIndex::EIS, 7270, 1000, 7000, 30, .05, 3};
57  m_chamberLayerDescriptors[toInt(ChIndex::EIL)] = MuonChamberLayerDescriptor{1, DetRegIdx::EndcapA, ChIndex::EIL, 7675, 1000, 8000, 30, .05, 3};
58  m_chamberLayerDescriptors[toInt(ChIndex::EES)] = MuonChamberLayerDescriptor{1, DetRegIdx::EndcapA, ChIndex::EES, 10800, 4000, 10000, 30, 0.1, 5};
59  m_chamberLayerDescriptors[toInt(ChIndex::EEL)] = MuonChamberLayerDescriptor{1, DetRegIdx::EndcapA, ChIndex::EEL, 11330, 4000, 10000, 30, 0.1, 5};
60  m_chamberLayerDescriptors[toInt(ChIndex::EMS)] = MuonChamberLayerDescriptor{1, DetRegIdx::EndcapA, ChIndex::EMS, 13872, 1500, 13000, 30, 0.1, 5};
61  m_chamberLayerDescriptors[toInt(ChIndex::EML)] = MuonChamberLayerDescriptor{1, DetRegIdx::EndcapA, ChIndex::EML, 14310, 1500, 13000, 30, 0.1, 5};
62  m_chamberLayerDescriptors[toInt(ChIndex::EOS)] = MuonChamberLayerDescriptor{1, DetRegIdx::EndcapA, ChIndex::EOS, 21841, 2000, 13500, 30, 0.1, 7};
63  m_chamberLayerDescriptors[toInt(ChIndex::EOL)] = MuonChamberLayerDescriptor{1, DetRegIdx::EndcapA, ChIndex::EOL, 21421, 2000, 13500, 30, 0.1, 7};
64  }

Member Data Documentation

◆ m_chamberLayerDescriptors

MuonChamberLayerDescriptorVec Muon::MuonChamberLayerDescription::m_chamberLayerDescriptors {}
private

Definition at line 31 of file MuonChamberLayerDescription.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::ChIndex::EML
@ EML
Muon::MuonStationIndex::ChIndex::EOS
@ EOS
Muon::MuonStationIndex::ChIndex::BIL
@ BIL
Muon::MuonStationIndex::LayerIndex::Inner
@ Inner
Muon::MuonChamberLayerDescription::initDefaultRegions
void initDefaultRegions()
initialize default geometry
Definition: MuonChamberLayerDescription.cxx:45
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::CSS
@ CSS
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
MuonR4::SegmentFit::toInt
constexpr int toInt(const ParamDefs p)
Definition: MuonHoughDefs.h:42
Muon::MuonStationIndex::ChIndex::EOL
@ EOL
Muon::MuonStationIndex::ChIndex
ChIndex
enum to classify the different chamber layers in the muon spectrometer
Definition: MuonStationIndex.h:15
Muon::MuonChamberLayerDescription::m_chamberLayerDescriptors
MuonChamberLayerDescriptorVec m_chamberLayerDescriptors
Definition: MuonChamberLayerDescription.h:31
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