00001 // -*- C++ -*- 00002 // 00003 // Package: Modules 00004 // Class : IterateNTimesLooper 00005 // 00006 // Implementation: 00007 // <Notes on implementation> 00008 // 00009 // Original Author: Chris Jones 00010 // Created: Tue Jul 11 11:16:14 EDT 2006 00011 // $Id: IterateNTimesLooper.cc,v 1.3 2007/06/25 23:22:15 wmtan Exp $ 00012 // 00013 00014 // system include files 00015 00016 // user include files 00017 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00018 #include "FWCore/Modules/src/IterateNTimesLooper.h" 00019 00020 00021 // 00022 // constants, enums and typedefs 00023 // 00024 00025 // 00026 // static data member definitions 00027 // 00028 00029 // 00030 // constructors and destructor 00031 // 00032 IterateNTimesLooper::IterateNTimesLooper(const edm::ParameterSet& iConfig) : 00033 max_(iConfig.getParameter<unsigned int>("nTimes")), 00034 times_(0), 00035 shouldStop_(false) 00036 { 00037 } 00038 00039 // IterateNTimesLooper::IterateNTimesLooper(const IterateNTimesLooper& rhs) 00040 // { 00041 // // do actual copying here; 00042 // } 00043 00044 IterateNTimesLooper::~IterateNTimesLooper() 00045 { 00046 } 00047 00048 // 00049 // assignment operators 00050 // 00051 // const IterateNTimesLooper& IterateNTimesLooper::operator=(const IterateNTimesLooper& rhs) 00052 // { 00053 // //An exception safe implementation is 00054 // IterateNTimesLooper temp(rhs); 00055 // swap(rhs); 00056 // 00057 // return *this; 00058 // } 00059 00060 // 00061 // member functions 00062 // 00063 void 00064 IterateNTimesLooper::startingNewLoop(unsigned int iIteration) { 00065 times_ = iIteration; 00066 if (iIteration >= max_ ) { 00067 shouldStop_ = true; 00068 } 00069 } 00070 00071 edm::EDLooper::Status 00072 IterateNTimesLooper::duringLoop(const edm::Event& event, const edm::EventSetup& eventSetup) { 00073 return shouldStop_ ? kStop : kContinue; 00074 } 00075 00076 edm::EDLooper::Status 00077 IterateNTimesLooper::endOfLoop(const edm::EventSetup& es, unsigned int iCounter) { 00078 ++times_; 00079 return (times_ < max_ ) ? kContinue : kStop; 00080 } 00081 00082 // 00083 // const member functions 00084 // 00085 00086 // 00087 // static member functions 00088 //