00001 #ifndef DATAFORMATS_HCALDETID_HCALCALIBDETID_H 00002 #define DATAFORMATS_HCALDETID_HCALCALIBDETID_H 1 00003 00004 #include <ostream> 00005 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h" 00006 #include "DataFormats/HcalDetId/interface/HcalOtherDetId.h" 00007 00008 00029 class HcalCalibDetId : public HcalOtherDetId { 00030 public: 00032 enum CalibDetType { CalibrationBox = 1, HOCrosstalk = 2 }; 00033 00035 HcalCalibDetId(); 00037 HcalCalibDetId(uint32_t rawid); 00039 HcalCalibDetId(const DetId& id); 00040 HcalCalibDetId& operator=(const DetId& id); 00042 HcalCalibDetId(HcalSubdetector subdet, int ieta, int iphi, int ctype); 00044 HcalCalibDetId(int ieta, int iphi); 00045 00047 CalibDetType calibFlavor() const { return (CalibDetType)((id_>>17)&0x7); } 00048 00049 00051 HcalSubdetector hcalSubdet() const; 00053 // std::string rbx() const; 00055 int ieta() const; 00057 int iphi() const; 00059 int cboxChannel() const; 00061 std::string cboxChannelString() const; 00062 00064 int zside() const; 00065 00067 static const int cbox_MixerHigh = 0; // HB/HE/HO/HF 00068 static const int cbox_MixerLow = 1; // HB/HE/HO/HF 00069 static const int cbox_LaserMegatile = 2; // in HB only! 00070 static const int cbox_RadDam_Layer0_RM4 = 3; // in HE only! 00071 static const int cbox_RadDam_Layer7_RM4 = 4; // in HE only! 00072 static const int cbox_RadDam_Layer0_RM1 = 5; // in HE only! 00073 static const int cbox_RadDam_Layer7_RM1 = 6; // in HE only! 00074 static const int cbox_HOCrosstalkPIN = 7; // in (part of) HO only! 00075 static const int cbox_HF_ScintillatorPIN = 8; // in HF only! 00076 }; 00077 00078 std::ostream& operator<<(std::ostream& s,const HcalCalibDetId& id); 00079 00080 #endif