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 00011 #include "boost/thread/thread.hpp" 00012 00013 #include <string> 00014 #include <vector> 00015 00016 namespace evf { 00017 00018 class MicroStateService 00019 { 00020 public: 00021 MicroStateService(const edm::ParameterSet&,edm::ActivityRegistry&); 00022 ~MicroStateService(); 00023 00024 std::string getMicroState1(); 00025 00026 std::string getMicroState2(); 00027 00028 void postBeginJob(); 00029 void postEndJob(); 00030 00031 void preEventProcessing(const edm::EventID&, const edm::Timestamp&); 00032 void postEventProcessing(const edm::Event&, const edm::EventSetup&); 00033 00034 void preSource(); 00035 void postSource(); 00036 00037 00038 void preModule(const edm::ModuleDescription&); 00039 void postModule(const edm::ModuleDescription&); 00040 00041 private: 00042 00043 std::string microstate1_; 00044 std::string microstate2_; 00045 00046 boost::mutex lock_; 00047 00048 }; 00049 00050 } 00051 00052 #endif