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