CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/JetMETCorrections/Modules/plugins/JetCorrectorDBReader.cc

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // Package:    JetCorrectorDBReader
00004 // Class:      
00005 // 
00013 //
00014 // Original Author:  Benedikt Hegner 
00015 //         Created:  Tue Mar 09 01:32:51 CET 2010
00016 // $Id: JetCorrectorDBReader.cc,v 1.6 2010/11/04 13:17:00 kkousour Exp $
00017 //
00018 //
00019 
00020 
00021 // system include files
00022 #include <memory>
00023 
00024 // user include files
00025 #include "FWCore/Framework/interface/Frameworkfwd.h"
00026 #include "FWCore/Framework/interface/EDAnalyzer.h"
00027 
00028 #include "FWCore/Framework/interface/Event.h"
00029 #include "FWCore/Framework/interface/MakerMacros.h"
00030 #include "FWCore/Framework/interface/EventSetup.h"
00031 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00032 #include "FWCore/Framework/interface/ESHandle.h"
00033 #include "CondFormats/JetMETObjects/interface/JetCorrectorParameters.h"
00034 #include "JetMETCorrections/Objects/interface/JetCorrectionsRecord.h"
00035 //
00036 // class declaration
00037 //
00038 
00039 class JetCorrectorDBReader : public edm::EDAnalyzer {
00040 public:
00041   explicit JetCorrectorDBReader(const edm::ParameterSet&);
00042   ~JetCorrectorDBReader();
00043   
00044   
00045 private:
00046   virtual void beginJob() ;
00047   virtual void analyze(const edm::Event&, const edm::EventSetup&);
00048   virtual void endJob() ;
00049  
00050   std::string mPayloadName,mGlobalTag;
00051   bool mCreateTextFile,mPrintScreen;
00052 };
00053 
00054 
00055 JetCorrectorDBReader::JetCorrectorDBReader(const edm::ParameterSet& iConfig)
00056 {
00057   mPayloadName    = iConfig.getUntrackedParameter<std::string>("payloadName");
00058   mGlobalTag      = iConfig.getUntrackedParameter<std::string>("globalTag");  
00059   mPrintScreen    = iConfig.getUntrackedParameter<bool>("printScreen");
00060   mCreateTextFile = iConfig.getUntrackedParameter<bool>("createTextFile");
00061 }
00062 
00063 
00064 JetCorrectorDBReader::~JetCorrectorDBReader()
00065 {
00066  
00067 }
00068 
00069 void JetCorrectorDBReader::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup)
00070 {
00071   edm::ESHandle<JetCorrectorParametersCollection> JetCorParamsColl;
00072   std::cout <<"Inspecting JEC payload with label: "<< mPayloadName <<std::endl;
00073   iSetup.get<JetCorrectionsRecord>().get(mPayloadName,JetCorParamsColl);
00074   std::vector<JetCorrectorParametersCollection::key_type> keys;
00075   JetCorParamsColl->validKeys( keys );
00076   for ( std::vector<JetCorrectorParametersCollection::key_type>::const_iterator ibegin = keys.begin(),
00077           iend = keys.end(), ikey = ibegin; ikey != iend; ++ikey ) {
00078     std::cout<<"-------------------------------------------------" << std::endl;
00079     std::cout<<"Processing key = " << *ikey << std::endl;
00080     std::cout<<"object label: "<<JetCorParamsColl->findLabel(*ikey)<<std::endl;
00081     JetCorrectorParameters const & JetCorParams = (*JetCorParamsColl)[*ikey];
00082 
00083     if (mCreateTextFile)
00084       {
00085         std::cout<<"Creating txt file: "<<mGlobalTag+"_"+mPayloadName+"_"+JetCorParamsColl->findLabel(*ikey)+".txt"<<std::endl;
00086         JetCorParams.printFile(mGlobalTag+"_"+mPayloadName+"_"+JetCorParamsColl->findLabel(*ikey)+".txt");
00087       }
00088     if (mPrintScreen)
00089       JetCorParams.printScreen();
00090   }
00091 }
00092 
00093 void 
00094 JetCorrectorDBReader::beginJob()
00095 {
00096 }
00097 
00098 void 
00099 JetCorrectorDBReader::endJob() 
00100 {
00101 }
00102 
00103 //define this as a plug-in
00104 DEFINE_FWK_MODULE(JetCorrectorDBReader);