ATLAS Offline Software
Loading...
Searching...
No Matches
SiNumerology.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
6// SiNumerology.h
8// (c) ATLAS Detector software
10
11
12#ifndef INDETREADOUTGEOMETRY_SINUMEROLOGY_H
13#define INDETREADOUTGEOMETRY_SINUMEROLOGY_H
14
15#include <vector>
16
17namespace InDetDD {
18
26
28
29
30 public:
31
34
35 // Accessors:
36
38 int numBarrels() const;
39
41 int numEndcaps() const;
42
44 int barrelId(int index) const;
45
47 int endcapId(int index) const;
48
50 int numLayers() const;
51
54 int numDiskLayers() const;
55
57 int numDisks() const;
58
60 int numRingsForDisk(int disk) const;
61
63 int numPhiModulesForLayer(int layer) const;
64
66 int numPhiModulesForDiskRing(int disk, int ring) const;
67
69 int numEtaModulesForLayer(int layer) const;
70
72 int numDisksForLayer(int layer) const;
73
75 int numPhiModulesForLayerDisk(int layer, int disk) const;
76
78 int beginEtaModuleForLayer(int layer) const;
79
81 int endEtaModuleForLayer(int layer) const;
82
84 bool skipEtaZeroForLayer(int layer) const;
85
86 // Check presence of layer/disk
88 bool useLayer(int layer) const;
89
91 bool useDiskLayer(int layer) const;
92
94 bool useDisk(int disk) const;
95
96 // Maximums
98 int maxNumBarrelEta() const;
99
101 int maxNumEndcapRings() const;
102
104 int maxNumStrips() const;
105
107 int maxNumPhiCells() const;
108
110 int maxNumEtaCells() const;
111
112 // Modifiers:
113 void addBarrel(int id);
114 void addEndcap(int id);
115 void setNumLayers(int nLayers);
116 void setNumDiskLayers(int nLayers);
117 void setNumDisks(int nDisks);
118 void setNumRingsForDisk(int disk, int nRings);
119 void setNumPhiModulesForLayer(int layer, int nPhiModules);
120 void setNumPhiModulesForDiskRing(int disk, int ring, int nPhiModules);
121 void setNumEtaModulesForLayer(int layer, int nEtaModules);
122 void setNumDisksForLayer(int layer, int nDisks);
123 void setNumPhiModulesForLayerDisk(int layer, int disk, int nPhiModules);
124 void setMaxNumEtaCells(int cells);
125 void setMaxNumPhiCells(int cells);
126
127 // DBM
128 int numDisksDBM() const;
129 int numBarrelDBM() const;
130 bool useDiskDBM(int disk) const;
131 int numRingsForDiskDBM(int currentdisk) const;
132 int numPhiModulesForDiskRingDBM(int disk, int ring) const;
133 int numEndcapsDBM() const;
134 int endcapIdDBM(int index) const;
135
136 void setNumDisksDBM(int nDisks);
137 void setNumBarrelDBM(int nBarrel);
138 void setNumPhiModulesForDiskRingDBM(int disk, int ring, int nPhiModules);
139 void addEndcapDBM(int id);
140
141 private:
142
153
154 std::vector<int> m_barrelIds;
155 std::vector<int> m_endcapIds;
156 std::vector<int> m_phiModulesForLayer;
157 std::vector<int> m_ringsForDisk;
158 std::vector<std::vector<int> > m_phiModulesForDiskRing;
159 std::vector<int> m_etaModulesForLayer;
160 std::vector<int> m_disksForLayer;
161 std::vector<std::vector<int> > m_phiModulesForLayerDisk;
162
165 std::vector<int> m_endcapIdsDBM;
166 std::vector<std::vector<int> > m_phiModulesForDiskRingDBM;
168 };
169
170}// End namespace
171
172#include "SiNumerology.icc"
173
174#endif // INDETREADOUTGEOMETRY_SINUMEROLOGY_H
void setNumBarrelDBM(int nBarrel)
int numRingsForDiskDBM(int currentdisk) const
int numRingsForDisk(int disk) const
Number of rings (ie eta_module) in a disk.
bool useLayer(int layer) const
Check if layer exists.
std::vector< int > m_disksForLayer
bool useDisk(int disk) const
Check if disk exists.
std::vector< std::vector< int > > m_phiModulesForDiskRingDBM
int numPhiModulesForLayerDisk(int layer, int disk) const
Number of sectors in phi for a disk in a layer (ITk endcap-specific)
std::vector< int > m_endcapIdsDBM
void setNumDisksDBM(int nDisks)
void setNumDiskLayers(int nLayers)
int maxNumEndcapRings() const
Maximum number of rings in a disk.
int numEndcapsDBM() const
std::vector< int > m_phiModulesForLayer
std::vector< int > m_endcapIds
int numDisksDBM() const
int numDiskLayers() const
Number of disk layers (ITk endcap-specific)
int barrelId(int index) const
Barrel/endcap identifier for each barrel.
bool useDiskLayer(int layer) const
Check if layer exists.
std::vector< std::vector< int > > m_phiModulesForDiskRing
int numEtaModulesForLayer(int layer) const
Number of sectors in eta for a layer.
std::vector< int > m_barrelIds
SiNumerology()
Constructor:
void setMaxNumPhiCells(int cells)
int maxNumPhiCells() const
Maximum number of cells in phi direction.
std::vector< int > m_ringsForDisk
void setMaxNumEtaCells(int cells)
int numEndcaps() const
Number of endcaps.
int endcapIdDBM(int index) const
int numDisksForLayer(int layer) const
Number of disks for a layer (ITk endcap-specific)
bool useDiskDBM(int disk) const
void setNumDisksForLayer(int layer, int nDisks)
int maxNumEtaCells() const
Maximum number of cells in eta direction.
std::vector< int > m_etaModulesForLayer
int endEtaModuleForLayer(int layer) const
Last eta_module number + 1.
void setNumPhiModulesForDiskRingDBM(int disk, int ring, int nPhiModules)
void setNumPhiModulesForLayerDisk(int layer, int disk, int nPhiModules)
int maxNumStrips() const
Maximum number of strips.
int numLayers() const
Number of layers.
std::vector< std::vector< int > > m_phiModulesForLayerDisk
int numBarrelDBM() const
void setNumRingsForDisk(int disk, int nRings)
void setNumDisks(int nDisks)
int numPhiModulesForLayer(int layer) const
Number of sectors in phi for a layer.
int numBarrels() const
Number of barrels.
int maxNumBarrelEta() const
Maximum number of modules in a barrel stave.
void setNumPhiModulesForDiskRing(int disk, int ring, int nPhiModules)
void setNumPhiModulesForLayer(int layer, int nPhiModules)
int beginEtaModuleForLayer(int layer) const
First eta_module number for a layer.
int numPhiModulesForDiskRing(int disk, int ring) const
Number of sectors in phi for a ring in a disk.
int endcapId(int index) const
Barrel/endcap identifier for each endcap.
void setNumEtaModulesForLayer(int layer, int nEtaModules)
void setNumLayers(int nLayers)
bool skipEtaZeroForLayer(int layer) const
Check if eta_module=0 exists.
int numDisks() const
Number of disks.
int numPhiModulesForDiskRingDBM(int disk, int ring) const
Message Stream Member.
Definition index.py:1