52 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask]: Constructor" << endl;
74 inTimeHitsLowerBound = ps.
getParameter<
int>(
"inTimeHitsLowerBound");
75 inTimeHitsUpperBound = ps.
getParameter<
int>(
"inTimeHitsUpperBound");
104 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"DTDigiTask: analyzed " <<
nevents <<
" events" << endl;
112 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] endjob called!"<<endl;
120 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask]: BeginJob"<<endl;
127 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask]: begin run" << endl;
145 if(doStaticBooking) {
147 dbe->setCurrentFolder(
"DT/EventInfo/Counters");
148 nEventMonitor = dbe->bookFloat(tpMode ?
"nProcessedEventsDigiTP" :
"nProcessedEventsDigi" );
149 dbe->setCurrentFolder(topFolder());
150 for(
int wh = -2; wh <= 2; ++wh) {
151 if(doAllHitsOccupancies)
bookHistos(wh,
string(
"Occupancies"),
"OccupancyAllHits");
152 if(doNoiseOccupancies)
bookHistos(wh,
string(
"Occupancies"),
"OccupancyNoiseHits");
153 if(doInTimeOccupancies)
bookHistos(wh,
string(
"Occupancies"),
"OccupancyInTimeHits");
155 if(lookForSyncNoise || filterSyncNoise) {
156 bookHistos(wh,
string(
"SynchNoise"),
"SyncNoiseEvents");
157 bookHistos(wh,
string(
"SynchNoise"),
"SyncNoiseChambs");
160 for(
int st = 1; st <= 4; ++st) {
161 for(
int sect = 1; sect <= 14; ++sect) {
162 if((sect == 13 || sect == 14) && st != 4)
continue;
167 if (doAllHitsOccupancies) {
168 bookHistos(dtChId,
string(
"Occupancies"),
"OccupancyAllHits_perCh");
170 channelsMap(dtChId,
"OccupancyAllHits_perCh");
172 if(doNoiseOccupancies)
173 bookHistos(dtChId,
string(
"Occupancies"),
"OccupancyNoise_perCh");
174 if(doInTimeOccupancies)
175 bookHistos(dtChId,
string(
"Occupancies"),
"OccupancyInTimeHits_perCh");
180 for(
int sl = 1; sl <= 3; ++sl) {
181 if(st == 4 && sl == 2)
continue;
184 bookHistos(dtSLId,
string(
"TimeBoxes"),
"TimeBox");
187 bookHistos(dtSLId,
string(
"TimeBoxes"),
"TimeBoxDTonly");
188 bookHistos(dtSLId,
string(
"TimeBoxes"),
"TimeBoxNoDT");
189 bookHistos(dtSLId,
string(
"TimeBoxes"),
"TimeBoxDTalso");
203 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask]: Begin of LS transition" << endl;
207 if(lumiBlock % resetCycle == 0) {
209 <<
"[DTDigiTask]: Reset at the LS transition : "
210 << lumiBlock << endl;
212 map<string,map<uint32_t,MonitorElement*> >::const_iterator histosIt = digiHistos.begin();
213 map<string,map<uint32_t,MonitorElement*> >::const_iterator histosEnd = digiHistos.end();
214 for(;histosIt != histosEnd ; ++histosIt) {
215 map<uint32_t,MonitorElement*>::const_iterator histoIt = (*histosIt).second.begin();
216 map<uint32_t,MonitorElement*>::const_iterator histoEnd = (*histosIt).second.end();
217 for(;histoIt != histoEnd; ++histoIt) { (*histoIt).second->Reset(); }
221 for(
int wh=-2; wh<=2; wh++) {
222 for(
int sect=1; sect<=14; sect++) {
223 for(
int st=1; st<=4; st++) {
224 if( (sect == 13 || sect == 14) && st != 4 ) {
continue;}
226 channelsMap(dtChId,
"OccupancyAllHits_perCh");
232 map<string,map<int,MonitorElement*> >::const_iterator whHistosIt = wheelHistos.begin();
233 map<string,map<int,MonitorElement*> >::const_iterator whHistosEnd = wheelHistos.end();
234 for(; whHistosIt != whHistosEnd ; ++whHistosIt) {
235 if ((*whHistosIt).first.find(
"Sync") == string::npos) {
236 map<int,MonitorElement*>::const_iterator histoIt = (*whHistosIt).second.begin();
237 map<int,MonitorElement*>::const_iterator histoEnd = (*whHistosIt).second.end();
238 for(;histoIt != histoEnd; ++histoIt) { (*histoIt).second->Reset(); }
250 stringstream wheel; wheel << dtSL.
wheel();
252 stringstream sector; sector << dtSL.
sector();
253 stringstream superLayer; superLayer << dtSL.
superlayer();
254 dbe->setCurrentFolder(topFolder() +
"Wheel" + wheel.str() +
255 "/Sector" + sector.str() +
256 "/Station" + station.str());
259 string histoName = histoTag
261 +
"_St" + station.str()
262 +
"_Sec" + sector.str()
263 +
"_SL" + superLayer.str();
265 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask")
266 <<
"[DTDigiTask]: booking SL histo:" << histoName
267 <<
" (tag: " << histoTag
268 <<
") folder: " << topFolder() +
"Wheel" + wheel.str() +
269 "/Station" + station.str() +
270 "/Sector" + sector.str() +
"/" + folder << endl;
276 else tTrig = defaultTTrig;
279 if ( folder ==
"TimeBoxes") {
280 string histoTitle = histoName +
" (TDC Counts)";
283 (digiHistos[histoTag])[dtSL.
rawId()] =
284 dbe->book1D(histoName,histoTitle, maxTDCCounts/timeBoxGranularity, 0, maxTDCCounts);
285 if(doLayerTimeBoxes) {
286 for(
int layer = 1; layer != 5; ++layer) {
288 stringstream layerHistoName; layerHistoName << histoName <<
"_L" << layer;
289 (digiHistos[histoTag])[layerId.rawId()] =
290 dbe->book1D(layerHistoName.str(),layerHistoName.str(), maxTDCCounts/timeBoxGranularity, 0, maxTDCCounts);
295 (digiHistos[histoTag])[dtSL.
rawId()] =
296 dbe->book1D(histoName,histoTitle, 3*tMax/timeBoxGranularity, tTrig-tMax, tTrig+2*tMax);
297 if(doLayerTimeBoxes) {
299 for(
int layer = 1; layer != 5; ++layer) {
301 stringstream layerHistoName; layerHistoName << histoName <<
"_L" << layer;
302 (digiHistos[histoTag])[layerId.rawId()] =
303 dbe->book1D(layerHistoName.str(),layerHistoName.str(), 3*tMax/timeBoxGranularity, tTrig-tMax, tTrig+2*tMax);
309 if ( folder ==
"CathodPhotoPeaks" ) {
310 dbe->setCurrentFolder(topFolder() +
"Wheel" + wheel.str() +
311 "/Sector" + sector.str() +
312 "/Station" + station.str() +
"/" + folder);
313 (digiHistos[histoTag])[dtSL.
rawId()] = dbe->book1D(histoName,histoName,500,0,1000);
323 stringstream wheel; wheel << dtCh.
wheel();
325 stringstream sector; sector << dtCh.
sector();
326 dbe->setCurrentFolder(topFolder() +
"Wheel" + wheel.str() +
327 "/Sector" + sector.str() +
328 "/Station" + station.str());
331 string histoName = histoTag
333 +
"_St" + station.str()
334 +
"_Sec" + sector.str();
337 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask")
338 <<
"[DTDigiTask]: booking chamber histo:"
339 <<
" (tag: " << histoTag
340 <<
") folder: " << topFolder() +
"Wheel" + wheel.str() +
341 "/Station" + station.str() +
342 "/Sector" + sector.str() << endl;
345 if (folder ==
"Occupancies") {
347 const DTChamber* dtchamber = muonGeom->chamber(dtCh);
348 const std::vector<const DTSuperLayer*> dtSupLylist = dtchamber->
superLayers();
349 std::vector<const DTSuperLayer*>::const_iterator suly = dtSupLylist.begin();
350 std::vector<const DTSuperLayer*>::const_iterator sulyend = dtSupLylist.end();
356 while(suly != sulyend) {
357 const std::vector<const DTLayer*> dtLyList = (*suly)->layers();
358 std::vector<const DTLayer*>::const_iterator ly = dtLyList.begin();
359 std::vector<const DTLayer*>::const_iterator lyend = dtLyList.end();
360 stringstream superLayer; superLayer << (*suly)->id().superlayer();
363 nWires = muonGeom->layer((*ly)->id())->specificTopology().channels();
364 firstWire = muonGeom->layer((*ly)->id())->specificTopology().firstChannel();
365 stringstream layer; layer << (*ly)->id().layer();
366 string histoName_layer = histoName +
"_SL" + superLayer.str() +
"_L" + layer.str();
367 if(histoTag ==
"OccupancyAllHits_perL"
368 || histoTag ==
"OccupancyNoise_perL"
369 || histoTag ==
"OccupancyInTimeHits_perL")
370 (digiHistos[histoTag])[(*ly)->id().rawId()] = dbe->book1D(histoName_layer,histoName_layer,nWires,firstWire,nWires+firstWire);
372 if((nWires+firstWire) > nWires_max) nWires_max = (nWires+firstWire);
378 if(histoTag !=
"OccupancyAllHits_perL"
379 && histoTag !=
"OccupancyNoise_perL"
380 && histoTag !=
"OccupancyInTimeHits_perL"){
382 string histoTitle = histoName;
383 if(!readTTrigDB && histoTag ==
"OccupancyInTimeHits_perCh") {
385 int inTimeHitsLowerBoundCorr = int(round(defaultTTrig)) - inTimeHitsLowerBound;
386 int inTimeHitsUpperBoundCorr = int(round(defaultTTrig)) + defaultTmax + inTimeHitsUpperBound;
387 title <<
"Occ. digis in time [" << inTimeHitsLowerBoundCorr <<
", "
388 << inTimeHitsUpperBoundCorr <<
"] (TDC counts)";
389 histoTitle = title.str();
391 (digiHistos[histoTag])[dtCh.
rawId()] = dbe->book2D(histoName,histoTitle,nWires_max,1,nWires_max+1,12,0,12);
393 for(
int i=1;
i<=12;
i++) {
399 string label=
"SL1: L"+layer_name;
400 (digiHistos[histoTag])[dtCh.
rawId()]->setBinLabel(i,label,2);
407 string label=
"SL2: L"+layer_name;
408 (digiHistos[histoTag])[dtCh.
rawId()]->setBinLabel(i,label,2);
410 else if(i>8 && i<13){
415 string label=
"SL3: L"+layer_name;
416 (digiHistos[histoTag])[dtCh.
rawId()]->setBinLabel(i,label,2);
428 stringstream wheel; wheel << wheelId;
432 string histoName = histoTag +
"_W" + wheel.str();
435 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask")
436 <<
"[DTDigiTask]: booking wheel histo:" << histoName
437 <<
" (tag: " << histoTag
438 <<
") folder: " << topFolder() +
"Wheel" + wheel.str() +
"/" <<endl;
440 if(folder ==
"Occupancies") {
441 dbe->setCurrentFolder(topFolder() +
"Wheel" + wheel.str());
442 string histoTitle =
"# of digis per chamber WHEEL: "+wheel.str();
443 (wheelHistos[histoTag])[wheelId] = dbe->book2D(histoName,histoTitle,12,1,13,4,1,5);
444 (wheelHistos[histoTag])[wheelId]->setBinLabel(1,
"MB1",2);
445 (wheelHistos[histoTag])[wheelId]->setBinLabel(2,
"MB2",2);
446 (wheelHistos[histoTag])[wheelId]->setBinLabel(3,
"MB3",2);
447 (wheelHistos[histoTag])[wheelId]->setBinLabel(4,
"MB4",2);
448 (wheelHistos[histoTag])[wheelId]->setAxisTitle(
"sector",1);
449 }
else if(folder ==
"SynchNoise") {
450 dbe->setCurrentFolder(
"DT/05-Noise/SynchNoise");
451 if (histoTag==
"SyncNoiseEvents") {
452 string histoTitle =
"# of Syncronous-noise events WHEEL: "+wheel.str();
453 (wheelHistos[histoTag])[wheelId] = dbe->book2D(histoName,histoTitle,12,1,13,4,1,5);
454 (wheelHistos[histoTag])[wheelId]->setBinLabel(1,
"MB1",2);
455 (wheelHistos[histoTag])[wheelId]->setBinLabel(2,
"MB2",2);
456 (wheelHistos[histoTag])[wheelId]->setBinLabel(3,
"MB3",2);
457 (wheelHistos[histoTag])[wheelId]->setBinLabel(4,
"MB4",2);
458 (wheelHistos[histoTag])[wheelId]->setAxisTitle(
"sector",1);
459 }
else if (histoTag==
"SyncNoiseChambs") {
460 string histoTitle =
"# of Synchornous-noise chamb per evt. WHEEL: "+wheel.str();
461 (wheelHistos[histoTag])[wheelId] = dbe->book1D(histoName,histoTitle,50,0.5,50.5);
462 (wheelHistos[histoTag])[wheelId]->setAxisTitle(
"# of noisy chambs.",1);
463 (wheelHistos[histoTag])[wheelId]->setAxisTitle(
"# of evts.",2);
476 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] Analyze #Run: " <<
event.id().run()
477 <<
" #Event: " <<
event.id().event() << endl;
484 event.getByLabel(dtDigiLabel, dtdigis);
487 if (!isLocalRun)
event.getByType(ltcdigis);
491 if(checkNoisyChannels) {
500 if(dtdigis->begin() == dtdigis->end()) {
501 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"Event " <<
nevents <<
" empty." << endl;
504 if (lookForSyncNoise || filterSyncNoise) {
507 for (dtLayerId_It=dtdigis->begin(); dtLayerId_It!=dtdigis->end(); dtLayerId_It++) {
508 DTChamberId chId = ((*dtLayerId_It).first).chamberId();
509 if(hitMap.find(chId) == hitMap.end()) {
512 hitMap[chId] += (((*dtLayerId_It).second).
second - ((*dtLayerId_It).second).first);
518 map<DTChamberId,int>::const_iterator hitMapIt = hitMap.begin();
519 map<DTChamberId,int>::const_iterator hitMapEnd = hitMap.end();
523 for (; hitMapIt != hitMapEnd; ++hitMapIt) {
524 if((hitMapIt->second) > maxTDCHits) {
527 int wh = chId.
wheel();
529 LogTrace(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] Synch noise in chamber: " << chId
530 <<
" with # digis: " << hitMapIt->second << endl;
532 if(chMap.find(wh) == chMap.end()) { chMap[wh] = 0; }
535 syncNoisyChambers.insert(chId);
537 wheelHistos[
"SyncNoiseEvents"][wh]->Fill(chId.
sector(),chId.
station());
550 map<int,int>::const_iterator chMapIt = chMap.begin();
551 map<int,int>::const_iterator chMapEnd = chMap.end();
552 for (; chMapIt != chMapEnd; ++chMapIt) {
553 wheelHistos[
"SyncNoiseChambs"][(*chMapIt).first]->Fill((*chMapIt).second);
559 if (syncNoisyChambers.size() != 0) {
560 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"[DTDigiTask] Synch Noise in event: " <<
nevents;
561 if(filterSyncNoise)
LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask") <<
"\tnoisy time-boxes and occupancy will not be filled!" << endl;
567 if (syncNoisyChambers.size() > 3) {
568 time_t eventTime = time_t(event.
time().
value()>>32);
570 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask|DTSynchNoise")
571 <<
"[DTDigiTask] At least 4 Synch Noisy chambers in Run : " <<
event.id().run()
572 <<
" Lumi : " <<
event.id().luminosityBlock()
573 <<
" Event : " <<
event.id().event()
574 <<
" at time : " << ctime(&eventTime) << endl;
576 set<DTChamberId>::const_iterator chIt = syncNoisyChambers.begin();
577 set<DTChamberId>::const_iterator chEnd = syncNoisyChambers.end();
579 stringstream synchNoisyCh;
580 for (;chIt!=chEnd;++chIt) { synchNoisyCh <<
" " << (*chIt); }
581 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask|DTSynchNoise") <<
582 "[DTDigiTask] Chamber List :" << synchNoisyCh.str() << endl;
588 LogVerbatim(
"DTDQM|DTMonitorModule|DTDigiTask") << (syncNumTot*100./
nevents) <<
"% sync noise events since the beginning \n"
589 << (syncNum*0.1) <<
"% sync noise events in the last 1000 events " << endl;
594 bool isSyncNoisy =
false;
597 for (dtLayerId_It=dtdigis->begin(); dtLayerId_It!=dtdigis->end(); ++dtLayerId_It) {
600 if (filterSyncNoise) {
601 DTChamberId chId = ((*dtLayerId_It).first).chamberId();
602 if(syncNoisyChambers.find(chId) != syncNoisyChambers.end()) {
608 digiIt!=((*dtLayerId_It).second).
second; ++digiIt) {
610 bool isNoisy =
false;
611 bool isFEMasked =
false;
612 bool isTDCMasked =
false;
613 bool isTrigMask =
false;
616 if(checkNoisyChannels) {
617 const DTWireId wireId(((*dtLayerId_It).first), (*digiIt).wire());
618 statusMap->cellStatus(wireId, isNoisy, isFEMasked, isTDCMasked, isTrigMask, isDead, isNohv);
624 const DTSuperLayerId dtSLId = ((*dtLayerId_It).first).superlayerId();
625 uint32_t indexSL = dtSLId.
rawId();
627 uint32_t indexCh = dtChId.
rawId();
628 int layer_number=((*dtLayerId_It).first).layer();
634 tTrigMap->get( ((*dtLayerId_It).first).superlayerId(),
636 else tTrig = defaultTTrig;
638 int inTimeHitsLowerBoundCorr = int(round(tTrig)) - inTimeHitsLowerBound;
639 int inTimeHitsUpperBoundCorr = int(round(tTrig)) + tMax + inTimeHitsUpperBound;
641 float t0;
float t0RMS;
642 int tdcTime = (*digiIt).countsTDC();
645 const DTWireId dtWireId(((*dtLayerId_It).first), (*digiIt).wire());
648 tdcTime += int(round(t0));
655 if (( !isNoisy ) && (!isSyncNoisy)) {
657 histoTag =
"TimeBox" + triggerSource();
658 if (digiHistos[histoTag].
find(indexSL) == digiHistos[histoTag].
end())
659 bookHistos( dtSLId,
string(
"TimeBoxes"), histoTag );
660 (digiHistos.find(histoTag)->second).
find(indexSL)->second->Fill(tdcTime);
662 (digiHistos.find(histoTag)->second).
find((*dtLayerId_It).first.rawId())->
second->Fill(tdcTime);
681 if (doAllHitsOccupancies) {
683 histoTag =
"OccupancyAllHits_perCh";
684 map<uint32_t, MonitorElement*>::const_iterator mappedHisto =
685 digiHistos[histoTag].find(indexCh);
686 if (mappedHisto == digiHistos[histoTag].
end()) {
687 bookHistos(dtChId,
string(
"Occupancies"), histoTag);
688 mappedHisto = digiHistos[histoTag].find(indexCh);
690 mappedHisto->second->Fill((*digiIt).wire(),(layer_number+(superlayer_number-1)*4)-1);
694 histoTag =
"OccupancyAllHits";
695 map<int, MonitorElement*>::const_iterator histoPerWheel =
696 wheelHistos[histoTag].find(dtChId.
wheel());
697 if(histoPerWheel == wheelHistos[histoTag].
end()) {
699 histoPerWheel = wheelHistos[histoTag].find(dtChId.
wheel());
701 histoPerWheel->second->Fill(dtChId.
sector(),dtChId.
station());
706 if(doNoiseOccupancies) {
707 if (tdcTime < inTimeHitsLowerBoundCorr ) {
712 histoTag =
"OccupancyNoise_perCh";
713 map<uint32_t, MonitorElement*>::const_iterator mappedHisto =
714 digiHistos[histoTag].find(indexCh);
715 if(mappedHisto == digiHistos[histoTag].
end()) {
716 bookHistos(dtChId,
string(
"Occupancies"), histoTag);
717 mappedHisto = digiHistos[histoTag].find(indexCh);
719 mappedHisto->second->Fill((*digiIt).wire(),
720 (layer_number+(superlayer_number-1)*4)-1);
723 histoTag =
"OccupancyNoise";
724 map<int, MonitorElement*>::const_iterator histoPerWheel =
725 wheelHistos[histoTag].find(dtChId.
wheel());
726 if(histoPerWheel == wheelHistos[histoTag].
end()) {
728 histoPerWheel = wheelHistos[histoTag].find(dtChId.
wheel());
730 histoPerWheel->second->Fill(dtChId.
sector(),dtChId.
station());
735 if(doInTimeOccupancies) {
736 if (tdcTime > inTimeHitsLowerBoundCorr && tdcTime < inTimeHitsUpperBoundCorr) {
740 histoTag =
"OccupancyInTimeHits_perCh";
741 map<uint32_t, MonitorElement*>::const_iterator mappedHisto =
742 digiHistos[histoTag].find(indexCh);
743 if(mappedHisto == digiHistos[histoTag].
end()) {
744 bookHistos(dtChId,
string(
"Occupancies"), histoTag);
745 mappedHisto = digiHistos[histoTag].find(indexCh);
747 mappedHisto->second->Fill((*digiIt).wire(),
748 (layer_number+(superlayer_number-1)*4)-1);
751 histoTag =
"OccupancyInTimeHits";
752 map<int, MonitorElement*>::const_iterator histoPerWheel =
753 wheelHistos[histoTag].find(dtChId.
wheel());
754 if(histoPerWheel == wheelHistos[histoTag].
end()) {
756 histoPerWheel = wheelHistos[histoTag].find(dtChId.
wheel());
758 histoPerWheel->second->Fill(dtChId.
sector(),dtChId.
station());
766 syncNoisyChambers.clear();
776 for (std::vector<LTCDigi>::const_iterator ltc_it = ltcdigis->begin(); ltc_it != ltcdigis->end(); ltc_it++){
777 size_t otherTriggerSum=0;
778 for (
size_t i = 1; i < 6; i++)
779 otherTriggerSum +=
size_t((*ltc_it).HasTriggered(i));
781 if ((*ltc_it).HasTriggered(0) && otherTriggerSum == 0)
782 l1ASource =
"DTonly";
783 else if (!(*ltc_it).HasTriggered(0))
785 else if ((*ltc_it).HasTriggered(0) && otherTriggerSum > 0)
786 l1ASource =
"DTalso";
796 if(tpMode)
return string(
"DT/10-TestPulses/");
797 return string(
"DT/01-Digi/");
823 int nWires_max = (digiHistos[histoTag])[dtCh.
rawId()] -> getNbinsX();
826 for(
int sl=1; sl<=3; sl++) {
827 for(
int ly=1; ly<=4; ly++) {
828 for(
int ch=1; ch<=nWires_max; ch++) {
830 int dduId = -1, rosId = -1, robId = -1, tdcId = -1, channelId = -1;
831 int realCh = mapping->geometryToReadOut(dtCh.
wheel(),dtCh.
station(),dtCh.
sector(),sl,ly,ch,dduId,rosId,robId,tdcId,channelId);
836 int lybin = (4*sl - 4) + ly;
837 (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