|
|
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)
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