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(int ieta, int iphi, int depth) : DetId(Hcal,HcalTriggerTower) { 00019 id_|=((depth&0x7)<<14) | 00020 ((ieta>0)?(0x2000|(ieta<<7)):((-ieta)<<7)) | 00021 (iphi&0x7F); 00022 } 00023 00024 HcalTrigTowerDetId::HcalTrigTowerDetId(const DetId& gen) { 00025 if (!gen.null() && (gen.det()!=Hcal || gen.subdetId()!=HcalTriggerTower)) { 00026 throw cms::Exception("Invalid DetId") << "Cannot initialize HcalTrigTowerDetId from " << std::hex << gen.rawId() << std::dec; 00027 } 00028 id_=gen.rawId(); 00029 } 00030 00031 HcalTrigTowerDetId& HcalTrigTowerDetId::operator=(const DetId& gen) { 00032 if (!gen.null() && (gen.det()!=Hcal || gen.subdetId()!=HcalTriggerTower)) { 00033 throw cms::Exception("Invalid DetId") << "Cannot assign HcalTrigTowerDetId from " << std::hex << gen.rawId() << std::dec; 00034 } 00035 id_=gen.rawId(); 00036 return *this; 00037 } 00038 00039 std::ostream& operator<<(std::ostream& s,const HcalTrigTowerDetId& id) { 00040 s << "(HcalTrigTower " << id.ieta() << ',' << id.iphi(); 00041 if (id.depth()>0) s << ',' << id.depth(); 00042 00043 return s << ')'; 00044 } 00045 00046