![]() |
![]() |
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 }