1 #ifndef CSCDCCExaminer_h 2 #define CSCDCCExaminer_h 34 std::map<DDUIdType,ExaminerStatusType>
bDDU_ERR;
35 std::map<DDUIdType,ExaminerStatusType>
bDDU_WRN;
38 class OStream :
public std::ostream {
40 class buffer :
public std::streambuf{};
42 std::streambuf *stream;
47 void show(
void){ rdbuf(stream); }
48 void hide(
void){ rdbuf(null); }
50 void sign(
const char *nm){ name=nm; }
52 void redirect(std::ostream &
str){
53 stream = str.rdbuf(); tie(&str);
54 if( rdbuf() != null ) rdbuf(stream);
58 return (*(std::ostream*)
this)<<name<<
val;
62 OStream(std::ostream &str):std::ostream(str.rdbuf()),buff(),stream(str.rdbuf()),null(&buff),
name(
""){}
107 inline int scanbuf(
const uint16_t* &buf, int32_t length, uint16_t sig, uint16_t
mask=0xFFFF);
148 std::map<DDUIdType,std::map<CSCIdType,const uint16_t*> >
dmbBuffers;
150 std::map<DDUIdType,std::map<CSCIdType,uint32_t> >
dmbOffsets;
152 std::map<DDUIdType,std::map<CSCIdType,uint32_t> >
dmbSize;
158 OStream& output1(
void){
return COUT; }
159 OStream& output2(
void){
return CERR; }
162 int32_t
check(
const uint16_t* &
buffer, int32_t length);
170 const char*
errName(
int num)
const {
if(num>=0&&num<nERRORS)
return sERROR[
num];
else return ""; }
171 const char*
wrnName(
int num)
const {
if(num>=0&&num<nWARNINGS)
return sWARNING[
num];
else return ""; }
173 const char*
errorName (
int num)
const {
if(num>=0&&num<nERRORS)
return sERROR_[
num];
else return ""; }
174 const char*
warningName(
int num)
const {
if(num>=0&&num<nWARNINGS)
return sWARNING_[
num];
else return ""; }
176 const char*
payloadName(
int num)
const {
if(num>=0&&num<nPAYLOADS)
return sDMBExpectedPayload[
num];
else return ""; }
177 const char*
statusName (
int num)
const {
if(num>=0&&num<nSTATUSES)
return sDMBEventStaus [
num];
else return ""; }
179 bool error (
int num)
const {
if(num>=0&&num<nERRORS)
return fSUM_ERROR [
num];
else return 0; }
180 bool warning(
int num)
const {
if(num>=0&&num<nWARNINGS)
return fSUM_WARNING[
num];
else return 0; }
182 std::set<CSCIdType>
chambersWithError (
int num)
const {
if(num>=0&&num<nERRORS)
return fCHAMB_ERR[
num];
else return std::set<int>(); }
183 std::set<CSCIdType>
chambersWithWarning(
int num)
const {
if(num>=0&&num<nWARNINGS)
return fCHAMB_WRN[
num];
else return std::set<int>(); }
186 std::map<CSCIdType,ExaminerStatusType>::const_iterator item = bCHAMB_PAYLOAD.find(chamber);
187 if( item != bCHAMB_PAYLOAD.end() )
return item->second;
else return 0;
191 std::map<CSCIdType,ExaminerStatusType>::const_iterator item = bCHAMB_STATUS.find(chamber);
192 if( item != bCHAMB_STATUS.end() )
return item->second;
else return 0;
196 std::map<CSCIdType,ExaminerStatusType>::const_iterator item = bCHAMB_ERR.find(chamber);
202 item = bCHAMB_ERR.find(chamber);
203 if( item != bCHAMB_ERR.end() )
return item->second;
else return 0;
207 std::map<CSCIdType,ExaminerStatusType>::const_iterator item = bCHAMB_WRN.find(chamber);
208 if( item != bCHAMB_WRN.end() )
return item->second;
else return 0;
212 std::map<DDUIdType,ExaminerStatusType>::const_iterator item = bDDU_ERR.find(dduSourceID);
213 if( item != bDDU_ERR.end() )
return item->second;
else return 0;
216 std::map<DDUIdType,ExaminerStatusType>::const_iterator item = bDDU_WRN.find(dduSourceID);
217 if( item != bDDU_WRN.end() )
return item->second;
else return 0;
220 std::vector<DDUIdType> DDUs;
221 std::map<DDUIdType,ExaminerStatusType>::const_iterator item = bDDU_ERR.begin();
222 while( item != bDDU_ERR.end() ){ DDUs.push_back(item->first); item++; }
236 void crcTMB (
bool enable);
252 std::map<DDUIdType,std::map<CSCIdType,uint32_t> >
DMB_size(
void)
const {
return dmbSize; }
uint32_t DDU_WordsSinceLastHeader
const uint16_t * buffer_start
void crcCFEB(bool enable)
const char * errorName(int num) const
uint32_t CFEB_SampleWordCount
bool warning(int num) const
std::map< CSCIdType, ExaminerStatusType > bCHAMB_ERR
std::set< CSCIdType > fCHAMB_ERR[29]
std::vector< DDUIdType > listOfDDUs(void) const
int scanbuf(const uint16_t *&buf, int32_t length, uint16_t sig, uint16_t mask=0xFFFF)
void modeDDU(bool enable)
uint32_t ALCT_WordsSinceLastHeader
ExaminerStatusType bSUM_WARNING
ExaminerStatusType errorsForChamber(CSCIdType chamber) const
ExaminerStatusType statusForChamber(CSCIdType chamber) const
std::map< DDUIdType, uint32_t > dduSize
uint32_t DDU_WordsSinceLastTrailer
DDUIdType dduSourceID(void)
std::ostream & operator<<(std::ostream &out, const ALILine &li)
ExaminerStatusType errors(void) const
void crcALCT(bool enable)
const char * errName(int num) const
uint32_t ALCT_WordsExpected
std::map< CSCIdType, uint32_t > cntCHAMB_Trailers
std::vector< const char * > sERROR
std::map< DDUIdType, std::map< CSCIdType, const uint16_t * > > DMB_block(void) const
std::set< CSCIdType > chambersWithError(int num) const
ExaminerStatusType warnings(void) const
uint32_t TMB_Firmware_Revision
std::map< CSCIdType, ExaminerStatusType > bCHAMB_PAYLOAD
std::map< CSCIdType, uint32_t > cntCHAMB_Headers
std::set< CSCIdType > chambersWithWarning(int num) const
uint32_t nWG_round_up
check zero suppression mode
std::map< DDUIdType, std::map< CSCIdType, uint32_t > > DMB_ptrOffsets(void) const
std::map< CSCIdType, ExaminerStatusType > errorsDetailed(void) const
std::map< DDUIdType, std::map< CSCIdType, uint32_t > > dmbOffsets
std::vector< const char * > sDMBExpectedPayload
std::vector< const char * > sWARNING_
ExaminerStatusType payloadForChamber(CSCIdType chamber) const
std::set< CSCIdType > fCHAMB_WRN[5]
uint32_t DDU_WordMismatch_Occurrences
std::map< DDUIdType, ExaminerStatusType > bDDU_ERR
uint32_t CFEB_SampleCount
ExaminerStatusType bSUM_ERROR
const char * statusName(int num) const
std::map< DDUIdType, std::map< CSCIdType, uint32_t > > DMB_size(void) const
std::map< DDUIdType, uint32_t > DDU_ptrOffsets(void) const
ExaminerStatusType errorsForDDU(DDUIdType dduSourceID) const
uint32_t TMB_WordsExpected
std::map< CSCIdType, ExaminerStatusType > statusDetailed(void) const
std::map< DDUIdType, uint32_t > DDU_size(void) const
std::map< DDUIdType, const uint16_t * > DDU_block(void) const
uint32_t CFEB_BSampleCount
ExaminerMaskType getMask() const
std::map< CSCIdType, ExaminerStatusType > bCHAMB_WRN
uint32_t TMB_WordsSinceLastHeader
to decode if zero suppression enabled
std::map< CSCIdType, ExaminerStatusType > warningsDetailed(void) const
ExaminerStatusType bERROR
CSCDCCExaminer(ExaminerMaskType mask=0x1)
uint32_t DDU_Firmware_Revision
ExaminerStatusType warningsForDDU(DDUIdType dduSourceID) const
void checkTriggerHeadersAndTrailers()
const char * warningName(int num) const
std::vector< const char * > sWARNING
const char * payloadName(int num) const
std::map< DDUIdType, std::map< CSCIdType, const uint16_t * > > dmbBuffers
ExaminerStatusType warningsForChamber(CSCIdType chamber) const
uint32_t ALCT_WordsSinceLastHeaderZeroSuppressed
std::map< CSCIdType, ExaminerStatusType > bCHAMB_STATUS
int32_t check(const uint16_t *&buffer, int32_t length)
const char * wrnName(int num) const
std::map< CSCIdType, ExaminerStatusType > payloadDetailed(void) const
ExaminerMaskType examinerMask
std::map< DDUIdType, const uint16_t * > dduBuffers
void checkDAVs()
checks DAV_ALCT, DAV_TMB, and DAV_CFEB
ExaminerStatusType bWARNING
std::map< DDUIdType, std::map< CSCIdType, uint32_t > > dmbSize
std::map< DDUIdType, ExaminerStatusType > errorsDetailedDDU(void) const
std::vector< const char * > sDMBEventStaus
std::map< DDUIdType, uint32_t > dduOffsets
bool error(int num) const
void setMask(ExaminerMaskType mask)
std::vector< const char * > sERROR_
std::map< DDUIdType, ExaminerStatusType > bDDU_WRN