ATLAS Offline Software
Loading...
Searching...
No Matches
MuonChamberLayerDescription.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7#include <iostream>
8
9namespace Muon {
10
12
14 bool isSmall = (sector % 2 == 0);
15 using namespace MuonStationIndex;
17
18
19 if (chIndex == ChIndex::ChUnknown|| chIndex >= ChIndex::ChIndexMax) {
21 return descriptor;
22 }
23
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 }
44
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 }
65
66} // namespace Muon
void initDefaultRegions()
initialize default geometry
MuonChamberLayerDescriptor getDescriptor(int sector, DetRegIdx region, LayerIdx layer) const
MuonStationIndex::DetectorRegionIndex DetRegIdx
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
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
void swap(ElementLinkVector< DOBJ > &lhs, ElementLinkVector< DOBJ > &rhs)
struct containing all information to build a Hough transform for a given chamber index