00001 #ifndef HCALGENERICDETID_H
00002 #define HCALGENERICDETID_H
00003
00012 #include <ostream>
00013 #include "DataFormats/DetId/interface/DetId.h"
00014 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h"
00015
00016 class HcalGenericDetId : public DetId {
00017 public:
00018 enum HcalGenericSubdetector {HcalGenEmpty=0, HcalGenBarrel=1, HcalGenEndcap=2, HcalGenOuter=3, HcalGenForward=4,
00019 HcalGenTriggerTower=5, HcalGenZDC=8, HcalGenCalibration=9, HcalGenCastor=10, HcalGenUnknown=99};
00020 HcalGenericDetId () : DetId () {}
00021 HcalGenericDetId (uint32_t rawid) : DetId (rawid) {}
00022 HcalGenericDetId (const DetId& id) : DetId (id) {}
00023 HcalOtherSubdetector otherSubdet () const;
00024 HcalGenericSubdetector genericSubdet () const;
00025 bool isHcalDetId () const;
00026 bool isHcalCalibDetId () const;
00027 bool isHcalTrigTowerDetId () const;
00028 bool isHcalZDCDetId () const;
00029 bool isHcalCastorDetId () const;
00030
00031
00032
00033 int hashedId(bool h2mode_ = false) const;
00034 };
00035
00036 std::ostream& operator<<(std::ostream&,const HcalGenericDetId& id);
00037
00038
00039 #endif