#include <DQM/DTMonitorModule/interface/DTDigiTask.h>
Definition at line 43 of file DTDigiTask.h.
DTDigiTask::DTDigiTask | ( | const edm::ParameterSet & | ps | ) |
Constructor.
Definition at line 49 of file DTDigiTask.cc.
References checkNoisyChannels, dbe, defaultTmax, defaultTTrig, doAllHitsOccupancies, doInTimeOccupancies, doNoiseOccupancies, doStaticBooking, dtDigiLabel, lat::endl(), filterSyncNoise, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), inTimeHitsLowerBound, inTimeHitsUpperBound, isLocalRun, LogTrace, maxTDCHits, readTTrigDB, resetCycle, subtractT0, syncNum, syncNumTot, tdcRescale, timeBoxGranularity, and tpMode.
00049 { 00050 // switch for the verbosity 00051 LogTrace("DTDQM|DTMonitorModule|DTDigiTask") <<"[DTDigiTask]: Constructor"<<endl; 00052 00053 // The label to retrieve the digis 00054 dtDigiLabel = ps.getParameter<InputTag>("dtDigiLabel"); 00055 // Read the configuration parameters 00056 maxTDCHits = ps.getUntrackedParameter<int>("maxTDCHitsPerChamber",30000); 00057 // Set to true to read the ttrig from DB (useful to determine in-time and out-of-time hits) 00058 readTTrigDB = ps.getUntrackedParameter<bool>("readDB", false); 00059 // Set to true to subtract t0 from test pulses 00060 subtractT0 = ps.getParameter<bool>("performPerWireT0Calibration"); 00061 // Tmax value (TDC counts) 00062 defaultTmax = ps.getParameter<int>("defaultTmax"); 00063 // Switch from static to dinamic histo booking 00064 doStaticBooking = ps.getUntrackedParameter<bool>("staticBooking", true); 00065 // Switch for local/global runs 00066 isLocalRun = ps.getUntrackedParameter<bool>("localrun", true); 00067 // Setting for the reset of the ME after n (= ResetCycle) luminosity sections 00068 resetCycle = ps.getUntrackedParameter<int>("ResetCycle", 3); 00069 // Check the DB of noisy channels 00070 checkNoisyChannels = ps.getUntrackedParameter<bool>("checkNoisyChannels","false"); 00071 // Default TTrig to be used when not reading the TTrig DB 00072 defaultTTrig = ps.getParameter<int>("defaultTtrig"); 00073 inTimeHitsLowerBound = ps.getParameter<int>("inTimeHitsLowerBound"); 00074 inTimeHitsUpperBound = ps.getParameter<int>("inTimeHitsUpperBound"); 00075 timeBoxGranularity = ps.getUntrackedParameter<int>("timeBoxGranularity",4); 00076 tdcRescale = ps.getUntrackedParameter<int>("tdcRescale", 1); 00077 00078 doAllHitsOccupancies = ps.getUntrackedParameter<bool>("doAllHitsOccupancies", true); 00079 doNoiseOccupancies = ps.getUntrackedParameter<bool>("doNoiseOccupancies", false); 00080 doInTimeOccupancies = ps.getUntrackedParameter<bool>("doInTimeOccupancies", false); 00081 00082 // switch on the mode for running on test pulses (different top folder) 00083 tpMode = ps.getUntrackedParameter<bool>("testPulseMode", false); 00084 // switch on/off the filtering of synchronous noise events (cutting on the # of digis) 00085 // time-boxes and occupancy plots are not filled and summary plots are created to report the problem 00086 filterSyncNoise = ps.getUntrackedParameter<bool>("filterSyncNoise", false); 00087 00088 dbe = edm::Service<DQMStore>().operator->(); 00089 00090 syncNumTot = 0; 00091 syncNum = 0; 00092 00093 }
DTDigiTask::~DTDigiTask | ( | ) | [virtual] |
Destructor.
Definition at line 98 of file DTDigiTask.cc.
References lat::endl(), LogTrace, and nevents.
00098 { 00099 LogTrace("DTDQM|DTMonitorModule|DTDigiTask") << "DTDigiTask: analyzed " << nevents << " events" << endl; 00100 00101 }
void DTDigiTask::analyze | ( | const edm::Event & | e, | |
const edm::EventSetup & | c | |||
) | [protected, virtual] |
Analyze.
Implements edm::EDAnalyzer.
Definition at line 407 of file DTDigiTask.cc.
References bookHistos(), DTSuperLayerId::chamberId(), checkNoisyChannels, DTTimeUnits::counts, defaultTTrig, digiHistos, doAllHitsOccupancies, doInTimeOccupancies, doNoiseOccupancies, dtDigiLabel, end, MonitorElement::Fill(), filterSyncNoise, find(), edm::EventSetup::get(), hitMap, int, inTimeHitsLowerBound, inTimeHitsUpperBound, isLocalRun, iter, LogTrace, ltcdigis, maxTDCHits, nEventMonitor, nevents, nSynchNoiseEvents, DetId::rawId(), readTTrigDB, edm::second(), DTChamberId::sector(), DTChamberId::station(), subtractT0, DTSuperLayerId::superlayer(), syncNoisyChambers, syncNum, syncNumTot, t0Map, tMax, triggerSource(), tTrig, tTrigMap, tTrigRMS, DTChamberId::wheel(), and wheelHistos.
00407 { 00408 LogTrace("DTDQM|DTMonitorModule|DTDigiTask") << "[DTDigiTask] analyze" << endl; 00409 00410 nevents++; 00411 nEventMonitor->Fill(nevents); 00412 if (nevents%1000 == 0) { 00413 LogTrace("DTDQM|DTMonitorModule|DTDigiTask") << "[DTDigiTask] Analyze #Run: " << event.id().run() 00414 << " #Event: " << event.id().event() << endl; 00415 } 00416 00417 // Get the ingredients from the event 00418 00419 // Digi collection 00420 edm::Handle<DTDigiCollection> dtdigis; 00421 event.getByLabel(dtDigiLabel, dtdigis); 00422 00423 // LTC digis 00424 if (!isLocalRun) event.getByType(ltcdigis); 00425 00426 // Status map (for noisy channels) 00427 ESHandle<DTStatusFlag> statusMap; 00428 if(checkNoisyChannels) { 00429 LogTrace("DTDQM|DTMonitorModule|DTDigiTask") << " get the map of noisy channels" << endl; 00430 // Get the map of noisy channels 00431 c.get<DTStatusFlagRcd>().get(statusMap); 00432 } 00433 00434 string histoTag; 00435 00436 00437 // Check if the digi container is empty 00438 if(dtdigis->begin() == dtdigis->end()) { 00439 LogTrace("DTDQM|DTMonitorModule|DTDigiTask") << "Event " << nevents << " empty." << endl; 00440 } 00441 00442 if (filterSyncNoise) { // dosync 00443 LogTrace("DTDQM|DTMonitorModule|DTDigiTask") << " Filter Sync Noise" << endl; 00444 00445 // Count the # of digis per chamber 00446 DTDigiCollection::DigiRangeIterator dtLayerId_It; 00447 for (dtLayerId_It=dtdigis->begin(); dtLayerId_It!=dtdigis->end(); dtLayerId_It++) { 00448 DTChamberId chId = ((*dtLayerId_It).first).chamberId(); 00449 if(hitMap.find(chId) == hitMap.end()) {// new chamber 00450 hitMap[chId] = 0; 00451 } 00452 hitMap[chId] += (((*dtLayerId_It).second).second - ((*dtLayerId_It).second).first); 00453 } 00454 00455 00456 // check chamber with # of digis above threshold and flag them as noisy 00457 for (map<DTChamberId,int>::iterator iter = hitMap.begin(); iter != hitMap.end(); iter++) { 00458 if((iter->second) > maxTDCHits) { 00459 syncNoisyChambers.insert(iter->first); 00460 nSynchNoiseEvents[iter->first]++;// FIXME check and optimize 00461 // FIXME: log noisy event in this chamber 00462 wheelHistos["SyncNoiseEvents"][(*iter).first.wheel()]->setBinContent((*iter).first.sector(),(*iter).first.station(), 00463 (double)nSynchNoiseEvents[iter->first]/(double)nevents); 00464 } 00465 } 00466 00467 // clear the map of # of digis per chamber: not needed anymore 00468 hitMap.clear(); 00469 00470 // log 00471 if (syncNoisyChambers.size() != 0) { 00472 LogVerbatim("DTDQM|DTMonitorModule|DTDigiTask") << "[DTDigiTask]** Synch Noise in event: " << nevents 00473 << " noisy time-boxes and occupancy will not be filled!" << endl; 00474 syncNumTot++; 00475 syncNum++; 00476 } 00477 00478 if (nevents%1000 == 0) { 00479 LogVerbatim("DTDQM|DTMonitorModule|DTDigiTask") << (syncNumTot*100./nevents) << "% sync noise events since the beginning \n" 00480 << (syncNum*0.1) << "% sync noise events in the last 1000 events " << endl; 00481 syncNum = 0; 00482 } 00483 } 00484 00485 bool isSyncNoisy = false; 00486 00487 DTDigiCollection::DigiRangeIterator dtLayerId_It; 00488 for (dtLayerId_It=dtdigis->begin(); dtLayerId_It!=dtdigis->end(); ++dtLayerId_It) { // Loop over layers 00489 isSyncNoisy = false; 00490 // check if chamber labeled as synch noisy 00491 if (filterSyncNoise) { 00492 DTChamberId chId = ((*dtLayerId_It).first).chamberId(); 00493 if(syncNoisyChambers.find(chId) != syncNoisyChambers.end()) { 00494 isSyncNoisy = true; 00495 } 00496 } 00497 00498 for (DTDigiCollection::const_iterator digiIt = ((*dtLayerId_It).second).first; 00499 digiIt!=((*dtLayerId_It).second).second; ++digiIt) { // Loop over all digis 00500 00501 bool isNoisy = false; 00502 bool isFEMasked = false; 00503 bool isTDCMasked = false; 00504 bool isTrigMask = false; 00505 bool isDead = false; 00506 bool isNohv = false; 00507 if(checkNoisyChannels) { 00508 const DTWireId wireId(((*dtLayerId_It).first), (*digiIt).wire()); 00509 statusMap->cellStatus(wireId, isNoisy, isFEMasked, isTDCMasked, isTrigMask, isDead, isNohv); 00510 } 00511 00512 00513 00514 // Get the useful IDs 00515 const DTSuperLayerId dtSLId = ((*dtLayerId_It).first).superlayerId(); 00516 uint32_t indexSL = dtSLId.rawId(); 00517 const DTChamberId dtChId = dtSLId.chamberId(); 00518 uint32_t indexCh = dtChId.rawId(); 00519 int layer_number=((*dtLayerId_It).first).layer(); 00520 int superlayer_number=dtSLId.superlayer(); 00521 const DTLayerId dtLId = (*dtLayerId_It).first; 00522 00523 // Read the ttrig DB or set a rough value from config 00524 // ttrig and rms are TDC counts 00525 if (readTTrigDB) 00526 tTrigMap->get( ((*dtLayerId_It).first).superlayerId(), 00527 tTrig, tTrigRMS, DTTimeUnits::counts); 00528 else tTrig = defaultTTrig; 00529 00530 int inTimeHitsLowerBoundCorr = int(round(tTrig)) - inTimeHitsLowerBound; 00531 int inTimeHitsUpperBoundCorr = int(round(tTrig)) + tMax + inTimeHitsUpperBound; 00532 00533 float t0; float t0RMS; 00534 int tdcTime = (*digiIt).countsTDC(); 00535 00536 if (subtractT0) { 00537 const DTWireId dtWireId(((*dtLayerId_It).first), (*digiIt).wire()); 00538 // t0s and rms are TDC counts 00539 t0Map->get(dtWireId, t0, t0RMS, DTTimeUnits::counts) ; 00540 tdcTime += int(round(t0)); 00541 } 00542 00543 00544 00545 // Fill Time-Boxes 00546 // NOTE: avoid to fill TB and PhotoPeak with noise. Occupancy are filled anyway 00547 if (( !isNoisy ) && (!isSyncNoisy)) { // Discard noisy channels 00548 // TimeBoxes per SL 00549 histoTag = "TimeBox" + triggerSource(); 00550 if (digiHistos[histoTag].find(indexSL) == digiHistos[histoTag].end()) 00551 bookHistos( dtSLId, string("TimeBoxes"), histoTag ); 00552 (digiHistos.find(histoTag)->second).find(indexSL)->second->Fill(tdcTime); 00553 00554 // FIXME: remove the time distribution for the after-pulses 00555 // 2nd - 1st (CathodPhotoPeak) per SL 00556 // if ( (*digiIt).number() == 1 ) { 00557 00558 // DTDigiCollection::const_iterator firstDigiIt = digiIt; 00559 // firstDigiIt--; 00560 00561 // histoTag = "CathodPhotoPeak"; 00562 // if (digiHistos[histoTag].find(indexSL) == digiHistos[histoTag].end()) 00563 // bookHistos( dtSLId, string("CathodPhotoPeaks"), histoTag ); 00564 // (digiHistos.find(histoTag)->second).find(indexSL)->second->Fill((*digiIt).countsTDC()- 00565 // (*firstDigiIt).countsTDC()); 00566 // } 00567 } 00568 00569 // Fill Occupancies 00570 if (!isSyncNoisy) { // Discard synch noisy channels 00571 00572 if (doAllHitsOccupancies) { // fill occupancies for all hits 00573 //Occupancies per chamber & layer 00574 histoTag = "OccupancyAllHits_perCh"; 00575 map<uint32_t, MonitorElement*>::const_iterator mappedHisto = 00576 digiHistos[histoTag].find(indexCh); 00577 if (mappedHisto == digiHistos[histoTag].end()) { // dynamic booking 00578 bookHistos(dtChId, string("Occupancies"), histoTag); 00579 mappedHisto = digiHistos[histoTag].find(indexCh); 00580 } 00581 mappedHisto->second->Fill((*digiIt).wire(),(layer_number+(superlayer_number-1)*4)-1); 00582 00583 00584 // Fill the chamber occupancy 00585 histoTag = "OccupancyAllHits"; 00586 map<int, MonitorElement*>::const_iterator histoPerWheel = 00587 wheelHistos[histoTag].find(dtChId.wheel()); 00588 if(histoPerWheel == wheelHistos[histoTag].end()) { // dynamic booking 00589 bookHistos(dtChId.wheel(), string("Occupancies"), histoTag); 00590 histoPerWheel = wheelHistos[histoTag].find(dtChId.wheel()); 00591 } 00592 histoPerWheel->second->Fill(dtChId.sector(),dtChId.station()); // FIXME: normalize to # of layers 00593 00594 00595 } 00596 00597 if(doNoiseOccupancies) { // fill occupancies for hits before the ttrig 00598 if (tdcTime < inTimeHitsLowerBoundCorr ) { 00599 // FIXME: what about tdcTime > inTimeHitsUpperBoundCorr ??? 00600 00601 // Noise: Before tTrig 00602 //Occupancies Noise per chamber & layer 00603 histoTag = "OccupancyNoise_perCh"; 00604 map<uint32_t, MonitorElement*>::const_iterator mappedHisto = 00605 digiHistos[histoTag].find(indexCh); 00606 if(mappedHisto == digiHistos[histoTag].end()) { 00607 bookHistos(dtChId, string("Occupancies"), histoTag); 00608 mappedHisto = digiHistos[histoTag].find(indexCh); 00609 } 00610 mappedHisto->second->Fill((*digiIt).wire(), 00611 (layer_number+(superlayer_number-1)*4)-1); 00612 00613 // Fill the chamber occupancy 00614 histoTag = "OccupancyNoise"; 00615 map<int, MonitorElement*>::const_iterator histoPerWheel = 00616 wheelHistos[histoTag].find(dtChId.wheel()); 00617 if(histoPerWheel == wheelHistos[histoTag].end()) { // dynamic booking 00618 bookHistos(dtChId.wheel(), string("Occupancies"), histoTag); 00619 histoPerWheel = wheelHistos[histoTag].find(dtChId.wheel()); 00620 } 00621 histoPerWheel->second->Fill(dtChId.sector(),dtChId.station()); // FIXME: normalize to # of layers 00622 00623 } 00624 } 00625 00626 if(doInTimeOccupancies) { // fill occpunacies for in-time hits only 00627 if (tdcTime > inTimeHitsLowerBoundCorr && tdcTime < inTimeHitsUpperBoundCorr) { 00628 // Physical hits: within the time window 00629 00630 //Occupancies Signal per chamber & layer 00631 histoTag = "OccupancyInTimeHits_perCh"; 00632 map<uint32_t, MonitorElement*>::const_iterator mappedHisto = 00633 digiHistos[histoTag].find(indexCh); 00634 if(mappedHisto == digiHistos[histoTag].end()) { 00635 bookHistos(dtChId, string("Occupancies"), histoTag); 00636 mappedHisto = digiHistos[histoTag].find(indexCh); 00637 } 00638 mappedHisto->second->Fill((*digiIt).wire(), 00639 (layer_number+(superlayer_number-1)*4)-1); 00640 00641 // Fill the chamber occupancy 00642 histoTag = "OccupancyInTimeHits"; 00643 map<int, MonitorElement*>::const_iterator histoPerWheel = 00644 wheelHistos[histoTag].find(dtChId.wheel()); 00645 if(histoPerWheel == wheelHistos[histoTag].end()) { // dynamic booking 00646 bookHistos(dtChId.wheel(), string("Occupancies"), histoTag); 00647 histoPerWheel = wheelHistos[histoTag].find(dtChId.wheel()); 00648 } 00649 histoPerWheel->second->Fill(dtChId.sector(),dtChId.station()); // FIXME: normalize to # of layers 00650 00651 } 00652 } 00653 } 00654 } 00655 } 00656 00657 syncNoisyChambers.clear(); 00658 }
void DTDigiTask::beginJob | ( | const edm::EventSetup & | c | ) | [protected, virtual] |
BeginJob.
Reimplemented from edm::EDAnalyzer.
Definition at line 114 of file DTDigiTask.cc.
References lat::endl(), edm::EventSetup::get(), LogTrace, muonGeom, and nevents.
00114 { 00115 LogTrace("DTDQM|DTMonitorModule|DTDigiTask") <<"[DTDigiTask]: BeginJob"<<endl; 00116 00117 nevents = 0; 00118 00119 // Get the geometry 00120 context.get<MuonGeometryRecord>().get(muonGeom); 00121 }
void DTDigiTask::beginLuminosityBlock | ( | edm::LuminosityBlock const & | lumiSeg, | |
edm::EventSetup const & | context | |||
) | [protected, virtual] |
To reset the MEs.
Reimplemented from edm::EDAnalyzer.
Definition at line 185 of file DTDigiTask.cc.
References digiHistos, lat::endl(), histo, combine::histos, edm::LuminosityBlock::id(), LogTrace, edm::LuminosityBlockID::luminosityBlock(), resetCycle, and wheelHistos.
00185 { 00186 LogTrace("DTDQM|DTMonitorModule|DTDigiTask") <<"[DTDigiTask]: Begin of LS transition"<<endl; 00187 00188 // Reset the MonitorElements every n (= ResetCycle) Lumi Blocks 00189 if(lumiSeg.id().luminosityBlock() % resetCycle == 0) { 00190 LogVerbatim("DTDQM|DTMonitorModule|DTDigiTask") 00191 <<"[DTDigiTask]: Reset at the LS transition : "<<lumiSeg.id().luminosityBlock()<<endl; 00192 // Loop over all ME 00193 for(map<string, map<uint32_t, MonitorElement*> > ::const_iterator histo = digiHistos.begin(); 00194 histo != digiHistos.end(); histo++) { 00195 for(map<uint32_t, MonitorElement*> ::const_iterator ht = (*histo).second.begin(); 00196 ht != (*histo).second.end(); ht++) { 00197 (*ht).second->Reset(); 00198 } 00199 } 00200 00201 // loop over wheel summaries 00202 for(map<string, map<int, MonitorElement*> > ::const_iterator histos = wheelHistos.begin(); 00203 histos != wheelHistos.end(); ++histos) { 00204 for(map<int, MonitorElement*>::const_iterator histo = (*histos).second.begin(); 00205 histo != (*histos).second.end(); ++histo) { 00206 (*histo).second->Reset(); 00207 } 00208 } 00209 } 00210 00211 }
void DTDigiTask::beginRun | ( | const edm::Run & | run, | |
const edm::EventSetup & | context | |||
) | [protected, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 124 of file DTDigiTask.cc.
References DQMStore::bookFloat(), bookHistos(), dbe, defaultTmax, doAllHitsOccupancies, doInTimeOccupancies, doNoiseOccupancies, doStaticBooking, lat::endl(), filterSyncNoise, edm::EventSetup::get(), isLocalRun, LogTrace, nEventMonitor, readTTrigDB, DQMStore::setCurrentFolder(), sl, st, subtractT0, t0Map, tMax, topFolder(), and tTrigMap.
00124 { 00125 LogTrace("DTDQM|DTMonitorModule|DTDigiTask") <<"[DTDigiTask]: begin run"<<endl; 00126 00127 // tTrig 00128 if (readTTrigDB) 00129 context.get<DTTtrigRcd>().get(tTrigMap); 00130 // t0s 00131 if (subtractT0) 00132 context.get<DTT0Rcd>().get(t0Map); 00133 // FIXME: tMax (not yet from the DB) 00134 tMax = defaultTmax; 00135 00136 // ---------------------------------------------------------------------- 00137 if(doStaticBooking) { // Static histo booking 00138 // book the event counter 00139 dbe->setCurrentFolder(topFolder()); 00140 nEventMonitor = dbe->bookFloat("nProcessedEvents"); 00141 for(int wh = -2; wh <= 2; ++wh) { // loop over wheels 00142 if(doAllHitsOccupancies) bookHistos(wh, string("Occupancies"), "OccupancyAllHits"); 00143 if(doNoiseOccupancies) bookHistos(wh, string("Occupancies"), "OccupancyNoiseHits"); 00144 if(doInTimeOccupancies) bookHistos(wh, string("Occupancies"), "OccupancyInTimeHits"); 00145 00146 if(filterSyncNoise) bookHistos(wh, string("SynchNoise"), "SyncNoiseEvents" ); 00147 for(int st = 1; st <= 4; ++st) { // loop over stations 00148 for(int sect = 1; sect <= 14; ++sect) { // loop over sectors 00149 if((sect == 13 || sect == 14) && st != 4) continue; 00150 // Get the chamber ID 00151 const DTChamberId dtChId(wh,st,sect); 00152 00153 // Occupancies 00154 if (doAllHitsOccupancies) 00155 bookHistos(dtChId, string("Occupancies"), "OccupancyAllHits_perCh"); 00156 if(doNoiseOccupancies) 00157 bookHistos(dtChId, string("Occupancies"), "OccupancyNoise_perCh"); 00158 if(doInTimeOccupancies) 00159 bookHistos(dtChId, string("Occupancies"), "OccupancyInTimeHits_perCh" ); 00160 00161 00162 00163 00164 for(int sl = 1; sl <= 3; ++sl) { // Loop over SLs 00165 if(st == 4 && sl == 2) continue; 00166 const DTSuperLayerId dtSLId(wh,st,sect,sl); 00167 if(isLocalRun) { 00168 bookHistos(dtSLId, string("TimeBoxes"), "TimeBox"); 00169 } else { 00170 // TimeBoxes for different triggers 00171 bookHistos(dtSLId, string("TimeBoxes"), "TimeBoxDTonly"); 00172 bookHistos(dtSLId, string("TimeBoxes"), "TimeBoxNoDT"); 00173 bookHistos(dtSLId, string("TimeBoxes"), "TimeBoxDTalso"); 00174 } 00175 } 00176 } 00177 } 00178 } 00179 } 00180 }
void DTDigiTask::bookHistos | ( | const int | wheelId, | |
std::string | folder, | |||
std::string | histoTag | |||
) | [protected] |
void DTDigiTask::bookHistos | ( | const DTChamberId & | dtCh, | |
std::string | folder, | |||
std::string | histoTag | |||
) | [protected] |
void DTDigiTask::bookHistos | ( | const DTSuperLayerId & | dtSL, | |
std::string | folder, | |||
std::string | histoTag | |||
) | [protected] |
Endjob.
Reimplemented from edm::EDAnalyzer.
Definition at line 106 of file DTDigiTask.cc.
References lat::endl(), and LogTrace.
00106 { 00107 LogTrace("DTDQM|DTMonitorModule|DTDigiTask") <<"[DTDigiTask] endjob called!"<<endl; 00108 00109 }
string DTDigiTask::topFolder | ( | ) | const [private] |
Definition at line 685 of file DTDigiTask.cc.
References tpMode.
Referenced by beginRun().
00685 { 00686 if(tpMode) return string("DT/10-TestPulses/"); 00687 return string("DT/01-Digi/"); 00688 }
string DTDigiTask::triggerSource | ( | ) | [protected] |
get the L1A source
Definition at line 661 of file DTDigiTask.cc.
References isLocalRun, and ltcdigis.
Referenced by analyze().
00661 { 00662 00663 string l1ASource; 00664 00665 if (!isLocalRun) { 00666 for (std::vector<LTCDigi>::const_iterator ltc_it = ltcdigis->begin(); ltc_it != ltcdigis->end(); ltc_it++){ 00667 int otherTriggerSum=0; 00668 for (int i = 1; i < 6; i++) 00669 otherTriggerSum += int((*ltc_it).HasTriggered(i)); 00670 00671 if ((*ltc_it).HasTriggered(0) && otherTriggerSum == 0) 00672 l1ASource = "DTonly"; 00673 else if (!(*ltc_it).HasTriggered(0)) 00674 l1ASource = "NoDT"; 00675 else if ((*ltc_it).HasTriggered(0) && otherTriggerSum > 0) 00676 l1ASource = "DTalso"; 00677 } 00678 } 00679 00680 return l1ASource; 00681 00682 }
bool DTDigiTask::checkNoisyChannels [private] |
DQMStore* DTDigiTask::dbe [private] |
int DTDigiTask::defaultTmax [private] |
int DTDigiTask::defaultTTrig [private] |
std::map<std::string, std::map<uint32_t, MonitorElement*> > DTDigiTask::digiHistos [private] |
bool DTDigiTask::doAllHitsOccupancies [private] |
bool DTDigiTask::doInTimeOccupancies [private] |
bool DTDigiTask::doNoiseOccupancies [private] |
bool DTDigiTask::doStaticBooking [private] |
edm::InputTag DTDigiTask::dtDigiLabel [private] |
bool DTDigiTask::filterSyncNoise [private] |
std::map<DTChamberId,int> DTDigiTask::hitMap [private] |
int DTDigiTask::inTimeHitsLowerBound [private] |
int DTDigiTask::inTimeHitsUpperBound [private] |
bool DTDigiTask::isLocalRun [private] |
Definition at line 125 of file DTDigiTask.h.
Referenced by analyze(), beginRun(), DTDigiTask(), and triggerSource().
edm::Handle<LTCDigiCollection> DTDigiTask::ltcdigis [private] |
int DTDigiTask::maxTDCHits [private] |
edm::ESHandle<DTGeometry> DTDigiTask::muonGeom [private] |
MonitorElement* DTDigiTask::nEventMonitor [private] |
int DTDigiTask::nevents [private] |
std::map<DTChamberId, int> DTDigiTask::nSynchNoiseEvents [private] |
bool DTDigiTask::readTTrigDB [private] |
int DTDigiTask::resetCycle [private] |
Definition at line 127 of file DTDigiTask.h.
Referenced by beginLuminosityBlock(), and DTDigiTask().
bool DTDigiTask::subtractT0 [private] |
std::set<DTChamberId> DTDigiTask::syncNoisyChambers [private] |
int DTDigiTask::syncNum [private] |
int DTDigiTask::syncNumTot [private] |
edm::ESHandle<DTT0> DTDigiTask::t0Map [private] |
int DTDigiTask::tdcRescale [private] |
int DTDigiTask::timeBoxGranularity [private] |
int DTDigiTask::tMax [private] |
no needs to be precise. Value from PSets will always be used
Definition at line 84 of file DTDigiTask.h.
Referenced by analyze(), and beginRun().
bool DTDigiTask::tpMode [private] |
float DTDigiTask::tTrig [private] |
edm::ESHandle<DTTtrig> DTDigiTask::tTrigMap [private] |
float DTDigiTask::tTrigRMS [private] |
std::map<std::string, std::map<int, MonitorElement*> > DTDigiTask::wheelHistos [private] |