CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/EventFilter/Utilities/interface/MicroStateService.h

Go to the documentation of this file.
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