CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/src/DataFormats/HcalDetId/src/HcalTrigTowerDetId.cc

Go to the documentation of this file.
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