CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/FWCore/PrescaleService/interface/PrescaleService.h

Go to the documentation of this file.
00001 #ifndef FWCore_PrescaleService_PrescaleService_h
00002 #define FWCore_PrescaleService_PrescaleService_h
00003 
00004 
00005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00006 #include "FWCore/ServiceRegistry/interface/SaveConfiguration.h"
00007 
00008 
00009 #include <string>
00010 #include <vector>
00011 #include <map>
00012 
00013 
00014 namespace edm {
00015   class ActivityRegistry;
00016   class Event;
00017   class EventID;
00018   class EventSetup;
00019   class Timestamp;
00020   class ConfigurationDescriptions;
00021   class ModuleDescription;
00022 
00023   namespace service {
00024 
00025     class PrescaleService : public edm::serviceregistry::SaveConfiguration
00026     {
00027     public:
00028       //
00029       // construction/destruction
00030       //
00031       PrescaleService(ParameterSet const&, ActivityRegistry&);
00032       ~PrescaleService();
00033       
00034 
00035       //
00036       // member functions
00037       //
00038 
00039       void reconfigure(ParameterSet const& ps);
00040 
00041       unsigned int getPrescale(unsigned int lvl1Index,
00042                                std::string const& prescaledPath);
00043       unsigned int getPrescale(std::string const& prescaledPath);
00044 
00045       void setIndex(unsigned int lvl1Index){iLvl1IndexDefault_ = lvl1Index;}      
00046       void postBeginJob();
00047       void postEndJob() {}
00048       void preEventProcessing(EventID const&, Timestamp const&) {}
00049       void postEventProcessing(Event const&, EventSetup const&) {}
00050       void preModule(ModuleDescription const&) {}
00051       void postModule(ModuleDescription const&) {}
00052       
00053       typedef std::vector<std::string>                         VString_t;
00054       typedef std::map<std::string, std::vector<unsigned int> > PrescaleTable_t;
00055       unsigned int getLvl1IndexDefault() const {return iLvl1IndexDefault_;}
00056       const VString_t& getLvl1Labels() const {return lvl1Labels_;}
00057       const PrescaleTable_t& getPrescaleTable() const {return prescaleTable_;}
00058 
00059       static void fillDescriptions(edm::ConfigurationDescriptions & descriptions);
00060 
00061     private:
00062       //
00063       // private member functions
00064       //
00065       void configure();
00066       
00067       //
00068       // member data
00069       //
00070 
00071       bool            configured_;
00072       VString_t       lvl1Labels_; 
00073       unsigned int    nLvl1Index_;
00074       unsigned int    iLvl1IndexDefault_;
00075       std::vector<ParameterSet> vpsetPrescales_;
00076       PrescaleTable_t prescaleTable_;
00077     };
00078   }
00079 }
00080 
00081 #endif