00001 #ifndef EvFMicroStateService_H 00002 #define EvFMicroStateService_H 1 00003 00004 00005 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00006 #include "FWCore/ServiceRegistry/interface/ActivityRegistry.h" 00007 #include "DataFormats/Provenance/interface/EventID.h" 00008 #include "DataFormats/Provenance/interface/Timestamp.h" 00009 #include "DataFormats/Provenance/interface/ModuleDescription.h" 00010 #include "DataFormats/Provenance/interface/ParameterSetID.h" 00011 00012 #include "boost/thread/thread.hpp" 00013 00014 #include <string> 00015 #include <vector> 00016 00017 namespace evf{ 00018 00019 00020 00021 class MicroStateService 00022 { 00023 public: 00024 MicroStateService(const edm::ParameterSet&,edm::ActivityRegistry&); 00025 ~MicroStateService(); 00026 00027 std::string getMicroState1(); 00028 00029 std::string const &getMicroState2(); 00030 00031 void postBeginJob(); 00032 00033 void postEndJob(); 00034 00035 void preEventProcessing(const edm::EventID&, const edm::Timestamp&); 00036 void postEventProcessing(const edm::Event&, const edm::EventSetup&); 00037 00038 void preSource(); 00039 void postSource(); 00040 00041 00042 void preModule(const edm::ModuleDescription&); 00043 void postModule(const edm::ModuleDescription&); 00044 00045 void setMicroState(std::string const *); 00046 00047 private: 00048 00049 std::string microstate1_; 00050 const std::string init; 00051 const std::string done; 00052 const std::string input; 00053 const std::string fwkovh; 00054 const std::string *microstate2_; 00055 boost::mutex lock_; 00056 }; 00057 00058 } 00059 00060 #endif