00001 #ifndef Modules_IterateNTimesLooper_h 00002 #define Modules_IterateNTimesLooper_h 00003 // -*- C++ -*- 00004 // 00005 // Package: Modules 00006 // Class : IterateNTimesLooper 00007 // 00016 // 00017 // Original Author: Chris Jones 00018 // Created: Tue Jul 11 11:16:12 EDT 2006 00019 // $Id: IterateNTimesLooper.h,v 1.4 2007/06/29 16:36:04 wmtan Exp $ 00020 // 00021 00022 // system include files 00023 00024 // user include files 00025 #include "FWCore/Framework/interface/EDLooper.h" 00026 00027 // forward declarations 00028 00029 class IterateNTimesLooper : public edm::EDLooper 00030 { 00031 00032 public: 00033 IterateNTimesLooper(const edm::ParameterSet& ); 00034 virtual ~IterateNTimesLooper(); 00035 00036 // ---------- const member functions --------------------- 00037 00038 // ---------- static member functions -------------------- 00039 00040 // ---------- member functions --------------------------- 00041 virtual void startingNewLoop(unsigned int ) ; 00042 virtual Status duringLoop(const edm::Event&, const edm::EventSetup&) ; 00043 virtual Status endOfLoop(const edm::EventSetup&, unsigned int) ; 00044 00045 private: 00046 IterateNTimesLooper(const IterateNTimesLooper&); // stop default 00047 00048 const IterateNTimesLooper& operator=(const IterateNTimesLooper&); // stop default 00049 00050 // ---------- member data -------------------------------- 00051 unsigned int max_; 00052 unsigned int times_; 00053 bool shouldStop_; 00054 }; 00055 00056 00057 #endif