CMS 3D CMS Logo

HcalElectronicsId.h

Go to the documentation of this file.
00001 #ifndef DATAFORMATS_HCALDETID_HCALELECTRONICSID_H
00002 #define DATAFORMATS_HCALDETID_HCALELECTRONICSID_H 1
00003 
00004 #include <string>
00005 #include <ostream>
00006 
00018 class HcalElectronicsId {
00019 public:
00021   HcalElectronicsId();
00023   HcalElectronicsId(uint32_t);
00025   HcalElectronicsId(int fiberChan, int fiberIndex, int spigot, int dccid);
00027   HcalElectronicsId(int slbChan, int slbSite, int spigot, int dccid, int crate, int slot, int tb);
00028   uint32_t operator()() { return hcalElectronicsId_; }
00029 
00030   uint32_t rawId() const { return hcalElectronicsId_; }
00031 
00032   bool isTriggerChainId() const { return (hcalElectronicsId_&0x02000000)!=0; }
00033 
00035   void setHTR(int crate, int slot, int tb);
00036 
00038   int fiberChanId() const { return hcalElectronicsId_&0x3; }
00040   int fiberIndex() const { return ((hcalElectronicsId_>>2)&0x7)+1; }
00042   int slbChannelIndex() const { return hcalElectronicsId_&0x3; }
00044   int slbSiteNumber() const { return ((hcalElectronicsId_>>2)&0x7); }
00045 
00047   std::string slbChannelCode() const;
00048 
00050   int htrChanId() const { return (fiberChanId()+1)+((fiberIndex()-1)*3); }
00052   int spigot() const { return (hcalElectronicsId_>>5)&0xF; }
00054   int dccid() const { return (hcalElectronicsId_>>9)&0x1F; }
00056   int htrSlot() const { return (hcalElectronicsId_>>14)&0x1F; }
00058   int htrTopBottom() const { return (hcalElectronicsId_>>19)&0x1; }
00060   int readoutVMECrateId() const { return (hcalElectronicsId_>>20)&0x1F; }
00062   int linearIndex() const { return (hcalElectronicsId_)&0x3FFF; }
00063 
00064   static const int maxLinearIndex = 0x3FFF;
00065   static const int maxDCCId = 31;
00066   
00068   int operator==(const HcalElectronicsId& id) const { return id.hcalElectronicsId_==hcalElectronicsId_; }
00070   int operator!=(const HcalElectronicsId& id) const { return id.hcalElectronicsId_!=hcalElectronicsId_; }
00072   int operator<(const HcalElectronicsId& id) const { return hcalElectronicsId_<id.hcalElectronicsId_; }
00073 
00074 private:
00075   uint32_t hcalElectronicsId_;
00076 };
00077 
00078 std::ostream& operator<<(std::ostream&,const HcalElectronicsId&);
00079 
00080 
00081 #endif

Generated on Tue Jun 9 17:30:59 2009 for CMSSW by  doxygen 1.5.4