diff --git a/DQM/BeamMonitor/plugins/PixelVTXMonitor.cc b/DQM/BeamMonitor/plugins/PixelVTXMonitor.cc index 8c285b87b9b42..ce7bb2b175841 100644 --- a/DQM/BeamMonitor/plugins/PixelVTXMonitor.cc +++ b/DQM/BeamMonitor/plugins/PixelVTXMonitor.cc @@ -6,36 +6,88 @@ * Description: Pixel Vertex Monitoring for different HLT paths * */ -#include "DQM/BeamMonitor/plugins/PixelVTXMonitor.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Framework/interface/LuminosityBlock.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "FWCore/Framework/interface/Event.h" + +// system includes +#include +#include +#include + +// user includes +#include "DQMServices/Core/interface/DQMEDAnalyzer.h" +#include "DQMServices/Core/interface/DQMStore.h" #include "DataFormats/Common/interface/Handle.h" +#include "DataFormats/Common/interface/TriggerResults.h" +#include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" +#include "DataFormats/VertexReco/interface/Vertex.h" +#include "DataFormats/VertexReco/interface/VertexFwd.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/LuminosityBlock.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "HLTrigger/HLTcore/interface/HLTConfigProvider.h" + +// ROOT includes #include "TPRegexp.h" +// +// class declaration +// + +class PixelVTXMonitor : public DQMEDAnalyzer { +public: + typedef dqm::legacy::MonitorElement MonitorElement; + typedef dqm::legacy::DQMStore DQMStore; + PixelVTXMonitor(const edm::ParameterSet&); + ~PixelVTXMonitor() override = default; + +protected: + void bookHistograms(DQMStore::IBooker& iBooker, const edm::Run& iRun, const edm::EventSetup& iSetup) override; + +private: + void dqmBeginRun(const edm::Run& iRun, const edm::EventSetup& iSetup) override; + void analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) override; + + edm::ParameterSet parameters_; + + const std::string moduleName_; + const std::string folderName_; + const edm::InputTag pixelClusterInputTag_; + const edm::InputTag pixelVertexInputTag_; + const edm::InputTag hltInputTag_; + const edm::EDGetTokenT pixelClusterInputTagToken_; + const edm::EDGetTokenT pixelVertexInputTagToken_; + const edm::EDGetTokenT hltInputTagToken_; + const float minVtxDoF_; + + HLTConfigProvider hltConfig_; + + struct PixelMEs { + MonitorElement* clusME; + MonitorElement* vtxME; + }; + + std::map histoMap_; +}; + // ----------------------------- // constructors and destructor // ----------------------------- -PixelVTXMonitor::PixelVTXMonitor(const edm::ParameterSet& ps) : parameters_(ps) { - moduleName_ = parameters_.getParameter("ModuleName"); - folderName_ = parameters_.getParameter("FolderName"); - pixelClusterInputTagToken_ = - consumes(parameters_.getParameter("PixelClusterInputTag")); - pixelVertexInputTagToken_ = - consumes(parameters_.getParameter("PixelVertexInputTag")); - hltInputTagToken_ = consumes(parameters_.getParameter("HLTInputTag")); - pixelClusterInputTag_ = parameters_.getParameter("PixelClusterInputTag"); - pixelVertexInputTag_ = parameters_.getParameter("PixelVertexInputTag"); - hltInputTag_ = parameters_.getParameter("HLTInputTag"); - minVtxDoF_ = parameters_.getParameter("MinVtxDoF"); -} - -PixelVTXMonitor::~PixelVTXMonitor() {} - -void PixelVTXMonitor::bookHistograms() { +PixelVTXMonitor::PixelVTXMonitor(const edm::ParameterSet& ps) + : parameters_(ps), + moduleName_(parameters_.getParameter("ModuleName")), + folderName_(parameters_.getParameter("FolderName")), + pixelClusterInputTag_(parameters_.getParameter("PixelClusterInputTag")), + pixelVertexInputTag_(parameters_.getParameter("PixelVertexInputTag")), + hltInputTag_(parameters_.getParameter("HLTInputTag")), + pixelClusterInputTagToken_(consumes(pixelClusterInputTag_)), + pixelVertexInputTagToken_(consumes(pixelVertexInputTag_)), + hltInputTagToken_(consumes(hltInputTag_)), + minVtxDoF_(parameters_.getParameter("MinVtxDoF")) {} + +void PixelVTXMonitor::bookHistograms(DQMStore::IBooker& iBooker, const edm::Run&, const edm::EventSetup&) { std::vector hltPathsOfInterest = parameters_.getParameter >("HLTPathsOfInterest"); if (hltPathsOfInterest.empty()) @@ -43,27 +95,25 @@ void PixelVTXMonitor::bookHistograms() { const std::vector& pathList = hltConfig_.triggerNames(); std::vector selectedPaths; - for (std::vector::const_iterator it = pathList.begin(); it != pathList.end(); ++it) { + for (const auto& it : pathList) { int nmatch = 0; - for (std::vector::const_iterator kt = hltPathsOfInterest.begin(); kt != hltPathsOfInterest.end(); - ++kt) { - nmatch += TPRegexp(*kt).Match(*it); + for (const auto& kt : hltPathsOfInterest) { + nmatch += TPRegexp(kt).Match(it); } if (!nmatch) continue; else - selectedPaths.push_back(*it); + selectedPaths.push_back(it); } edm::ParameterSet ClusHistoPar = parameters_.getParameter("TH1ClusPar"); edm::ParameterSet VtxHistoPar = parameters_.getParameter("TH1VtxPar"); std::string currentFolder = moduleName_ + "/" + folderName_; - dbe_->setCurrentFolder(currentFolder); + iBooker.setCurrentFolder(currentFolder); PixelMEs local_MEs; - for (std::vector::iterator it = selectedPaths.begin(); it != selectedPaths.end(); it++) { - std::string tag = (*it); + for (const auto& tag : selectedPaths) { std::map::iterator iPos = histoMap_.find(tag); if (iPos == histoMap_.end()) { std::string hname, htitle; @@ -72,30 +122,28 @@ void PixelVTXMonitor::bookHistograms() { hname += tag; htitle = "# of Pixel Clusters ("; htitle += tag + ")"; - local_MEs.clusME = dbe_->book1D(hname, - htitle, - ClusHistoPar.getParameter("Xbins"), - ClusHistoPar.getParameter("Xmin"), - ClusHistoPar.getParameter("Xmax")); + local_MEs.clusME = iBooker.book1D(hname, + htitle, + ClusHistoPar.getParameter("Xbins"), + ClusHistoPar.getParameter("Xmin"), + ClusHistoPar.getParameter("Xmax")); hname = "nPxlVtx_"; hname += tag; htitle = "# of Pixel Vertices ("; htitle += tag + ")"; - local_MEs.vtxME = dbe_->book1D(hname, - htitle, - VtxHistoPar.getParameter("Xbins"), - VtxHistoPar.getParameter("Xmin"), - VtxHistoPar.getParameter("Xmax")); + local_MEs.vtxME = iBooker.book1D(hname, + htitle, + VtxHistoPar.getParameter("Xbins"), + VtxHistoPar.getParameter("Xmin"), + VtxHistoPar.getParameter("Xmax")); histoMap_.insert(std::make_pair(tag, local_MEs)); } } } -void PixelVTXMonitor::beginJob() { dbe_ = edm::Service().operator->(); } - -void PixelVTXMonitor::beginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) { +void PixelVTXMonitor::dqmBeginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) { bool changed = true; if (hltConfig_.init(iRun, iSetup, hltInputTag_.process(), changed)) { // if init returns TRUE, initialisation has succeeded! @@ -108,15 +156,13 @@ void PixelVTXMonitor::beginRun(edm::Run const& iRun, edm::EventSetup const& iSet << " failed"; // In this case, all access methods will return empty values! } - bookHistograms(); } void PixelVTXMonitor::analyze(edm::Event const& iEvent, edm::EventSetup const& iSetup) { if (histoMap_.empty()) return; //Access Pixel Clusters - edm::Handle siPixelClusters; - iEvent.getByToken(pixelClusterInputTagToken_, siPixelClusters); + edm::Handle siPixelClusters = iEvent.getHandle(pixelClusterInputTagToken_); if (!siPixelClusters.isValid()) { edm::LogError("PixelVTXMonotor") << "Could not find Cluster Collection " << pixelClusterInputTag_; @@ -125,33 +171,31 @@ void PixelVTXMonitor::analyze(edm::Event const& iEvent, edm::EventSetup const& i unsigned nClusters = siPixelClusters->size(); //Access Pixel Verteces - edm::Handle pixelVertices; - iEvent.getByToken(pixelVertexInputTagToken_, pixelVertices); + edm::Handle pixelVertices = iEvent.getHandle(pixelVertexInputTagToken_); if (!pixelVertices.isValid()) { edm::LogError("PixelVTXMonotor") << "Could not find Vertex Collection " << pixelVertexInputTag_; return; } int nVtx = 0; - for (reco::VertexCollection::const_iterator ivtx = pixelVertices->begin(); ivtx != pixelVertices->end(); ++ivtx) { + for (const auto& ivtx : *pixelVertices) { if (minVtxDoF_ == -1) nVtx++; else { - if ((ivtx->isValid() == true) && (ivtx->isFake() == false) && (ivtx->ndof() >= minVtxDoF_) && - (ivtx->tracksSize() != 0)) + if ((ivtx.isValid() == true) && (ivtx.isFake() == false) && (ivtx.ndof() >= minVtxDoF_) && + (ivtx.tracksSize() != 0)) nVtx++; } } // Access Trigger Results - edm::Handle triggerResults; - iEvent.getByToken(hltInputTagToken_, triggerResults); + edm::Handle triggerResults = iEvent.getHandle(hltInputTagToken_); if (!triggerResults.isValid()) return; - for (std::map::iterator it = histoMap_.begin(); it != histoMap_.end(); ++it) { - std::string path = it->first; - MonitorElement* me_clus = it->second.clusME; - MonitorElement* me_vtx = it->second.vtxME; + for (const auto& it : histoMap_) { + std::string path = it.first; + MonitorElement* me_clus = it.second.clusME; + MonitorElement* me_vtx = it.second.vtxME; unsigned int index = hltConfig_.triggerIndex(path); if (index < triggerResults->size() && triggerResults->accept(index)) { if (me_vtx) @@ -162,14 +206,6 @@ void PixelVTXMonitor::analyze(edm::Event const& iEvent, edm::EventSetup const& i } } -void PixelVTXMonitor::endRun(edm::Run const& iRun, edm::EventSetup const& iSetup) {} - -void PixelVTXMonitor::endJob() {} // Define this as a plug-in #include "FWCore/Framework/interface/MakerMacros.h" DEFINE_FWK_MODULE(PixelVTXMonitor); - -// Local Variables: -// show-trailing-whitespace: t -// truncate-lines: t -// End: diff --git a/DQM/BeamMonitor/plugins/PixelVTXMonitor.h b/DQM/BeamMonitor/plugins/PixelVTXMonitor.h deleted file mode 100644 index 2b5a15cbcd597..0000000000000 --- a/DQM/BeamMonitor/plugins/PixelVTXMonitor.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * \class PixelVTXMonitor - * - * DQM FED Client - * - * \author S. Dutta - * -*/ - -#ifndef PIXELVTXMONITOR_H -#define PIXELVTXMONITOR_H - -#include -#include -#include - -#include -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DQMServices/Core/interface/DQMStore.h" -#include "HLTrigger/HLTcore/interface/HLTConfigProvider.h" -#include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" -#include "DataFormats/VertexReco/interface/VertexFwd.h" -#include "DataFormats/VertexReco/interface/Vertex.h" -#include "DataFormats/Common/interface/TriggerResults.h" - -// -// class declaration -// - -class PixelVTXMonitor : public edm::EDAnalyzer { -public: - typedef dqm::legacy::MonitorElement MonitorElement; - typedef dqm::legacy::DQMStore DQMStore; - PixelVTXMonitor(const edm::ParameterSet&); - ~PixelVTXMonitor() override; - -protected: - void beginJob() override; - void beginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) override; - void analyze(edm::Event const& iEvent, edm::EventSetup const& iSetup) override; - void endRun(edm::Run const& iRun, edm::EventSetup const& iSetup) override; - void endJob() override; - -private: - void bookHistograms(); - - edm::ParameterSet parameters_; - - std::string moduleName_; - std::string folderName_; - edm::EDGetTokenT pixelClusterInputTagToken_; - edm::EDGetTokenT pixelVertexInputTagToken_; - edm::EDGetTokenT hltInputTagToken_; - edm::InputTag pixelClusterInputTag_; - edm::InputTag pixelVertexInputTag_; - edm::InputTag hltInputTag_; - float minVtxDoF_; - - DQMStore* dbe_; - HLTConfigProvider hltConfig_; - - struct PixelMEs { - MonitorElement* clusME; - MonitorElement* vtxME; - }; - - std::map histoMap_; -}; - -#endif // PIXELVTXMONITOR_H - -// Local Variables: -// show-trailing-whitespace: t -// truncate-lines: t -// End: diff --git a/DQM/BeamMonitor/python/PixelVTXMonitor_cfi.py b/DQM/BeamMonitor/python/PixelVTXMonitor_cfi.py index 0723adfabaeae..28c412a3a73ee 100644 --- a/DQM/BeamMonitor/python/PixelVTXMonitor_cfi.py +++ b/DQM/BeamMonitor/python/PixelVTXMonitor_cfi.py @@ -1,6 +1,7 @@ import FWCore.ParameterSet.Config as cms +from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer -pixelVTXMonitor = cms.EDAnalyzer("PixelVTXMonitor", +pixelVTXMonitor = DQMEDAnalyzer("PixelVTXMonitor", ModuleName = cms.string('BeamPixel'), FolderName = cms.string('PixelVertex'), PixelClusterInputTag = cms.InputTag('siPixelClusters'),