CMS 3D CMS Logo

EDAnalyzerWrapper.h
Go to the documentation of this file.
1 #ifndef PhysicsTools_UtilAlgos_interface_EDAnalyzerWrapper_h
2 #define PhysicsTools_UtilAlgos_interface_EDAnalyzerWrapper_h
3 
4 #include <boost/shared_ptr.hpp>
5 
10 
11 
45 namespace edm {
46 
47  template<class T>
48  class AnalyzerWrapper : public EDAnalyzer {
49 
50  public:
54  ~AnalyzerWrapper() override{};
56  void beginJob() override { analyzer_->beginJob(); }
58  void analyze(edm::Event const & event, const edm::EventSetup& eventSetup) override{ analyzer_->analyze(event); }
60  void endJob() override { analyzer_->endJob(); }
61 
62  protected:
64  boost::shared_ptr<T> analyzer_;
65  };
66 
68  template<class T>
70  // defined TFileService
72  // create analysis class of type BasicAnalyzer
73  analyzer_ = boost::shared_ptr<T>( new T( cfg, fileService->tFileDirectory(), consumesCollector()) );
74  }
75 
76 }
77 
78 #endif
TFileDirectory & tFileDirectory()
Definition: TFileService.h:42
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
void endJob() override
everything which has to be done after the event loop
edm::Service< TFileService > fileService
~AnalyzerWrapper() override
default destructor
AnalyzerWrapper(const edm::ParameterSet &cfg)
default contructor
void beginJob() override
everything which has to be done before the event loop
HLT enums.
boost::shared_ptr< T > analyzer_
shared pointer to analysis class of type BasicAnalyzer
void analyze(edm::Event const &event, const edm::EventSetup &eventSetup) override
everything which has to be done during the event loop. NOTE: We can&#39;t use the eventSetup in FWLite so...
long double T
Definition: event.py:1