CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/DataFormats/L1GlobalCaloTrigger/interface/L1GctEtMiss.h

Go to the documentation of this file.
00001 #ifndef L1GCTETMISS_H
00002 #define L1GCTETMISS_H
00003 
00004 #include <ostream>
00005 #include <stdint.h>
00006 
00015 
00016 
00017 
00018 class L1GctEtMiss {
00019  public:
00020 
00023   enum numberOfBits {
00024     kEtMissNBits    = 12,
00025     kEtMissOFlowBit = 1 << kEtMissNBits,
00026     kEtMissMaxValue = kEtMissOFlowBit - 1,
00027     kEtMissPhiShift = 16,
00028     kEtMissPhiNBits = 7,
00029     kETMissPhiMask  = (1 << kEtMissPhiNBits) - 1,
00030     kEtMissPhiNBins = 72,
00031     kRawCtorMask    = (kETMissPhiMask << kEtMissPhiShift) | kEtMissOFlowBit | kEtMissMaxValue
00032   };
00033 
00034   L1GctEtMiss();
00035   
00037   L1GctEtMiss(uint32_t rawData);
00038   
00040   L1GctEtMiss(uint32_t rawData, int16_t bx);
00041   
00042   L1GctEtMiss(unsigned et, unsigned phi, bool oflow);
00043 
00044   L1GctEtMiss(unsigned et, unsigned phi, bool oflow, int16_t bx);
00045 
00046   virtual ~L1GctEtMiss();
00047 
00049   std::string name() const { return "EtMiss"; }
00050 
00052   bool empty() const { return false; }
00053 
00055   uint32_t raw() const { return m_data; }
00056 
00058   unsigned et() const { return m_data & kEtMissMaxValue; }
00059 
00061   bool overFlow() const { return (m_data & kEtMissOFlowBit)!=0; }
00062 
00064   unsigned phi() const { return (m_data>>kEtMissPhiShift) & kETMissPhiMask; }
00065 
00067   int16_t bx() const { return m_bx; }
00068 
00070   int operator==(const L1GctEtMiss& e) const { return m_data==e.raw(); }
00071 
00073   int operator!=(const L1GctEtMiss& e) const { return m_data!=e.raw(); }
00074 
00075  private:
00076 
00077   uint32_t m_data;
00078   int16_t m_bx;
00079 
00080 };
00081 
00083 std::ostream& operator<<(std::ostream& s, const L1GctEtMiss& c);
00084 
00085 
00086 #endif