CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
CSCDCCUnpacker Class Reference

#include <CSCDCCUnpacker.h>

Inheritance diagram for CSCDCCUnpacker:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 CSCDCCUnpacker (const edm::ParameterSet &pset)
 Constructor. More...
 
void produce (edm::Event &e, const edm::EventSetup &c)
 Produce digis out of raw data. More...
 
void visual_raw (int hl, int id, int run, int event, bool fedshort, bool fDump, short unsigned int *buf) const
 Visualization of raw data in FED-less events (Robert Harr and Alexander Sakharov) More...
 
virtual ~CSCDCCUnpacker ()
 Destructor. More...
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Attributes

bool debug
 
unsigned int errorMask
 
unsigned int examinerMask
 
bool formatedEventDump
 
bool goodEvent
 
edm::InputTag inputObjectsTag
 
bool instantiateDQM
 
CSCMonitorInterfacemonitor
 
int numOfEvents
 
bool printEventNumber
 
bool SuppressZeroLCT
 Suppress zeros LCTs. More...
 
bool unpackStatusDigis
 
bool useExaminer
 
bool useFormatStatus
 
bool useSelectiveUnpacking
 
bool visualFEDInspect
 Visualization of raw data. More...
 
bool visualFEDShort
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Date:
2010/02/16 17:04:47
Revision:
1.24
Author
Alex Tumanov

Definition at line 19 of file CSCDCCUnpacker.h.

Constructor & Destructor Documentation

CSCDCCUnpacker::CSCDCCUnpacker ( const edm::ParameterSet pset)

Constructor.

Selective unpacking mode will skip only troublesome CSC blocks and not whole DCC/DDU block

Enable Format Status Digis

Visualization of raw data

Suppress zeros LCTs

Definition at line 70 of file CSCDCCUnpacker.cc.

References debug, errorMask, examinerMask, formatedEventDump, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), inputObjectsTag, instantiateDQM, monitor, cmsCodeRules.cppFunctionSkipper::operator, printEventNumber, CSCDCCEventData::setDebug(), CSCRPCData::setDebug(), CSCALCTHeader::setDebug(), CSCCLCTData::setDebug(), CSCDDUEventData::setDebug(), CSCTMBData::setDebug(), CSCEventData::setDebug(), CSCTMBHeader::setDebug(), CSCDDUEventData::setErrorMask(), SuppressZeroLCT, unpackStatusDigis, useExaminer, useFormatStatus, useSelectiveUnpacking, visualFEDInspect, and visualFEDShort.

