#include <EventFilter/CSCRawToDigi/interface/CSCDCCUnpacker.h>
Public Member Functions | |
CSCDCCUnpacker (const edm::ParameterSet &pset) | |
Constructor. | |
void | produce (edm::Event &e, const edm::EventSetup &c) |
Produce digis out of raw data. | |
virtual | ~CSCDCCUnpacker () |
Destructor. | |
Private Attributes | |
bool | debug |
unsigned int | errorMask |
unsigned int | examinerMask |
bool | goodEvent |
edm::InputTag | inputObjectsTag |
bool | instatiateDQM |
CSCMonitorInterface * | monitor |
int | numOfEvents |
bool | printEventNumber |
bool | unpackMTCCData |
bool | unpackStatusDigis |
bool | useExaminer |
bool | useSelectiveUnpacking |
Definition at line 19 of file CSCDCCUnpacker.h.
CSCDCCUnpacker::CSCDCCUnpacker | ( | const edm::ParameterSet & | pset | ) |
Constructor.
Definition at line 68 of file CSCDCCUnpacker.cc.
References debug, errorMask, examinerMask, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), inputObjectsTag, instatiateDQM, monitor, printEventNumber, CSCCLCTData::setDebug(), CSCTMBHeader::setDebug(), CSCEventData::setDebug(), CSCDDUEventData::setDebug(), CSCTMBData::setDebug(), CSCALCTHeader::setDebug(), CSCDCCEventData::setDebug(), CSCRPCData::setDebug(), CSCDDUEventData::setErrorMask(), unpackMTCCData, unpackStatusDigis, useExaminer, and useSelectiveUnpacking.
00068 : 00069 numOfEvents(0) { 00070 printEventNumber = pset.getUntrackedParameter<bool>("PrintEventNumber", true); 00071 debug = pset.getUntrackedParameter<bool>("Debug", false); 00072 useExaminer = pset.getUntrackedParameter<bool>("UseExaminer", true); 00073 examinerMask = pset.getUntrackedParameter<unsigned int>("ExaminerMask",0x7FB7BF6); 00074 instatiateDQM = pset.getUntrackedParameter<bool>("runDQM", false); 00075 errorMask = pset.getUntrackedParameter<unsigned int>("ErrorMask",0xDFCFEFFF); 00076 unpackStatusDigis = pset.getUntrackedParameter<bool>("UnpackStatusDigis", false); 00077 inputObjectsTag = pset.getParameter<edm::InputTag>("InputObjects"); 00078 unpackMTCCData = pset.getUntrackedParameter<bool>("isMTCCData", false); 00079 00080 // Selective unpacking mode will skip only troublesome CSC blocks and not whole DCC/DDU block 00081 useSelectiveUnpacking = pset.getUntrackedParameter<bool>("UseSelectiveUnpacking", false); 00082 00083 if(instatiateDQM) { 00084 monitor = edm::Service<CSCMonitorInterface>().operator->(); 00085 } 00086 00087 produces<CSCWireDigiCollection>("MuonCSCWireDigi"); 00088 produces<CSCStripDigiCollection>("MuonCSCStripDigi"); 00089 produces<CSCComparatorDigiCollection>("MuonCSCComparatorDigi"); 00090 produces<CSCALCTDigiCollection>("MuonCSCALCTDigi"); 00091 produces<CSCCLCTDigiCollection>("MuonCSCCLCTDigi"); 00092 produces<CSCRPCDigiCollection>("MuonCSCRPCDigi"); 00093 produces<CSCCorrelatedLCTDigiCollection>("MuonCSCCorrelatedLCTDigi"); 00094 00095 if (unpackStatusDigis) { 00096 produces<CSCCFEBStatusDigiCollection>("MuonCSCCFEBStatusDigi"); 00097 produces<CSCTMBStatusDigiCollection>("MuonCSCTMBStatusDigi"); 00098 produces<CSCDMBStatusDigiCollection>("MuonCSCDMBStatusDigi"); 00099 produces<CSCALCTStatusDigiCollection>("MuonCSCALCTStatusDigi"); 00100 produces<CSCDDUStatusDigiCollection>("MuonCSCDDUStatusDigi"); 00101 produces<CSCDCCStatusDigiCollection>("MuonCSCDCCStatusDigi"); 00102 } 00103 //CSCAnodeData::setDebug(debug); 00104 CSCALCTHeader::setDebug(debug); 00105 CSCCLCTData::setDebug(debug); 00106 CSCEventData::setDebug(debug); 00107 CSCTMBData::setDebug(debug); 00108 CSCDCCEventData::setDebug(debug); 00109 CSCDDUEventData::setDebug(debug); 00110 CSCTMBHeader::setDebug(debug); 00111 CSCRPCData::setDebug(debug); 00112 CSCDDUEventData::setErrorMask(errorMask); 00113 00114 }
CSCDCCUnpacker::~CSCDCCUnpacker | ( | ) | [virtual] |
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
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
skip the DDU if its data has serious errors define a mask for serious errors
get a reference to chamber data
first process chamber-wide digis such as LCT
adjust crate numbers for MTCC data
default value for all digis not related to cfebs
layer=0 flags entire chamber
check alct data integrity
fill alct digi
ugly kludge to fix wiregroup numbering in MTCC data
adjust by 16
check tmb data integrity
fill correlatedlct and clct digis
ugly kludge to fix wiregroup numbering in MTCC data
adjust by 16
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
ugly kludge to fix wire group numbers for ME3/1, ME4/1 and ME1/3 chambers in MTCC data
adjust by 16
Implements edm::EDProducer.
Definition at line 121 of file CSCDCCUnpacker.cc.
References HcalDataFrameFilter_impl::check(), CSCDCCExaminer::check(), CSCDCCExaminer::crcALCT(), CSCDCCExaminer::crcCFEB(), CSCDCCExaminer::crcTMB(), FEDRawData::data(), data, debug, CSCCrateMap::detId(), CSCDCCExaminer::errName(), errorMask, CSCDCCExaminer::errors(), examinerMask, first, edm::EventSetup::get(), edm::Event::getByLabel(), FEDNumbering::getCSCFEDIds(), goodEvent, header, i, id, inputObjectsTag, instatiateDQM, LogTrace, monitor, CSCDCCExaminer::nERRORS, NULL, numOfEvents, CSCDCCExaminer::output1(), CSCDCCExaminer::output2(), printEventNumber, CSCMonitorInterface::process(), edm::ESHandle< T >::product(), edm::Event::put(), DetId::rawId(), CSCDetId::ring(), CSCDCCExaminer::setMask(), FEDRawData::size(), CSCDetId::station(), unpackMTCCData, unpackStatusDigis, useExaminer, and useSelectiveUnpacking.
00121 { 00122 00124 // Do we really have to do this every event??? 00125 // ... Yes, because framework is more efficient than you are at caching :) 00126 // (But if you want to actually DO something specific WHEN the mapping changes, check out ESWatcher) 00127 edm::ESHandle<CSCCrateMap> hcrate; 00128 c.get<CSCCrateMapRcd>().get(hcrate); 00129 const CSCCrateMap* pcrate = hcrate.product(); 00130 00131 00132 if (printEventNumber) ++numOfEvents; 00133 00135 edm::Handle<FEDRawDataCollection> rawdata; 00136 e.getByLabel(inputObjectsTag, rawdata); 00137 00139 std::auto_ptr<CSCWireDigiCollection> wireProduct(new CSCWireDigiCollection); 00140 std::auto_ptr<CSCStripDigiCollection> stripProduct(new CSCStripDigiCollection); 00141 std::auto_ptr<CSCALCTDigiCollection> alctProduct(new CSCALCTDigiCollection); 00142 std::auto_ptr<CSCCLCTDigiCollection> clctProduct(new CSCCLCTDigiCollection); 00143 std::auto_ptr<CSCComparatorDigiCollection> comparatorProduct(new CSCComparatorDigiCollection); 00144 std::auto_ptr<CSCRPCDigiCollection> rpcProduct(new CSCRPCDigiCollection); 00145 std::auto_ptr<CSCCorrelatedLCTDigiCollection> corrlctProduct(new CSCCorrelatedLCTDigiCollection); 00146 std::auto_ptr<CSCCFEBStatusDigiCollection> cfebStatusProduct(new CSCCFEBStatusDigiCollection); 00147 std::auto_ptr<CSCDMBStatusDigiCollection> dmbStatusProduct(new CSCDMBStatusDigiCollection); 00148 std::auto_ptr<CSCTMBStatusDigiCollection> tmbStatusProduct(new CSCTMBStatusDigiCollection); 00149 std::auto_ptr<CSCDDUStatusDigiCollection> dduStatusProduct(new CSCDDUStatusDigiCollection); 00150 std::auto_ptr<CSCDCCStatusDigiCollection> dccStatusProduct(new CSCDCCStatusDigiCollection); 00151 std::auto_ptr<CSCALCTStatusDigiCollection> alctStatusProduct(new CSCALCTStatusDigiCollection); 00152 00153 // If set selective unpacking mode 00154 // hardcoded examiner mask below to check for DCC and DDU level errors will be used first 00155 // then examinerMask for CSC level errors will be used during unpacking of each CSC block 00156 unsigned long dccBinCheckMask = 0x06080016; 00157 00158 for (int id=FEDNumbering::getCSCFEDIds().first; 00159 id<=FEDNumbering::getCSCFEDIds().second; ++id) { // loop over DCCs 00162 00164 const FEDRawData& fedData = rawdata->FEDData(id); 00165 unsigned long length = fedData.size(); 00166 00167 if (length>=32){ 00168 CSCDCCExaminer* examiner = NULL; 00169 std::stringstream examiner_out, examiner_err; 00170 goodEvent = true; 00171 if (useExaminer) { 00172 // CSCDCCExaminer examiner; 00173 examiner = new CSCDCCExaminer(); 00174 examiner->output1().redirect(examiner_out); 00175 examiner->output2().redirect(examiner_err); 00176 if( examinerMask&0x40000 ) examiner->crcCFEB(1); 00177 if( examinerMask&0x8000 ) examiner->crcTMB (1); 00178 if( examinerMask&0x0400 ) examiner->crcALCT(1); 00179 examiner->output1().show(); 00180 examiner->output2().show(); 00181 examiner->setMask(examinerMask); 00182 const short unsigned int *data = (short unsigned int *)fedData.data(); 00183 00184 /*short unsigned * buf = (short unsigned int *)fedData.data(); 00185 std::cout <<std::endl<<length/2<<" words of data:"<<std::endl; 00186 for (int i=0;i<length/2;i++) { 00187 printf("%04x %04x %04x %04x\n",buf[i+3],buf[i+2],buf[i+1],buf[i]); 00188 i+=3; 00189 }*/ 00190 00191 00192 00193 if( examiner->check(data,long(fedData.size()/2)) < 0 ) { 00194 goodEvent=false; 00195 } 00196 else { 00197 if (useSelectiveUnpacking) goodEvent=!(examiner->errors()&dccBinCheckMask); 00198 else goodEvent=!(examiner->errors()&examinerMask); 00199 } 00200 } 00201 00202 00203 if (goodEvent) { 00205 00206 CSCDCCExaminer * ptrExaminer = examiner; 00207 if (!useSelectiveUnpacking) ptrExaminer = NULL; 00208 00209 CSCDCCEventData dccData((short unsigned int *) fedData.data(),ptrExaminer); 00210 00211 if(instatiateDQM) monitor->process(examiner, &dccData); 00212 00214 const std::vector<CSCDDUEventData> & dduData = dccData.dduData(); 00215 00217 CSCDetId layer(1, 1, 1, 1, 1); 00218 00219 if (unpackStatusDigis) 00220 dccStatusProduct->insertDigi(layer, CSCDCCStatusDigi(dccData.dccHeader().data(), 00221 dccData.dccTrailer().data(), 00222 examiner->errors())); 00223 00224 for (unsigned int iDDU=0; iDDU<dduData.size(); ++iDDU) { // loop over DDUs 00227 if (dduData[iDDU].trailer().errorstat()&errorMask) { 00228 LogTrace("CSCDCCUnpacker|CSCRawToDigi") << "DDU# " << iDDU << " has serious error - no digis unpacked! " << 00229 std::hex << dduData[iDDU].trailer().errorstat(); 00230 continue; // to next iteration of DDU loop 00231 } 00232 00233 if (unpackStatusDigis) dduStatusProduct-> 00234 insertDigi(layer, CSCDDUStatusDigi(dduData[iDDU].header().data(), 00235 dduData[iDDU].trailer().data())); 00236 00238 const std::vector<CSCEventData> & cscData = dduData[iDDU].cscData(); 00239 00240 00241 for (unsigned int iCSC=0; iCSC<cscData.size(); ++iCSC) { // loop over CSCs 00242 00244 int vmecrate = cscData[iCSC].dmbHeader()->crateID(); 00245 int dmb = cscData[iCSC].dmbHeader()->dmbID(); 00246 00248 if (unpackMTCCData) 00249 switch (vmecrate) { 00250 case 0: 00251 vmecrate=23; 00252 break; 00253 case 1: 00254 vmecrate=17; 00255 break; 00256 case 2: 00257 vmecrate=11; 00258 break; 00259 case 3: 00260 vmecrate=10; 00261 break; 00262 default: 00263 break; 00264 } 00265 00266 int icfeb = 0; 00267 int ilayer = 0; 00268 00269 if (debug) 00270 LogTrace ("CSCDCCUnpacker|CSCRawToDigi") << "crate = " << vmecrate << "; dmb = " << dmb; 00271 00272 if ((vmecrate>=1)&&(vmecrate<=60) && (dmb>=1)&&(dmb<=10)&&(dmb!=6)) { 00273 layer = pcrate->detId(vmecrate, dmb,icfeb,ilayer ); 00274 } 00275 else{ 00276 LogTrace ("CSCDCCUnpacker|CSCRawToDigi") << " detID input out of range!!! "; 00277 LogTrace ("CSCDCCUnpacker|CSCRawToDigi") 00278 << " skipping chamber vme= " << vmecrate << " dmb= " << dmb; 00279 continue; // to next iteration of iCSC loop 00280 } 00281 00282 00284 int nalct = cscData[iCSC].dmbHeader()->nalct(); 00285 bool goodALCT=false; 00286 //if (nalct&&(cscData[iCSC].dataPresent>>6&0x1)==1) { 00287 if (nalct&&cscData[iCSC].alctHeader()) { 00288 if (cscData[iCSC].alctHeader()->check()){ 00289 goodALCT=true; 00290 } 00291 else { 00292 LogTrace ("CSCDCCUnpacker|CSCRawToDigi") << 00293 "not storing ALCT digis; alct is bad or not present"; 00294 } 00295 } else { 00296 if (debug) LogTrace ("CSCDCCUnpacker|CSCRawToDigi") << "nALCT==0 !!!"; 00297 } 00298 00300 if (goodALCT){ 00301 std::vector <CSCALCTDigi> alctDigis = 00302 cscData[iCSC].alctHeader()->ALCTDigis(); 00303 00305 if ( unpackMTCCData && (((layer.ring()==3)&&(layer.station()==1))|| 00306 ((layer.ring()==1)&&(layer.station()==3))|| 00307 ((layer.ring()==1)&&(layer.station()==4)))){ 00308 for (int unsigned i=0; i<alctDigis.size(); ++i) { 00309 if (alctDigis[i].isValid()) { 00310 int wiregroup = alctDigis[i].getKeyWG(); 00311 if (wiregroup < 16) LogTrace("CSCDCCUnpacker|CSCRawToDigi") 00312 << "ALCT digi: wire group " << wiregroup 00313 << " is out of range!" << "vme =" 00314 << vmecrate <<" dmb=" <<dmb <<" "<<layer; 00315 else { 00316 wiregroup -= 16; 00317 alctDigis[i].setWireGroup(wiregroup); 00318 } 00319 } 00320 } 00321 } 00322 alctProduct->put(std::make_pair(alctDigis.begin(), alctDigis.end()),layer); 00323 } 00324 00325 00327 int nclct = cscData[iCSC].dmbHeader()->nclct(); 00328 bool goodTMB=false; 00329 // if (nclct&&(cscData[iCSC].dataPresent>>5&0x1)==1) { 00330 if (nclct&&cscData[iCSC].tmbData()) { 00331 if (cscData[iCSC].tmbHeader()->check()){ 00332 if (cscData[iCSC].clctData()->check()) goodTMB=true; 00333 } 00334 else { 00335 LogTrace ("CSCDCCUnpacker|CSCRawToDigi") << 00336 "one of TMB checks failed! not storing TMB digis "; 00337 } 00338 } 00339 else { 00340 if (debug) LogTrace ("CSCDCCUnpacker|CSCRawToDigi") << "nCLCT==0 !!!"; 00341 } 00342 00344 if (goodTMB) { 00345 std::vector <CSCCorrelatedLCTDigi> correlatedlctDigis = 00346 cscData[iCSC].tmbHeader()->CorrelatedLCTDigis(layer.rawId()); 00347 00349 if ( unpackMTCCData && (((layer.ring()==3)&&(layer.station()==1))|| 00350 ((layer.ring()==1)&&(layer.station()==3))|| 00351 ((layer.ring()==1)&&(layer.station()==4)))){ 00352 for (int unsigned i=0; i<correlatedlctDigis.size(); ++i) { 00353 if (correlatedlctDigis[i].isValid()) { 00354 int wiregroup = correlatedlctDigis[i].getKeyWG(); 00355 if (wiregroup < 16) LogTrace("CSCDCCUnpacker|CSCRawToDigi") 00356 << "CorrelatedLCT digi: wire group " << wiregroup 00357 << " is out of range! vme ="<<vmecrate <<" dmb=" <<dmb 00358 <<" "<<layer; 00359 else { 00360 wiregroup -= 16; 00361 correlatedlctDigis[i].setWireGroup(wiregroup); 00362 } 00363 } 00364 } 00365 } 00366 corrlctProduct->put(std::make_pair(correlatedlctDigis.begin(), 00367 correlatedlctDigis.end()),layer); 00368 00369 00370 std::vector <CSCCLCTDigi> clctDigis = 00371 cscData[iCSC].tmbHeader()->CLCTDigis(layer.rawId()); 00372 clctProduct->put(std::make_pair(clctDigis.begin(), clctDigis.end()),layer); 00373 00375 if (cscData[iCSC].tmbData()->checkSize()) { 00376 if (cscData[iCSC].tmbData()->hasRPC()) { 00377 std::vector <CSCRPCDigi> rpcDigis = 00378 cscData[iCSC].tmbData()->rpcData()->digis(); 00379 rpcProduct->put(std::make_pair(rpcDigis.begin(), rpcDigis.end()),layer); 00380 } 00381 } 00382 else LogTrace("CSCDCCUnpacker|CSCRawToDigi") <<" TMBData check size failed!"; 00383 } 00384 00385 00387 if (unpackStatusDigis) { 00388 for ( icfeb = 0; icfeb < 5; ++icfeb ) { 00389 if ( cscData[iCSC].cfebData(icfeb) != NULL ) 00390 cfebStatusProduct-> 00391 insertDigi(layer, cscData[iCSC].cfebData(icfeb)->statusDigi()); 00392 } 00394 dmbStatusProduct->insertDigi(layer, CSCDMBStatusDigi(cscData[iCSC].dmbHeader()->data(), 00395 cscData[iCSC].dmbTrailer()->data())); 00396 if (goodTMB) tmbStatusProduct-> 00397 insertDigi(layer, CSCTMBStatusDigi(cscData[iCSC].tmbHeader()->data(), 00398 cscData[iCSC].tmbData()->tmbTrailer()->data())); 00399 if (goodALCT) alctStatusProduct-> 00400 insertDigi(layer, CSCALCTStatusDigi(cscData[iCSC].alctHeader()->data(), 00401 cscData[iCSC].alctTrailer()->data())); 00402 } 00403 00404 00406 for (int ilayer = 1; ilayer <= 6; ++ilayer) { 00408 // (You have to be kidding. Line 240 in whose universe?) 00409 00410 // Allocate all ME1/1 wire digis to ring 1 00411 layer = pcrate->detId( vmecrate, dmb, 0, ilayer ); 00412 00413 std::vector <CSCWireDigi> wireDigis = cscData[iCSC].wireDigis(ilayer); 00414 00416 if ( unpackMTCCData && (((layer.ring()==3)&&(layer.station()==1))|| 00417 ((layer.ring()==1)&&(layer.station()==3))|| 00418 ((layer.ring()==1)&&(layer.station()==4)))){ 00419 for (int unsigned i=0; i<wireDigis.size(); ++i) { 00420 int wiregroup = wireDigis[i].getWireGroup(); 00421 if (wiregroup <= 16) LogTrace("CSCDCCUnpacker|CSCRawToDigi") 00422 << "Wire digi: wire group " << wiregroup 00423 << " is out of range! vme ="<<vmecrate 00424 <<" dmb=" <<dmb <<" "<<layer; 00425 else { 00426 wiregroup -= 16; 00427 wireDigis[i].setWireGroup(wiregroup); 00428 } 00429 } 00430 } 00431 wireProduct->put(std::make_pair(wireDigis.begin(), wireDigis.end()),layer); 00432 00433 for ( icfeb = 0; icfeb < 5; ++icfeb ) { 00434 layer = pcrate->detId( vmecrate, dmb, icfeb,ilayer ); 00435 if (cscData[iCSC].cfebData(icfeb)) { 00436 std::vector<CSCStripDigi> stripDigis; 00437 cscData[iCSC].cfebData(icfeb)->digis(layer.rawId(),stripDigis); 00438 stripProduct->put(std::make_pair(stripDigis.begin(), 00439 stripDigis.end()),layer); 00440 } 00441 00442 if (goodTMB){ 00443 std::vector <CSCComparatorDigi> comparatorDigis = 00444 cscData[iCSC].clctData()->comparatorDigis(layer.rawId(), icfeb); 00445 // Set cfeb=0, so that ME1/a and ME1/b comparators go to 00446 // ring 1. 00447 layer = pcrate->detId( vmecrate, dmb, 0, ilayer ); 00448 comparatorProduct->put(std::make_pair(comparatorDigis.begin(), 00449 comparatorDigis.end()),layer); 00450 } 00451 } // end of loop over cfebs 00452 } // end of loop over layers 00453 } // end of loop over chambers 00454 } // endof loop over DDUs 00455 } // end of good event 00456 else { 00457 LogTrace("CSCDCCUnpacker|CSCRawToDigi") << 00458 "ERROR! Examiner rejected FED #" << id; 00459 if (examiner) { 00460 for (int i=0; i<examiner->nERRORS; ++i) { 00461 if (((examinerMask&examiner->errors())>>i)&0x1) 00462 LogTrace("CSCDCCUnpacker|CSCRawToDigi")<<examiner->errName(i); 00463 } 00464 if (debug) { 00465 LogTrace("CSCDCCUnpacker|CSCRawToDigi") 00466 << " Examiner errors:0x" << std::hex << examiner->errors() 00467 << " & 0x" << examinerMask 00468 << " = " << (examiner->errors()&examinerMask); 00469 if (examinerMask&examiner->errors()) { 00470 LogTrace("CSCDCCUnpacker|CSCRawToDigi") 00471 << "Examiner output: " << examiner_out.str(); 00472 LogTrace("CSCDCCUnpacker|CSCRawToDigi") 00473 << "Examiner errors: " << examiner_err.str(); 00474 } 00475 } 00476 } 00477 00478 dccStatusProduct->insertDigi(CSCDetId(1,1,1,1,1), CSCDCCStatusDigi(examiner->errors())); 00479 if(instatiateDQM) monitor->process(examiner, NULL); 00480 } 00481 if (examiner!=NULL) delete examiner; 00482 } // end of if fed has data 00483 } // end of loop over DCCs 00484 // put into the event 00485 e.put(wireProduct, "MuonCSCWireDigi"); 00486 e.put(stripProduct, "MuonCSCStripDigi"); 00487 e.put(alctProduct, "MuonCSCALCTDigi"); 00488 e.put(clctProduct, "MuonCSCCLCTDigi"); 00489 e.put(comparatorProduct, "MuonCSCComparatorDigi"); 00490 e.put(rpcProduct, "MuonCSCRPCDigi"); 00491 e.put(corrlctProduct, "MuonCSCCorrelatedLCTDigi"); 00492 if (unpackStatusDigis) 00493 { 00494 e.put(cfebStatusProduct, "MuonCSCCFEBStatusDigi"); 00495 e.put(dmbStatusProduct, "MuonCSCDMBStatusDigi"); 00496 e.put(tmbStatusProduct, "MuonCSCTMBStatusDigi"); 00497 e.put(dduStatusProduct, "MuonCSCDDUStatusDigi"); 00498 e.put(dccStatusProduct, "MuonCSCDCCStatusDigi"); 00499 e.put(alctStatusProduct, "MuonCSCALCTStatusDigi"); 00500 } 00501 if (printEventNumber) LogTrace("CSCDCCUnpacker|CSCRawToDigi") 00502 <<"[CSCDCCUnpacker]: " << numOfEvents << " events processed "; 00503 }
bool CSCDCCUnpacker::debug [private] |
unsigned int CSCDCCUnpacker::errorMask [private] |
unsigned int CSCDCCUnpacker::examinerMask [private] |
bool CSCDCCUnpacker::goodEvent [private] |
edm::InputTag CSCDCCUnpacker::inputObjectsTag [private] |
bool CSCDCCUnpacker::instatiateDQM [private] |
CSCMonitorInterface* CSCDCCUnpacker::monitor [private] |
int CSCDCCUnpacker::numOfEvents [private] |
bool CSCDCCUnpacker::printEventNumber [private] |
bool CSCDCCUnpacker::unpackMTCCData [private] |
bool CSCDCCUnpacker::unpackStatusDigis [private] |
bool CSCDCCUnpacker::useExaminer [private] |
bool CSCDCCUnpacker::useSelectiveUnpacking [private] |