22 throw cms::Exception(
"InvalidDetId") <<
"EcalScDetId: Cannot create object. Indexes out of bounds \n"
23 <<
"x = " << ix <<
" y = " << iy <<
" z = " << iz;
25 const int scBit = 1<<15;
27 id_|=(iy&0x7f)|((ix&0x7f)<<7)|((iz>0)?(1<<14):(0))|scBit;
46 const int xMiddle =
IX_MAX/2;
47 const int yMiddle =
IY_MAX/2;
64 static const char endcapMap[401] = {
69 " XXXXXXXXXXXXXXXXXX "
70 " XXXXXXXXXXXXXXXXXX "
71 " XXXXXXXXXXXXXXXXXX "
72 "XXXXXXXXXXXXXXXXXXXX"
77 "XXXXXXXXXXXXXXXXXXXX"
78 " XXXXXXXXXXXXXXXXXX "
79 " XXXXXXXXXXXXXXXXXX "
80 " XXXXXXXXXXXXXXXXXX "
86 return abs(iZ)==1 && endcapMap[iX-1+(iY-1)*20]!=
' ';
90 return s <<
"(EE iz " << ((
id.zside()>0)?(
"+ "):(
"- ")) <<
" ix " <<
id.ix() <<
" , iy " <<
id.iy() <<
')';
94 static bool initialized =
false;
95 if(initialized)
return;
97 for(
int iZ = -1; iZ <= +1; iZ+=2){
static bool validDetId(int ix, int iy, int iz)
EcalScDetId & operator=(const DetId &id)
static EcalScDetId hashedIndex2DetId[kSizeForDenseIndexing]
std::ostream & operator<<(std::ostream &out, const ALILine &li)
uint32_t rawId() const
get the raw id
static const int nEndcaps
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
static void checkHashedIndexMap()
bool null() const
is this a null id ?
Detector det() const
get the detector field from this detid
static short xyz2HashedIndex[IX_MAX][IY_MAX][nEndcaps]