70  :
71  numOfEvents(0) {
72 
73  // Tracked
74 
75  inputObjectsTag = pset.getParameter<edm::InputTag>("InputObjects");
76  useExaminer = pset.getParameter<bool>("UseExaminer");
77  examinerMask = pset.getParameter<unsigned int>("ExaminerMask");
79  useSelectiveUnpacking = pset.getParameter<bool>("UseSelectiveUnpacking");
80  errorMask = pset.getParameter<unsigned int>("ErrorMask");
81  unpackStatusDigis = pset.getParameter<bool>("UnpackStatusDigis");
83  useFormatStatus = pset.getParameter<bool>("UseFormatStatus");
84 
85  // Untracked
86 
87  printEventNumber = pset.getUntrackedParameter<bool>("PrintEventNumber", true);
88  debug = pset.getUntrackedParameter<bool>("Debug", false);
89  instantiateDQM = pset.getUntrackedParameter<bool>("runDQM", false);
90 
92  visualFEDInspect = pset.getUntrackedParameter<bool>("VisualFEDInspect", false);
93  visualFEDShort = pset.getUntrackedParameter<bool>("VisualFEDShort", false);
94  formatedEventDump = pset.getUntrackedParameter<bool>("FormatedEventDump", false);
95 
97  SuppressZeroLCT = pset.getUntrackedParameter<bool>("SuppressZeroLCT", true);
98 
99 
100 
101  if(instantiateDQM) {
103  }
104 
105  produces<CSCWireDigiCollection>("MuonCSCWireDigi");
106  produces<CSCStripDigiCollection>("MuonCSCStripDigi");
107  produces<CSCComparatorDigiCollection>("MuonCSCComparatorDigi");
108  produces<CSCALCTDigiCollection>("MuonCSCALCTDigi");
109  produces<CSCCLCTDigiCollection>("MuonCSCCLCTDigi");
110  produces<CSCRPCDigiCollection>("MuonCSCRPCDigi");
111  produces<CSCCorrelatedLCTDigiCollection>("MuonCSCCorrelatedLCTDigi");
112 
113  if (unpackStatusDigis) {
114  produces<CSCCFEBStatusDigiCollection>("MuonCSCCFEBStatusDigi");
115  produces<CSCTMBStatusDigiCollection>("MuonCSCTMBStatusDigi");
116  produces<CSCDMBStatusDigiCollection>("MuonCSCDMBStatusDigi");
117  produces<CSCALCTStatusDigiCollection>("MuonCSCALCTStatusDigi");
118  produces<CSCDDUStatusDigiCollection>("MuonCSCDDUStatusDigi");
119  produces<CSCDCCStatusDigiCollection>("MuonCSCDCCStatusDigi");
120  }
121 
122  if (useFormatStatus) {
123  produces<CSCDCCFormatStatusDigiCollection>("MuonCSCDCCFormatStatusDigi");
124  }
125  //CSCAnodeData::setDebug(debug);
127  CSCCLCTData::setDebug(debug);
128  CSCEventData::setDebug(debug);
129  CSCTMBData::setDebug(debug);
132  CSCTMBHeader::setDebug(debug);
133  CSCRPCData::setDebug(debug);
135 
136 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
bool SuppressZeroLCT
Suppress zeros LCTs.
static void setDebug(bool value)
CSCMonitorInterface * monitor
bool visualFEDInspect
Visualization of raw data.
static void setDebug(const bool value)
Definition: CSCTMBHeader.h:104
static void setDebug(const bool value)
Definition: CSCTMBData.h:33
static void setErrorMask(unsigned int value)
static void setDebug(bool value)
static void setDebug(const bool value)
Definition: CSCCLCTData.h:29
unsigned int errorMask
unsigned int examinerMask
static void setDebug(bool value)
to access data by via status digis
Definition: CSCALCTHeader.h:27
bool useSelectiveUnpacking
edm::InputTag inputObjectsTag
static void setDebug(const bool value)
Definition: CSCEventData.h:52
static void setDebug(bool debugValue)
Definition: CSCRPCData.h:24
CSCDCCUnpacker::~CSCDCCUnpacker ( )
virtual

Destructor.

Definition at line 138 of file CSCDCCUnpacker.cc.

138  {
139  //fill destructor here
140 }

Member Function Documentation

void CSCDCCUnpacker::produce ( edm::Event e,
const edm::EventSetup c 
)
virtual

Produce digis out of raw data.

access database for mapping

Get a handle to the FED data collection

create the collections of CSC digis

uncomment this for regional unpacking if (id!=SOME_ID) continue;

Take a reference to this FED's data

if fed has data then unpack it

examine event for integrity

Visualization of raw data

get a pointer to data and pass it to constructor for unpacking

get a reference to dduData

set default detid to that for E=+z, S=1, R=1, C=1, L=1

DCC Trailer 2 added to dcc status product (to access TTS from DCC)

skip the DDU if its data has serious errors define a mask for serious errors

DDU Trailer 0 added to ddu status product (to access TTS from DDU)

get a reference to chamber data

first process chamber-wide digis such as LCT

default value for all digis not related to cfebs

layer=0 flags entire chamber

check alct data integrity

fill alct digi

check tmb data integrity

fill correlatedlct and clct digis

fill cscrpc digi

fill cfeb status digi

loop over status digis

fill dmb status digi

fill wire, strip and comparator digis...

set layer, dmb and vme are valid because already checked in line 240

Implements edm::EDProducer.

Definition at line 143 of file CSCDCCUnpacker.cc.

References CastorDataFrameFilter_impl::check(), CSCDCCExaminer::check(), CSCDCCExaminer::crcALCT(), CSCDCCExaminer::crcCFEB(), CSCDCCExaminer::crcTMB(), CSCDetId, FEDRawData::data(), runTheMatrix::data, debug, CSCCrateMap::detId(), CSCDCCExaminer::errName(), errorMask, CSCDCCExaminer::errors(), CSCDCCExaminer::errorsDetailed(), CSCDCCExaminer::errorsDetailedDDU(), edm::EventID::event(), examinerMask, formatedEventDump, edm::EventSetup::get(), edm::Event::getByLabel(), CSCDCCExaminer::getMask(), goodEvent, i, edm::EventBase::id(), inputObjectsTag, instantiateDQM, LogTrace, FEDNumbering::MAXCSCFEDID, FEDNumbering::MINCSCFEDID, monitor, CSCDCCExaminer::nERRORS, NULL, numOfEvents, CSCDCCExaminer::output1(), CSCDCCExaminer::output2(), CSCDCCExaminer::payloadDetailed(), printEventNumber, CSCMonitorInterface::process(), edm::ESHandle< class >::product(), edm::Event::put(), DetId::rawId(), CSCDCCExaminer::OStream::redirect(), edm::EventID::run(), CSCDCCExaminer::setMask(), CSCDCCExaminer::OStream::show(), FEDRawData::size(), CSCDCCExaminer::statusDetailed(), SuppressZeroLCT, unpackStatusDigis, useExaminer, useFormatStatus, useSelectiveUnpacking, visual_raw(), visualFEDInspect, and visualFEDShort.

Referenced by python.JSONExport.JsonExport::export(), and python.HTMLExport.HTMLExport::export().

143  {
144 
146  // Do we really have to do this every event???
147  // ... Yes, because framework is more efficient than you are at caching :)
148  // (But if you want to actually DO something specific WHEN the mapping changes, check out ESWatcher)
150  c.get<CSCCrateMapRcd>().get(hcrate);
151  const CSCCrateMap* pcrate = hcrate.product();
152 
153 
155 
158  e.getByLabel(inputObjectsTag, rawdata);
159 
161  std::auto_ptr<CSCWireDigiCollection> wireProduct(new CSCWireDigiCollection);
162  std::auto_ptr<CSCStripDigiCollection> stripProduct(new CSCStripDigiCollection);
163  std::auto_ptr<CSCALCTDigiCollection> alctProduct(new CSCALCTDigiCollection);
164  std::auto_ptr<CSCCLCTDigiCollection> clctProduct(new CSCCLCTDigiCollection);
165  std::auto_ptr<CSCComparatorDigiCollection> comparatorProduct(new CSCComparatorDigiCollection);
166  std::auto_ptr<CSCRPCDigiCollection> rpcProduct(new CSCRPCDigiCollection);
167  std::auto_ptr<CSCCorrelatedLCTDigiCollection> corrlctProduct(new CSCCorrelatedLCTDigiCollection);
168  std::auto_ptr<CSCCFEBStatusDigiCollection> cfebStatusProduct(new CSCCFEBStatusDigiCollection);
169  std::auto_ptr<CSCDMBStatusDigiCollection> dmbStatusProduct(new CSCDMBStatusDigiCollection);
170  std::auto_ptr<CSCTMBStatusDigiCollection> tmbStatusProduct(new CSCTMBStatusDigiCollection);
171  std::auto_ptr<CSCDDUStatusDigiCollection> dduStatusProduct(new CSCDDUStatusDigiCollection);
172  std::auto_ptr<CSCDCCStatusDigiCollection> dccStatusProduct(new CSCDCCStatusDigiCollection);
173  std::auto_ptr<CSCALCTStatusDigiCollection> alctStatusProduct(new CSCALCTStatusDigiCollection);
174 
175  std::auto_ptr<CSCDCCFormatStatusDigiCollection> formatStatusProduct(new CSCDCCFormatStatusDigiCollection);
176 
177 
178  // If set selective unpacking mode
179  // hardcoded examiner mask below to check for DCC and DDU level errors will be used first
180  // then examinerMask for CSC level errors will be used during unpacking of each CSC block
181  unsigned long dccBinCheckMask = 0x06080016;
182 
183  for (int id=FEDNumbering::MINCSCFEDID;
184  id<=FEDNumbering::MAXCSCFEDID; ++id) { // loop over DCCs
187 
189  const FEDRawData& fedData = rawdata->FEDData(id);
190  unsigned long length = fedData.size();
191 
192 
193  if (length>=32){
194  CSCDCCExaminer* examiner = NULL;
195  std::stringstream examiner_out, examiner_err;
196  goodEvent = true;
197  if (useExaminer) {
198  // CSCDCCExaminer examiner;
199  examiner = new CSCDCCExaminer();
200  examiner->output1().redirect(examiner_out);
201  examiner->output2().redirect(examiner_err);
202  if( examinerMask&0x40000 ) examiner->crcCFEB(1);
203  if( examinerMask&0x8000 ) examiner->crcTMB (1);
204  if( examinerMask&0x0400 ) examiner->crcALCT(1);
205  examiner->output1().show();
206  examiner->output2().show();
207  examiner->setMask(examinerMask);
208  const short unsigned int *data = (short unsigned int *)fedData.data();
209 
210 
211  // Event data hex dump
212  /*short unsigned * buf = (short unsigned int *)fedData.data();
213  std::cout <<std::endl<<length/2<<" words of data:"<<std::endl;
214  for (int i=0;i<length/2;i++) {
215  printf("%04x %04x %04x %04x\n",buf[i+3],buf[i+2],buf[i+1],buf[i]);
216  i+=3;
217  }*/
218 
219 
220  int res = examiner->check(data,long(fedData.size()/2));
221  if( res < 0 ) {
222  goodEvent=false;
223  }
224  else {
225  if (useSelectiveUnpacking) goodEvent=!(examiner->errors()&dccBinCheckMask);
226  else goodEvent=!(examiner->errors()&examinerMask);
227  }
228 
229  /*
230  std::cout << "FED" << id << " " << fedData.size() << " " << goodEvent << " "
231  << std::hex << examiner->errors() << std::dec << " " << status << std::endl;
232  */
233 
234  // Fill Format status digis per FED
235  // Remove examiner->errors() != 0 check if we need to put status digis for every event
236  if (useFormatStatus && (examiner->errors() !=0))
237  // formatStatusProduct->insertDigi(CSCDetId(1,1,1,1,1), CSCDCCFormatStatusDigi(id,examiner,dccBinCheckMask));
238  formatStatusProduct->insertDigi(CSCDetId(1,1,1,1,1),
239  CSCDCCFormatStatusDigi(id,dccBinCheckMask,
240  examiner->getMask(),
241  examiner->errors(),
242  examiner->errorsDetailedDDU(),
243  examiner->errorsDetailed(),
244  examiner->payloadDetailed(),
245  examiner->statusDetailed()));
246  }
247 
250  if (!goodEvent || formatedEventDump){
251  short unsigned * buf = (short unsigned int *)fedData.data();
252  visual_raw(length/2, id,(int)e.id().run(),(int)e.id().event(),
254  }
255  }
256 
257  if (goodEvent) {
259 
260 
261  CSCDCCExaminer * ptrExaminer = examiner;
262  if (!useSelectiveUnpacking) ptrExaminer = NULL;
263 
264  CSCDCCEventData dccData((short unsigned int *) fedData.data(), ptrExaminer);
265 
266  //std::cout << " DCC Size [UNPK] " << dccData.sizeInWords() << std::endl;
267 
268  if(instantiateDQM) monitor->process(examiner, &dccData);
269 
271  const std::vector<CSCDDUEventData> & dduData = dccData.dduData();
272 
274  CSCDetId layer(1, 1, 1, 1, 1);
275 
276  if (unpackStatusDigis) {
277 
279  short unsigned * bufForDcc = (short unsigned int *)fedData.data();
280 
281  //std::cout << "FED Length: " << std::dec << length/2 <<
282  //" Trailer 2: " << std::hex << bufForDcc[length/2-4] << std::endl;
283 
284  dccStatusProduct->insertDigi(layer, CSCDCCStatusDigi(dccData.dccHeader().data(),
285  dccData.dccTrailer().data(),
286  examiner->errors(),
287  bufForDcc[length/2-4]));
288 
289  }
290 
291  for (unsigned int iDDU=0; iDDU<dduData.size(); ++iDDU) { // loop over DDUs
294  if (dduData[iDDU].trailer().errorstat()&errorMask) {
295  LogTrace("CSCDCCUnpacker|CSCRawToDigi") << "DDU# " << iDDU << " has serious error - no digis unpacked! " <<
296  std::hex << dduData[iDDU].trailer().errorstat();
297  continue; // to next iteration of DDU loop
298  }
299 
300  if (unpackStatusDigis) dduStatusProduct->
301  insertDigi(layer, CSCDDUStatusDigi(dduData[iDDU].header().data(),
302  dduData[iDDU].trailer().data(),
304  dduData[iDDU].trailer0()));
305 
307  const std::vector<CSCEventData> & cscData = dduData[iDDU].cscData();
308 
309 
310  for (unsigned int iCSC=0; iCSC<cscData.size(); ++iCSC) { // loop over CSCs
311 
313  int vmecrate = cscData[iCSC].dmbHeader()->crateID();
314  int dmb = cscData[iCSC].dmbHeader()->dmbID();
315 
316  int icfeb = 0;
317  int ilayer = 0;
318 
319  if (debug)
320  LogTrace ("CSCDCCUnpacker|CSCRawToDigi") << "crate = " << vmecrate << "; dmb = " << dmb;
321 
322  if ((vmecrate>=1)&&(vmecrate<=60) && (dmb>=1)&&(dmb<=10)&&(dmb!=6)) {
323  layer = pcrate->detId(vmecrate, dmb,icfeb,ilayer );
324  }
325  else{
326  LogTrace ("CSCDCCUnpacker|CSCRawToDigi") << " detID input out of range!!! ";
327  LogTrace ("CSCDCCUnpacker|CSCRawToDigi")
328  << " skipping chamber vme= " << vmecrate << " dmb= " << dmb;
329  continue; // to next iteration of iCSC loop
330  }
331 
332 
334  int nalct = cscData[iCSC].dmbHeader()->nalct();
335  bool goodALCT=false;
336  //if (nalct&&(cscData[iCSC].dataPresent>>6&0x1)==1) {
337  if (nalct&&cscData[iCSC].alctHeader()) {
338  if (cscData[iCSC].alctHeader()->check()){
339  goodALCT=true;
340  }
341  else {
342  LogTrace ("CSCDCCUnpacker|CSCRawToDigi") <<
343  "not storing ALCT digis; alct is bad or not present";
344  }
345  } else {
346  if (debug) LogTrace ("CSCDCCUnpacker|CSCRawToDigi") << "nALCT==0 !!!";
347  }
348 
350  if (goodALCT){
351  std::vector <CSCALCTDigi> alctDigis =
352  cscData[iCSC].alctHeader()->ALCTDigis();
353  if(SuppressZeroLCT){
354  std::vector<CSCALCTDigi> alctDigis_0;
355  for (int unsigned i=0; i<alctDigis.size(); ++i){
356  if(alctDigis[i].isValid())
357  alctDigis_0.push_back(alctDigis[i]);
358  }
359  alctProduct->put(std::make_pair(alctDigis_0.begin(), alctDigis_0.end()),layer);
360  }
361  else
362  alctProduct->put(std::make_pair(alctDigis.begin(), alctDigis.end()),layer);
363  }
364 
365 
367  int nclct = cscData[iCSC].dmbHeader()->nclct();
368  bool goodTMB=false;
369  // if (nclct&&(cscData[iCSC].dataPresent>>5&0x1)==1) {
370  if (nclct&&cscData[iCSC].tmbData()) {
371  if (cscData[iCSC].tmbHeader()->check()){
372  if (cscData[iCSC].clctData()->check()) goodTMB=true;
373  }
374  else {
375  LogTrace ("CSCDCCUnpacker|CSCRawToDigi") <<
376  "one of TMB checks failed! not storing TMB digis ";
377  }
378  }
379  else {
380  if (debug) LogTrace ("CSCDCCUnpacker|CSCRawToDigi") << "nCLCT==0 !!!";
381  }
382 
384  if (goodTMB) {
385  std::vector <CSCCorrelatedLCTDigi> correlatedlctDigis =
386  cscData[iCSC].tmbHeader()->CorrelatedLCTDigis(layer.rawId());
387  if(SuppressZeroLCT){
388  std::vector<CSCCorrelatedLCTDigi> correlatedlctDigis_0;
389  for (int unsigned i=0; i<correlatedlctDigis.size(); ++i){
390  if(correlatedlctDigis[i].isValid())
391  correlatedlctDigis_0.push_back(correlatedlctDigis[i]);
392  }
393  corrlctProduct->put(std::make_pair(correlatedlctDigis_0.begin(),
394  correlatedlctDigis_0.end()),layer);
395  }
396  else
397  corrlctProduct->put(std::make_pair(correlatedlctDigis.begin(),
398  correlatedlctDigis.end()),layer);
399 
400  std::vector <CSCCLCTDigi> clctDigis =
401  cscData[iCSC].tmbHeader()->CLCTDigis(layer.rawId());
402  if(SuppressZeroLCT){
403  std::vector<CSCCLCTDigi> clctDigis_0;
404  for (int unsigned i=0; i<clctDigis.size(); ++i){
405  if(clctDigis[i].isValid())
406  clctDigis_0.push_back(clctDigis[i]);
407  }
408  clctProduct->put(std::make_pair(clctDigis_0.begin(), clctDigis_0.end()),layer);
409  }
410  else
411  clctProduct->put(std::make_pair(clctDigis.begin(), clctDigis.end()),layer);
412 
414  if (cscData[iCSC].tmbData()->checkSize()) {
415  if (cscData[iCSC].tmbData()->hasRPC()) {
416  std::vector <CSCRPCDigi> rpcDigis =
417  cscData[iCSC].tmbData()->rpcData()->digis();
418  rpcProduct->put(std::make_pair(rpcDigis.begin(), rpcDigis.end()),layer);
419  }
420  }
421  else LogTrace("CSCDCCUnpacker|CSCRawToDigi") <<" TMBData check size failed!";
422  }
423 
424 
426  if (unpackStatusDigis) {
427  for ( icfeb = 0; icfeb < 5; ++icfeb ) {
428  if ( cscData[iCSC].cfebData(icfeb) != NULL )
429  cfebStatusProduct->
430  insertDigi(layer, cscData[iCSC].cfebData(icfeb)->statusDigi());
431  }
433  dmbStatusProduct->insertDigi(layer, CSCDMBStatusDigi(cscData[iCSC].dmbHeader()->data(),
434  cscData[iCSC].dmbTrailer()->data()));
435  if (goodTMB) tmbStatusProduct->
436  insertDigi(layer, CSCTMBStatusDigi(cscData[iCSC].tmbHeader()->data(),
437  cscData[iCSC].tmbData()->tmbTrailer()->data()));
438  if (goodALCT) alctStatusProduct->
439  insertDigi(layer, CSCALCTStatusDigi(cscData[iCSC].alctHeader()->data(),
440  cscData[iCSC].alctTrailer()->data()));
441  }
442 
443 
445  for (int ilayer = 1; ilayer <= 6; ++ilayer) {
447  // (You have to be kidding. Line 240 in whose universe?)
448 
449  // Allocate all ME1/1 wire digis to ring 1
450  layer = pcrate->detId( vmecrate, dmb, 0, ilayer );
451 
452  std::vector <CSCWireDigi> wireDigis = cscData[iCSC].wireDigis(ilayer);
453 
454  wireProduct->put(std::make_pair(wireDigis.begin(), wireDigis.end()),layer);
455 
456  for ( icfeb = 0; icfeb < 5; ++icfeb ) {
457  layer = pcrate->detId( vmecrate, dmb, icfeb,ilayer );
458  if (cscData[iCSC].cfebData(icfeb)) {
459  std::vector<CSCStripDigi> stripDigis;
460  cscData[iCSC].cfebData(icfeb)->digis(layer.rawId(),stripDigis);
461  stripProduct->put(std::make_pair(stripDigis.begin(),
462  stripDigis.end()),layer);
463  }
464 
465  if (goodTMB){
466  std::vector <CSCComparatorDigi> comparatorDigis =
467  cscData[iCSC].clctData()->comparatorDigis(layer.rawId(), icfeb);
468  // Set cfeb=0, so that ME1/a and ME1/b comparators go to
469  // ring 1.
470  layer = pcrate->detId( vmecrate, dmb, 0, ilayer );
471  comparatorProduct->put(std::make_pair(comparatorDigis.begin(),
472  comparatorDigis.end()),layer);
473  }
474  } // end of loop over cfebs
475  } // end of loop over layers
476  } // end of loop over chambers
477  } // endof loop over DDUs
478  } // end of good event
479  else {
480  LogTrace("CSCDCCUnpacker|CSCRawToDigi") <<
481  "ERROR! Examiner rejected FED #" << id;
482  if (examiner) {
483  for (int i=0; i<examiner->nERRORS; ++i) {
484  if (((examinerMask&examiner->errors())>>i)&0x1)
485  LogTrace("CSCDCCUnpacker|CSCRawToDigi")<<examiner->errName(i);
486  }
487  if (debug) {
488  LogTrace("CSCDCCUnpacker|CSCRawToDigi")
489  << " Examiner errors:0x" << std::hex << examiner->errors()
490  << " & 0x" << examinerMask
491  << " = " << (examiner->errors()&examinerMask);
492  if (examinerMask&examiner->errors()) {
493  LogTrace("CSCDCCUnpacker|CSCRawToDigi")
494  << "Examiner output: " << examiner_out.str();
495  LogTrace("CSCDCCUnpacker|CSCRawToDigi")
496  << "Examiner errors: " << examiner_err.str();
497  }
498  }
499  }
500 
501  // dccStatusProduct->insertDigi(CSCDetId(1,1,1,1,1), CSCDCCStatusDigi(examiner->errors()));
502  // if(instantiateDQM) monitor->process(examiner, NULL);
503  }
504  if (examiner!=NULL) delete examiner;
505  } // end of if fed has data
506  } // end of loop over DCCs
507  // put into the event
508  e.put(wireProduct, "MuonCSCWireDigi");
509  e.put(stripProduct, "MuonCSCStripDigi");
510  e.put(alctProduct, "MuonCSCALCTDigi");
511  e.put(clctProduct, "MuonCSCCLCTDigi");
512  e.put(comparatorProduct, "MuonCSCComparatorDigi");
513  e.put(rpcProduct, "MuonCSCRPCDigi");
514  e.put(corrlctProduct, "MuonCSCCorrelatedLCTDigi");
515 
516  if (useFormatStatus) e.put(formatStatusProduct, "MuonCSCDCCFormatStatusDigi");
517 
518  if (unpackStatusDigis)
519  {
520  e.put(cfebStatusProduct, "MuonCSCCFEBStatusDigi");
521  e.put(dmbStatusProduct, "MuonCSCDMBStatusDigi");
522  e.put(tmbStatusProduct, "MuonCSCTMBStatusDigi");
523  e.put(dduStatusProduct, "MuonCSCDDUStatusDigi");
524  e.put(dccStatusProduct, "MuonCSCDCCStatusDigi");
525  e.put(alctStatusProduct, "MuonCSCALCTStatusDigi");
526  }
527  if (printEventNumber) LogTrace("CSCDCCUnpacker|CSCRawToDigi")
528  <<"[CSCDCCUnpacker]: " << numOfEvents << " events processed ";
529 }
RunNumber_t run() const
Definition: EventID.h:42
01/20/05 A.Tumanov
EventNumber_t event() const
Definition: EventID.h:44
void crcCFEB(bool enable)
int i
Definition: DBlmapReader.cc:9
bool SuppressZeroLCT
Suppress zeros LCTs.
OStream & output1(void)
CSCDetId detId(int vme, int dmb, int cfeb, int layer=0) const
Definition: CSCCrateMap.cc:11
const uint16_t nERRORS
CSCMonitorInterface * monitor
#define NULL
Definition: scimark2.h:8
void redirect(std::ostream &str)
ExaminerStatusType errors(void) const
void crcALCT(bool enable)
OStream & output2(void)
const char * errName(int num) const
bool visualFEDInspect
Visualization of raw data.
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
virtual void process(CSCDCCExaminer *examiner, CSCDCCEventData *dccData)=0
void visual_raw(int hl, int id, int run, int event, bool fedshort, bool fDump, short unsigned int *buf) const
Visualization of raw data in FED-less events (Robert Harr and Alexander Sakharov) ...
std::map< CSCIdType, ExaminerStatusType > errorsDetailed(void) const
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:84
bool check(const DataFrame &df, bool capcheck, bool dvercheck)
void crcTMB(bool enable)
std::map< CSCIdType, ExaminerStatusType > statusDetailed(void) const
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
#define LogTrace(id)
ExaminerMaskType getMask() const
unsigned int errorMask
unsigned int examinerMask
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
bool useSelectiveUnpacking
int32_t check(const uint16_t *&buffer, int32_t length)
edm::InputTag inputObjectsTag
std::map< CSCIdType, ExaminerStatusType > payloadDetailed(void) const
edm::EventID id() const
Definition: EventBase.h:56
CSC Format Status Object.
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:29
std::map< DDUIdType, ExaminerStatusType > errorsDetailedDDU(void) const
void setMask(ExaminerMaskType mask)
void CSCDCCUnpacker::visual_raw ( int  hl,
int  id,
int  run,
int  event,
bool  fedshort,
bool  fDump,
short unsigned int *  buf 
) const

Visualization of raw data in FED-less events (Robert Harr and Alexander Sakharov)

Visualization of raw data.

Definition at line 534 of file CSCDCCUnpacker.cc.

References event(), formatedEventDump, i, j, gen::k, and LogTrace.

Referenced by produce().

535  {
536 
537  LogTrace("badData") << std::endl << std::endl;
538  LogTrace("badData") << "Run: "<< run << " Event: " << event;
539  LogTrace("badData") << std::endl;
541  LogTrace("badData") << "FED-" << id << " " << "(scroll down to see summary)";
542  else
543  LogTrace("badData") << "Problem seems in FED-" << id << " " << "(scroll down to see summary)";
544  LogTrace("badData") <<"********************************************************************************";
545  LogTrace("badData") <<hl<<" words of data:";
546 
547  //================================================
548  // FED codes in DCC
549  std::vector<int> dcc_id;
550  int dcc_h1_id=0;
551  // Current codes
552  for (int i=750;i<758;i++)
553  dcc_id.push_back(i);
554  // Codes for upgrade
555  for (int i=830;i<838;i++)
556  dcc_id.push_back(i);
557 
558  char dcc_common[]="DCC-";
559 
560  //================================================
561  // DDU codes per FED
562  std::vector<int> ddu_id;
563  int ddu_h1_12_13=0;
564  for (int i=1;i<37;i++)
565  ddu_id.push_back(i);
566  // For DDU Headers and tarailers
567  char ddu_common[]="DDU-";
568  char ddu_header1[]="Header 1";
569  char ddu_header2[]="Header 2";
570  char ddu_header3[]="Header 3";
571  char ddu_trail1[]="Trailer 1", ddu_trail2[]="Trailer 2", ddu_trail3[]="Trailer 3";
572  // For Header 2
573  char ddu_trailer1_bit[]={'8','0','0','0','f','f','f','f','8','0','0','0','8','0','0','0'};
574  char ddu_trailer3_bit[]={'a'};
575  // Corrupted Trailers
576  char ddu_tr1_err_common[]="Incomplet";
577  //====================================================
578 
579  //DMB
580  char dmb_common[]="DMB", dmb_header1[]="Header 1", dmb_header2[]="Header 2";
581  char dmb_common_crate[]="crate:", dmb_common_slot[]="slot:";
582  char dmb_common_l1a[]="L1A:";
583  char dmb_header1_bit[]={'9','9','9','9'};
584  char dmb_header2_bit[]={'a','a','a','a'};
585  char dmb_tr1[]="Trailer 1", dmb_tr2[]="Trailer 2";
586  char dmb_tr1_bit[]={'f','f','f','f'}, dmb_tr2_bit[]={'e','e','e','e'};
587 
588 
589  //=====================================================
590 
591  // ALCT
592  char alct_common[]="ALCT", alct_header1[]="Header 1", alct_header2[]="Header 2";
593  char alct_common_bxn[]="BXN:";
594  char alct_common_wcnt2[]="| Actual word count:";
595  char alct_common_wcnt1[]="Expected word count:";
596  char alct_header1_bit[]={'d','d','d','d','b','0','a'};
597  char alct_header2_bit[]={'0','0','0','0'};
598  char alct_tr1[]="Trailer 1";
599 
600  //======================================================
601 
602  //TMB
603  char tmb_common[]="TMB", tmb_header1[]="Header", tmb_tr1[]="Trailer";
604  char tmb_header1_bit[]={'d','d','d','d','b','0','c'};
605  char tmb_tr1_bit[]={'d','d','d','d','e','0','f'};
606 
607  //======================================================
608 
609  //CFEB
610  char cfeb_common[]="CFEB", cfeb_tr1[]="Trailer", cfeb_b[]="B-word";
611  char cfeb_common_sample[]="sample:";
612 
613  //======================================================
614 
615  //Auxiliary variables
616 
617  // Bufers
618  int word_lines=hl/4;
619  char tempbuf[80];
620  char tempbuf1[80];
621  char tempbuf_short[17];
622  char sign1[]=" --->| ";
623 
624  // Counters
625  int word_numbering=0;
626  int ddu_inst_i=0, ddu_inst_n=0, ddu_inst_l1a=0;
627  int ddu_inst_bxn=0;
628  int dmb_inst_crate=0, dmb_inst_slot=0, dmb_inst_l1a=0;
629  int cfeb_sample=0;
630  int alct_inst_l1a=0;
631  int alct_inst_bxn=0;
632  int alct_inst_wcnt1=0;
633  int alct_inst_wcnt2=0;
634  int alct_start=0;
635  int alct_stop=0;
636  int tmb_inst_l1a=0;
637  int tmb_inst_wcnt1=0;
638  int tmb_inst_wcnt2=0;
639  int tmb_start=0;
640  int tmb_stop=0;
641  int dcc_h1_check=0;
642 
643  //Flags
644  int ddu_h2_found=0; //DDU Header 2 found
645  int w=0;
646 
647  //Logic variables
648  const int sz1=5;
649  bool dcc_check=false;
650  bool ddu_h2_check[sz1]={false};
651  bool ddu_h1_check=false;
652  bool dmb_h1_check[sz1]={false};
653  bool dmb_h2_check[sz1]={false};
654  bool ddu_h2_h1=false;
655  bool ddu_tr1_check[sz1]={false};
656  bool alct_h1_check[sz1]={false};
657  bool alct_h2_check[sz1]={false};
658  bool alct_tr1_check[sz1]={false};
659  bool dmb_tr1_check[sz1]={false};
660  bool dmb_tr2_check[sz1]={false};
661  bool tmb_h1_check[sz1]={false};
662  bool tmb_tr1_check[sz1]={false};
663  bool cfeb_tr1_check[sz1]={false};
664  bool cfeb_b_check[sz1]={false};
665  bool ddu_tr1_bad_check[sz1]={false};
666  bool extraction=fedshort;
667 
668  //Summary vectors
669  //DDU
670  std::vector<int> ddu_h1_coll;
671  std::vector<int> ddu_h1_n_coll;
672  std::vector<int> ddu_h2_coll;
673  std::vector<int> ddu_h3_coll;
674  std::vector<int> ddu_t1_coll;
675  std::vector<int> ddu_t2_coll;
676  std::vector<int> ddu_t3_coll;
677  std::vector<int> ddu_l1a_coll;
678  std::vector<int> ddu_bxn_coll;
679  //DMB
680  std::vector<int> dmb_h1_coll;
681  std::vector<int> dmb_h2_coll;
682  std::vector<int> dmb_t1_coll;
683  std::vector<int> dmb_t2_coll;
684  std::vector<int> dmb_crate_coll;
685  std::vector<int> dmb_slot_coll;
686  std::vector<int> dmb_l1a_coll;
687  //ALCT
688  std::vector<int> alct_h1_coll;
689  std::vector<int> alct_h2_coll;
690  std::vector<int> alct_t1_coll;
691  std::vector<int> alct_l1a_coll;
692  std::vector<int> alct_bxn_coll;
693  std::vector<int> alct_wcnt1_coll;
694  std::vector<int> alct_wcnt2_coll;
695  std::vector<int> alct_wcnt2_id_coll;
696  //TMB
697  std::vector<int> tmb_h1_coll;
698  std::vector<int> tmb_t1_coll;
699  std::vector<int> tmb_l1a_coll;
700  std::vector<int> tmb_wcnt1_coll;
701  std::vector<int> tmb_wcnt2_coll;
702  //CFEB
703  std::vector<int> cfeb_t1_coll;
704 
705  //========================================================
706 
707  // DCC Header and Ttrailer information
708  char dcc_header1[]="DCC Header 1";
709  char dcc_header2[]="DCC Header 2";
710  char dcc_trail1[]="DCC Trailer 1", dcc_trail1_bit[]={'e'};
711  char dcc_trail2[]="DCC Trailer 2", dcc_trail2_bit[]={'a'};
712  //=========================================================
713 
714  for (int i=0;i<hl;i++) {
715  // Auxiliary actions
716  ++word_numbering;
717  for(int j=-1; j<4; j++){
718  sprintf(tempbuf_short,"%04x%04x%04x%04x",buf[i+4*(j-1)+3],buf[i+4*(j-1)+2],buf[i+4*(j-1)+1],buf[i+4*(j-1)]);
719 
720  ddu_h2_check[j]=((buf[i+4*(j-1)+1]==0x8000)&&
721  (buf[i+4*(j-1)+2]==0x0001)&&(buf[i+4*(j-1)+3]==0x8000));
722 
723  ddu_tr1_check[j]=((tempbuf_short[0]==ddu_trailer1_bit[0])&&(tempbuf_short[1]==ddu_trailer1_bit[1])&&
724  (tempbuf_short[2]==ddu_trailer1_bit[2])&&(tempbuf_short[3]==ddu_trailer1_bit[3])&&
725  (tempbuf_short[4]==ddu_trailer1_bit[4])&&(tempbuf_short[5]==ddu_trailer1_bit[5])&&
726  (tempbuf_short[6]==ddu_trailer1_bit[6])&&(tempbuf_short[7]==ddu_trailer1_bit[7])&&
727  (tempbuf_short[8]==ddu_trailer1_bit[8])&&(tempbuf_short[9]==ddu_trailer1_bit[9])&&
728  (tempbuf_short[10]==ddu_trailer1_bit[10])&&(tempbuf_short[11]==ddu_trailer1_bit[11])&&
729  (tempbuf_short[12]==ddu_trailer1_bit[12])&&(tempbuf_short[13]==ddu_trailer1_bit[13])&&
730  (tempbuf_short[14]==ddu_trailer1_bit[14])&&(tempbuf_short[15]==ddu_trailer1_bit[15]));
731 
732  dmb_h1_check[j]=((tempbuf_short[0]==dmb_header1_bit[0])&&(tempbuf_short[4]==dmb_header1_bit[1])&&
733  (tempbuf_short[8]==dmb_header1_bit[2])&&(tempbuf_short[12]==dmb_header1_bit[3]));
734 
735  dmb_h2_check[j]=((tempbuf_short[0]==dmb_header2_bit[0])&&(tempbuf_short[4]==dmb_header2_bit[1])&&
736  (tempbuf_short[8]==dmb_header2_bit[2])&&(tempbuf_short[12]==dmb_header2_bit[3]));
737  alct_h1_check[j]=((tempbuf_short[0]==alct_header1_bit[0])&&(tempbuf_short[4]==alct_header1_bit[1])&&
738  (tempbuf_short[8]==alct_header1_bit[2])&&(tempbuf_short[12]==alct_header1_bit[3])&&
739  (tempbuf_short[13]==alct_header1_bit[4])&&(tempbuf_short[14]==alct_header1_bit[5])&&
740  (tempbuf_short[15]==alct_header1_bit[6]));
741  alct_h2_check[j]=(((tempbuf_short[0]==alct_header2_bit[0])&&(tempbuf_short[1]==alct_header2_bit[1])&&
742  (tempbuf_short[2]==alct_header2_bit[2])&&(tempbuf_short[3]==alct_header2_bit[3]))||
743  ((tempbuf_short[4]==alct_header2_bit[0])&&(tempbuf_short[5]==alct_header2_bit[1])&&
744  (tempbuf_short[6]==alct_header2_bit[2])&&(tempbuf_short[7]==alct_header2_bit[3]))||
745  ((tempbuf_short[8]==alct_header2_bit[0])&&(tempbuf_short[9]==alct_header2_bit[1])&&
746  (tempbuf_short[10]==alct_header2_bit[2])&&(tempbuf_short[11]==alct_header2_bit[3]))||
747  ((tempbuf_short[12]==alct_header2_bit[0])&&(tempbuf_short[13]==alct_header2_bit[1])&&
748  (tempbuf_short[14]==alct_header2_bit[2])&&(tempbuf_short[15]==alct_header2_bit[3]))
749  //(tempbuf_short[4]==alct_header2_bit[4])&&(tempbuf_short[5]==alct_header2_bit[5])
750  );
751  // ALCT Trailers
752  alct_tr1_check[j]=(((buf[i+4*(j-1)]&0xFFFF)==0xDE0D)&&((buf[i+4*(j-1)+1]&0xF800)==0xD000)&&
753  ((buf[i+4*(j-1)+2]&0xF800)==0xD000)&&((buf[i+4*(j-1)+3]&0xF000)==0xD000));
754  // DMB Trailers
755  dmb_tr1_check[j]=((tempbuf_short[0]==dmb_tr1_bit[0])&&(tempbuf_short[4]==dmb_tr1_bit[1])&&
756  (tempbuf_short[8]==dmb_tr1_bit[2])&&(tempbuf_short[12]==dmb_tr1_bit[3]));
757  dmb_tr2_check[j]=((tempbuf_short[0]==dmb_tr2_bit[0])&&(tempbuf_short[4]==dmb_tr2_bit[1])&&
758  (tempbuf_short[8]==dmb_tr2_bit[2])&&(tempbuf_short[12]==dmb_tr2_bit[3]));
759  // TMB
760  tmb_h1_check[j]=((tempbuf_short[0]==tmb_header1_bit[0])&&(tempbuf_short[4]==tmb_header1_bit[1])&&
761  (tempbuf_short[8]==tmb_header1_bit[2])&&(tempbuf_short[12]==tmb_header1_bit[3])&&
762  (tempbuf_short[13]==tmb_header1_bit[4])&&(tempbuf_short[14]==tmb_header1_bit[5])&&
763  (tempbuf_short[15]==tmb_header1_bit[6]));
764  tmb_tr1_check[j]=((tempbuf_short[0]==tmb_tr1_bit[0])&&(tempbuf_short[4]==tmb_tr1_bit[1])&&
765  (tempbuf_short[8]==tmb_tr1_bit[2])&&(tempbuf_short[12]==tmb_tr1_bit[3])&&
766  (tempbuf_short[13]==tmb_tr1_bit[4])&&(tempbuf_short[14]==tmb_tr1_bit[5])&&
767  (tempbuf_short[15]==tmb_tr1_bit[6]));
768  // CFEB
769  cfeb_tr1_check[j]=(((buf[i+4*(j-1)+1]&0xF000)==0x7000) &&
770  ((buf[i+4*(j-1)+2]&0xF000)==0x7000) &&
771  (( buf[i+4*(j-1)+1]!= 0x7FFF) || (buf[i+4*(j-1)+2] != 0x7FFF)) &&
772  ((buf[i+4*(j-1)+3] == 0x7FFF) ||
773  ((buf[i+4*(j-1)+3]&buf[i+4*(j-1)]) == 0x0&&(buf[i+4*(j-1)+3] + buf[i+4*(j-1)] == 0x7FFF ))) );
774  cfeb_b_check[j]=(((buf[i+4*(j-1)+3]&0xF000)==0xB000)&&((buf[i+4*(j-1)+2]&0xF000)==0xB000) &&
775  ((buf[i+4*(j-1)+1]&0xF000)==0xB000)&&((buf[i+4*(j-1)]=3&0xF000)==0xB000) );
776  // DDU Trailers with errors
777  ddu_tr1_bad_check[j]=((tempbuf_short[0]!=ddu_trailer1_bit[0])&&
778  //(tempbuf_short[1]!=ddu_trailer1_bit[1])&&(tempbuf_short[2]!=ddu_trailer1_bit[2])&&
779  //(tempbuf_short[3]==ddu_trailer1_bit[3])&&
780  (tempbuf_short[4]!=ddu_trailer1_bit[4])&&
781  //(tempbuf_short[5]==ddu_trailer1_bit[5])&&
782  //(tempbuf_short[6]==ddu_trailer1_bit[6])&&(tempbuf_short[7]==ddu_trailer1_bit[7])&&
783  (tempbuf_short[8]==ddu_trailer1_bit[8])&&(tempbuf_short[9]==ddu_trailer1_bit[9])&&
784  (tempbuf_short[10]==ddu_trailer1_bit[10])&&(tempbuf_short[11]==ddu_trailer1_bit[11])&&
785  (tempbuf_short[12]==ddu_trailer1_bit[12])&&(tempbuf_short[13]==ddu_trailer1_bit[13])&&
786  (tempbuf_short[14]==ddu_trailer1_bit[14])&&(tempbuf_short[15]==ddu_trailer1_bit[15]));
787  }
788 
789 
790  // DDU Header 2 next to Header 1
791  ddu_h2_h1=ddu_h2_check[2];
792 
793  sprintf(tempbuf_short,"%04x%04x%04x%04x",buf[i+3],buf[i+2],buf[i+1],buf[i]);
794 
795  // Looking for DDU Header 1
796  ddu_h1_12_13=(buf[i]>>8);
797  for (int kk=0; kk<36; kk++){
798  if(((buf[i+3]&0xF000)==0x5000)&&(ddu_h1_12_13==ddu_id[kk])&&ddu_h2_h1){
799  ddu_h1_coll.push_back(word_numbering); ddu_h1_n_coll.push_back(ddu_id[kk]);
800  ddu_inst_l1a=((buf[i+2]&0xFFFF)+((buf[i+3]&0x00FF)<<16));
801  ddu_l1a_coll.push_back(ddu_inst_l1a);
802  ddu_inst_bxn=(buf[i+1]&0xFFF0)>>4;
803  ddu_bxn_coll.push_back(ddu_inst_bxn);
804  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s%i %s%s %s %i %s %i",
805  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
806  sign1,ddu_common,ddu_id[kk],ddu_header1,sign1,dmb_common_l1a,ddu_inst_l1a,alct_common_bxn,ddu_inst_bxn);
807  LogTrace("badData") << tempbuf1; w=0; ddu_h1_check=true; ddu_inst_l1a=0;
808  cfeb_sample=0;
809  }
810  }
811 
812  // Looking for DCC Header 1
813  dcc_h1_id=(((buf[i+1]<<12)&0xF000)>>4)+(buf[i]>>8);
814  for(int dcci=0;dcci<16;dcci++){
815  if((dcc_id[dcci]==dcc_h1_id)&&(((buf[i+3]&0xF000)==0x5000)&&(!ddu_h1_check))){
816  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s%i %s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
817  sign1,dcc_common,dcc_h1_id,dcc_header1); dcc_h1_check=word_numbering; w=0;
818  dcc_check=true;
819  LogTrace("badData") << tempbuf1;
820  }
821  }
822 
823  // Looking for DCC Header 2 and trailers
824  if(((word_numbering-1)==dcc_h1_check)&&((buf[i+3]&0xFF00)==0xD900)) {
825  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
826  sign1,dcc_header2);
827  LogTrace("badData") << tempbuf1; w=0;
828  }
829  else if((word_numbering==word_lines-1)&&(tempbuf_short[0]==dcc_trail1_bit[0])){
830  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
831  sign1,dcc_trail1);
832  LogTrace("badData") << tempbuf1; w=0;
833  }
834  else if((word_numbering==word_lines)&&(tempbuf_short[0]==dcc_trail2_bit[0])){
835  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
836  sign1,dcc_trail2);
837  LogTrace("badData") << tempbuf1; w=0;
838  }
839 
840  // DDU Header 2
841  else if(ddu_h2_check[1]){
842  ddu_inst_i = ddu_h1_n_coll.size(); //ddu_inst_n=ddu_h1_n_coll[0];
843  ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
844  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s%i %s",
845  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,
846  ddu_inst_n, ddu_header2);
847  ddu_h2_coll.push_back(word_numbering);
848  LogTrace("badData") << tempbuf1; w=0;
849  ddu_h2_found=1;
850  }
851 
852  // DDU Header 3 (either between DDU Header 2 DMB Header or DDU Header 2 DDU Trailer1)
853  else if((ddu_h2_check[0]&&dmb_h1_check[2])||(ddu_h2_check[0]&&ddu_tr1_check[2])){
854  ddu_inst_i = ddu_h1_n_coll.size(); ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
855  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s%i %s",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
856  sign1,ddu_common,ddu_inst_n,ddu_header3);
857  ddu_h3_coll.push_back(word_numbering);
858  LogTrace("badData") << tempbuf1; w=0;
859  ddu_h2_found=0;
860  }
861 
862  // DMB Header 1,2
863 
864  else if(dmb_h1_check[1]){
865  dmb_inst_crate=0; dmb_inst_slot=0; dmb_inst_l1a=0;
866  dmb_inst_l1a=((buf[i]&0x0FFF)+((buf[i+1]&0xFFF)<<12));
867  dmb_l1a_coll.push_back(dmb_inst_l1a);
868  if(dmb_h2_check[2]){
869  dmb_inst_crate=((buf[i+4+1]>>4)&0xFF); dmb_inst_slot=(buf[i+4+1]&0xF);
870  dmb_crate_coll.push_back(dmb_inst_crate); dmb_slot_coll.push_back(dmb_inst_slot);
871  }
872  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s %s%s%s %i %s %i %s %i",
873  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
874  sign1,dmb_common,dmb_header1,sign1,dmb_common_crate,dmb_inst_crate,
875  dmb_common_slot,dmb_inst_slot,dmb_common_l1a,dmb_inst_l1a);
876  dmb_h1_coll.push_back(word_numbering);
877  LogTrace("badData") << tempbuf1; w=0;
878  ddu_h2_found=1;
879  }
880 
881  else if(dmb_h2_check[1]){
882  dmb_inst_crate=((buf[i+1]>>4)&0xFF); dmb_inst_slot=(buf[i+1]&0xF);
883  dmb_h2_coll.push_back(word_numbering);
884  if(dmb_h1_check[0])
885  dmb_inst_l1a=((buf[i-4]&0x0FFF)+((buf[i-4+1]&0xFFF)<<12));
886  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s %s%s%s %i %s %i %s %i",
887  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
888  sign1,dmb_common,dmb_header2,sign1,dmb_common_crate,dmb_inst_crate,
889  dmb_common_slot,dmb_inst_slot,dmb_common_l1a,dmb_inst_l1a);
890  LogTrace("badData") << tempbuf1; w=0;
891  ddu_h2_found=1;
892  }
893 
894  //DDU Trailer 1
895  else if(ddu_tr1_check[1]){
896  ddu_inst_i = ddu_h1_n_coll.size(); ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
897  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s%i %s",
898  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,ddu_inst_n,ddu_trail1);
899  ddu_t1_coll.push_back(word_numbering);
900  LogTrace("badData") << tempbuf1; w=0;
901  }
902 
903  //ALCT Header 1,2
904  else if(alct_h1_check[1]){
905  alct_start=word_numbering;
906  alct_inst_l1a=(buf[i+2]&0x0FFF);
907  alct_l1a_coll.push_back(alct_inst_l1a);
908  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s %s%s %s %i",
909  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
910  sign1,alct_common,alct_header1,sign1,dmb_common_l1a,alct_inst_l1a);
911  alct_h1_coll.push_back(word_numbering);
912  LogTrace("badData") << tempbuf1; w=0; alct_inst_l1a=0;
913  }
914 
915  else if((alct_h1_check[0])&&(alct_h2_check[2])) {
916  alct_inst_bxn=(buf[i]&0x0FFF);
917  alct_bxn_coll.push_back(alct_inst_bxn);
918  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s %s%s%s %i",
919  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
920  sign1,alct_common,alct_header2,sign1,alct_common_bxn,alct_inst_bxn);
921  alct_h2_coll.push_back(word_numbering);
922  LogTrace("badData") << tempbuf1; w=0; alct_inst_bxn=0;
923  }
924 
925  //ALCT Trailer 1
926  else if(alct_tr1_check[1]){
927  alct_stop=word_numbering;
928  if((alct_start!=0)&&(alct_stop!=0)&&(alct_stop>alct_start)) {
929  alct_inst_wcnt2=4*(alct_stop-alct_start+1);
930  alct_wcnt2_coll.push_back(alct_inst_wcnt2);
931  alct_wcnt2_id_coll.push_back(alct_start);
932  }
933  alct_inst_wcnt1=(buf[i+3]&0x7FF);
934  alct_wcnt1_coll.push_back(alct_inst_wcnt1);
935  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s %s%s%s %i %s %i",
936  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
937  sign1,alct_common,alct_tr1,sign1,alct_common_wcnt1,alct_inst_wcnt1,
938  alct_common_wcnt2,alct_inst_wcnt2);
939  alct_t1_coll.push_back(word_numbering);
940  LogTrace("badData") << tempbuf1; w=0; alct_inst_wcnt1=0;
941  alct_inst_wcnt2=0;
942  }
943 
944  //DDU Trailer 3
945  else if((ddu_tr1_check[-1])&&(tempbuf_short[0]==ddu_trailer3_bit[0])){
946  //&&(tempbuf_short[0]==ddu_trailer3_bit[0])){
947  ddu_inst_i = ddu_h1_n_coll.size(); ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
948  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s%i %s",
949  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,ddu_inst_n,ddu_trail3);
950  ddu_t3_coll.push_back(word_numbering);
951  LogTrace("badData") << tempbuf1; w=0;
952  }
953  //DDU Trailer 2
954  else if((ddu_tr1_check[0])&&(tempbuf_short[0]!=ddu_trailer3_bit[0])){
955  //&&(tempbuf_short[0]==ddu_trailer3_bit[0])){
956  ddu_inst_i = ddu_h1_n_coll.size(); ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
957  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s%i %s",
958  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,ddu_inst_n,ddu_trail2);
959  ddu_t2_coll.push_back(word_numbering);
960  LogTrace("badData") << tempbuf1; w=0;
961  }
962  //DMB Trailer 1,2
963  else if(dmb_tr1_check[1]){
964  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s %s",
965  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,dmb_common,dmb_tr1);
966  dmb_t1_coll.push_back(word_numbering);
967  LogTrace("badData") << tempbuf1; w=0;
968  cfeb_sample=0;
969  }
970 
971  else if(dmb_tr2_check[1]){
972  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s %s",
973  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,dmb_common,dmb_tr2);
974  dmb_t2_coll.push_back(word_numbering);
975  LogTrace("badData") << tempbuf1; w=0;
976  }
977  // TMB
978  else if(tmb_h1_check[1]){
979  tmb_start=word_numbering;
980  tmb_inst_l1a=(buf[i+2]&0x000F);
981  tmb_l1a_coll.push_back(tmb_inst_l1a);
982  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s %s%s%s %i",
983  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,tmb_common,tmb_header1,
984  sign1,dmb_common_l1a,tmb_inst_l1a);
985  tmb_h1_coll.push_back(word_numbering);
986  LogTrace("badData") << tempbuf1; w=0; tmb_inst_l1a=0;
987  }
988  else if(tmb_tr1_check[1]){
989  tmb_stop=word_numbering;
990  if((tmb_start!=0)&&(tmb_stop!=0)&&(tmb_stop>tmb_start)) {
991  tmb_inst_wcnt2=4*(tmb_stop-tmb_start+1);
992  tmb_wcnt2_coll.push_back(tmb_inst_wcnt2);
993  }
994  tmb_inst_wcnt1=(buf[i+3]&0x7FF);
995  tmb_wcnt1_coll.push_back(tmb_inst_wcnt1);
996  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s %s%s%s %i %s %i",
997  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
998  sign1,tmb_common,tmb_tr1,sign1,alct_common_wcnt1,tmb_inst_wcnt1,
999  alct_common_wcnt2,tmb_inst_wcnt2);
1000  tmb_t1_coll.push_back(word_numbering);
1001  LogTrace("badData") << tempbuf1; w=0;
1002  tmb_inst_wcnt2=0;
1003  }
1004  // CFEB
1005  else if(cfeb_tr1_check[1]){
1006  ++cfeb_sample;
1007  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s %s%s %s %i",
1008  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],
1009  sign1,cfeb_common,cfeb_tr1,sign1,cfeb_common_sample,cfeb_sample);
1010  cfeb_t1_coll.push_back(word_numbering); w=0;
1011  LogTrace("badData") << tempbuf1; w=0;
1012  }
1013  else if(cfeb_b_check[1]){
1014  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s %s",
1015  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,cfeb_common,cfeb_b);
1016  LogTrace("badData") << tempbuf1; w=0;
1017  }
1018  //ERRORS ddu_tr1_bad_check
1019  else if(ddu_tr1_bad_check[1]){
1020  ddu_inst_i = ddu_h1_n_coll.size(); ddu_inst_n=ddu_h1_n_coll[ddu_inst_i-1];
1021  sprintf(tempbuf1,"%6i %04x %04x %04x %04x%s%s%i %s %s",
1022  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i],sign1,ddu_common,ddu_inst_n,
1023  ddu_trail1,ddu_tr1_err_common);
1024  LogTrace("badData") << tempbuf1; w=0;
1025  }
1026 
1027  else if(extraction&&(!ddu_h1_check)&&(!dcc_check)){
1028  if(w<3){
1029  sprintf(tempbuf,"%6i %04x %04x %04x %04x",
1030  word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i]);
1031  LogTrace("badData") << tempbuf; w++;}
1032  if(w==3){
1033  LogTrace("badData") << "..................................................."; w++;}
1034  }
1035 
1036  else if((!ddu_h1_check)&&(!dcc_check)){
1037  sprintf(tempbuf,"%6i %04x %04x %04x %04x",word_numbering,buf[i+3],buf[i+2],buf[i+1],buf[i]);
1038  LogTrace("badData") << tempbuf;
1039  }
1040 
1041  i+=3; ddu_h1_check=false; dcc_check=false;
1042  }
1043  char sign[30];
1044  LogTrace("badData") <<"********************************************************************************" <<
1045  std::endl;
1046  if(fedshort)
1047  LogTrace("badData") << "For complete output turn off VisualFEDShort in muonCSCDigis configuration file.";
1048  LogTrace("badData") <<"********************************************************************************" <<
1049  std::endl;
1050  LogTrace("badData") << std::endl;
1051  LogTrace("badData") <<" Summary ";
1052  LogTrace("badData") << std::endl;
1053  LogTrace("badData") << ddu_h1_coll.size() <<" "<< ddu_common << " "<<ddu_header1 << " "<< "found";
1054  for(unsigned int k=0; k<ddu_h1_coll.size();++k){
1055  sprintf(sign,"%s%6i%5s %s%i %s %i %s %i","Line: ",
1056  ddu_h1_coll[k],sign1,ddu_common,ddu_h1_n_coll[k],dmb_common_l1a,ddu_l1a_coll[k],
1057  alct_common_bxn,ddu_bxn_coll[k]);
1058  LogTrace("badData") << sign;
1059  }
1060  LogTrace("badData") << std::endl;
1061  LogTrace("badData") << "||||||||||||||||||||";
1062  LogTrace("badData") << std::endl;
1063  LogTrace("badData") << ddu_h2_coll.size() <<" "<< ddu_common << " "<<ddu_header2 << " "<< "found";
1064  for(unsigned int k=0; k<ddu_h2_coll.size();++k)
1065  LogTrace("badData") << "Line: " << ddu_h2_coll[k];
1066  LogTrace("badData") << std::endl;
1067  LogTrace("badData") << "||||||||||||||||||||";
1068  LogTrace("badData") << std::endl;
1069  LogTrace("badData") << ddu_h3_coll.size() <<" "<< ddu_common << " "<<ddu_header3 << " "<< "found";
1070  for(unsigned int k=0; k<ddu_h3_coll.size();++k)
1071  LogTrace("badData") << "Line: " << ddu_h3_coll[k];
1072  LogTrace("badData") << std::endl;
1073  LogTrace("badData") << "||||||||||||||||||||";
1074  LogTrace("badData") << std::endl;
1075  LogTrace("badData") << ddu_t1_coll.size() <<" "<< ddu_common << " "<<ddu_trail1 << " "<< "found";
1076  for(unsigned int k=0; k<ddu_t1_coll.size();++k)
1077  LogTrace("badData") << "Line: " << ddu_t1_coll[k];
1078  LogTrace("badData") << std::endl;
1079  LogTrace("badData") << "||||||||||||||||||||";
1080  LogTrace("badData") << std::endl;
1081  LogTrace("badData") << ddu_t2_coll.size() <<" "<< ddu_common << " "<<ddu_trail2 << " "<< "found";
1082  for(unsigned int k=0; k<ddu_t2_coll.size();++k)
1083  LogTrace("badData") << "Line: " << ddu_t2_coll[k];
1084  LogTrace("badData") << std::endl;
1085  LogTrace("badData") << "||||||||||||||||||||";
1086  LogTrace("badData") << std::endl;
1087  LogTrace("badData") << ddu_t3_coll.size() <<" "<< ddu_common << " "<<ddu_trail3 << " "<< "found";
1088  for(unsigned int k=0; k<ddu_t3_coll.size();++k)
1089  LogTrace("badData") << "Line: " << ddu_t3_coll[k];
1090  LogTrace("badData") << std::endl;
1091  LogTrace("badData") << "||||||||||||||||||||";
1092  LogTrace("badData") << std::endl;
1093  LogTrace("badData") << dmb_h1_coll.size() <<" "<< dmb_common << " "<<dmb_header1 << " "<< "found";
1094  for(unsigned int k=0; k<dmb_h1_coll.size();++k){
1095  sprintf(sign,"%s%6i%5s %s %s %i %s %i %s %i","Line: ",
1096  dmb_h1_coll[k],sign1,dmb_common,dmb_common_crate,dmb_crate_coll[k],dmb_common_slot,
1097  dmb_slot_coll[k],dmb_common_l1a,dmb_l1a_coll[k]);
1098  LogTrace("badData") << sign;
1099  }
1100  LogTrace("badData") << std::endl;
1101  LogTrace("badData") << "||||||||||||||||||||";
1102  LogTrace("badData") << std::endl;
1103  LogTrace("badData") << dmb_h2_coll.size() <<" "<< dmb_common << " "<<dmb_header2 << " "<< "found";
1104  for(unsigned int k=0; k<dmb_h2_coll.size();++k)
1105  LogTrace("badData") << "Line: " << dmb_h2_coll[k];
1106  LogTrace("badData") << std::endl;
1107  LogTrace("badData") << "||||||||||||||||||||";
1108  LogTrace("badData") << std::endl;
1109  LogTrace("badData") << dmb_t1_coll.size() <<" "<< dmb_common << " "<<dmb_tr1 << " "<< "found";
1110  for(unsigned int k=0; k<dmb_t1_coll.size();++k)
1111  LogTrace("badData") << "Line: " << dmb_t1_coll[k];
1112  LogTrace("badData") << std::endl;
1113  LogTrace("badData") << "||||||||||||||||||||";
1114  LogTrace("badData") << std::endl;
1115  LogTrace("badData") << dmb_t2_coll.size() <<" "<< dmb_common << " "<<dmb_tr2 << " "<< "found";
1116  for(unsigned int k=0; k<dmb_t2_coll.size();++k)
1117  LogTrace("badData") << "Line: " << dmb_t2_coll[k];
1118  LogTrace("badData") << std::endl;
1119  LogTrace("badData") << "||||||||||||||||||||";
1120  LogTrace("badData") << std::endl;
1121  LogTrace("badData") << alct_h1_coll.size() <<" "<< alct_common << " "<<alct_header1 << " "<< "found";
1122  for(unsigned int k=0; k<alct_h1_coll.size();++k){
1123  sprintf(sign,"%s%6i%5s %s %s %i","Line: ",
1124  alct_h1_coll[k],sign1,alct_common,
1125  dmb_common_l1a,alct_l1a_coll[k]);
1126  LogTrace("badData") << sign;
1127  }
1128  LogTrace("badData") << std::endl;
1129  LogTrace("badData") << "||||||||||||||||||||";
1130  LogTrace("badData") << std::endl;
1131  LogTrace("badData") << alct_h2_coll.size() <<" "<< alct_common << " "<<alct_header2 << " "<< "found";
1132  for(unsigned int k=0; k<alct_h2_coll.size();++k){
1133  sprintf(sign,"%s%6i%5s %s %s %i","Line: ",
1134  alct_h1_coll[k],sign1,alct_common,
1135  alct_common_bxn,alct_bxn_coll[k]);
1136  LogTrace("badData") << sign;
1137  }
1138  LogTrace("badData") << std::endl;
1139  LogTrace("badData") << "||||||||||||||||||||";
1140  LogTrace("badData") << std::endl;
1141  LogTrace("badData") << alct_t1_coll.size() <<" "<< alct_common << " "<<alct_tr1 << " "<< "found";
1142  for(unsigned int k=0; k<alct_t1_coll.size();++k){
1143  sprintf(sign,"%s%6i%5s %s %s %i %s %i","Line: ",
1144  alct_t1_coll[k],sign1,alct_common,
1145  alct_common_wcnt1,alct_wcnt1_coll[k],alct_common_wcnt2,alct_wcnt2_coll[k]);
1146 
1147  LogTrace("badData") << sign;
1148  }
1149 
1150  LogTrace("badData") << std::endl;
1151  LogTrace("badData") << "||||||||||||||||||||";
1152  LogTrace("badData") << std::endl;
1153  LogTrace("badData") << tmb_h1_coll.size() <<" "<< tmb_common << " "<<tmb_header1 << " "<< "found";
1154  for(unsigned int k=0; k<tmb_h1_coll.size();++k){
1155  sprintf(sign,"%s%6i%5s %s %s %i","Line: ",
1156  tmb_h1_coll[k],sign1,tmb_common,
1157  dmb_common_l1a,tmb_l1a_coll[k]);
1158  LogTrace("badData") << sign;
1159  }
1160  LogTrace("badData") << std::endl;
1161  LogTrace("badData") << "||||||||||||||||||||";
1162  LogTrace("badData") << std::endl;
1163  LogTrace("badData") << tmb_t1_coll.size() <<" "<< tmb_common << " "<<tmb_tr1 << " "<< "found";
1164  for(unsigned int k=0; k<tmb_t1_coll.size();++k){
1165  sprintf(sign,"%s%6i%5s %s %s %i %s %i","Line: ",
1166  tmb_t1_coll[k],sign1,tmb_common,
1167  alct_common_wcnt1,tmb_wcnt1_coll[k],alct_common_wcnt2,tmb_wcnt2_coll[k]);
1168 
1169  LogTrace("badData") << sign;
1170  }
1171  LogTrace("badData") << std::endl;
1172  LogTrace("badData") << "||||||||||||||||||||";
1173  LogTrace("badData") << std::endl;
1174  LogTrace("badData") << cfeb_t1_coll.size() <<" "<< cfeb_common << " "<<cfeb_tr1 << " "<< "found";
1175  for(unsigned int k=0; k<cfeb_t1_coll.size();++k)
1176  LogTrace("badData") << "Line: " << cfeb_t1_coll[k];
1177  LogTrace("badData") <<"********************************************************************************";
1178 
1179 }
int i
Definition: DBlmapReader.cc:9
int j
Definition: DBlmapReader.cc:9
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
#define LogTrace(id)
int k[5][pyjets_maxn]

