ATLAS Offline Software
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 
9 namespace Muon {
10 
12 
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 
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 
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
Muon::MuonChamberLayerDescriptor::yMinRange
float yMinRange
Definition: MuonChamberLayerDescriptor.h:42
Muon::MuonStationIndex::LayerIndex
LayerIndex
enum to classify the different layers in the muon spectrometer
Definition: MuonStationIndex.h:38
Muon::MuonStationIndex::DetectorRegionIndex::Barrel
@ Barrel
Muon::MuonStationIndex::LayerIndex::Outer
@ Outer
Muon::MuonChamberLayerDescriptor
struct containing all information to build a Hough transform for a given chamber index
Definition: MuonChamberLayerDescriptor.h:13
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
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition: TrackSystemController.h:45
Muon::MuonChamberLayerDescription::getDescriptor
MuonChamberLayerDescriptor getDescriptor(int sector, DetRegIdx region, LayerIdx layer) const
Definition: MuonChamberLayerDescription.cxx:13
Muon::MuonStationIndex::ChIndex::EIL
@ EIL
Muon::MuonStationIndex::ChIndex::BIS
@ BIS
Muon::MuonChamberLayerDescriptor::referencePosition
float referencePosition
Definition: MuonChamberLayerDescriptor.h:41
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
Muon::MuonChamberLayerDescription::MuonChamberLayerDescription
MuonChamberLayerDescription()
constructor
Definition: MuonChamberLayerDescription.cxx:11
WriteCalibToCool.swap
swap
Definition: WriteCalibToCool.py:94
Muon::MuonStationIndex::ChIndex::EES
@ EES
Muon::MuonStationIndex::ChIndex::BEE
@ BEE
Muon::MuonStationIndex::ChIndex::BMS
@ BMS
Muon::MuonChamberLayerDescriptor::sector
int sector
Definition: MuonChamberLayerDescriptor.h:37
MuonR4::SegmentFit::toInt
constexpr int toInt(const ParamDefs p)
Definition: MuonHoughDefs.h:42
MuonChamberLayerDescription.h
Muon::MuonStationIndex::DetectorRegionIndex
DetectorRegionIndex
enum to classify the different layers in the muon spectrometer
Definition: MuonStationIndex.h:47
Muon::MuonStationIndex::ChIndex::EOL
@ EOL
Muon::MuonChamberLayerDescriptor::yMaxRange
float yMaxRange
Definition: MuonChamberLayerDescriptor.h:43
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::MuonChamberLayerDescriptor::region
DetRegIdx region
Definition: MuonChamberLayerDescriptor.h:39
Muon::MuonStationIndex::isSmall
bool isSmall(const ChIndex index)
Returns true if the chamber index is in a small sector.
Muon::MuonStationIndex::ChIndex::BOL
@ BOL