1 #ifndef ECALDETID_EEDETID_H
2 #define ECALDETID_EEDETID_H
45 EEDetId(
int crystal_ix,
int crystal_iy,
int iz) :
47 id_|=(crystal_iy&0x7f)|((crystal_ix&0x7f)<<7)|((iz>0)?(0x4000):(0));
70 int zside()
const {
return (
id_&0x4000)?(1):(-1); }
76 int ix()
const {
return (
id_>>7)&0x7F; }
82 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) {
263 float x = crystal_ix;
float y = crystal_iy;
264 float r = (x - 50.5f) * (x - 50.5
f) + (y - 50.5f) * (y - 50.5
f);
265 return r > 12.f * 12.f && r < 48.f * 48.f;
289 static int isc(
int iscCol,
359 int ix(
int iSC,
int iCrys )
const;
360 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
Abs< T >::type abs(const T &t)
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)