CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EDAnalyzer.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_EDAnalyzer_h
2 #define FWCore_Framework_EDAnalyzer_h
3 
8 
9 #include <string>
10 
11 // EDAnalyzer is the base class for all analyzer "modules".
12 
13 namespace edm {
14 
15  class ModuleCallingContext;
16  class PreallocationConfiguration;
17 
18  namespace maker {
19  template<typename T> class ModuleHolderT;
20  }
21 
22  class EDAnalyzer : public EDConsumerBase {
23  public:
24  template <typename T> friend class maker::ModuleHolderT;
25  template <typename T> friend class WorkerT;
27 
29  virtual ~EDAnalyzer();
30 
31  std::string workerType() const {return "WorkerT<EDAnalyzer>";}
32 
33  static void fillDescriptions(ConfigurationDescriptions& descriptions);
34  static const std::string& baseType();
36 
37  // Warning: the returned moduleDescription will be invalid during construction
39 
41 
42  private:
43  bool doEvent(EventPrincipal const& ep, EventSetup const& c,
44  ModuleCallingContext const* mcc);
46  void doBeginJob();
47  void doEndJob();
48  bool doBeginRun(RunPrincipal const& rp, EventSetup const& c,
49  ModuleCallingContext const* mcc);
50  bool doEndRun(RunPrincipal const& rp, EventSetup const& c,
51  ModuleCallingContext const* mcc);
53  ModuleCallingContext const* mcc);
55  ModuleCallingContext const* mcc);
59  void doPostForkReacquireResources(unsigned int iChildIndex, unsigned int iNumberOfChildren);
61 
62  virtual void analyze(Event const&, EventSetup const&) = 0;
63  virtual void beginJob(){}
64  virtual void endJob(){}
65  virtual void beginRun(Run const&, EventSetup const&){}
66  virtual void endRun(Run const&, EventSetup const&){}
67  virtual void beginLuminosityBlock(LuminosityBlock const&, EventSetup const&){}
68  virtual void endLuminosityBlock(LuminosityBlock const&, EventSetup const&){}
69  virtual void respondToOpenInputFile(FileBlock const&) {}
70  virtual void respondToCloseInputFile(FileBlock const&) {}
71  virtual void preForkReleaseResources() {}
72  virtual void postForkReacquireResources(unsigned int /*iChildIndex*/, unsigned int /*iNumberOfChildren*/) {}
73 
75  moduleDescription_ = md;
76  }
78 
79  std::function<void(BranchDescription const&)> callWhenNewProductsRegistered_;
80  };
81 }
82 
83 #endif
bool doEndLuminosityBlock(LuminosityBlockPrincipal const &lbp, EventSetup const &c, ModuleCallingContext const *mcc)
Definition: EDAnalyzer.cc:71
virtual void beginJob()
Definition: EDAnalyzer.h:63
virtual void endLuminosityBlock(LuminosityBlock const &, EventSetup const &)
Definition: EDAnalyzer.h:68
bool doBeginLuminosityBlock(LuminosityBlockPrincipal const &lbp, EventSetup const &c, ModuleCallingContext const *mcc)
Definition: EDAnalyzer.cc:62
std::string workerType() const
Definition: EDAnalyzer.h:31
void doRespondToOpenInputFile(FileBlock const &fb)
Definition: EDAnalyzer.cc:80
virtual void respondToCloseInputFile(FileBlock const &)
Definition: EDAnalyzer.h:70
virtual void analyze(Event const &, EventSetup const &)=0
void doPreForkReleaseResources()
Definition: EDAnalyzer.cc:90
bool doEvent(EventPrincipal const &ep, EventSetup const &c, ModuleCallingContext const *mcc)
Definition: EDAnalyzer.cc:25
static void fillDescriptions(ConfigurationDescriptions &descriptions)
Definition: EDAnalyzer.cc:105
virtual void beginRun(Run const &, EventSetup const &)
Definition: EDAnalyzer.h:65
virtual void beginLuminosityBlock(LuminosityBlock const &, EventSetup const &)
Definition: EDAnalyzer.h:67
void doRespondToCloseInputFile(FileBlock const &fb)
Definition: EDAnalyzer.cc:85
static const std::string & baseType()
Definition: EDAnalyzer.cc:130
virtual void preForkReleaseResources()
Definition: EDAnalyzer.h:71
static void prevalidate(ConfigurationDescriptions &)
Definition: EDAnalyzer.cc:112
ModuleDescription const & moduleDescription() const
Definition: EDAnalyzer.h:38
void doBeginJob()
Definition: EDAnalyzer.cc:34
std::function< void(BranchDescription const &)> callWhenNewProductsRegistered_
Definition: EDAnalyzer.h:79
helper::RootFunctionHelper< F, args >::root_function function(F &f)
Definition: rootFunction.h:14
virtual void endJob()
Definition: EDAnalyzer.h:64
void doPreallocate(PreallocationConfiguration const &)
Definition: EDAnalyzer.h:45
ModuleDescription moduleDescription_
Definition: EDAnalyzer.h:77
friend class maker::ModuleHolderT
Definition: EDAnalyzer.h:24
EDAnalyzer ModuleType
Definition: EDAnalyzer.h:26
bool doEndRun(RunPrincipal const &rp, EventSetup const &c, ModuleCallingContext const *mcc)
Definition: EDAnalyzer.cc:53
bool doBeginRun(RunPrincipal const &rp, EventSetup const &c, ModuleCallingContext const *mcc)
Definition: EDAnalyzer.cc:44
virtual void respondToOpenInputFile(FileBlock const &)
Definition: EDAnalyzer.h:69
void callWhenNewProductsRegistered(std::function< void(BranchDescription const &)> const &func)
Definition: EDAnalyzer.cc:100
virtual void endRun(Run const &, EventSetup const &)
Definition: EDAnalyzer.h:66
string func
Definition: statics.py:48
void doPostForkReacquireResources(unsigned int iChildIndex, unsigned int iNumberOfChildren)
Definition: EDAnalyzer.cc:95
virtual ~EDAnalyzer()
Definition: EDAnalyzer.cc:21
void registerProductsAndCallbacks(EDAnalyzer const *, ProductRegistry *reg)
Definition: EDAnalyzer.cc:117
Definition: Run.h:41
virtual void postForkReacquireResources(unsigned int, unsigned int)
Definition: EDAnalyzer.h:72
void setModuleDescription(ModuleDescription const &md)
Definition: EDAnalyzer.h:74