ATLAS Offline Software
Loading...
Searching...
No Matches
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
MuonChamberLayerDescriptor getDescriptor (int sector, DetRegIdx region, LayerIdx layer) const

Private Types

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

Private Member Functions

void initDefaultRegions ()
 initialize default geometry

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

◆ LayerIdx

◆ MuonChamberLayerDescriptorVec

Constructor & Destructor Documentation

◆ MuonChamberLayerDescription()

Muon::MuonChamberLayerDescription::MuonChamberLayerDescription ( )

constructor

Definition at line 11 of file MuonChamberLayerDescription.cxx.

void initDefaultRegions()
initialize default geometry

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 }
MuonChamberLayerDescriptorVec m_chamberLayerDescriptors
ChIndex chIndex(const std::string &index)
convert ChIndex name string to enum
bool isSmall(const ChIndex index)
Returns true if the chamber index is in a small sector.
constexpr int toInt(const EnumType enumVal)
ChIndex toChamberIndex(DetectorRegionIndex region, LayerIndex layer, bool isSmall)
convert DetectorRegionIndex + LayerIndex + isSmall into ChIndex
ChIndex
enum to classify the different chamber layers in the muon spectrometer
void swap(ElementLinkVector< DOBJ > &lhs, ElementLinkVector< DOBJ > &rhs)

◆ initDefaultRegions()

void Muon::MuonChamberLayerDescription::initDefaultRegions ( )
private

initialize default geometry

Definition at line 45 of file MuonChamberLayerDescription.cxx.

45 {
46 using namespace MuonStationIndex;
47
48 m_chamberLayerDescriptors.resize(toInt(ChIndex::CSS));
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.

31{};

The documentation for this class was generated from the following files: