|
|
Go to the documentation of this file.
20 template <
typename DDD>
21 inline void check_ddd(
const DDD* ddd) {
23 throw cms::Exception(
"hgcal::HGCalTriggerTools") <<
"DDDConstants not accessible to hgcal::HGCalTriggerTools!";
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!";
56 throw cms::Exception(
"hgcal::HGCalTriggerTools") <<
"method getTCPosition called for DetId not belonging to a TC";
135 unsigned int l =
layer(
id);
155 em = (
id.subdetId() ==
HGCEE);
182 bool silicon =
false;
184 silicon = (
id.subdetId() !=
HGCHEB);
237 unsigned det =
id.det();
247 std::array<unsigned, 3>
occurences = {{0, 0, 0}};
250 int c_thickness = -1;
257 if (c_thickness < 0 ||
unsigned(c_thickness) >=
occurences.size()) {
258 throw cms::Exception(
"OutOfBound") <<
"Found thickness index = " << c_thickness;
283 return corrected_position.
eta();
303 float pt = hitEnergy / cosh(
eta);
327 float layerGlobalZ = 0.;
350 if (dddConst.waferHexagon8() || dddConst.tileTrapezoid()) {
356 int layer = 0, cell = 0,
sec = 0, subsec = 0, zp = 0;
361 cell = recoLayerCell.first;
362 layer = recoLayerCell.second;
363 if (
layer >= 0 && cell >= 0) {
381 switch (
id.subdetId()) {
T const * product() const
const HGCalTopology & eeTopology() const
const HGCalDDDConstants & dddConstants() const
int zside() const
get the z-side of the cell (1/-1)
int zside() const
get the z-side of the cell (1/-1)
int zside() const
get the z-side of the cell (1/-1)
int layer() const
get the layer #
constexpr Detector det() const
get the detector field from this detid
static void unpackHexagonIndex(const uint32_t &idx, int &subdet, int &z, int &lay, int &wafer, int &celltyp, int &cell)
double waferZ(int layer, bool reco) const
int zside() const
get the z-side of the cell (1/-1)
int type() const
get the type
constexpr int depth() const
get the tower depth
int layer() const
get the layer #
int layer() const
get the layer #
bool detectorType() const
int layer() const
get the layer #
Global3DPoint GlobalPoint
virtual geom_set getCellsFromTriggerCell(const unsigned cell_det_id) const =0
int zside() const
get the z-side of the cell (1/-1)
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
constexpr std::array< uint8_t, layerIndexSize > layer
int type() const
get the type
HGCalTriggerSubdetector subdet() const
get the subdetector
const HcalDDDRecConstants * dddConstants() const
unsigned int layers(bool reco) const
static int position[264][3]
bool isEE() const
consistency check : no bits left => no overhead
const HcalTopology & bhTopology() const
bool isV9Geometry() const
int zside() const
get the z-side of the cell (1/-1)
DetId relabel(const uint32_t testId) const
double getRZ(const int &subdet, const int &ieta, const int &depth) const
std::pair< int, int > getEtaRange(const int &i) const
virtual GlobalPoint getTriggerCellPosition(const unsigned trigger_cell_det_id) const =0
int type() const
get the type
int getMaxDepth(const int &type) const
int waferTypeL(int wafer) const
int type() const
get the type
int layer() const
get the layer #
bool isWithNoseGeometry() const
constexpr int zside() const
get the z-side of the cell (1/-1)
bool isEE() const
consistency check : no bits left => no overhead
const HGCalTopology & noseTopology() const
const HGCalTopology & fhTopology() const
int layer() const
get the layer #
const HGCalTopology & hscTopology() const