File indexing completed on 2024-04-06 12:03:12
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include <memory>
0017
0018
0019 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0020 #include "FWCore/Framework/interface/Frameworkfwd.h"
0021 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0022
0023 #include "FWCore/Framework/interface/Event.h"
0024 #include "FWCore/Framework/interface/MakerMacros.h"
0025 #include "FWCore/Framework/interface/EventSetup.h"
0026 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0027 #include "FWCore/Framework/interface/ESHandle.h"
0028 #include "CondFormats/JetMETObjects/interface/MEtXYcorrectParameters.h"
0029 #include "JetMETCorrections/Objects/interface/MEtXYcorrectRecord.h"
0030 #include "JetMETCorrections/Objects/interface/JetCorrectionsRecord.h"
0031
0032
0033
0034
0035 namespace {
0036
0037 class METCorrectorDBReader : public edm::one::EDAnalyzer<> {
0038 public:
0039 explicit METCorrectorDBReader(const edm::ParameterSet&);
0040 ~METCorrectorDBReader() override;
0041
0042 private:
0043 void beginJob() override;
0044 void analyze(const edm::Event&, const edm::EventSetup&) override;
0045 void endJob() override;
0046
0047 std::string mPayloadName, mGlobalTag;
0048 edm::ESGetToken<MEtXYcorrectParametersCollection, MEtXYcorrectRecord> mPayloadToken;
0049 bool mCreateTextFile, mPrintScreen;
0050 };
0051
0052 }
0053
0054 METCorrectorDBReader::METCorrectorDBReader(const edm::ParameterSet& iConfig) {
0055 mPayloadName = iConfig.getUntrackedParameter<std::string>("payloadName");
0056 mPayloadToken = esConsumes(edm::ESInputTag("", mPayloadName));
0057 mGlobalTag = iConfig.getUntrackedParameter<std::string>("globalTag");
0058 mPrintScreen = iConfig.getUntrackedParameter<bool>("printScreen");
0059 mCreateTextFile = iConfig.getUntrackedParameter<bool>("createTextFile");
0060 }
0061
0062 METCorrectorDBReader::~METCorrectorDBReader() {}
0063
0064 void METCorrectorDBReader::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
0065 edm::ESHandle<MEtXYcorrectParametersCollection> MEtXYcorParaColl = iSetup.getHandle(mPayloadToken);
0066 edm::LogInfo("METCorrectorDBReader") << "Inspecting MET payload with label: " << mPayloadName;
0067
0068
0069 std::vector<MEtXYcorrectParametersCollection::key_type> keys;
0070
0071 MEtXYcorParaColl->validKeys(keys);
0072
0073 for (std::vector<MEtXYcorrectParametersCollection::key_type>::const_iterator ikey = keys.begin(); ikey != keys.end();
0074 ++ikey) {
0075 std::string sectionName = MEtXYcorParaColl->findLabel(*ikey);
0076 edm::LogInfo("METCorrectorDBReader") << "Processing key = " << *ikey << "object label: " << sectionName;
0077 MEtXYcorrectParameters const& MEtXYcorParams = (*MEtXYcorParaColl)[*ikey];
0078
0079 if (mCreateTextFile) {
0080 std::string outFileName(mGlobalTag + "_Shift");
0081 std::string shiftType("MC");
0082
0083 if (MEtXYcorParaColl->isShiftMC(*ikey)) {
0084 shiftType = "MC";
0085 } else if (MEtXYcorParaColl->isShiftDY(*ikey)) {
0086 shiftType = "DY";
0087 } else if (MEtXYcorParaColl->isShiftTTJets(*ikey)) {
0088 shiftType = "TTJets";
0089 } else if (MEtXYcorParaColl->isShiftWJets(*ikey)) {
0090 shiftType = "WTJets";
0091 } else if (MEtXYcorParaColl->isShiftData(*ikey)) {
0092 shiftType = "Data";
0093 } else {
0094 throw cms::Exception("InvalidKey") << "************** Can't interpret the stored key: " << *ikey << std::endl;
0095 }
0096 outFileName += shiftType + "_" + mPayloadName + ".txt";
0097 edm::LogInfo("METCorrectorDBReader") << "outFileName: " << outFileName;
0098 MEtXYcorParams.printFile(outFileName, sectionName);
0099 }
0100
0101 if (mPrintScreen) {
0102 edm::LogInfo("METCorrectorDBReader") << "Level: " << MEtXYcorParaColl->levelName(*ikey);
0103 MEtXYcorParams.printScreen(sectionName);
0104 }
0105 }
0106
0107 edm::LogInfo("METCorrectorDBReader") << "Finished --------------------------";
0108 }
0109
0110 void METCorrectorDBReader::beginJob() {}
0111
0112 void METCorrectorDBReader::endJob() {}
0113
0114
0115 DEFINE_FWK_MODULE(METCorrectorDBReader);