CMS 3D CMS Logo

HGCalTriggerTools.cc
Go to the documentation of this file.
2 
4 
14 
16 
18 
19 namespace {
20  template <typename DDD>
21  inline void check_ddd(const DDD* ddd) {
22  if (nullptr == ddd) {
23  throw cms::Exception("hgcal::HGCalTriggerTools") << "DDDConstants not accessible to hgcal::HGCalTriggerTools!";
24  }
25  }
26 
27  template <typename GEOM>
28  inline void check_geom(const GEOM* geom) {
29  if (nullptr == geom) {
30  throw cms::Exception("hgcal::HGCalTriggerTools") << "Geometry not provided yet to hgcal::HGCalTriggerTools!";
31  }
32  }
33 } // namespace
34 
37  es.get<CaloGeometryRecord>().get(triggerGeometry_);
38  geom_ = triggerGeometry_.product();
39 
44 
45  if (geom_->isV9Geometry()) {
48  } else {
51  }
52 }
53 
55  if (id.det() == DetId::Hcal || id.det() == DetId::HGCalEE) {
56  throw cms::Exception("hgcal::HGCalTriggerTools") << "method getTCPosition called for DetId not belonging to a TC";
57  // FIXME: this would actually need a better test...but at the moment I can not think to anything better
58  // to distinguish a TC detId
59  }
60 
62  return position;
63 }
64 
66  unsigned layers = 0;
67  switch (type) {
69  layers = eeLayers_;
70  break;
72  layers = fhLayers_;
73  break;
75  layers = bhLayers_;
76  break;
79  break;
82  break;
83  default:
84  break;
85  };
86  return layers;
87 }
88 
90  unsigned layers = 0;
91  switch (type) {
92  case DetId::HGCalEE:
93  layers = eeLayers_;
94  break;
95  case DetId::HGCalHSi:
96  layers = fhLayers_;
97  break;
98  case DetId::HGCalHSc:
99  layers = bhLayers_;
100  break;
101  // FIXME: to do HFNose
102  case DetId::Forward:
104  break;
105  default:
106  break;
107  }
108  return layers;
109 }
110 
111 unsigned HGCalTriggerTools::layer(const DetId& id) const {
113  if (id.det() == DetId::Forward && id.subdetId() != ForwardSubdetector::HFNose) {
114  layer = HGCalDetId(id).layer();
115  } else if (id.det() == DetId::Forward && id.subdetId() == ForwardSubdetector::HFNose) {
116  layer = HFNoseDetId(id).layer();
117  } else if (id.det() == DetId::Hcal && id.subdetId() == HcalEndcap) {
118  layer = HcalDetId(id).depth();
119  } else if (id.det() == DetId::HGCalEE || id.det() == DetId::HGCalHSi) {
120  layer = HGCSiliconDetId(id).layer();
121  } else if (id.det() == DetId::HGCalTrigger &&
124  layer = HGCalTriggerDetId(id).layer();
125  } else if (id.det() == DetId::HGCalTrigger &&
128  } else if (id.det() == DetId::HGCalHSc) {
130  }
131  return layer;
132 }
133 
134 unsigned HGCalTriggerTools::layerWithOffset(const DetId& id) const {
135  unsigned int l = layer(id);
136 
137  if (isNose(id)) {
138  l = layer(id); // no offset for HFnose
139  } else if (isHad(id) && isSilicon(id)) {
140  l += eeLayers_;
141  } else if (isHad(id) && isScintillator(id)) {
142  if (geom_->isV9Geometry())
143  l += eeLayers_; // mixed silicon and scintillator layers
144  else
145  l += eeLayers_ + fhLayers_;
146  }
147 
148  return l;
149 }
150 
151 bool HGCalTriggerTools::isEm(const DetId& id) const {
152  bool em = false;
153 
154  if (id.det() == DetId::Forward && id.subdetId() != ForwardSubdetector::HFNose) {
155  em = (id.subdetId() == HGCEE);
156  } else if (id.det() == DetId::Forward && id.subdetId() == ForwardSubdetector::HFNose) {
157  em = HFNoseDetId(id).isEE();
158  } else if (id.det() == DetId::HGCalEE) {
159  em = true;
160  } else if (id.det() == DetId::HGCalTrigger &&
162  em = true;
163  } else if (id.det() == DetId::HGCalTrigger &&
165  em = HFNoseTriggerDetId(id).isEE();
166  }
167  return em;
168 }
169 
170 bool HGCalTriggerTools::isNose(const DetId& id) const {
171  bool nose = false;
172  if (id.det() == DetId::Forward && id.subdetId() == ForwardSubdetector::HFNose) {
173  nose = true;
174  } else if (id.det() == DetId::HGCalTrigger &&
176  nose = true;
177  }
178  return nose;
179 }
180 
181 bool HGCalTriggerTools::isSilicon(const DetId& id) const {
182  bool silicon = false;
183  if (id.det() == DetId::Forward) {
184  silicon = (id.subdetId() != HGCHEB);
185  } else if (id.det() == DetId::HGCalEE || id.det() == DetId::HGCalHSi) {
186  silicon = true;
187  } else if (id.det() == DetId::HGCalTrigger &&
189  silicon = true;
190  } else if (id.det() == DetId::HGCalTrigger &&
193  silicon = true;
194  }
195  return silicon;
196 }
197 
199  SubDetectorType subdet;
200  if (!isScintillator(id)) {
201  if (isEm(id))
203  else
205  } else
207  return subdet;
208 }
209 
210 int HGCalTriggerTools::zside(const DetId& id) const {
211  int zside = 0;
212  if (id.det() == DetId::Forward && id.subdetId() != ForwardSubdetector::HFNose) {
213  zside = HGCalDetId(id).zside();
214  } else if (id.det() == DetId::Forward && id.subdetId() == ForwardSubdetector::HFNose) {
215  zside = HFNoseDetId(id).zside();
216  } else if (id.det() == DetId::Hcal && id.subdetId() == HcalEndcap) {
217  zside = HcalDetId(id).zside();
218  } else if (id.det() == DetId::HGCalEE || id.det() == DetId::HGCalHSi) {
219  zside = HGCSiliconDetId(id).zside();
220  } else if (id.det() == DetId::HGCalTrigger &&
223  zside = HGCalTriggerDetId(id).zside();
224  } else if (id.det() == DetId::HGCalTrigger &&
227  } else if (id.det() == DetId::HGCalHSc) {
229  }
230  return zside;
231 }
232 
233 int HGCalTriggerTools::thicknessIndex(const DetId& id, bool tc) const {
234  if (isScintillator(id)) {
236  }
237  unsigned det = id.det();
238  int thickness = 0;
239  // For the v8 detid scheme
240  if (det == DetId::Forward && id.subdetId() != ForwardSubdetector::HFNose) {
241  if (!tc)
243  else {
244  // For the old geometry, TCs can contain sensor cells
245  // with different thicknesses.
246  // Use a majority logic to find the TC thickness
247  std::array<unsigned, 3> occurences = {{0, 0, 0}};
248  for (const auto& c_id : geom_->getCellsFromTriggerCell(id)) {
249  unsigned c_det = DetId(c_id).det();
250  int c_thickness = -1;
251  // For the v8 detid scheme
252  if (c_det == DetId::Forward) {
253  c_thickness = sensorCellThicknessV8(c_id);
254  } else {
255  c_thickness = HGCSiliconDetId(c_id).type();
256  }
257  if (c_thickness < 0 || unsigned(c_thickness) >= occurences.size()) {
258  throw cms::Exception("OutOfBound") << "Found thickness index = " << c_thickness;
259  }
260  occurences[c_thickness]++;
261  }
262  thickness = std::max_element(occurences.begin(), occurences.end()) - occurences.begin();
263  }
264  }
265  // For the v9 detid scheme
266  else if (det == DetId::HGCalEE || det == DetId::HGCalHSi) {
268  } else if (det == DetId::Forward && id.subdetId() == ForwardSubdetector::HFNose) {
269  thickness = HFNoseDetId(id).type();
270  } else if (id.det() == DetId::HGCalTrigger &&
274  } else if (id.det() == DetId::HGCalTrigger &&
277  }
278  return thickness;
279 }
280 
281 float HGCalTriggerTools::getEta(const GlobalPoint& position, const float& vertex_z) const {
282  GlobalPoint corrected_position = GlobalPoint(position.x(), position.y(), position.z() - vertex_z);
283  return corrected_position.eta();
284 }
285 
286 float HGCalTriggerTools::getTCEta(const DetId& id, const float& vertex_z) const {
288  return getEta(position, vertex_z);
289 }
290 
292  float phi = atan2(position.y(), position.x());
293  return phi;
294 }
295 
296 float HGCalTriggerTools::getTCPhi(const DetId& id) const {
298  return getPhi(position);
299 }
300 
301 float HGCalTriggerTools::getPt(const GlobalPoint& position, const float& hitEnergy, const float& vertex_z) const {
302  float eta = getEta(position, vertex_z);
303  float pt = hitEnergy / cosh(eta);
304  return pt;
305 }
306 
307 float HGCalTriggerTools::getTCPt(const DetId& id, const float& hitEnergy, const float& vertex_z) const {
309  return getPt(position, hitEnergy, vertex_z);
310 }
311 
312 float HGCalTriggerTools::getLayerZ(const unsigned& layerWithOffset) const {
313  int subdet = ForwardSubdetector::HGCEE;
314  unsigned offset = 0;
317  offset = lastLayerEE();
318  } else if (layerWithOffset > lastLayerFH()) {
320  offset = lastLayerFH();
321  }
322  // note for HFnose offset is always zero since we have less layers than HGCEE
323  return getLayerZ(subdet, layerWithOffset - offset);
324 }
325 
326 float HGCalTriggerTools::getLayerZ(const int& subdet, const unsigned& layer) const {
327  float layerGlobalZ = 0.;
328  if ((subdet == ForwardSubdetector::HGCEE) || (subdet == DetId::HGCalEE)) {
329  layerGlobalZ = geom_->eeTopology().dddConstants().waferZ(layer, true);
330  } else if ((subdet == ForwardSubdetector::HGCHEF) || (subdet == DetId::HGCalHSi)) {
331  layerGlobalZ = geom_->fhTopology().dddConstants().waferZ(layer, true);
332  } else if (subdet == ForwardSubdetector::HFNose) {
333  layerGlobalZ = geom_->noseTopology().dddConstants().waferZ(layer, true);
334  } else if ((subdet == HcalSubdetector::HcalEndcap) || (subdet == ForwardSubdetector::HGCHEB) ||
335  (subdet == DetId::HGCalHSc)) {
336  if (geom_->isV9Geometry()) {
337  layerGlobalZ = geom_->hscTopology().dddConstants().waferZ(layer, true);
338  } else {
339  layerGlobalZ = geom_->bhTopology().dddConstants()->getRZ(
341  }
342  }
343  return layerGlobalZ;
344 }
345 
346 DetId HGCalTriggerTools::simToReco(const DetId& simid, const HGCalTopology& topo) const {
347  DetId recoid(0);
348  const auto& dddConst = topo.dddConstants();
349  // V9
350  if (dddConst.waferHexagon8() || dddConst.tileTrapezoid()) {
351  recoid = simid;
352  }
353  // V8
354  else {
355  int subdet(simid.subdetId());
356  int layer = 0, cell = 0, sec = 0, subsec = 0, zp = 0;
357  HGCalTestNumbering::unpackHexagonIndex(simid, subdet, zp, layer, sec, subsec, cell);
358  // sec is wafer and subsec is celltype
359  // skip this hit if after ganging it is not valid
360  auto recoLayerCell = dddConst.simToReco(cell, layer, sec, topo.detectorType());
361  cell = recoLayerCell.first;
362  layer = recoLayerCell.second;
363  if (layer >= 0 && cell >= 0) {
364  recoid = HGCalDetId((ForwardSubdetector)subdet, zp, layer, subsec, sec, cell);
365  }
366  }
367  return recoid;
368 }
369 
370 DetId HGCalTriggerTools::simToReco(const DetId& simid, const HcalTopology& topo) const {
371  DetId recoid(0);
372  const auto& dddConst = topo.dddConstants();
373  HcalDetId id = HcalHitRelabeller::relabel(simid, dddConst);
374  if (id.subdet() == int(HcalEndcap))
375  recoid = id;
376  return recoid;
377 }
378 
380  int thickness = 0;
381  switch (id.subdetId()) {
384  break;
387  break;
388  default:
389  break;
390  };
391  return thickness;
392 }
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
HGCalTriggerTools.h
HGCalTriggerGeometryBase::eeTopology
const HGCalTopology & eeTopology() const
Definition: HGCalTriggerGeometryBase.h:65
HGCalTriggerTools::geom_
const HGCalTriggerGeometryBase * geom_
Definition: HGCalTriggerTools.h:96
HGCalTriggerTools::getTCEta
float getTCEta(const DetId &id, const float &vertex_z=0.) const
Definition: HGCalTriggerTools.cc:286
HGCalTriggerTools::eventSetup
void eventSetup(const edm::EventSetup &)
Definition: HGCalTriggerTools.cc:35
DetId::HGCalTrigger
Definition: DetId.h:35
HGCalTopology::dddConstants
const HGCalDDDConstants & dddConstants() const
Definition: HGCalTopology.h:98
HGCalTriggerDetId::zside
int zside() const
get the z-side of the cell (1/-1)
Definition: HGCalTriggerDetId.h:50
HFNoseTriggerDetId::zside
int zside() const
get the z-side of the cell (1/-1)
Definition: HFNoseTriggerDetId.h:50
ForwardEmpty
Definition: ForwardSubdetector.h:5
ESHandle.h
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
HFNoseDetId::zside
int zside() const
get the z-side of the cell (1/-1)
Definition: HFNoseDetId.h:53
ForwardSubdetector
ForwardSubdetector
Definition: ForwardSubdetector.h:4
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
HFNoseDetId::layer
int layer() const
get the layer #
Definition: HFNoseDetId.h:56
DetId::det
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
HGCalTestNumbering::unpackHexagonIndex
static void unpackHexagonIndex(const uint32_t &idx, int &subdet, int &z, int &lay, int &wafer, int &celltyp, int &cell)
Definition: HGCalTestNumbering.cc:47
HcalTopology
Definition: HcalTopology.h:26
HGCalDDDConstants::waferZ
double waferZ(int layer, bool reco) const
Definition: HGCalDDDConstants.cc:1388
HGCalTriggerTools::isHad
bool isHad(const DetId &id) const
Definition: HGCalTriggerTools.h:44
DetId::Hcal
Definition: DetId.h:28
HGCalDetId::zside
int zside() const
get the z-side of the cell (1/-1)
Definition: HGCalDetId.h:49
HGCalTriggerTools::thicknessIndex
int thicknessIndex(const DetId &, bool tc=false) const
Definition: HGCalTriggerTools.cc:233
HFNoseTriggerDetId::type
int type() const
get the type
Definition: HFNoseTriggerDetId.h:47
HcalDetId::depth
constexpr int depth() const
get the tower depth
Definition: HcalDetId.h:164
HFNoseDetId.h
HGCalTriggerTools::isScintillator
bool isScintillator(const DetId &id) const
Definition: HGCalTriggerTools.h:46
HFNoseDetId
Definition: HFNoseDetId.h:22
HFNoseTriggerDetId
Definition: HFNoseTriggerDetId.h:26
HGCalDetId::layer
int layer() const
get the layer #
Definition: HGCalDetId.h:46
HGCalTriggerTools::isSilicon
bool isSilicon(const DetId &) const
Definition: HGCalTriggerTools.cc:181
HGCalHSiTrigger
Definition: ForwardSubdetector.h:14
HGCSiliconDetId
Definition: HGCSiliconDetId.h:22
HGCScintillatorDetId::layer
int layer() const
get the layer #
Definition: HGCScintillatorDetId.h:50
DetId
Definition: DetId.h:17
HGCalTriggerTools::noseLayers_
unsigned noseLayers_
Definition: HGCalTriggerTools.h:100
DetId::HGCalHSi
Definition: DetId.h:33
DetId::HGCalEE
Definition: DetId.h:32
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
Calorimetry_cff.thickness
thickness
Definition: Calorimetry_cff.py:114
HGCalTriggerGeometryBase.h
HGCalTriggerTools::getTCPhi
float getTCPhi(const DetId &id) const
Definition: HGCalTriggerTools.cc:296
PVValHelper::eta
Definition: PVValidationHelpers.h:69
HFNose
Definition: ForwardSubdetector.h:11
HGCalTopology::detectorType
bool detectorType() const
Definition: HGCalTopology.h:119
HGCalTriggerDetId::layer
int layer() const
get the layer #
Definition: HGCalTriggerDetId.h:53
HFNoseTriggerDetId.h
edm::ESHandle< HGCalTriggerGeometryBase >
HGCalTriggerTools::hgcal_silicon_CEE
Definition: HGCalTriggerTools.h:89
HGCalTriggerTools::getTCPt
float getTCPt(const DetId &id, const float &hitEnergy, const float &vertex_z=0.) const
Definition: HGCalTriggerTools.cc:307
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
HGCalEETrigger
Definition: ForwardSubdetector.h:14
HGCalTriggerTools::layerWithOffset
unsigned layerWithOffset(const DetId &) const
Definition: HGCalTriggerTools.cc:134
HGCalTriggerTools::hgcal_silicon_CEH
Definition: HGCalTriggerTools.h:90
HGCalTriggerTools::zside
int zside(const DetId &) const
Definition: HGCalTriggerTools.cc:210
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
HGCalTriggerGeometryBase::getCellsFromTriggerCell
virtual geom_set getCellsFromTriggerCell(const unsigned cell_det_id) const =0
Point3DBase< float, GlobalTag >
HGCScintillatorDetId::zside
int zside() const
get the z-side of the cell (1/-1)
Definition: HGCScintillatorDetId.h:47
HGCalTriggerTools::lastLayerFH
unsigned lastLayerFH() const
Definition: HGCalTriggerTools.h:55
HGCalTriggerTools::getTCPosition
GlobalPoint getTCPosition(const DetId &id) const
Definition: HGCalTriggerTools.cc:54
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
CaloGeometryRecord.h
HGCalTriggerTools::isNose
bool isNose(const DetId &) const
Definition: HGCalTriggerTools.cc:170
HGCalTriggerDetId
Definition: HGCalTriggerDetId.h:26
HGCalTriggerTools::getSubDetectorType
SubDetectorType getSubDetectorType(const DetId &id) const
Definition: HGCalTriggerTools.cc:198
HGCEE
Definition: ForwardSubdetector.h:8
HGCalTriggerTools::isEm
bool isEm(const DetId &) const
Definition: HGCalTriggerTools.cc:151
HGCalTriggerTools::getEta
float getEta(const GlobalPoint &position, const float &vertex_z=0.) const
Definition: HGCalTriggerTools.cc:281
HFNoseDetId::type
int type() const
get the type
Definition: HFNoseDetId.h:50
HGCalTriggerTools::bhLayers_
unsigned bhLayers_
Definition: HGCalTriggerTools.h:99
HGCalTriggerTools::sensorCellThicknessV8
int sensorCellThicknessV8(const DetId &id) const
Definition: HGCalTriggerTools.cc:379
HGCalTriggerDetId::subdet
HGCalTriggerSubdetector subdet() const
get the subdetector
Definition: HGCalTriggerDetId.h:42
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
HcalDetId.h
HcalTopology::dddConstants
const HcalDDDRecConstants * dddConstants() const
Definition: HcalTopology.h:164
HcalHitRelabeller.h
HGCalDDDConstants::layers
unsigned int layers(bool reco) const
Definition: HGCalDDDConstants.cc:561
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
HGCalTriggerTools::layer
unsigned layer(const DetId &) const
Definition: HGCalTriggerTools.cc:111
HcalDetId
Definition: HcalDetId.h:12
HFNoseDetId::isEE
bool isEE() const
consistency check : no bits left => no overhead
Definition: HFNoseDetId.h:104
HFNoseTrigger
Definition: ForwardSubdetector.h:14
HGCalTriggerTools::getPhi
float getPhi(const GlobalPoint &position) const
Definition: HGCalTriggerTools.cc:291
HGCalTriggerGeometryBase::bhTopology
const HcalTopology & bhTopology() const
Definition: HGCalTriggerGeometryBase.h:67
HGCalTriggerGeometryBase::isV9Geometry
bool isV9Geometry() const
Definition: HGCalTriggerGeometryBase.h:30
DetId::Detector
Detector
Definition: DetId.h:24
HGCalTriggerTools::totalLayers_
unsigned totalLayers_
Definition: HGCalTriggerTools.h:101
edm::EventSetup
Definition: EventSetup.h:57
HGCalTriggerTools::layers
unsigned layers(ForwardSubdetector type) const
Definition: HGCalTriggerTools.cc:65
HGCSiliconDetId::zside
int zside() const
get the z-side of the cell (1/-1)
Definition: HGCSiliconDetId.h:54
HGCalTriggerTools::simToReco
DetId simToReco(const DetId &, const HGCalTopology &) const
Definition: HGCalTriggerTools.cc:346
get
#define get
fileinputsource_cfi.sec
sec
Definition: fileinputsource_cfi.py:87
HGCalTopology
Definition: HGCalTopology.h:12
cmsLHEtoEOSManager.l
l
Definition: cmsLHEtoEOSManager.py:204
DDAxes::phi
HcalHitRelabeller::relabel
DetId relabel(const uint32_t testId) const
Definition: HcalHitRelabeller.cc:49
HGCalDetId
Definition: HGCalDetId.h:8
HGCalDetId.h
HcalDDDRecConstants::getRZ
double getRZ(const int &subdet, const int &ieta, const int &depth) const
Definition: HcalDDDRecConstants.cc:416
HcalDDDRecConstants::getEtaRange
std::pair< int, int > getEtaRange(const int &i) const
Definition: HcalDDDRecConstants.h:74
HGCalTriggerTools::eeLayers_
unsigned eeLayers_
Definition: HGCalTriggerTools.h:97
HcalEndcap
Definition: HcalAssistant.h:34
HGCalTriggerTools::SubDetectorType
SubDetectorType
Definition: HGCalTriggerTools.h:88
HGCScintillatorDetId
Definition: HGCScintillatorDetId.h:23
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
DetId::HGCalHSc
Definition: DetId.h:34
Exception
Definition: hltDiff.cc:246
CaloGeometry.h
HGCalTriggerGeometryBase::getTriggerCellPosition
virtual GlobalPoint getTriggerCellPosition(const unsigned trigger_cell_det_id) const =0
HGCalTriggerTools::fhLayers_
unsigned fhLayers_
Definition: HGCalTriggerTools.h:98
mps_monitormerge.occurences
list occurences
Definition: mps_monitormerge.py:28
HGCSiliconDetId::type
int type() const
get the type
Definition: HGCSiliconDetId.h:51
EventSetup.h
HGCalTriggerTools::kScintillatorPseudoThicknessIndex_
static constexpr unsigned kScintillatorPseudoThicknessIndex_
Definition: HGCalTriggerTools.h:86
HGCalTriggerTools::getPt
float getPt(const GlobalPoint &position, const float &hitEnergy, const float &vertex_z=0.) const
Definition: HGCalTriggerTools.cc:301
HcalDDDRecConstants::getMaxDepth
int getMaxDepth(const int &type) const
Definition: HcalDDDRecConstants.h:88
HGCalDDDConstants::waferTypeL
int waferTypeL(int wafer) const
Definition: HGCalDDDConstants.h:183
HGCHEF
Definition: ForwardSubdetector.h:9
HGCalTriggerDetId::type
int type() const
get the type
Definition: HGCalTriggerDetId.h:47
HFNoseTriggerDetId::layer
int layer() const
get the layer #
Definition: HFNoseTriggerDetId.h:53
HGCalTriggerGeometryBase::isWithNoseGeometry
bool isWithNoseGeometry() const
Definition: HGCalTriggerGeometryBase.h:31
DetId::Forward
Definition: DetId.h:30
HcalDetId::zside
constexpr int zside() const
get the z-side of the cell (1/-1)
Definition: HcalDetId.h:141
hltrates_dqm_sourceclient-live_cfg.offset
offset
Definition: hltrates_dqm_sourceclient-live_cfg.py:82
HGCalTriggerTools::lastLayerEE
unsigned lastLayerEE() const
Definition: HGCalTriggerTools.h:54
HGCalTriggerTools::getLayerZ
float getLayerZ(const unsigned &layerWithOffset) const
Definition: HGCalTriggerTools.cc:312
HFNoseTriggerDetId::isEE
bool isEE() const
consistency check : no bits left => no overhead
Definition: HFNoseTriggerDetId.h:87
HGCalTriggerGeometryBase::noseTopology
const HGCalTopology & noseTopology() const
Definition: HGCalTriggerGeometryBase.h:64
HGCalTriggerDetId.h
HGCHEB
Definition: ForwardSubdetector.h:10
HGCalTriggerGeometryBase::fhTopology
const HGCalTopology & fhTopology() const
Definition: HGCalTriggerGeometryBase.h:66
HGCalTriggerTools::hgcal_scintillator
Definition: HGCalTriggerTools.h:91
HGCalTestNumbering.h
HGCSiliconDetId::layer
int layer() const
get the layer #
Definition: HGCSiliconDetId.h:57
HGCalTriggerGeometryBase::hscTopology
const HGCalTopology & hscTopology() const
Definition: HGCalTriggerGeometryBase.h:69