![]() |
![]() |
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);