/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
HLTrigger/special/test/ArbitraryLogError.cc
78 строк
2 KB
Christopher Jones
Converted modules to thread-friendly types
31 дек 2021, 19:34
31 дек 2021, 19:34
f1fdcb5
Код
Авторство
О чём код?
// -*- C++ -*- // // Package: ArbitraryLogError // Class: ArbitraryLogError // /**\class ArbitraryLogError ArbitraryLogError.cc HLTrigger/ArbitraryLogError/src/ArbitraryLogError.cc Description: <one line class summary> Implementation: <Notes on implementation> */ // // Original Author: Andrea Bocci,Bld. 40 Room 4-A01,+41227671545, // Created: Tue Nov 10 12:00:46 CET 2009 // // // system include files #include <stdint.h> #include <atomic> // user include files #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/global/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" // // class decleration // class ArbitraryLogError : public edm::global::EDAnalyzer<> { public: explicit ArbitraryLogError(const edm::ParameterSet&); ~ArbitraryLogError() override; private: void beginJob() override; void analyze(edm::StreamID, const edm::Event&, const edm::EventSetup&) const override; void endJob() override; const std::string m_category; const bool m_severity; const uint32_t m_rate; mutable std::atomic<uint32_t> m_counter; }; // CTOR ArbitraryLogError::ArbitraryLogError(const edm::ParameterSet& config) : m_category(config.getParameter<std::string>("category")), m_severity(config.getParameter<std::string>("severity") == "Error"), m_rate(config.getParameter<uint32_t>("rate")), m_counter(0) {} // DTOR ArbitraryLogError::~ArbitraryLogError() = default; // ------------ method called to for each event ------------ void ArbitraryLogError::analyze(edm::StreamID, const edm::Event& iEvent, const edm::EventSetup& iSetup) const { if (not(++m_counter % m_rate)) { if (m_severity) (edm::LogError(m_category)); else (edm::LogWarning(m_category)); } } // ------------ method called once each job just before starting event loop ------------ void ArbitraryLogError::beginJob() {} // ------------ method called once each job just after ending the event loop ------------ void ArbitraryLogError::endJob() {} // declare this class as a framework plugin #include "FWCore/Framework/interface/MakerMacros.h" DEFINE_FWK_MODULE(ArbitraryLogError);