48 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask]: Constructor" << endl;
51 dtDigiToken_ = consumes<DTDigiCollection>(
67 ltcDigiCollectionToken_ = consumes<LTCDigiCollection>(
77 inTimeHitsLowerBound = ps.
getParameter<
int>(
"inTimeHitsLowerBound");
78 inTimeHitsUpperBound = ps.
getParameter<
int>(
"inTimeHitsUpperBound");
107 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"DTDigiTask: analyzed " <<
nevents <<
" events" << endl;
115 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] endjob called!"<<endl;
123 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask]: BeginJob"<<endl;
130 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask]: begin run" << endl;
148 if(doStaticBooking) {
150 dbe->setCurrentFolder(
"DT/EventInfo/Counters");
151 nEventMonitor = dbe->bookFloat(tpMode ?
"nProcessedEventsDigiTP" :
"nProcessedEventsDigi" );
152 dbe->setCurrentFolder(topFolder());
153 for(
int wh = -2; wh <= 2; ++wh) {
154 if(doAllHitsOccupancies)
bookHistos(wh,
string(
"Occupancies"),
"OccupancyAllHits");
155 if(doNoiseOccupancies)
bookHistos(wh,
string(
"Occupancies"),
"OccupancyNoiseHits");
156 if(doInTimeOccupancies)
bookHistos(wh,
string(
"Occupancies"),
"OccupancyInTimeHits");
158 if(lookForSyncNoise || filterSyncNoise) {
159 bookHistos(wh,
string(
"SynchNoise"),
"SyncNoiseEvents");
160 bookHistos(wh,
string(
"SynchNoise"),
"SyncNoiseChambs");
163 for(
int st = 1; st <= 4; ++st) {
164 for(
int sect = 1; sect <= 14; ++sect) {
165 if((sect == 13 || sect == 14) && st != 4)
continue;
170 if (doAllHitsOccupancies) {
171 bookHistos(dtChId,
string(
"Occupancies"),
"OccupancyAllHits_perCh");
173 channelsMap(dtChId,
"OccupancyAllHits_perCh");
175 if(doNoiseOccupancies)
176 bookHistos(dtChId,
string(
"Occupancies"),
"OccupancyNoise_perCh");
177 if(doInTimeOccupancies)
178 bookHistos(dtChId,
string(
"Occupancies"),
"OccupancyInTimeHits_perCh");
183 for(
int sl = 1; sl <= 3; ++sl) {
184 if(st == 4 && sl == 2)
continue;
187 bookHistos(dtSLId,
string(
"TimeBoxes"),
"TimeBox");
190 bookHistos(dtSLId,
string(
"TimeBoxes"),
"TimeBoxDTonly");
191 bookHistos(dtSLId,
string(
"TimeBoxes"),
"TimeBoxNoDT");
192 bookHistos(dtSLId,
string(
"TimeBoxes"),
"TimeBoxDTalso");
206 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask]: Begin of LS transition" << endl;
210 if(lumiBlock % resetCycle == 0) {
212 <<
"[DTDigiTask]: Reset at the LS transition : "
213 << lumiBlock << endl;
215 map<string,map<uint32_t,MonitorElement*> >::const_iterator histosIt = digiHistos.begin();
216 map<string,map<uint32_t,MonitorElement*> >::const_iterator histosEnd = digiHistos.end();
217 for(;histosIt != histosEnd ; ++histosIt) {
218 map<uint32_t,MonitorElement*>::const_iterator histoIt = (*histosIt).second.begin();
219 map<uint32_t,MonitorElement*>::const_iterator histoEnd = (*histosIt).second.end();
220 for(;histoIt != histoEnd; ++histoIt) { (*histoIt).second->Reset(); }
224 for(
int wh=-2; wh<=2; wh++) {
225 for(
int sect=1; sect<=14; sect++) {
226 for(
int st=1; st<=4; st++) {
227 if( (sect == 13 || sect == 14) && st != 4 ) {
continue;}
229 channelsMap(dtChId,
"OccupancyAllHits_perCh");
235 map<string,map<int,MonitorElement*> >::const_iterator whHistosIt = wheelHistos.begin();
236 map<string,map<int,MonitorElement*> >::const_iterator whHistosEnd = wheelHistos.end();
237 for(; whHistosIt != whHistosEnd ; ++whHistosIt) {
238 if ((*whHistosIt).first.find(
"Sync") == string::npos) {
239 map<int,MonitorElement*>::const_iterator histoIt = (*whHistosIt).second.begin();
240 map<int,MonitorElement*>::const_iterator histoEnd = (*whHistosIt).second.end();
241 for(;histoIt != histoEnd; ++histoIt) { (*histoIt).second->Reset(); }
253 stringstream wheel; wheel << dtSL.
wheel();
255 stringstream sector; sector << dtSL.
sector();
256 stringstream superLayer; superLayer << dtSL.
superlayer();
257 dbe->setCurrentFolder(topFolder() +
"Wheel" + wheel.str() +
258 "/Sector" + sector.str() +
259 "/Station" + station.str());
262 string histoName = histoTag
264 +
"_St" + station.str()
265 +
"_Sec" + sector.str()
266 +
"_SL" + superLayer.str();
268 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask")
269 <<
"[DTDigiTask]: booking SL histo:" << histoName
270 <<
" (tag: " << histoTag
271 <<
") folder: " << topFolder() +
"Wheel" + wheel.str() +
272 "/Station" + station.str() +
273 "/Sector" + sector.str() +
"/" + folder << endl;
279 else tTrig = defaultTTrig;
282 if ( folder ==
"TimeBoxes") {
283 string histoTitle = histoName +
" (TDC Counts)";
286 (digiHistos[histoTag])[dtSL.
rawId()] =
287 dbe->book1D(histoName,histoTitle, maxTDCCounts/timeBoxGranularity, 0, maxTDCCounts);
288 if(doLayerTimeBoxes) {
289 for(
int layer = 1; layer != 5; ++layer) {
291 stringstream layerHistoName; layerHistoName << histoName <<
"_L" << layer;
292 (digiHistos[histoTag])[layerId.rawId()] =
293 dbe->book1D(layerHistoName.str(),layerHistoName.str(), maxTDCCounts/timeBoxGranularity, 0, maxTDCCounts);
298 (digiHistos[histoTag])[dtSL.
rawId()] =
299 dbe->book1D(histoName,histoTitle, 3*tMax/timeBoxGranularity, tTrig-tMax, tTrig+2*tMax);
300 if(doLayerTimeBoxes) {
302 for(
int layer = 1; layer != 5; ++layer) {
304 stringstream layerHistoName; layerHistoName << histoName <<
"_L" << layer;
305 (digiHistos[histoTag])[layerId.rawId()] =
306 dbe->book1D(layerHistoName.str(),layerHistoName.str(), 3*tMax/timeBoxGranularity, tTrig-tMax, tTrig+2*tMax);
312 if ( folder ==
"CathodPhotoPeaks" ) {
313 dbe->setCurrentFolder(topFolder() +
"Wheel" + wheel.str() +
314 "/Sector" + sector.str() +
315 "/Station" + station.str() +
"/" + folder);
316 (digiHistos[histoTag])[dtSL.
rawId()] = dbe->book1D(histoName,histoName,500,0,1000);
326 stringstream wheel; wheel << dtCh.
wheel();
328 stringstream sector; sector << dtCh.
sector();
329 dbe->setCurrentFolder(topFolder() +
"Wheel" + wheel.str() +
330 "/Sector" + sector.str() +
331 "/Station" + station.str());
334 string histoName = histoTag
336 +
"_St" + station.str()
337 +
"_Sec" + sector.str();
340 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask")
341 <<
"[DTDigiTask]: booking chamber histo:"
342 <<
" (tag: " << histoTag
343 <<
") folder: " << topFolder() +
"Wheel" + wheel.str() +
344 "/Station" + station.str() +
345 "/Sector" + sector.str() << endl;
348 if (folder ==
"Occupancies") {
350 const DTChamber* dtchamber = muonGeom->chamber(dtCh);
351 const std::vector<const DTSuperLayer*> dtSupLylist = dtchamber->
superLayers();
352 std::vector<const DTSuperLayer*>::const_iterator suly = dtSupLylist.begin();
353 std::vector<const DTSuperLayer*>::const_iterator sulyend = dtSupLylist.end();
359 while(suly != sulyend) {
360 const std::vector<const DTLayer*> dtLyList = (*suly)->layers();
361 std::vector<const DTLayer*>::const_iterator ly = dtLyList.begin();
362 std::vector<const DTLayer*>::const_iterator lyend = dtLyList.end();
363 stringstream superLayer; superLayer << (*suly)->id().superlayer();
366 nWires = muonGeom->layer((*ly)->id())->specificTopology().channels();
367 firstWire = muonGeom->layer((*ly)->id())->specificTopology().firstChannel();
368 stringstream layer; layer << (*ly)->id().layer();
369 string histoName_layer = histoName +
"_SL" + superLayer.str() +
"_L" + layer.str();
370 if(histoTag ==
"OccupancyAllHits_perL"
371 || histoTag ==
"OccupancyNoise_perL"
372 || histoTag ==
"OccupancyInTimeHits_perL")
373 (digiHistos[histoTag])[(*ly)->id().rawId()] = dbe->book1D(histoName_layer,histoName_layer,nWires,firstWire,nWires+firstWire);
375 if((nWires+firstWire) > nWires_max) nWires_max = (nWires+firstWire);
381 if(histoTag !=
"OccupancyAllHits_perL"
382 && histoTag !=
"OccupancyNoise_perL"
383 && histoTag !=
"OccupancyInTimeHits_perL"){
385 string histoTitle = histoName;
386 if(!readTTrigDB && histoTag ==
"OccupancyInTimeHits_perCh") {
388 int inTimeHitsLowerBoundCorr = int(round(defaultTTrig)) - inTimeHitsLowerBound;
389 int inTimeHitsUpperBoundCorr = int(round(defaultTTrig)) + defaultTmax + inTimeHitsUpperBound;
390 title <<
"Occ. digis in time [" << inTimeHitsLowerBoundCorr <<
", "
391 << inTimeHitsUpperBoundCorr <<
"] (TDC counts)";
392 histoTitle = title.str();
394 (digiHistos[histoTag])[dtCh.
rawId()] = dbe->book2D(histoName,histoTitle,nWires_max,1,nWires_max+1,12,0,12);
396 for(
int i=1;
i<=12;
i++) {
402 string label=
"SL1: L"+layer_name;
403 (digiHistos[histoTag])[dtCh.
rawId()]->setBinLabel(i,label,2);
410 string label=
"SL2: L"+layer_name;
411 (digiHistos[histoTag])[dtCh.
rawId()]->setBinLabel(i,label,2);
413 else if(i>8 && i<13){
418 string label=
"SL3: L"+layer_name;
419 (digiHistos[histoTag])[dtCh.
rawId()]->setBinLabel(i,label,2);
431 stringstream wheel; wheel << wheelId;
435 string histoName = histoTag +
"_W" + wheel.str();
438 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask")
439 <<
"[DTDigiTask]: booking wheel histo:" << histoName
440 <<
" (tag: " << histoTag
441 <<
") folder: " << topFolder() +
"Wheel" + wheel.str() +
"/" <<endl;
443 if(folder ==
"Occupancies") {
444 dbe->setCurrentFolder(topFolder() +
"Wheel" + wheel.str());
445 string histoTitle =
"# of digis per chamber WHEEL: "+wheel.str();
446 (wheelHistos[histoTag])[wheelId] = dbe->book2D(histoName,histoTitle,12,1,13,4,1,5);
447 (wheelHistos[histoTag])[wheelId]->setBinLabel(1,
"MB1",2);
448 (wheelHistos[histoTag])[wheelId]->setBinLabel(2,
"MB2",2);
449 (wheelHistos[histoTag])[wheelId]->setBinLabel(3,
"MB3",2);
450 (wheelHistos[histoTag])[wheelId]->setBinLabel(4,
"MB4",2);
451 (wheelHistos[histoTag])[wheelId]->setAxisTitle(
"sector",1);
452 }
else if(folder ==
"SynchNoise") {
453 dbe->setCurrentFolder(
"DT/05-Noise/SynchNoise");
454 if (histoTag==
"SyncNoiseEvents") {
455 string histoTitle =
"# of Syncronous-noise events WHEEL: "+wheel.str();
456 (wheelHistos[histoTag])[wheelId] = dbe->book2D(histoName,histoTitle,12,1,13,4,1,5);
457 (wheelHistos[histoTag])[wheelId]->setBinLabel(1,
"MB1",2);
458 (wheelHistos[histoTag])[wheelId]->setBinLabel(2,
"MB2",2);
459 (wheelHistos[histoTag])[wheelId]->setBinLabel(3,
"MB3",2);
460 (wheelHistos[histoTag])[wheelId]->setBinLabel(4,
"MB4",2);
461 (wheelHistos[histoTag])[wheelId]->setAxisTitle(
"sector",1);
462 }
else if (histoTag==
"SyncNoiseChambs") {
463 string histoTitle =
"# of Synchornous-noise chamb per evt. WHEEL: "+wheel.str();
464 (wheelHistos[histoTag])[wheelId] = dbe->book1D(histoName,histoTitle,50,0.5,50.5);
465 (wheelHistos[histoTag])[wheelId]->setAxisTitle(
"# of noisy chambs.",1);
466 (wheelHistos[histoTag])[wheelId]->setAxisTitle(
"# of evts.",2);
479 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] Analyze #Run: " <<
event.id().run()
480 <<
" #Event: " <<
event.id().event() << endl;
487 event.getByToken(dtDigiToken_, dtdigis);
490 if (!isLocalRun)
event.getByToken(ltcDigiCollectionToken_, ltcdigis);
494 if(checkNoisyChannels) {
503 if(dtdigis->begin() == dtdigis->end()) {
504 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"Event " <<
nevents <<
" empty." << endl;
507 if (lookForSyncNoise || filterSyncNoise) {
510 for (dtLayerId_It=dtdigis->begin(); dtLayerId_It!=dtdigis->end(); dtLayerId_It++) {
511 DTChamberId chId = ((*dtLayerId_It).first).chamberId();
512 if(hitMap.find(chId) == hitMap.end()) {
515 hitMap[chId] += (((*dtLayerId_It).second).
second - ((*dtLayerId_It).second).first);
521 map<DTChamberId,int>::const_iterator hitMapIt = hitMap.begin();
522 map<DTChamberId,int>::const_iterator hitMapEnd = hitMap.end();
526 for (; hitMapIt != hitMapEnd; ++hitMapIt) {
527 if((hitMapIt->second) > maxTDCHits) {
530 int wh = chId.
wheel();
532 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] Synch noise in chamber: " << chId
533 <<
" with # digis: " << hitMapIt->second << endl;
535 if(chMap.find(wh) == chMap.end()) { chMap[wh] = 0; }
538 syncNoisyChambers.insert(chId);
540 wheelHistos[
"SyncNoiseEvents"][wh]->Fill(chId.
sector(),chId.
station());
553 map<int,int>::const_iterator chMapIt = chMap.begin();
554 map<int,int>::const_iterator chMapEnd = chMap.end();
555 for (; chMapIt != chMapEnd; ++chMapIt) {
556 wheelHistos[
"SyncNoiseChambs"][(*chMapIt).first]->Fill((*chMapIt).second);
562 if (syncNoisyChambers.size() != 0) {
563 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] Synch Noise in event: " <<
nevents;
564 if(filterSyncNoise)
LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"\tnoisy time-boxes and occupancy will not be filled!" << endl;
570 if (syncNoisyChambers.size() > 3) {
571 time_t eventTime = time_t(event.
time().
value()>>32);
573 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask|DTSynchNoise")
574 <<
"[DTDigiTask] At least 4 Synch Noisy chambers in Run : " <<
event.id().run()
575 <<
" Lumi : " <<
event.id().luminosityBlock()
576 <<
" Event : " <<
event.id().event()
577 <<
" at time : " << ctime(&eventTime) << endl;
579 set<DTChamberId>::const_iterator chIt = syncNoisyChambers.begin();
580 set<DTChamberId>::const_iterator chEnd = syncNoisyChambers.end();
582 stringstream synchNoisyCh;
583 for (;chIt!=chEnd;++chIt) { synchNoisyCh <<
" " << (*chIt); }
584 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask|DTSynchNoise") <<
585 "[DTDigiTask] Chamber List :" << synchNoisyCh.str() << endl;
591 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask") << (syncNumTot*100./
nevents) <<
"% sync noise events since the beginning \n"
592 << (syncNum*0.1) <<
"% sync noise events in the last 1000 events " << endl;
597 bool isSyncNoisy =
false;
600 for (dtLayerId_It=dtdigis->begin(); dtLayerId_It!=dtdigis->end(); ++dtLayerId_It) {
603 if (filterSyncNoise) {
604 DTChamberId chId = ((*dtLayerId_It).first).chamberId();
605 if(syncNoisyChambers.find(chId) != syncNoisyChambers.end()) {
611 digiIt!=((*dtLayerId_It).second).
second; ++digiIt) {
613 bool isNoisy =
false;
614 bool isFEMasked =
false;
615 bool isTDCMasked =
false;
616 bool isTrigMask =
false;
619 if(checkNoisyChannels) {
620 const DTWireId wireId(((*dtLayerId_It).first), (*digiIt).wire());
621 statusMap->cellStatus(wireId, isNoisy, isFEMasked, isTDCMasked, isTrigMask, isDead, isNohv);
627 const DTSuperLayerId dtSLId = ((*dtLayerId_It).first).superlayerId();
628 uint32_t indexSL = dtSLId.
rawId();
630 uint32_t indexCh = dtChId.
rawId();
631 int layer_number=((*dtLayerId_It).first).layer();
637 tTrigMap->get( ((*dtLayerId_It).first).superlayerId(),
639 else tTrig = defaultTTrig;
641 int inTimeHitsLowerBoundCorr = int(round(tTrig)) - inTimeHitsLowerBound;
642 int inTimeHitsUpperBoundCorr = int(round(tTrig)) + tMax + inTimeHitsUpperBound;
644 float t0;
float t0RMS;
645 int tdcTime = (*digiIt).countsTDC();
648 const DTWireId dtWireId(((*dtLayerId_It).first), (*digiIt).wire());
651 tdcTime += int(round(t0));
658 if (( !isNoisy ) && (!isSyncNoisy)) {
660 histoTag =
"TimeBox" + triggerSource();
661 if (digiHistos[histoTag].
find(indexSL) == digiHistos[histoTag].
end())
662 bookHistos( dtSLId,
string(
"TimeBoxes"), histoTag );
663 (digiHistos.find(histoTag)->second).
find(indexSL)->second->Fill(tdcTime);
665 (digiHistos.find(histoTag)->second).
find((*dtLayerId_It).first.rawId())->
second->Fill(tdcTime);
684 if (doAllHitsOccupancies) {
686 histoTag =
"OccupancyAllHits_perCh";
687 map<uint32_t, MonitorElement*>::const_iterator mappedHisto =
688 digiHistos[histoTag].find(indexCh);
689 if (mappedHisto == digiHistos[histoTag].
end()) {
690 bookHistos(dtChId,
string(
"Occupancies"), histoTag);
691 mappedHisto = digiHistos[histoTag].find(indexCh);
693 mappedHisto->second->Fill((*digiIt).wire(),(layer_number+(superlayer_number-1)*4)-1);
697 histoTag =
"OccupancyAllHits";
698 map<int, MonitorElement*>::const_iterator histoPerWheel =
699 wheelHistos[histoTag].find(dtChId.
wheel());
700 if(histoPerWheel == wheelHistos[histoTag].
end()) {
702 histoPerWheel = wheelHistos[histoTag].find(dtChId.
wheel());
704 histoPerWheel->second->Fill(dtChId.
sector(),dtChId.
station());
709 if(doNoiseOccupancies) {
710 if (tdcTime < inTimeHitsLowerBoundCorr ) {
715 histoTag =
"OccupancyNoise_perCh";
716 map<uint32_t, MonitorElement*>::const_iterator mappedHisto =
717 digiHistos[histoTag].find(indexCh);
718 if(mappedHisto == digiHistos[histoTag].
end()) {
719 bookHistos(dtChId,
string(
"Occupancies"), histoTag);
720 mappedHisto = digiHistos[histoTag].find(indexCh);
722 mappedHisto->second->Fill((*digiIt).wire(),
723 (layer_number+(superlayer_number-1)*4)-1);
726 histoTag =
"OccupancyNoise";
727 map<int, MonitorElement*>::const_iterator histoPerWheel =
728 wheelHistos[histoTag].find(dtChId.
wheel());
729 if(histoPerWheel == wheelHistos[histoTag].
end()) {
731 histoPerWheel = wheelHistos[histoTag].find(dtChId.
wheel());
733 histoPerWheel->second->Fill(dtChId.
sector(),dtChId.
station());
738 if(doInTimeOccupancies) {
739 if (tdcTime > inTimeHitsLowerBoundCorr && tdcTime < inTimeHitsUpperBoundCorr) {
743 histoTag =
"OccupancyInTimeHits_perCh";
744 map<uint32_t, MonitorElement*>::const_iterator mappedHisto =
745 digiHistos[histoTag].find(indexCh);
746 if(mappedHisto == digiHistos[histoTag].
end()) {
747 bookHistos(dtChId,
string(
"Occupancies"), histoTag);
748 mappedHisto = digiHistos[histoTag].find(indexCh);
750 mappedHisto->second->Fill((*digiIt).wire(),
751 (layer_number+(superlayer_number-1)*4)-1);
754 histoTag =
"OccupancyInTimeHits";
755 map<int, MonitorElement*>::const_iterator histoPerWheel =
756 wheelHistos[histoTag].find(dtChId.
wheel());
757 if(histoPerWheel == wheelHistos[histoTag].
end()) {
759 histoPerWheel = wheelHistos[histoTag].find(dtChId.
wheel());
761 histoPerWheel->second->Fill(dtChId.
sector(),dtChId.
station());
769 syncNoisyChambers.clear();
779 for (std::vector<LTCDigi>::const_iterator ltc_it = ltcdigis->begin(); ltc_it != ltcdigis->end(); ltc_it++){
780 size_t otherTriggerSum=0;
781 for (
size_t i = 1; i < 6; i++)
782 otherTriggerSum +=
size_t((*ltc_it).HasTriggered(i));
784 if ((*ltc_it).HasTriggered(0) && otherTriggerSum == 0)
785 l1ASource =
"DTonly";
786 else if (!(*ltc_it).HasTriggered(0))
788 else if ((*ltc_it).HasTriggered(0) && otherTriggerSum > 0)
789 l1ASource =
"DTalso";
799 if(tpMode)
return string(
"DT/10-TestPulses/");
800 return string(
"DT/01-Digi/");
826 int nWires_max = (digiHistos[histoTag])[dtCh.
rawId()] -> getNbinsX();
829 for(
int sl=1; sl<=3; sl++) {
830 for(
int ly=1; ly<=4; ly++) {
831 for(
int ch=1; ch<=nWires_max; ch++) {
833 int dduId = -1, rosId = -1, robId = -1, tdcId = -1, channelId = -1;
834 int realCh = mapping->geometryToReadOut(dtCh.
wheel(),dtCh.
station(),dtCh.
sector(),sl,ly,ch,dduId,rosId,robId,tdcId,channelId);
839 int lybin = (4*sl - 4) + ly;
840 (digiHistos[histoTag])[dtCh.
rawId()] -> setBinContent(ch,lybin,-1.);
LuminosityBlockID id() const
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
void beginRun(const edm::Run &, const edm::EventSetup &)
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &setup)
void channelsMap(const DTChamberId &dtCh, std::string histoTag)
To map real channels.
DTChamberId chamberId() const
Return the corresponding ChamberId.
std::string topFolder() const
void beginLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &context)
To reset the MEs.
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
DTDigiTask(const edm::ParameterSet &ps)
Constructor.
uint32_t rawId() const
get the raw id
U second(std::pair< T, U > const &p)
void bookHistos(const DTSuperLayerId &dtSL, std::string folder, std::string histoTag)
Book the ME.
const std::vector< const DTSuperLayer * > & superLayers() const
Return the superlayers in the chamber.
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
virtual ~DTDigiTask()
Destructor.
int superlayer() const
Return the superlayer number (deprecated method name)
LuminosityBlockNumber_t luminosityBlock() const
std::vector< DTDigi >::const_iterator const_iterator
int station() const
Return the station number.
int wheel() const
Return the wheel number.
std::string triggerSource()
get the L1A source
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
TimeValue_t value() const
edm::Timestamp time() const