CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/CondTools/Hcal/plugins/HcalDcsValuesPopConAnalyzer.cc

Go to the documentation of this file.
00001 #include "CondCore/PopCon/interface/PopConAnalyzer.h"
00002 #include "CondTools/Hcal/interface/HcalDcsValuesHandler.h"
00003 #include "FWCore/Framework/interface/MakerMacros.h"
00004 
00005 //typedef popcon::PopConAnalyzer<HcalDcsValuesHandler> HcalDcsValuesPopConAnalyzer;
00006 
00007 class HcalDcsValuesPopConAnalyzer: public popcon::PopConAnalyzer<HcalDcsValuesHandler>
00008 {
00009 public:
00010   typedef HcalDcsValuesHandler SourceHandler;
00011 
00012   HcalDcsValuesPopConAnalyzer(const edm::ParameterSet& pset): 
00013     popcon::PopConAnalyzer<HcalDcsValuesHandler>(pset),
00014     m_populator(pset),
00015     m_source(pset.getParameter<edm::ParameterSet>("Source")) {}
00016 
00017 private:
00018   virtual void endJob() 
00019   {
00020     m_source.initObject(myDBObject);
00021     write();
00022   }
00023 
00024   virtual void analyze(const edm::Event& ev, const edm::EventSetup& esetup)
00025   {
00026     //Using ES to get the data:
00027 
00028     edm::ESHandle<HcalDcsValues> objecthandle;
00029     esetup.get<HcalDcsRcd>().get(objecthandle);
00030     myDBObject = new HcalDcsValues(*objecthandle.product() );
00031   }
00032 
00033   void write() { m_populator.write(m_source); }
00034 
00035 private:
00036   popcon::PopCon m_populator;
00037   SourceHandler m_source;
00038 
00039   HcalDcsValues* myDBObject;
00040 };
00041 
00042 DEFINE_FWK_MODULE(HcalDcsValuesPopConAnalyzer);