CMS 3D CMS Logo

Public Member Functions | Private Attributes

DTOfflineSummaryClients Class Reference

#include <DTOfflineSummaryClients.h>

Inheritance diagram for DTOfflineSummaryClients:
edm::EDAnalyzer

List of all members.

Public Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
 Analyze.
void beginRun (edm::Run const &run, edm::EventSetup const &eSetup)
 BeginRun.
 DTOfflineSummaryClients (const edm::ParameterSet &ps)
 Constructor.
void endJob (void)
 EndJob.
void endLuminosityBlock (edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &c)
 EndLumi.
void endRun (edm::Run const &run, edm::EventSetup const &eSetup)
 DQM Client Diagnostic.
virtual ~DTOfflineSummaryClients ()
 Destructor.

Private Attributes

DQMStoredbe
int nevents
MonitorElementsummaryReport
MonitorElementsummaryReportMap
std::vector< MonitorElement * > theSummaryContents

Detailed Description

* DQM Client for global summary

Date:
2010/01/22 15:32:04
Revision:
1.4
Author:
M. Pelliccioni - INFN Torino

Definition at line 23 of file DTOfflineSummaryClients.h.


Constructor & Destructor Documentation

DTOfflineSummaryClients::DTOfflineSummaryClients ( const edm::ParameterSet ps)

Constructor.

Definition at line 29 of file DTOfflineSummaryClients.cc.

References dbe, and cmsCodeRules::cppFunctionSkipper::operator.

                                                                       : nevents(0) {

  LogVerbatim("DTDQM|DTMonitorClient|DTOfflineSummaryClients") << "[DTOfflineSummaryClients]: Constructor";
  
  
  dbe = Service<DQMStore>().operator->();

}
DTOfflineSummaryClients::~DTOfflineSummaryClients ( ) [virtual]

Destructor.

Definition at line 38 of file DTOfflineSummaryClients.cc.

References nevents.

                                                 {
  LogVerbatim ("DTDQM|DTMonitorClient|DTOfflineSummaryClients") << "DTOfflineSummaryClients: analyzed " << nevents << " events";
  
}

Member Function Documentation

void DTOfflineSummaryClients::analyze ( const edm::Event e,
const edm::EventSetup c 
) [virtual]

Analyze.

Implements edm::EDAnalyzer.

Definition at line 81 of file DTOfflineSummaryClients.cc.

References nevents.

                                                                                  {

   nevents++;
   if(nevents%1000 == 0) {
     LogVerbatim("DTDQM|DTMonitorClient|DTOfflineSummaryClients") << "[DTOfflineSummaryClients] Analyze #Run: " << event.id().run()
                                         << " #Event: " << event.id().event()
                                         << " LS: " << event.luminosityBlock()  
                                         << endl;
   }
}
void DTOfflineSummaryClients::beginRun ( edm::Run const &  run,
edm::EventSetup const &  eSetup 
) [virtual]

BeginRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 43 of file DTOfflineSummaryClients.cc.

References DQMStore::book2D(), DQMStore::bookFloat(), dbe, MonitorElement::Fill(), MonitorElement::setAxisTitle(), DQMStore::setCurrentFolder(), hcal_dqm_sourceclient-file_cfg::streams, summaryReport, summaryReportMap, and theSummaryContents.

                                                                               {

  LogVerbatim("DTDQM|DTMonitorClient|DTOfflineSummaryClients") <<"[DTOfflineSummaryClients]: BeginRun"; 

  // book the summary histos
  dbe->setCurrentFolder("DT/EventInfo"); 
  summaryReport = dbe->bookFloat("reportSummary");
  // Initialize to 1 so that no alarms are thrown at the beginning of the run
  summaryReport->Fill(1.);

  summaryReportMap = dbe->book2D("reportSummaryMap","DT Report Summary Map",12,1,13,5,-2,3);
  summaryReportMap->setAxisTitle("sector",1);
  summaryReportMap->setAxisTitle("wheel",2);

  dbe->setCurrentFolder("DT/EventInfo/reportSummaryContents");

  for(int wheel = -2; wheel != 3; ++wheel) {
    stringstream streams;
    streams << "DT_Wheel" << wheel;
    string meName = streams.str();    
    theSummaryContents.push_back(dbe->bookFloat(meName));
    // Initialize to 1 so that no alarms are thrown at the beginning of the run
    theSummaryContents[wheel+2]->Fill(1.);
  }




}
void DTOfflineSummaryClients::endJob ( void  ) [virtual]

EndJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 74 of file DTOfflineSummaryClients.cc.

                                        {
  
  LogVerbatim ("DTDQM|DTMonitorClient|DTOfflineSummaryClients") <<"[DTOfflineSummaryClients]: endJob"; 

}
void DTOfflineSummaryClients::endLuminosityBlock ( edm::LuminosityBlock const &  lumiSeg,
edm::EventSetup const &  c 
) [virtual]

EndLumi.

Reimplemented from edm::EDAnalyzer.

Definition at line 93 of file DTOfflineSummaryClients.cc.

                                                                                                          {

  LogVerbatim("DTDQM|DTMonitorClient|DTOfflineSummaryClients")
    << "[DTOfflineSummaryClients]: End of LS transition" << endl;

}
void DTOfflineSummaryClients::endRun ( edm::Run const &  run,
edm::EventSetup const &  eSetup 
) [virtual]

DQM Client Diagnostic.

Reimplemented from edm::EDAnalyzer.

Definition at line 101 of file DTOfflineSummaryClients.cc.

References dbe, MonitorElement::Fill(), DQMStore::get(), MonitorElement::getBinContent(), MonitorElement::getBinError(), MonitorElement::getFloatValue(), LogTrace, funct::pow(), MonitorElement::Reset(), relativeConstraints::station, summaryReport, summaryReportMap, and theSummaryContents.

                                                                              {

  LogVerbatim ("DTDQM|DTMonitorClient|DTOfflineSummaryClients") <<"[DTOfflineSummaryClients]: endRun. Performin client operation"; 

  
  // reset the monitor elements
  summaryReportMap->Reset();
  summaryReport->Fill(0.);
  for(int ii = 0; ii != 5; ++ii) {
    theSummaryContents[ii]->Fill(0.);
  }

  // Fill the map using, at the moment, only the information from DT chamber efficiency
  // problems at a granularity smaller than the chamber are ignored
  for(int wheel=-2; wheel<=2; wheel++) { // loop over wheels
    // retrieve the chamber efficiency summary
    stringstream str;
    str << "DT/05-ChamberEff/EfficiencyMap_All_W" << wheel;
    MonitorElement * segmentWheelSummary =  dbe->get(str.str());
    if(segmentWheelSummary != 0) {

      float nFailingChambers = 0.;

      for(int sector=1; sector<=12; sector++) { // loop over sectors

        double meaneff = 0.;
        double errorsum = 0.;

        for(int station = 1; station != 5; ++station) { // loop over stations

          const double tmpefficiency = segmentWheelSummary->getBinContent(sector, station);
          const double tmpvariance = pow(segmentWheelSummary->getBinError(sector, station),2);

          if(tmpefficiency == 0 || tmpvariance == 0){
            nFailingChambers++;
            continue;
          }

          meaneff += tmpefficiency/tmpvariance;
          errorsum += 1./tmpvariance;

          if(tmpefficiency < 0.2) nFailingChambers++;

          LogTrace("DTDQM|DTMonitorClient|DTOfflineSummaryClients")
            << "Wheel: " << wheel << " Stat: " << station << " Sect: " << sector << " status: " << meaneff/errorsum << endl;
        }

        const double eff_result = meaneff/errorsum;

        if(eff_result > 0.7) summaryReportMap->Fill(sector,wheel,1.);
        else if(eff_result < 0.7 && eff_result > 0.5) summaryReportMap->Fill(sector,wheel,0.6);
        else if(eff_result < 0.5 && eff_result > 0.3) summaryReportMap->Fill(sector,wheel,0.4);
        else if(eff_result < 0.3 && eff_result > 0.) summaryReportMap->Fill(sector,wheel,0.15);

      }
      theSummaryContents[wheel+2]->Fill((48.-nFailingChambers)/48.);
      summaryReport->Fill(summaryReport->getFloatValue() + theSummaryContents[wheel+2]->getFloatValue()/5.);
    } else {
      LogWarning("DTDQM|DTMonitorClient|DTOfflineSummaryClients")
        << " [DTOfflineSummaryClients] Segment Summary not found with name: " << str.str() << endl;
    }
  }

}

Member Data Documentation

Definition at line 54 of file DTOfflineSummaryClients.h.

Referenced by beginRun(), DTOfflineSummaryClients(), and endRun().

Definition at line 53 of file DTOfflineSummaryClients.h.

Referenced by analyze(), and ~DTOfflineSummaryClients().

Definition at line 56 of file DTOfflineSummaryClients.h.

Referenced by beginRun(), and endRun().

Definition at line 57 of file DTOfflineSummaryClients.h.

Referenced by beginRun(), and endRun().

Definition at line 58 of file DTOfflineSummaryClients.h.

Referenced by beginRun(), and endRun().