00001 #ifndef DATAFORMATS_HCALDETID_HCALTRIGTOWERDETID_H 00002 #define DATAFORMATS_HCALDETID_HCALTRIGTOWERDETID_H 1 00003 00004 #include <ostream> 00005 #include "DataFormats/DetId/interface/DetId.h" 00006 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h" 00007 00016 class HcalTrigTowerDetId : public DetId { 00017 public: 00019 HcalTrigTowerDetId(); 00021 HcalTrigTowerDetId(uint32_t rawid); 00024 HcalTrigTowerDetId(int ieta, int iphi); 00027 HcalTrigTowerDetId(int ieta, int iphi, int depth); 00028 00030 HcalTrigTowerDetId(const DetId& id); 00032 HcalTrigTowerDetId& operator=(const DetId& id); 00033 00035 HcalSubdetector subdet() const { return (HcalSubdetector)(subdetId()); } 00037 int zside() const { return (id_&0x2000)?(1):(-1); } 00039 int ietaAbs() const { return (id_>>7)&0x3f; } 00041 int ieta() const { return zside()*ietaAbs(); } 00043 int iphi() const { return id_&0x7F; } 00045 int depth() const { return (id_>>14)&0x7; } 00046 00047 static const HcalTrigTowerDetId Undefined; 00048 00049 }; 00050 00051 std::ostream& operator<<(std::ostream&,const HcalTrigTowerDetId& id); 00052 00053 00054 #endif