13 #include "CLHEP/Units/GlobalSystemOfUnits.h"
27 int icell(0), celltyp(0), wafer(0);
32 celltyp = cell / 1000;
44 celltyp = cell / 1000;
53 edm::LogError(
"HGCSim") <<
"[HGCNumberingScheme] ID out of bounds :"
54 <<
" Subdet= " << subdet <<
" Zside= " << iz <<
" Layer= " << layer <<
" Wafer= " << wafer
55 <<
":" << module <<
" CellType= " << celltyp <<
" Cell= " << icell;
59 int subd,
zside, lay, sector, subsector, cellx;
61 edm::LogVerbatim(
"HGCSim") <<
"HGCNumberingScheme::i/p " << subdet <<
":" << layer <<
":" << module <<
":" << iz
62 <<
":" << wafer <<
":" << celltyp <<
":" << icell <<
":" << std::hex << index <<
std::dec
63 <<
" Output " << subd <<
":" << lay <<
":" << zside <<
":" << sector <<
":" << subsector
71 return phicell.second;
Log< level::Info, true > LogVerbatim
int assignCell(float x, float y, int layer)
maps a hit position to a sequential cell in a trapezoid surface defined by h,b,t
std::pair< float, float > getLocalCoords(int cell, int layer)
inverts the cell number in a trapezoid surface to local coordinates
void waferFromPosition(const double x, const double y, int &wafer, int &icell, int &celltyp) const
static uint32_t packHexagonIndex(int subdet, int z, int lay, int wafer, int celltyp, int cell)
uint32_t getUnitID(ForwardSubdetector subdet, int layer, int module, int cell, int iz, const G4ThreeVector &pos)
assigns the det id to a hit
std::pair< float, float > locateCell(int cell, int lay, int type, bool reco) const
Log< level::Error, false > LogError
bool isValidHex(int lay, int mod, int cell, bool reco) const
constexpr std::array< uint8_t, layerIndexSize > layer
HGCNumberingScheme()=delete
HGCalGeometryMode::GeometryMode geomMode() const
int waferFromCopy(int copy) const
std::pair< int, int > assignCell(float x, float y, int lay, int subSec, bool reco) const
static void unpackHexagonIndex(const uint32_t &idx, int &subdet, int &z, int &lay, int &wafer, int &celltyp, int &cell)
const HGCalDDDConstants & hgcons_