Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:12:01

0001 #ifndef FWCore_Framework_EDLooper_h
0002 #define FWCore_Framework_EDLooper_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Framework
0006 // Module:      EDLooper
0007 //
0008 /**\class EDLooper EDLooper.h FWCore/Framework/interface/EDLooper.h
0009 
0010  Description: Standard base class for looping components
0011  
0012  This abstract class forms the basis of being able to loop through a list of events multiple times.
0013  
0014 */
0015 //
0016 // Author:      Valentin Kuznetsov
0017 // Created:     Wed Jul  5 11:42:17 EDT 2006
0018 //
0019 
0020 #include "FWCore/Framework/interface/EDLooperBase.h"
0021 
0022 #include <set>
0023 #include <memory>
0024 
0025 namespace edm {
0026 
0027   class EDLooper : public EDLooperBase {
0028   public:
0029     EDLooper();
0030     ~EDLooper() override;
0031 
0032     EDLooper(EDLooper const&) = delete;             // Disallow copying and moving
0033     EDLooper& operator=(EDLooper const&) = delete;  // Disallow copying and moving
0034 
0035   private:
0036     /**Called after all event modules have had a chance to process the edm::Event.
0037      */
0038     virtual Status duringLoop(const edm::Event&, const edm::EventSetup&) = 0;
0039 
0040     /**override base class interface and just call the above duringLoop
0041      */
0042     Status duringLoop(const edm::Event&, const edm::EventSetup&, ProcessingController&) override;
0043   };
0044 }  // namespace edm
0045 
0046 #endif