52 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask]: Constructor" << endl;
79 inTimeHitsLowerBound = ps.
getParameter<
int>(
"inTimeHitsLowerBound");
80 inTimeHitsUpperBound = ps.
getParameter<
int>(
"inTimeHitsUpperBound");
109 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"DTDigiTask: analyzed " <<
nevents <<
" events" << endl;
117 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] endjob called!"<<endl;
125 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask]: BeginJob"<<endl;
132 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask]: begin run" << endl;
150 if(doStaticBooking) {
152 dbe->setCurrentFolder(
"DT/EventInfo/Counters");
153 nEventMonitor = dbe->bookFloat(tpMode ?
"nProcessedEventsDigiTP" :
"nProcessedEventsDigi" );
154 dbe->setCurrentFolder(topFolder());
155 for(
int wh = -2; wh <= 2; ++wh) {
156 if(doAllHitsOccupancies)
bookHistos(wh,
string(
"Occupancies"),
"OccupancyAllHits");
157 if(doNoiseOccupancies)
bookHistos(wh,
string(
"Occupancies"),
"OccupancyNoiseHits");
158 if(doInTimeOccupancies)
bookHistos(wh,
string(
"Occupancies"),
"OccupancyInTimeHits");
160 if(lookForSyncNoise || filterSyncNoise) {
161 bookHistos(wh,
string(
"SynchNoise"),
"SyncNoiseEvents");
162 bookHistos(wh,
string(
"SynchNoise"),
"SyncNoiseChambs");
165 for(
int st = 1; st <= 4; ++st) {
166 for(
int sect = 1; sect <= 14; ++sect) {
167 if((sect == 13 || sect == 14) && st != 4)
continue;
172 if (doAllHitsOccupancies) {
173 bookHistos(dtChId,
string(
"Occupancies"),
"OccupancyAllHits_perCh");
175 channelsMap(dtChId,
"OccupancyAllHits_perCh");
177 if(doNoiseOccupancies)
178 bookHistos(dtChId,
string(
"Occupancies"),
"OccupancyNoise_perCh");
179 if(doInTimeOccupancies)
180 bookHistos(dtChId,
string(
"Occupancies"),
"OccupancyInTimeHits_perCh");
185 for(
int sl = 1; sl <= 3; ++sl) {
186 if(st == 4 && sl == 2)
continue;
189 bookHistos(dtSLId,
string(
"TimeBoxes"),
"TimeBox");
192 bookHistos(dtSLId,
string(
"TimeBoxes"),
"TimeBoxDTonly");
193 bookHistos(dtSLId,
string(
"TimeBoxes"),
"TimeBoxNoDT");
194 bookHistos(dtSLId,
string(
"TimeBoxes"),
"TimeBoxDTalso");
208 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask]: Begin of LS transition" << endl;
212 if(lumiBlock % resetCycle == 0) {
214 <<
"[DTDigiTask]: Reset at the LS transition : "
215 << lumiBlock << endl;
217 map<string,map<uint32_t,MonitorElement*> >::const_iterator histosIt = digiHistos.begin();
218 map<string,map<uint32_t,MonitorElement*> >::const_iterator histosEnd = digiHistos.end();
219 for(;histosIt != histosEnd ; ++histosIt) {
220 map<uint32_t,MonitorElement*>::const_iterator histoIt = (*histosIt).second.begin();
221 map<uint32_t,MonitorElement*>::const_iterator histoEnd = (*histosIt).second.end();
222 for(;histoIt != histoEnd; ++histoIt) { (*histoIt).second->Reset(); }
226 for(
int wh=-2; wh<=2; wh++) {
227 for(
int sect=1; sect<=14; sect++) {
228 for(
int st=1; st<=4; st++) {
229 if( (sect == 13 || sect == 14) && st != 4 ) {
continue;}
231 channelsMap(dtChId,
"OccupancyAllHits_perCh");
237 map<string,map<int,MonitorElement*> >::const_iterator whHistosIt = wheelHistos.begin();
238 map<string,map<int,MonitorElement*> >::const_iterator whHistosEnd = wheelHistos.end();
239 for(; whHistosIt != whHistosEnd ; ++whHistosIt) {
240 if ((*whHistosIt).first.find(
"Sync") == string::npos) {
241 map<int,MonitorElement*>::const_iterator histoIt = (*whHistosIt).second.begin();
242 map<int,MonitorElement*>::const_iterator histoEnd = (*whHistosIt).second.end();
243 for(;histoIt != histoEnd; ++histoIt) { (*histoIt).second->Reset(); }
255 stringstream wheel; wheel << dtSL.
wheel();
257 stringstream sector; sector << dtSL.
sector();
258 stringstream superLayer; superLayer << dtSL.
superlayer();
259 dbe->setCurrentFolder(topFolder() +
"Wheel" + wheel.str() +
260 "/Sector" + sector.str() +
261 "/Station" + station.str());
264 string histoName = histoTag
266 +
"_St" + station.str()
267 +
"_Sec" + sector.str()
268 +
"_SL" + superLayer.str();
270 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask")
271 <<
"[DTDigiTask]: booking SL histo:" << histoName
272 <<
" (tag: " << histoTag
273 <<
") folder: " << topFolder() +
"Wheel" + wheel.str() +
274 "/Station" + station.str() +
275 "/Sector" + sector.str() +
"/" + folder << endl;
281 else tTrig = defaultTTrig;
284 if ( folder ==
"TimeBoxes") {
285 string histoTitle = histoName +
" (TDC Counts)";
288 (digiHistos[histoTag])[dtSL.
rawId()] =
289 dbe->book1D(histoName,histoTitle, maxTDCCounts/timeBoxGranularity, 0, maxTDCCounts);
290 if(doLayerTimeBoxes) {
291 for(
int layer = 1; layer != 5; ++layer) {
293 stringstream layerHistoName; layerHistoName << histoName <<
"_L" << layer;
294 (digiHistos[histoTag])[layerId.rawId()] =
295 dbe->book1D(layerHistoName.str(),layerHistoName.str(), maxTDCCounts/timeBoxGranularity, 0, maxTDCCounts);
300 (digiHistos[histoTag])[dtSL.
rawId()] =
301 dbe->book1D(histoName,histoTitle, 3*tMax/timeBoxGranularity, tTrig-tMax, tTrig+2*tMax);
302 if(doLayerTimeBoxes) {
304 for(
int layer = 1; layer != 5; ++layer) {
306 stringstream layerHistoName; layerHistoName << histoName <<
"_L" << layer;
307 (digiHistos[histoTag])[layerId.rawId()] =
308 dbe->book1D(layerHistoName.str(),layerHistoName.str(), 3*tMax/timeBoxGranularity, tTrig-tMax, tTrig+2*tMax);
314 if ( folder ==
"CathodPhotoPeaks" ) {
315 dbe->setCurrentFolder(topFolder() +
"Wheel" + wheel.str() +
316 "/Sector" + sector.str() +
317 "/Station" + station.str() +
"/" + folder);
318 (digiHistos[histoTag])[dtSL.
rawId()] = dbe->book1D(histoName,histoName,500,0,1000);
328 stringstream wheel; wheel << dtCh.
wheel();
330 stringstream sector; sector << dtCh.
sector();
331 dbe->setCurrentFolder(topFolder() +
"Wheel" + wheel.str() +
332 "/Sector" + sector.str() +
333 "/Station" + station.str());
336 string histoName = histoTag
338 +
"_St" + station.str()
339 +
"_Sec" + sector.str();
342 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask")
343 <<
"[DTDigiTask]: booking chamber histo:"
344 <<
" (tag: " << histoTag
345 <<
") folder: " << topFolder() +
"Wheel" + wheel.str() +
346 "/Station" + station.str() +
347 "/Sector" + sector.str() << endl;
350 if (folder ==
"Occupancies") {
352 const DTChamber* dtchamber = muonGeom->chamber(dtCh);
353 const std::vector<const DTSuperLayer*> dtSupLylist = dtchamber->
superLayers();
354 std::vector<const DTSuperLayer*>::const_iterator suly = dtSupLylist.begin();
355 std::vector<const DTSuperLayer*>::const_iterator sulyend = dtSupLylist.end();
361 while(suly != sulyend) {
362 const std::vector<const DTLayer*> dtLyList = (*suly)->layers();
363 std::vector<const DTLayer*>::const_iterator ly = dtLyList.begin();
364 std::vector<const DTLayer*>::const_iterator lyend = dtLyList.end();
365 stringstream superLayer; superLayer << (*suly)->id().superlayer();
368 nWires = muonGeom->layer((*ly)->id())->specificTopology().channels();
369 firstWire = muonGeom->layer((*ly)->id())->specificTopology().firstChannel();
370 stringstream layer; layer << (*ly)->id().layer();
371 string histoName_layer = histoName +
"_SL" + superLayer.str() +
"_L" + layer.str();
372 if(histoTag ==
"OccupancyAllHits_perL"
373 || histoTag ==
"OccupancyNoise_perL"
374 || histoTag ==
"OccupancyInTimeHits_perL")
375 (digiHistos[histoTag])[(*ly)->id().rawId()] = dbe->book1D(histoName_layer,histoName_layer,nWires,firstWire,nWires+firstWire);
377 if((nWires+firstWire) > nWires_max) nWires_max = (nWires+firstWire);
383 if(histoTag !=
"OccupancyAllHits_perL"
384 && histoTag !=
"OccupancyNoise_perL"
385 && histoTag !=
"OccupancyInTimeHits_perL"){
387 string histoTitle = histoName;
388 if(!readTTrigDB && histoTag ==
"OccupancyInTimeHits_perCh") {
390 int inTimeHitsLowerBoundCorr = int(round(defaultTTrig)) - inTimeHitsLowerBound;
391 int inTimeHitsUpperBoundCorr = int(round(defaultTTrig)) + defaultTmax + inTimeHitsUpperBound;
392 title <<
"Occ. digis in time [" << inTimeHitsLowerBoundCorr <<
", "
393 << inTimeHitsUpperBoundCorr <<
"] (TDC counts)";
394 histoTitle = title.str();
396 (digiHistos[histoTag])[dtCh.
rawId()] = dbe->book2D(histoName,histoTitle,nWires_max,1,nWires_max+1,12,0,12);
398 for(
int i=1;
i<=12;
i++) {
404 string label=
"SL1: L"+layer_name;
405 (digiHistos[histoTag])[dtCh.
rawId()]->setBinLabel(i,label,2);
412 string label=
"SL2: L"+layer_name;
413 (digiHistos[histoTag])[dtCh.
rawId()]->setBinLabel(i,label,2);
415 else if(i>8 && i<13){
420 string label=
"SL3: L"+layer_name;
421 (digiHistos[histoTag])[dtCh.
rawId()]->setBinLabel(i,label,2);
433 stringstream wheel; wheel << wheelId;
437 string histoName = histoTag +
"_W" + wheel.str();
440 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask")
441 <<
"[DTDigiTask]: booking wheel histo:" << histoName
442 <<
" (tag: " << histoTag
443 <<
") folder: " << topFolder() +
"Wheel" + wheel.str() +
"/" <<endl;
445 if(folder ==
"Occupancies") {
446 dbe->setCurrentFolder(topFolder() +
"Wheel" + wheel.str());
447 string histoTitle =
"# of digis per chamber WHEEL: "+wheel.str();
448 (wheelHistos[histoTag])[wheelId] = dbe->book2D(histoName,histoTitle,12,1,13,4,1,5);
449 (wheelHistos[histoTag])[wheelId]->setBinLabel(1,
"MB1",2);
450 (wheelHistos[histoTag])[wheelId]->setBinLabel(2,
"MB2",2);
451 (wheelHistos[histoTag])[wheelId]->setBinLabel(3,
"MB3",2);
452 (wheelHistos[histoTag])[wheelId]->setBinLabel(4,
"MB4",2);
453 (wheelHistos[histoTag])[wheelId]->setAxisTitle(
"sector",1);
454 }
else if(folder ==
"SynchNoise") {
455 dbe->setCurrentFolder(
"DT/05-Noise/SynchNoise");
456 if (histoTag==
"SyncNoiseEvents") {
457 string histoTitle =
"# of Syncronous-noise events WHEEL: "+wheel.str();
458 (wheelHistos[histoTag])[wheelId] = dbe->book2D(histoName,histoTitle,12,1,13,4,1,5);
459 (wheelHistos[histoTag])[wheelId]->setBinLabel(1,
"MB1",2);
460 (wheelHistos[histoTag])[wheelId]->setBinLabel(2,
"MB2",2);
461 (wheelHistos[histoTag])[wheelId]->setBinLabel(3,
"MB3",2);
462 (wheelHistos[histoTag])[wheelId]->setBinLabel(4,
"MB4",2);
463 (wheelHistos[histoTag])[wheelId]->setAxisTitle(
"sector",1);
464 }
else if (histoTag==
"SyncNoiseChambs") {
465 string histoTitle =
"# of Synchornous-noise chamb per evt. WHEEL: "+wheel.str();
466 (wheelHistos[histoTag])[wheelId] = dbe->book1D(histoName,histoTitle,50,0.5,50.5);
467 (wheelHistos[histoTag])[wheelId]->setAxisTitle(
"# of noisy chambs.",1);
468 (wheelHistos[histoTag])[wheelId]->setAxisTitle(
"# of evts.",2);
481 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] Analyze #Run: " <<
event.id().run()
482 <<
" #Event: " <<
event.id().event() << endl;
489 event.getByLabel(dtDigiLabel, dtdigis);
492 if (!isLocalRun)
event.getByLabel(ltcDigiCollectionTag, ltcdigis);
496 if(checkNoisyChannels) {
505 if(dtdigis->begin() == dtdigis->end()) {
506 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"Event " <<
nevents <<
" empty." << endl;
509 if (lookForSyncNoise || filterSyncNoise) {
512 for (dtLayerId_It=dtdigis->begin(); dtLayerId_It!=dtdigis->end(); dtLayerId_It++) {
513 DTChamberId chId = ((*dtLayerId_It).first).chamberId();
514 if(hitMap.find(chId) == hitMap.end()) {
517 hitMap[chId] += (((*dtLayerId_It).second).
second - ((*dtLayerId_It).second).first);
523 map<DTChamberId,int>::const_iterator hitMapIt = hitMap.begin();
524 map<DTChamberId,int>::const_iterator hitMapEnd = hitMap.end();
528 for (; hitMapIt != hitMapEnd; ++hitMapIt) {
529 if((hitMapIt->second) > maxTDCHits) {
532 int wh = chId.
wheel();
534 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] Synch noise in chamber: " << chId
535 <<
" with # digis: " << hitMapIt->second << endl;
537 if(chMap.find(wh) == chMap.end()) { chMap[wh] = 0; }
540 syncNoisyChambers.insert(chId);
542 wheelHistos[
"SyncNoiseEvents"][wh]->Fill(chId.
sector(),chId.
station());
555 map<int,int>::const_iterator chMapIt = chMap.begin();
556 map<int,int>::const_iterator chMapEnd = chMap.end();
557 for (; chMapIt != chMapEnd; ++chMapIt) {
558 wheelHistos[
"SyncNoiseChambs"][(*chMapIt).first]->Fill((*chMapIt).second);
564 if (syncNoisyChambers.size() != 0) {
565 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] Synch Noise in event: " <<
nevents;
566 if(filterSyncNoise)
LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"\tnoisy time-boxes and occupancy will not be filled!" << endl;
572 if (syncNoisyChambers.size() > 3) {
573 time_t eventTime = time_t(event.
time().
value()>>32);
575 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask|DTSynchNoise")
576 <<
"[DTDigiTask] At least 4 Synch Noisy chambers in Run : " <<
event.id().run()
577 <<
" Lumi : " <<
event.id().luminosityBlock()
578 <<
" Event : " <<
event.id().event()
579 <<
" at time : " << ctime(&eventTime) << endl;
581 set<DTChamberId>::const_iterator chIt = syncNoisyChambers.begin();
582 set<DTChamberId>::const_iterator chEnd = syncNoisyChambers.end();
584 stringstream synchNoisyCh;
585 for (;chIt!=chEnd;++chIt) { synchNoisyCh <<
" " << (*chIt); }
586 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask|DTSynchNoise") <<
587 "[DTDigiTask] Chamber List :" << synchNoisyCh.str() << endl;
593 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask") << (syncNumTot*100./
nevents) <<
"% sync noise events since the beginning \n"
594 << (syncNum*0.1) <<
"% sync noise events in the last 1000 events " << endl;
599 bool isSyncNoisy =
false;
602 for (dtLayerId_It=dtdigis->begin(); dtLayerId_It!=dtdigis->end(); ++dtLayerId_It) {
605 if (filterSyncNoise) {
606 DTChamberId chId = ((*dtLayerId_It).first).chamberId();
607 if(syncNoisyChambers.find(chId) != syncNoisyChambers.end()) {
613 digiIt!=((*dtLayerId_It).second).
second; ++digiIt) {
615 bool isNoisy =
false;
616 bool isFEMasked =
false;
617 bool isTDCMasked =
false;
618 bool isTrigMask =
false;
621 if(checkNoisyChannels) {
622 const DTWireId wireId(((*dtLayerId_It).first), (*digiIt).wire());
623 statusMap->cellStatus(wireId, isNoisy, isFEMasked, isTDCMasked, isTrigMask, isDead, isNohv);
629 const DTSuperLayerId dtSLId = ((*dtLayerId_It).first).superlayerId();
630 uint32_t indexSL = dtSLId.
rawId();
632 uint32_t indexCh = dtChId.
rawId();
633 int layer_number=((*dtLayerId_It).first).layer();
639 tTrigMap->get( ((*dtLayerId_It).first).superlayerId(),
641 else tTrig = defaultTTrig;
643 int inTimeHitsLowerBoundCorr = int(round(tTrig)) - inTimeHitsLowerBound;
644 int inTimeHitsUpperBoundCorr = int(round(tTrig)) + tMax + inTimeHitsUpperBound;
646 float t0;
float t0RMS;
647 int tdcTime = (*digiIt).countsTDC();
650 const DTWireId dtWireId(((*dtLayerId_It).first), (*digiIt).wire());
653 tdcTime += int(round(t0));
660 if (( !isNoisy ) && (!isSyncNoisy)) {
662 histoTag =
"TimeBox" + triggerSource();
663 if (digiHistos[histoTag].
find(indexSL) == digiHistos[histoTag].
end())
664 bookHistos( dtSLId,
string(
"TimeBoxes"), histoTag );
665 (digiHistos.find(histoTag)->second).
find(indexSL)->second->Fill(tdcTime);
667 (digiHistos.find(histoTag)->second).
find((*dtLayerId_It).first.rawId())->
second->Fill(tdcTime);
686 if (doAllHitsOccupancies) {
688 histoTag =
"OccupancyAllHits_perCh";
689 map<uint32_t, MonitorElement*>::const_iterator mappedHisto =
690 digiHistos[histoTag].find(indexCh);
691 if (mappedHisto == digiHistos[histoTag].
end()) {
692 bookHistos(dtChId,
string(
"Occupancies"), histoTag);
693 mappedHisto = digiHistos[histoTag].find(indexCh);
695 mappedHisto->second->Fill((*digiIt).wire(),(layer_number+(superlayer_number-1)*4)-1);
699 histoTag =
"OccupancyAllHits";
700 map<int, MonitorElement*>::const_iterator histoPerWheel =
701 wheelHistos[histoTag].find(dtChId.
wheel());
702 if(histoPerWheel == wheelHistos[histoTag].
end()) {
704 histoPerWheel = wheelHistos[histoTag].find(dtChId.
wheel());
706 histoPerWheel->second->Fill(dtChId.
sector(),dtChId.
station());
711 if(doNoiseOccupancies) {
712 if (tdcTime < inTimeHitsLowerBoundCorr ) {
717 histoTag =
"OccupancyNoise_perCh";
718 map<uint32_t, MonitorElement*>::const_iterator mappedHisto =
719 digiHistos[histoTag].find(indexCh);
720 if(mappedHisto == digiHistos[histoTag].
end()) {
721 bookHistos(dtChId,
string(
"Occupancies"), histoTag);
722 mappedHisto = digiHistos[histoTag].find(indexCh);
724 mappedHisto->second->Fill((*digiIt).wire(),
725 (layer_number+(superlayer_number-1)*4)-1);
728 histoTag =
"OccupancyNoise";
729 map<int, MonitorElement*>::const_iterator histoPerWheel =
730 wheelHistos[histoTag].find(dtChId.
wheel());
731 if(histoPerWheel == wheelHistos[histoTag].
end()) {
733 histoPerWheel = wheelHistos[histoTag].find(dtChId.
wheel());
735 histoPerWheel->second->Fill(dtChId.
sector(),dtChId.
station());
740 if(doInTimeOccupancies) {
741 if (tdcTime > inTimeHitsLowerBoundCorr && tdcTime < inTimeHitsUpperBoundCorr) {
745 histoTag =
"OccupancyInTimeHits_perCh";
746 map<uint32_t, MonitorElement*>::const_iterator mappedHisto =
747 digiHistos[histoTag].find(indexCh);
748 if(mappedHisto == digiHistos[histoTag].
end()) {
749 bookHistos(dtChId,
string(
"Occupancies"), histoTag);
750 mappedHisto = digiHistos[histoTag].find(indexCh);
752 mappedHisto->second->Fill((*digiIt).wire(),
753 (layer_number+(superlayer_number-1)*4)-1);
756 histoTag =
"OccupancyInTimeHits";
757 map<int, MonitorElement*>::const_iterator histoPerWheel =
758 wheelHistos[histoTag].find(dtChId.
wheel());
759 if(histoPerWheel == wheelHistos[histoTag].
end()) {
761 histoPerWheel = wheelHistos[histoTag].find(dtChId.
wheel());
763 histoPerWheel->second->Fill(dtChId.
sector(),dtChId.
station());
771 syncNoisyChambers.clear();
781 for (std::vector<LTCDigi>::const_iterator ltc_it = ltcdigis->begin(); ltc_it != ltcdigis->end(); ltc_it++){
782 size_t otherTriggerSum=0;
783 for (
size_t i = 1; i < 6; i++)
784 otherTriggerSum +=
size_t((*ltc_it).HasTriggered(i));
786 if ((*ltc_it).HasTriggered(0) && otherTriggerSum == 0)
787 l1ASource =
"DTonly";
788 else if (!(*ltc_it).HasTriggered(0))
790 else if ((*ltc_it).HasTriggered(0) && otherTriggerSum > 0)
791 l1ASource =
"DTalso";
801 if(tpMode)
return string(
"DT/10-TestPulses/");
802 return string(
"DT/01-Digi/");
828 int nWires_max = (digiHistos[histoTag])[dtCh.
rawId()] -> getNbinsX();
831 for(
int sl=1; sl<=3; sl++) {
832 for(
int ly=1; ly<=4; ly++) {
833 for(
int ch=1; ch<=nWires_max; ch++) {
835 int dduId = -1, rosId = -1, robId = -1, tdcId = -1, channelId = -1;
836 int realCh = mapping->geometryToReadOut(dtCh.
wheel(),dtCh.
station(),dtCh.
sector(),sl,ly,ch,dduId,rosId,robId,tdcId,channelId);
841 int lybin = (4*sl - 4) + ly;
842 (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)
TimeValue_t value() const
LuminosityBlockNumber_t luminosityBlock() const
std::vector< DigiType >::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="")
edm::Timestamp time() const