1 #ifndef ECALDETID_EEDETID_H
2 #define ECALDETID_EEDETID_H
46 EEDetId(
int crystal_ix,
int crystal_iy,
int iz) :
48 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; }
185 const uint32_t jx (
ix() ) ;
186 const uint32_t jd ( 2*(
iy() - 1 ) + ( jx - 1 )/50 ) ;
249 static bool validDetId(
int crystal_ix,
int crystal_iy,
int iz) {
264 float x = crystal_ix;
float y = crystal_iy;
265 float r = (x - 50.5f) * (x - 50.5
f) + (y - 50.5f) * (y - 50.5
f);
266 return r > 12.f * 12.f && r < 48.f * 48.f;
290 static int isc(
int iscCol,
360 int ix(
int iSC,
int iCrys )
const;
361 int iy(
int iSC,
int iCrys )
const;
static EcalSubdetector subdet()
static EEDetId detIdFromDenseIndex(uint32_t din)
static bool isNextToBoundary(EEDetId id)
static int distanceX(const EEDetId &a, const EEDetId &b)
EEDetId offsetBy(int nrStepsX, int nrStepsY) const
int ixQuadrantOne() const
static EEDetId unhashIndex(int hi)
std::ostream & operator<<(std::ostream &out, const ALILine &li)
static const int SCCRYSTALMODE
static bool validHashIndex(int i)
static const int iYoffset[nCols+1]
static bool isOuterRingXY(int ax, int ay)
static bool slowValidDetId(int crystal_ix, int crystal_iy)
int iPhiOuterRing() const
static bool isNextToRingBoundary(EEDetId id)
static int distanceY(const EEDetId &a, const EEDetId &b)
static bool isNextToDBoundary(EEDetId id)
EEDetId switchZSide() const
static bool validDetId(int crystal_ix, int crystal_iy, int iz)
uint32_t denseIndex() const
static bool validDenseIndex(uint32_t din)
static const int QuadColLimits[nCols+1]
static const unsigned short kxf[2 *IY_MAX]
static EEDetId idOuterRing(int iPhi, int zEnd)
int iyQuadrantOne() const
EEDetId(int crystal_ix, int crystal_iy, int iz)
static const unsigned short kdi[2 *IY_MAX]
static bool fastValidDetId(int crystal_ix, int crystal_iy)
EEDetId & operator=(const DetId &id)