00001 #ifndef FWCore_TFWLiteSelector_TFWLiteSelector_h 00002 #define FWCore_TFWLiteSelector_TFWLiteSelector_h 00003 // -*- C++ -*- 00004 // 00005 // Package: TFWLiteSelector 00006 // Class : TFWLiteSelector 00007 // 00040 // 00041 // Original Author: Chris Jones 00042 // Created: Fri Jun 30 21:04:46 CDT 2006 00043 // 00044 00045 // system include files 00046 class TList; 00047 00048 // user include files 00049 00050 #include "boost/shared_ptr.hpp" 00051 00052 #include "FWCore/TFWLiteSelector/interface/TFWLiteSelectorBasic.h" 00053 00054 // forward declarations 00055 template <class TWorker> 00056 class TFWLiteSelector : public TFWLiteSelectorBasic 00057 { 00058 00059 public: 00060 TFWLiteSelector() : worker_() {} 00061 virtual ~TFWLiteSelector() {} 00062 00063 // ---------- const member functions --------------------- 00064 00065 // ---------- static member functions -------------------- 00066 00067 // ---------- member functions --------------------------- 00068 00069 private: 00070 TFWLiteSelector(const TFWLiteSelector&); // stop default 00071 00072 const TFWLiteSelector& operator=(const TFWLiteSelector&); // stop default 00073 00074 virtual void preProcessing(const TList*in, TList& out) { 00075 worker_.reset(new TWorker(in,out)); 00076 } 00077 virtual void process(const edm::Event& iEvent) { 00078 worker_->process(iEvent); 00079 } 00080 virtual void postProcessing(TList& out) { 00081 worker_->postProcess(out); 00082 } 00083 00084 // ---------- member data -------------------------------- 00085 boost::shared_ptr<TWorker> worker_; 00086 ClassDef(TFWLiteSelector,2) 00087 }; 00088 00089 #endif