CMS 3D CMS Logo

L1GctInternEtSum.cc

Go to the documentation of this file.
00001 #include "DataFormats/L1GlobalCaloTrigger/interface/L1GctInternEtSum.h"
00002 
00003 
00004 
00005 L1GctInternEtSum::L1GctInternEtSum() {
00006 
00007 }
00008 
00009 
00011 L1GctInternEtSum::L1GctInternEtSum(uint16_t capBlock,
00012                                    uint16_t capIndex,
00013                                    int16_t bx,
00014                                    uint32_t et,
00015                                    uint8_t oflow) :
00016   type_(null),
00017   capBlock_(capBlock),
00018   capIndex_(capIndex),
00019   bx_(bx),
00020   data_(0)
00021 {
00022   this->setEt(et);
00023   this->setOflow(oflow);
00024 }
00025 
00026 
00028 L1GctInternEtSum::~L1GctInternEtSum() {
00029 
00030 }
00031 
00032 L1GctInternEtSum L1GctInternEtSum::fromWheelHfRingSum(const uint16_t capBlock,
00033                                                              const uint16_t capIndex,
00034                                                              const int16_t bx,
00035                                                              const uint16_t data) {
00036   L1GctInternEtSum s;
00037   s.setEt(data & 0xff);
00038   s.setOflow(0);
00039   s.setType(wheel_hf_ring_et_sum);
00040   return s;
00041 }
00042 
00043 L1GctInternEtSum L1GctInternEtSum::fromWheelHfBitCount(const uint16_t capBlock,
00044                                                               const uint16_t capIndex,
00045                                                               const int16_t bx,
00046                                                               const uint16_t data) {
00047   L1GctInternEtSum s;
00048   s.setEt(data & 0x3f);
00049   s.setOflow(0);
00050   s.setType(wheel_hf_ring_bit_count);
00051   return s;
00052 }
00053 
00054 
00055 L1GctInternEtSum L1GctInternEtSum::fromJetTotEt(const uint16_t capBlock,
00056                                                        const uint16_t capIndex,
00057                                                        const int16_t bx,
00058                                                        const uint16_t data) {
00059   L1GctInternEtSum s;
00060   s.setEt(data & 0xfff);
00061   s.setOflow((data>>12)&0x1);
00062   s.setType(jet_tot_et);
00063   return s;
00064 }
00065 
00066 
00067 L1GctInternEtSum L1GctInternEtSum::fromJetMissEt(const uint16_t capBlock,
00068                                                         const uint16_t capIndex,
00069                                                         const int16_t bx,
00070                                                         const uint32_t data) {
00071   L1GctInternEtSum s;
00072   s.setEt(data & 0xffff);
00073   s.setOflow((data>>17) & 0x1);
00074   s.setType(jet_miss_et);
00075   return s;
00076 }
00077 
00078 
00079 L1GctInternEtSum L1GctInternEtSum::fromTotalEt(const uint16_t capBlock,
00080                                                       const uint16_t capIndex,
00081                                                       const int16_t bx,
00082                                                       const uint32_t data) {
00083   L1GctInternEtSum s;
00084   s.setEt(data & 0xffff);
00085   s.setOflow((data>>17) & 0x1);
00086   s.setType(total_et);
00087   return s;
00088 }
00089 
00090 
00092 bool L1GctInternEtSum::operator==(const L1GctInternEtSum& c) const {
00093   return ( data_ == c.raw() && bx_ == c.bx() );
00094 }
00095 
00096 
00098 void L1GctInternEtSum::setValue(uint32_t val) {
00099   data_ &= 0x80000000;
00100   data_ |= val & 0x7ffffff;
00101 }
00102 
00104 void L1GctInternEtSum::setEt(uint32_t et) {
00105   setValue(et);
00106 }
00107 
00109 void L1GctInternEtSum::setCount(uint32_t count) {
00110   setValue(count);
00111 }
00112 
00114 void L1GctInternEtSum::setOflow(uint8_t oflow) {
00115   data_ &= 0x7ffffff;
00116   data_ |= (oflow & 0x1)<<31;
00117 }
00118 
00120 std::ostream& operator<<(std::ostream& s, const L1GctInternEtSum& c) {
00121   s << "L1GctInternEtSum : ";
00122   s << " mag=" << c.et();
00123   if (c.oflow()) { s << "; overflow set"; }
00124   s << " cap block=" << c.capBlock(); 
00125   s << " index=" << c.capIndex(); 
00126   s << " BX=" << c.bx(); 
00127   return s;
00128 }

Generated on Tue Jun 9 17:31:10 2009 for CMSSW by  doxygen 1.5.4