19 <<
"EcalTriggerTowerDetId: Cannot create object. SUBDETDCCTTMODE not yet implemented.";
21 throw cms::Exception(
"InvalidDetId") <<
"EcalTriggerTowerDetId: Cannot create object. Unknown mode for (int, " 22 "EcalSubdetector, int, int) constructor.";
24 if (tower_i >
MAX_I || tower_i < MIN_I || tower_j >
MAX_J || tower_j <
MIN_J)
25 throw cms::Exception(
"InvalidDetId") <<
"EcalTriggerTowerDetId: Cannot create object. Indexes out of bounds.";
50 int iphi_simple =
iphi() + 2;
52 iphi_simple = iphi_simple % 72;
58 throw cms::Exception(
"MethodNotImplemented") <<
"EcalTriggerTowerDetId: iDCC not yet implemented";
65 int iphi_simple =
iphi() + 2;
67 iphi_simple = iphi_simple % 72;
76 throw cms::Exception(
"MethodNotImplemented") <<
"EcalTriggerTowerDetId: iTT not yet implemented";
83 throw cms::Exception(
"MethodNotApplicable") <<
"EcalTriggerTowerDetId: iquadrant not applicable";
90 (27 >
i || ((0 > iz && 0 ==
j % 2) || (0 < iz && 1 ==
j % 2))))));
94 const unsigned int iea(
ietaAbs());
95 const unsigned int iph(
iphi());
140 return s <<
"(EcalTT subDet " << ((
id.subDet() ==
EcalBarrel) ? (
"Barrel") : (
"Endcap")) <<
" iz " 141 << ((
id.zside() > 0) ? (
"+ ") : (
"- ")) <<
" ieta " <<
id.ietaAbs() <<
" iphi " <<
id.iphi() <<
')';
static constexpr int kEBTotalTowers
int hashedIndex() const
get a compact index for arrays [TODO: NEEDS WORK]
static EcalTrigTowerDetId detIdFromDenseIndex(uint32_t di)
int iTT() const
sequential index within one DCC
static constexpr int kEETowersPerEndcap
EcalSubdetector subDet() const
get the subDetector associated to the Trigger Tower
static constexpr int kEEOuterEta
static const int SUBDETIJMODE
static const int kEBTowersInPhi
static constexpr int kEETowersInPhiPerEndcap
static const int kEETowersInPhiPerQuadrant
int zside() const
get the z-side of the tower (1/-1)
static constexpr int kEBHalfTowers
EcalTrigTowerDetId & operator=(const DetId &id)
static const int kEBTowersInEta
Abs< T >::type abs(const T &t)
std::ostream & operator<<(std::ostream &s, const EcalTrigTowerDetId &id)
int ietaAbs() const
get the absolute value of the tower ieta
static const int SUBDETDCCTTMODE
static bool validDetId(int iz, EcalSubdetector sd, int i, int j)
check if a valid index combination
int iDCC() const
get the ECAL DCC id - in the barrrel ism == iDCC
int iphi() const
get the tower iphi
static const int kEBTowersPerSM