![]() |
![]() |
00001 // -*- C++ -*- 00002 // 00003 // Package: SiStripMonitorCluster 00004 // Class: SiStripMonitorFilter 00005 // 00006 //class SiStripMonitorFilter SiStripMonitorFilter.cc DQM/SiStripMonitorCluster/src/SiStripMonitorFilter.cc 00007 #include <vector> 00008 00009 #include <numeric> 00010 #include <iostream> 00011 00012 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00013 #include "FWCore/ServiceRegistry/interface/Service.h" 00014 00015 #include "DQM/SiStripMonitorCluster/interface/SiStripMonitorFilter.h" 00016 #include "DQMServices/Core/interface/DQMStore.h" 00017 00018 00019 SiStripMonitorFilter::SiStripMonitorFilter(const edm::ParameterSet& iConfig) 00020 { 00021 FilterDirectory="FilterResults"; 00022 dqmStore_ = edm::Service<DQMStore>().operator->(); 00023 conf_ = iConfig; 00024 } 00025 00026 void SiStripMonitorFilter::beginJob(){ 00027 dqmStore_->setCurrentFolder(FilterDirectory); 00028 std::string FilterProducer = conf_.getParameter<std::string>("FilterProducer"); 00029 FilterDecision = dqmStore_->book1D(FilterProducer+"_Decision", FilterProducer+"Decision", 2, -0.5, 1.5); 00030 } 00031 00032 void SiStripMonitorFilter::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) 00033 { 00034 // get from event 00035 std::string FilterProducer = conf_.getParameter<std::string>("FilterProducer"); 00036 edm::Handle<int> filter_decision; iEvent.getByLabel(FilterProducer, "", filter_decision); // filter decision 00037 // trigger decision 00038 FilterDecision->Fill(*filter_decision); 00039 } 00040 00041 void SiStripMonitorFilter::endJob(void){ 00042 double events_accepted = FilterDecision->getBinContent(1); 00043 double events_rejected = FilterDecision->getBinContent(2); 00044 double events_total = events_accepted + events_rejected; 00045 edm::LogInfo("DQM|SiStripMonitorFilter")<<"Total nr. of events "<<events_total; 00046 edm::LogInfo("DQM|SiStripMonitorFilter")<<"Events rejected/accepted "<<events_accepted<<"/"<<events_rejected; 00047 edm::LogInfo("DQM|SiStripMonitorFilter")<<"rejected/total : accepted/total "<<events_rejected/events_total<<" : "<<events_accepted/events_total; 00048 bool outputMEsInRootFile = conf_.getParameter<bool>("OutputMEsInRootFile"); 00049 std::string outputFileName = conf_.getParameter<std::string>("OutputFileName"); 00050 if(outputMEsInRootFile){ 00051 dqmStore_->save(outputFileName); 00052 } 00053 } 00054