13 #include "CLHEP/Units/GlobalSystemOfUnits.h"
30 int module,
int cell,
int iz,
31 const G4ThreeVector &pos) {
34 int phiSector(0), icell(0), celltyp(0), wafer(0);
38 phiSector = phicell.first;
39 icell = phicell.second;
51 if (celltyp != 1) celltyp = 0;
58 edm::LogError(
"HGCSim") <<
"[HGCNumberingScheme] ID out of bounds :"
59 <<
" Subdet= " << subdet <<
" Zside= " << iz
60 <<
" Layer= " << layer <<
" Wafer= " << wafer
61 <<
" CellType= " << celltyp <<
" Cell= "
67 std::cout <<
"HGCNumberingScheme::i/p " << subdet <<
":" << layer <<
":"
68 << module <<
":" << iz <<
":";
70 std::cout << pos <<
" o/p " << phiSector <<
":" << icell;
72 std::cout << wafer <<
":" << celltyp <<
":" << icell;
83 return phicell.second;
bool isValid(int lay, int mod, int cell, bool reco) const
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
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
T x() const
Cartesian x coordinate.
HGCalGeometryMode geomMode() const
int waferFromCopy(int copy) const
std::pair< int, int > assignCell(float x, float y, int lay, int subSec, bool reco) const
static uint32_t packSquareIndex(int z, int lay, int sec, int subsec, int cell)
const HGCalDDDConstants & hgcons_