Analyze.
453 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] Analyze #Run: " <<
event.id().run()
454 <<
" #Event: " <<
event.id().event() << endl;
476 if(dtdigis->begin() == dtdigis->end()) {
477 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"Event " <<
nevents <<
" empty." << endl;
483 for (dtLayerId_It=dtdigis->begin(); dtLayerId_It!=dtdigis->end(); dtLayerId_It++) {
484 DTChamberId chId = ((*dtLayerId_It).first).chamberId();
488 hitMap[chId] += (((*dtLayerId_It).second).
second - ((*dtLayerId_It).second).first);
494 map<DTChamberId,int>::const_iterator hitMapIt =
hitMap.begin();
495 map<DTChamberId,int>::const_iterator hitMapEnd =
hitMap.end();
499 for (; hitMapIt != hitMapEnd; ++hitMapIt) {
503 int wh = chId.
wheel();
505 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] Synch noise in chamber: " << chId
506 <<
" with # digis: " << hitMapIt->second << endl;
508 if(chMap.find(wh) == chMap.end()) { chMap[wh] = 0; }
519 map<int,int>::const_iterator chMapIt = chMap.begin();
520 map<int,int>::const_iterator chMapEnd = chMap.end();
521 for (; chMapIt != chMapEnd; ++chMapIt) {
522 wheelHistos[
"SyncNoiseChambs"][(*chMapIt).first]->Fill((*chMapIt).second);
529 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] Synch Noise in event: " <<
nevents;
530 if(
filterSyncNoise)
LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"\tnoisy time-boxes and occupancy will not be filled!" << endl;
537 time_t eventTime = time_t(
event.time().value()>>32);
539 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask|DTSynchNoise")
540 <<
"[DTDigiTask] At least 4 Synch Noisy chambers in Run : " <<
event.id().run()
541 <<
" Lumi : " <<
event.id().luminosityBlock()
542 <<
" Event : " <<
event.id().event()
543 <<
" at time : " << ctime(&eventTime) << endl;
548 stringstream synchNoisyCh;
549 for (;chIt!=chEnd;++chIt) { synchNoisyCh <<
" " << (*chIt); }
550 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask|DTSynchNoise") <<
551 "[DTDigiTask] Chamber List :" << synchNoisyCh.str() << endl;
556 << (
syncNum*0.1) <<
"% sync noise events in the last 1000 events " << endl;
561 bool isSyncNoisy =
false;
564 for (dtLayerId_It=dtdigis->begin(); dtLayerId_It!=dtdigis->end(); ++dtLayerId_It) {
568 DTChamberId chId = ((*dtLayerId_It).first).chamberId();
575 digiIt!=((*dtLayerId_It).second).
second; ++digiIt) {
577 bool isNoisy =
false;
578 bool isFEMasked =
false;
579 bool isTDCMasked =
false;
580 bool isTrigMask =
false;
584 const DTWireId wireId(((*dtLayerId_It).first), (*digiIt).wire());
585 statusMap->cellStatus(wireId, isNoisy, isFEMasked, isTDCMasked, isTrigMask, isDead, isNohv);
589 const DTSuperLayerId dtSLId = ((*dtLayerId_It).first).superlayerId();
590 uint32_t indexSL = dtSLId.
rawId();
592 uint32_t indexCh = dtChId.
rawId();
593 int layer_number=((*dtLayerId_It).first).layer();
599 tTrigMap->get( ((*dtLayerId_It).first).superlayerId(),
606 float t0;
float t0RMS;
607 int tdcTime = (*digiIt).countsTDC();
610 const DTWireId dtWireId(((*dtLayerId_It).first), (*digiIt).wire());
613 tdcTime += int(round(t0));
620 if (( !isNoisy ) && (!isSyncNoisy)) {
624 (
digiHistos.find(histoTag)->second).
find(indexSL)->second->Fill(tdcTime);
634 histoTag =
"OccupancyAllHits_perCh";
635 map<uint32_t, MonitorElement*>::const_iterator mappedHisto =
645 mappedHisto->second->Fill((*digiIt).wire(),(layer_number+(superlayer_number-1)*4)-1);
649 histoTag =
"OccupancyAllHits";
650 map<int, MonitorElement*>::const_iterator histoPerWheel =
653 histoPerWheel->second->Fill(dtChId.
sector(),dtChId.
station());
657 if (tdcTime < inTimeHitsLowerBoundCorr ) {
662 histoTag =
"OccupancyNoise_perCh";
663 map<uint32_t, MonitorElement*>::const_iterator mappedHisto =
666 mappedHisto->second->Fill((*digiIt).wire(),
667 (layer_number+(superlayer_number-1)*4)-1);
671 histoTag =
"OccupancyNoise";
672 map<int, MonitorElement*>::const_iterator histoPerWheel =
675 histoPerWheel->second->Fill(dtChId.
sector(),dtChId.
station());
680 if (tdcTime > inTimeHitsLowerBoundCorr && tdcTime < inTimeHitsUpperBoundCorr) {
684 histoTag =
"OccupancyInTimeHits_perCh";
685 map<uint32_t, MonitorElement*>::const_iterator mappedHisto =
688 mappedHisto->second->Fill((*digiIt).wire(),
689 (layer_number+(superlayer_number-1)*4)-1);
692 histoTag =
"OccupancyInTimeHits";
693 map<int, MonitorElement*>::const_iterator histoPerWheel =
696 histoPerWheel->second->Fill(dtChId.
sector(),dtChId.
station());
DTChamberId chamberId() const
Return the corresponding ChamberId.
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
edm::ESHandle< DTTtrig > tTrigMap
uint32_t rawId() const
get the raw id
U second(std::pair< T, U > const &p)
edm::EDGetTokenT< DTDigiCollection > dtDigiToken_
edm::ESHandle< DTT0 > t0Map
std::map< std::string, std::map< int, MonitorElement * > > wheelHistos
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
float tTrig
tTrig from the DB
int tMax
no needs to be precise. Value from PSets will always be used
int superlayer() const
Return the superlayer number (deprecated method name)
bool doAllHitsOccupancies
std::vector< DTDigi >::const_iterator const_iterator
std::set< DTChamberId > syncNoisyChambers
MonitorElement * nEventMonitor
std::map< DTChamberId, int > hitMap
int station() const
Return the station number.
std::map< std::string, std::map< uint32_t, MonitorElement * > > digiHistos
int wheel() const
Return the wheel number.
std::string triggerSource()
get the L1A source
edm::Handle< LTCDigiCollection > ltcdigis
edm::EDGetTokenT< LTCDigiCollection > ltcDigiCollectionToken_