CMS 3D CMS Logo

RecHitTools.cc
Go to the documentation of this file.
2 
12 
14 
17 
18 using namespace hgcal;
19 
20 namespace {
21  template <typename DDD>
22  inline void check_ddd(const DDD* ddd) {
23  if (nullptr == ddd) {
24  throw cms::Exception("hgcal::RecHitTools") << "DDDConstants not accessibl to hgcal::RecHitTools!";
25  }
26  }
27 
28  template <typename GEOM>
29  inline void check_geom(const GEOM* geom) {
30  if (nullptr == geom) {
31  throw cms::Exception("hgcal::RecHitTools") << "Geometry not provided yet to hgcal::RecHitTools!";
32  }
33  }
34 
35  inline const HGCalDDDConstants* get_ddd(const CaloSubdetectorGeometry* geom, const HGCalDetId& detid) {
36  const HGCalGeometry* hg = static_cast<const HGCalGeometry*>(geom);
37  const HGCalDDDConstants* ddd = &(hg->topology().dddConstants());
38  check_ddd(ddd);
39  return ddd;
40  }
41 
42  inline const HGCalDDDConstants* get_ddd(const CaloSubdetectorGeometry* geom, const HGCSiliconDetId& detid) {
43  const HGCalGeometry* hg = static_cast<const HGCalGeometry*>(geom);
44  const HGCalDDDConstants* ddd = &(hg->topology().dddConstants());
45  check_ddd(ddd);
46  return ddd;
47  }
48 
49  inline const HGCalDDDConstants* get_ddd(const CaloSubdetectorGeometry* geom, const HFNoseDetId& detid) {
50  const HGCalGeometry* hg = static_cast<const HGCalGeometry*>(geom);
51  const HGCalDDDConstants* ddd = &(hg->topology().dddConstants());
52  check_ddd(ddd);
53  return ddd;
54  }
55 
56  inline const HGCalDDDConstants* get_ddd(const CaloGeometry* geom, int type, int maxLayerEE, int layer) {
57  DetId::Detector det = ((type == 0) ? DetId::Forward : ((layer > maxLayerEE) ? DetId::HGCalHSi : DetId::HGCalEE));
58  int subdet = ((type != 0) ? ForwardSubdetector::ForwardEmpty
60  const HGCalGeometry* hg = static_cast<const HGCalGeometry*>(geom->getSubdetectorGeometry(det, subdet));
61  const HGCalDDDConstants* ddd = &(hg->topology().dddConstants());
62  check_ddd(ddd);
63  return ddd;
64  }
65 
66 } // namespace
67 
69  geom_ = &geom;
70  unsigned int wmaxEE(0), wmaxFH(0);
71  auto geomEE = static_cast<const HGCalGeometry*>(
73  //check if it's the new geometry
74  if (geomEE) {
75  geometryType_ = 1;
76  fhOffset_ = (geomEE->topology().dddConstants()).layers(true);
77  wmaxEE = (geomEE->topology().dddConstants()).waferCount(0);
78  auto geomFH = static_cast<const HGCalGeometry*>(
80  wmaxFH = (geomFH->topology().dddConstants()).waferCount(0);
81  fhLastLayer_ = fhOffset_ + (geomFH->topology().dddConstants()).layers(true);
82  auto geomBH = static_cast<const HGCalGeometry*>(
84  bhOffset_ =
85  fhOffset_ + (geomBH->topology().dddConstants()).firstLayer() - (geomEE->topology().dddConstants()).firstLayer();
86  bhLastLayer_ = bhOffset_ + (geomBH->topology().dddConstants()).layers(true);
87  bhMaxIphi_ = geomBH->topology().dddConstants().maxCells(true);
88  } else {
89  geometryType_ = 0;
90  geomEE =
91  static_cast<const HGCalGeometry*>(geom_->getSubdetectorGeometry(DetId::Forward, ForwardSubdetector::HGCEE));
92  fhOffset_ = (geomEE->topology().dddConstants()).layers(true);
93  wmaxEE = 1 + (geomEE->topology().dddConstants()).waferMax();
94  auto geomFH =
95  static_cast<const HGCalGeometry*>(geom_->getSubdetectorGeometry(DetId::Forward, ForwardSubdetector::HGCHEF));
96  bhOffset_ = fhOffset_ + (geomFH->topology().dddConstants()).layers(true);
97  wmaxFH = 1 + (geomFH->topology().dddConstants()).waferMax();
99  auto geomBH =
100  static_cast<const HcalGeometry*>(geom_->getSubdetectorGeometry(DetId::Hcal, HcalSubdetector::HcalEndcap));
101  bhLastLayer_ = bhOffset_ + (geomBH->topology().dddConstants())->getMaxDepth(1);
102  }
103  maxNumberOfWafersPerLayer_ = std::max(wmaxEE, wmaxFH);
104  // For nose geometry
105  auto geomNose =
106  static_cast<const HGCalGeometry*>(geom_->getSubdetectorGeometry(DetId::Forward, ForwardSubdetector::HFNose));
107  if (geomNose) {
108  maxNumberOfWafersNose_ = (geomNose->topology().dddConstants()).waferCount(0);
109  noseLastLayer_ = (geomNose->topology().dddConstants()).layers(true);
110  } else {
112  noseLastLayer_ = 0;
113  }
114 }
115 
117  DetId::Detector det = id.det();
118  int subdet = (det == DetId::HGCalEE || det == DetId::HGCalHSi || det == DetId::HGCalHSc)
120  : id.subdetId();
121  auto geom = geom_->getSubdetectorGeometry(det, subdet);
122  check_geom(geom);
123  return geom;
124 }
125 
127  auto geom = getSubdetectorGeometry(id);
129  if (id.det() == DetId::Hcal) {
130  position = geom->getGeometry(id)->getPosition();
131  } else {
132  auto hg = static_cast<const HGCalGeometry*>(geom);
133  position = hg->getPosition(id);
134  }
135  return position;
136 }
137 
139  unsigned int lay = std::abs(layer);
140  double z(0);
141  if (nose) {
142  auto geomNose =
143  static_cast<const HGCalGeometry*>(geom_->getSubdetectorGeometry(DetId::Forward, ForwardSubdetector::HFNose));
144  if (geomNose) {
145  const HGCalDDDConstants* ddd = &(geomNose->topology().dddConstants());
146  if (ddd)
147  z = (layer > 0) ? ddd->waferZ(lay, true) : -ddd->waferZ(lay, true);
148  }
149  } else {
150  const HGCalDDDConstants* ddd = get_ddd(geom_, geometryType_, fhOffset_, lay);
151  if (geometryType_ == 1) {
152  if (lay > fhOffset_)
153  lay -= fhOffset_;
154  }
155  z = (layer > 0) ? ddd->waferZ(lay, true) : -ddd->waferZ(lay, true);
156  }
157  return GlobalPoint(0, 0, z);
158 }
159 
160 int RecHitTools::zside(const DetId& id) const {
161  int zside = 0;
162  if (id.det() == DetId::HGCalEE || id.det() == DetId::HGCalHSi) {
163  zside = HGCSiliconDetId(id).zside();
164  } else if (id.det() == DetId::HGCalHSc) {
166  } else if (id.det() == DetId::Forward && id.subdetId() == static_cast<int>(HFNose)) {
167  zside = HFNoseDetId(id).zside();
168  } else if (id.det() == DetId::Forward) {
169  zside = HGCalDetId(id).zside();
170  } else if (id.det() == DetId::Hcal && id.subdetId() == HcalEndcap) {
171  zside = HcalDetId(id).zside();
172  }
173  return zside;
174 }
175 
176 std::float_t RecHitTools::getSiThickness(const DetId& id) const {
177  auto geom = getSubdetectorGeometry(id);
178  std::float_t thick(0.37);
179  if (id.det() == DetId::HGCalEE || id.det() == DetId::HGCalHSi) {
180  const HGCSiliconDetId hid(id);
181  auto ddd = get_ddd(geom, hid);
182  thick = ddd->cellThickness(hid.layer(), hid.waferU(), hid.waferV());
183  } else if (id.det() == DetId::Forward && id.subdetId() == static_cast<int>(HFNose)) {
184  const HFNoseDetId hid(id);
185  auto ddd = get_ddd(geom, hid);
186  thick = ddd->cellThickness(hid.layer(), hid.waferU(), hid.waferV());
187  } else if (id.det() == DetId::Forward) {
188  const HGCalDetId hid(id);
189  auto ddd = get_ddd(geom, hid);
190  thick = ddd->cellThickness(hid.layer(), hid.wafer(), 0);
191  } else {
192  LogDebug("getSiThickness::InvalidSiliconDetid")
193  << "det id: " << std::hex << id.rawId() << std::dec << ":" << id.det() << " is not HGCal silicon!";
194  // It does not make any sense to return 0.37 as thickness for a detector
195  // that is not Silicon(does it?). Mark it as 0. to be able to distinguish
196  // the case.
197  thick = 0.f;
198  }
199  return thick;
200 }
201 
202 int RecHitTools::getSiThickIndex(const DetId& id) const {
203  int thickIndex = -1;
204  if (id.det() == DetId::HGCalEE || id.det() == DetId::HGCalHSi) {
205  thickIndex = HGCSiliconDetId(id).type();
206  } else if (id.det() == DetId::Forward && id.subdetId() == static_cast<int>(HFNose)) {
207  thickIndex = HFNoseDetId(id).type();
208  } else if (id.det() == DetId::Forward) {
209  float thickness = getSiThickness(id);
210  if (thickness > 99. && thickness < 121.)
211  thickIndex = 0;
212  else if (thickness > 199. && thickness < 201.)
213  thickIndex = 1;
214  else if (thickness > 299. && thickness < 301.)
215  thickIndex = 2;
216  else
217  assert(thickIndex > 0 && "ERROR - silicon thickness has a nonsensical value");
218  }
219  return thickIndex;
220 }
221 
222 std::pair<float, float> RecHitTools::getScintDEtaDPhi(const DetId& id) const {
223  if (!isScintillator(id)) {
224  LogDebug("getScintDEtaDPhi::InvalidScintDetid")
225  << "det id: " << std::hex << id.rawId() << std::dec << ":" << id.det() << " is not HGCal scintillator!";
226  return {0.f, 0.f};
227  }
228  auto cellGeom = getSubdetectorGeometry(id)->getGeometry(id);
229  return {cellGeom->etaSpan(), cellGeom->phiSpan()};
230 }
231 
232 std::float_t RecHitTools::getRadiusToSide(const DetId& id) const {
233  auto geom = getSubdetectorGeometry(id);
235  if (id.det() == DetId::HGCalEE || id.det() == DetId::HGCalHSi) {
236  const HGCSiliconDetId hid(id);
237  auto ddd = get_ddd(geom, hid);
238  size = ddd->cellSizeHex(hid.type());
239  } else if (id.det() == DetId::Forward && id.subdetId() == static_cast<int>(HFNose)) {
240  const HFNoseDetId hid(id);
241  auto ddd = get_ddd(geom, hid);
242  size = ddd->cellSizeHex(hid.type());
243  } else if (id.det() == DetId::Forward) {
244  const HGCalDetId hid(id);
245  auto ddd = get_ddd(geom, hid);
246  size = ddd->cellSizeHex(hid.waferType());
247  } else {
248  edm::LogError("getRadiusToSide::InvalidSiliconDetid")
249  << "det id: " << std::hex << id.rawId() << std::dec << ":" << id.det() << " is not HGCal silicon!";
250  }
251  return size;
252 }
253 
254 unsigned int RecHitTools::getLayer(const ForwardSubdetector type) const {
255  int layer(0);
256  switch (type) {
257  case (ForwardSubdetector::HGCEE): {
258  auto geomEE =
259  static_cast<const HGCalGeometry*>(geom_->getSubdetectorGeometry(DetId::Forward, ForwardSubdetector::HGCEE));
260  layer = (geomEE->topology().dddConstants()).layers(true);
261  break;
262  }
264  auto geomFH =
265  static_cast<const HGCalGeometry*>(geom_->getSubdetectorGeometry(DetId::Forward, ForwardSubdetector::HGCHEF));
266  layer = (geomFH->topology().dddConstants()).layers(true);
267  break;
268  }
270  auto geomBH =
271  static_cast<const HcalGeometry*>(geom_->getSubdetectorGeometry(DetId::Hcal, HcalSubdetector::HcalEndcap));
272  layer = (geomBH->topology().dddConstants())->getMaxDepth(1);
273  break;
274  }
276  auto geomEE =
277  static_cast<const HGCalGeometry*>(geom_->getSubdetectorGeometry(DetId::Forward, ForwardSubdetector::HGCEE));
278  layer = (geomEE->topology().dddConstants()).layers(true);
279  auto geomFH =
280  static_cast<const HGCalGeometry*>(geom_->getSubdetectorGeometry(DetId::Forward, ForwardSubdetector::HGCHEF));
281  layer += (geomFH->topology().dddConstants()).layers(true);
282  auto geomBH =
283  static_cast<const HcalGeometry*>(geom_->getSubdetectorGeometry(DetId::Hcal, HcalSubdetector::HcalEndcap));
284  if (geomBH)
285  layer += (geomBH->topology().dddConstants())->getMaxDepth(1);
286  auto geomBH2 =
287  static_cast<const HGCalGeometry*>(geom_->getSubdetectorGeometry(DetId::Forward, ForwardSubdetector::HGCHEB));
288  if (geomBH2)
289  layer += (geomBH2->topology().dddConstants()).layers(true);
290  break;
291  }
293  auto geomHFN =
294  static_cast<const HGCalGeometry*>(geom_->getSubdetectorGeometry(DetId::Forward, ForwardSubdetector::HFNose));
295  layer = (geomHFN->topology().dddConstants()).layers(true);
296  break;
297  }
298  default:
299  layer = 0;
300  }
301  return (unsigned int)(layer);
302 }
303 
304 unsigned int RecHitTools::getLayer(const DetId::Detector type, bool nose) const {
305  int layer;
306  switch (type) {
307  case (DetId::HGCalEE): {
308  auto geomEE =
309  static_cast<const HGCalGeometry*>(geom_->getSubdetectorGeometry(type, ForwardSubdetector::ForwardEmpty));
310  layer = (geomEE->topology().dddConstants()).layers(true);
311  break;
312  }
313  case (DetId::HGCalHSi): {
314  auto geomFH =
315  static_cast<const HGCalGeometry*>(geom_->getSubdetectorGeometry(type, ForwardSubdetector::ForwardEmpty));
316  layer = (geomFH->topology().dddConstants()).layers(true);
317  break;
318  }
319  case (DetId::HGCalHSc): {
320  auto geomBH =
321  static_cast<const HGCalGeometry*>(geom_->getSubdetectorGeometry(type, ForwardSubdetector::ForwardEmpty));
322  layer = (geomBH->topology().dddConstants()).layers(true);
323  break;
324  }
325  case (DetId::Forward): {
326  if (nose) {
327  auto geomHFN = static_cast<const HGCalGeometry*>(
329  layer = (geomHFN->topology().dddConstants()).layers(true);
330  } else {
331  auto geomEE = static_cast<const HGCalGeometry*>(
333  layer = (geomEE->topology().dddConstants()).layers(true);
334  auto geomFH = static_cast<const HGCalGeometry*>(
336  layer += (geomFH->topology().dddConstants()).layers(true);
337  }
338  break;
339  }
340  default:
341  layer = 0;
342  }
343  return (unsigned int)(layer);
344 }
345 
346 unsigned int RecHitTools::getLayer(const DetId& id) const {
348  if (id.det() == DetId::HGCalEE || id.det() == DetId::HGCalHSi) {
349  layer = HGCSiliconDetId(id).layer();
350  } else if (id.det() == DetId::HGCalHSc) {
352  } else if (id.det() == DetId::Forward && id.subdetId() == static_cast<int>(HFNose)) {
353  layer = HFNoseDetId(id).layer();
354  } else if (id.det() == DetId::Forward) {
355  layer = HGCalDetId(id).layer();
356  } else if (id.det() == DetId::Hcal && id.subdetId() == HcalEndcap) {
357  layer = HcalDetId(id).depth();
358  }
359  return layer;
360 }
361 
362 unsigned int RecHitTools::getLayerWithOffset(const DetId& id) const {
363  unsigned int layer = getLayer(id);
364  if (id.det() == DetId::Forward && id.subdetId() == HGCHEF) {
365  layer += fhOffset_;
366  } else if (id.det() == DetId::HGCalHSi || id.det() == DetId::HGCalHSc) {
367  // DetId::HGCalHSc hits include the offset w.r.t. EE already
368  layer += fhOffset_;
369  } else if (id.det() == DetId::Hcal && id.subdetId() == HcalEndcap) {
370  layer += bhOffset_;
371  }
372  // no need to add offset for HFnose
373  return layer;
374 }
375 
376 std::pair<int, int> RecHitTools::getWafer(const DetId& id) const {
378  int waferV = 0;
379  if ((id.det() == DetId::HGCalEE) || (id.det() == DetId::HGCalHSi)) {
380  waferU = HGCSiliconDetId(id).waferU();
381  waferV = HGCSiliconDetId(id).waferV();
382  } else if (id.det() == DetId::Forward && id.subdetId() == static_cast<int>(HFNose)) {
383  waferU = HFNoseDetId(id).waferU();
384  waferV = HFNoseDetId(id).waferV();
385  } else if (id.det() == DetId::Forward) {
386  waferU = HGCalDetId(id).wafer();
387  } else {
388  edm::LogError("getWafer::InvalidSiliconDetid")
389  << "det id: " << std::hex << id.rawId() << std::dec << ":" << id.det() << " is not HGCal silicon!";
390  }
391  return std::pair<int, int>(waferU, waferV);
392 }
393 
394 std::pair<int, int> RecHitTools::getCell(const DetId& id) const {
395  int cellU = std::numeric_limits<int>::max();
396  int cellV = 0;
397  if ((id.det() == DetId::HGCalEE) || (id.det() == DetId::HGCalHSi)) {
398  cellU = HGCSiliconDetId(id).cellU();
399  cellV = HGCSiliconDetId(id).cellV();
400  } else if (id.det() == DetId::Forward && id.subdetId() == static_cast<int>(HFNose)) {
401  cellU = HFNoseDetId(id).cellU();
402  cellV = HFNoseDetId(id).cellV();
403  } else if (id.det() == DetId::Forward) {
404  cellU = HGCalDetId(id).cell();
405  } else {
406  edm::LogError("getCell::InvalidSiliconDetid")
407  << "det id: " << std::hex << id.rawId() << std::dec << ":" << id.det() << " is not HGCal silicon!";
408  }
409  return std::pair<int, int>(cellU, cellV);
410 }
411 
412 bool RecHitTools::isHalfCell(const DetId& id) const {
413  bool ishalf = false;
414  if (id.det() == DetId::Forward) {
415  HGCalDetId hid(id);
416  auto geom = getSubdetectorGeometry(hid);
417  auto ddd = get_ddd(geom, hid);
418  const int waferType = ddd->waferTypeT(hid.waferType());
419  return ddd->isHalfCell(waferType, hid.cell());
420  }
421  //new geometry is always false
422  return ishalf;
423 }
424 
425 bool RecHitTools::isSilicon(const DetId& id) const {
426  return (id.det() == DetId::HGCalEE || id.det() == DetId::HGCalHSi ||
427  (id.det() == DetId::Forward && id.subdetId() == static_cast<int>(HFNose)));
428 }
429 
430 bool RecHitTools::isScintillator(const DetId& id) const { return id.det() == DetId::HGCalHSc; }
431 
432 bool RecHitTools::isOnlySilicon(const unsigned int layer) const {
433  // HFnose TODO
434  bool isonlysilicon = (layer % bhLastLayer_) < bhOffset_;
435  return isonlysilicon;
436 }
437 
438 float RecHitTools::getEta(const GlobalPoint& position, const float& vertex_z) const {
439  GlobalPoint corrected_position = GlobalPoint(position.x(), position.y(), position.z() - vertex_z);
440  return corrected_position.eta();
441 }
442 
443 float RecHitTools::getEta(const DetId& id, const float& vertex_z) const {
445  float eta = getEta(position, vertex_z);
446  return eta;
447 }
448 
450  float phi = atan2(position.y(), position.x());
451  return phi;
452 }
453 
454 float RecHitTools::getPhi(const DetId& id) const {
456  float phi = atan2(position.y(), position.x());
457  return phi;
458 }
459 
460 float RecHitTools::getPt(const GlobalPoint& position, const float& hitEnergy, const float& vertex_z) const {
461  float eta = getEta(position, vertex_z);
462  float pt = hitEnergy / cosh(eta);
463  return pt;
464 }
465 
466 float RecHitTools::getPt(const DetId& id, const float& hitEnergy, const float& vertex_z) const {
468  float eta = getEta(position, vertex_z);
469  float pt = hitEnergy / cosh(eta);
470  return pt;
471 }
472 
473 bool RecHitTools::maskCell(const DetId& id, int corners) const {
474  if (id.det() == DetId::Hcal) {
475  return false;
476  } else {
477  auto hg = static_cast<const HGCalGeometry*>(getSubdetectorGeometry(id));
478  return hg->topology().dddConstants().maskCell(id, corners);
479  }
480 }
hgcal::RecHitTools::geom_
const CaloGeometry * geom_
Definition: RecHitTools.h:80
HGCalTopology::dddConstants
const HGCalDDDConstants & dddConstants() const
Definition: HGCalTopology.h:98
hgcal::RecHitTools::getSiThickness
std::float_t getSiThickness(const DetId &) const
Definition: RecHitTools.cc:176
hgcal::RecHitTools::geometryType_
int geometryType_
Definition: RecHitTools.h:83
hgcal::RecHitTools::getRadiusToSide
std::float_t getRadiusToSide(const DetId &) const
Definition: RecHitTools.cc:232
HGCScintillatorDetId.h
ForwardEmpty
Definition: ForwardSubdetector.h:5
ESHandle.h
hgcal::RecHitTools::getSiThickIndex
int getSiThickIndex(const DetId &) const
Definition: RecHitTools.cc:202
hgcal::RecHitTools::isHalfCell
bool isHalfCell(const DetId &) const
Definition: RecHitTools.cc:412
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
HFNoseDetId::layer
int layer() const
get the layer #
Definition: HFNoseDetId.h:56
HGCalDDDConstants::waferZ
double waferZ(int layer, bool reco) const
Definition: HGCalDDDConstants.cc:1412
DetId::Hcal
Definition: DetId.h:28
HGCalDetId::zside
int zside() const
get the z-side of the cell (1/-1)
Definition: HGCalDetId.h:49
HGCSiliconDetId.h
hgcal::RecHitTools::fhLastLayer_
unsigned int fhLastLayer_
Definition: RecHitTools.h:81
RecHitTools.h
HGCalWaferIndex::waferU
int32_t waferU(const int32_t index)
Definition: HGCalWaferIndex.cc:27
CaloGeometry::getSubdetectorGeometry
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
cms::cuda::assert
assert(be >=bs)
HcalDetId::depth
constexpr int depth() const
get the tower depth
Definition: HcalDetId.h:164
hgcal::RecHitTools::getCell
std::pair< int, int > getCell(const DetId &) const
Definition: RecHitTools.cc:394
hgcal::RecHitTools::maxNumberOfWafersNose_
unsigned int maxNumberOfWafersNose_
Definition: RecHitTools.h:82
HFNoseDetId
Definition: HFNoseDetId.h:22
HGCalDetId::layer
int layer() const
get the layer #
Definition: HGCalDetId.h:46
hgcal::RecHitTools::bhOffset_
unsigned int bhOffset_
Definition: RecHitTools.h:81
HGCSiliconDetId
Definition: HGCSiliconDetId.h:22
hgcal::RecHitTools::getScintDEtaDPhi
std::pair< float, float > getScintDEtaDPhi(const DetId &) const
Definition: RecHitTools.cc:222
HcalGeometry.h
hgcal
Definition: EgammaPCAHelper.h:31
HGCalDDDConstants
Definition: HGCalDDDConstants.h:27
HGCScintillatorDetId::layer
int layer() const
get the layer #
Definition: HGCScintillatorDetId.h:50
HFNoseDetId::waferU
int waferU() const
Definition: HFNoseDetId.h:75
DetId
Definition: DetId.h:17
DetId::HGCalHSi
Definition: DetId.h:33
DetId::HGCalEE
Definition: DetId.h:32
CaloGeometry
Definition: CaloGeometry.h:21
Calorimetry_cff.thickness
thickness
Definition: Calorimetry_cff.py:115
PVValHelper::eta
Definition: PVValidationHelpers.h:70
HFNose
Definition: ForwardSubdetector.h:11
hgcal::RecHitTools::getPt
float getPt(const GlobalPoint &position, const float &hitEnergy, const float &vertex_z=0.) const
Definition: RecHitTools.cc:460
HGCalWaferIndex::waferV
int32_t waferV(const int32_t index)
Definition: HGCalWaferIndex.cc:32
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Point3DBase< float, GlobalTag >
HGCalGeometry
Definition: HGCalGeometry.h:29
HGCScintillatorDetId::zside
int zside() const
get the z-side of the cell (1/-1)
Definition: HGCScintillatorDetId.h:47
HGCalGeometry::topology
const HGCalTopology & topology() const
Definition: HGCalGeometry.h:111
hgcal::RecHitTools::getWafer
std::pair< int, int > getWafer(const DetId &) const
Definition: RecHitTools.cc:376
CaloGeometryRecord.h
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
HGCEE
Definition: ForwardSubdetector.h:8
HGCalDetId::waferType
int waferType() const
get the wafer type
Definition: HGCalDetId.h:43
HFNoseDetId::type
int type() const
get the type
Definition: HFNoseDetId.h:50
HGCalGeometry.h
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
Event.h
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
hgcal::RecHitTools::getPhi
float getPhi(const GlobalPoint &position) const
Definition: RecHitTools.cc:449
type
type
Definition: SiPixelVCal_PayloadInspector.cc:39
hgcal::RecHitTools::getLayerWithOffset
unsigned int getLayerWithOffset(const DetId &) const
Definition: RecHitTools.cc:362
HcalDetId.h
hgcal::RecHitTools::isSilicon
bool isSilicon(const DetId &) const
Definition: RecHitTools.cc:425
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
hgcal::RecHitTools::maxNumberOfWafersPerLayer_
unsigned int maxNumberOfWafersPerLayer_
Definition: RecHitTools.h:82
HcalDetId
Definition: HcalDetId.h:12
HFNoseDetId::cellV
int cellV() const
Definition: HFNoseDetId.h:60
IdealGeometryRecord.h
hgcal::RecHitTools::zside
int zside(const DetId &id) const
Definition: RecHitTools.cc:160
DetId::Detector
Detector
Definition: DetId.h:24
HGCalGeometry::getPosition
GlobalPoint getPosition(const DetId &id) const
Definition: HGCalGeometry.cc:198
CaloSubdetectorGeometry::getGeometry
virtual std::shared_ptr< const CaloCellGeometry > getGeometry(const DetId &id) const
Get the cell geometry of a given detector id. Should return false if not found.
Definition: CaloSubdetectorGeometry.cc:36
HGCSiliconDetId::zside
int zside() const
get the z-side of the cell (1/-1)
Definition: HGCSiliconDetId.h:54
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
hgcal::RecHitTools::getPositionLayer
GlobalPoint getPositionLayer(int layer, bool nose=false) const
Definition: RecHitTools.cc:138
hgcal::RecHitTools::getSubdetectorGeometry
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
Definition: RecHitTools.cc:116
HFNoseDetId::cellU
int cellU() const
get the cell #'s in u,v or in x,y
Definition: HFNoseDetId.h:59
hgcal::RecHitTools::getLayer
unsigned int getLayer(DetId::Detector type, bool nose=false) const
Definition: RecHitTools.cc:304
hgcal::RecHitTools::getEta
float getEta(const GlobalPoint &position, const float &vertex_z=0.) const
Definition: RecHitTools.cc:438
HGCalDetId::wafer
int wafer() const
get the wafer #
Definition: HGCalDetId.h:40
HGCalDetId
Definition: HGCalDetId.h:8
HGCSiliconDetId::cellV
int cellV() const
Definition: HGCSiliconDetId.h:61
HGCalDetId.h
HGCSiliconDetId::cellU
int cellU() const
get the cell #'s in u,v or in x,y
Definition: HGCSiliconDetId.h:60
hgcal::RecHitTools::fhOffset_
unsigned int fhOffset_
Definition: RecHitTools.h:81
HcalEndcap
Definition: HcalAssistant.h:34
HGCScintillatorDetId
Definition: HGCScintillatorDetId.h:23
hgcal::RecHitTools::setGeometry
void setGeometry(CaloGeometry const &)
Definition: RecHitTools.cc:68
hgcal::RecHitTools::maskCell
bool maskCell(const DetId &id, int corners=3) const
Definition: RecHitTools.cc:473
DetId::HGCalHSc
Definition: DetId.h:34
Exception
Definition: hltDiff.cc:245
hgcal::RecHitTools::noseLastLayer_
unsigned int noseLastLayer_
Definition: RecHitTools.h:81
CaloGeometry.h
HGCSiliconDetId::type
int type() const
get the type
Definition: HGCSiliconDetId.h:51
hgcal::RecHitTools::isScintillator
bool isScintillator(const DetId &) const
Definition: RecHitTools.cc:430
hgcal::RecHitTools::isOnlySilicon
bool isOnlySilicon(const unsigned int layer) const
Definition: RecHitTools.cc:432
HGCSiliconDetId::waferU
int waferU() const
Definition: HGCSiliconDetId.h:76
EventSetup.h
CaloSubdetectorGeometry
Definition: CaloSubdetectorGeometry.h:22
hgcal::RecHitTools::bhMaxIphi_
int bhMaxIphi_
Definition: RecHitTools.h:84
HGCHEF
Definition: ForwardSubdetector.h:9
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
hgcal::RecHitTools::bhLastLayer_
unsigned int bhLastLayer_
Definition: RecHitTools.h:81
HFNoseDetId::waferV
int waferV() const
Definition: HFNoseDetId.h:78
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
hgcal::RecHitTools::getPosition
GlobalPoint getPosition(const DetId &id) const
Definition: RecHitTools.cc:126
TauDecayModes.dec
dec
Definition: TauDecayModes.py:142
hgcalTopologyTester_cfi.layers
layers
Definition: hgcalTopologyTester_cfi.py:8
HGCalDDDConstants::maskCell
bool maskCell(const DetId &id, int corners) const
Definition: HGCalDDDConstants.cc:764
HGCalDetId::cell
int cell() const
get the absolute value of the cell #'s in x and y
Definition: HGCalDetId.h:37
HGCSiliconDetId::waferV
int waferV() const
Definition: HGCSiliconDetId.h:77
HGCHEB
Definition: ForwardSubdetector.h:10
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
HGCSiliconDetId::layer
int layer() const
get the layer #
Definition: HGCSiliconDetId.h:57