CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/PhysicsTools/UtilAlgos/interface/NTupler.h

Go to the documentation of this file.
00001 #ifndef NTupler_H
00002 #define NTupler_H
00003 
00004 
00005 #include "FWCore/Framework/interface/Frameworkfwd.h"
00006 #include "FWCore/Framework/interface/EDProducer.h"
00007 #include "FWCore/Framework/interface/EDFilter.h"
00008 #include "FWCore/Framework/interface/ProducerBase.h"
00009 
00010 #include "FWCore/Framework/interface/Event.h"
00011 #include "TTree.h"
00012 
00013 /*
00014  * Description:
00015  * placeholder for common ntuplizer tools
00016  *
00017  */
00018 
00019 //base generic class
00020 
00021 class NTupler {
00022  public:
00023   NTupler() : useTFileService_(false){}
00024   virtual ~NTupler(){}
00025 
00026   virtual unsigned int registerleaves(edm::ProducerBase * producer) =0;
00027   virtual void fill(edm::Event& iEvent)=0;
00028  protected:
00029   bool useTFileService_;
00030   TTree * tree_;
00031 };
00032 
00033 #include "FWCore/PluginManager/interface/PluginFactory.h"
00034 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00035 
00036 typedef edmplugin::PluginFactory< NTupler* (const edm::ParameterSet&) > NTuplerFactory;
00037 
00038 #endif