ATLAS Offline Software
Loading...
Searching...
No Matches
MuonSpectrometer
MuonDetDescr
MuonDetDescrUtils
src
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
5
#include "
MuonDetDescrUtils/MuonChamberLayerDescription.h
"
6
7
#include <iostream>
8
9
namespace
Muon
{
10
11
MuonChamberLayerDescription::MuonChamberLayerDescription
() {
initDefaultRegions
(); }
12
13
MuonChamberLayerDescriptor
MuonChamberLayerDescription::getDescriptor
(
int
sector,
DetRegIdx
region,
LayerIdx
layer)
const
{
14
bool
isSmall
= (sector % 2 == 0);
15
using namespace
MuonStationIndex
;
16
ChIndex
chIndex
=
Muon::MuonStationIndex::toChamberIndex
(region, layer,
isSmall
);
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
}
44
45
void
MuonChamberLayerDescription::initDefaultRegions
() {
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
MuonChamberLayerDescription.h
Muon::MuonChamberLayerDescription::initDefaultRegions
void initDefaultRegions()
initialize default geometry
Definition
MuonChamberLayerDescription.cxx:45
Muon::MuonChamberLayerDescription::MuonChamberLayerDescription
MuonChamberLayerDescription()
constructor
Definition
MuonChamberLayerDescription.cxx:11
Muon::MuonChamberLayerDescription::getDescriptor
MuonChamberLayerDescriptor getDescriptor(int sector, DetRegIdx region, LayerIdx layer) const
Definition
MuonChamberLayerDescription.cxx:13
Muon::MuonChamberLayerDescription::LayerIdx
MuonStationIndex::LayerIndex LayerIdx
Definition
MuonChamberLayerDescription.h:20
Muon::MuonChamberLayerDescription::DetRegIdx
MuonStationIndex::DetectorRegionIndex DetRegIdx
Definition
MuonChamberLayerDescription.h:21
Muon::MuonChamberLayerDescription::m_chamberLayerDescriptors
MuonChamberLayerDescriptorVec m_chamberLayerDescriptors
Definition
MuonChamberLayerDescription.h:31
Muon::MuonStationIndex
Definition
MuonStationIndex.h:13
Muon::MuonStationIndex::chIndex
ChIndex chIndex(const std::string &index)
convert ChIndex name string to enum
Definition
MuonStationIndex.cxx:11
Muon::MuonStationIndex::isSmall
bool isSmall(const ChIndex index)
Returns true if the chamber index is in a small sector.
Muon::MuonStationIndex::toInt
constexpr int toInt(const EnumType enumVal)
Definition
MuonStationIndex.h:61
Muon::MuonStationIndex::toChamberIndex
ChIndex toChamberIndex(DetectorRegionIndex region, LayerIndex layer, bool isSmall)
convert DetectorRegionIndex + LayerIndex + isSmall into ChIndex
Definition
MuonStationIndex.cxx:63
Muon::MuonStationIndex::ChIndex
ChIndex
enum to classify the different chamber layers in the muon spectrometer
Definition
MuonStationIndex.h:15
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition
TrackSystemController.h:45
std::swap
void swap(ElementLinkVector< DOBJ > &lhs, ElementLinkVector< DOBJ > &rhs)
Definition
AthLinks/ElementLinkVector.h:485
Muon::MuonChamberLayerDescriptor
struct containing all information to build a Hough transform for a given chamber index
Definition
MuonChamberLayerDescriptor.h:13
Muon::MuonChamberLayerDescriptor::yMaxRange
float yMaxRange
Definition
MuonChamberLayerDescriptor.h:43
Muon::MuonChamberLayerDescriptor::region
DetRegIdx region
Definition
MuonChamberLayerDescriptor.h:39
Muon::MuonChamberLayerDescriptor::referencePosition
float referencePosition
Definition
MuonChamberLayerDescriptor.h:41
Muon::MuonChamberLayerDescriptor::yMinRange
float yMinRange
Definition
MuonChamberLayerDescriptor.h:42
Muon::MuonChamberLayerDescriptor::sector
int sector
Definition
MuonChamberLayerDescriptor.h:37
Generated on
for ATLAS Offline Software by
1.14.0