#include <CSCSPRecord.h>
Public Member Functions | |
unsigned int | AFs (void) const throw () |
unsigned int | BXs (void) const throw () |
bool | check (void) const throw () |
CSCSPRecord (void) | |
std::vector< CSCSP_MEblock > | LCT (unsigned int mpc, unsigned int link) const throw () |
std::vector< CSCSP_MEblock > | LCTs (void) const throw () |
std::vector< CSCSP_MEblock > | LCTs (unsigned int mpc) const throw () |
std::vector< CSCSP_MBblock > | mbStubs (void) const throw () |
unsigned int | ptSpy (void) const throw () |
unsigned int | ptSpyTrack (void) const throw () |
unsigned int | SEs (void) const throw () |
unsigned int | SMs (void) const throw () |
std::vector< CSCSP_SPblock > | tracks (void) const throw () |
bool | unpack (const unsigned short *&buf, unsigned int nonmasked_data_blocks, bool empty_blocks_suppressed, unsigned int tbin) throw () |
unsigned int | VPs (void) const throw () |
Private Attributes | |
unsigned | af_barrel_1: 1 |
unsigned | af_barrel_2: 1 |
unsigned | af_bits: 15 |
unsigned | bx_barrel_1: 1 |
unsigned | bx_barrel_2: 1 |
unsigned | bx_bits: 15 |
CSCSP_MBblock | mb [2] |
bool | mbFilled [2] |
CSCSP_MEblock | me [5][3] |
bool | meFilled [5][3] |
unsigned | mode1: 4 |
unsigned | mode2: 4 |
unsigned | mode3: 4 |
unsigned | pt_high: 8 |
unsigned | pt_low: 8 |
unsigned | pt_spy_point: 2 |
unsigned | se_bits: 15 |
unsigned | sm_bits: 15 |
CSCSP_SPblock | sp [3] |
unsigned | spare_1: 1 |
unsigned | spare_2: 1 |
unsigned | spare_3: 1 |
unsigned | spare_4: 1 |
unsigned | spare_8: 1 |
unsigned | spare_9: 1 |
bool | spFilled [3] |
unsigned | time_bin: 3 |
unsigned | vp_bits: 15 |
unsigned | vq_a: 1 |
unsigned | vq_b: 1 |
unsigned | zero_1: 1 |
unsigned | zero_2: 1 |
unsigned | zero_3: 1 |
unsigned | zero_4: 1 |
unsigned | zero_5: 1 |
unsigned | zero_6: 1 |
unsigned | zero_7: 1 |
unsigned | zero_8: 1 |
Friends | |
class | CSCSPEvent |
class | CSCTFPacker |
Definition at line 9 of file CSCSPRecord.h.
CSCSPRecord::CSCSPRecord | ( | void | ) | [inline] |
Definition at line 94 of file CSCSPRecord.h.
{}
unsigned int CSCSPRecord::AFs | ( | void | ) | const throw () [inline] |
Definition at line 86 of file CSCSPRecord.h.
References af_barrel_1, af_barrel_2, and af_bits.
Referenced by CSCTFUnpacker::produce().
{ return af_bits|(af_barrel_1<<15)|(af_barrel_2<<16); }
unsigned int CSCSPRecord::BXs | ( | void | ) | const throw () [inline] |
Definition at line 87 of file CSCSPRecord.h.
References bx_barrel_1, bx_barrel_2, and bx_bits.
Referenced by CSCTFUnpacker::produce().
{ return bx_bits|(bx_barrel_1<<15)|(bx_barrel_2<<16); }
bool CSCSPRecord::check | ( | void | ) | const throw () [inline] |
std::vector< CSCSP_MEblock > CSCSPRecord::LCT | ( | unsigned int | mpc, |
unsigned int | link | ||
) | const throw () |
Definition at line 85 of file CSCSPRecord.cc.
References link(), and query::result.
Referenced by CSCTFUnpacker::produce().
std::vector< CSCSP_MEblock > CSCSPRecord::LCTs | ( | void | ) | const throw () |
std::vector< CSCSP_MEblock > CSCSPRecord::LCTs | ( | unsigned int | mpc | ) | const throw () |
std::vector< CSCSP_MBblock > CSCSPRecord::mbStubs | ( | void | ) | const throw () |
Definition at line 100 of file CSCSPRecord.cc.
References mb, mbFilled, and query::result.
Referenced by CSCTFUnpacker::produce().
unsigned int CSCSPRecord::ptSpy | ( | void | ) | const throw () [inline] |
Definition at line 89 of file CSCSPRecord.h.
References pt_high, and pt_low.
Referenced by CSCTFUnpacker::produce().
unsigned int CSCSPRecord::ptSpyTrack | ( | void | ) | const throw () [inline] |
unsigned int CSCSPRecord::SEs | ( | void | ) | const throw () [inline] |
Definition at line 84 of file CSCSPRecord.h.
References se_bits.
Referenced by CSCTFUnpacker::produce().
{ return se_bits; }
unsigned int CSCSPRecord::SMs | ( | void | ) | const throw () [inline] |
Definition at line 85 of file CSCSPRecord.h.
References sm_bits.
Referenced by CSCTFUnpacker::produce().
{ return sm_bits; }
std::vector< CSCSP_SPblock > CSCSPRecord::tracks | ( | void | ) | const throw () |
Definition at line 92 of file CSCSPRecord.cc.
References query::result, sp, and spFilled.
Referenced by CSCTFUnpacker::produce().
bool CSCSPRecord::unpack | ( | const unsigned short *& | buf, |
unsigned int | nonmasked_data_blocks, | ||
bool | empty_blocks_suppressed, | ||
unsigned int | tbin | ||
) | throw () |
Definition at line 5 of file CSCSPRecord.cc.
References Association::block, CastorDataFrameFilter_impl::check(), CSCSPHeader::DT, CSCSPHeader::F1, CSCSPHeader::F2, CSCSPHeader::F3, CSCSPHeader::F4, CSCSPHeader::F5, link(), and CSCSPHeader::SP.
{ memcpy((void*)this, buf, 8*sizeof(short)); buf += 8; bool unpackError = check(); bzero(me,15*sizeof(CSCSP_MEblock)); bzero(mb, 2*sizeof(CSCSP_MBblock)); bzero(me, 3*sizeof(CSCSP_SPblock)); bzero(meFilled,sizeof(meFilled)); bzero(mbFilled,sizeof(mbFilled)); bzero(spFilled,sizeof(spFilled)); const CSCSPHeader::ACTIVE id[] = { CSCSPHeader::F1, CSCSPHeader::F1, CSCSPHeader::F1, CSCSPHeader::F2, CSCSPHeader::F2, CSCSPHeader::F2, CSCSPHeader::F3, CSCSPHeader::F3, CSCSPHeader::F3, CSCSPHeader::F4, CSCSPHeader::F4, CSCSPHeader::F4, CSCSPHeader::F5, CSCSPHeader::F5, CSCSPHeader::F5 }; // 15 ME data blocks for(unsigned int block=0; block<15; block++) if( nonmasked_data_blocks & id[block] && (!empty_blocks_suppressed || vp_bits&(1<<block)) ){ unsigned int mpc = block/3, link = block%3; unpackError |= me[mpc][link].unpack(buf); me[mpc][link].tbin_ = tbin; me[mpc][link].valid_pattern = vp_bits&(1<<block); me[mpc][link].sync_error = se_bits&(1<<block); me[mpc][link].sync_modified = sm_bits&(1<<block); me[mpc][link].alignment_fifo= af_bits&(1<<block); me[mpc][link].bxBit = bx_bits&(1<<block); me[mpc][link].spInput_ = block+1; meFilled[mpc][link] = true; } // 2 MB data blocks for(unsigned int block=0; block<2; block++) if( nonmasked_data_blocks & CSCSPHeader::DT && (!empty_blocks_suppressed || (block?vq_b:vq_a) )){ unpackError |= mb[block].unpack(buf); mb[block].tbin_ = tbin; mb[block].valid_quality = (block?vq_b:vq_a); mb[block].alignment_fifo= (block?af_barrel_2:af_barrel_1); mb[block].bxBit = (block?bx_barrel_2:bx_barrel_1); mb[block].id_ = block+1; mbFilled[block] = true; } // 3 SP data blocks for(unsigned int block=0; block<3; block++) if( nonmasked_data_blocks & CSCSPHeader::SP && (!empty_blocks_suppressed || (block==0?mode1:(block==1?mode2:mode3))) ){ unpackError |= sp[block].unpack(buf); sp[block].tbin_ = tbin; sp[block].mode_ = (block==0?mode1:(block==1?mode2:mode3)); sp[block].id_ = block+1; spFilled[block] = true; } return unpackError; }
unsigned int CSCSPRecord::VPs | ( | void | ) | const throw () [inline] |
Definition at line 83 of file CSCSPRecord.h.
References vp_bits, vq_a, and vq_b.
Referenced by CSCTFUnpacker::produce().
friend class CSCSPEvent [friend] |
Definition at line 65 of file CSCSPRecord.h.
friend class CSCTFPacker [friend] |
Definition at line 66 of file CSCSPRecord.h.
unsigned CSCSPRecord::af_barrel_1 [private] |
Definition at line 40 of file CSCSPRecord.h.
Referenced by AFs().
unsigned CSCSPRecord::af_barrel_2 [private] |
Definition at line 41 of file CSCSPRecord.h.
Referenced by AFs().
unsigned CSCSPRecord::af_bits [private] |
Definition at line 30 of file CSCSPRecord.h.
Referenced by AFs(), and CSCTFPacker::produce().
unsigned CSCSPRecord::bx_barrel_1 [private] |
Definition at line 53 of file CSCSPRecord.h.
Referenced by BXs().
unsigned CSCSPRecord::bx_barrel_2 [private] |
Definition at line 54 of file CSCSPRecord.h.
Referenced by BXs().
unsigned CSCSPRecord::bx_bits [private] |
Definition at line 33 of file CSCSPRecord.h.
Referenced by BXs(), and CSCTFPacker::produce().
CSCSP_MBblock CSCSPRecord::mb[2] [private] |
Definition at line 60 of file CSCSPRecord.h.
Referenced by mbStubs().
bool CSCSPRecord::mbFilled[2] [private] |
Definition at line 63 of file CSCSPRecord.h.
Referenced by mbStubs().
CSCSP_MEblock CSCSPRecord::me[5][3] [private] |
Definition at line 59 of file CSCSPRecord.h.
Referenced by LCTs().
bool CSCSPRecord::meFilled[5][3] [private] |
Definition at line 63 of file CSCSPRecord.h.
Referenced by LCTs().
unsigned CSCSPRecord::mode1 [private] |
Definition at line 16 of file CSCSPRecord.h.
Referenced by CSCTFPacker::produce().
unsigned CSCSPRecord::mode2 [private] |
Definition at line 17 of file CSCSPRecord.h.
Referenced by CSCTFPacker::produce().
unsigned CSCSPRecord::mode3 [private] |
Definition at line 18 of file CSCSPRecord.h.
Referenced by CSCTFPacker::produce().
unsigned CSCSPRecord::pt_high [private] |
Definition at line 45 of file CSCSPRecord.h.
Referenced by ptSpy().
unsigned CSCSPRecord::pt_low [private] |
Definition at line 36 of file CSCSPRecord.h.
Referenced by ptSpy().
unsigned CSCSPRecord::pt_spy_point [private] |
Definition at line 37 of file CSCSPRecord.h.
Referenced by ptSpyTrack().
unsigned CSCSPRecord::se_bits [private] |
Definition at line 24 of file CSCSPRecord.h.
Referenced by CSCTFPacker::produce(), and SEs().
unsigned CSCSPRecord::sm_bits [private] |
Definition at line 27 of file CSCSPRecord.h.
Referenced by CSCTFPacker::produce(), and SMs().
CSCSP_SPblock CSCSPRecord::sp[3] [private] |
Definition at line 61 of file CSCSPRecord.h.
Referenced by tracks().
unsigned CSCSPRecord::spare_1 [private] |
Definition at line 21 of file CSCSPRecord.h.
Referenced by CSCTFPacker::produce().
unsigned CSCSPRecord::spare_2 [private] |
Definition at line 38 of file CSCSPRecord.h.
Referenced by check().
unsigned CSCSPRecord::spare_3 [private] |
Definition at line 39 of file CSCSPRecord.h.
Referenced by check().
unsigned CSCSPRecord::spare_4 [private] |
Definition at line 42 of file CSCSPRecord.h.
Referenced by check().
unsigned CSCSPRecord::spare_8 [private] |
Definition at line 52 of file CSCSPRecord.h.
Referenced by check().
unsigned CSCSPRecord::spare_9 [private] |
Definition at line 55 of file CSCSPRecord.h.
Referenced by check().
bool CSCSPRecord::spFilled[3] [private] |
Definition at line 63 of file CSCSPRecord.h.
Referenced by tracks().
unsigned CSCSPRecord::time_bin [private] |
Definition at line 46 of file CSCSPRecord.h.
unsigned CSCSPRecord::vp_bits [private] |
Definition at line 13 of file CSCSPRecord.h.
Referenced by CSCTFPacker::produce(), and VPs().
unsigned CSCSPRecord::vq_a [private] |
Definition at line 19 of file CSCSPRecord.h.
Referenced by CSCTFPacker::produce(), and VPs().
unsigned CSCSPRecord::vq_b [private] |
Definition at line 20 of file CSCSPRecord.h.
Referenced by CSCTFPacker::produce(), and VPs().
unsigned CSCSPRecord::zero_1 [private] |
Definition at line 14 of file CSCSPRecord.h.
Referenced by check().
unsigned CSCSPRecord::zero_2 [private] |
Definition at line 22 of file CSCSPRecord.h.
Referenced by check().
unsigned CSCSPRecord::zero_3 [private] |
Definition at line 25 of file CSCSPRecord.h.
Referenced by check().
unsigned CSCSPRecord::zero_4 [private] |
Definition at line 28 of file CSCSPRecord.h.
Referenced by check().
unsigned CSCSPRecord::zero_5 [private] |
Definition at line 31 of file CSCSPRecord.h.
Referenced by check().
unsigned CSCSPRecord::zero_6 [private] |
Definition at line 34 of file CSCSPRecord.h.
Referenced by check().
unsigned CSCSPRecord::zero_7 [private] |
Definition at line 43 of file CSCSPRecord.h.
Referenced by check().
unsigned CSCSPRecord::zero_8 [private] |
Definition at line 56 of file CSCSPRecord.h.
Referenced by check().