File indexing completed on 2025-03-13 02:31:42
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #include "DQMOffline/JetMET/interface/METAnalyzer.h"
0016 #include "DataFormats/Common/interface/Handle.h"
0017 #include "FWCore/Common/interface/TriggerNames.h"
0018 #include "DataFormats/Math/interface/LorentzVector.h"
0019 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0020
0021 #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h"
0022 #include "DataFormats/CaloTowers/interface/CaloTowerDetId.h"
0023 #include "DataFormats/EcalDetId/interface/EcalSubdetector.h"
0024 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
0025
0026 #include "DataFormats/Math/interface/LorentzVector.h"
0027
0028 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h"
0029 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetup.h"
0030 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h"
0031 #include <cmath>
0032 #include "TH2F.h"
0033 #include "TH2.h"
0034
0035 #include <string>
0036
0037 using namespace edm;
0038 using namespace reco;
0039 using namespace math;
0040
0041
0042 METAnalyzer::METAnalyzer(const edm::ParameterSet& pSet) {
0043 parameters = pSet;
0044
0045 m_l1algoname_ = pSet.getParameter<std::string>("l1algoname");
0046 m_bitAlgTechTrig_ = -1;
0047
0048 miniaodfilterdec = -1;
0049
0050 LSBegin_ = pSet.getParameter<int>("LSBegin");
0051 LSEnd_ = pSet.getParameter<int>("LSEnd");
0052
0053 ptMinCand_ = pSet.getParameter<double>("ptMinCand");
0054
0055 MetType_ = parameters.getUntrackedParameter<std::string>("METType");
0056
0057 triggerResultsLabel_ = parameters.getParameter<edm::InputTag>("TriggerResultsLabel");
0058 triggerResultsToken_ = consumes<edm::TriggerResults>(edm::InputTag(triggerResultsLabel_));
0059
0060 isCaloMet_ = (std::string("calo") == MetType_);
0061
0062 isPFMet_ = (std::string("pf") == MetType_);
0063 isMiniAODMet_ = (std::string("miniaod") == MetType_);
0064 if (!isMiniAODMet_) {
0065 jetCorrectorToken_ = consumes<reco::JetCorrector>(pSet.getParameter<edm::InputTag>("JetCorrections"));
0066 }
0067
0068
0069 metCollectionLabel_ = parameters.getParameter<edm::InputTag>("METCollectionLabel");
0070
0071 if ( isCaloMet_) {
0072 inputJetIDValueMap = pSet.getParameter<edm::InputTag>("InputJetIDValueMap");
0073 jetID_ValueMapToken_ = consumes<edm::ValueMap<reco::JetID> >(inputJetIDValueMap);
0074 jetIDFunctorLoose = JetIDSelectionFunctor(JetIDSelectionFunctor::PURE09, JetIDSelectionFunctor::LOOSE);
0075 }
0076
0077 if (isPFMet_) {
0078 pflowToken_ = consumes<std::vector<reco::PFCandidate> >(pSet.getParameter<edm::InputTag>("srcPFlow"));
0079 pfjetIDFunctorLoose = PFJetIDSelectionFunctor(PFJetIDSelectionFunctor::WINTER16, PFJetIDSelectionFunctor::LOOSE);
0080 }
0081 if (isMiniAODMet_) {
0082 pflowPackedToken_ = consumes<std::vector<pat::PackedCandidate> >(pSet.getParameter<edm::InputTag>("srcPFlow"));
0083 pfjetIDFunctorLoose = PFJetIDSelectionFunctor(PFJetIDSelectionFunctor::WINTER16, PFJetIDSelectionFunctor::LOOSE);
0084 }
0085 MuonsToken_ = consumes<reco::MuonCollection>(pSet.getParameter<edm::InputTag>("muonsrc"));
0086
0087 ptThreshold_ = parameters.getParameter<double>("ptThreshold");
0088
0089 if (isPFMet_) {
0090 pfMetToken_ = consumes<reco::PFMETCollection>(edm::InputTag(metCollectionLabel_));
0091 }
0092 if (isCaloMet_) {
0093 caloMetToken_ = consumes<reco::CaloMETCollection>(edm::InputTag(metCollectionLabel_));
0094 }
0095 if (isMiniAODMet_) {
0096 patMetToken_ = consumes<pat::METCollection>(edm::InputTag(metCollectionLabel_));
0097 }
0098
0099
0100
0101
0102 fill_met_high_level_histo = parameters.getParameter<bool>("fillMetHighLevel");
0103 fillCandidateMap_histos = parameters.getParameter<bool>("fillCandidateMaps");
0104
0105
0106 cleaningParameters_ = pSet.getParameter<ParameterSet>("CleaningParameters");
0107
0108 diagnosticsParameters_ = pSet.getParameter<std::vector<edm::ParameterSet> >("METDiagonisticsParameters");
0109
0110 edm::ConsumesCollector iC = consumesCollector();
0111
0112 DCSFilter_ = new JetMETDQMDCSFilter(parameters.getParameter<ParameterSet>("DCSFilter"), iC);
0113
0114
0115 bypassAllPVChecks_ = cleaningParameters_.getParameter<bool>("bypassAllPVChecks");
0116 bypassAllDCSChecks_ = cleaningParameters_.getParameter<bool>("bypassAllDCSChecks");
0117 runcosmics_ = parameters.getUntrackedParameter<bool>("runcosmics");
0118 onlyCleaned_ = parameters.getUntrackedParameter<bool>("onlyCleaned");
0119 vertexTag_ = cleaningParameters_.getParameter<edm::InputTag>("vertexCollection");
0120 vertexToken_ = consumes<std::vector<reco::Vertex> >(edm::InputTag(vertexTag_));
0121
0122
0123 gtTag_ = cleaningParameters_.getParameter<edm::InputTag>("gtLabel");
0124 gtToken_ = consumes<L1GlobalTriggerReadoutRecord>(edm::InputTag(gtTag_));
0125
0126
0127 jetCollectionLabel_ = parameters.getParameter<edm::InputTag>("JetCollectionLabel");
0128 if (isCaloMet_)
0129 caloJetsToken_ = consumes<reco::CaloJetCollection>(jetCollectionLabel_);
0130
0131 if (isPFMet_)
0132 pfJetsToken_ = consumes<reco::PFJetCollection>(jetCollectionLabel_);
0133 if (isMiniAODMet_)
0134 patJetsToken_ = consumes<pat::JetCollection>(jetCollectionLabel_);
0135
0136 HBHENoiseStringMiniAOD = parameters.getParameter<std::string>("HBHENoiseLabelMiniAOD");
0137 HBHEIsoNoiseStringMiniAOD = parameters.getParameter<std::string>("HBHEIsoNoiseLabelMiniAOD");
0138
0139 hbheNoiseFilterResultTag_ = parameters.getParameter<edm::InputTag>("HBHENoiseFilterResultLabel");
0140 hbheNoiseFilterResultToken_ = consumes<bool>(hbheNoiseFilterResultTag_);
0141 hbheNoiseIsoFilterResultTag_ = parameters.getParameter<edm::InputTag>("HBHENoiseIsoFilterResultLabel");
0142 hbheIsoNoiseFilterResultToken_ = consumes<bool>(hbheNoiseIsoFilterResultTag_);
0143 CSCHaloResultTag_ = parameters.getParameter<edm::InputTag>("CSCHaloResultLabel");
0144 CSCHaloResultToken_ = consumes<bool>(CSCHaloResultTag_);
0145 CSCHalo2015ResultTag_ = parameters.getParameter<edm::InputTag>("CSCHalo2015ResultLabel");
0146 CSCHalo2015ResultToken_ = consumes<bool>(CSCHalo2015ResultTag_);
0147 EcalDeadCellTriggerTag_ = parameters.getParameter<edm::InputTag>("EcalDeadCellTriggerPrimitiveFilterLabel");
0148 EcalDeadCellTriggerToken_ = consumes<bool>(EcalDeadCellTriggerTag_);
0149 EcalDeadCellBoundaryTag_ = parameters.getParameter<edm::InputTag>("EcalDeadCellBoundaryEnergyFilterLabel");
0150 EcalDeadCellBoundaryToken_ = consumes<bool>(EcalDeadCellBoundaryTag_);
0151 eeBadScFilterTag_ = parameters.getParameter<edm::InputTag>("eeBadScFilterLabel");
0152 eeBadScFilterToken_ = consumes<bool>(eeBadScFilterTag_);
0153 HcalStripHaloTag_ = parameters.getParameter<edm::InputTag>("HcalStripHaloFilterLabel");
0154 HcalStripHaloToken_ = consumes<bool>(HcalStripHaloTag_);
0155
0156 if (isMiniAODMet_) {
0157 METFilterMiniAODLabel_ = parameters.getParameter<edm::InputTag>("FilterResultsLabelMiniAOD");
0158 METFilterMiniAODToken_ = consumes<edm::TriggerResults>(METFilterMiniAODLabel_);
0159
0160 METFilterMiniAODLabel2_ = parameters.getParameter<edm::InputTag>("FilterResultsLabelMiniAOD2");
0161 METFilterMiniAODToken2_ = consumes<edm::TriggerResults>(METFilterMiniAODLabel2_);
0162 }
0163
0164
0165 nbinsPV_ = parameters.getParameter<int>("pVBin");
0166 nPVMin_ = parameters.getParameter<double>("pVMin");
0167 nPVMax_ = parameters.getParameter<double>("pVMax");
0168
0169 triggerSelectedSubFolders_ = parameters.getParameter<edm::VParameterSet>("triggerSelectedSubFolders");
0170 for (edm::VParameterSet::const_iterator it = triggerSelectedSubFolders_.begin();
0171 it != triggerSelectedSubFolders_.end();
0172 it++) {
0173 triggerFolderEventFlag_.push_back(new GenericTriggerEventFlag(*it, consumesCollector(), *this));
0174 triggerFolderExpr_.push_back(it->getParameter<std::vector<std::string> >("hltPaths"));
0175 triggerFolderLabels_.push_back(it->getParameter<std::string>("label"));
0176 }
0177
0178 cleaningParameters_ = parameters.getParameter<ParameterSet>("CleaningParameters");
0179
0180 verbose_ = parameters.getParameter<int>("verbose");
0181
0182 FolderName_ = parameters.getUntrackedParameter<std::string>("FolderName");
0183
0184 l1gtTrigMenuToken_ = esConsumes<edm::Transition::BeginRun>();
0185 }
0186
0187
0188 METAnalyzer::~METAnalyzer() {
0189 for (std::vector<GenericTriggerEventFlag*>::const_iterator it = triggerFolderEventFlag_.begin();
0190 it != triggerFolderEventFlag_.end();
0191 it++) {
0192 delete *it;
0193 }
0194 delete DCSFilter_;
0195 }
0196
0197 void METAnalyzer::bookHistograms(DQMStore::IBooker& ibooker, edm::Run const& iRun, edm::EventSetup const&) {
0198 std::string DirName = FolderName_ + metCollectionLabel_.label();
0199 ibooker.setCurrentFolder(DirName);
0200
0201
0202 ibooker.setScope(MonitorElementData::Scope::RUN);
0203
0204 if (!folderNames_.empty()) {
0205 folderNames_.clear();
0206 }
0207 if (runcosmics_) {
0208 folderNames_.push_back("Uncleaned");
0209 } else {
0210 if (!onlyCleaned_) {
0211 folderNames_.push_back("Uncleaned");
0212 }
0213 folderNames_.push_back("Cleaned");
0214 folderNames_.push_back("DiJet");
0215 if (!isMiniAODMet_) {
0216 folderNames_.push_back("ZJets");
0217 }
0218 }
0219 for (std::vector<std::string>::const_iterator ic = folderNames_.begin(); ic != folderNames_.end(); ic++) {
0220 bookMESet(DirName + "/" + *ic, ibooker, map_dijet_MEs);
0221 }
0222 }
0223
0224
0225 void METAnalyzer::bookMESet(std::string DirName,
0226 DQMStore::IBooker& ibooker,
0227 std::map<std::string, MonitorElement*>& map_of_MEs) {
0228 bool bLumiSecPlot = fill_met_high_level_histo;
0229
0230 bool fillPFCandidatePlots = false;
0231 bool fillZPlots = false;
0232
0233 if (DirName.find("Cleaned") != std::string::npos) {
0234 fillPFCandidatePlots = true;
0235 bookMonitorElement(DirName, ibooker, map_of_MEs, bLumiSecPlot, fillPFCandidatePlots, fillZPlots);
0236
0237
0238
0239
0240
0241
0242 } else if (DirName.find("ZJets") != std::string::npos) {
0243 fillPFCandidatePlots = false;
0244 fillZPlots = true;
0245 bookMonitorElement(DirName, ibooker, map_of_MEs, bLumiSecPlot, fillPFCandidatePlots, fillZPlots);
0246 } else {
0247 bookMonitorElement(DirName, ibooker, map_of_MEs, bLumiSecPlot, fillPFCandidatePlots, fillZPlots);
0248 }
0249 }
0250
0251
0252 void METAnalyzer::bookMonitorElement(std::string DirName,
0253 DQMStore::IBooker& ibooker,
0254 std::map<std::string, MonitorElement*>& map_of_MEs,
0255 bool bLumiSecPlot = false,
0256 bool fillPFCandPlots = false,
0257 bool fillZPlots = false) {
0258 if (verbose_)
0259 std::cout << "bookMonitorElement " << DirName << std::endl;
0260
0261 ibooker.setCurrentFolder(DirName);
0262 if (fillZPlots) {
0263 if (isCaloMet_) {
0264 meZJets_u_par = ibooker.book1D("u_parallel_Z_inc", "u_parallel_Z_inc", 50, -1000., 75);
0265 } else {
0266 meZJets_u_par = ibooker.book1D("u_parallel_Z_inc", "u_parallel_Z_inc", 50, -800., 75);
0267 }
0268 meZJets_u_par_ZPt_0_15 = ibooker.book1D("u_parallel_ZPt_0_15", "u_parallel_ZPt_0_15", 50, -100, 75);
0269 meZJets_u_par_ZPt_15_30 = ibooker.book1D("u_parallel_ZPt_15_30", "u_parallel_ZPt_15_30", 50, -100, 50);
0270 meZJets_u_par_ZPt_30_55 = ibooker.book1D("u_parallel_ZPt_30_55", "u_parallel_ZPt_30_55", 50, -175, 50);
0271 meZJets_u_par_ZPt_55_75 = ibooker.book1D("u_parallel_ZPt_55_75", "u_parallel_ZPt_55_75", 50, -175, 0);
0272 meZJets_u_par_ZPt_75_150 = ibooker.book1D("u_parallel_ZPt_75_150", "u_parallel_ZPt_75_150", 50, -300, 0);
0273 if (isCaloMet_) {
0274 meZJets_u_par_ZPt_150_290 = ibooker.book1D("u_parallel_ZPt_150_290", "u_parallel_ZPt_150_290", 50, -750, -100);
0275 } else {
0276 meZJets_u_par_ZPt_150_290 = ibooker.book1D("u_parallel_ZPt_150_290", "u_parallel_ZPt_150_290", 50, -450, -50);
0277 }
0278 if (isCaloMet_) {
0279 meZJets_u_par_ZPt_290 = ibooker.book1D("u_parallel_ZPt_290", "u_parallel_ZPt_290", 50, -1000., -350.);
0280 } else {
0281 meZJets_u_par_ZPt_290 = ibooker.book1D("u_parallel_ZPt_290", "u_parallel_ZPt_290", 50, -750., -150.);
0282 }
0283 meZJets_u_perp = ibooker.book1D("u_perp_Z_inc", "u_perp_Z_inc", 50, -85., 85.);
0284 meZJets_u_perp_ZPt_0_15 = ibooker.book1D("u_perp_ZPt_0_15", "u_perp_ZPt_0_15", 50, -85., 85.);
0285 meZJets_u_perp_ZPt_15_30 = ibooker.book1D("u_perp_ZPt_15_30", "u_perp_ZPt_15_30", 50, -85., 85.);
0286 meZJets_u_perp_ZPt_30_55 = ibooker.book1D("u_perp_ZPt_30_55", "u_perp_ZPt_30_55", 50, -85., 85.);
0287 meZJets_u_perp_ZPt_55_75 = ibooker.book1D("u_perp_ZPt_55_75", "u_perp_ZPt_55_75", 50, -85., 85.);
0288 meZJets_u_perp_ZPt_75_150 = ibooker.book1D("u_perp_ZPt_75_150", "u_perp_ZPt_75_150", 50, -85., 85.);
0289 meZJets_u_perp_ZPt_150_290 = ibooker.book1D("u_perp_ZPt_150_290", "u_perp_ZPt_150_290", 50, -85., 85.);
0290 meZJets_u_perp_ZPt_290 = ibooker.book1D("u_perp_ZPt_290", "u_perp_ZPt_290", 50, -85., 85.);
0291
0292 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_Z_inc", meZJets_u_par));
0293 map_of_MEs.insert(
0294 std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_0_15", meZJets_u_par_ZPt_0_15));
0295 map_of_MEs.insert(
0296 std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_15_30", meZJets_u_par_ZPt_15_30));
0297 map_of_MEs.insert(
0298 std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_30_55", meZJets_u_par_ZPt_30_55));
0299 map_of_MEs.insert(
0300 std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_55_75", meZJets_u_par_ZPt_55_75));
0301 map_of_MEs.insert(
0302 std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_75_150", meZJets_u_par_ZPt_75_150));
0303 map_of_MEs.insert(
0304 std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_150_290", meZJets_u_par_ZPt_150_290));
0305 map_of_MEs.insert(
0306 std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_290", meZJets_u_par_ZPt_290));
0307
0308 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_Z_inc", meZJets_u_perp));
0309 map_of_MEs.insert(
0310 std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_0_15", meZJets_u_perp_ZPt_0_15));
0311 map_of_MEs.insert(
0312 std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_15_30", meZJets_u_perp_ZPt_15_30));
0313 map_of_MEs.insert(
0314 std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_30_55", meZJets_u_perp_ZPt_30_55));
0315 map_of_MEs.insert(
0316 std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_55_75", meZJets_u_perp_ZPt_55_75));
0317 map_of_MEs.insert(
0318 std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_75_150", meZJets_u_perp_ZPt_75_150));
0319 map_of_MEs.insert(
0320 std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_150_290", meZJets_u_perp_ZPt_150_290));
0321 map_of_MEs.insert(
0322 std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_290", meZJets_u_perp_ZPt_290));
0323 }
0324
0325 if (!fillZPlots) {
0326 hMEx = ibooker.book1D("MEx", "MEx", 200, -500, 500);
0327 hMEy = ibooker.book1D("MEy", "MEy", 200, -500, 500);
0328 hMET = ibooker.book1D("MET", "MET", 200, 0, 1000);
0329
0330 {
0331 auto scope = DQMStore::IBooker::UseLumiScope(ibooker);
0332 hMET_2 = ibooker.book1D("MET_2", "MET Range 2", 200, 0, 2000);
0333 hSumET = ibooker.book1D("SumET", "SumET", 400, 0, 4000);
0334 hMETSig = ibooker.book1D("METSig", "METSig", 51, 0, 51);
0335 hMETPhi = ibooker.book1D("METPhi", "METPhi", 60, -M_PI, M_PI);
0336 }
0337
0338 hMET_logx = ibooker.book1D("MET_logx", "MET_logx", 40, -1, 9);
0339 hSumET_logx = ibooker.book1D("SumET_logx", "SumET_logx", 40, -1, 9);
0340
0341 hMEx->setAxisTitle("MEx [GeV]", 1);
0342 hMEy->setAxisTitle("MEy [GeV]", 1);
0343 hMET->setAxisTitle("MET [GeV]", 1);
0344 hMET_2->setAxisTitle("MET [GeV]", 1);
0345 hSumET->setAxisTitle("SumET [GeV]", 1);
0346 hMETSig->setAxisTitle("METSig", 1);
0347 hMETPhi->setAxisTitle("METPhi [rad]", 1);
0348 hMET_logx->setAxisTitle("log(MET) [GeV]", 1);
0349 hSumET_logx->setAxisTitle("log(SumET) [GeV]", 1);
0350
0351 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MEx", hMEx));
0352 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MEy", hMEy));
0353 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET", hMET));
0354 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_2", hMET_2));
0355 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET", hSumET));
0356 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METSig", hMETSig));
0357 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhi", hMETPhi));
0358 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_logx", hMET_logx));
0359 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET_logx", hSumET_logx));
0360
0361 hMET_HBHENoiseFilter = ibooker.book1D("MET_HBHENoiseFilter", "MET_HBHENoiseFiltered", 200, 0, 1000);
0362 hMET_CSCTightHaloFilter = ibooker.book1D("MET_CSCTightHaloFilter", "MET_CSCTightHaloFiltered", 200, 0, 1000);
0363 hMET_eeBadScFilter = ibooker.book1D("MET_eeBadScFilter", "MET_eeBadScFiltered", 200, 0, 1000);
0364 hMET_HBHEIsoNoiseFilter = ibooker.book1D("MET_HBHEIsoNoiseFilter", "MET_HBHEIsoNoiseFiltered", 200, 0, 1000);
0365 hMET_CSCTightHalo2015Filter =
0366 ibooker.book1D("MET_CSCTightHalo2015Filter", "MET_CSCTightHalo2015Filtered", 200, 0, 1000);
0367 hMET_EcalDeadCellTriggerFilter =
0368 ibooker.book1D("MET_EcalDeadCellTriggerFilter", "MET_EcalDeadCellTriggerFiltered", 200, 0, 1000);
0369 hMET_EcalDeadCellBoundaryFilter =
0370 ibooker.book1D("MET_EcalDeadCellBoundaryFilter", "MET_EcalDeadCellBoundaryFiltered", 200, 0, 1000);
0371 hMET_HcalStripHaloFilter = ibooker.book1D("MET_HcalStripHaloFilter", "MET_HcalStripHaloFiltered", 200, 0, 1000);
0372
0373 map_of_MEs.insert(
0374 std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_HBHENoiseFilter", hMET_HBHENoiseFilter));
0375 map_of_MEs.insert(
0376 std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_CSCTightHaloFilter", hMET_CSCTightHaloFilter));
0377 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_eeBadScFilter", hMET_eeBadScFilter));
0378 map_of_MEs.insert(
0379 std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_HBHEIsoNoiseFilter", hMET_HBHEIsoNoiseFilter));
0380 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_CSCTightHalo2015Filter",
0381 hMET_CSCTightHalo2015Filter));
0382 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_EcalDeadCellTriggerFilter",
0383 hMET_EcalDeadCellTriggerFilter));
0384 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_EcalDeadCellBoundaryFilter",
0385 hMET_EcalDeadCellBoundaryFilter));
0386 map_of_MEs.insert(
0387 std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_HcalStripHaloFilter", hMET_HcalStripHaloFilter));
0388
0389
0390
0391 meMEx_profile = ibooker.bookProfile("MEx_profile", "met.px()", nbinsPV_, nPVMin_, nPVMax_, 200, -500, 500);
0392 meMEy_profile = ibooker.bookProfile("MEy_profile", "met.py()", nbinsPV_, nPVMin_, nPVMax_, 200, -500, 500);
0393 meMET_profile = ibooker.bookProfile("MET_profile", "met.pt()", nbinsPV_, nPVMin_, nPVMax_, 200, 0, 1000);
0394 meSumET_profile = ibooker.bookProfile("SumET_profile", "met.sumEt()", nbinsPV_, nPVMin_, nPVMax_, 400, 0, 4000);
0395
0396
0397 meMEx_profile->setAxisTitle("nvtx", 1);
0398 meMEy_profile->setAxisTitle("nvtx", 1);
0399 meMET_profile->setAxisTitle("nvtx", 1);
0400 meSumET_profile->setAxisTitle("nvtx", 1);
0401
0402 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MEx_profile", meMEx_profile));
0403 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MEy_profile", meMEy_profile));
0404 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_profile", meMET_profile));
0405 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET_profile", meSumET_profile));
0406
0407 if (isCaloMet_) {
0408 hCaloHadEtInHB = ibooker.book1D("CaloHadEtInHB", "CaloHadEtInHB", 50, 0, 2000);
0409 hCaloHadEtInHB->setAxisTitle("Had Et [GeV]", 1);
0410 hCaloHadEtInHO = ibooker.book1D("CaloHadEtInHO", "CaloHadEtInHO", 25, 0, 500);
0411 hCaloHadEtInHO->setAxisTitle("Had Et [GeV]", 1);
0412 hCaloHadEtInHE = ibooker.book1D("CaloHadEtInHE", "CaloHadEtInHE", 50, 0, 2000);
0413 hCaloHadEtInHE->setAxisTitle("Had Et [GeV]", 1);
0414 hCaloHadEtInHF = ibooker.book1D("CaloHadEtInHF", "CaloHadEtInHF", 50, 0, 1000);
0415 hCaloHadEtInHF->setAxisTitle("Had Et [GeV]", 1);
0416 hCaloEmEtInHF = ibooker.book1D("CaloEmEtInHF", "CaloEmEtInHF", 25, 0, 500);
0417 hCaloEmEtInHF->setAxisTitle("EM Et [GeV]", 1);
0418 hCaloEmEtInEE = ibooker.book1D("CaloEmEtInEE", "CaloEmEtInEE", 50, 0, 1000);
0419 hCaloEmEtInEE->setAxisTitle("EM Et [GeV]", 1);
0420 hCaloEmEtInEB = ibooker.book1D("CaloEmEtInEB", "CaloEmEtInEB", 50, 0, 2000);
0421 hCaloEmEtInEB->setAxisTitle("EM Et [GeV]", 1);
0422
0423 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloHadEtInHO", hCaloHadEtInHO));
0424 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloHadEtInHF", hCaloHadEtInHF));
0425 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloHadEtInHE", hCaloHadEtInHE));
0426 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloHadEtInHB", hCaloHadEtInHB));
0427 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtInHF", hCaloEmEtInHF));
0428 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtInEE", hCaloEmEtInEE));
0429 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtInEB", hCaloEmEtInEB));
0430
0431 hCaloMETPhi020 = ibooker.book1D("CaloMETPhi020", "CaloMETPhi020", 60, -M_PI, M_PI);
0432 hCaloMETPhi020->setAxisTitle("METPhi [rad] (MET>20 GeV)", 1);
0433
0434 hCaloEtFractionHadronic = ibooker.book1D("CaloEtFractionHadronic", "CaloEtFractionHadronic", 50, 0, 1);
0435 hCaloEtFractionHadronic->setAxisTitle("Hadronic Et Fraction", 1);
0436 hCaloEmEtFraction = ibooker.book1D("CaloEmEtFraction", "CaloEmEtFraction", 50, 0, 1);
0437 hCaloEmEtFraction->setAxisTitle("EM Et Fraction", 1);
0438
0439 hCaloEmEtFraction020 = ibooker.book1D("CaloEmEtFraction020", "CaloEmEtFraction020", 50, 0, 1);
0440 hCaloEmEtFraction020->setAxisTitle("EM Et Fraction (MET>20 GeV)", 1);
0441
0442 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloMETPhi020", hCaloMETPhi020));
0443 map_of_MEs.insert(
0444 std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEtFractionHadronic", hCaloEtFractionHadronic));
0445 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtFraction", hCaloEmEtFraction));
0446 map_of_MEs.insert(
0447 std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtFraction020", hCaloEmEtFraction020));
0448 }
0449
0450 if (isPFMet_) {
0451 if (fillPFCandPlots &&
0452 fillCandidateMap_histos) {
0453
0454 meCHF_Barrel = ibooker.book1D("PfChargedHadronEtFractionBarrel", "chargedHadronEtFractionBarrel", 50, 0, 1);
0455 meCHF_EndcapPlus =
0456 ibooker.book1D("PfChargedHadronEtFractionEndcapPlus", "chargedHadronEtFractionEndcapPlus", 50, 0, 1);
0457 meCHF_EndcapMinus =
0458 ibooker.book1D("PfChargedHadronEtFractionEndcapMinus", "chargedHadronEtFractionEndcapMinus", 50, 0, 1);
0459 meCHF_Barrel_BXm1Empty = ibooker.book1D(
0460 "PfChargedHadronEtFractionBarrel_BXm1Empty", "chargedHadronEtFractionBarrel prev empty bunch", 50, 0, 1);
0461 meCHF_EndcapPlus_BXm1Empty = ibooker.book1D("PfChargedHadronEtFractionEndcapPlus_BXm1Empty",
0462 "chargedHadronEtFractionEndcapPlus prev empty bunch",
0463 50,
0464 0,
0465 1);
0466 meCHF_EndcapMinus_BXm1Empty = ibooker.book1D("PfChargedHadronEtFractionEndcapMinus_BXm1Empty",
0467 "chargedHadronEtFractionEndcapMinus prev empty bunch",
0468 50,
0469 0,
0470 1);
0471 meCHF_Barrel_BXm1Filled = ibooker.book1D("PfChargedHadronEtFractionBarrel_BXm1Filled",
0472 "chargedHadronEtFractionBarrel prev filled 2 bunches",
0473 50,
0474 0,
0475 1);
0476 meCHF_EndcapPlus_BXm1Filled = ibooker.book1D("PfChargedHadronEtFractionEndcapPlus_BXm1Filled",
0477 "chargedHadronEtFractionEndcapPlus prev filled bunch",
0478 50,
0479 0,
0480 1);
0481 meCHF_EndcapMinus_BXm1Filled = ibooker.book1D("PfChargedHadronEtFractionEndcapMinus_BXm1Filled",
0482 "chargedHadronEtFractionEndcapMinus prev filled bunch",
0483 50,
0484 0,
0485 1);
0486
0487 map_of_MEs.insert(
0488 std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEtFractionBarrel", meCHF_Barrel));
0489 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEtFractionEndcapPlus",
0490 meCHF_EndcapPlus));
0491 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0492 DirName + "/" + "PfChargedHadronEtFractionEndcapMinus", meCHF_EndcapMinus));
0493 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0494 DirName + "/" + "PfChargedHadronEtFractionBarrel_BXm1Empty", meCHF_Barrel_BXm1Empty));
0495 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0496 DirName + "/" + "PfChargedHadronEtFractionEndcapPlus_BXm1Empty", meCHF_EndcapPlus_BXm1Empty));
0497 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0498 DirName + "/" + "PfChargedHadronEtFractionEndcapMinus_BXm1Empty", meCHF_EndcapMinus_BXm1Empty));
0499
0500
0501
0502 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0503 DirName + "/" + "PfChargedHadronEtFractionBarrel_BXm1Filled", meCHF_Barrel_BXm1Filled));
0504 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0505 DirName + "/" + "PfChargedHadronEtFractionEndcapPlus_BXm1Filled", meCHF_EndcapPlus_BXm1Filled));
0506 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0507 DirName + "/" + "PfChargedHadronEtFractionEndcapMinus_BXm1Filled", meCHF_EndcapMinus_BXm1Filled));
0508
0509
0510
0511
0512 meNHF_Barrel = ibooker.book1D("PfNeutralHadronEtFractionBarrel", "neutralHadronEtFractionBarrel", 50, 0, 1);
0513 meNHF_EndcapPlus =
0514 ibooker.book1D("PfNeutralHadronEtFractionEndcapPlus", "neutralHadronEtFractionEndcapPlus", 50, 0, 1);
0515 meNHF_EndcapMinus =
0516 ibooker.book1D("PfNeutralHadronEtFractionEndcapMinus", "neutralHadronEtFractionEndcapMinus", 50, 0, 1);
0517 meNHF_Barrel_BXm1Empty = ibooker.book1D(
0518 "PfNeutralHadronEtFractionBarrel_BXm1Empty", "neutralHadronEtFractionBarrel prev empty bunch", 50, 0, 1);
0519 meNHF_EndcapPlus_BXm1Empty = ibooker.book1D("PfNeutralHadronEtFractionEndcapPlus_BXm1Empty",
0520 "neutralHadronEtFractionEndcapPlus prev empty bunch",
0521 50,
0522 0,
0523 1);
0524 meNHF_EndcapMinus_BXm1Empty = ibooker.book1D("PfNeutralHadronEtFractionEndcapMinus_BXm1Empty",
0525 "neutralHadronEtFractionEndcapMinus prev empty bunch",
0526 50,
0527 0,
0528 1);
0529
0530
0531
0532 meNHF_Barrel_BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionBarrel_BXm1Filled",
0533 "neutralHadronEtFractionBarrel prev filled 2 bunches",
0534 50,
0535 0,
0536 1);
0537 meNHF_EndcapPlus_BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionEndcapPlus_BXm1Filled",
0538 "neutralHadronEtFractionEndcapPlus prev filled bunch",
0539 50,
0540 0,
0541 1);
0542 meNHF_EndcapMinus_BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionEndcapMinus_BXm1Filled",
0543 "neutralHadronEtFractionEndcapMinus prev filled bunch",
0544 50,
0545 0,
0546 1);
0547
0548
0549
0550
0551 map_of_MEs.insert(
0552 std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEtFractionBarrel", meNHF_Barrel));
0553 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus",
0554 meNHF_EndcapPlus));
0555 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0556 DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus", meNHF_EndcapMinus));
0557 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0558 DirName + "/" + "PfNeutralHadronEtFractionBarrel_BXm1Empty", meNHF_Barrel_BXm1Empty));
0559 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0560 DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus_BXm1Empty", meNHF_EndcapPlus_BXm1Empty));
0561 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0562 DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus_BXm1Empty", meNHF_EndcapMinus_BXm1Empty));
0563
0564
0565
0566 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0567 DirName + "/" + "PfNeutralHadronEtFractionBarrel_BXm1Filled", meNHF_Barrel_BXm1Filled));
0568 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0569 DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus_BXm1Filled", meNHF_EndcapPlus_BXm1Filled));
0570 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0571 DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus_BXm1Filled", meNHF_EndcapMinus_BXm1Filled));
0572
0573
0574
0575
0576 mePhF_Barrel = ibooker.book1D("PfPhotonEtFractionBarrel", "photonEtFractionBarrel", 50, 0, 1);
0577 mePhF_EndcapPlus = ibooker.book1D("PfPhotonEtFractionEndcapPlus", "photonEtFractionEndcapPlus", 50, 0, 1);
0578 mePhF_EndcapMinus = ibooker.book1D("PfPhotonEtFractionEndcapMinus", "photonEtFractionEndcapMinus", 50, 0, 1);
0579 mePhF_Barrel_BXm1Empty =
0580 ibooker.book1D("PfPhotonEtFractionBarrel_BXm1Empty", "photonEtFractionBarrel prev empty bunch", 50, 0, 1);
0581 mePhF_EndcapPlus_BXm1Empty = ibooker.book1D(
0582 "PfPhotonEtFractionEndcapPlus_BXm1Empty", "photonEtFractionEndcapPlus prev empty bunch", 50, 0, 1);
0583 mePhF_EndcapMinus_BXm1Empty = ibooker.book1D(
0584 "PfPhotonEtFractionEndcapMinus_BXm1Empty", "photonEtFractionEndcapMinus prev empty bunch", 50, 0, 1);
0585
0586
0587
0588 mePhF_Barrel_BXm1Filled = ibooker.book1D(
0589 "PfPhotonEtFractionBarrel_BXm1Filled", "photonEtFractionBarrel prev filled 2 bunches", 50, 0, 1);
0590 mePhF_EndcapPlus_BXm1Filled = ibooker.book1D(
0591 "PfPhotonEtFractionEndcapPlus_BXm1Filled", "photonEtFractionEndcapPlus prev filled bunch", 50, 0, 1);
0592 mePhF_EndcapMinus_BXm1Filled = ibooker.book1D(
0593 "PfPhotonEtFractionEndcapMinus_BXm1Filled", "photonEtFractionEndcapMinus prev filled bunch", 50, 0, 1);
0594
0595
0596
0597
0598 map_of_MEs.insert(
0599 std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionBarrel", mePhF_Barrel));
0600 map_of_MEs.insert(
0601 std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionEndcapPlus", mePhF_EndcapPlus));
0602 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionEndcapMinus",
0603 mePhF_EndcapMinus));
0604 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionBarrel_BXm1Empty",
0605 mePhF_Barrel_BXm1Empty));
0606 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0607 DirName + "/" + "PfPhotonEtFractionEndcapPlus_BXm1Empty", mePhF_EndcapPlus_BXm1Empty));
0608 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0609 DirName + "/" + "PfPhotonEtFractionEndcapMinus_BXm1Empty", mePhF_EndcapMinus_BXm1Empty));
0610
0611
0612
0613 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionBarrel_BXm1Filled",
0614 mePhF_Barrel_BXm1Filled));
0615 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0616 DirName + "/" + "PfPhotonEtFractionEndcapPlus_BXm1Filled", mePhF_EndcapPlus_BXm1Filled));
0617 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0618 DirName + "/" + "PfPhotonEtFractionEndcapMinus_BXm1Filled", mePhF_EndcapMinus_BXm1Filled));
0619
0620
0621
0622
0623 meHFHadF_Plus = ibooker.book1D("PfHFHadronEtFractionPlus", "HFHadronEtFractionPlus", 50, 0, 1);
0624 meHFHadF_Minus = ibooker.book1D("PfHFHadronEtFractionMinus", "HFHadronEtFractionMinus", 50, 0, 1);
0625 meHFHadF_Plus_BXm1Empty =
0626 ibooker.book1D("PfHFHadronEtFractionPlus_BXm1Empty", "HFHadronEtFractionPlus prev empty bunch", 50, 0, 1);
0627 meHFHadF_Minus_BXm1Empty =
0628 ibooker.book1D("PfHFHadronEtFractionMinus_BXm1Empty", "HFHadronEtFractionMinus prev empty bunch", 50, 0, 1);
0629
0630
0631 meHFHadF_Plus_BXm1Filled =
0632 ibooker.book1D("PfHFHadronEtFractionPlus_BXm1Filled", "HFHadronEtFractionPlus prev filled bunch", 50, 0, 1);
0633 meHFHadF_Minus_BXm1Filled = ibooker.book1D(
0634 "PfHFHadronEtFractionMinus_BXm1Filled", "HFHadronEtFractionMinus prev filled bunch", 50, 0, 1);
0635
0636
0637
0638 map_of_MEs.insert(
0639 std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionPlus", meHFHadF_Plus));
0640 map_of_MEs.insert(
0641 std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionMinus", meHFHadF_Minus));
0642 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionPlus_BXm1Empty",
0643 meHFHadF_Plus_BXm1Empty));
0644 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionMinus_BXm1Empty",
0645 meHFHadF_Minus_BXm1Empty));
0646
0647
0648 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionPlus_BXm1Filled",
0649 meHFHadF_Plus_BXm1Filled));
0650 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0651 DirName + "/" + "PfHFHadronEtFractionMinus_BXm1Filled", meHFHadF_Minus_BXm1Filled));
0652
0653
0654
0655 meHFEMF_Plus = ibooker.book1D("PfHFEMEtFractionPlus", "HFEMEtFractionPlus", 50, 0, 1);
0656 meHFEMF_Minus = ibooker.book1D("PfHFEMEtFractionMinus", "HFEMEtFractionMinus", 50, 0, 1);
0657 meHFEMF_Plus_BXm1Empty =
0658 ibooker.book1D("PfHFEMEtFractionPlus_BXm1Empty", "HFEMEtFractionPlus prev empty bunch", 50, 0, 1);
0659 meHFEMF_Minus_BXm1Empty =
0660 ibooker.book1D("PfHFEMEtFractionMinus_BXm1Empty", "HFEMEtFractionMinus prev empty bunch", 50, 0, 1);
0661
0662
0663 meHFEMF_Plus_BXm1Filled =
0664 ibooker.book1D("PfHFEMEtFractionPlus_BXm1Filled", "HFEMEtFractionPlus prev filled bunch", 50, 0, 1);
0665 meHFEMF_Minus_BXm1Filled =
0666 ibooker.book1D("PfHFEMEtFractionMinus_BXm1Filled", "HFEMEtFractionMinus prev filled bunch", 50, 0, 1);
0667
0668
0669
0670 map_of_MEs.insert(
0671 std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionPlus", meHFEMF_Plus));
0672 map_of_MEs.insert(
0673 std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionMinus", meHFEMF_Minus));
0674 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionPlus_BXm1Empty",
0675 meHFEMF_Plus_BXm1Empty));
0676 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionMinus_BXm1Empty",
0677 meHFEMF_Minus_BXm1Empty));
0678
0679
0680 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionPlus_BXm1Filled",
0681 meHFEMF_Plus_BXm1Filled));
0682 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionMinus_BXm1Filled",
0683 meHFEMF_Minus_BXm1Filled));
0684
0685
0686
0687
0688
0689
0690
0691
0692
0693
0694
0695
0696
0697
0698
0699
0700
0701
0702
0703
0704
0705
0706
0707
0708
0709
0710
0711
0712
0713
0714
0715
0716
0717
0718
0719
0720
0721
0722
0723
0724
0725
0726
0727
0728
0729
0730
0731
0732
0733
0734
0735
0736
0737
0738
0739
0740
0741
0742
0743
0744 mePhotonEtFraction_BXm1Empty =
0745 ibooker.book1D("PfPhotonEtFraction_BXm1Empty", "photonEtFraction() prev empty bunch", 50, 0, 1);
0746 mePhotonEtFraction_BXm1Filled =
0747 ibooker.book1D("PfPhotonEtFraction_BXm1Filled", "photonEtFraction() prev filled bunch", 50, 0, 1);
0748 meNeutralHadronEtFraction_BXm1Empty = ibooker.book1D(
0749 "PfNeutralHadronEtFraction_BXm1Empty", "neutralHadronEtFraction() prev empty bunch", 50, 0, 1);
0750 meNeutralHadronEtFraction_BXm1Filled = ibooker.book1D(
0751 "PfNeutralHadronEtFraction_BXm1Filled", "neutralHadronEtFraction() prev filled bunch", 50, 0, 1);
0752 meChargedHadronEtFraction_BXm1Empty = ibooker.book1D(
0753 "PfChargedHadronEtFraction_BXm1Empty", "chargedHadronEtFraction() prev empty bunch", 50, 0, 1);
0754 meChargedHadronEtFraction_BXm1Filled = ibooker.book1D(
0755 "PfChargedHadronEtFraction_BXm1Filled", "chargedHadronEtFraction() prev filled bunch", 50, 0, 1);
0756 meMET_BXm1Empty = ibooker.book1D("MET_BXm1Empty", "MET prev empty bunch", 200, 0, 1000);
0757 meMET_BXm1Filled = ibooker.book1D("MET_BXm1Filled", "MET prev filled bunch", 200, 0, 1000);
0758 meSumET_BXm1Empty = ibooker.book1D("SumET_BXm1Empty", "SumET prev empty bunch", 400, 0, 4000);
0759 meSumET_BXm1Filled = ibooker.book1D("SumET_BXm1Filled", "SumET prev filled bunch", 400, 0, 4000);
0760
0761 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFraction_BXm1Empty",
0762 mePhotonEtFraction_BXm1Empty));
0763 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFraction_BXm1Filled",
0764 mePhotonEtFraction_BXm1Filled));
0765 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEtFraction_BXm1Empty",
0766 meNeutralHadronEtFraction_BXm1Empty));
0767 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralEtFraction_BXm1Filled",
0768 meNeutralHadronEtFraction_BXm1Filled));
0769 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEtFraction_BXm1Empty",
0770 meChargedHadronEtFraction_BXm1Empty));
0771 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedEtFraction_BXm1Filled",
0772 meChargedHadronEtFraction_BXm1Filled));
0773 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_BXm1Empty", meMET_BXm1Empty));
0774 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_BXm1Filled", meMET_BXm1Filled));
0775 map_of_MEs.insert(
0776 std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET_BXm1Empty", meSumET_BXm1Empty));
0777 map_of_MEs.insert(
0778 std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET_BXm1Filled", meSumET_BXm1Filled));
0779
0780 meMETPhiChargedHadronsBarrel_BXm1Filled = ibooker.book1D(
0781 "METPhiChargedHadronsBarrel_BXm1Filled", "METPhi_PFChargedHadronsBarrel prev bunch filled", 50, -M_PI, M_PI);
0782 meMETPhiChargedHadronsEndcapPlus_BXm1Filled =
0783 ibooker.book1D("METPhiChargedHadronsEndcapPlus_BXm1Filled",
0784 "METPhi_PFChargedHadronsEndcapPlus prev bunch filled",
0785 50,
0786 -M_PI,
0787 M_PI);
0788 meMETPhiChargedHadronsEndcapMinus_BXm1Filled =
0789 ibooker.book1D("METPhiChargedHadronsEndcapMinus_BXm1Filled",
0790 "METPhi_PFChargedHadronsEndcapMinus prev bunch filled",
0791 50,
0792 -M_PI,
0793 M_PI);
0794 meMETPhiNeutralHadronsBarrel_BXm1Filled = ibooker.book1D(
0795 "METPhiNeutralHadronsBarrel_BXm1Filled", "METPhi_PFNeutralHadronsBarrel prev bunch filled", 50, -M_PI, M_PI);
0796 meMETPhiNeutralHadronsEndcapPlus_BXm1Filled =
0797 ibooker.book1D("METPhiNeutralHadronsEndcapPlus_BXm1Filled",
0798 "METPhi_PFNeutralHadronsEndcapPlus prev bunch filled",
0799 50,
0800 -M_PI,
0801 M_PI);
0802 meMETPhiNeutralHadronsEndcapMinus_BXm1Filled =
0803 ibooker.book1D("METPhiNeutralHadronsEndcapMinus_BXm1Filled",
0804 "METPhi_PFNeutralHadronsEndcapMinus prev bunch filled",
0805 50,
0806 -M_PI,
0807 M_PI);
0808 meMETPhiPhotonsBarrel_BXm1Filled = ibooker.book1D(
0809 "METPhiPhotonsBarrel_BXm1Filled", "METPhi_PFPhotonsBarrel prev bunch filled", 50, -M_PI, M_PI);
0810 meMETPhiPhotonsEndcapPlus_BXm1Filled = ibooker.book1D(
0811 "METPhiPhotonsEndcapPlus_BXm1Filled", "METPhi_PFPhotonsEndcapPlus prev bunch filled", 50, -M_PI, M_PI);
0812 meMETPhiPhotonsEndcapMinus_BXm1Filled = ibooker.book1D(
0813 "METPhiPhotonsEndcapMinus_BXm1Filled", "METPhi_PFPhotonsEndcapMinus prev bunch filled", 50, -M_PI, M_PI);
0814 meMETPhiHFHadronsPlus_BXm1Filled = ibooker.book1D(
0815 "METPhiHFHadronsPlus_BXm1Filled", "METPhi_PFHFHadronsPlus prev bunch filled", 50, -M_PI, M_PI);
0816 meMETPhiHFHadronsMinus_BXm1Filled = ibooker.book1D(
0817 "METPhiHFHadronsMinus_BXm1Filled", "METPhi_PFHFHadronsMinus prev bunch filled", 50, -M_PI, M_PI);
0818 meMETPhiHFEGammasPlus_BXm1Filled = ibooker.book1D(
0819 "METPhiHFEGammasPlus_BXm1Filled", "METPhi_PFHFEGammasPlus prev bunch filled", 50, -M_PI, M_PI);
0820 meMETPhiHFEGammasMinus_BXm1Filled = ibooker.book1D(
0821 "METPhiHFEGammasMinus_BXm1Filled", "METPhi_PFHFEGammasMinus prev bunch filled", 50, -M_PI, M_PI);
0822
0823 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0824 DirName + "/" + "METPhiChargedHadronsBarrel_BXm1Filled", meMETPhiChargedHadronsBarrel_BXm1Filled));
0825 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0826 DirName + "/" + "METPhiChargedHadronsEndcapPlus_BXm1Filled", meMETPhiChargedHadronsEndcapPlus_BXm1Filled));
0827 map_of_MEs.insert(
0828 std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiChargedHadronsEndcapMinus_BXm1Filled",
0829 meMETPhiChargedHadronsEndcapMinus_BXm1Filled));
0830 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0831 DirName + "/" + "METPhiNeutralHadronsBarrel_BXm1Filled", meMETPhiNeutralHadronsBarrel_BXm1Filled));
0832 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0833 DirName + "/" + "METPhiNeutralHadronsEndcapPlus_BXm1Filled", meMETPhiNeutralHadronsEndcapPlus_BXm1Filled));
0834 map_of_MEs.insert(
0835 std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiNeutralHadronsEndcapMinus_BXm1Filled",
0836 meMETPhiNeutralHadronsEndcapMinus_BXm1Filled));
0837 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsBarrel_BXm1Filled",
0838 meMETPhiPhotonsBarrel_BXm1Filled));
0839 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapPlus_BXm1Filled",
0840 meMETPhiPhotonsEndcapPlus_BXm1Filled));
0841 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapMinus_BXm1Filled",
0842 meMETPhiPhotonsEndcapMinus_BXm1Filled));
0843 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsPlus_BXm1Filled",
0844 meMETPhiHFHadronsPlus_BXm1Filled));
0845 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsMinus_BXm1Filled",
0846 meMETPhiHFHadronsMinus_BXm1Filled));
0847 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasPlus_BXm1Filled",
0848 meMETPhiHFEGammasPlus_BXm1Filled));
0849 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasMinus_BXm1Filled",
0850 meMETPhiHFEGammasMinus_BXm1Filled));
0851
0852 meMETPhiChargedHadronsBarrel_BXm1Empty = ibooker.book1D(
0853 "METPhiChargedHadronsBarrel_BXm1Empty", "METPhi_PFChargedHadronsBarrel prev bunch empty", 50, -M_PI, M_PI);
0854 meMETPhiChargedHadronsEndcapPlus_BXm1Empty =
0855 ibooker.book1D("METPhiChargedHadronsEndcapPlus_BXm1Empty",
0856 "METPhi_PFChargedHadronsEndcapPlus prev bunch empty",
0857 50,
0858 -M_PI,
0859 M_PI);
0860 meMETPhiChargedHadronsEndcapMinus_BXm1Empty =
0861 ibooker.book1D("METPhiChargedHadronsEndcapMinus_BXm1Empty",
0862 "METPhi_PFChargedHadronsEndcapMinus prev bunch empty",
0863 50,
0864 -M_PI,
0865 M_PI);
0866 meMETPhiNeutralHadronsBarrel_BXm1Empty = ibooker.book1D(
0867 "METPhiNeutralHadronsBarrel_BXm1Empty", "METPhi_PFNeutralHadronsBarrel prev bunch empty", 50, -M_PI, M_PI);
0868 meMETPhiNeutralHadronsEndcapPlus_BXm1Empty =
0869 ibooker.book1D("METPhiNeutralHadronsEndcapPlus_BXm1Empty",
0870 "METPhi_PFNeutralHadronsEndcapPlus prev bunch empty",
0871 50,
0872 -M_PI,
0873 M_PI);
0874 meMETPhiNeutralHadronsEndcapMinus_BXm1Empty =
0875 ibooker.book1D("METPhiNeutralHadronsEndcapMinus_BXm1Empty",
0876 "METPhi_PFNeutralHadronsEndcapMinus prev bunch empty",
0877 50,
0878 -M_PI,
0879 M_PI);
0880 meMETPhiPhotonsBarrel_BXm1Empty =
0881 ibooker.book1D("METPhiPhotonsBarrel_BXm1Empty", "METPhi_PFPhotonsBarrel prev bunch empty", 50, -M_PI, M_PI);
0882 meMETPhiPhotonsEndcapPlus_BXm1Empty = ibooker.book1D(
0883 "METPhiPhotonsEndcapPlus_BXm1Empty", "METPhi_PFPhotonsEndcapPlus prev bunch empty", 50, -M_PI, M_PI);
0884 meMETPhiPhotonsEndcapMinus_BXm1Empty = ibooker.book1D(
0885 "METPhiPhotonsEndcapMinus_BXm1Empty", "METPhi_PFPhotonsEndcapMinus prev bunch empty", 50, -M_PI, M_PI);
0886 meMETPhiHFHadronsPlus_BXm1Empty =
0887 ibooker.book1D("METPhiHFHadronsPlus_BXm1Empty", "METPhi_PFHFHadronsPlus prev bunch empty", 50, -M_PI, M_PI);
0888 meMETPhiHFHadronsMinus_BXm1Empty = ibooker.book1D(
0889 "METPhiHFHadronsMinus_BXm1Empty", "METPhi_PFHFHadronsMinus prev bunch empty", 50, -M_PI, M_PI);
0890 meMETPhiHFEGammasPlus_BXm1Empty =
0891 ibooker.book1D("METPhiHFEGammasPlus_BXm1Empty", "METPhi_PFHFEGammasPlus prev bunch empty", 50, -M_PI, M_PI);
0892 meMETPhiHFEGammasMinus_BXm1Empty = ibooker.book1D(
0893 "METPhiHFEGammasMinus_BXm1Empty", "METPhi_PFHFEGammasMinus prev bunch empty", 50, -M_PI, M_PI);
0894
0895 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0896 DirName + "/" + "METPhiChargedHadronsBarrel_BXm1Empty", meMETPhiChargedHadronsBarrel_BXm1Empty));
0897 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0898 DirName + "/" + "METPhiChargedHadronsEndcapPlus_BXm1Empty", meMETPhiChargedHadronsEndcapPlus_BXm1Empty));
0899 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0900 DirName + "/" + "METPhiChargedHadronsEndcapMinus_BXm1Empty", meMETPhiChargedHadronsEndcapMinus_BXm1Empty));
0901 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0902 DirName + "/" + "METPhiNeutralHadronsBarrel_BXm1Empty", meMETPhiNeutralHadronsBarrel_BXm1Empty));
0903 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0904 DirName + "/" + "METPhiNeutralHadronsEndcapPlus_BXm1Empty", meMETPhiNeutralHadronsEndcapPlus_BXm1Empty));
0905 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
0906 DirName + "/" + "METPhiNeutralHadronsEndcapMinus_BXm1Empty", meMETPhiNeutralHadronsEndcapMinus_BXm1Empty));
0907 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsBarrel_BXm1Empty",
0908 meMETPhiPhotonsBarrel_BXm1Empty));
0909 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapPlus_BXm1Empty",
0910 meMETPhiPhotonsEndcapPlus_BXm1Empty));
0911 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapMinus_BXm1Empty",
0912 meMETPhiPhotonsEndcapMinus_BXm1Empty));
0913 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsPlus_BXm1Empty",
0914 meMETPhiHFHadronsPlus_BXm1Empty));
0915 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsMinus_BXm1Empty",
0916 meMETPhiHFHadronsMinus_BXm1Empty));
0917 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasPlus_BXm1Empty",
0918 meMETPhiHFEGammasPlus_BXm1Empty));
0919 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasMinus_BXm1Empty",
0920 meMETPhiHFEGammasMinus_BXm1Empty));
0921
0922 meMETPhiChargedHadronsBarrel =
0923 ibooker.book1D("METPhiChargedHadronsBarrel", "METPhi_PFChargedHadronsBarrel", 50, -M_PI, M_PI);
0924 meMETPhiChargedHadronsEndcapPlus =
0925 ibooker.book1D("METPhiChargedHadronsEndcapPlus", "METPhi_PFChargedHadronsEndcapPlus", 50, -M_PI, M_PI);
0926 meMETPhiChargedHadronsEndcapMinus =
0927 ibooker.book1D("METPhiChargedHadronsEndcapMinus", "METPhi_PFChargedHadronsEndcapMinus", 50, -M_PI, M_PI);
0928 meMETPhiNeutralHadronsBarrel =
0929 ibooker.book1D("METPhiNeutralHadronsBarrel", "METPhi_PFNeutralHadronsBarrel", 50, -M_PI, M_PI);
0930 meMETPhiNeutralHadronsEndcapPlus =
0931 ibooker.book1D("METPhiNeutralHadronsEndcapPlus", "METPhi_PFNeutralHadronsEndcapPlus", 50, -M_PI, M_PI);
0932 meMETPhiNeutralHadronsEndcapMinus =
0933 ibooker.book1D("METPhiNeutralHadronsEndcapMinus", "METPhi_PFNeutralHadronsEndcapMinus", 50, -M_PI, M_PI);
0934 meMETPhiPhotonsBarrel = ibooker.book1D("METPhiPhotonsBarrel", "METPhi_PFPhotonsBarrel", 50, -M_PI, M_PI);
0935 meMETPhiPhotonsEndcapPlus =
0936 ibooker.book1D("METPhiPhotonsEndcapPlus", "METPhi_PFPhotonsEndcapPlus", 50, -M_PI, M_PI);
0937 meMETPhiPhotonsEndcapMinus =
0938 ibooker.book1D("METPhiPhotonsEndcapMinus", "METPhi_PFPhotonsEndcapMinus", 50, -M_PI, M_PI);
0939 meMETPhiHFHadronsPlus = ibooker.book1D("METPhiHFHadronsPlus", "METPhi_PFHFHadronsPlus", 50, -M_PI, M_PI);
0940 meMETPhiHFHadronsMinus = ibooker.book1D("METPhiHFHadronsMinus", "METPhi_PFHFHadronsMinus", 50, -M_PI, M_PI);
0941 meMETPhiHFEGammasPlus = ibooker.book1D("METPhiHFEGammasPlus", "METPhi_PFHFEGammasPlus", 50, -M_PI, M_PI);
0942 meMETPhiHFEGammasMinus = ibooker.book1D("METPhiHFEGammasMinus", "METPhi_PFHFEGammasMinus", 50, -M_PI, M_PI);
0943
0944 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiChargedHadronsBarrel",
0945 meMETPhiChargedHadronsBarrel));
0946 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiChargedHadronsEndcapPlus",
0947 meMETPhiChargedHadronsEndcapPlus));
0948 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiChargedHadronsEndcapMinus",
0949 meMETPhiChargedHadronsEndcapMinus));
0950 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiNeutralHadronsBarrel",
0951 meMETPhiNeutralHadronsBarrel));
0952 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiNeutralHadronsEndcapPlus",
0953 meMETPhiNeutralHadronsEndcapPlus));
0954 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiNeutralHadronsEndcapMinus",
0955 meMETPhiNeutralHadronsEndcapMinus));
0956 map_of_MEs.insert(
0957 std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsBarrel", meMETPhiPhotonsBarrel));
0958 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapPlus",
0959 meMETPhiPhotonsEndcapPlus));
0960 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapMinus",
0961 meMETPhiPhotonsEndcapMinus));
0962 map_of_MEs.insert(
0963 std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsPlus", meMETPhiHFHadronsPlus));
0964 map_of_MEs.insert(
0965 std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsMinus", meMETPhiHFHadronsMinus));
0966 map_of_MEs.insert(
0967 std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasPlus", meMETPhiHFEGammasPlus));
0968 map_of_MEs.insert(
0969 std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasMinus", meMETPhiHFEGammasMinus));
0970 }
0971
0972 if (fillPFCandPlots && fillCandidateMap_histos) {
0973 if (!profilePFCand_x_.empty()) {
0974 etaMinPFCand_.clear();
0975 etaMaxPFCand_.clear();
0976 typePFCand_.clear();
0977 countsPFCand_.clear();
0978 MExPFCand_.clear();
0979 MEyPFCand_.clear();
0980 profilePFCand_x_.clear();
0981 profilePFCand_y_.clear();
0982 profilePFCand_x_name_.clear();
0983 profilePFCand_y_name_.clear();
0984 }
0985 for (std::vector<edm::ParameterSet>::const_iterator v = diagnosticsParameters_.begin();
0986 v != diagnosticsParameters_.end();
0987 v++) {
0988 double etaMinPFCand = v->getParameter<double>("etaMin");
0989 double etaMaxPFCand = v->getParameter<double>("etaMax");
0990 int nMinPFCand = v->getParameter<int>("nMin");
0991 int nMaxPFCand = v->getParameter<int>("nMax");
0992 int nbinsPFCand = v->getParameter<double>("nbins");
0993
0994
0995 etaMinPFCand_.push_back(etaMinPFCand);
0996 etaMaxPFCand_.push_back(etaMaxPFCand);
0997 typePFCand_.push_back(v->getParameter<int>("type"));
0998 countsPFCand_.push_back(0);
0999 MExPFCand_.push_back(0.);
1000 MEyPFCand_.push_back(0.);
1001
1002 profilePFCand_x_.push_back(
1003 ibooker.bookProfile(std::string(v->getParameter<std::string>("name")).append("_Px_").c_str(),
1004 std::string(v->getParameter<std::string>("name")) + "Px",
1005 nbinsPFCand,
1006 nMinPFCand,
1007 nMaxPFCand,
1008 -300,
1009 300));
1010 profilePFCand_x_name_.push_back(std::string(v->getParameter<std::string>("name")).append("_Px_"));
1011 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
1012 DirName + "/" + profilePFCand_x_name_[profilePFCand_x_name_.size() - 1],
1013 profilePFCand_x_[profilePFCand_x_.size() - 1]));
1014 profilePFCand_y_.push_back(
1015 ibooker.bookProfile(std::string(v->getParameter<std::string>("name")).append("_Py_").c_str(),
1016 std::string(v->getParameter<std::string>("name")) + "Py",
1017 nbinsPFCand,
1018 nMinPFCand,
1019 nMaxPFCand,
1020 -300,
1021 300));
1022 profilePFCand_y_name_.push_back(std::string(v->getParameter<std::string>("name")).append("_Py_"));
1023 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
1024 DirName + "/" + profilePFCand_y_name_[profilePFCand_y_name_.size() - 1],
1025 profilePFCand_y_[profilePFCand_y_.size() - 1]));
1026 }
1027 }
1028 }
1029 if (isMiniAODMet_) {
1030 if (fillPFCandPlots &&
1031 fillCandidateMap_histos) {
1032 if (!profilePFCand_x_.empty()) {
1033 etaMinPFCand_.clear();
1034 etaMaxPFCand_.clear();
1035 typePFCand_.clear();
1036 countsPFCand_.clear();
1037 profilePFCand_x_.clear();
1038 profilePFCand_y_.clear();
1039 }
1040 for (std::vector<edm::ParameterSet>::const_iterator v = diagnosticsParameters_.begin();
1041 v != diagnosticsParameters_.end();
1042 v++) {
1043 double etaMinPFCand = v->getParameter<double>("etaMin");
1044 double etaMaxPFCand = v->getParameter<double>("etaMax");
1045
1046 etaMinPFCand_.push_back(etaMinPFCand);
1047 etaMaxPFCand_.push_back(etaMaxPFCand);
1048 typePFCand_.push_back(v->getParameter<int>("type"));
1049 countsPFCand_.push_back(0);
1050 MExPFCand_.push_back(0.);
1051 MEyPFCand_.push_back(0.);
1052 }
1053 }
1054 }
1055
1056 if (isPFMet_ || isMiniAODMet_) {
1057 mePhotonEtFraction = ibooker.book1D("PfPhotonEtFraction", "photonEtFraction()", 50, 0, 1);
1058 meNeutralHadronEtFraction = ibooker.book1D("PfNeutralHadronEtFraction", "neutralHadronEtFraction()", 50, 0, 1);
1059 meChargedHadronEtFraction = ibooker.book1D("PfChargedHadronEtFraction", "chargedHadronEtFraction()", 50, 0, 1);
1060 meHFHadronEtFraction = ibooker.book1D("PfHFHadronEtFraction", "HFHadronEtFraction()", 50, 0, 1);
1061 meHFEMEtFraction = ibooker.book1D("PfHFEMEtFraction", "HFEMEtFraction()", 50, 0, 1);
1062
1063 map_of_MEs.insert(
1064 std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFraction", mePhotonEtFraction));
1065 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEtFraction",
1066 meNeutralHadronEtFraction));
1067 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEtFraction",
1068 meChargedHadronEtFraction));
1069 map_of_MEs.insert(
1070 std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFraction", meHFHadronEtFraction));
1071 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFraction", meHFEMEtFraction));
1072
1073 mePhotonEtFraction_profile =
1074 ibooker.bookProfile("PfPhotonEtFraction_profile", "photonEtFraction()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1);
1075 meNeutralHadronEtFraction_profile = ibooker.bookProfile(
1076 "PfNeutralHadronEtFraction_profile", "neutralHadronEtFraction()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1);
1077 meChargedHadronEtFraction_profile = ibooker.bookProfile(
1078 "PfChargedHadronEtFraction_profile", "chargedHadronEtFraction()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1);
1079 meHFHadronEtFraction_profile = ibooker.bookProfile(
1080 "PfHFHadronEtFraction_profile", "HFHadronEtFraction()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1);
1081 meHFEMEtFraction_profile =
1082 ibooker.bookProfile("PfHFEMEtFraction_profile", "HFEMEtFraction()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1);
1083 mePhotonEtFraction_profile->setAxisTitle("nvtx", 1);
1084 meNeutralHadronEtFraction_profile->setAxisTitle("nvtx", 1);
1085 meChargedHadronEtFraction_profile->setAxisTitle("nvtx", 1);
1086 meHFHadronEtFraction_profile->setAxisTitle("nvtx", 1);
1087 meHFEMEtFraction_profile->setAxisTitle("nvtx", 1);
1088
1089 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFraction_profile",
1090 mePhotonEtFraction_profile));
1091 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEtFraction_profile",
1092 meNeutralHadronEtFraction_profile));
1093 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEtFraction_profile",
1094 meChargedHadronEtFraction_profile));
1095 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFraction_profile",
1096 meHFHadronEtFraction_profile));
1097 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFraction_profile",
1098 meHFEMEtFraction_profile));
1099
1100 mePhotonEt = ibooker.book1D("PfPhotonEt", "photonEt()", 50, 0, 1000);
1101 meNeutralHadronEt = ibooker.book1D("PfNeutralHadronEt", "neutralHadronEt()", 50, 0, 1000);
1102 meElectronEt = ibooker.book1D("PfElectronEt", "electronEt()", 50, 0, 100);
1103 meChargedHadronEt = ibooker.book1D("PfChargedHadronEt", "chargedHadronEt()", 50, 0, 2000);
1104 meMuonEt = ibooker.book1D("PfMuonEt", "muonEt()", 50, 0, 100);
1105 meHFHadronEt = ibooker.book1D("PfHFHadronEt", "HFHadronEt()", 50, 0, 2000);
1106 meHFEMEt = ibooker.book1D("PfHFEMEt", "HFEMEt()", 50, 0, 1000);
1107
1108 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEt", mePhotonEt));
1109 map_of_MEs.insert(
1110 std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEt", meNeutralHadronEt));
1111 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfElectronEt", meElectronEt));
1112 map_of_MEs.insert(
1113 std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEt", meChargedHadronEt));
1114 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfMuonEt", meMuonEt));
1115 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEt", meHFHadronEt));
1116 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEt", meHFEMEt));
1117
1118 mePhotonEt_profile =
1119 ibooker.bookProfile("PfPhotonEt_profile", "photonEt()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1000);
1120 meNeutralHadronEt_profile = ibooker.bookProfile(
1121 "PfNeutralHadronEt_profile", "neutralHadronEt()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1000);
1122 meChargedHadronEt_profile = ibooker.bookProfile(
1123 "PfChargedHadronEt_profile", "chargedHadronEt()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1000);
1124 meHFHadronEt_profile =
1125 ibooker.bookProfile("PfHFHadronEt_profile", "HFHadronEt()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1000);
1126 meHFEMEt_profile = ibooker.bookProfile("PfHFEMEt_profile", "HFEMEt()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1000);
1127
1128 mePhotonEt_profile->setAxisTitle("nvtx", 1);
1129 meNeutralHadronEt_profile->setAxisTitle("nvtx", 1);
1130 meChargedHadronEt_profile->setAxisTitle("nvtx", 1);
1131 meHFHadronEt_profile->setAxisTitle("nvtx", 1);
1132 meHFEMEt_profile->setAxisTitle("nvtx", 1);
1133
1134 map_of_MEs.insert(
1135 std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEt_profile", mePhotonEt_profile));
1136 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEt_profile",
1137 meNeutralHadronEt_profile));
1138 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEt_profile",
1139 meChargedHadronEt_profile));
1140 map_of_MEs.insert(
1141 std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEt_profile", meHFHadronEt_profile));
1142 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEt_profile", meHFEMEt_profile));
1143 }
1144
1145 if (isCaloMet_) {
1146 if (fill_met_high_level_histo) {
1147 hMExLS = ibooker.book2D("MExLS", "MEx_LS", 200, -200, 200, 250, 0., 2500.);
1148 hMExLS->setAxisTitle("MEx [GeV]", 1);
1149 hMExLS->setAxisTitle("Lumi Section", 2);
1150 hMExLS->setOption("colz");
1151 hMEyLS = ibooker.book2D("MEyLS", "MEy_LS", 200, -200, 200, 250, 0., 2500.);
1152 hMEyLS->setAxisTitle("MEy [GeV]", 1);
1153 hMEyLS->setAxisTitle("Lumi Section", 2);
1154 hMEyLS->setOption("colz");
1155 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MExLS", hMExLS));
1156 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MEyLS", hMEyLS));
1157 }
1158 }
1159
1160 hMETRate = ibooker.book1D("METRate", "METRate", 200, 0, 1000);
1161 map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METRate", hMETRate));
1162
1163 ibooker.setCurrentFolder("JetMET");
1164 lumisecME = ibooker.book1D("lumisec", "lumisec", 2501, -1., 2500.);
1165 map_of_MEs.insert(std::pair<std::string, MonitorElement*>("JetMET/lumisec", lumisecME));
1166 }
1167 }
1168
1169
1170 void METAnalyzer::dqmBeginRun(const edm::Run& iRun, const edm::EventSetup& iSetup) {
1171 const L1GtTriggerMenu* menu = &iSetup.getData(l1gtTrigMenuToken_);
1172 for (CItAlgo techTrig = menu->gtTechnicalTriggerMap().begin(); techTrig != menu->gtTechnicalTriggerMap().end();
1173 ++techTrig) {
1174 if ((techTrig->second).algoName() == m_l1algoname_) {
1175 m_bitAlgTechTrig_ = (techTrig->second).algoBitNumber();
1176 break;
1177 }
1178 }
1179
1180
1181
1182 bool changed(true);
1183 if (hltConfig_.init(iRun, iSetup, triggerResultsLabel_.process(), changed)) {
1184 if (changed) {
1185
1186
1187
1188
1189
1190
1191
1192 }
1193 } else {
1194 if (verbose_)
1195 std::cout << "HLTEventAnalyzerAOD::analyze:"
1196 << " config extraction failure with process name " << triggerResultsLabel_.process() << std::endl;
1197 }
1198
1199 triggerSelectedSubFolders_ = parameters.getParameter<edm::VParameterSet>("triggerSelectedSubFolders");
1200 for (std::vector<GenericTriggerEventFlag*>::const_iterator it = triggerFolderEventFlag_.begin();
1201 it != triggerFolderEventFlag_.end();
1202 it++) {
1203 int pos = it - triggerFolderEventFlag_.begin();
1204 if ((*it)->on()) {
1205 (*it)->initRun(iRun, iSetup);
1206 if (triggerSelectedSubFolders_[pos].exists(std::string("hltDBKey"))) {
1207 if ((*it)->expressionsFromDB((*it)->hltDBKey(), iSetup)[0] != "CONFIG_ERROR")
1208 triggerFolderExpr_[pos] = (*it)->expressionsFromDB((*it)->hltDBKey(), iSetup);
1209 }
1210 }
1211 }
1212 if (isMiniAODMet_) {
1213 bool changed_filter = true;
1214 std::vector<int> initializeFilter(8, -1);
1215 miniaodFilterIndex_ = initializeFilter;
1216 if (FilterhltConfig_.init(iRun, iSetup, METFilterMiniAODLabel_.process(), changed_filter)) {
1217 miniaodfilterdec = 0;
1218 for (unsigned int i = 0; i < FilterhltConfig_.size(); i++) {
1219 std::string search = FilterhltConfig_.triggerName(i).substr(
1220 5);
1221 std::string search2 =
1222 HBHENoiseStringMiniAOD;
1223 std::size_t found = search2.find(search);
1224 if (found != std::string::npos) {
1225 miniaodFilterIndex_[0] = i;
1226 }
1227 search2 = CSCHaloResultTag_.label().substr(0, CSCHaloResultTag_.label().size() - 3);
1228 found = search2.find(search);
1229 if (found != std::string::npos) {
1230 miniaodFilterIndex_[1] = i;
1231 }
1232 search2 = eeBadScFilterTag_.label().substr(0, eeBadScFilterTag_.label().size() - 3);
1233 found = search2.find(search);
1234 if (found != std::string::npos) {
1235 miniaodFilterIndex_[2] = i;
1236 }
1237 search2 = HBHEIsoNoiseStringMiniAOD;
1238 found = search2.find(search);
1239 if (found != std::string::npos) {
1240 miniaodFilterIndex_[3] = i;
1241 }
1242 search2 = CSCHalo2015ResultTag_.label().substr(0, CSCHalo2015ResultTag_.label().size() - 3);
1243 found = search2.find(search);
1244 if (found != std::string::npos) {
1245 miniaodFilterIndex_[4] = i;
1246 }
1247 search2 = EcalDeadCellTriggerTag_.label().substr(0, EcalDeadCellTriggerTag_.label().size() - 3);
1248 found = search2.find(search);
1249 if (found != std::string::npos) {
1250 miniaodFilterIndex_[5] = i;
1251 }
1252 search2 = EcalDeadCellBoundaryTag_.label().substr(0, EcalDeadCellBoundaryTag_.label().size() - 3);
1253 found = search2.find(search);
1254 if (found != std::string::npos) {
1255 miniaodFilterIndex_[6] = i;
1256 }
1257 search2 = HcalStripHaloTag_.label().substr(0, HcalStripHaloTag_.label().size() - 3);
1258 found = search2.find(search);
1259 if (found != std::string::npos) {
1260 miniaodFilterIndex_[7] = i;
1261 }
1262 }
1263 } else if (FilterhltConfig_.init(iRun, iSetup, METFilterMiniAODLabel2_.process(), changed_filter)) {
1264 miniaodfilterdec = 1;
1265 for (unsigned int i = 0; i < FilterhltConfig_.size(); i++) {
1266 std::string search = FilterhltConfig_.triggerName(i).substr(
1267 5);
1268 std::string search2 =
1269 HBHENoiseStringMiniAOD;
1270 std::size_t found = search2.find(search);
1271 if (found != std::string::npos) {
1272 miniaodFilterIndex_[0] = i;
1273 }
1274 search2 = CSCHaloResultTag_.label().substr(0, CSCHaloResultTag_.label().size() - 3);
1275 found = search2.find(search);
1276 if (found != std::string::npos) {
1277 miniaodFilterIndex_[1] = i;
1278 }
1279 search2 = eeBadScFilterTag_.label().substr(0, eeBadScFilterTag_.label().size() - 3);
1280 found = search2.find(search);
1281 if (found != std::string::npos) {
1282 miniaodFilterIndex_[2] = i;
1283 }
1284 search2 = HBHEIsoNoiseStringMiniAOD;
1285 found = search2.find(search);
1286 if (found != std::string::npos) {
1287 miniaodFilterIndex_[3] = i;
1288 }
1289 search2 = CSCHalo2015ResultTag_.label().substr(0, CSCHalo2015ResultTag_.label().size() - 3);
1290 found = search2.find(search);
1291 if (found != std::string::npos) {
1292 miniaodFilterIndex_[4] = i;
1293 }
1294 search2 = EcalDeadCellTriggerTag_.label().substr(0, EcalDeadCellTriggerTag_.label().size() - 3);
1295 found = search2.find(search);
1296 if (found != std::string::npos) {
1297 miniaodFilterIndex_[5] = i;
1298 }
1299 search2 = EcalDeadCellBoundaryTag_.label().substr(0, EcalDeadCellBoundaryTag_.label().size() - 3);
1300 found = search2.find(search);
1301 if (found != std::string::npos) {
1302 miniaodFilterIndex_[6] = i;
1303 }
1304 search2 = HcalStripHaloTag_.label().substr(0, HcalStripHaloTag_.label().size() - 3);
1305 found = search2.find(search);
1306 if (found != std::string::npos) {
1307 miniaodFilterIndex_[7] = i;
1308 }
1309 }
1310 } else {
1311 edm::LogWarning("MiniAOD METAN Filter HLT OBject version")
1312 << "nothing found with both RECO and reRECO label" << std::endl;
1313 }
1314 }
1315 }
1316
1317
1318 void METAnalyzer::dqmEndRun(const edm::Run& iRun, const edm::EventSetup& iSetup) {
1319
1320
1321
1322 TH1F* tlumisec;
1323
1324 MonitorElement* meLumiSec = map_dijet_MEs["JetMET/lumisec"];
1325
1326 int totlsec = 0;
1327 int totlssecsum = 0;
1328 double totltime = 0.;
1329 if (meLumiSec && meLumiSec->getRootObject()) {
1330 tlumisec = meLumiSec->getTH1F();
1331
1332
1333
1334
1335 for (int i = 0; i < (tlumisec->GetNbinsX()); i++) {
1336 if (tlumisec->GetBinContent(i) != 0) {
1337 totlsec += 1;
1338 totlssecsum += tlumisec->GetBinContent(i);
1339 }
1340 }
1341 int num_per_ls = (double)totlssecsum / (double)totlsec;
1342 totlsec = totlsec + tlumisec->GetBinContent(tlumisec->GetNbinsX() + 1) / (double)num_per_ls;
1343 totltime = double(totlsec * 90);
1344 }
1345
1346 if (totltime == 0.)
1347 totltime = 1.;
1348
1349 std::string dirName = FolderName_ + metCollectionLabel_.label() + "/";
1350
1351
1352
1353
1354 for (std::vector<std::string>::const_iterator ic = folderNames_.begin(); ic != folderNames_.end(); ic++) {
1355 std::string DirName;
1356 DirName = dirName + *ic;
1357 makeRatePlot(DirName, totltime);
1358 for (std::vector<GenericTriggerEventFlag*>::const_iterator it = triggerFolderEventFlag_.begin();
1359 it != triggerFolderEventFlag_.end();
1360 it++) {
1361 int pos = it - triggerFolderEventFlag_.begin();
1362 if ((*it)->on()) {
1363 makeRatePlot(DirName + "/" + triggerFolderLabels_[pos], totltime);
1364 }
1365 }
1366 }
1367 }
1368
1369
1370 void METAnalyzer::makeRatePlot(std::string DirName, double totltime) {
1371
1372 MonitorElement* meMET = map_dijet_MEs[DirName + "/" + "MET"];
1373 MonitorElement* mMETRate = map_dijet_MEs[DirName + "/" + "METRate"];
1374
1375 TH1F* tMET;
1376 TH1F* tMETRate;
1377
1378 if (meMET && mMETRate) {
1379 if (meMET->getRootObject() && mMETRate->getRootObject()) {
1380 tMET = meMET->getTH1F();
1381
1382
1383 tMETRate = (TH1F*)tMET->Clone("METRateHist");
1384 for (int i = tMETRate->GetNbinsX() - 1; i >= 0; i--) {
1385 tMETRate->SetBinContent(i + 1, tMETRate->GetBinContent(i + 2) + tMET->GetBinContent(i + 1));
1386 }
1387 for (int i = 0; i < tMETRate->GetNbinsX(); i++) {
1388 tMETRate->SetBinContent(i + 1, tMETRate->GetBinContent(i + 1) / double(totltime));
1389 mMETRate->setBinContent(i + 1, tMETRate->GetBinContent(i + 1));
1390 }
1391 }
1392 }
1393 }
1394
1395
1396 void METAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
1397
1398 int myLuminosityBlock;
1399 myLuminosityBlock = iEvent.luminosityBlock();
1400 if (fill_met_high_level_histo) {
1401 lumisecME = map_dijet_MEs["JetMET/lumisec"];
1402 if (lumisecME && lumisecME->getRootObject())
1403 lumisecME->Fill(myLuminosityBlock);
1404 }
1405
1406 if (myLuminosityBlock < LSBegin_)
1407 return;
1408 if (myLuminosityBlock > LSEnd_ && LSEnd_ > 0)
1409 return;
1410
1411 if (verbose_)
1412 std::cout << "METAnalyzer analyze" << std::endl;
1413
1414 std::string DirName = FolderName_ + metCollectionLabel_.label();
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428 std::vector<int> triggerFolderDecisions;
1429 triggerFolderDecisions_ = std::vector<int>(triggerFolderEventFlag_.size(), 0);
1430
1431 edm::Handle<edm::TriggerResults> triggerResults;
1432 iEvent.getByToken(triggerResultsToken_, triggerResults);
1433
1434 if (triggerResults.isValid()) {
1435
1436
1437 int ntrigs = (*triggerResults).size();
1438 if (verbose_)
1439 std::cout << "ntrigs=" << ntrigs << std::endl;
1440
1441 for (std::vector<GenericTriggerEventFlag*>::const_iterator it = triggerFolderEventFlag_.begin();
1442 it != triggerFolderEventFlag_.end();
1443 it++) {
1444 unsigned int pos = it - triggerFolderEventFlag_.begin();
1445 bool fd = (*it)->accept(iEvent, iSetup);
1446 triggerFolderDecisions_[pos] = fd;
1447 }
1448 }
1449
1450
1451
1452
1453
1454 edm::Handle<reco::METCollection> tcmetcoll;
1455 edm::Handle<reco::CaloMETCollection> calometcoll;
1456 edm::Handle<reco::PFMETCollection> pfmetcoll;
1457 edm::Handle<pat::METCollection> patmetcoll;
1458
1459
1460
1461
1462
1463 if (isCaloMet_) {
1464 iEvent.getByToken(caloMetToken_, calometcoll);
1465 if (!calometcoll.isValid())
1466 return;
1467 }
1468 if (isPFMet_) {
1469 iEvent.getByToken(pfMetToken_, pfmetcoll);
1470 if (!pfmetcoll.isValid())
1471 return;
1472 }
1473 if (isMiniAODMet_) {
1474 iEvent.getByToken(patMetToken_, patmetcoll);
1475 if (!patmetcoll.isValid())
1476 return;
1477 }
1478
1479 const MET* met = nullptr;
1480 const pat::MET* patmet = nullptr;
1481 const PFMET* pfmet = nullptr;
1482 const CaloMET* calomet = nullptr;
1483
1484
1485
1486 if (isPFMet_) {
1487 assert(!pfmetcoll->empty());
1488 met = &(pfmetcoll->front());
1489 pfmet = &(pfmetcoll->front());
1490 }
1491 if (isCaloMet_) {
1492 assert(!calometcoll->empty());
1493 met = &(calometcoll->front());
1494 calomet = &(calometcoll->front());
1495 }
1496 if (isMiniAODMet_) {
1497 assert(!patmetcoll->empty());
1498 met = &(patmetcoll->front());
1499 patmet = &(patmetcoll->front());
1500 }
1501
1502 LogTrace("METAnalyzer") << "[METAnalyzer] Call to the MET analyzer";
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524 bool bJetID = false;
1525 bool bDiJetID = false;
1526
1527
1528
1529 edm::Handle<CaloJetCollection> caloJets;
1530 edm::Handle<JPTJetCollection> jptJets;
1531 edm::Handle<PFJetCollection> pfJets;
1532 edm::Handle<pat::JetCollection> patJets;
1533
1534 int collsize = -1;
1535
1536 if (isCaloMet_) {
1537 iEvent.getByToken(caloJetsToken_, caloJets);
1538 if (!caloJets.isValid()) {
1539 LogDebug("") << "METAnalyzer: Could not find calojet product" << std::endl;
1540 if (verbose_)
1541 std::cout << "METAnalyzer: Could not find calojet product" << std::endl;
1542 }
1543 collsize = caloJets->size();
1544 }
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555 edm::Handle<edm::ValueMap<reco::JetID> > jetID_ValueMap_Handle;
1556 if ( isCaloMet_) {
1557 if (!runcosmics_) {
1558 iEvent.getByToken(jetID_ValueMapToken_, jetID_ValueMap_Handle);
1559 }
1560 }
1561
1562 if (isMiniAODMet_) {
1563 iEvent.getByToken(patJetsToken_, patJets);
1564 if (!patJets.isValid()) {
1565 LogDebug("") << "METAnalyzer: Could not find patjet product" << std::endl;
1566 if (verbose_)
1567 std::cout << "METAnalyzer: Could not find patjet product" << std::endl;
1568 }
1569 collsize = patJets->size();
1570 }
1571
1572 if (isPFMet_) {
1573 iEvent.getByToken(pfJetsToken_, pfJets);
1574 if (!pfJets.isValid()) {
1575 LogDebug("") << "METAnalyzer: Could not find pfjet product" << std::endl;
1576 if (verbose_)
1577 std::cout << "METAnalyzer: Could not find pfjet product" << std::endl;
1578 }
1579 collsize = pfJets->size();
1580 }
1581
1582 unsigned int ind1 = -1;
1583 double pt1 = -1;
1584 bool pass_jetID1 = false;
1585 unsigned int ind2 = -1;
1586 double pt2 = -1;
1587 bool pass_jetID2 = false;
1588
1589 edm::Handle<reco::JetCorrector> jetCorr;
1590 bool pass_correction_flag = false;
1591 if (!isMiniAODMet_) {
1592 iEvent.getByToken(jetCorrectorToken_, jetCorr);
1593 if (jetCorr.isValid()) {
1594 pass_correction_flag = true;
1595 }
1596 } else {
1597 pass_correction_flag = true;
1598 }
1599
1600 for (int ijet = 0; ijet < collsize; ijet++) {
1601 double pt_jet = -10;
1602 double scale = 1.;
1603 bool iscleaned = false;
1604 if (pass_correction_flag) {
1605 if (isCaloMet_) {
1606 scale = jetCorr->correction((*caloJets)[ijet]);
1607 }
1608
1609
1610
1611 if (isPFMet_) {
1612 scale = jetCorr->correction((*pfJets)[ijet]);
1613 }
1614 }
1615 if (isCaloMet_) {
1616 pt_jet = scale * (*caloJets)[ijet].pt();
1617 if (pt_jet > ptThreshold_) {
1618 reco::CaloJetRef calojetref(caloJets, ijet);
1619 if (!runcosmics_) {
1620 reco::JetID jetID = (*jetID_ValueMap_Handle)[calojetref];
1621 iscleaned = jetIDFunctorLoose((*caloJets)[ijet], jetID);
1622 } else {
1623 iscleaned = true;
1624 }
1625 }
1626 }
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642 if (isPFMet_) {
1643 pt_jet = scale * (*pfJets)[ijet].pt();
1644 if (pt_jet > ptThreshold_) {
1645 iscleaned = pfjetIDFunctorLoose((*pfJets)[ijet]);
1646 }
1647 }
1648 if (isMiniAODMet_) {
1649 pt_jet = (*patJets)[ijet].pt();
1650 if (pt_jet > ptThreshold_) {
1651 pat::strbitset stringbitset = pfjetIDFunctorLoose.getBitTemplate();
1652 iscleaned = pfjetIDFunctorLoose((*patJets)[ijet], stringbitset);
1653 }
1654 }
1655 if (iscleaned) {
1656 bJetID = true;
1657 }
1658 if (pt_jet > pt1) {
1659 pt2 = pt1;
1660 ind2 = ind1;
1661 pass_jetID2 = pass_jetID1;
1662 pt1 = pt_jet;
1663 ind1 = ijet;
1664 pass_jetID1 = iscleaned;
1665 } else if (pt_jet > pt2) {
1666 pt2 = pt_jet;
1667 ind2 = ijet;
1668 pass_jetID2 = iscleaned;
1669 }
1670 }
1671 if (pass_jetID1 && pass_jetID2) {
1672 double dphi = -1.0;
1673 if (isCaloMet_) {
1674 dphi = fabs((*caloJets)[ind1].phi() - (*caloJets)[ind2].phi());
1675 }
1676
1677
1678
1679 if (isPFMet_) {
1680 dphi = fabs((*pfJets)[ind1].phi() - (*pfJets)[ind2].phi());
1681 }
1682 if (isMiniAODMet_) {
1683 dphi = fabs((*patJets)[0].phi() - (*patJets)[1].phi());
1684 }
1685 if (dphi > acos(-1.)) {
1686 dphi = 2 * acos(-1.) - dphi;
1687 }
1688 if (dphi > 2.7) {
1689 bDiJetID = true;
1690 }
1691 }
1692
1693
1694
1695 Handle<VertexCollection> vertexHandle;
1696 iEvent.getByToken(vertexToken_, vertexHandle);
1697
1698 if (!vertexHandle.isValid()) {
1699 LogDebug("") << "CaloMETAnalyzer: Could not find vertex collection" << std::endl;
1700 if (verbose_)
1701 std::cout << "CaloMETAnalyzer: Could not find vertex collection" << std::endl;
1702 }
1703 numPV_ = 0;
1704 if (vertexHandle.isValid()) {
1705 VertexCollection vertexCollection = *(vertexHandle.product());
1706 numPV_ = vertexCollection.size();
1707 }
1708 bool bPrimaryVertex = (bypassAllPVChecks_ || (numPV_ > 0));
1709
1710 bool bZJets = false;
1711
1712 edm::Handle<MuonCollection> Muons;
1713 iEvent.getByToken(MuonsToken_, Muons);
1714
1715 reco::Candidate::PolarLorentzVector zCand;
1716
1717 double pt_muon0 = -1;
1718 double pt_muon1 = -1;
1719 int mu_index0 = -1;
1720 int mu_index1 = -1;
1721
1722 if (Muons.isValid() && Muons->size() > 1) {
1723 for (unsigned int i = 0; i < Muons->size(); i++) {
1724 bool pass_muon_id = false;
1725 bool pass_muon_iso = false;
1726 double dxy = fabs((*Muons)[i].muonBestTrack()->dxy());
1727 double dz = fabs((*Muons)[i].muonBestTrack()->dz());
1728 if (numPV_ > 0) {
1729 dxy = fabs((*Muons)[i].muonBestTrack()->dxy((*vertexHandle)[0].position()));
1730 dz = fabs((*Muons)[i].muonBestTrack()->dz((*vertexHandle)[0].position()));
1731 }
1732 if ((*Muons)[i].pt() > 20 && fabs((*Muons)[i].eta()) < 2.3) {
1733 if ((*Muons)[i].isGlobalMuon() && (*Muons)[i].isPFMuon() &&
1734 (*Muons)[i].globalTrack()->hitPattern().numberOfValidMuonHits() > 0 &&
1735 (*Muons)[i].numberOfMatchedStations() > 1 && dxy < 0.2 && (*Muons)[i].numberOfMatchedStations() > 1 &&
1736 dz < 0.5 && (*Muons)[i].innerTrack()->hitPattern().numberOfValidPixelHits() > 0 &&
1737 (*Muons)[i].innerTrack()->hitPattern().trackerLayersWithMeasurement() > 5) {
1738 pass_muon_id = true;
1739 }
1740
1741 float muonIsoPFdb =
1742 ((*Muons)[i].pfIsolationR04().sumChargedHadronPt +
1743 std::max(0.,
1744 (*Muons)[i].pfIsolationR04().sumNeutralHadronEt + (*Muons)[i].pfIsolationR04().sumPhotonEt -
1745 0.5 * (*Muons)[i].pfIsolationR04().sumPUPt)) /
1746 (*Muons)[i].pt();
1747 if (muonIsoPFdb < 0.12) {
1748 pass_muon_iso = true;
1749 }
1750
1751 if (pass_muon_id && pass_muon_iso) {
1752 if ((*Muons)[i].pt() > pt_muon0) {
1753 mu_index1 = mu_index0;
1754 pt_muon1 = pt_muon0;
1755 mu_index0 = i;
1756 pt_muon0 = (*Muons)[i].pt();
1757 } else if ((*Muons)[i].pt() > pt_muon1) {
1758 mu_index1 = i;
1759 pt_muon1 = (*Muons)[i].pt();
1760 }
1761 }
1762 }
1763 }
1764 if (mu_index0 >= 0 && mu_index1 >= 0) {
1765 if ((*Muons)[mu_index0].charge() * (*Muons)[mu_index1].charge() < 0) {
1766 zCand = (*Muons)[mu_index0].polarP4() + (*Muons)[mu_index1].polarP4();
1767 if (fabs(zCand.M() - 91.) < 20) {
1768 bZJets = true;
1769 }
1770 }
1771 }
1772 }
1773
1774
1775
1776 edm::Handle<L1GlobalTriggerReadoutRecord> gtReadoutRecord;
1777 iEvent.getByToken(gtToken_, gtReadoutRecord);
1778
1779 bool techTriggerResultBxM2 = false;
1780 bool techTriggerResultBxM1 = false;
1781 bool techTriggerResultBx0 = false;
1782
1783 if (!gtReadoutRecord.isValid()) {
1784 LogDebug("") << "METAnalyzer: Could not find GT readout record" << std::endl;
1785 if (verbose_)
1786 std::cout << "METAnalyzer: Could not find GT readout record product" << std::endl;
1787 } else {
1788
1789 const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBxM2 = gtReadoutRecord->technicalTriggerWord(-2);
1790 const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBxM1 = gtReadoutRecord->technicalTriggerWord(-1);
1791 const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBx0 = gtReadoutRecord->technicalTriggerWord();
1792
1793
1794 if (m_bitAlgTechTrig_ > -1 && !technicalTriggerWordBeforeMaskBx0.empty()) {
1795 techTriggerResultBx0 = technicalTriggerWordBeforeMaskBx0.at(m_bitAlgTechTrig_);
1796 if (techTriggerResultBx0 != 0) {
1797 techTriggerResultBxM2 = technicalTriggerWordBeforeMaskBxM2.at(m_bitAlgTechTrig_);
1798 techTriggerResultBxM1 = technicalTriggerWordBeforeMaskBxM1.at(m_bitAlgTechTrig_);
1799 }
1800 }
1801 }
1802
1803 std::vector<bool> trigger_flag(4, false);
1804 if (techTriggerResultBx0 && techTriggerResultBxM2 &&
1805 techTriggerResultBxM1) {
1806 trigger_flag[0] = true;
1807 }
1808 if (techTriggerResultBx0 && techTriggerResultBxM1) {
1809 trigger_flag[1] = true;
1810 }
1811 if (techTriggerResultBx0 && !techTriggerResultBxM1) {
1812 trigger_flag[2] = true;
1813 }
1814 if (techTriggerResultBx0 && !techTriggerResultBxM2 &&
1815 !techTriggerResultBxM1) {
1816 trigger_flag[3] = true;
1817 }
1818 std::vector<bool> filter_decisions(
1819 8, false);
1820 if (!isMiniAODMet_ &&
1821 !runcosmics_) {
1822 edm::Handle<bool> HBHENoiseFilterResultHandle;
1823 iEvent.getByToken(hbheNoiseFilterResultToken_, HBHENoiseFilterResultHandle);
1824 if (!HBHENoiseFilterResultHandle.isValid()) {
1825 LogDebug("") << "METAnalyzer: Could not find HBHENoiseFilterResult" << std::endl;
1826 if (verbose_)
1827 std::cout << "METAnalyzer: Could not find HBHENoiseFilterResult" << std::endl;
1828 }
1829 filter_decisions[0] = *HBHENoiseFilterResultHandle;
1830 edm::Handle<bool> CSCTightHaloFilterResultHandle;
1831 iEvent.getByToken(CSCHaloResultToken_, CSCTightHaloFilterResultHandle);
1832 if (!CSCTightHaloFilterResultHandle.isValid()) {
1833 LogDebug("") << "METAnalyzer: Could not find CSCTightHaloFilterResultHandle" << std::endl;
1834 if (verbose_)
1835 std::cout << "METAnalyzer: CSCTightHaloFilterResultHandle" << std::endl;
1836 }
1837 filter_decisions[1] = *CSCTightHaloFilterResultHandle;
1838 edm::Handle<bool> eeBadScFilterResultHandle;
1839 iEvent.getByToken(eeBadScFilterToken_, eeBadScFilterResultHandle);
1840 if (!eeBadScFilterResultHandle.isValid()) {
1841 LogDebug("") << "METAnalyzer: Could not find eeBadScFilterResultHandle" << std::endl;
1842 if (verbose_)
1843 std::cout << "METAnalyzer: eeBadScFilterResultHandle" << std::endl;
1844 }
1845 filter_decisions[2] = *eeBadScFilterResultHandle;
1846 edm::Handle<bool> HBHENoiseIsoFilterResultHandle;
1847 iEvent.getByToken(hbheIsoNoiseFilterResultToken_, HBHENoiseIsoFilterResultHandle);
1848 if (!HBHENoiseIsoFilterResultHandle.isValid()) {
1849 LogDebug("") << "METAnalyzer: Could not find HBHENoiseIsoFilterResult" << std::endl;
1850 if (verbose_)
1851 std::cout << "METAnalyzer: Could not find HBHENoiseIsoFilterResult" << std::endl;
1852 }
1853 filter_decisions[3] = *HBHENoiseIsoFilterResultHandle;
1854 edm::Handle<bool> CSCTightHalo2015FilterResultHandle;
1855 iEvent.getByToken(CSCHalo2015ResultToken_, CSCTightHalo2015FilterResultHandle);
1856 if (!CSCTightHalo2015FilterResultHandle.isValid()) {
1857 LogDebug("") << "METAnalyzer: Could not find CSCTightHalo2015FilterResultHandle" << std::endl;
1858 if (verbose_)
1859 std::cout << "METAnalyzer: CSCTightHalo2015FilterResultHandle" << std::endl;
1860 }
1861 filter_decisions[4] = *CSCTightHalo2015FilterResultHandle;
1862 edm::Handle<bool> EcalDeadCellTriggerFilterResultHandle;
1863 iEvent.getByToken(EcalDeadCellTriggerToken_, EcalDeadCellTriggerFilterResultHandle);
1864 if (!EcalDeadCellTriggerFilterResultHandle.isValid()) {
1865 LogDebug("") << "METAnalyzer: Could not find EcalDeadCellTriggerFilterResultHandle" << std::endl;
1866 if (verbose_)
1867 std::cout << "METAnalyzer: EcalDeadCellTriggerFilterResultHandle" << std::endl;
1868 }
1869 filter_decisions[5] = *EcalDeadCellTriggerFilterResultHandle;
1870 edm::Handle<bool> EcalDeadCellBoundaryHandle;
1871 iEvent.getByToken(EcalDeadCellBoundaryToken_, EcalDeadCellBoundaryHandle);
1872 if (!EcalDeadCellBoundaryHandle.isValid()) {
1873 LogDebug("") << "METAnalyzer: Could not find EcalDeadCellBoundaryHandle" << std::endl;
1874 if (verbose_)
1875 std::cout << "METAnalyzer: EcalDeadCellBoundaryHandle" << std::endl;
1876 }
1877 filter_decisions[6] = *EcalDeadCellBoundaryHandle;
1878 edm::Handle<bool> HcalStripHaloFilterHandle;
1879 iEvent.getByToken(HcalStripHaloToken_, HcalStripHaloFilterHandle);
1880 if (!HcalStripHaloFilterHandle.isValid()) {
1881 LogDebug("") << "METAnalyzer: Could not find CSCTightHalo2015FilterResultHandle" << std::endl;
1882 if (verbose_)
1883 std::cout << "METAnalyzer: CSCTightHalo2015FilterResultHandle" << std::endl;
1884 }
1885 filter_decisions[7] = *HcalStripHaloFilterHandle;
1886 } else if (isMiniAODMet_) {
1887
1888 edm::Handle<edm::TriggerResults> metFilterResults;
1889 iEvent.getByToken(METFilterMiniAODToken_, metFilterResults);
1890 if (metFilterResults.isValid()) {
1891 if (miniaodFilterIndex_[0] != -1) {
1892 filter_decisions[0] = metFilterResults->accept(miniaodFilterIndex_[0]);
1893 }
1894 if (miniaodFilterIndex_[1] != -1) {
1895 filter_decisions[1] = metFilterResults->accept(miniaodFilterIndex_[1]);
1896 }
1897 if (miniaodFilterIndex_[2] != -1) {
1898 filter_decisions[2] = metFilterResults->accept(miniaodFilterIndex_[2]);
1899 }
1900 if (miniaodFilterIndex_[3] != -1) {
1901 filter_decisions[3] = metFilterResults->accept(miniaodFilterIndex_[3]);
1902 }
1903 if (miniaodFilterIndex_[4] != -1) {
1904 filter_decisions[4] = metFilterResults->accept(miniaodFilterIndex_[4]);
1905 }
1906 if (miniaodFilterIndex_[5] != -1) {
1907 filter_decisions[5] = metFilterResults->accept(miniaodFilterIndex_[5]);
1908 }
1909 if (miniaodFilterIndex_[6] != -1) {
1910 filter_decisions[6] = metFilterResults->accept(miniaodFilterIndex_[6]);
1911 }
1912 if (miniaodFilterIndex_[7] != -1) {
1913 filter_decisions[7] = metFilterResults->accept(miniaodFilterIndex_[7]);
1914 }
1915 } else {
1916 iEvent.getByToken(METFilterMiniAODToken2_, metFilterResults);
1917 if (metFilterResults.isValid()) {
1918 if (miniaodFilterIndex_[0] != -1) {
1919 filter_decisions[0] = metFilterResults->accept(miniaodFilterIndex_[0]);
1920 }
1921 if (miniaodFilterIndex_[1] != -1) {
1922 filter_decisions[1] = metFilterResults->accept(miniaodFilterIndex_[1]);
1923 }
1924 if (miniaodFilterIndex_[2] != -1) {
1925 filter_decisions[2] = metFilterResults->accept(miniaodFilterIndex_[2]);
1926 }
1927 if (miniaodFilterIndex_[3] != -1) {
1928 filter_decisions[3] = metFilterResults->accept(miniaodFilterIndex_[3]);
1929 }
1930 if (miniaodFilterIndex_[4] != -1) {
1931 filter_decisions[4] = metFilterResults->accept(miniaodFilterIndex_[4]);
1932 }
1933 if (miniaodFilterIndex_[5] != -1) {
1934 filter_decisions[5] = metFilterResults->accept(miniaodFilterIndex_[5]);
1935 }
1936 if (miniaodFilterIndex_[6] != -1) {
1937 filter_decisions[6] = metFilterResults->accept(miniaodFilterIndex_[6]);
1938 }
1939 if (miniaodFilterIndex_[7] != -1) {
1940 filter_decisions[7] = metFilterResults->accept(miniaodFilterIndex_[7]);
1941 }
1942 }
1943 }
1944 }
1945 bool HBHENoiseFilterResultFlag = filter_decisions[0];
1946
1947
1948 bool bHBHENoiseFilter = HBHENoiseFilterResultFlag;
1949
1950
1951 bool bDCSFilter = (bypassAllDCSChecks_ || DCSFilter_->filter(iEvent, iSetup));
1952
1953
1954 std::string DirName_old = DirName;
1955 for (std::vector<std::string>::const_iterator ic = folderNames_.begin(); ic != folderNames_.end(); ic++) {
1956 bool pass_selection = false;
1957 if ((*ic == "Uncleaned") && (isCaloMet_ || bPrimaryVertex)) {
1958 fillMESet(iEvent,
1959 DirName_old + "/" + *ic,
1960 *met,
1961 patmet,
1962 pfmet,
1963 calomet,
1964 zCand,
1965 map_dijet_MEs,
1966 trigger_flag,
1967 filter_decisions);
1968 pass_selection = true;
1969 }
1970
1971 if ((*ic == "Cleaned") && bDCSFilter && bHBHENoiseFilter && bPrimaryVertex && bJetID) {
1972 fillMESet(iEvent,
1973 DirName_old + "/" + *ic,
1974 *met,
1975 patmet,
1976 pfmet,
1977 calomet,
1978 zCand,
1979 map_dijet_MEs,
1980 trigger_flag,
1981 filter_decisions);
1982 pass_selection = true;
1983 }
1984 if ((*ic == "DiJet") && bDCSFilter && bHBHENoiseFilter && bPrimaryVertex && bDiJetID) {
1985 fillMESet(iEvent,
1986 DirName_old + "/" + *ic,
1987 *met,
1988 patmet,
1989 pfmet,
1990 calomet,
1991 zCand,
1992 map_dijet_MEs,
1993 trigger_flag,
1994 filter_decisions);
1995 pass_selection = true;
1996 }
1997 if ((*ic == "ZJets") && bDCSFilter && bHBHENoiseFilter && bPrimaryVertex && bZJets) {
1998 fillMESet(iEvent,
1999 DirName_old + "/" + *ic,
2000 *met,
2001 patmet,
2002 pfmet,
2003 calomet,
2004 zCand,
2005 map_dijet_MEs,
2006 trigger_flag,
2007 filter_decisions);
2008 pass_selection = true;
2009 }
2010 if (pass_selection && isPFMet_) {
2011 DirName = DirName_old + "/" + *ic;
2012 }
2013 }
2014 }
2015
2016
2017 void METAnalyzer::fillMESet(const edm::Event& iEvent,
2018 std::string DirName,
2019 const reco::MET& met,
2020 const pat::MET* patmet,
2021 const reco::PFMET* pfmet,
2022 const reco::CaloMET* calomet,
2023 const reco::Candidate::PolarLorentzVector& zCand,
2024 std::map<std::string, MonitorElement*>& map_of_MEs,
2025 std::vector<bool> techTriggerCase,
2026 std::vector<bool> METFilterDecision) {
2027 bool bLumiSecPlot = fill_met_high_level_histo;
2028 bool fillPFCandidatePlots = false;
2029 if (DirName.find("Cleaned") != std::string::npos) {
2030 fillPFCandidatePlots = true;
2031 fillMonitorElement(iEvent,
2032 DirName,
2033 std::string(""),
2034 met,
2035 patmet,
2036 pfmet,
2037 calomet,
2038 zCand,
2039 map_of_MEs,
2040 bLumiSecPlot,
2041 fillPFCandidatePlots,
2042 techTriggerCase,
2043 METFilterDecision);
2044 for (unsigned int i = 0; i < triggerFolderLabels_.size(); i++) {
2045 fillPFCandidatePlots = false;
2046 if (triggerFolderDecisions_[i]) {
2047 fillMonitorElement(iEvent,
2048 DirName,
2049 triggerFolderLabels_[i],
2050 met,
2051 patmet,
2052 pfmet,
2053 calomet,
2054 zCand,
2055 map_of_MEs,
2056 bLumiSecPlot,
2057 fillPFCandidatePlots,
2058 techTriggerCase,
2059 METFilterDecision);
2060 }
2061 }
2062 } else if (DirName.find("DiJet") != std::string::npos) {
2063 fillMonitorElement(iEvent,
2064 DirName,
2065 std::string(""),
2066 met,
2067 patmet,
2068 pfmet,
2069 calomet,
2070 zCand,
2071 map_of_MEs,
2072 bLumiSecPlot,
2073 fillPFCandidatePlots,
2074 techTriggerCase,
2075 METFilterDecision);
2076 for (unsigned int i = 0; i < triggerFolderLabels_.size(); i++) {
2077 if (triggerFolderDecisions_[i])
2078 fillMonitorElement(iEvent,
2079 DirName,
2080 triggerFolderLabels_[i],
2081 met,
2082 patmet,
2083 pfmet,
2084 calomet,
2085 zCand,
2086 map_of_MEs,
2087 bLumiSecPlot,
2088 fillPFCandidatePlots,
2089 techTriggerCase,
2090 METFilterDecision);
2091 }
2092 } else if (DirName.find("ZJets") != std::string::npos) {
2093 fillMonitorElement(iEvent,
2094 DirName,
2095 std::string(""),
2096 met,
2097 patmet,
2098 pfmet,
2099 calomet,
2100 zCand,
2101 map_of_MEs,
2102 bLumiSecPlot,
2103 fillPFCandidatePlots,
2104 techTriggerCase,
2105 METFilterDecision);
2106 } else {
2107 fillMonitorElement(iEvent,
2108 DirName,
2109 std::string(""),
2110 met,
2111 patmet,
2112 pfmet,
2113 calomet,
2114 zCand,
2115 map_of_MEs,
2116 bLumiSecPlot,
2117 fillPFCandidatePlots,
2118 techTriggerCase,
2119 METFilterDecision);
2120 }
2121 }
2122
2123
2124 void METAnalyzer::fillMonitorElement(const edm::Event& iEvent,
2125 std::string DirName,
2126 std::string subFolderName,
2127 const reco::MET& met,
2128 const pat::MET* patmet,
2129 const reco::PFMET* pfmet,
2130 const reco::CaloMET* calomet,
2131 const reco::Candidate::PolarLorentzVector& zCand,
2132 std::map<std::string, MonitorElement*>& map_of_MEs,
2133 bool bLumiSecPlot,
2134 bool fillPFCandidatePlots,
2135 std::vector<bool> techTriggerCase,
2136 std::vector<bool> METFilterDecision) {
2137 bool do_only_Z_histograms = false;
2138 if (DirName.find("ZJets") != std::string::npos) {
2139 do_only_Z_histograms = true;
2140
2141
2142 double u_x = -met.px() - zCand.Px();
2143 double u_y = -met.py() - zCand.Py();
2144
2145
2146 double u_par = 0;
2147 double u_perp = 0;
2148 double e_Z_x = 0;
2149 double e_Z_y = 0;
2150 if (zCand.Pt() != 0) {
2151 e_Z_x = zCand.Px() / zCand.Pt();
2152 e_Z_y = zCand.Py() / zCand.Pt();
2153 }
2154 u_par = u_x * e_Z_x + u_y * e_Z_y;
2155 u_perp = -e_Z_y * u_x + e_Z_x * u_y;
2156
2157 meZJets_u_par = map_of_MEs[DirName + "/" + "u_parallel_Z_inc"];
2158 if (meZJets_u_par && meZJets_u_par->getRootObject())
2159 meZJets_u_par->Fill(u_par);
2160 if (zCand.Pt() < 15) {
2161 meZJets_u_par_ZPt_0_15 = map_of_MEs[DirName + "/" + "u_parallel_ZPt_0_15"];
2162 if (meZJets_u_par_ZPt_0_15 && meZJets_u_par_ZPt_0_15->getRootObject())
2163 meZJets_u_par_ZPt_0_15->Fill(u_par);
2164 } else if (zCand.Pt() < 30) {
2165 meZJets_u_par_ZPt_15_30 = map_of_MEs[DirName + "/" + "u_parallel_ZPt_15_30"];
2166 if (meZJets_u_par_ZPt_15_30 && meZJets_u_par_ZPt_15_30->getRootObject())
2167 meZJets_u_par_ZPt_15_30->Fill(u_par);
2168 } else if (zCand.Pt() < 55) {
2169 meZJets_u_par_ZPt_30_55 = map_of_MEs[DirName + "/" + "u_parallel_ZPt_30_55"];
2170 if (meZJets_u_par_ZPt_30_55 && meZJets_u_par_ZPt_30_55->getRootObject())
2171 meZJets_u_par_ZPt_30_55->Fill(u_par);
2172 } else if (zCand.Pt() < 75) {
2173 meZJets_u_par_ZPt_55_75 = map_of_MEs[DirName + "/" + "u_parallel_ZPt_55_75"];
2174 if (meZJets_u_par_ZPt_55_75 && meZJets_u_par_ZPt_55_75->getRootObject())
2175 meZJets_u_par_ZPt_55_75->Fill(u_par);
2176 } else if (zCand.Pt() < 150) {
2177 meZJets_u_par_ZPt_75_150 = map_of_MEs[DirName + "/" + "u_parallel_ZPt_75_150"];
2178 if (meZJets_u_par_ZPt_75_150 && meZJets_u_par_ZPt_75_150->getRootObject())
2179 meZJets_u_par_ZPt_75_150->Fill(u_par);
2180 } else if (zCand.Pt() < 290) {
2181 meZJets_u_par_ZPt_150_290 = map_of_MEs[DirName + "/" + "u_parallel_ZPt_150_290"];
2182 if (meZJets_u_par_ZPt_150_290 && meZJets_u_par_ZPt_150_290->getRootObject())
2183 meZJets_u_par_ZPt_150_290->Fill(u_par);
2184 } else {
2185 meZJets_u_par_ZPt_290 = map_of_MEs[DirName + "/" + "u_parallel_ZPt_290"];
2186 if (meZJets_u_par_ZPt_290 && meZJets_u_par_ZPt_290->getRootObject())
2187 meZJets_u_par_ZPt_290->Fill(u_par);
2188 }
2189
2190 meZJets_u_perp = map_of_MEs[DirName + "/" + "u_perp_Z_inc"];
2191 if (meZJets_u_perp && meZJets_u_perp->getRootObject())
2192 meZJets_u_perp->Fill(u_perp);
2193 if (zCand.Pt() < 15) {
2194 meZJets_u_perp_ZPt_0_15 = map_of_MEs[DirName + "/" + "u_perp_ZPt_0_15"];
2195 if (meZJets_u_perp_ZPt_0_15 && meZJets_u_perp_ZPt_0_15->getRootObject())
2196 meZJets_u_perp_ZPt_0_15->Fill(u_perp);
2197 } else if (zCand.Pt() < 30) {
2198 meZJets_u_perp_ZPt_15_30 = map_of_MEs[DirName + "/" + "u_perp_ZPt_15_30"];
2199 if (meZJets_u_perp_ZPt_15_30 && meZJets_u_perp_ZPt_15_30->getRootObject())
2200 meZJets_u_perp_ZPt_15_30->Fill(u_perp);
2201 } else if (zCand.Pt() < 55) {
2202 meZJets_u_perp_ZPt_30_55 = map_of_MEs[DirName + "/" + "u_perp_ZPt_30_55"];
2203 if (meZJets_u_perp_ZPt_30_55 && meZJets_u_perp_ZPt_30_55->getRootObject())
2204 meZJets_u_perp_ZPt_30_55->Fill(u_perp);
2205 } else if (zCand.Pt() < 75) {
2206 meZJets_u_perp_ZPt_55_75 = map_of_MEs[DirName + "/" + "u_perp_ZPt_55_75"];
2207 if (meZJets_u_perp_ZPt_55_75 && meZJets_u_perp_ZPt_55_75->getRootObject())
2208 meZJets_u_perp_ZPt_55_75->Fill(u_perp);
2209 } else if (zCand.Pt() < 150) {
2210 meZJets_u_perp_ZPt_75_150 = map_of_MEs[DirName + "/" + "u_perp_ZPt_75_150"];
2211 if (meZJets_u_perp_ZPt_75_150 && meZJets_u_perp_ZPt_75_150->getRootObject())
2212 meZJets_u_perp_ZPt_75_150->Fill(u_perp);
2213 } else if (zCand.Pt() < 290) {
2214 meZJets_u_perp_ZPt_150_290 = map_of_MEs[DirName + "/" + "u_perp_ZPt_150_290"];
2215 if (meZJets_u_perp_ZPt_150_290 && meZJets_u_perp_ZPt_150_290->getRootObject())
2216 meZJets_u_perp_ZPt_150_290->Fill(u_perp);
2217 } else {
2218 meZJets_u_perp_ZPt_290 = map_of_MEs[DirName + "/" + "u_perp_ZPt_290"];
2219 if (meZJets_u_perp_ZPt_290 && meZJets_u_perp_ZPt_290->getRootObject())
2220 meZJets_u_perp_ZPt_290->Fill(u_perp);
2221 }
2222 }
2223 if (!do_only_Z_histograms) {
2224
2225 double SumET = met.sumEt();
2226 double METSig = met.mEtSig();
2227
2228 double MET = met.pt();
2229 double MEx = met.px();
2230 double MEy = met.py();
2231 double METPhi = met.phi();
2232
2233 int myLuminosityBlock;
2234 myLuminosityBlock = iEvent.luminosityBlock();
2235
2236
2237 if (!subFolderName.empty()) {
2238 DirName = DirName + "/" + subFolderName;
2239 }
2240
2241 hMEx = map_of_MEs[DirName + "/" + "MEx"];
2242 if (hMEx && hMEx->getRootObject())
2243 hMEx->Fill(MEx);
2244 hMEy = map_of_MEs[DirName + "/" + "MEy"];
2245 if (hMEy && hMEy->getRootObject())
2246 hMEy->Fill(MEy);
2247 hMET = map_of_MEs[DirName + "/" + "MET"];
2248 if (hMET && hMET->getRootObject())
2249 hMET->Fill(MET);
2250 hMET_2 = map_of_MEs[DirName + "/" + "MET_2"];
2251 if (hMET_2 && hMET_2->getRootObject())
2252 hMET_2->Fill(MET);
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263 bool HBHENoiseFilterResult = false;
2264 bool CSCTightHaloFilterResult = false;
2265 bool eeBadScFilterResult = false;
2266 bool HBHEIsoNoiseFilterResult = false;
2267 bool CSCTightHalo2015FilterResult = false;
2268 bool EcalDeadCellTriggerFilterResult = false;
2269 bool EcalDeadCellBoundaryFilterResult = false;
2270 bool HcalStripHaloFilterResult = false;
2271 HBHENoiseFilterResult = METFilterDecision[0];
2272 if (HBHENoiseFilterResult) {
2273 hMET_HBHENoiseFilter = map_of_MEs[DirName + "/" + "MET_HBHENoiseFilter"];
2274 if (hMET_HBHENoiseFilter && hMET_HBHENoiseFilter->getRootObject())
2275 hMET_HBHENoiseFilter->Fill(MET);
2276 }
2277 CSCTightHaloFilterResult = METFilterDecision[1];
2278 if (CSCTightHaloFilterResult) {
2279 hMET_CSCTightHaloFilter = map_of_MEs[DirName + "/" + "MET_CSCTightHaloFilter"];
2280 if (hMET_CSCTightHaloFilter && hMET_CSCTightHaloFilter->getRootObject())
2281 hMET_CSCTightHaloFilter->Fill(MET);
2282 }
2283 eeBadScFilterResult = METFilterDecision[2];
2284 if (eeBadScFilterResult) {
2285 hMET_eeBadScFilter = map_of_MEs[DirName + "/" + "MET_eeBadScFilter"];
2286 if (hMET_eeBadScFilter && hMET_eeBadScFilter->getRootObject())
2287 hMET_eeBadScFilter->Fill(MET);
2288 }
2289 HBHEIsoNoiseFilterResult = METFilterDecision[3];
2290 if (HBHEIsoNoiseFilterResult) {
2291 hMET_HBHEIsoNoiseFilter = map_of_MEs[DirName + "/" + "MET_HBHEIsoNoiseFilter"];
2292 if (hMET_HBHEIsoNoiseFilter && hMET_HBHEIsoNoiseFilter->getRootObject())
2293 hMET_HBHEIsoNoiseFilter->Fill(MET);
2294 }
2295 CSCTightHalo2015FilterResult = METFilterDecision[4];
2296 if (CSCTightHalo2015FilterResult) {
2297 hMET_CSCTightHalo2015Filter = map_of_MEs[DirName + "/" + "MET_CSCTightHalo2015Filter"];
2298 if (hMET_CSCTightHalo2015Filter && hMET_CSCTightHalo2015Filter->getRootObject())
2299 hMET_CSCTightHalo2015Filter->Fill(MET);
2300 }
2301 EcalDeadCellTriggerFilterResult = METFilterDecision[5];
2302 if (EcalDeadCellTriggerFilterResult) {
2303 hMET_EcalDeadCellTriggerFilter = map_of_MEs[DirName + "/" + "MET_EcalDeadCellTriggerFilter"];
2304 if (hMET_EcalDeadCellTriggerFilter && hMET_EcalDeadCellTriggerFilter->getRootObject())
2305 hMET_EcalDeadCellTriggerFilter->Fill(MET);
2306 }
2307 EcalDeadCellBoundaryFilterResult = METFilterDecision[6];
2308 if (EcalDeadCellBoundaryFilterResult) {
2309 hMET_EcalDeadCellBoundaryFilter = map_of_MEs[DirName + "/" + "MET_EcalDeadCellBoundaryFilter"];
2310 if (hMET_EcalDeadCellBoundaryFilter && hMET_EcalDeadCellBoundaryFilter->getRootObject())
2311 hMET_EcalDeadCellBoundaryFilter->Fill(MET);
2312 }
2313 HcalStripHaloFilterResult = METFilterDecision[7];
2314 if (HcalStripHaloFilterResult) {
2315 hMET_HcalStripHaloFilter = map_of_MEs[DirName + "/" + "MET_HcalStripHaloFilter"];
2316 if (hMET_HcalStripHaloFilter && hMET_HcalStripHaloFilter->getRootObject())
2317 hMET_HcalStripHaloFilter->Fill(MET);
2318 }
2319 hMETPhi = map_of_MEs[DirName + "/" + "METPhi"];
2320 if (hMETPhi && hMETPhi->getRootObject())
2321 hMETPhi->Fill(METPhi);
2322 hSumET = map_of_MEs[DirName + "/" + "SumET"];
2323 if (hSumET && hSumET->getRootObject())
2324 hSumET->Fill(SumET);
2325 hMETSig = map_of_MEs[DirName + "/" + "METSig"];
2326 if (hMETSig && hMETSig->getRootObject())
2327 hMETSig->Fill(METSig);
2328 hMET_logx = map_of_MEs[DirName + "/" + "MET_logx"];
2329 if (hMET_logx && hMET_logx->getRootObject())
2330 hMET_logx->Fill(log10(MET));
2331 hSumET_logx = map_of_MEs[DirName + "/" + "SumET_logx"];
2332 if (hSumET_logx && hSumET_logx->getRootObject())
2333 hSumET_logx->Fill(log10(SumET));
2334
2335
2336
2337 meMEx_profile = map_of_MEs[DirName + "/MEx_profile"];
2338 meMEy_profile = map_of_MEs[DirName + "/MEy_profile"];
2339 meMET_profile = map_of_MEs[DirName + "/MET_profile"];
2340 meSumET_profile = map_of_MEs[DirName + "/SumET_profile"];
2341
2342 if (meMEx_profile && meMEx_profile->getRootObject())
2343 meMEx_profile->Fill(numPV_, MEx);
2344 if (meMEy_profile && meMEy_profile->getRootObject())
2345 meMEy_profile->Fill(numPV_, MEy);
2346 if (meMET_profile && meMET_profile->getRootObject())
2347 meMET_profile->Fill(numPV_, MET);
2348 if (meSumET_profile && meSumET_profile->getRootObject())
2349 meSumET_profile->Fill(numPV_, SumET);
2350
2351 if (isCaloMet_) {
2352
2353
2354
2355
2356 double caloEtFractionHadronic = calomet->etFractionHadronic();
2357 double caloEmEtFraction = calomet->emEtFraction();
2358
2359 double caloHadEtInHB = calomet->hadEtInHB();
2360 double caloHadEtInHO = calomet->hadEtInHO();
2361 double caloHadEtInHE = calomet->hadEtInHE();
2362 double caloHadEtInHF = calomet->hadEtInHF();
2363 double caloEmEtInEB = calomet->emEtInEB();
2364 double caloEmEtInEE = calomet->emEtInEE();
2365 double caloEmEtInHF = calomet->emEtInHF();
2366
2367 hCaloHadEtInHB = map_of_MEs[DirName + "/" + "CaloHadEtInHB"];
2368 if (hCaloHadEtInHB && hCaloHadEtInHB->getRootObject())
2369 hCaloHadEtInHB->Fill(caloHadEtInHB);
2370 hCaloHadEtInHO = map_of_MEs[DirName + "/" + "CaloHadEtInHO"];
2371 if (hCaloHadEtInHO && hCaloHadEtInHO->getRootObject())
2372 hCaloHadEtInHO->Fill(caloHadEtInHO);
2373 hCaloHadEtInHE = map_of_MEs[DirName + "/" + "CaloHadEtInHE"];
2374 if (hCaloHadEtInHE && hCaloHadEtInHE->getRootObject())
2375 hCaloHadEtInHE->Fill(caloHadEtInHE);
2376 hCaloHadEtInHF = map_of_MEs[DirName + "/" + "CaloHadEtInHF"];
2377 if (hCaloHadEtInHF && hCaloHadEtInHF->getRootObject())
2378 hCaloHadEtInHF->Fill(caloHadEtInHF);
2379 hCaloEmEtInEB = map_of_MEs[DirName + "/" + "CaloEmEtInEB"];
2380 if (hCaloEmEtInEB && hCaloEmEtInEB->getRootObject())
2381 hCaloEmEtInEB->Fill(caloEmEtInEB);
2382 hCaloEmEtInEE = map_of_MEs[DirName + "/" + "CaloEmEtInEE"];
2383 if (hCaloEmEtInEE && hCaloEmEtInEE->getRootObject())
2384 hCaloEmEtInEE->Fill(caloEmEtInEE);
2385 hCaloEmEtInHF = map_of_MEs[DirName + "/" + "CaloEmEtInHF"];
2386 if (hCaloEmEtInHF && hCaloEmEtInHF->getRootObject())
2387 hCaloEmEtInHF->Fill(caloEmEtInHF);
2388
2389 hCaloMETPhi020 = map_of_MEs[DirName + "/" + "CaloMETPhi020"];
2390 if (MET > 20. && hCaloMETPhi020 && hCaloMETPhi020->getRootObject()) {
2391 hCaloMETPhi020->Fill(METPhi);
2392 }
2393
2394 hCaloEtFractionHadronic = map_of_MEs[DirName + "/" + "CaloEtFractionHadronic"];
2395 if (hCaloEtFractionHadronic && hCaloEtFractionHadronic->getRootObject())
2396 hCaloEtFractionHadronic->Fill(caloEtFractionHadronic);
2397 hCaloEmEtFraction = map_of_MEs[DirName + "/" + "CaloEmEtFraction"];
2398 if (hCaloEmEtFraction && hCaloEmEtFraction->getRootObject())
2399 hCaloEmEtFraction->Fill(caloEmEtFraction);
2400 hCaloEmEtFraction020 = map_of_MEs[DirName + "/" + "CaloEmEtFraction020"];
2401 if (MET > 20. && hCaloEmEtFraction020 && hCaloEmEtFraction020->getRootObject())
2402 hCaloEmEtFraction020->Fill(caloEmEtFraction);
2403 }
2404 if (isPFMet_) {
2405 if (fillPFCandidatePlots && fillCandidateMap_histos) {
2406 for (unsigned int i = 0; i < countsPFCand_.size(); i++) {
2407 countsPFCand_[i] = 0;
2408 MExPFCand_[i] = 0.;
2409 MEyPFCand_[i] = 0.;
2410 }
2411
2412
2413 edm::Handle<std::vector<reco::PFCandidate> > particleFlow;
2414 iEvent.getByToken(pflowToken_, particleFlow);
2415
2416 float pt_sum_CHF_Barrel = 0;
2417 float pt_sum_CHF_Endcap_plus = 0;
2418 float pt_sum_CHF_Endcap_minus = 0;
2419 float pt_sum_NHF_Barrel = 0;
2420 float pt_sum_NHF_Endcap_plus = 0;
2421 float pt_sum_NHF_Endcap_minus = 0;
2422 float pt_sum_PhF_Barrel = 0;
2423 float pt_sum_PhF_Endcap_plus = 0;
2424 float pt_sum_PhF_Endcap_minus = 0;
2425 float pt_sum_HFH_plus = 0;
2426 float pt_sum_HFH_minus = 0;
2427 float pt_sum_HFE_plus = 0;
2428 float pt_sum_HFE_minus = 0;
2429
2430 float px_chargedHadronsBarrel = 0;
2431 float py_chargedHadronsBarrel = 0;
2432 float px_chargedHadronsEndcapPlus = 0;
2433 float py_chargedHadronsEndcapPlus = 0;
2434 float px_chargedHadronsEndcapMinus = 0;
2435 float py_chargedHadronsEndcapMinus = 0;
2436 float px_neutralHadronsBarrel = 0;
2437 float py_neutralHadronsBarrel = 0;
2438 float px_neutralHadronsEndcapPlus = 0;
2439 float py_neutralHadronsEndcapPlus = 0;
2440 float px_neutralHadronsEndcapMinus = 0;
2441 float py_neutralHadronsEndcapMinus = 0;
2442 float px_PhotonsBarrel = 0;
2443 float py_PhotonsBarrel = 0;
2444 float px_PhotonsEndcapPlus = 0;
2445 float py_PhotonsEndcapPlus = 0;
2446 float px_PhotonsEndcapMinus = 0;
2447 float py_PhotonsEndcapMinus = 0;
2448 float px_HFHadronsPlus = 0;
2449 float py_HFHadronsPlus = 0;
2450 float px_HFHadronsMinus = 0;
2451 float py_HFHadronsMinus = 0;
2452 float px_HFEGammasPlus = 0;
2453 float py_HFEGammasPlus = 0;
2454 float px_HFEGammasMinus = 0;
2455 float py_HFEGammasMinus = 0;
2456 for (unsigned int i = 0; i < particleFlow->size(); i++) {
2457 const reco::PFCandidate& c = particleFlow->at(i);
2458 if (c.particleId() == 1) {
2459
2460 if (c.eta() > (-3.0) && c.eta() < (-1.392)) {
2461 px_chargedHadronsEndcapMinus -= c.px();
2462 py_chargedHadronsEndcapMinus -= c.py();
2463 pt_sum_CHF_Endcap_minus += c.et();
2464 } else if (c.eta() >= (-1.392) && c.eta() <= 1.392) {
2465 px_chargedHadronsBarrel -= c.px();
2466 py_chargedHadronsBarrel -= c.py();
2467 pt_sum_CHF_Barrel += c.et();
2468 } else if (c.eta() > 1.392 && c.eta() < 3.0) {
2469 px_chargedHadronsEndcapPlus -= c.px();
2470 py_chargedHadronsEndcapPlus -= c.py();
2471 pt_sum_CHF_Endcap_plus += c.et();
2472 }
2473 }
2474 if (c.particleId() == 5) {
2475
2476 if (c.eta() > (-3.0) && c.eta() < (-1.392)) {
2477 px_neutralHadronsEndcapMinus -= c.px();
2478 py_neutralHadronsEndcapMinus -= c.py();
2479 pt_sum_NHF_Endcap_minus += c.et();
2480 } else if (c.eta() >= (-1.392) && c.eta() <= 1.392) {
2481 px_neutralHadronsBarrel -= c.px();
2482 py_neutralHadronsBarrel -= c.py();
2483 pt_sum_NHF_Barrel += c.et();
2484 } else if (c.eta() > 1.392 && c.eta() < 3.0) {
2485 px_neutralHadronsEndcapPlus -= c.px();
2486 py_neutralHadronsEndcapPlus -= c.py();
2487 pt_sum_NHF_Endcap_plus += c.et();
2488 }
2489 }
2490 if (c.particleId() == 4) {
2491
2492 if (c.eta() > (-3.0) && c.eta() < (-1.479)) {
2493 px_PhotonsEndcapMinus -= c.px();
2494 py_PhotonsEndcapMinus -= c.py();
2495 pt_sum_PhF_Endcap_minus += c.et();
2496 } else if (c.eta() >= (-1.479) && c.eta() <= 1.479) {
2497 px_PhotonsBarrel -= c.px();
2498 py_PhotonsBarrel -= c.py();
2499 pt_sum_PhF_Barrel += c.et();
2500 } else if (c.eta() > 1.479 && c.eta() < 3.0) {
2501 px_PhotonsEndcapPlus -= c.px();
2502 py_PhotonsEndcapPlus -= c.py();
2503 pt_sum_PhF_Endcap_plus += c.et();
2504 }
2505 }
2506 if (c.particleId() == 6) {
2507
2508 if (c.eta() > (-5.20) && c.eta() < -2.901376) {
2509 pt_sum_HFH_minus += c.et();
2510 px_HFHadronsMinus -= c.px();
2511 py_HFHadronsMinus -= c.py();
2512 } else if (c.eta() > 2.901376 && c.eta() < 5.20) {
2513 px_HFHadronsPlus -= c.px();
2514 py_HFHadronsPlus -= c.py();
2515 pt_sum_HFH_plus += c.et();
2516 }
2517 }
2518 if (c.particleId() == 7) {
2519
2520 if (c.eta() > (-5.20) && c.eta() < -2.901376) {
2521 pt_sum_HFE_minus += c.et();
2522 px_HFEGammasMinus -= c.px();
2523 py_HFEGammasMinus -= c.py();
2524 } else if (c.eta() > 2.901376 && c.eta() < 5.20) {
2525 px_HFEGammasPlus -= c.px();
2526 py_HFEGammasPlus -= c.py();
2527 pt_sum_HFE_plus += c.et();
2528 }
2529 }
2530 for (unsigned int j = 0; j < typePFCand_.size(); j++) {
2531 if (c.particleId() == typePFCand_[j]) {
2532
2533 if (((c.eta() > etaMinPFCand_[j]) && (c.eta() < etaMaxPFCand_[j])) ||
2534 ((c.eta() > (-etaMaxPFCand_[j])) && (c.eta() < (-etaMinPFCand_[j])))) {
2535 countsPFCand_[j] += 1;
2536 MExPFCand_[j] -= c.px();
2537 MEyPFCand_[j] -= c.py();
2538 }
2539 }
2540 }
2541 }
2542
2543 for (unsigned int j = 0; j < countsPFCand_.size(); j++) {
2544 profilePFCand_x_[j] = map_of_MEs[DirName + "/" + profilePFCand_x_name_[j]];
2545 if (profilePFCand_x_[j] && profilePFCand_x_[j]->getRootObject())
2546 profilePFCand_x_[j]->Fill(countsPFCand_[j], MExPFCand_[j]);
2547 profilePFCand_y_[j] = map_of_MEs[DirName + "/" + profilePFCand_y_name_[j]];
2548 if (profilePFCand_y_[j] && profilePFCand_y_[j]->getRootObject())
2549 profilePFCand_y_[j]->Fill(countsPFCand_[j], MEyPFCand_[j]);
2550 }
2551 meCHF_Barrel = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionBarrel"];
2552 if (meCHF_Barrel && meCHF_Barrel->getRootObject())
2553 meCHF_Barrel->Fill(pt_sum_CHF_Barrel / pfmet->sumEt());
2554 meCHF_EndcapPlus = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionEndcapPlus"];
2555 if (meCHF_EndcapPlus && meCHF_EndcapPlus->getRootObject())
2556 meCHF_EndcapPlus->Fill(pt_sum_CHF_Endcap_plus / pfmet->sumEt());
2557 meCHF_EndcapMinus = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionEndcapMinus"];
2558 if (meCHF_EndcapMinus && meCHF_EndcapMinus->getRootObject())
2559 meCHF_EndcapMinus->Fill(pt_sum_CHF_Endcap_minus / pfmet->sumEt());
2560 meNHF_Barrel = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionBarrel"];
2561 if (meNHF_Barrel && meNHF_Barrel->getRootObject())
2562 meNHF_Barrel->Fill(pt_sum_NHF_Barrel / pfmet->sumEt());
2563 meNHF_EndcapPlus = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus"];
2564 if (meNHF_EndcapPlus && meNHF_EndcapPlus->getRootObject())
2565 meNHF_EndcapPlus->Fill(pt_sum_NHF_Endcap_plus / pfmet->sumEt());
2566 meNHF_EndcapMinus = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus"];
2567 if (meNHF_EndcapMinus && meNHF_EndcapMinus->getRootObject())
2568 meNHF_EndcapMinus->Fill(pt_sum_NHF_Endcap_minus / pfmet->sumEt());
2569 mePhF_Barrel = map_of_MEs[DirName + "/" + "PfPhotonEtFractionBarrel"];
2570 if (mePhF_Barrel && mePhF_Barrel->getRootObject())
2571 mePhF_Barrel->Fill(pt_sum_PhF_Barrel / pfmet->sumEt());
2572 mePhF_EndcapPlus = map_of_MEs[DirName + "/" + "PfPhotonEtFractionEndcapPlus"];
2573 if (mePhF_EndcapPlus && mePhF_EndcapPlus->getRootObject())
2574 mePhF_EndcapPlus->Fill(pt_sum_PhF_Endcap_plus / pfmet->sumEt());
2575 mePhF_EndcapMinus = map_of_MEs[DirName + "/" + "PfPhotonEtFractionEndcapMinus"];
2576 if (mePhF_EndcapMinus && mePhF_EndcapMinus->getRootObject())
2577 mePhF_EndcapMinus->Fill(pt_sum_PhF_Endcap_minus / pfmet->sumEt());
2578 meHFHadF_Plus = map_of_MEs[DirName + "/" + "PfHFHadronEtFractionPlus"];
2579 if (meHFHadF_Plus && meHFHadF_Plus->getRootObject())
2580 meHFHadF_Plus->Fill(pt_sum_HFH_plus / pfmet->sumEt());
2581 meHFHadF_Minus = map_of_MEs[DirName + "/" + "PfHFHadronEtFractionMinus"];
2582 if (meHFHadF_Minus && meHFHadF_Minus->getRootObject())
2583 meHFHadF_Minus->Fill(pt_sum_HFH_minus / pfmet->sumEt());
2584 meHFEMF_Plus = map_of_MEs[DirName + "/" + "PfHFEMEtFractionPlus"];
2585 if (meHFEMF_Plus && meHFEMF_Plus->getRootObject())
2586 meHFEMF_Plus->Fill(pt_sum_HFE_plus / pfmet->sumEt());
2587 meHFEMF_Minus = map_of_MEs[DirName + "/" + "PfHFEMEtFractionMinus"];
2588 if (meHFEMF_Minus && meHFEMF_Minus->getRootObject())
2589 meHFEMF_Minus->Fill(pt_sum_HFE_minus / pfmet->sumEt());
2590
2591
2592
2593 if (pt_sum_CHF_Barrel) {
2594 meMETPhiChargedHadronsBarrel = map_of_MEs[DirName + "/" + "METPhiChargedHadronsBarrel"];
2595 if (meMETPhiChargedHadronsBarrel && meMETPhiChargedHadronsBarrel->getRootObject())
2596 meMETPhiChargedHadronsBarrel->Fill(atan2(py_chargedHadronsBarrel, px_chargedHadronsBarrel));
2597 }
2598 if (pt_sum_CHF_Endcap_plus) {
2599 meMETPhiChargedHadronsEndcapPlus = map_of_MEs[DirName + "/" + "METPhiChargedHadronsEndcapPlus"];
2600 if (meMETPhiChargedHadronsEndcapPlus && meMETPhiChargedHadronsEndcapPlus->getRootObject())
2601 meMETPhiChargedHadronsEndcapPlus->Fill(atan2(py_chargedHadronsEndcapPlus, px_chargedHadronsEndcapPlus));
2602 }
2603 if (pt_sum_CHF_Endcap_minus) {
2604 meMETPhiChargedHadronsEndcapMinus = map_of_MEs[DirName + "/" + "METPhiChargedHadronsEndcapMinus"];
2605 if (meMETPhiChargedHadronsEndcapMinus && meMETPhiChargedHadronsEndcapMinus->getRootObject())
2606 meMETPhiChargedHadronsEndcapMinus->Fill(atan2(py_chargedHadronsEndcapMinus, px_chargedHadronsEndcapMinus));
2607 }
2608 if (pt_sum_NHF_Barrel) {
2609 meMETPhiNeutralHadronsBarrel = map_of_MEs[DirName + "/" + "METPhiNeutralHadronsBarrel"];
2610 if (meMETPhiNeutralHadronsBarrel && meMETPhiNeutralHadronsBarrel->getRootObject())
2611 meMETPhiNeutralHadronsBarrel->Fill(atan2(py_neutralHadronsBarrel, px_neutralHadronsBarrel));
2612 }
2613 if (pt_sum_NHF_Endcap_plus) {
2614 meMETPhiNeutralHadronsEndcapPlus = map_of_MEs[DirName + "/" + "METPhiNeutralHadronsEndcapPlus"];
2615 if (meMETPhiNeutralHadronsEndcapPlus && meMETPhiNeutralHadronsEndcapPlus->getRootObject())
2616 meMETPhiNeutralHadronsEndcapPlus->Fill(atan2(py_neutralHadronsEndcapPlus, px_neutralHadronsEndcapPlus));
2617 }
2618 if (pt_sum_NHF_Endcap_minus) {
2619 meMETPhiNeutralHadronsEndcapMinus = map_of_MEs[DirName + "/" + "METPhiNeutralHadronsEndcapMinus"];
2620 if (meMETPhiNeutralHadronsEndcapMinus && meMETPhiNeutralHadronsEndcapMinus->getRootObject())
2621 meMETPhiNeutralHadronsEndcapMinus->Fill(atan2(py_neutralHadronsEndcapMinus, px_neutralHadronsEndcapMinus));
2622 }
2623 if (pt_sum_PhF_Barrel) {
2624 meMETPhiPhotonsBarrel = map_of_MEs[DirName + "/" + "METPhiPhotonsBarrel"];
2625 if (meMETPhiPhotonsBarrel && meMETPhiPhotonsBarrel->getRootObject())
2626 meMETPhiPhotonsBarrel->Fill(atan2(py_PhotonsBarrel, px_PhotonsBarrel));
2627 }
2628 if (pt_sum_PhF_Endcap_plus) {
2629 meMETPhiPhotonsEndcapPlus = map_of_MEs[DirName + "/" + "METPhiPhotonsEndcapPlus"];
2630 if (meMETPhiPhotonsEndcapPlus && meMETPhiPhotonsEndcapPlus->getRootObject())
2631 meMETPhiPhotonsEndcapPlus->Fill(atan2(py_PhotonsEndcapPlus, px_PhotonsEndcapPlus));
2632 }
2633 if (pt_sum_PhF_Endcap_minus) {
2634 meMETPhiPhotonsEndcapMinus = map_of_MEs[DirName + "/" + "METPhiPhotonsEndcapMinus"];
2635 if (meMETPhiPhotonsEndcapMinus && meMETPhiPhotonsEndcapMinus->getRootObject())
2636 meMETPhiPhotonsEndcapMinus->Fill(atan2(py_PhotonsEndcapMinus, px_PhotonsEndcapMinus));
2637 }
2638 if (pt_sum_HFH_plus) {
2639 meMETPhiHFHadronsPlus = map_of_MEs[DirName + "/" + "METPhiHFHadronsPlus"];
2640 if (meMETPhiHFHadronsPlus && meMETPhiHFHadronsPlus->getRootObject())
2641 meMETPhiHFHadronsPlus->Fill(atan2(py_HFHadronsPlus, px_HFHadronsPlus));
2642 }
2643 if (pt_sum_HFH_minus) {
2644 meMETPhiHFHadronsMinus = map_of_MEs[DirName + "/" + "METPhiHFHadronsMinus"];
2645 if (meMETPhiHFHadronsMinus && meMETPhiHFHadronsMinus->getRootObject())
2646 meMETPhiHFHadronsMinus->Fill(atan2(py_HFHadronsMinus, px_HFHadronsMinus));
2647 }
2648 if (pt_sum_HFE_plus) {
2649 meMETPhiHFEGammasPlus = map_of_MEs[DirName + "/" + "METPhiHFEGammasPlus"];
2650 if (meMETPhiHFEGammasPlus && meMETPhiHFEGammasPlus->getRootObject())
2651 meMETPhiHFEGammasPlus->Fill(atan2(py_HFEGammasPlus, px_HFEGammasPlus));
2652 }
2653 if (pt_sum_HFE_minus) {
2654 meMETPhiHFEGammasMinus = map_of_MEs[DirName + "/" + "METPhiHFEGammasMinus"];
2655 if (meMETPhiHFEGammasMinus && meMETPhiHFEGammasMinus->getRootObject())
2656 meMETPhiHFEGammasMinus->Fill(atan2(py_HFEGammasMinus, px_HFEGammasMinus));
2657 }
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718 if (techTriggerCase[1]) {
2719 meCHF_Barrel_BXm1Filled = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionBarrel_BXm1Filled"];
2720 if (meCHF_Barrel_BXm1Filled && meCHF_Barrel_BXm1Filled->getRootObject())
2721 meCHF_Barrel_BXm1Filled->Fill(pt_sum_CHF_Barrel / pfmet->sumEt());
2722 meCHF_EndcapPlus_BXm1Filled = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionEndcapPlus_BXm1Filled"];
2723 if (meCHF_EndcapPlus_BXm1Filled && meCHF_EndcapPlus_BXm1Filled->getRootObject())
2724 meCHF_EndcapPlus_BXm1Filled->Fill(pt_sum_CHF_Endcap_plus / pfmet->sumEt());
2725 meCHF_EndcapMinus_BXm1Filled = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionEndcapMinus_BXm1Filled"];
2726 if (meCHF_EndcapMinus_BXm1Filled && meCHF_EndcapMinus_BXm1Filled->getRootObject())
2727 meCHF_EndcapMinus_BXm1Filled->Fill(pt_sum_CHF_Endcap_minus / pfmet->sumEt());
2728 meNHF_Barrel_BXm1Filled = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionBarrel_BXm1Filled"];
2729 if (meNHF_Barrel_BXm1Filled && meNHF_Barrel_BXm1Filled->getRootObject())
2730 meNHF_Barrel_BXm1Filled->Fill(pt_sum_NHF_Barrel / pfmet->sumEt());
2731 meNHF_EndcapPlus_BXm1Filled = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus_BXm1Filled"];
2732 if (meNHF_EndcapPlus_BXm1Filled && meNHF_EndcapPlus_BXm1Filled->getRootObject())
2733 meNHF_EndcapPlus_BXm1Filled->Fill(pt_sum_NHF_Endcap_plus / pfmet->sumEt());
2734 meNHF_EndcapMinus_BXm1Filled = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus_BXm1Filled"];
2735 if (meNHF_EndcapMinus_BXm1Filled && meNHF_EndcapMinus_BXm1Filled->getRootObject())
2736 meNHF_EndcapMinus_BXm1Filled->Fill(pt_sum_NHF_Endcap_minus / pfmet->sumEt());
2737 mePhF_Barrel_BXm1Filled = map_of_MEs[DirName + "/" + "PfPhotonEtFractionBarrel_BXm1Filled"];
2738 if (mePhF_Barrel_BXm1Filled && mePhF_Barrel_BXm1Filled->getRootObject())
2739 mePhF_Barrel_BXm1Filled->Fill(pt_sum_PhF_Barrel / pfmet->sumEt());
2740 mePhF_EndcapPlus_BXm1Filled = map_of_MEs[DirName + "/" + "PfPhotonEtFractionEndcapPlus_BXm1Filled"];
2741 if (mePhF_EndcapPlus_BXm1Filled && mePhF_EndcapPlus_BXm1Filled->getRootObject())
2742 mePhF_EndcapPlus_BXm1Filled->Fill(pt_sum_PhF_Endcap_plus / pfmet->sumEt());
2743 mePhF_EndcapMinus_BXm1Filled = map_of_MEs[DirName + "/" + "PfPhotonEtFractionEndcapMinus_BXm1Filled"];
2744 if (mePhF_EndcapMinus_BXm1Filled && mePhF_EndcapMinus_BXm1Filled->getRootObject())
2745 mePhF_EndcapMinus_BXm1Filled->Fill(pt_sum_PhF_Endcap_minus / pfmet->sumEt());
2746 meHFHadF_Plus_BXm1Filled = map_of_MEs[DirName + "/" + "PfHFHadronEtFractionPlus_BXm1Filled"];
2747 if (meHFHadF_Plus_BXm1Filled && meHFHadF_Plus_BXm1Filled->getRootObject())
2748 meHFHadF_Plus_BXm1Filled->Fill(pt_sum_HFH_plus / pfmet->sumEt());
2749 meHFHadF_Minus_BXm1Filled = map_of_MEs[DirName + "/" + "PfHFHadronEtFractionMinus_BXm1Filled"];
2750 if (meHFHadF_Minus_BXm1Filled && meHFHadF_Minus_BXm1Filled->getRootObject())
2751 meHFHadF_Minus_BXm1Filled->Fill(pt_sum_HFH_minus / pfmet->sumEt());
2752 meHFEMF_Plus_BXm1Filled = map_of_MEs[DirName + "/" + "PfHFEMEtFractionPlus_BXm1Filled"];
2753 if (meHFEMF_Plus_BXm1Filled && meHFEMF_Plus_BXm1Filled->getRootObject())
2754 meHFEMF_Plus_BXm1Filled->Fill(pt_sum_HFE_plus / pfmet->sumEt());
2755 meHFEMF_Minus_BXm1Filled = map_of_MEs[DirName + "/" + "PfHFEMEtFractionMinus_BXm1Filled"];
2756 if (meHFEMF_Minus_BXm1Filled && meHFEMF_Minus_BXm1Filled->getRootObject())
2757 meHFEMF_Minus_BXm1Filled->Fill(pt_sum_HFE_minus / pfmet->sumEt());
2758 mePhotonEtFraction_BXm1Filled = map_of_MEs[DirName + "/" + "PfPhotonEtFraction_BXm1Filled"];
2759 if (mePhotonEtFraction_BXm1Filled && mePhotonEtFraction_BXm1Filled->getRootObject())
2760 mePhotonEtFraction_BXm1Filled->Fill(pfmet->photonEtFraction());
2761 meNeutralHadronEtFraction_BXm1Filled = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFraction_BXm1Filled"];
2762 if (meNeutralHadronEtFraction_BXm1Filled && meNeutralHadronEtFraction_BXm1Filled->getRootObject())
2763 meNeutralHadronEtFraction_BXm1Filled->Fill(pfmet->neutralHadronEtFraction());
2764 meChargedHadronEtFraction_BXm1Filled = map_of_MEs[DirName + "/" + "PfChargedHadronEtFraction_BXm1Filled"];
2765 if (meChargedHadronEtFraction_BXm1Filled && meChargedHadronEtFraction_BXm1Filled->getRootObject())
2766 meChargedHadronEtFraction_BXm1Filled->Fill(pfmet->chargedHadronEtFraction());
2767 meMET_BXm1Filled = map_of_MEs[DirName + "/" + "MET_BXm1Filled"];
2768 if (meMET_BXm1Filled && meMET_BXm1Filled->getRootObject())
2769 meMET_BXm1Filled->Fill(pfmet->pt());
2770 meSumET_BXm1Filled = map_of_MEs[DirName + "/" + "SumET_BXm1Filled"];
2771 if (meSumET_BXm1Filled && meSumET_BXm1Filled->getRootObject())
2772 meSumET_BXm1Filled->Fill(pfmet->sumEt());
2773 if (pt_sum_CHF_Barrel) {
2774 meMETPhiChargedHadronsBarrel_BXm1Filled =
2775 map_of_MEs[DirName + "/" + "METPhiChargedHadronsBarrel_BXm1Filled"];
2776 if (meMETPhiChargedHadronsBarrel_BXm1Filled && meMETPhiChargedHadronsBarrel_BXm1Filled->getRootObject())
2777 meMETPhiChargedHadronsBarrel_BXm1Filled->Fill(atan2(py_chargedHadronsBarrel, px_chargedHadronsBarrel));
2778 }
2779 if (pt_sum_CHF_Endcap_plus) {
2780 meMETPhiChargedHadronsEndcapPlus_BXm1Filled =
2781 map_of_MEs[DirName + "/" + "METPhiChargedHadronsEndcapPlus_BXm1Filled"];
2782 if (meMETPhiChargedHadronsEndcapPlus_BXm1Filled &&
2783 meMETPhiChargedHadronsEndcapPlus_BXm1Filled->getRootObject())
2784 meMETPhiChargedHadronsEndcapPlus_BXm1Filled->Fill(
2785 atan2(py_chargedHadronsEndcapPlus, px_chargedHadronsEndcapPlus));
2786 }
2787 if (pt_sum_CHF_Endcap_minus) {
2788 meMETPhiChargedHadronsEndcapMinus_BXm1Filled =
2789 map_of_MEs[DirName + "/" + "METPhiChargedHadronsEndcapMinus_BXm1Filled"];
2790 if (meMETPhiChargedHadronsEndcapMinus_BXm1Filled &&
2791 meMETPhiChargedHadronsEndcapMinus_BXm1Filled->getRootObject())
2792 meMETPhiChargedHadronsEndcapMinus_BXm1Filled->Fill(
2793 atan2(py_chargedHadronsEndcapMinus, px_chargedHadronsEndcapMinus));
2794 }
2795 if (pt_sum_NHF_Barrel) {
2796 meMETPhiNeutralHadronsBarrel_BXm1Filled =
2797 map_of_MEs[DirName + "/" + "METPhiNeutralHadronsBarrel_BXm1Filled"];
2798 if (meMETPhiNeutralHadronsBarrel_BXm1Filled && meMETPhiNeutralHadronsBarrel_BXm1Filled->getRootObject())
2799 meMETPhiNeutralHadronsBarrel_BXm1Filled->Fill(atan2(py_neutralHadronsBarrel, px_neutralHadronsBarrel));
2800 }
2801 if (pt_sum_NHF_Endcap_plus) {
2802 meMETPhiNeutralHadronsEndcapPlus_BXm1Filled =
2803 map_of_MEs[DirName + "/" + "METPhiNeutralHadronsEndcapPlus_BXm1Filled"];
2804 if (meMETPhiNeutralHadronsEndcapPlus_BXm1Filled &&
2805 meMETPhiNeutralHadronsEndcapPlus_BXm1Filled->getRootObject())
2806 meMETPhiNeutralHadronsEndcapPlus_BXm1Filled->Fill(
2807 atan2(py_neutralHadronsEndcapPlus, px_neutralHadronsEndcapPlus));
2808 }
2809 if (pt_sum_NHF_Endcap_minus) {
2810 meMETPhiNeutralHadronsEndcapMinus_BXm1Filled =
2811 map_of_MEs[DirName + "/" + "METPhiNeutralHadronsEndcapMinus_BXm1Filled"];
2812 if (meMETPhiNeutralHadronsEndcapMinus_BXm1Filled &&
2813 meMETPhiNeutralHadronsEndcapMinus_BXm1Filled->getRootObject())
2814 meMETPhiNeutralHadronsEndcapMinus_BXm1Filled->Fill(
2815 atan2(py_neutralHadronsEndcapMinus, px_neutralHadronsEndcapMinus));
2816 }
2817 if (pt_sum_PhF_Barrel) {
2818 meMETPhiPhotonsBarrel_BXm1Filled = map_of_MEs[DirName + "/" + "METPhiPhotonsBarrel_BXm1Filled"];
2819 if (meMETPhiPhotonsBarrel_BXm1Filled && meMETPhiPhotonsBarrel_BXm1Filled->getRootObject())
2820 meMETPhiPhotonsBarrel_BXm1Filled->Fill(atan2(py_PhotonsBarrel, px_PhotonsBarrel));
2821 }
2822 if (pt_sum_PhF_Endcap_plus) {
2823 meMETPhiPhotonsEndcapPlus_BXm1Filled = map_of_MEs[DirName + "/" + "METPhiPhotonsEndcapPlus_BXm1Filled"];
2824 if (meMETPhiPhotonsEndcapPlus_BXm1Filled && meMETPhiPhotonsEndcapPlus_BXm1Filled->getRootObject())
2825 meMETPhiPhotonsEndcapPlus_BXm1Filled->Fill(atan2(py_PhotonsEndcapPlus, px_PhotonsEndcapPlus));
2826 }
2827 if (pt_sum_PhF_Endcap_minus) {
2828 meMETPhiPhotonsEndcapMinus_BXm1Filled = map_of_MEs[DirName + "/" + "METPhiPhotonsEndcapMinus_BXm1Filled"];
2829 if (meMETPhiPhotonsEndcapMinus_BXm1Filled && meMETPhiPhotonsEndcapMinus_BXm1Filled->getRootObject())
2830 meMETPhiPhotonsEndcapMinus_BXm1Filled->Fill(atan2(py_PhotonsEndcapMinus, px_PhotonsEndcapMinus));
2831 }
2832 if (pt_sum_HFH_plus) {
2833 meMETPhiHFHadronsPlus_BXm1Filled = map_of_MEs[DirName + "/" + "METPhiHFHadronsPlus_BXm1Filled"];
2834 if (meMETPhiHFHadronsPlus_BXm1Filled && meMETPhiHFHadronsPlus_BXm1Filled->getRootObject())
2835 meMETPhiHFHadronsPlus_BXm1Filled->Fill(atan2(py_HFHadronsPlus, px_HFHadronsPlus));
2836 }
2837 if (pt_sum_HFH_minus) {
2838 meMETPhiHFHadronsMinus_BXm1Filled = map_of_MEs[DirName + "/" + "METPhiHFHadronsMinus_BXm1Filled"];
2839 if (meMETPhiHFHadronsMinus_BXm1Filled && meMETPhiHFHadronsMinus_BXm1Filled->getRootObject())
2840 meMETPhiHFHadronsMinus_BXm1Filled->Fill(atan2(py_HFHadronsMinus, px_HFHadronsMinus));
2841 }
2842 if (pt_sum_HFE_plus) {
2843 meMETPhiHFEGammasPlus_BXm1Filled = map_of_MEs[DirName + "/" + "METPhiHFEGammasPlus_BXm1Filled"];
2844 if (meMETPhiHFEGammasPlus_BXm1Filled && meMETPhiHFEGammasPlus_BXm1Filled->getRootObject())
2845 meMETPhiHFEGammasPlus_BXm1Filled->Fill(atan2(py_HFEGammasPlus, px_HFEGammasPlus));
2846 }
2847 if (pt_sum_HFE_minus) {
2848 meMETPhiHFEGammasMinus_BXm1Filled = map_of_MEs[DirName + "/" + "METPhiHFEGammasMinus_BXm1Filled"];
2849 if (meMETPhiHFEGammasMinus_BXm1Filled && meMETPhiHFEGammasMinus_BXm1Filled->getRootObject())
2850 meMETPhiHFEGammasMinus_BXm1Filled->Fill(atan2(py_HFEGammasMinus, px_HFEGammasMinus));
2851 }
2852 }
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912 if (techTriggerCase[2]) {
2913 meCHF_Barrel_BXm1Empty = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionBarrel_BXm1Empty"];
2914 if (meCHF_Barrel_BXm1Empty && meCHF_Barrel_BXm1Empty->getRootObject())
2915 meCHF_Barrel_BXm1Empty->Fill(pt_sum_CHF_Barrel / pfmet->sumEt());
2916 meCHF_EndcapPlus_BXm1Empty = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionEndcapPlus_BXm1Empty"];
2917 if (meCHF_EndcapPlus_BXm1Empty && meCHF_EndcapPlus_BXm1Empty->getRootObject())
2918 meCHF_EndcapPlus_BXm1Empty->Fill(pt_sum_CHF_Endcap_plus / pfmet->sumEt());
2919 meCHF_EndcapMinus_BXm1Empty = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionEndcapMinus_BXm1Empty"];
2920 if (meCHF_EndcapMinus_BXm1Empty && meCHF_EndcapMinus_BXm1Empty->getRootObject())
2921 meCHF_EndcapMinus_BXm1Empty->Fill(pt_sum_CHF_Endcap_minus / pfmet->sumEt());
2922 meNHF_Barrel_BXm1Empty = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionBarrel_BXm1Empty"];
2923 if (meNHF_Barrel_BXm1Empty && meNHF_Barrel_BXm1Empty->getRootObject())
2924 meNHF_Barrel_BXm1Empty->Fill(pt_sum_NHF_Barrel / pfmet->sumEt());
2925 meNHF_EndcapPlus_BXm1Empty = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus_BXm1Empty"];
2926 if (meNHF_EndcapPlus_BXm1Empty && meNHF_EndcapPlus_BXm1Empty->getRootObject())
2927 meNHF_EndcapPlus_BXm1Empty->Fill(pt_sum_NHF_Endcap_plus / pfmet->sumEt());
2928 meNHF_EndcapMinus_BXm1Empty = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus_BXm1Empty"];
2929 if (meNHF_EndcapMinus_BXm1Empty && meNHF_EndcapMinus_BXm1Empty->getRootObject())
2930 meNHF_EndcapMinus_BXm1Empty->Fill(pt_sum_NHF_Endcap_minus / pfmet->sumEt());
2931 mePhF_Barrel_BXm1Empty = map_of_MEs[DirName + "/" + "PfPhotonEtFractionBarrel_BXm1Empty"];
2932 if (mePhF_Barrel_BXm1Empty && mePhF_Barrel_BXm1Empty->getRootObject())
2933 mePhF_Barrel_BXm1Empty->Fill(pt_sum_PhF_Barrel / pfmet->sumEt());
2934 mePhF_EndcapPlus_BXm1Empty = map_of_MEs[DirName + "/" + "PfPhotonEtFractionEndcapPlus_BXm1Empty"];
2935 if (mePhF_EndcapPlus_BXm1Empty && mePhF_EndcapPlus_BXm1Empty->getRootObject())
2936 mePhF_EndcapPlus_BXm1Empty->Fill(pt_sum_PhF_Endcap_plus / pfmet->sumEt());
2937 mePhF_EndcapMinus_BXm1Empty = map_of_MEs[DirName + "/" + "PfPhotonEtFractionEndcapMinus_BXm1Empty"];
2938 if (mePhF_EndcapMinus_BXm1Empty && mePhF_EndcapMinus_BXm1Empty->getRootObject())
2939 mePhF_EndcapMinus_BXm1Empty->Fill(pt_sum_PhF_Endcap_minus / pfmet->sumEt());
2940 meHFHadF_Plus_BXm1Empty = map_of_MEs[DirName + "/" + "PfHFHadronEtFractionPlus_BXm1Empty"];
2941 if (meHFHadF_Plus_BXm1Empty && meHFHadF_Plus_BXm1Empty->getRootObject())
2942 meHFHadF_Plus_BXm1Empty->Fill(pt_sum_HFH_plus / pfmet->sumEt());
2943 meHFHadF_Minus_BXm1Empty = map_of_MEs[DirName + "/" + "PfHFHadronEtFractionMinus_BXm1Empty"];
2944 if (meHFHadF_Minus_BXm1Empty && meHFHadF_Minus_BXm1Empty->getRootObject())
2945 meHFHadF_Minus_BXm1Empty->Fill(pt_sum_HFH_minus / pfmet->sumEt());
2946 meHFEMF_Plus_BXm1Empty = map_of_MEs[DirName + "/" + "PfHFEMEtFractionPlus_BXm1Empty"];
2947 if (meHFEMF_Plus_BXm1Empty && meHFEMF_Plus_BXm1Empty->getRootObject())
2948 meHFEMF_Plus_BXm1Empty->Fill(pt_sum_HFE_plus / pfmet->sumEt());
2949 meHFEMF_Minus_BXm1Empty = map_of_MEs[DirName + "/" + "PfHFEMEtFractionMinus_BXm1Empty"];
2950 if (meHFEMF_Minus_BXm1Empty && meHFEMF_Minus_BXm1Empty->getRootObject())
2951 meHFEMF_Minus_BXm1Empty->Fill(pt_sum_HFE_minus / pfmet->sumEt());
2952 mePhotonEtFraction_BXm1Empty = map_of_MEs[DirName + "/" + "PfPhotonEtFraction_BXm1Empty"];
2953 if (mePhotonEtFraction_BXm1Empty && mePhotonEtFraction_BXm1Empty->getRootObject())
2954 mePhotonEtFraction_BXm1Empty->Fill(pfmet->photonEtFraction());
2955 meNeutralHadronEtFraction_BXm1Empty = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFraction_BXm1Empty"];
2956 if (meNeutralHadronEtFraction_BXm1Empty && meNeutralHadronEtFraction_BXm1Empty->getRootObject())
2957 meNeutralHadronEtFraction_BXm1Empty->Fill(pfmet->neutralHadronEtFraction());
2958 meChargedHadronEtFraction_BXm1Empty = map_of_MEs[DirName + "/" + "PfChargedHadronEtFraction_BXm1Empty"];
2959 if (meChargedHadronEtFraction_BXm1Empty && meChargedHadronEtFraction_BXm1Empty->getRootObject())
2960 meChargedHadronEtFraction_BXm1Empty->Fill(pfmet->chargedHadronEtFraction());
2961 meMET_BXm1Empty = map_of_MEs[DirName + "/" + "MET_BXm1Empty"];
2962 if (meMET_BXm1Empty && meMET_BXm1Empty->getRootObject())
2963 meMET_BXm1Empty->Fill(pfmet->pt());
2964 meSumET_BXm1Empty = map_of_MEs[DirName + "/" + "SumET_BXm1Empty"];
2965 if (meSumET_BXm1Empty && meSumET_BXm1Empty->getRootObject())
2966 meSumET_BXm1Empty->Fill(pfmet->sumEt());
2967 if (pt_sum_CHF_Barrel) {
2968 meMETPhiChargedHadronsBarrel_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiChargedHadronsBarrel_BXm1Empty"];
2969 if (meMETPhiChargedHadronsBarrel_BXm1Empty && meMETPhiChargedHadronsBarrel_BXm1Empty->getRootObject())
2970 meMETPhiChargedHadronsBarrel_BXm1Empty->Fill(atan2(py_chargedHadronsBarrel, px_chargedHadronsBarrel));
2971 }
2972 if (pt_sum_CHF_Endcap_plus) {
2973 meMETPhiChargedHadronsEndcapPlus_BXm1Empty =
2974 map_of_MEs[DirName + "/" + "METPhiChargedHadronsEndcapPlus_BXm1Empty"];
2975 if (meMETPhiChargedHadronsEndcapPlus_BXm1Empty &&
2976 meMETPhiChargedHadronsEndcapPlus_BXm1Empty->getRootObject())
2977 meMETPhiChargedHadronsEndcapPlus_BXm1Empty->Fill(
2978 atan2(py_chargedHadronsEndcapPlus, px_chargedHadronsEndcapPlus));
2979 }
2980 if (pt_sum_CHF_Endcap_minus) {
2981 meMETPhiChargedHadronsEndcapMinus_BXm1Empty =
2982 map_of_MEs[DirName + "/" + "METPhiChargedHadronsEndcapMinus_BXm1Empty"];
2983 if (meMETPhiChargedHadronsEndcapMinus_BXm1Empty &&
2984 meMETPhiChargedHadronsEndcapMinus_BXm1Empty->getRootObject())
2985 meMETPhiChargedHadronsEndcapMinus_BXm1Empty->Fill(
2986 atan2(py_chargedHadronsEndcapMinus, px_chargedHadronsEndcapMinus));
2987 }
2988 if (pt_sum_NHF_Barrel) {
2989 meMETPhiNeutralHadronsBarrel_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiNeutralHadronsBarrel_BXm1Empty"];
2990 if (meMETPhiNeutralHadronsBarrel_BXm1Empty && meMETPhiNeutralHadronsBarrel_BXm1Empty->getRootObject())
2991 meMETPhiNeutralHadronsBarrel_BXm1Empty->Fill(atan2(py_neutralHadronsBarrel, px_neutralHadronsBarrel));
2992 }
2993 if (pt_sum_NHF_Endcap_plus) {
2994 meMETPhiNeutralHadronsEndcapPlus_BXm1Empty =
2995 map_of_MEs[DirName + "/" + "METPhiNeutralHadronsEndcapPlus_BXm1Empty"];
2996 if (meMETPhiNeutralHadronsEndcapPlus_BXm1Empty &&
2997 meMETPhiNeutralHadronsEndcapPlus_BXm1Empty->getRootObject())
2998 meMETPhiNeutralHadronsEndcapPlus_BXm1Empty->Fill(
2999 atan2(py_neutralHadronsEndcapPlus, px_neutralHadronsEndcapPlus));
3000 }
3001 if (pt_sum_NHF_Endcap_minus) {
3002 meMETPhiNeutralHadronsEndcapMinus_BXm1Empty =
3003 map_of_MEs[DirName + "/" + "METPhiNeutralHadronsEndcapMinus_BXm1Empty"];
3004 if (meMETPhiNeutralHadronsEndcapMinus_BXm1Empty &&
3005 meMETPhiNeutralHadronsEndcapMinus_BXm1Empty->getRootObject())
3006 meMETPhiNeutralHadronsEndcapMinus_BXm1Empty->Fill(
3007 atan2(py_neutralHadronsEndcapMinus, px_neutralHadronsEndcapMinus));
3008 }
3009 if (pt_sum_PhF_Barrel) {
3010 meMETPhiPhotonsBarrel_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiPhotonsBarrel_BXm1Empty"];
3011 if (meMETPhiPhotonsBarrel_BXm1Empty && meMETPhiPhotonsBarrel_BXm1Empty->getRootObject())
3012 meMETPhiPhotonsBarrel_BXm1Empty->Fill(atan2(py_PhotonsBarrel, px_PhotonsBarrel));
3013 }
3014 if (pt_sum_PhF_Endcap_plus) {
3015 meMETPhiPhotonsEndcapPlus_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiPhotonsEndcapPlus_BXm1Empty"];
3016 if (meMETPhiPhotonsEndcapPlus_BXm1Empty && meMETPhiPhotonsEndcapPlus_BXm1Empty->getRootObject())
3017 meMETPhiPhotonsEndcapPlus_BXm1Empty->Fill(atan2(py_PhotonsEndcapPlus, px_PhotonsEndcapPlus));
3018 }
3019 if (pt_sum_PhF_Endcap_minus) {
3020 meMETPhiPhotonsEndcapMinus_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiPhotonsEndcapMinus_BXm1Empty"];
3021 if (meMETPhiPhotonsEndcapMinus_BXm1Empty && meMETPhiPhotonsEndcapMinus_BXm1Empty->getRootObject())
3022 meMETPhiPhotonsEndcapMinus_BXm1Empty->Fill(atan2(py_PhotonsEndcapMinus, px_PhotonsEndcapMinus));
3023 }
3024 if (pt_sum_HFH_plus) {
3025 meMETPhiHFHadronsPlus_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiHFHadronsPlus_BXm1Empty"];
3026 if (meMETPhiHFHadronsPlus_BXm1Empty && meMETPhiHFHadronsPlus_BXm1Empty->getRootObject())
3027 meMETPhiHFHadronsPlus_BXm1Empty->Fill(atan2(py_HFHadronsPlus, px_HFHadronsPlus));
3028 }
3029 if (pt_sum_HFH_minus) {
3030 meMETPhiHFHadronsMinus_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiHFHadronsMinus_BXm1Empty"];
3031 if (meMETPhiHFHadronsMinus_BXm1Empty && meMETPhiHFHadronsMinus_BXm1Empty->getRootObject())
3032 meMETPhiHFHadronsMinus_BXm1Empty->Fill(atan2(py_HFHadronsMinus, px_HFHadronsMinus));
3033 }
3034 if (pt_sum_HFE_plus) {
3035 meMETPhiHFEGammasPlus_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiHFEGammasPlus_BXm1Empty"];
3036 if (meMETPhiHFEGammasPlus_BXm1Empty && meMETPhiHFEGammasPlus_BXm1Empty->getRootObject())
3037 meMETPhiHFEGammasPlus_BXm1Empty->Fill(atan2(py_HFEGammasPlus, px_HFEGammasPlus));
3038 }
3039 if (pt_sum_HFE_minus) {
3040 meMETPhiHFEGammasMinus_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiHFEGammasMinus_BXm1Empty"];
3041 if (meMETPhiHFEGammasMinus_BXm1Empty && meMETPhiHFEGammasMinus_BXm1Empty->getRootObject())
3042 meMETPhiHFEGammasMinus_BXm1Empty->Fill(atan2(py_HFEGammasMinus, px_HFEGammasMinus));
3043 }
3044 }
3045
3046 }
3047
3048
3049
3050 double pfPhotonEtFraction = pfmet->photonEtFraction();
3051 double pfPhotonEt = pfmet->photonEt();
3052 double pfNeutralHadronEtFraction = pfmet->neutralHadronEtFraction();
3053 double pfNeutralHadronEt = pfmet->neutralHadronEt();
3054 double pfElectronEt = pfmet->electronEt();
3055 double pfChargedHadronEtFraction = pfmet->chargedHadronEtFraction();
3056 double pfChargedHadronEt = pfmet->chargedHadronEt();
3057 double pfMuonEt = pfmet->muonEt();
3058 double pfHFHadronEtFraction = pfmet->HFHadronEtFraction();
3059 double pfHFHadronEt = pfmet->HFHadronEt();
3060 double pfHFEMEtFraction = pfmet->HFEMEtFraction();
3061 double pfHFEMEt = pfmet->HFEMEt();
3062 mePhotonEtFraction = map_of_MEs[DirName + "/PfPhotonEtFraction"];
3063 mePhotonEt = map_of_MEs[DirName + "/PfPhotonEt"];
3064 meNeutralHadronEtFraction = map_of_MEs[DirName + "/PfNeutralHadronEtFraction"];
3065 meNeutralHadronEt = map_of_MEs[DirName + "/PfNeutralHadronEt"];
3066 meElectronEt = map_of_MEs[DirName + "/PfElectronEt"];
3067 meChargedHadronEtFraction = map_of_MEs[DirName + "/PfChargedHadronEtFraction"];
3068 meChargedHadronEt = map_of_MEs[DirName + "/PfChargedHadronEt"];
3069 meMuonEt = map_of_MEs[DirName + "/PfMuonEt"];
3070 meHFHadronEtFraction = map_of_MEs[DirName + "/PfHFHadronEtFraction"];
3071 meHFHadronEt = map_of_MEs[DirName + "/PfHFHadronEt"];
3072 meHFEMEtFraction = map_of_MEs[DirName + "/PfHFEMEtFraction"];
3073 meHFEMEt = map_of_MEs[DirName + "/PfHFEMEt"];
3074
3075 if (mePhotonEtFraction && mePhotonEtFraction->getRootObject())
3076 mePhotonEtFraction->Fill(pfPhotonEtFraction);
3077 if (mePhotonEt && mePhotonEt->getRootObject())
3078 mePhotonEt->Fill(pfPhotonEt);
3079 if (meNeutralHadronEtFraction && meNeutralHadronEtFraction->getRootObject())
3080 meNeutralHadronEtFraction->Fill(pfNeutralHadronEtFraction);
3081 if (meNeutralHadronEt && meNeutralHadronEt->getRootObject())
3082 meNeutralHadronEt->Fill(pfNeutralHadronEt);
3083 if (meElectronEt && meElectronEt->getRootObject())
3084 meElectronEt->Fill(pfElectronEt);
3085 if (meChargedHadronEtFraction && meChargedHadronEtFraction->getRootObject())
3086 meChargedHadronEtFraction->Fill(pfChargedHadronEtFraction);
3087 if (meChargedHadronEt && meChargedHadronEt->getRootObject())
3088 meChargedHadronEt->Fill(pfChargedHadronEt);
3089 if (meMuonEt && meMuonEt->getRootObject())
3090 meMuonEt->Fill(pfMuonEt);
3091 if (meHFHadronEtFraction && meHFHadronEtFraction->getRootObject())
3092 meHFHadronEtFraction->Fill(pfHFHadronEtFraction);
3093 if (meHFHadronEt && meHFHadronEt->getRootObject())
3094 meHFHadronEt->Fill(pfHFHadronEt);
3095 if (meHFEMEtFraction && meHFEMEtFraction->getRootObject())
3096 meHFEMEtFraction->Fill(pfHFEMEtFraction);
3097 if (meHFEMEt && meHFEMEt->getRootObject())
3098 meHFEMEt->Fill(pfHFEMEt);
3099
3100
3101
3102 mePhotonEtFraction_profile = map_of_MEs[DirName + "/PfPhotonEtFraction_profile"];
3103 mePhotonEt_profile = map_of_MEs[DirName + "/PfPhotonEt_profile"];
3104 meNeutralHadronEtFraction_profile = map_of_MEs[DirName + "/PfNeutralHadronEtFraction_profile"];
3105 meNeutralHadronEt_profile = map_of_MEs[DirName + "/PfNeutralHadronEt_profile"];
3106 meChargedHadronEtFraction_profile = map_of_MEs[DirName + "/PfChargedHadronEtFraction_profile"];
3107 meChargedHadronEt_profile = map_of_MEs[DirName + "/PfChargedHadronEt_profile"];
3108 meHFHadronEtFraction_profile = map_of_MEs[DirName + "/PfHFHadronEtFraction_profile"];
3109 meHFHadronEt_profile = map_of_MEs[DirName + "/PfHFHadronEt_profile"];
3110 meHFEMEtFraction_profile = map_of_MEs[DirName + "/PfHFEMEtFraction_profile"];
3111 meHFEMEt_profile = map_of_MEs[DirName + "/PfHFEMEt_profile"];
3112
3113 if (mePhotonEtFraction_profile && mePhotonEtFraction_profile->getRootObject())
3114 mePhotonEtFraction_profile->Fill(numPV_, pfPhotonEtFraction);
3115 if (mePhotonEt_profile && mePhotonEt_profile->getRootObject())
3116 mePhotonEt_profile->Fill(numPV_, pfPhotonEt);
3117 if (meNeutralHadronEtFraction_profile && meNeutralHadronEtFraction_profile->getRootObject())
3118 meNeutralHadronEtFraction_profile->Fill(numPV_, pfNeutralHadronEtFraction);
3119 if (meNeutralHadronEt_profile && meNeutralHadronEt_profile->getRootObject())
3120 meNeutralHadronEt_profile->Fill(numPV_, pfNeutralHadronEt);
3121 if (meChargedHadronEtFraction_profile && meChargedHadronEtFraction_profile->getRootObject())
3122 meChargedHadronEtFraction_profile->Fill(numPV_, pfChargedHadronEtFraction);
3123 if (meChargedHadronEt_profile && meChargedHadronEt_profile->getRootObject())
3124 meChargedHadronEt_profile->Fill(numPV_, pfChargedHadronEt);
3125 if (meHFHadronEtFraction_profile && meHFHadronEtFraction_profile->getRootObject())
3126 meHFHadronEtFraction_profile->Fill(numPV_, pfHFHadronEtFraction);
3127 if (meHFHadronEt_profile && meHFHadronEt_profile->getRootObject())
3128 meHFHadronEt_profile->Fill(numPV_, pfHFHadronEt);
3129 if (meHFEMEtFraction_profile && meHFEMEtFraction_profile->getRootObject())
3130 meHFEMEtFraction_profile->Fill(numPV_, pfHFEMEtFraction);
3131 if (meHFEMEt_profile && meHFEMEt_profile->getRootObject())
3132 meHFEMEt_profile->Fill(numPV_, pfHFEMEt);
3133 }
3134
3135 if (isMiniAODMet_) {
3136 mePhotonEtFraction = map_of_MEs[DirName + "/PfPhotonEtFraction"];
3137 meNeutralHadronEtFraction = map_of_MEs[DirName + "/PfNeutralHadronEtFraction"];
3138 meChargedHadronEtFraction = map_of_MEs[DirName + "/PfChargedHadronEtFraction"];
3139 meHFHadronEtFraction = map_of_MEs[DirName + "/PfHFHadronEtFraction"];
3140 meHFEMEtFraction = map_of_MEs[DirName + "/PfHFEMEtFraction"];
3141
3142 if (mePhotonEtFraction && mePhotonEtFraction->getRootObject())
3143 mePhotonEtFraction->Fill(patmet->NeutralEMFraction());
3144 if (meNeutralHadronEtFraction && meNeutralHadronEtFraction->getRootObject())
3145 meNeutralHadronEtFraction->Fill(patmet->NeutralHadEtFraction());
3146 if (meChargedHadronEtFraction && meChargedHadronEtFraction->getRootObject())
3147 meChargedHadronEtFraction->Fill(patmet->ChargedHadEtFraction());
3148 if (meHFHadronEtFraction && meHFHadronEtFraction->getRootObject())
3149 meHFHadronEtFraction->Fill(patmet->Type6EtFraction());
3150 if (meHFEMEtFraction && meHFEMEtFraction->getRootObject())
3151 meHFEMEtFraction->Fill(patmet->Type7EtFraction());
3152
3153
3154 mePhotonEtFraction_profile = map_of_MEs[DirName + "/PfPhotonEtFraction_profile"];
3155 meNeutralHadronEtFraction_profile = map_of_MEs[DirName + "/PfNeutralHadronEtFraction_profile"];
3156 meChargedHadronEtFraction_profile = map_of_MEs[DirName + "/PfChargedHadronEtFraction_profile"];
3157 meHFHadronEtFraction_profile = map_of_MEs[DirName + "/PfHFHadronEtFraction_profile"];
3158 meHFEMEtFraction_profile = map_of_MEs[DirName + "/PfHFEMEtFraction_profile"];
3159
3160 if (mePhotonEtFraction_profile && mePhotonEtFraction_profile->getRootObject())
3161 mePhotonEtFraction_profile->Fill(numPV_, patmet->NeutralEMFraction());
3162 if (meNeutralHadronEtFraction_profile && meNeutralHadronEtFraction_profile->getRootObject())
3163 meNeutralHadronEtFraction_profile->Fill(numPV_, patmet->NeutralHadEtFraction());
3164 if (meChargedHadronEtFraction_profile && meChargedHadronEtFraction_profile->getRootObject())
3165 meChargedHadronEtFraction_profile->Fill(numPV_, patmet->ChargedHadEtFraction());
3166 if (meHFHadronEtFraction_profile && meHFHadronEtFraction_profile->getRootObject())
3167 meHFHadronEtFraction_profile->Fill(numPV_, patmet->Type6EtFraction());
3168 if (meHFEMEtFraction_profile && meHFEMEtFraction_profile->getRootObject())
3169 meHFEMEtFraction_profile->Fill(numPV_, patmet->Type7EtFraction());
3170
3171 mePhotonEt = map_of_MEs[DirName + "/PfPhotonEt"];
3172 meNeutralHadronEt = map_of_MEs[DirName + "/PfNeutralHadronEt"];
3173 meChargedHadronEt = map_of_MEs[DirName + "/PfChargedHadronEt"];
3174 meHFHadronEt = map_of_MEs[DirName + "/PfHFHadronEt"];
3175 meHFEMEt = map_of_MEs[DirName + "/PfHFEMEt"];
3176 meMuonEt = map_of_MEs[DirName + "/PfMuonEt"];
3177 meElectronEt = map_of_MEs[DirName + "/PfElectronEt"];
3178
3179 if (mePhotonEt && mePhotonEt->getRootObject())
3180 mePhotonEt->Fill(patmet->NeutralEMFraction() * patmet->sumEt());
3181 if (meNeutralHadronEt && meNeutralHadronEt->getRootObject())
3182 meNeutralHadronEt->Fill(patmet->NeutralHadEtFraction() * patmet->sumEt());
3183 if (meChargedHadronEt && meChargedHadronEt->getRootObject())
3184 meChargedHadronEt->Fill(patmet->ChargedHadEtFraction() * patmet->sumEt());
3185 if (meHFHadronEt && meHFHadronEt->getRootObject())
3186 meHFHadronEt->Fill(patmet->Type6EtFraction() * patmet->sumEt());
3187 if (meHFEMEt && meHFEMEt->getRootObject())
3188 meHFEMEt->Fill(patmet->Type7EtFraction() * patmet->sumEt());
3189 if (meMuonEt && meMuonEt->getRootObject())
3190 meMuonEt->Fill(patmet->MuonEtFraction() * patmet->sumEt());
3191 if (meElectronEt && meElectronEt->getRootObject())
3192 meElectronEt->Fill(patmet->ChargedEMEtFraction() * patmet->sumEt());
3193
3194
3195 mePhotonEt_profile = map_of_MEs[DirName + "/PfPhotonEt_profile"];
3196 meNeutralHadronEt_profile = map_of_MEs[DirName + "/PfNeutralHadronEt_profile"];
3197 meChargedHadronEt_profile = map_of_MEs[DirName + "/PfChargedHadronEt_profile"];
3198 meHFHadronEt_profile = map_of_MEs[DirName + "/PfHFHadronEt_profile"];
3199 meHFEMEt_profile = map_of_MEs[DirName + "/PfHFEMEt_profile"];
3200
3201 if (mePhotonEt_profile && mePhotonEt_profile->getRootObject())
3202 mePhotonEt_profile->Fill(numPV_, patmet->NeutralEMFraction() * patmet->sumEt());
3203 if (meNeutralHadronEt_profile && meNeutralHadronEt_profile->getRootObject())
3204 meNeutralHadronEt_profile->Fill(numPV_, patmet->NeutralHadEtFraction() * patmet->sumEt());
3205 if (meChargedHadronEt_profile && meChargedHadronEt_profile->getRootObject())
3206 meChargedHadronEt_profile->Fill(numPV_, patmet->ChargedHadEtFraction() * patmet->sumEt());
3207 if (meHFHadronEt_profile && meHFHadronEt_profile->getRootObject())
3208 meHFHadronEt_profile->Fill(numPV_, patmet->Type6EtFraction() * patmet->sumEt());
3209 if (meHFEMEt_profile && meHFEMEt_profile->getRootObject())
3210 meHFEMEt_profile->Fill(numPV_, patmet->Type7EtFraction() * patmet->sumEt());
3211 }
3212
3213 if (isCaloMet_) {
3214
3215 if (fill_met_high_level_histo) {
3216 hMExLS = map_of_MEs[DirName + "/" + "MExLS"];
3217 if (hMExLS && hMExLS->getRootObject())
3218 hMExLS->Fill(MEx, myLuminosityBlock);
3219 hMEyLS = map_of_MEs[DirName + "/" + "MEyLS"];
3220 if (hMEyLS && hMEyLS->getRootObject())
3221 hMEyLS->Fill(MEy, myLuminosityBlock);
3222 }
3223 }
3224 }
3225 }