CMS 3D CMS Logo

HLTMonMuonClient.cc

Go to the documentation of this file.
00001 #include "DQM/HLTEvF/interface/HLTMonMuonClient.h"
00002 
00003 #include "FWCore/ServiceRegistry/interface/Service.h"
00004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00005 #include "FWCore/Framework/interface/ESHandle.h"
00006 #include "FWCore/Framework/interface/EventSetup.h"
00007 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00008 #include "DQMServices/Core/interface/QReport.h"
00009 #include "DQMServices/Core/interface/DQMStore.h"
00010 #include "DQMServices/Core/interface/MonitorElement.h"
00011 #include "TRandom.h"
00012 using namespace edm;
00013 using namespace std;
00014 
00015 HLTMonMuonClient::HLTMonMuonClient(const edm::ParameterSet& ps){
00016   parameters=ps;
00017   initialize();
00018 }
00019 
00020 HLTMonMuonClient::~HLTMonMuonClient(){}
00021 
00022 //--------------------------------------------------------
00023 void HLTMonMuonClient::initialize(){
00024   //counterLS  = 0;
00025   //counterEvt = 0;
00026 
00027   // get back-end interface
00028   //dbe = Service<DQMStore>().operator->();
00029 
00030   //input_dir   = parameters.getUntrackedParameter<string>("input_dir","");
00031   //output_dir  = parameters.getUntrackedParameter<string>("output_dir","");
00032   //prescaleLS  = parameters.getUntrackedParameter<int>("prescaleLS",-1);
00033   //prescaleEvt = parameters.getUntrackedParameter<int>("prescaleEvt",-1);
00034 }
00035 
00036 //--------------------------------------------------------
00037 void HLTMonMuonClient::beginJob(const EventSetup& context){
00038   // get backendinterface
00039   dbe = Service<DQMStore>().operator->();
00040 
00041   // do your thing
00042   dbe->setCurrentFolder(output_dir);
00043   //hltmonmuonerrors_ = dbe->book1D("hltmonmuonerrors_","HLTMonMuon Errors",6,0,6);
00044   dbe->setCurrentFolder(input_dir);
00045 }
00046 
00047 //--------------------------------------------------------
00048 void HLTMonMuonClient::beginRun(const Run& r, const EventSetup& context) {}
00049 
00050 //--------------------------------------------------------
00051 void HLTMonMuonClient::beginLuminosityBlock(const LuminosityBlock& lumiSeg, const EventSetup& context) {
00052    // optionally reset histograms here
00053 }
00054 
00055 void HLTMonMuonClient::endLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& c){
00056 /*
00057    vector<string> meVec = dbe->getMEs();
00058    for(vector<string>::const_iterator it=meVec.begin(); it!=meVec.end(); it++){
00059      string full_path = input_dir + "/" + (*it);
00060      MonitorElement *me =dbe->get(full_path);
00061      if( !me ){
00062         LogInfo("TriggerDQM")<<full_path<<" NOT FOUND.";
00063         continue;
00064      }
00065 
00066      // The commented code below requires to be developed to support QT framework---------------------------
00067 
00068      std::vector<QReport *> Qtest_map = me->getQReports();
00069      for(std::vector<QReport *>::const_iterator it=Qtest_map.begin(); it!=Qtest_map.end(); it++){
00070         string qt_name   = (*it)->getQRName();
00071         int    qt_status = (*it)->getStatus();
00072 
00073         switch(qt_status){
00074            case dqm::qstatus::WARNING:    break;
00075            case dqm::qstatus::ERROR:      break;
00076            case dqm::qstatus::DISABLED:   break;
00077            case dqm::qstatus::INVALID:    break;
00078            case dqm::qstatus::INSUF_STAT: break;
00079            default: break;
00080         }
00081 
00082 //   get bad channel list
00083         std::vector<dqm::me_util::Channel> badChannels=(*it)->getBadChannels();
00084         for(vector<dqm::me_util::Channel>::iterator badchsit=badChannels.begin(); badchsit!=badChannels.end(); badchsit++){
00085            int ix = badchsit->getBinX();
00086            int iy = badchsit->getBinY();
00087            (*badchsit).getContents();
00088         }
00089 
00090      }
00091   //------------------------------------------------------------
00092      //  But for now we only do a simple workaround
00093      if( (*it) != "CSCTF_errors" ) continue;
00094      TH1F *errors = me->getTH1F();
00095      csctferrors_->getTH1F()->Reset();
00096      if(!errors) continue;
00097      for(int bin=1; bin<=errors->GetXaxis()->GetNbins(); bin++)
00098         csctferrors_->Fill(bin-0.5,errors->GetBinContent(bin));
00099    }
00100 */
00101 }
00102 
00103 //--------------------------------------------------------
00104 void HLTMonMuonClient::analyze(const Event& e, const EventSetup& context){
00105 /* 
00106    counterEvt++;
00107    if (prescaleEvt<1) return;
00108    if (prescaleEvt>0 && counterEvt%prescaleEvt!=0) return;
00109 
00110    // The code below duplicates one from endLuminosityBlock function
00111    vector<string> meVec = dbe->getMEs();
00112    for(vector<string>::const_iterator it=meVec.begin(); it!=meVec.end(); it++){
00113      string full_path = input_dir + "/" + (*it);
00114      MonitorElement *me =dbe->get(full_path);
00115      if( !me ){
00116         LogError("TriggerDQM")<<full_path<<" NOT FOUND.";
00117         continue;
00118      }
00119      //  But for now we only do a simple workaround
00120      if( (*it) != "CSCTF_errors" ) continue;
00121      TH1F *errors = me->getTH1F();
00122      csctferrors_->getTH1F()->Reset();
00123      if(!errors) continue;
00124      for(int bin=1; bin<=errors->GetXaxis()->GetNbins(); bin++)
00125         csctferrors_->Fill(bin-0.5,errors->GetBinContent(bin));
00126    }
00127 */
00128 }
00129 
00130 //--------------------------------------------------------
00131 void HLTMonMuonClient::endRun(const Run& r, const EventSetup& context){}
00132 
00133 //--------------------------------------------------------
00134 void HLTMonMuonClient::endJob(void){}
00135 

Generated on Tue Jun 9 17:33:07 2009 for CMSSW by  doxygen 1.5.4