1 #ifndef ECALDETID_ESDETID_H 2 #define ECALDETID_ESDETID_H 25 id_ |= (
strip & 0x3F) | ((ixs & 0x3F) << 6) | ((iys & 0x3F) << 12) | (((
plane - 1) & 0
x1) << 18) |
26 ((iz > 0) ? (1 << 19) : (0));
39 int zside()
const {
return (
id_ & 0x80000) ? (1) : (-1); }
43 int six()
const {
return (
id_ >> 6) & 0x3F; }
45 int siy()
const {
return (
id_ >> 12) & 0x3F; }
61 static bool validDetId(
int istrip,
int ixs,
int iys,
int iplane,
int iz);
62 static void verify(
int istrip,
int ixs,
int iys,
int iplane,
int iz);
static bool validDenseIndex(uint32_t din)
ESDetId(int strip, int ixs, int iys, int plane, int iz, bool doverify=false)
constructor from strip, ix, iy, plane, and iz
static const unsigned short hy2[kXYMAX]
static const unsigned short hxy2[kXMAX][kYMAX]
int hashedIndex() const
get a compact index for arrays [TODO: NEEDS WORK]
static const unsigned short hy1[kXYMAX]
static const int ISTRIP_MAX
static constexpr int kSizeForDenseIndexing
ESDetId & operator=(const DetId &id)
static const int PLANE_MIN
static void verify(int istrip, int ixs, int iys, int iplane, int iz)
static const int PLANE_MAX
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
uint32_t denseIndex() const
std::ostream & operator<<(std::ostream &, const ESDetId &id)
static ESDetId detIdFromDenseIndex(uint32_t din)
EcalSubdetector subdet() const
get the subdetector
static const unsigned short hxy1[kXMAX][kYMAX]
static const unsigned short hx2[kXYMAX]
static bool validDetId(int istrip, int ixs, int iys, int iplane, int iz)
check if a valid index combination
static ESDetId unhashIndex(int hi)
get a DetId from a compact index for arrays
static const unsigned short hx1[kXYMAX]
static const int ISTRIP_MIN
static bool validHashIndex(int hi)