CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/FWCore/TFWLiteSelector/interface/TFWLiteSelectorBasic.h

Go to the documentation of this file.
00001 #ifndef FWCore_TFWLiteSelector_TFWLiteSelectorBasic_h
00002 #define FWCore_TFWLiteSelector_TFWLiteSelectorBasic_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     TFWLiteSelector
00006 // Class  :     TFWLiteSelectorBasic
00007 // 
00017 //
00018 // Original Author:  Chris Jones
00019 //         Created:  Tue Jun 27 16:37:27 EDT 2006
00020 //
00021 
00022 // system include files
00023 #include "TSelector.h"
00024 
00025 // user include files
00026 #include "boost/shared_ptr.hpp"
00027 
00028 // forward declarations
00029 class TFile;
00030 class TList;
00031 class TTree;
00032 
00033 namespace edm {
00034   class Event;
00035   
00036   namespace root {
00037     struct TFWLiteSelectorMembers;
00038   }
00039 }
00040 
00041 class TFWLiteSelectorBasic : public TSelector
00042 {
00043 
00044    public:
00045       TFWLiteSelectorBasic();
00046       virtual ~TFWLiteSelectorBasic();
00047 
00048       // ---------- const member functions ---------------------
00049 
00050       // ---------- static member functions --------------------
00051 
00052       // ---------- member functions ---------------------------
00058       virtual void begin(TList*& in) = 0;
00059       
00065       virtual void preProcessing(const TList* in, TList& out) = 0;
00066       
00070       virtual void process(const edm::Event& event) = 0;
00071       
00076       virtual void postProcessing(TList& out) =0;
00077       
00081       virtual void terminate(TList& out) = 0;
00082       
00083    private:
00084       TFWLiteSelectorBasic(const TFWLiteSelectorBasic&); // stop default
00085 
00086       const TFWLiteSelectorBasic& operator=(const TFWLiteSelectorBasic&); // stop default
00087 
00088       virtual void        Begin(TTree *) ;
00089       virtual void        SlaveBegin(TTree *);
00090       virtual void        Init(TTree*);
00091       virtual Bool_t      Notify() ;
00092       virtual Bool_t      Process(Long64_t /*entry*/) ;
00093       virtual void        SlaveTerminate();
00094       virtual void        Terminate();
00095       virtual Int_t Version() const { return 1; }
00096       
00097       void setupNewFile(TFile&);
00098       // ---------- member data --------------------------------
00099       boost::shared_ptr<edm::root::TFWLiteSelectorMembers> m_;
00100       bool everythingOK_;
00101   
00102   ClassDef(TFWLiteSelectorBasic,2)
00103 };
00104 
00105 
00106 #endif