Go to the documentation of this file. 1 #ifndef ECALDETID_EEDETID_H
2 #define ECALDETID_EEDETID_H
45 id_ |= (crystal_iy & 0x7f) | ((crystal_ix & 0x7f) << 7) | ((iz > 0) ? (0x4000) : (0));
71 int zside()
const {
return (
id_ & 0x4000) ? (1) : (-1); }
77 int ix()
const {
return (
id_ >> 7) & 0x7F; }
83 int iy()
const {
return id_ & 0x7F; }
184 const uint32_t jx(
ix());
185 const uint32_t jd(2 * (
iy() - 1) + (jx - 1) / 50);
248 static bool validDetId(
int crystal_ix,
int crystal_iy,
int iz) {
249 return crystal_ix >=
IX_MIN && crystal_ix <= IX_MAX && crystal_iy >=
IY_MIN && crystal_iy <=
IY_MAX &&
259 float x = crystal_ix;
260 float y = crystal_iy;
261 float r = (
x - 50.5f) * (
x - 50.5
f) + (
y - 50.5f) * (
y - 50.5
f);
262 return r > 12.f * 12.f &&
r < 48.f * 48.f;
285 static int isc(
int iscCol,
354 int ix(
int iSC,
int iCrys)
const;
355 int iy(
int iSC,
int iCrys)
const;
std::ostream & operator<<(std::ostream &s, const EEDetId &id)
static bool isNextToBoundary(EEDetId id)
static const int SCCRYSTALMODE
static EEDetId unhashIndex(int hi)
EEDetId switchZSide() const
static bool fastValidDetId(int crystal_ix, int crystal_iy)
EEDetId(int crystal_ix, int crystal_iy, int iz)
static const unsigned short kxf[2 *IY_MAX]
uint32_t denseIndex() const
static EEDetId detIdFromDenseIndex(uint32_t din)
static bool validDenseIndex(uint32_t din)
static const int QuadColLimits[nCols+1]
EEDetId offsetBy(int nrStepsX, int nrStepsY) const
static bool isOuterRingXY(int ax, int ay)
static EcalSubdetector subdet()
static int distanceX(const EEDetId &a, const EEDetId &b)
static int distanceY(const EEDetId &a, const EEDetId &b)
static const unsigned short kdi[2 *IY_MAX]
EEDetId & operator=(const DetId &id)
static bool isNextToRingBoundary(EEDetId id)
static bool validHashIndex(int i)
int iyQuadrantOne() const
static bool slowValidDetId(int crystal_ix, int crystal_iy)
static EEDetId idOuterRing(int iPhi, int zEnd)
static bool isNextToDBoundary(EEDetId id)
static const int iYoffset[nCols+1]
static bool validDetId(int crystal_ix, int crystal_iy, int iz)
int iPhiOuterRing() const
Abs< T >::type abs(const T &t)
int ixQuadrantOne() const