Member Data Documentation

bool CSCDCCUnpacker::debug
private

Definition at line 35 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), and produce().

unsigned int CSCDCCUnpacker::errorMask
private

Definition at line 44 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), and produce().

unsigned int CSCDCCUnpacker::examinerMask
private

Definition at line 44 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), and produce().

bool CSCDCCUnpacker::formatedEventDump
private

Definition at line 39 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), produce(), and visual_raw().

bool CSCDCCUnpacker::goodEvent
private

Definition at line 35 of file CSCDCCUnpacker.h.

Referenced by produce().

edm::InputTag CSCDCCUnpacker::inputObjectsTag
private

Definition at line 47 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), and produce().

bool CSCDCCUnpacker::instantiateDQM
private

Definition at line 45 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), and produce().

CSCMonitorInterface* CSCDCCUnpacker::monitor
private

Definition at line 46 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), and produce().

int CSCDCCUnpacker::numOfEvents
private

Definition at line 43 of file CSCDCCUnpacker.h.

Referenced by produce().

bool CSCDCCUnpacker::printEventNumber
private

Definition at line 35 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), and produce().

bool CSCDCCUnpacker::SuppressZeroLCT
private

Suppress zeros LCTs.

Definition at line 41 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), and produce().

bool CSCDCCUnpacker::unpackStatusDigis
private

Definition at line 35 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), and produce().

bool CSCDCCUnpacker::useExaminer
private

Definition at line 35 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), and produce().

bool CSCDCCUnpacker::useFormatStatus
private

Definition at line 36 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), and produce().

bool CSCDCCUnpacker::useSelectiveUnpacking
private

Definition at line 36 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), and produce().

bool CSCDCCUnpacker::visualFEDInspect
private

Visualization of raw data.

Definition at line 39 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), and produce().

bool CSCDCCUnpacker::visualFEDShort
private

Definition at line 39 of file CSCDCCUnpacker.h.

Referenced by CSCDCCUnpacker(), and produce().