diff --git a/DQM/CSCMonitorModule/plugins/CSCDQM_Configuration.h b/DQM/CSCMonitorModule/plugins/CSCDQM_Configuration.h index 3ca1e90af382c..032af1c2d92b9 100644 --- a/DQM/CSCMonitorModule/plugins/CSCDQM_Configuration.h +++ b/DQM/CSCMonitorModule/plugins/CSCDQM_Configuration.h @@ -66,57 +66,63 @@ * Sequence of Global Parameters. Add new line or edit existing in form: * (( type (C++), name (upper case), default value, "description" )) \ */ -#define CONFIG_PARAMETERS_SEQ \ - \ - ((bool, PROCESS_DDU, true, "enter DDU (and latter Chamber) sections (EventProcessor flag)"))( \ - (bool, PROCESS_CSC, true, "enter Chamber section (EventProcessor flag)"))( \ - (bool, PROCESS_EFF_HISTOS, true, "calculate efficiency histograms (Dispatcher flag)"))( \ - (bool, PROCESS_EFF_PARAMETERS, true, "calculate efficiency parameters (EventProcessor flag)"))( \ - (bool, BINCHECKER_CRC_ALCT, false, "check ALCT CRC (CSCDCCExaminer flag)"))( \ - (bool, BINCHECKER_CRC_CLCT, false, "check CLCT CRC (CSCDCCExaminer flag)"))( \ - (bool, BINCHECKER_CRC_CFEB, false, "check CFEB CRC (CSCDCCExaminer flag)"))( \ - (bool, BINCHECKER_MODE_DDU, true, "set DDU mode (CSCDCCExaminer flag)"))( \ - (bool, BINCHECKER_OUTPUT, false, "print 1 and 2 output (CSCDCCExaminer flag)"))( \ - (bool, \ - FRAEFF_AUTO_UPDATE, \ - false, \ - "start fractional and efficiency histogram update automatically (Dispatcher flag)"))( \ - (bool, \ - FRAEFF_SEPARATE_THREAD, \ - false, \ - "start fractional and efficiency histogram update on separate thread (EventProcessor flag)"))( \ - (bool, PRINT_STATS_ON_EXIT, true, "print statistics on exit (destruction)"))( \ - (bool, IN_FULL_STANDBY, true, "full detector is in standby mode from the beginning of the run"))( \ - (std::string, BOOKING_XML_FILE, "", "histogram description (booking) file in XML format (Collection)"))( \ - (std::string, FOLDER_EMU, "", "root file folder name to be used for EMU histograms (EventProcessor)"))( \ - (std::string, FOLDER_DDU, "", "root file folder name to be used for DDU histograms (EventProcessor)"))( \ - (std::string, FOLDER_CSC, "", "root file folder name to be used for CSC histograms (EventProcessor)"))( \ - (std::string, FOLDER_PAR, "", "root file folder name to be used for parameters (EventProcessor)"))(( \ - unsigned int, DDU_CHECK_MASK, 0xFFFFFFFF, "mask for cumulative EmuFileReader DDU error flags (EventProcessor)"))( \ - (unsigned int, DDU_BINCHECK_MASK, 0x02080016, "mask for DDU level examiner errors (CSCDCCExaminer)"))( \ - (unsigned int, BINCHECK_MASK, 0xFFFFFFFF, "mask for chamber level examiner errors (CSCDCCExaminer)"))( \ - (unsigned int, \ - FRAEFF_AUTO_UPDATE_START, \ - 5, \ - "event number to start automatic fractional and efficiency histogram updates from (Dispatcer)"))( \ - (unsigned int, \ - FRAEFF_AUTO_UPDATE_FREQ, \ - 1, \ - "frequency in events to perform automatic fractional and efficiency histogram updates (Dispatcher)"))(( \ - double, EFF_COLD_THRESHOLD, 0.1, "threshold in fraction to check for cold (not reporting) HW (EventProcessor)"))( \ - (double, EFF_COLD_SIGFAIL, 5.0, "statistical significance for cold (not reporting) HW (EventProcessor)"))( \ - (double, EFF_HOT_THRESHOLD, 0.1, "threshold in fraction to check for hot HW (EventProcessor)"))( \ - (double, EFF_HOT_SIGFAIL, 5.0, "statistical significance for hot HW (EventProcessor)"))( \ - (double, EFF_ERR_THRESHOLD, 0.1, "threshold in fraction to check for errors in HW (EventProcessor)"))( \ - (double, EFF_ERR_SIGFAIL, 5.0, "statistical significance for errors in HW (EventProcessor)"))( \ - (double, \ - EFF_NODATA_THRESHOLD, \ - 0.1, \ - "threshold in fraction to check for not reporting elements in HW (EventProcessor)"))( \ - (double, EFF_NODATA_SIGFAIL, 5.0, "statistical significance for not reportingelements in HW (EventProcessor)"))( \ - (unsigned int, EVENTS_ECHO, 1000, "frequency in events to print echo message (EventProcessor)"))( \ - (std::string, FOLDER_FED, "", "root file folder name to be used for FED histograms (EventProcessor)"))( \ - (bool, PREBOOK_ALL_HISTOS, true, "pre-book all FED, DDU, CSC histogragrams before run begins")) +#define CONFIG_PARAMETERS_SEQ \ + \ + ((bool, PROCESS_DDU, true, "enter DDU (and latter Chamber) sections (EventProcessor flag)"))( \ + (bool, PROCESS_CSC, true, "enter Chamber section (EventProcessor flag)"))( \ + (bool, PROCESS_EFF_HISTOS, true, "calculate efficiency histograms (Dispatcher flag)"))(( \ + bool, PROCESS_EFF_PARAMETERS, true, "calculate efficiency parameters (EventProcessor flag)"))(( \ + bool, BINCHECKER_CRC_ALCT, false, "check ALCT CRC (CSCDCCExaminer flag)"))(( \ + bool, BINCHECKER_CRC_CLCT, false, "check CLCT CRC (CSCDCCExaminer flag)"))(( \ + bool, BINCHECKER_CRC_CFEB, false, "check CFEB CRC (CSCDCCExaminer flag)"))(( \ + bool, BINCHECKER_MODE_DDU, true, "set DDU mode (CSCDCCExaminer flag)"))(( \ + bool, BINCHECKER_OUTPUT, false, "print 1 and 2 output (CSCDCCExaminer flag)"))(( \ + bool, \ + FRAEFF_AUTO_UPDATE, \ + false, \ + "start fractional and efficiency histogram update automatically (Dispatcher flag)"))(( \ + bool, \ + FRAEFF_SEPARATE_THREAD, \ + false, \ + "start fractional and efficiency histogram update on separate thread (EventProcessor flag)"))(( \ + bool, PRINT_STATS_ON_EXIT, true, "print statistics on exit (destruction)"))(( \ + bool, IN_FULL_STANDBY, true, "full detector is in standby mode from the beginning of the run"))(( \ + std::string, BOOKING_XML_FILE, "", "histogram description (booking) file in XML format (Collection)"))(( \ + std::string, FOLDER_EMU, "", "root file folder name to be used for EMU histograms (EventProcessor)"))(( \ + std::string, FOLDER_DDU, "", "root file folder name to be used for DDU histograms (EventProcessor)"))(( \ + std::string, FOLDER_CSC, "", "root file folder name to be used for CSC histograms (EventProcessor)"))(( \ + std::string, FOLDER_PAR, "", "root file folder name to be used for parameters (EventProcessor)"))(( \ + unsigned int, \ + DDU_CHECK_MASK, \ + 0xFFFFFFFF, \ + "mask for cumulative EmuFileReader DDU error flags (EventProcessor)"))(( \ + unsigned int, DDU_BINCHECK_MASK, 0x02080016, "mask for DDU level examiner errors (CSCDCCExaminer)"))(( \ + unsigned int, BINCHECK_MASK, 0xFFFFFFFF, "mask for chamber level examiner errors (CSCDCCExaminer)"))(( \ + unsigned int, \ + FRAEFF_AUTO_UPDATE_START, \ + 5, \ + "event number to start automatic fractional and efficiency histogram updates from (Dispatcer)"))(( \ + unsigned int, \ + FRAEFF_AUTO_UPDATE_FREQ, \ + 1, \ + "frequency in events to perform automatic fractional and efficiency histogram updates (Dispatcher)"))(( \ + double, \ + EFF_COLD_THRESHOLD, \ + 0.1, \ + "threshold in fraction to check for cold (not reporting) HW (EventProcessor)"))(( \ + double, EFF_COLD_SIGFAIL, 5.0, "statistical significance for cold (not reporting) HW (EventProcessor)"))(( \ + double, EFF_HOT_THRESHOLD, 0.1, "threshold in fraction to check for hot HW (EventProcessor)"))(( \ + double, EFF_HOT_SIGFAIL, 5.0, "statistical significance for hot HW (EventProcessor)"))(( \ + double, EFF_ERR_THRESHOLD, 0.1, "threshold in fraction to check for errors in HW (EventProcessor)"))(( \ + double, EFF_ERR_SIGFAIL, 5.0, "statistical significance for errors in HW (EventProcessor)"))(( \ + double, \ + EFF_NODATA_THRESHOLD, \ + 0.1, \ + "threshold in fraction to check for not reporting elements in HW (EventProcessor)"))(( \ + double, EFF_NODATA_SIGFAIL, 5.0, "statistical significance for not reportingelements in HW (EventProcessor)"))(( \ + unsigned int, EVENTS_ECHO, 1000, "frequency in events to print echo message (EventProcessor)"))(( \ + std::string, FOLDER_FED, "", "root file folder name to be used for FED histograms (EventProcessor)"))(( \ + bool, PREBOOK_ALL_HISTOS, true, "pre-book all FED, DDU, CSC histogragrams before run begins")) /** * Global Parameter Manipulation macros. @@ -151,7 +157,7 @@ BOOST_PP_CAT(set, BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 1, elem)) \ (ps.getUntrackedParameter( \ BOOST_PP_STRINGIZE(BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 1, elem)), \ - BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 2, elem))); + BOOST_PP_TUPLE_ELEM(CONFIG_PARAMETERS_SEQ_LEN, 2, elem))); #endif diff --git a/DQM/SiPixelPhase1Common/interface/SiPixelPhase1Base.h b/DQM/SiPixelPhase1Common/interface/SiPixelPhase1Base.h index a0af481260e81..085d3dcd40235 100644 --- a/DQM/SiPixelPhase1Common/interface/SiPixelPhase1Base.h +++ b/DQM/SiPixelPhase1Common/interface/SiPixelPhase1Base.h @@ -31,7 +31,7 @@ class HistogramManagerHolder { edm::Transition transition = edm::Transition::BeginRun) : geometryInterface(iConfig.getParameter("geometry"), std::move(iC), transition) { auto histograms = iConfig.getParameter("histograms"); - for (auto histoconf : histograms) { + for (const auto& histoconf : histograms) { histo.emplace_back(HistogramManager(histoconf, geometryInterface)); } }; diff --git a/DQM/SiStripMonitorClient/plugins/SiStripOfflineDQM.cc b/DQM/SiStripMonitorClient/plugins/SiStripOfflineDQM.cc index 325ecbf97a6e7..e3b51fcba6dfa 100644 --- a/DQM/SiStripMonitorClient/plugins/SiStripOfflineDQM.cc +++ b/DQM/SiStripMonitorClient/plugins/SiStripOfflineDQM.cc @@ -82,9 +82,7 @@ SiStripOfflineDQM::SiStripOfflineDQM(edm::ParameterSet const& pSet) } if (createTkInfoFile_) { - tkinfoTree_ = edm::Service {} - ->make("TkDetIdInfo", ""); - } + tkinfoTree_ = edm::Service { } -> make("TkDetIdInfo", ""); } // explicit dependency to make sure the QTest reults needed here are present // already in endRun. diff --git a/DQMOffline/RecoB/interface/FlavourHistorgrams.h b/DQMOffline/RecoB/interface/FlavourHistorgrams.h index d270b5702390c..4ad9cf42d7f77 100644 --- a/DQMOffline/RecoB/interface/FlavourHistorgrams.h +++ b/DQMOffline/RecoB/interface/FlavourHistorgrams.h @@ -362,7 +362,7 @@ void FlavourHistograms::fill(const int& flavour, const T& variable, const T& template void FlavourHistograms::fill(const int& flavour, const T* variable) const { - if (theArrayDimension == 0) { + if (theArrayDimension == nullptr) { // single variable fillVariable(flavour, *variable, 1.); } else { diff --git a/DQMOffline/RecoB/interface/FlavourHistorgrams2D.h b/DQMOffline/RecoB/interface/FlavourHistorgrams2D.h index 3a855580c8f0e..3b5ba9b27995a 100644 --- a/DQMOffline/RecoB/interface/FlavourHistorgrams2D.h +++ b/DQMOffline/RecoB/interface/FlavourHistorgrams2D.h @@ -633,7 +633,7 @@ void FlavourHistograms2D::fill(const int &flavour, const T &variableX, con template void FlavourHistograms2D::fill(const int &flavour, const T *variableX, const G *variableY, const float &w) const { - if (theArrayDimension == 0) { + if (theArrayDimension == nullptr) { // single variable fillVariable(flavour, *variableX, *variableY, w); } else { diff --git a/DQMOffline/Trigger/interface/HLTDQMFilterEffHists.h b/DQMOffline/Trigger/interface/HLTDQMFilterEffHists.h index 14835e6c33944..34547fe3e711f 100644 --- a/DQMOffline/Trigger/interface/HLTDQMFilterEffHists.h +++ b/DQMOffline/Trigger/interface/HLTDQMFilterEffHists.h @@ -123,6 +123,7 @@ template void HLTDQMFilterEffHists::book1D(DQMStore::IBooker& iBooker, const edm::ParameterSet& histConfig) { auto binLowEdgesDouble = histConfig.getParameter >("binLowEdges"); std::vector binLowEdges; + binLowEdges.reserve(binLowEdgesDouble.size()); for (double lowEdge : binLowEdgesDouble) binLowEdges.push_back(lowEdge); auto nameSuffex = histConfig.getParameter("nameSuffex"); @@ -154,8 +155,10 @@ void HLTDQMFilterEffHists::book2D(DQMStore::IBooker& iBooker, const edm auto yBinLowEdgesDouble = histConfig.getParameter >("yBinLowEdges"); std::vector xBinLowEdges; std::vector yBinLowEdges; + xBinLowEdges.reserve(xBinLowEdgesDouble.size()); for (double lowEdge : xBinLowEdgesDouble) xBinLowEdges.push_back(lowEdge); + yBinLowEdges.reserve(yBinLowEdgesDouble.size()); for (double lowEdge : yBinLowEdgesDouble) yBinLowEdges.push_back(lowEdge); auto nameSuffex = histConfig.getParameter("nameSuffex"); diff --git a/DQMOffline/Trigger/interface/HLTTauRefProducer.h b/DQMOffline/Trigger/interface/HLTTauRefProducer.h index f6ac4c9c8d736..1e58a9f608656 100644 --- a/DQMOffline/Trigger/interface/HLTTauRefProducer.h +++ b/DQMOffline/Trigger/interface/HLTTauRefProducer.h @@ -47,8 +47,10 @@ #include "DataFormats/METReco/interface/CaloMET.h" #include "DataFormats/METReco/interface/CaloMETCollection.h" -#include +#include + #include +#include typedef std::pair> TauIDConfigCache; @@ -59,7 +61,7 @@ class HLTTauRefProducer : public edm::global::EDProducer beginStream(edm::StreamID) const override { - return std::unique_ptr(new TauIDConfigCache()); + return std::make_unique(); } private: diff --git a/DQMOffline/Trigger/interface/HistoWrapper.h b/DQMOffline/Trigger/interface/HistoWrapper.h index f7a9321183c9c..de37624b88a2b 100644 --- a/DQMOffline/Trigger/interface/HistoWrapper.h +++ b/DQMOffline/Trigger/interface/HistoWrapper.h @@ -8,17 +8,32 @@ typedef dqm::legacy::DQMStore DQMStore; #include "DQMServices/Core/interface/MonitorElement.h" typedef dqm::legacy::MonitorElement MonitorElement; -enum PL {kEverything, kVital}; +enum PL { kEverything, kVital }; class HistoWrapper { - public: +public: HistoWrapper(const edm::ParameterSet&); ~HistoWrapper(); - MonitorElement* book1D(DQMStore::IBooker& iBooker, TString const &name, TString const &title, int const nchX, double const lowX, double const highX, int level = kEverything); - MonitorElement* book2D(DQMStore::IBooker& iBooker, TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int level = kEverything); + MonitorElement* book1D(DQMStore::IBooker& iBooker, + TString const& name, + TString const& title, + int const nchX, + double const lowX, + double const highX, + int level = kEverything); + MonitorElement* book2D(DQMStore::IBooker& iBooker, + TString const& name, + TString const& title, + int nchX, + double lowX, + double highX, + int nchY, + double lowY, + double highY, + int level = kEverything); - private: +private: PL plotlevel; int cAllHistograms; int cPlottedHistograms; diff --git a/DQMOffline/Trigger/src/HistoWrapper.cc b/DQMOffline/Trigger/src/HistoWrapper.cc index 1bce45e0a6d8a..9df79f130a3d2 100644 --- a/DQMOffline/Trigger/src/HistoWrapper.cc +++ b/DQMOffline/Trigger/src/HistoWrapper.cc @@ -1,35 +1,50 @@ #include "DQMOffline/Trigger/interface/HistoWrapper.h" -HistoWrapper::HistoWrapper(const edm::ParameterSet& pset){ +HistoWrapper::HistoWrapper(const edm::ParameterSet& pset) { plotlevel = (PL)pset.getUntrackedParameter("PlotLevel", int(kEverything)); cAllHistograms = 0; cPlottedHistograms = 0; } -HistoWrapper::~HistoWrapper(){ +HistoWrapper::~HistoWrapper() { std::string s_pl = "kEverything"; - if(plotlevel == 1) s_pl = "kVital"; + if (plotlevel == 1) + s_pl = "kVital"; std::cout << "Plot level " << plotlevel << " " << s_pl << std::endl; std::cout << "Plotting " << cPlottedHistograms << " out of " << cAllHistograms << std::endl; } -MonitorElement* HistoWrapper::book1D(DQMStore::IBooker& iBooker, TString const &name, TString const &title, int const nchX, double const lowX, double const highX, int level){ +MonitorElement* HistoWrapper::book1D(DQMStore::IBooker& iBooker, + TString const& name, + TString const& title, + int const nchX, + double const lowX, + double const highX, + int level) { cAllHistograms++; - if(level >= plotlevel){ + if (level >= plotlevel) { cPlottedHistograms++; MonitorElement* me = iBooker.book1D(name, title, nchX, lowX, highX); return me; } - return 0; + return nullptr; } -MonitorElement* HistoWrapper::book2D(DQMStore::IBooker& iBooker, TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int level){ +MonitorElement* HistoWrapper::book2D(DQMStore::IBooker& iBooker, + TString const& name, + TString const& title, + int nchX, + double lowX, + double highX, + int nchY, + double lowY, + double highY, + int level) { cAllHistograms++; - if(level >= plotlevel){ + if (level >= plotlevel) { cPlottedHistograms++; MonitorElement* me = iBooker.book2D(name, title, nchX, lowX, highX, nchY, lowY, highY); return me; } - return 0; + return nullptr; } - diff --git a/DQMServices/Components/plugins/EDMtoMEConverter.cc b/DQMServices/Components/plugins/EDMtoMEConverter.cc index 5f19932705730..d1d5c21913b34 100644 --- a/DQMServices/Components/plugins/EDMtoMEConverter.cc +++ b/DQMServices/Components/plugins/EDMtoMEConverter.cc @@ -66,7 +66,7 @@ namespace { struct HistoTraits { static TH1F *get(MonitorElement *me) { return me->getTH1F(); } template - static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&... args) { + static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&...args) { return iBooker.book1D(std::forward(args)...); } }; @@ -74,7 +74,7 @@ namespace { struct HistoTraits { static TH1S *get(MonitorElement *me) { return me->getTH1S(); } template - static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&... args) { + static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&...args) { return iBooker.book1S(std::forward(args)...); } }; @@ -82,7 +82,7 @@ namespace { struct HistoTraits { static TH1D *get(MonitorElement *me) { return me->getTH1D(); } template - static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&... args) { + static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&...args) { return iBooker.book1DD(std::forward(args)...); } }; @@ -90,7 +90,7 @@ namespace { struct HistoTraits { static TH2F *get(MonitorElement *me) { return me->getTH2F(); } template - static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&... args) { + static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&...args) { return iBooker.book2D(std::forward(args)...); } }; @@ -98,7 +98,7 @@ namespace { struct HistoTraits { static TH2S *get(MonitorElement *me) { return me->getTH2S(); } template - static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&... args) { + static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&...args) { return iBooker.book2S(std::forward(args)...); } }; @@ -106,7 +106,7 @@ namespace { struct HistoTraits { static TH2D *get(MonitorElement *me) { return me->getTH2D(); } template - static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&... args) { + static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&...args) { return iBooker.book2DD(std::forward(args)...); } }; @@ -114,7 +114,7 @@ namespace { struct HistoTraits { static TH3F *get(MonitorElement *me) { return me->getTH3F(); } template - static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&... args) { + static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&...args) { return iBooker.book3D(std::forward(args)...); } }; @@ -122,7 +122,7 @@ namespace { struct HistoTraits { static TProfile *get(MonitorElement *me) { return me->getTProfile(); } template - static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&... args) { + static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&...args) { return iBooker.bookProfile(std::forward(args)...); } }; @@ -130,7 +130,7 @@ namespace { struct HistoTraits { static TProfile2D *get(MonitorElement *me) { return me->getTProfile2D(); } template - static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&... args) { + static MonitorElement *book(DQMStore::IBooker &iBooker, Args &&...args) { return iBooker.bookProfile2D(std::forward(args)...); } }; @@ -219,14 +219,14 @@ namespace { template <> struct AddMonitorElement { template - static MonitorElement *call(Args &&... args) { + static MonitorElement *call(Args &&...args) { return AddMonitorElementForIntegers::call(std::forward(args)...); } }; template <> struct AddMonitorElement { template - static MonitorElement *call(Args &&... args) { + static MonitorElement *call(Args &&...args) { return AddMonitorElementForIntegers::call(std::forward(args)...); } }; diff --git a/Validation/HcalHits/plugins/HcalHitValidation.cc b/Validation/HcalHits/plugins/HcalHitValidation.cc index 2d152a4248f35..5cb4fb97101fe 100644 --- a/Validation/HcalHits/plugins/HcalHitValidation.cc +++ b/Validation/HcalHits/plugins/HcalHitValidation.cc @@ -26,7 +26,7 @@ class HcalHitValidation : public DQMEDAnalyzer { public: HcalHitValidation(const edm::ParameterSet &ps); - ~HcalHitValidation(); + ~HcalHitValidation() override; protected: void analyze(const edm::Event &e, const edm::EventSetup &c) override; diff --git a/Validation/RecoTau/plugins/DQMHistNormalizer.cc b/Validation/RecoTau/plugins/DQMHistNormalizer.cc index f38575ef9048e..c6ba34f46ecae 100644 --- a/Validation/RecoTau/plugins/DQMHistNormalizer.cc +++ b/Validation/RecoTau/plugins/DQMHistNormalizer.cc @@ -97,7 +97,7 @@ void DQMHistNormalizer::endRun(const edm::Run& r, const edm::EventSetup& c) { //Matches reference if (refregex->match(pathname)) { //cout << "Matched to ref" << endl; - string dir = pathname.substr(0, pathname.rfind("/")); + string dir = pathname.substr(0, pathname.rfind('/')); if (refsMap.find(dir) != refsMap.end()) { edm::LogInfo("DQMHistNormalizer") << "DQMHistNormalizer::endRun: Warning! found multiple normalizing references for dir: " << dir << "!"; @@ -126,7 +126,7 @@ void DQMHistNormalizer::endRun(const edm::Run& r, const edm::EventSetup& c) { matchingElement != toNormElements.end(); ++matchingElement) { string meName = (*matchingElement)->getFullname(); - string dir = meName.substr(0, meName.rfind("/")); + string dir = meName.substr(0, meName.rfind('/')); if (refsMap.find(dir) == refsMap.end()) { edm::LogInfo("DQMHistNormalizer") << "DQMHistNormalizer::endRun: Error! normalizing references for " << meName