00001 #include "DataFormats/HcalDetId/interface/HcalTrigTowerDetId.h" 00002 #include "FWCore/Utilities/interface/Exception.h" 00003 00004 const HcalTrigTowerDetId HcalTrigTowerDetId::Undefined(0x4a000000u); 00005 00006 HcalTrigTowerDetId::HcalTrigTowerDetId() { 00007 } 00008 00009 00010 HcalTrigTowerDetId::HcalTrigTowerDetId(uint32_t rawid) : DetId(rawid) { 00011 } 00012 00013 HcalTrigTowerDetId::HcalTrigTowerDetId(int ieta, int iphi) : DetId(Hcal,HcalTriggerTower) { 00014 id_|=((ieta>0)?(0x2000|(ieta<<7)):((-ieta)<<7)) | 00015 (iphi&0x7F); 00016 } 00017 00018 HcalTrigTowerDetId::HcalTrigTowerDetId(const DetId& gen) { 00019 if (!gen.null() && (gen.det()!=Hcal || gen.subdetId()!=HcalTriggerTower)) { 00020 throw cms::Exception("Invalid DetId") << "Cannot initialize HcalTrigTowerDetId from " << std::hex << gen.rawId() << std::dec; 00021 } 00022 id_=gen.rawId(); 00023 } 00024 00025 HcalTrigTowerDetId& HcalTrigTowerDetId::operator=(const DetId& gen) { 00026 if (!gen.null() && (gen.det()!=Hcal || gen.subdetId()!=HcalTriggerTower)) { 00027 throw cms::Exception("Invalid DetId") << "Cannot assign HcalTrigTowerDetId from " << std::hex << gen.rawId() << std::dec; 00028 } 00029 id_=gen.rawId(); 00030 return *this; 00031 } 00032 00033 std::ostream& operator<<(std::ostream& s,const HcalTrigTowerDetId& id) { 00034 return s << "(HcalTrigTower " << id.ieta() << ',' << id.iphi() << ')'; 00035 } 00036 00037