23 throw cms::Exception(
"InvalidDetId") <<
"EcalScDetId: Cannot create object. Indexes out of bounds \n"
24 <<
"x = " << ix <<
" y = " << iy <<
" z = " << iz;
26 const int scBit = 1<<15;
28 id_|=(iy&0x7f)|((ix&0x7f)<<7)|((iz>0)?(1<<14):(0))|scBit;
47 const int xMiddle =
IX_MAX/2;
48 const int yMiddle =
IY_MAX/2;
65 static const char endcapMap[401] = {
70 " XXXXXXXXXXXXXXXXXX "
71 " XXXXXXXXXXXXXXXXXX "
72 " XXXXXXXXXXXXXXXXXX "
73 "XXXXXXXXXXXXXXXXXXXX"
78 "XXXXXXXXXXXXXXXXXXXX"
79 " XXXXXXXXXXXXXXXXXX "
80 " XXXXXXXXXXXXXXXXXX "
81 " XXXXXXXXXXXXXXXXXX "
87 return abs(iZ)==1 && endcapMap[iX-1+(iY-1)*20]!=
' ';
91 return s <<
"(EE iz " << ((
id.zside()>0)?(
"+ "):(
"- ")) <<
" ix " <<
id.ix() <<
" , iy " <<
id.iy() <<
')';
100 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]
static std::once_flag initializedFlag
std::ostream & operator<<(std::ostream &out, const ALILine &li)
uint32_t rawId() const
get the raw id
Abs< T >::type abs(const T &t)
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]