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