CMS 3D CMS Logo

METAnalyzer.cc
Go to the documentation of this file.
1 
20 
25 
27 
31 #include <cmath>
32 #include "TH2F.h"
33 #include "TH2.h"
34 
35 #include <string>
36 
37 using namespace edm;
38 using namespace reco;
39 using namespace math;
40 
41 // ***********************************************************
43  parameters = pSet;
44 
45  m_l1algoname_ = pSet.getParameter<std::string>("l1algoname");
46  m_bitAlgTechTrig_ = -1;
47 
48  miniaodfilterdec = -1;
49 
50  LSBegin_ = pSet.getParameter<int>("LSBegin");
51  LSEnd_ = pSet.getParameter<int>("LSEnd");
52  // Smallest track pt
53  ptMinCand_ = pSet.getParameter<double>("ptMinCand");
54 
55  MetType_ = parameters.getUntrackedParameter<std::string>("METType");
56 
57  triggerResultsLabel_ = parameters.getParameter<edm::InputTag>("TriggerResultsLabel");
58  triggerResultsToken_ = consumes<edm::TriggerResults>(edm::InputTag(triggerResultsLabel_));
59 
60  isCaloMet_ = (std::string("calo") == MetType_);
61  //isTCMet_ = (std::string("tc") ==MetType_);
62  isPFMet_ = (std::string("pf") == MetType_);
63  isMiniAODMet_ = (std::string("miniaod") == MetType_);
64  if (!isMiniAODMet_) {
65  jetCorrectorToken_ = consumes<reco::JetCorrector>(pSet.getParameter<edm::InputTag>("JetCorrections"));
66  }
67 
68  // MET information
69  metCollectionLabel_ = parameters.getParameter<edm::InputTag>("METCollectionLabel");
70 
71  if (/*isTCMet_ || */ isCaloMet_) {
72  inputJetIDValueMap = pSet.getParameter<edm::InputTag>("InputJetIDValueMap");
73  jetID_ValueMapToken_ = consumes<edm::ValueMap<reco::JetID> >(inputJetIDValueMap);
75  }
76 
77  if (isPFMet_) {
78  pflowToken_ = consumes<std::vector<reco::PFCandidate> >(pSet.getParameter<edm::InputTag>("srcPFlow"));
80  }
81  if (isMiniAODMet_) {
82  pflowPackedToken_ = consumes<std::vector<pat::PackedCandidate> >(pSet.getParameter<edm::InputTag>("srcPFlow"));
84  }
85  MuonsToken_ = consumes<reco::MuonCollection>(pSet.getParameter<edm::InputTag>("muonsrc"));
86 
87  ptThreshold_ = parameters.getParameter<double>("ptThreshold");
88 
89  if (isPFMet_) {
90  pfMetToken_ = consumes<reco::PFMETCollection>(edm::InputTag(metCollectionLabel_));
91  }
92  if (isCaloMet_) {
93  caloMetToken_ = consumes<reco::CaloMETCollection>(edm::InputTag(metCollectionLabel_));
94  }
95  if (isMiniAODMet_) {
96  patMetToken_ = consumes<pat::METCollection>(edm::InputTag(metCollectionLabel_));
97  }
98  //if(isTCMet_){
99  // tcMetToken_= consumes<reco::METCollection>(edm::InputTag(metCollectionLabel_));
100  //}
101 
102  fill_met_high_level_histo = parameters.getParameter<bool>("fillMetHighLevel");
103  fillCandidateMap_histos = parameters.getParameter<bool>("fillCandidateMaps");
104 
105  hTriggerLabelsIsSet_ = false;
106  //jet cleanup parameters
107  cleaningParameters_ = pSet.getParameter<ParameterSet>("CleaningParameters");
108 
109  diagnosticsParameters_ = pSet.getParameter<std::vector<edm::ParameterSet> >("METDiagonisticsParameters");
110 
111  edm::ConsumesCollector iC = consumesCollector();
112  //DCS
113  DCSFilter_ = new JetMETDQMDCSFilter(parameters.getParameter<ParameterSet>("DCSFilter"), iC);
114 
115  //Vertex requirements
116  bypassAllPVChecks_ = cleaningParameters_.getParameter<bool>("bypassAllPVChecks");
117  bypassAllDCSChecks_ = cleaningParameters_.getParameter<bool>("bypassAllDCSChecks");
118  runcosmics_ = parameters.getUntrackedParameter<bool>("runcosmics");
119  onlyCleaned_ = parameters.getUntrackedParameter<bool>("onlyCleaned");
120  vertexTag_ = cleaningParameters_.getParameter<edm::InputTag>("vertexCollection");
121  vertexToken_ = consumes<std::vector<reco::Vertex> >(edm::InputTag(vertexTag_));
122 
123  //Trigger parameters
124  gtTag_ = cleaningParameters_.getParameter<edm::InputTag>("gtLabel");
125  gtToken_ = consumes<L1GlobalTriggerReadoutRecord>(edm::InputTag(gtTag_));
126 
127  // Other data collections
128  jetCollectionLabel_ = parameters.getParameter<edm::InputTag>("JetCollectionLabel");
129  if (isCaloMet_)
130  caloJetsToken_ = consumes<reco::CaloJetCollection>(jetCollectionLabel_);
131  //if (isTCMet_) jptJetsToken_ = consumes<reco::JPTJetCollection>(jetCollectionLabel_);
132  if (isPFMet_)
133  pfJetsToken_ = consumes<reco::PFJetCollection>(jetCollectionLabel_);
134  if (isMiniAODMet_)
135  patJetsToken_ = consumes<pat::JetCollection>(jetCollectionLabel_);
136 
137  HBHENoiseStringMiniAOD = parameters.getParameter<std::string>("HBHENoiseLabelMiniAOD");
138  HBHEIsoNoiseStringMiniAOD = parameters.getParameter<std::string>("HBHEIsoNoiseLabelMiniAOD");
139 
140  hbheNoiseFilterResultTag_ = parameters.getParameter<edm::InputTag>("HBHENoiseFilterResultLabel");
141  hbheNoiseFilterResultToken_ = consumes<bool>(hbheNoiseFilterResultTag_);
142  hbheNoiseIsoFilterResultTag_ = parameters.getParameter<edm::InputTag>("HBHENoiseIsoFilterResultLabel");
143  hbheIsoNoiseFilterResultToken_ = consumes<bool>(hbheNoiseIsoFilterResultTag_);
144  CSCHaloResultTag_ = parameters.getParameter<edm::InputTag>("CSCHaloResultLabel");
145  CSCHaloResultToken_ = consumes<bool>(CSCHaloResultTag_);
146  CSCHalo2015ResultTag_ = parameters.getParameter<edm::InputTag>("CSCHalo2015ResultLabel");
147  CSCHalo2015ResultToken_ = consumes<bool>(CSCHalo2015ResultTag_);
148  EcalDeadCellTriggerTag_ = parameters.getParameter<edm::InputTag>("EcalDeadCellTriggerPrimitiveFilterLabel");
149  EcalDeadCellTriggerToken_ = consumes<bool>(EcalDeadCellTriggerTag_);
150  EcalDeadCellBoundaryTag_ = parameters.getParameter<edm::InputTag>("EcalDeadCellBoundaryEnergyFilterLabel");
151  EcalDeadCellBoundaryToken_ = consumes<bool>(EcalDeadCellBoundaryTag_);
152  eeBadScFilterTag_ = parameters.getParameter<edm::InputTag>("eeBadScFilterLabel");
153  eeBadScFilterToken_ = consumes<bool>(eeBadScFilterTag_);
154  HcalStripHaloTag_ = parameters.getParameter<edm::InputTag>("HcalStripHaloFilterLabel");
155  HcalStripHaloToken_ = consumes<bool>(HcalStripHaloTag_);
156 
157  if (isMiniAODMet_) {
158  METFilterMiniAODLabel_ = parameters.getParameter<edm::InputTag>("FilterResultsLabelMiniAOD");
159  METFilterMiniAODToken_ = consumes<edm::TriggerResults>(METFilterMiniAODLabel_);
160 
161  METFilterMiniAODLabel2_ = parameters.getParameter<edm::InputTag>("FilterResultsLabelMiniAOD2");
162  METFilterMiniAODToken2_ = consumes<edm::TriggerResults>(METFilterMiniAODLabel2_);
163  }
164 
165  //
166  nbinsPV_ = parameters.getParameter<int>("pVBin");
167  nPVMin_ = parameters.getParameter<double>("pVMin");
168  nPVMax_ = parameters.getParameter<double>("pVMax");
169 
170  triggerSelectedSubFolders_ = parameters.getParameter<edm::VParameterSet>("triggerSelectedSubFolders");
171  for (edm::VParameterSet::const_iterator it = triggerSelectedSubFolders_.begin();
172  it != triggerSelectedSubFolders_.end();
173  it++) {
174  triggerFolderEventFlag_.push_back(new GenericTriggerEventFlag(*it, consumesCollector(), *this));
175  triggerFolderExpr_.push_back(it->getParameter<std::vector<std::string> >("hltPaths"));
176  triggerFolderLabels_.push_back(it->getParameter<std::string>("label"));
177  }
178 
179  cleaningParameters_ = parameters.getParameter<ParameterSet>("CleaningParameters");
180 
181  verbose_ = parameters.getParameter<int>("verbose");
182 
183  FolderName_ = parameters.getUntrackedParameter<std::string>("FolderName");
184 
185  l1gtTrigMenuToken_ = esConsumes<edm::Transition::BeginRun>();
186 }
187 
188 // ***********************************************************
190  for (std::vector<GenericTriggerEventFlag*>::const_iterator it = triggerFolderEventFlag_.begin();
191  it != triggerFolderEventFlag_.end();
192  it++) {
193  delete *it;
194  }
195  delete DCSFilter_;
196 }
197 
199  std::string DirName = FolderName_ + metCollectionLabel_.label();
200  ibooker.setCurrentFolder(DirName);
201  // since this module does things in dqmEndRun, we need to make sure to have
202  // per-run histograms.
203  ibooker.setScope(MonitorElementData::Scope::RUN);
204 
205  if (!folderNames_.empty()) {
206  folderNames_.clear();
207  }
208  if (runcosmics_) {
209  folderNames_.push_back("Uncleaned");
210  } else {
211  if (!onlyCleaned_) {
212  folderNames_.push_back("Uncleaned");
213  }
214  folderNames_.push_back("Cleaned");
215  folderNames_.push_back("DiJet");
216  if (!isMiniAODMet_) {
217  folderNames_.push_back("ZJets");
218  }
219  }
220  for (std::vector<std::string>::const_iterator ic = folderNames_.begin(); ic != folderNames_.end(); ic++) {
221  bookMESet(DirName + "/" + *ic, ibooker, map_dijet_MEs);
222  }
223 }
224 
225 // ***********************************************************
227  DQMStore::IBooker& ibooker,
228  std::map<std::string, MonitorElement*>& map_of_MEs) {
229  bool bLumiSecPlot = fill_met_high_level_histo;
230  //bool inTriggerPathPlots=false;
231  bool fillPFCandidatePlots = false;
232  bool fillZPlots = false;
233 
234  if (DirName.find("Cleaned") != std::string::npos) {
235  fillPFCandidatePlots = true;
236  bookMonitorElement(DirName, ibooker, map_of_MEs, bLumiSecPlot, fillPFCandidatePlots, fillZPlots);
237  //for (unsigned int i = 0; i<triggerFolderEventFlag_.size(); i++) {
238  //fillPFCandidatePlots=false;
239  //if (triggerFolderEventFlag_[i]->on()) {
240  //bookMonitorElement(DirName+"/"+triggerFolderLabels_[i],ibooker,map_of_MEs,bLumiSecPlot,fillPFCandidatePlots,fillZPlots);
241  //}
242  //}
243  } else if (DirName.find("ZJets") != std::string::npos) {
244  fillPFCandidatePlots = false;
245  fillZPlots = true;
246  bookMonitorElement(DirName, ibooker, map_of_MEs, bLumiSecPlot, fillPFCandidatePlots, fillZPlots);
247  } else {
248  bookMonitorElement(DirName, ibooker, map_of_MEs, bLumiSecPlot, fillPFCandidatePlots, fillZPlots);
249  }
250 }
251 
252 // ***********************************************************
254  DQMStore::IBooker& ibooker,
255  std::map<std::string, MonitorElement*>& map_of_MEs,
256  bool bLumiSecPlot = false,
257  bool fillPFCandPlots = false,
258  bool fillZPlots = false) {
259  if (verbose_)
260  std::cout << "bookMonitorElement " << DirName << std::endl;
261 
262  ibooker.setCurrentFolder(DirName);
263  if (fillZPlots) {
264  if (isCaloMet_) {
265  meZJets_u_par = ibooker.book1D("u_parallel_Z_inc", "u_parallel_Z_inc", 50, -1000., 75);
266  } else {
267  meZJets_u_par = ibooker.book1D("u_parallel_Z_inc", "u_parallel_Z_inc", 50, -800., 75);
268  }
269  meZJets_u_par_ZPt_0_15 = ibooker.book1D("u_parallel_ZPt_0_15", "u_parallel_ZPt_0_15", 50, -100, 75);
270  meZJets_u_par_ZPt_15_30 = ibooker.book1D("u_parallel_ZPt_15_30", "u_parallel_ZPt_15_30", 50, -100, 50);
271  meZJets_u_par_ZPt_30_55 = ibooker.book1D("u_parallel_ZPt_30_55", "u_parallel_ZPt_30_55", 50, -175, 50);
272  meZJets_u_par_ZPt_55_75 = ibooker.book1D("u_parallel_ZPt_55_75", "u_parallel_ZPt_55_75", 50, -175, 0);
273  meZJets_u_par_ZPt_75_150 = ibooker.book1D("u_parallel_ZPt_75_150", "u_parallel_ZPt_75_150", 50, -300, 0);
274  if (isCaloMet_) {
275  meZJets_u_par_ZPt_150_290 = ibooker.book1D("u_parallel_ZPt_150_290", "u_parallel_ZPt_150_290", 50, -750, -100);
276  } else {
277  meZJets_u_par_ZPt_150_290 = ibooker.book1D("u_parallel_ZPt_150_290", "u_parallel_ZPt_150_290", 50, -450, -50);
278  }
279  if (isCaloMet_) {
280  meZJets_u_par_ZPt_290 = ibooker.book1D("u_parallel_ZPt_290", "u_parallel_ZPt_290", 50, -1000., -350.);
281  } else {
282  meZJets_u_par_ZPt_290 = ibooker.book1D("u_parallel_ZPt_290", "u_parallel_ZPt_290", 50, -750., -150.);
283  }
284  meZJets_u_perp = ibooker.book1D("u_perp_Z_inc", "u_perp_Z_inc", 50, -85., 85.);
285  meZJets_u_perp_ZPt_0_15 = ibooker.book1D("u_perp_ZPt_0_15", "u_perp_ZPt_0_15", 50, -85., 85.);
286  meZJets_u_perp_ZPt_15_30 = ibooker.book1D("u_perp_ZPt_15_30", "u_perp_ZPt_15_30", 50, -85., 85.);
287  meZJets_u_perp_ZPt_30_55 = ibooker.book1D("u_perp_ZPt_30_55", "u_perp_ZPt_30_55", 50, -85., 85.);
288  meZJets_u_perp_ZPt_55_75 = ibooker.book1D("u_perp_ZPt_55_75", "u_perp_ZPt_55_75", 50, -85., 85.);
289  meZJets_u_perp_ZPt_75_150 = ibooker.book1D("u_perp_ZPt_75_150", "u_perp_ZPt_75_150", 50, -85., 85.);
290  meZJets_u_perp_ZPt_150_290 = ibooker.book1D("u_perp_ZPt_150_290", "u_perp_ZPt_150_290", 50, -85., 85.);
291  meZJets_u_perp_ZPt_290 = ibooker.book1D("u_perp_ZPt_290", "u_perp_ZPt_290", 50, -85., 85.);
292 
293  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_Z_inc", meZJets_u_par));
294  map_of_MEs.insert(
295  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_0_15", meZJets_u_par_ZPt_0_15));
296  map_of_MEs.insert(
297  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_15_30", meZJets_u_par_ZPt_15_30));
298  map_of_MEs.insert(
299  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_30_55", meZJets_u_par_ZPt_30_55));
300  map_of_MEs.insert(
301  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_55_75", meZJets_u_par_ZPt_55_75));
302  map_of_MEs.insert(
303  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_75_150", meZJets_u_par_ZPt_75_150));
304  map_of_MEs.insert(
305  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_150_290", meZJets_u_par_ZPt_150_290));
306  map_of_MEs.insert(
307  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_290", meZJets_u_par_ZPt_290));
308 
309  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_Z_inc", meZJets_u_perp));
310  map_of_MEs.insert(
311  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_0_15", meZJets_u_perp_ZPt_0_15));
312  map_of_MEs.insert(
313  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_15_30", meZJets_u_perp_ZPt_15_30));
314  map_of_MEs.insert(
315  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_30_55", meZJets_u_perp_ZPt_30_55));
316  map_of_MEs.insert(
317  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_55_75", meZJets_u_perp_ZPt_55_75));
318  map_of_MEs.insert(
319  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_75_150", meZJets_u_perp_ZPt_75_150));
320  map_of_MEs.insert(
321  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_150_290", meZJets_u_perp_ZPt_150_290));
322  map_of_MEs.insert(
323  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_290", meZJets_u_perp_ZPt_290));
324  }
325 
326  if (!fillZPlots) {
327  hTrigger = ibooker.book1D("triggerResults", "triggerResults", 500, 0, 500);
328  for (unsigned int i = 0; i < allTriggerNames_.size(); i++) {
329  if (i < (unsigned int)hTrigger->getNbinsX()) {
330  if (!hTriggerLabelsIsSet_) {
331  hTrigger->setBinLabel(i + 1, allTriggerNames_[i]);
332  }
333  }
334  }
335  hTriggerLabelsIsSet_ = true;
336 
337  hMEx = ibooker.book1D("MEx", "MEx", 200, -500, 500);
338  hMEy = ibooker.book1D("MEy", "MEy", 200, -500, 500);
339  hMET = ibooker.book1D("MET", "MET", 200, 0, 1000);
340 
341  {
342  auto scope = DQMStore::IBooker::UseLumiScope(ibooker);
343  hMET_2 = ibooker.book1D("MET_2", "MET Range 2", 200, 0, 2000);
344  hSumET = ibooker.book1D("SumET", "SumET", 400, 0, 4000);
345  hMETSig = ibooker.book1D("METSig", "METSig", 51, 0, 51);
346  hMETPhi = ibooker.book1D("METPhi", "METPhi", 60, -M_PI, M_PI);
347  }
348 
349  hMET_logx = ibooker.book1D("MET_logx", "MET_logx", 40, -1, 9);
350  hSumET_logx = ibooker.book1D("SumET_logx", "SumET_logx", 40, -1, 9);
351 
352  hMEx->setAxisTitle("MEx [GeV]", 1);
353  hMEy->setAxisTitle("MEy [GeV]", 1);
354  hMET->setAxisTitle("MET [GeV]", 1);
355  hMET_2->setAxisTitle("MET [GeV]", 1);
356  hSumET->setAxisTitle("SumET [GeV]", 1);
357  hMETSig->setAxisTitle("METSig", 1);
358  hMETPhi->setAxisTitle("METPhi [rad]", 1);
359  hMET_logx->setAxisTitle("log(MET) [GeV]", 1);
360  hSumET_logx->setAxisTitle("log(SumET) [GeV]", 1);
361 
362  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "triggerResults", hTrigger));
363  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MEx", hMEx));
364  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MEy", hMEy));
365  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET", hMET));
366  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_2", hMET_2));
367  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET", hSumET));
368  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METSig", hMETSig));
369  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhi", hMETPhi));
370  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_logx", hMET_logx));
371  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET_logx", hSumET_logx));
372 
373  hMET_HBHENoiseFilter = ibooker.book1D("MET_HBHENoiseFilter", "MET_HBHENoiseFiltered", 200, 0, 1000);
374  hMET_CSCTightHaloFilter = ibooker.book1D("MET_CSCTightHaloFilter", "MET_CSCTightHaloFiltered", 200, 0, 1000);
375  hMET_eeBadScFilter = ibooker.book1D("MET_eeBadScFilter", "MET_eeBadScFiltered", 200, 0, 1000);
376  hMET_HBHEIsoNoiseFilter = ibooker.book1D("MET_HBHEIsoNoiseFilter", "MET_HBHEIsoNoiseFiltered", 200, 0, 1000);
377  hMET_CSCTightHalo2015Filter =
378  ibooker.book1D("MET_CSCTightHalo2015Filter", "MET_CSCTightHalo2015Filtered", 200, 0, 1000);
379  hMET_EcalDeadCellTriggerFilter =
380  ibooker.book1D("MET_EcalDeadCellTriggerFilter", "MET_EcalDeadCellTriggerFiltered", 200, 0, 1000);
381  hMET_EcalDeadCellBoundaryFilter =
382  ibooker.book1D("MET_EcalDeadCellBoundaryFilter", "MET_EcalDeadCellBoundaryFiltered", 200, 0, 1000);
383  hMET_HcalStripHaloFilter = ibooker.book1D("MET_HcalStripHaloFilter", "MET_HcalStripHaloFiltered", 200, 0, 1000);
384 
385  map_of_MEs.insert(
386  std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_HBHENoiseFilter", hMET_HBHENoiseFilter));
387  map_of_MEs.insert(
388  std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_CSCTightHaloFilter", hMET_CSCTightHaloFilter));
389  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_eeBadScFilter", hMET_eeBadScFilter));
390  map_of_MEs.insert(
391  std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_HBHEIsoNoiseFilter", hMET_HBHEIsoNoiseFilter));
392  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_CSCTightHalo2015Filter",
393  hMET_CSCTightHalo2015Filter));
394  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_EcalDeadCellTriggerFilter",
395  hMET_EcalDeadCellTriggerFilter));
396  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_EcalDeadCellBoundaryFilter",
397  hMET_EcalDeadCellBoundaryFilter));
398  map_of_MEs.insert(
399  std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_HcalStripHaloFilter", hMET_HcalStripHaloFilter));
400 
401  // Book NPV profiles --> would some of these profiles be interesting for other MET types too
402  //----------------------------------------------------------------------------
403  meMEx_profile = ibooker.bookProfile("MEx_profile", "met.px()", nbinsPV_, nPVMin_, nPVMax_, 200, -500, 500);
404  meMEy_profile = ibooker.bookProfile("MEy_profile", "met.py()", nbinsPV_, nPVMin_, nPVMax_, 200, -500, 500);
405  meMET_profile = ibooker.bookProfile("MET_profile", "met.pt()", nbinsPV_, nPVMin_, nPVMax_, 200, 0, 1000);
406  meSumET_profile = ibooker.bookProfile("SumET_profile", "met.sumEt()", nbinsPV_, nPVMin_, nPVMax_, 400, 0, 4000);
407  // Set NPV profiles x-axis title
408  //----------------------------------------------------------------------------
409  meMEx_profile->setAxisTitle("nvtx", 1);
410  meMEy_profile->setAxisTitle("nvtx", 1);
411  meMET_profile->setAxisTitle("nvtx", 1);
412  meSumET_profile->setAxisTitle("nvtx", 1);
413 
414  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MEx_profile", meMEx_profile));
415  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MEy_profile", meMEy_profile));
416  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_profile", meMET_profile));
417  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET_profile", meSumET_profile));
418 
419  if (isCaloMet_) {
420  hCaloHadEtInHB = ibooker.book1D("CaloHadEtInHB", "CaloHadEtInHB", 50, 0, 2000);
421  hCaloHadEtInHB->setAxisTitle("Had Et [GeV]", 1);
422  hCaloHadEtInHO = ibooker.book1D("CaloHadEtInHO", "CaloHadEtInHO", 25, 0, 500);
423  hCaloHadEtInHO->setAxisTitle("Had Et [GeV]", 1);
424  hCaloHadEtInHE = ibooker.book1D("CaloHadEtInHE", "CaloHadEtInHE", 50, 0, 2000);
425  hCaloHadEtInHE->setAxisTitle("Had Et [GeV]", 1);
426  hCaloHadEtInHF = ibooker.book1D("CaloHadEtInHF", "CaloHadEtInHF", 50, 0, 1000);
427  hCaloHadEtInHF->setAxisTitle("Had Et [GeV]", 1);
428  hCaloEmEtInHF = ibooker.book1D("CaloEmEtInHF", "CaloEmEtInHF", 25, 0, 500);
429  hCaloEmEtInHF->setAxisTitle("EM Et [GeV]", 1);
430  hCaloEmEtInEE = ibooker.book1D("CaloEmEtInEE", "CaloEmEtInEE", 50, 0, 1000);
431  hCaloEmEtInEE->setAxisTitle("EM Et [GeV]", 1);
432  hCaloEmEtInEB = ibooker.book1D("CaloEmEtInEB", "CaloEmEtInEB", 50, 0, 2000);
433  hCaloEmEtInEB->setAxisTitle("EM Et [GeV]", 1);
434 
435  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloHadEtInHO", hCaloHadEtInHO));
436  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloHadEtInHF", hCaloHadEtInHF));
437  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloHadEtInHE", hCaloHadEtInHE));
438  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloHadEtInHB", hCaloHadEtInHB));
439  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtInHF", hCaloEmEtInHF));
440  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtInEE", hCaloEmEtInEE));
441  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtInEB", hCaloEmEtInEB));
442 
443  hCaloMETPhi020 = ibooker.book1D("CaloMETPhi020", "CaloMETPhi020", 60, -M_PI, M_PI);
444  hCaloMETPhi020->setAxisTitle("METPhi [rad] (MET>20 GeV)", 1);
445 
446  hCaloEtFractionHadronic = ibooker.book1D("CaloEtFractionHadronic", "CaloEtFractionHadronic", 50, 0, 1);
447  hCaloEtFractionHadronic->setAxisTitle("Hadronic Et Fraction", 1);
448  hCaloEmEtFraction = ibooker.book1D("CaloEmEtFraction", "CaloEmEtFraction", 50, 0, 1);
449  hCaloEmEtFraction->setAxisTitle("EM Et Fraction", 1);
450 
451  hCaloEmEtFraction020 = ibooker.book1D("CaloEmEtFraction020", "CaloEmEtFraction020", 50, 0, 1);
452  hCaloEmEtFraction020->setAxisTitle("EM Et Fraction (MET>20 GeV)", 1);
453 
454  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloMETPhi020", hCaloMETPhi020));
455  map_of_MEs.insert(
456  std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEtFractionHadronic", hCaloEtFractionHadronic));
457  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtFraction", hCaloEmEtFraction));
458  map_of_MEs.insert(
459  std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtFraction020", hCaloEmEtFraction020));
460  }
461 
462  if (isPFMet_) {
463  if (fillPFCandPlots &&
464  fillCandidateMap_histos) { //first bool internal checks for subdirectory filling, second bool given in cfg file, checks that we fill maps only in one module in total
465 
466  meCHF_Barrel = ibooker.book1D("PfChargedHadronEtFractionBarrel", "chargedHadronEtFractionBarrel", 50, 0, 1);
467  meCHF_EndcapPlus =
468  ibooker.book1D("PfChargedHadronEtFractionEndcapPlus", "chargedHadronEtFractionEndcapPlus", 50, 0, 1);
469  meCHF_EndcapMinus =
470  ibooker.book1D("PfChargedHadronEtFractionEndcapMinus", "chargedHadronEtFractionEndcapMinus", 50, 0, 1);
471  meCHF_Barrel_BXm1Empty = ibooker.book1D(
472  "PfChargedHadronEtFractionBarrel_BXm1Empty", "chargedHadronEtFractionBarrel prev empty bunch", 50, 0, 1);
473  meCHF_EndcapPlus_BXm1Empty = ibooker.book1D("PfChargedHadronEtFractionEndcapPlus_BXm1Empty",
474  "chargedHadronEtFractionEndcapPlus prev empty bunch",
475  50,
476  0,
477  1);
478  meCHF_EndcapMinus_BXm1Empty = ibooker.book1D("PfChargedHadronEtFractionEndcapMinus_BXm1Empty",
479  "chargedHadronEtFractionEndcapMinus prev empty bunch",
480  50,
481  0,
482  1);
483  meCHF_Barrel_BXm1Filled = ibooker.book1D("PfChargedHadronEtFractionBarrel_BXm1Filled",
484  "chargedHadronEtFractionBarrel prev filled 2 bunches",
485  50,
486  0,
487  1);
488  meCHF_EndcapPlus_BXm1Filled = ibooker.book1D("PfChargedHadronEtFractionEndcapPlus_BXm1Filled",
489  "chargedHadronEtFractionEndcapPlus prev filled bunch",
490  50,
491  0,
492  1);
493  meCHF_EndcapMinus_BXm1Filled = ibooker.book1D("PfChargedHadronEtFractionEndcapMinus_BXm1Filled",
494  "chargedHadronEtFractionEndcapMinus prev filled bunch",
495  50,
496  0,
497  1);
498 
499  map_of_MEs.insert(
500  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEtFractionBarrel", meCHF_Barrel));
501  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEtFractionEndcapPlus",
502  meCHF_EndcapPlus));
503  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
504  DirName + "/" + "PfChargedHadronEtFractionEndcapMinus", meCHF_EndcapMinus));
505  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
506  DirName + "/" + "PfChargedHadronEtFractionBarrel_BXm1Empty", meCHF_Barrel_BXm1Empty));
507  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
508  DirName + "/" + "PfChargedHadronEtFractionEndcapPlus_BXm1Empty", meCHF_EndcapPlus_BXm1Empty));
509  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
510  DirName + "/" + "PfChargedHadronEtFractionEndcapMinus_BXm1Empty", meCHF_EndcapMinus_BXm1Empty));
511  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfChargedHadronEtFractionBarrel_BXm2BXm1Empty", meCHF_Barrel_BXm2BXm1Empty));
512  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfChargedHadronEtFractionEndcapPlus_BXm2BXm1Empty", meCHF_EndcapPlus_BXm2BXm1Empty));
513  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfChargedHadronEtFractionEndcapMinus_BXm2BXm1Empty", meCHF_EndcapMinus_BXm2BXm1Empty));
514  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
515  DirName + "/" + "PfChargedHadronEtFractionBarrel_BXm1Filled", meCHF_Barrel_BXm1Filled));
516  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
517  DirName + "/" + "PfChargedHadronEtFractionEndcapPlus_BXm1Filled", meCHF_EndcapPlus_BXm1Filled));
518  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
519  DirName + "/" + "PfChargedHadronEtFractionEndcapMinus_BXm1Filled", meCHF_EndcapMinus_BXm1Filled));
520  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfChargedHadronEtFractionBarrel_BXm2BXm1Filled", meCHF_Barrel_BXm2BXm1Filled));
521  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfChargedHadronEtFractionEndcapPlus_BXm2BXm1Filled", meCHF_EndcapPlus_BXm2BXm1Filled));
522  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfChargedHadronEtFractionEndcapMinus_BXm2BXm1Filled", meCHF_EndcapMinus_BXm2BXm1Filled));
523 
524  meNHF_Barrel = ibooker.book1D("PfNeutralHadronEtFractionBarrel", "neutralHadronEtFractionBarrel", 50, 0, 1);
525  meNHF_EndcapPlus =
526  ibooker.book1D("PfNeutralHadronEtFractionEndcapPlus", "neutralHadronEtFractionEndcapPlus", 50, 0, 1);
527  meNHF_EndcapMinus =
528  ibooker.book1D("PfNeutralHadronEtFractionEndcapMinus", "neutralHadronEtFractionEndcapMinus", 50, 0, 1);
529  meNHF_Barrel_BXm1Empty = ibooker.book1D(
530  "PfNeutralHadronEtFractionBarrel_BXm1Empty", "neutralHadronEtFractionBarrel prev empty bunch", 50, 0, 1);
531  meNHF_EndcapPlus_BXm1Empty = ibooker.book1D("PfNeutralHadronEtFractionEndcapPlus_BXm1Empty",
532  "neutralHadronEtFractionEndcapPlus prev empty bunch",
533  50,
534  0,
535  1);
536  meNHF_EndcapMinus_BXm1Empty = ibooker.book1D("PfNeutralHadronEtFractionEndcapMinus_BXm1Empty",
537  "neutralHadronEtFractionEndcapMinus prev empty bunch",
538  50,
539  0,
540  1);
541  //meNHF_Barrel_BXm2BXm1Empty = ibooker.book1D("PfNeutralHadronEtFractionBarrel_BXm2BXm1Empty", "neutralHadronEtFractionBarrel prev empty 2 bunches", 50, 0, 1);
542  //meNHF_EndcapPlus_BXm2BXm1Empty = ibooker.book1D("PfNeutralHadronEtFractionEndcapPlus_BXm2BXm1Empty", "neutralHadronEtFractionEndcapPlus prev empty 2 bunches", 50, 0, 1);
543  //meNHF_EndcapMinus_BXm2BXm1Empty = ibooker.book1D("PfNeutralHadronEtFractionEndcapMinus_BXm2BXm1Empty", "neutralHadronEtFractionEndcapMinus prev empty 2 bunches", 50, 0, 1);
544  meNHF_Barrel_BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionBarrel_BXm1Filled",
545  "neutralHadronEtFractionBarrel prev filled 2 bunches",
546  50,
547  0,
548  1);
549  meNHF_EndcapPlus_BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionEndcapPlus_BXm1Filled",
550  "neutralHadronEtFractionEndcapPlus prev filled bunch",
551  50,
552  0,
553  1);
554  meNHF_EndcapMinus_BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionEndcapMinus_BXm1Filled",
555  "neutralHadronEtFractionEndcapMinus prev filled bunch",
556  50,
557  0,
558  1);
559  //meNHF_Barrel_BXm2BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionBarrel_BXm2BXm1Filled", "neutralHadronEtFractionBarrel prev filled 2 bunches", 50, 0, 1);
560  //meNHF_EndcapPlus_BXm2BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionEndcapPlus_BXm2BXm1Filled", "neutralHadronEtFractionEndcapPlus prev filled 2 bunches", 50, 0, 1);
561  //meNHF_EndcapMinus_BXm2BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionEndcapMinus_BXm2BXm1Filled", "neutralHadronEtFractionEndcapMinus prev filled 2 bunches", 50, 0, 1);
562 
563  map_of_MEs.insert(
564  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEtFractionBarrel", meNHF_Barrel));
565  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus",
566  meNHF_EndcapPlus));
567  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
568  DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus", meNHF_EndcapMinus));
569  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
570  DirName + "/" + "PfNeutralHadronEtFractionBarrel_BXm1Empty", meNHF_Barrel_BXm1Empty));
571  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
572  DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus_BXm1Empty", meNHF_EndcapPlus_BXm1Empty));
573  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
574  DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus_BXm1Empty", meNHF_EndcapMinus_BXm1Empty));
575  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfNeutralHadronEtFractionBarrel_BXm2BXm1Empty", meNHF_Barrel_BXm2BXm1Empty));
576  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfNeutralHadronEtFractionEndcapPlus_BXm2BXm1Empty", meNHF_EndcapPlus_BXm2BXm1Empty));
577  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfNeutralHadronEtFractionEndcapMinus_BXm2BXm1Empty", meNHF_EndcapMinus_BXm2BXm1Empty));
578  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
579  DirName + "/" + "PfNeutralHadronEtFractionBarrel_BXm1Filled", meNHF_Barrel_BXm1Filled));
580  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
581  DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus_BXm1Filled", meNHF_EndcapPlus_BXm1Filled));
582  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
583  DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus_BXm1Filled", meNHF_EndcapMinus_BXm1Filled));
584  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfNeutralHadronEtFractionBarrel_BXm2BXm1Filled", meNHF_Barrel_BXm2BXm1Filled));
585  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfNeutralHadronEtFractionEndcapPlus_BXm2BXm1Filled", meNHF_EndcapPlus_BXm2BXm1Filled));
586  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfNeutralHadronEtFractionEndcapMinus_BXm2BXm1Filled", meNHF_EndcapMinus_BXm2BXm1Filled));
587 
588  mePhF_Barrel = ibooker.book1D("PfPhotonEtFractionBarrel", "photonEtFractionBarrel", 50, 0, 1);
589  mePhF_EndcapPlus = ibooker.book1D("PfPhotonEtFractionEndcapPlus", "photonEtFractionEndcapPlus", 50, 0, 1);
590  mePhF_EndcapMinus = ibooker.book1D("PfPhotonEtFractionEndcapMinus", "photonEtFractionEndcapMinus", 50, 0, 1);
591  mePhF_Barrel_BXm1Empty =
592  ibooker.book1D("PfPhotonEtFractionBarrel_BXm1Empty", "photonEtFractionBarrel prev empty bunch", 50, 0, 1);
593  mePhF_EndcapPlus_BXm1Empty = ibooker.book1D(
594  "PfPhotonEtFractionEndcapPlus_BXm1Empty", "photonEtFractionEndcapPlus prev empty bunch", 50, 0, 1);
595  mePhF_EndcapMinus_BXm1Empty = ibooker.book1D(
596  "PfPhotonEtFractionEndcapMinus_BXm1Empty", "photonEtFractionEndcapMinus prev empty bunch", 50, 0, 1);
597  //mePhF_Barrel_BXm2BXm1Empty = ibooker.book1D("PfPhotonEtFractionBarrel_BXm2BXm1Empty", "photonEtFractionBarrel prev empty 2 bunches", 50, 0, 1);
598  //mePhF_EndcapPlus_BXm2BXm1Empty = ibooker.book1D("PfPhotonEtFractionEndcapPlus_BXm2BXm1Empty", "photonEtFractionEndcapPlus prev empty 2 bunches", 50, 0, 1);
599  //mePhF_EndcapMinus_BXm2BXm1Empty = ibooker.book1D("PfPhotonEtFractionEndcapMinus_BXm2BXm1Empty", "photonEtFractionEndcapMinus prev empty 2 bunches", 50, 0, 1);
600  mePhF_Barrel_BXm1Filled = ibooker.book1D(
601  "PfPhotonEtFractionBarrel_BXm1Filled", "photonEtFractionBarrel prev filled 2 bunches", 50, 0, 1);
602  mePhF_EndcapPlus_BXm1Filled = ibooker.book1D(
603  "PfPhotonEtFractionEndcapPlus_BXm1Filled", "photonEtFractionEndcapPlus prev filled bunch", 50, 0, 1);
604  mePhF_EndcapMinus_BXm1Filled = ibooker.book1D(
605  "PfPhotonEtFractionEndcapMinus_BXm1Filled", "photonEtFractionEndcapMinus prev filled bunch", 50, 0, 1);
606  //mePhF_Barrel_BXm2BXm1Filled = ibooker.book1D("PfPhotonEtFractionBarrel_BXm2BXm1Filled", "photonEtFractionBarrel prev filled 2 bunches", 50, 0, 1);
607  //mePhF_EndcapPlus_BXm2BXm1Filled = ibooker.book1D("PfPhotonEtFractionEndcapPlus_BXm2BXm1Filled", "photonEtFractionEndcapPlus prev filled 2 bunches", 50, 0, 1);
608  //mePhF_EndcapMinus_BXm2BXm1Filled = ibooker.book1D("PfPhotonEtFractionEndcapMinus_BXm2BXm1Filled", "photonEtFractionEndcapMinus prev filled 2 bunches", 50, 0, 1);
609 
610  map_of_MEs.insert(
611  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionBarrel", mePhF_Barrel));
612  map_of_MEs.insert(
613  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionEndcapPlus", mePhF_EndcapPlus));
614  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionEndcapMinus",
615  mePhF_EndcapMinus));
616  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionBarrel_BXm1Empty",
617  mePhF_Barrel_BXm1Empty));
618  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
619  DirName + "/" + "PfPhotonEtFractionEndcapPlus_BXm1Empty", mePhF_EndcapPlus_BXm1Empty));
620  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
621  DirName + "/" + "PfPhotonEtFractionEndcapMinus_BXm1Empty", mePhF_EndcapMinus_BXm1Empty));
622  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfPhotonEtFractionBarrel_BXm2BXm1Empty", mePhF_Barrel_BXm2BXm1Empty));
623  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfPhotonEtFractionEndcapPlus_BXm2BXm1Empty", mePhF_EndcapPlus_BXm2BXm1Empty));
624  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfPhotonEtFractionEndcapMinus_BXm2BXm1Empty", mePhF_EndcapMinus_BXm2BXm1Empty));
625  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionBarrel_BXm1Filled",
626  mePhF_Barrel_BXm1Filled));
627  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
628  DirName + "/" + "PfPhotonEtFractionEndcapPlus_BXm1Filled", mePhF_EndcapPlus_BXm1Filled));
629  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
630  DirName + "/" + "PfPhotonEtFractionEndcapMinus_BXm1Filled", mePhF_EndcapMinus_BXm1Filled));
631  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfPhotonEtFractionBarrel_BXm2BXm1Filled", mePhF_Barrel_BXm2BXm1Filled));
632  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfPhotonEtFractionEndcapPlus_BXm2BXm1Filled", mePhF_EndcapPlus_BXm2BXm1Filled));
633  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfPhotonEtFractionEndcapMinus_BXm2BXm1Filled", mePhF_EndcapMinus_BXm2BXm1Filled));
634 
635  meHFHadF_Plus = ibooker.book1D("PfHFHadronEtFractionPlus", "HFHadronEtFractionPlus", 50, 0, 1);
636  meHFHadF_Minus = ibooker.book1D("PfHFHadronEtFractionMinus", "HFHadronEtFractionMinus", 50, 0, 1);
637  meHFHadF_Plus_BXm1Empty =
638  ibooker.book1D("PfHFHadronEtFractionPlus_BXm1Empty", "HFHadronEtFractionPlus prev empty bunch", 50, 0, 1);
639  meHFHadF_Minus_BXm1Empty =
640  ibooker.book1D("PfHFHadronEtFractionMinus_BXm1Empty", "HFHadronEtFractionMinus prev empty bunch", 50, 0, 1);
641  //meHFHadF_Plus_BXm2BXm1Empty = ibooker.book1D("PfHFHadronEtFractionPlus_BXm2BXm1Empty", "HFHadronEtFractionPlus prev empty 2 bunches", 50, 0, 1);
642  //meHFHadF_Minus_BXm2BXm1Empty = ibooker.book1D("PfHFHadronEtFractionMinus_BXm2BXm1Empty", "HFHadronEtFractionMinus prev empty 2 bunches", 50, 0, 1);
643  meHFHadF_Plus_BXm1Filled =
644  ibooker.book1D("PfHFHadronEtFractionPlus_BXm1Filled", "HFHadronEtFractionPlus prev filled bunch", 50, 0, 1);
645  meHFHadF_Minus_BXm1Filled = ibooker.book1D(
646  "PfHFHadronEtFractionMinus_BXm1Filled", "HFHadronEtFractionMinus prev filled bunch", 50, 0, 1);
647  //meHFHadF_Plus_BXm2BXm1Filled = ibooker.book1D("PfHFHadronEtFractionPlus_BXm2BXm1Filled", "HFHadronEtFractionPlus prev filled 2 bunches", 50, 0, 1);
648  //meHFHadF_Minus_BXm2BXm1Filled = ibooker.book1D("PfHFHadronEtFractionMinus_BXm2BXm1Filled", "HFHadronEtFractionMinus prev filled 2 bunches", 50, 0, 1);
649 
650  map_of_MEs.insert(
651  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionPlus", meHFHadF_Plus));
652  map_of_MEs.insert(
653  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionMinus", meHFHadF_Minus));
654  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionPlus_BXm1Empty",
655  meHFHadF_Plus_BXm1Empty));
656  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionMinus_BXm1Empty",
657  meHFHadF_Minus_BXm1Empty));
658  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFHadronEtFractionPlus_BXm2BXm1Empty", meHFHadF_Plus_BXm2BXm1Empty));
659  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFHadronEtFractionMinus_BXm2BXm1Empty", meHFHadF_Minus_BXm2BXm1Empty));
660  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionPlus_BXm1Filled",
661  meHFHadF_Plus_BXm1Filled));
662  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
663  DirName + "/" + "PfHFHadronEtFractionMinus_BXm1Filled", meHFHadF_Minus_BXm1Filled));
664  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFHadronEtFractionPlus_BXm2BXm1Filled", meHFHadF_Plus_BXm2BXm1Filled));
665  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFHadronEtFractionMinus_BXm2BXm1Filled", meHFHadF_Minus_BXm2BXm1Filled));
666 
667  meHFEMF_Plus = ibooker.book1D("PfHFEMEtFractionPlus", "HFEMEtFractionPlus", 50, 0, 1);
668  meHFEMF_Minus = ibooker.book1D("PfHFEMEtFractionMinus", "HFEMEtFractionMinus", 50, 0, 1);
669  meHFEMF_Plus_BXm1Empty =
670  ibooker.book1D("PfHFEMEtFractionPlus_BXm1Empty", "HFEMEtFractionPlus prev empty bunch", 50, 0, 1);
671  meHFEMF_Minus_BXm1Empty =
672  ibooker.book1D("PfHFEMEtFractionMinus_BXm1Empty", "HFEMEtFractionMinus prev empty bunch", 50, 0, 1);
673  //meHFEMF_Plus_BXm2BXm1Empty = ibooker.book1D("PfHFEMEtFractionPlus_BXm2BXm1Empty", "HFEMEtFractionPlus prev empty 2 bunches", 50, 0, 1);
674  //meHFEMF_Minus_BXm2BXm1Empty = ibooker.book1D("PfHFEMEtFractionMinus_BXm2BXm1Empty", "HFEMEtFractionMinus prev empty 2 bunches", 50, 0, 1);
675  meHFEMF_Plus_BXm1Filled =
676  ibooker.book1D("PfHFEMEtFractionPlus_BXm1Filled", "HFEMEtFractionPlus prev filled bunch", 50, 0, 1);
677  meHFEMF_Minus_BXm1Filled =
678  ibooker.book1D("PfHFEMEtFractionMinus_BXm1Filled", "HFEMEtFractionMinus prev filled bunch", 50, 0, 1);
679  //meHFEMF_Plus_BXm2BXm1Filled = ibooker.book1D("PfHFEMEtFractionPlus_BXm2BXm1Filled", "HFEMEtFractionPlus prev filled 2 bunches", 50, 0, 1);
680  //meHFEMF_Minus_BXm2BXm1Filled = ibooker.book1D("PfHFEMEtFractionMinus_BXm2BXm1Filled", "HFEMEtFractionMinus prev filled 2 bunches", 50, 0, 1);
681 
682  map_of_MEs.insert(
683  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionPlus", meHFEMF_Plus));
684  map_of_MEs.insert(
685  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionMinus", meHFEMF_Minus));
686  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionPlus_BXm1Empty",
687  meHFEMF_Plus_BXm1Empty));
688  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionMinus_BXm1Empty",
689  meHFEMF_Minus_BXm1Empty));
690  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFEMEtFractionPlus_BXm2BXm1Empty", meHFEMF_Plus_BXm2BXm1Empty));
691  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFEMEtFractionMinus_BXm2BXm1Empty", meHFEMF_Minus_BXm2BXm1Empty));
692  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionPlus_BXm1Filled",
693  meHFEMF_Plus_BXm1Filled));
694  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionMinus_BXm1Filled",
695  meHFEMF_Minus_BXm1Filled));
696  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFEMEtFractionPlus_BXm2BXm1Filled", meHFEMF_Plus_BXm2BXm1Filled));
697  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFEMEtFractionMinus_BXm2BXm1Filled", meHFEMF_Minus_BXm2BXm1Filled));
698  /*
699  meMETPhiChargedHadronsBarrel_BXm2BXm1Filled = ibooker.book1D("METPhiChargedHadronsBarrel_BXm2BXm1Filled", "METPhi_PFChargedHadronsBarrel prev two bunches filled", 50, -M_PI,M_PI);
700  meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Filled = ibooker.book1D("METPhiChargedHadronsEndcapPlus_BXm2BXm1Filled", "METPhi_PFChargedHadronsEndcapPlus prev two bunches filled", 50, -M_PI,M_PI);
701  meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Filled = ibooker.book1D("METPhiChargedHadronsEndcapMinus_BXm2BXm1Filled","METPhi_PFChargedHadronsEndcapMinus prev two bunches filled", 50, -M_PI,M_PI);
702  meMETPhiNeutralHadronsBarrel_BXm2BXm1Filled = ibooker.book1D("METPhiNeutralHadronsBarrel_BXm2BXm1Filled", "METPhi_PFNeutralHadronsBarrel prev two bunches filled", 50, -M_PI,M_PI);
703  meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled = ibooker.book1D("METPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled", "METPhi_PFNeutralHadronsEndcapPlus prev two bunches filled", 50, -M_PI,M_PI);
704  meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled = ibooker.book1D("METPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled","METPhi_PFNeutralHadronsEndcapMinus prev two bunches filled", 50, -M_PI,M_PI);
705  meMETPhiPhotonsBarrel_BXm2BXm1Filled = ibooker.book1D("METPhiPhotonsBarrel_BXm2BXm1Filled", "METPhi_PFPhotonsBarrel prev two bunches filled", 50, -M_PI,M_PI);
706  meMETPhiPhotonsEndcapPlus_BXm2BXm1Filled = ibooker.book1D("METPhiPhotonsEndcapPlus_BXm2BXm1Filled", "METPhi_PFPhotonsEndcapPlus prev two bunches filled", 50, -M_PI,M_PI);
707  meMETPhiPhotonsEndcapMinus_BXm2BXm1Filled = ibooker.book1D("METPhiPhotonsEndcapMinus_BXm2BXm1Filled", "METPhi_PFPhotonsEndcapMinus prev two bunches filled", 50, -M_PI,M_PI);
708  meMETPhiHFHadronsPlus_BXm2BXm1Filled = ibooker.book1D("METPhiHFHadronsPlus_BXm2BXm1Filled", "METPhi_PFHFHadronsPlus prev two bunches filled", 50, -M_PI,M_PI);
709  meMETPhiHFHadronsMinus_BXm2BXm1Filled = ibooker.book1D("METPhiHFHadronsMinus_BXm2BXm1Filled", "METPhi_PFHFHadronsMinus prev two bunches filled", 50, -M_PI,M_PI);
710  meMETPhiHFEGammasPlus_BXm2BXm1Filled = ibooker.book1D("METPhiHFEGammasPlus_BXm2BXm1Filled", "METPhi_PFHFEGammasPlus prev two bunches filled", 50, -M_PI,M_PI);
711  meMETPhiHFEGammasMinus_BXm2BXm1Filled = ibooker.book1D("METPhiHFEGammasMinus_BXm2BXm1Filled", "METPhi_PFHFEGammasMinus prev two bunches filled", 50, -M_PI,M_PI);
712 
713  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiChargedHadronsBarrel_BXm2BXm1Filled" ,meMETPhiChargedHadronsBarrel_BXm2BXm1Filled));
714  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiChargedHadronsEndcapPlus_BXm2BXm1Filled" ,meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Filled));
715  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiChargedHadronsEndcapMinus_BXm2BXm1Filled" ,meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Filled));
716  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiNeutralHadronsBarrel_BXm2BXm1Filled" ,meMETPhiNeutralHadronsBarrel_BXm2BXm1Filled));
717  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled" ,meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled));
718  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled" ,meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled));
719  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiPhotonsBarrel_BXm2BXm1Filled" ,meMETPhiPhotonsBarrel_BXm2BXm1Filled));
720  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiPhotonsEndcapPlus_BXm2BXm1Filled" ,meMETPhiPhotonsEndcapPlus_BXm2BXm1Filled));
721  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiPhotonsEndcapMinus_BXm2BXm1Filled" ,meMETPhiPhotonsEndcapMinus_BXm2BXm1Filled));
722  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFHadronsPlus_BXm2BXm1Filled" ,meMETPhiHFHadronsPlus_BXm2BXm1Filled));
723  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFHadronsMinus_BXm2BXm1Filled" ,meMETPhiHFHadronsMinus_BXm2BXm1Filled));
724  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFEGammasPlus_BXm2BXm1Filled" ,meMETPhiHFEGammasPlus_BXm2BXm1Filled));
725  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFEGammasMinus_BXm2BXm1Filled" ,meMETPhiHFEGammasMinus_BXm2BXm1Filled));
726 
727  meMETPhiChargedHadronsBarrel_BXm2BXm1Empty = ibooker.book1D("METPhiChargedHadronsBarrel_BXm2BXm1Empty", "METPhi_PFChargedHadronsBarrel prev two bunches empty", 50, -M_PI,M_PI);
728  meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Empty = ibooker.book1D("METPhiChargedHadronsEndcapPlus_BXm2BXm1Empty", "METPhi_PFChargedHadronsEndcapPlus prev two bunches empty", 50, -M_PI,M_PI);
729  meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Empty = ibooker.book1D("METPhiChargedHadronsEndcapMinus_BXm2BXm1Empty","METPhi_PFChargedHadronsEndcapMinus prev two bunches empty", 50, -M_PI,M_PI);
730  meMETPhiNeutralHadronsBarrel_BXm2BXm1Empty = ibooker.book1D("METPhiNeutralHadronsBarrel_BXm2BXm1Empty", "METPhi_PFNeutralHadronsBarrel prev two bunches empty", 50, -M_PI,M_PI);
731  meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty = ibooker.book1D("METPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty", "METPhi_PFNeutralHadronsEndcapPlus prev two bunches empty", 50, -M_PI,M_PI);
732  meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty = ibooker.book1D("METPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty","METPhi_PFNeutralHadronsEndcapMinus prev two bunches empty", 50, -M_PI,M_PI);
733  meMETPhiPhotonsBarrel_BXm2BXm1Empty = ibooker.book1D("METPhiPhotonsBarrel_BXm2BXm1Empty", "METPhi_PFPhotonsBarrel prev two bunches empty", 50, -M_PI,M_PI);
734  meMETPhiPhotonsEndcapPlus_BXm2BXm1Empty = ibooker.book1D("METPhiPhotonsEndcapPlus_BXm2BXm1Empty", "METPhi_PFPhotonsEndcapPlus prev two bunches empty", 50, -M_PI,M_PI);
735  meMETPhiPhotonsEndcapMinus_BXm2BXm1Empty = ibooker.book1D("METPhiPhotonsEndcapMinus_BXm2BXm1Empty", "METPhi_PFPhotonsEndcapMinus prev two bunches empty", 50, -M_PI,M_PI);
736  meMETPhiHFHadronsPlus_BXm2BXm1Empty = ibooker.book1D("METPhiHFHadronsPlus_BXm2BXm1Empty", "METPhi_PFHFHadronsPlus prev two bunches empty", 50, -M_PI,M_PI);
737  meMETPhiHFHadronsMinus_BXm2BXm1Empty = ibooker.book1D("METPhiHFHadronsMinus_BXm2BXm1Empty", "METPhi_PFHFHadronsMinus prev two bunches empty", 50, -M_PI,M_PI);
738  meMETPhiHFEGammasPlus_BXm2BXm1Empty = ibooker.book1D("METPhiHFEGammasPlus_BXm2BXm1Empty", "METPhi_PFHFEGammasPlus prev two bunches empty", 50, -M_PI,M_PI);
739  meMETPhiHFEGammasMinus_BXm2BXm1Empty = ibooker.book1D("METPhiHFEGammasMinus_BXm2BXm1Empty", "METPhi_PFHFEGammasMinus prev two bunches empty", 50, -M_PI,M_PI);
740 
741  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiChargedHadronsBarrel_BXm2BXm1Empty" ,meMETPhiChargedHadronsBarrel_BXm2BXm1Empty));
742  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiChargedHadronsEndcapPlus_BXm2BXm1Empty" ,meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Empty));
743  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiChargedHadronsEndcapMinus_BXm2BXm1Empty" ,meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Empty));
744  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiNeutralHadronsBarrel_BXm2BXm1Empty" ,meMETPhiNeutralHadronsBarrel_BXm2BXm1Empty));
745  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty" ,meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty));
746  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty" ,meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty));
747  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiPhotonsBarrel_BXm2BXm1Empty" ,meMETPhiPhotonsBarrel_BXm2BXm1Empty));
748  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiPhotonsEndcapPlus_BXm2BXm1Empty" ,meMETPhiPhotonsEndcapPlus_BXm2BXm1Empty));
749  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiPhotonsEndcapMinus_BXm2BXm1Empty" ,meMETPhiPhotonsEndcapMinus_BXm2BXm1Empty));
750  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFHadronsPlus_BXm2BXm1Empty" ,meMETPhiHFHadronsPlus_BXm2BXm1Empty));
751  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFHadronsMinus_BXm2BXm1Empty" ,meMETPhiHFHadronsMinus_BXm2BXm1Empty));
752  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFEGammasPlus_BXm2BXm1Empty" ,meMETPhiHFEGammasPlus_BXm2BXm1Empty));
753  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFEGammasMinus_BXm2BXm1Empty" ,meMETPhiHFEGammasMinus_BXm2BXm1Empty));
754  */
755  //histos where one previous bunch was empty/filled
756  mePhotonEtFraction_BXm1Empty =
757  ibooker.book1D("PfPhotonEtFraction_BXm1Empty", "photonEtFraction() prev empty bunch", 50, 0, 1);
758  mePhotonEtFraction_BXm1Filled =
759  ibooker.book1D("PfPhotonEtFraction_BXm1Filled", "photonEtFraction() prev filled bunch", 50, 0, 1);
760  meNeutralHadronEtFraction_BXm1Empty = ibooker.book1D(
761  "PfNeutralHadronEtFraction_BXm1Empty", "neutralHadronEtFraction() prev empty bunch", 50, 0, 1);
762  meNeutralHadronEtFraction_BXm1Filled = ibooker.book1D(
763  "PfNeutralHadronEtFraction_BXm1Filled", "neutralHadronEtFraction() prev filled bunch", 50, 0, 1);
764  meChargedHadronEtFraction_BXm1Empty = ibooker.book1D(
765  "PfChargedHadronEtFraction_BXm1Empty", "chargedHadronEtFraction() prev empty bunch", 50, 0, 1);
766  meChargedHadronEtFraction_BXm1Filled = ibooker.book1D(
767  "PfChargedHadronEtFraction_BXm1Filled", "chargedHadronEtFraction() prev filled bunch", 50, 0, 1);
768  meMET_BXm1Empty = ibooker.book1D("MET_BXm1Empty", "MET prev empty bunch", 200, 0, 1000);
769  meMET_BXm1Filled = ibooker.book1D("MET_BXm1Filled", "MET prev filled bunch", 200, 0, 1000);
770  meSumET_BXm1Empty = ibooker.book1D("SumET_BXm1Empty", "SumET prev empty bunch", 400, 0, 4000);
771  meSumET_BXm1Filled = ibooker.book1D("SumET_BXm1Filled", "SumET prev filled bunch", 400, 0, 4000);
772 
773  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFraction_BXm1Empty",
774  mePhotonEtFraction_BXm1Empty));
775  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFraction_BXm1Filled",
776  mePhotonEtFraction_BXm1Filled));
777  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEtFraction_BXm1Empty",
778  meNeutralHadronEtFraction_BXm1Empty));
779  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralEtFraction_BXm1Filled",
780  meNeutralHadronEtFraction_BXm1Filled));
781  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEtFraction_BXm1Empty",
782  meChargedHadronEtFraction_BXm1Empty));
783  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedEtFraction_BXm1Filled",
784  meChargedHadronEtFraction_BXm1Filled));
785  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_BXm1Empty", meMET_BXm1Empty));
786  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_BXm1Filled", meMET_BXm1Filled));
787  map_of_MEs.insert(
788  std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET_BXm1Empty", meSumET_BXm1Empty));
789  map_of_MEs.insert(
790  std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET_BXm1Filled", meSumET_BXm1Filled));
791 
792  meMETPhiChargedHadronsBarrel_BXm1Filled = ibooker.book1D(
793  "METPhiChargedHadronsBarrel_BXm1Filled", "METPhi_PFChargedHadronsBarrel prev bunch filled", 50, -M_PI, M_PI);
794  meMETPhiChargedHadronsEndcapPlus_BXm1Filled =
795  ibooker.book1D("METPhiChargedHadronsEndcapPlus_BXm1Filled",
796  "METPhi_PFChargedHadronsEndcapPlus prev bunch filled",
797  50,
798  -M_PI,
799  M_PI);
800  meMETPhiChargedHadronsEndcapMinus_BXm1Filled =
801  ibooker.book1D("METPhiChargedHadronsEndcapMinus_BXm1Filled",
802  "METPhi_PFChargedHadronsEndcapMinus prev bunch filled",
803  50,
804  -M_PI,
805  M_PI);
806  meMETPhiNeutralHadronsBarrel_BXm1Filled = ibooker.book1D(
807  "METPhiNeutralHadronsBarrel_BXm1Filled", "METPhi_PFNeutralHadronsBarrel prev bunch filled", 50, -M_PI, M_PI);
808  meMETPhiNeutralHadronsEndcapPlus_BXm1Filled =
809  ibooker.book1D("METPhiNeutralHadronsEndcapPlus_BXm1Filled",
810  "METPhi_PFNeutralHadronsEndcapPlus prev bunch filled",
811  50,
812  -M_PI,
813  M_PI);
814  meMETPhiNeutralHadronsEndcapMinus_BXm1Filled =
815  ibooker.book1D("METPhiNeutralHadronsEndcapMinus_BXm1Filled",
816  "METPhi_PFNeutralHadronsEndcapMinus prev bunch filled",
817  50,
818  -M_PI,
819  M_PI);
820  meMETPhiPhotonsBarrel_BXm1Filled = ibooker.book1D(
821  "METPhiPhotonsBarrel_BXm1Filled", "METPhi_PFPhotonsBarrel prev bunch filled", 50, -M_PI, M_PI);
822  meMETPhiPhotonsEndcapPlus_BXm1Filled = ibooker.book1D(
823  "METPhiPhotonsEndcapPlus_BXm1Filled", "METPhi_PFPhotonsEndcapPlus prev bunch filled", 50, -M_PI, M_PI);
824  meMETPhiPhotonsEndcapMinus_BXm1Filled = ibooker.book1D(
825  "METPhiPhotonsEndcapMinus_BXm1Filled", "METPhi_PFPhotonsEndcapMinus prev bunch filled", 50, -M_PI, M_PI);
826  meMETPhiHFHadronsPlus_BXm1Filled = ibooker.book1D(
827  "METPhiHFHadronsPlus_BXm1Filled", "METPhi_PFHFHadronsPlus prev bunch filled", 50, -M_PI, M_PI);
828  meMETPhiHFHadronsMinus_BXm1Filled = ibooker.book1D(
829  "METPhiHFHadronsMinus_BXm1Filled", "METPhi_PFHFHadronsMinus prev bunch filled", 50, -M_PI, M_PI);
830  meMETPhiHFEGammasPlus_BXm1Filled = ibooker.book1D(
831  "METPhiHFEGammasPlus_BXm1Filled", "METPhi_PFHFEGammasPlus prev bunch filled", 50, -M_PI, M_PI);
832  meMETPhiHFEGammasMinus_BXm1Filled = ibooker.book1D(
833  "METPhiHFEGammasMinus_BXm1Filled", "METPhi_PFHFEGammasMinus prev bunch filled", 50, -M_PI, M_PI);
834 
835  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
836  DirName + "/" + "METPhiChargedHadronsBarrel_BXm1Filled", meMETPhiChargedHadronsBarrel_BXm1Filled));
837  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
838  DirName + "/" + "METPhiChargedHadronsEndcapPlus_BXm1Filled", meMETPhiChargedHadronsEndcapPlus_BXm1Filled));
839  map_of_MEs.insert(
840  std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiChargedHadronsEndcapMinus_BXm1Filled",
841  meMETPhiChargedHadronsEndcapMinus_BXm1Filled));
842  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
843  DirName + "/" + "METPhiNeutralHadronsBarrel_BXm1Filled", meMETPhiNeutralHadronsBarrel_BXm1Filled));
844  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
845  DirName + "/" + "METPhiNeutralHadronsEndcapPlus_BXm1Filled", meMETPhiNeutralHadronsEndcapPlus_BXm1Filled));
846  map_of_MEs.insert(
847  std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiNeutralHadronsEndcapMinus_BXm1Filled",
848  meMETPhiNeutralHadronsEndcapMinus_BXm1Filled));
849  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsBarrel_BXm1Filled",
850  meMETPhiPhotonsBarrel_BXm1Filled));
851  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapPlus_BXm1Filled",
852  meMETPhiPhotonsEndcapPlus_BXm1Filled));
853  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapMinus_BXm1Filled",
854  meMETPhiPhotonsEndcapMinus_BXm1Filled));
855  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsPlus_BXm1Filled",
856  meMETPhiHFHadronsPlus_BXm1Filled));
857  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsMinus_BXm1Filled",
858  meMETPhiHFHadronsMinus_BXm1Filled));
859  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasPlus_BXm1Filled",
860  meMETPhiHFEGammasPlus_BXm1Filled));
861  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasMinus_BXm1Filled",
862  meMETPhiHFEGammasMinus_BXm1Filled));
863 
864  meMETPhiChargedHadronsBarrel_BXm1Empty = ibooker.book1D(
865  "METPhiChargedHadronsBarrel_BXm1Empty", "METPhi_PFChargedHadronsBarrel prev bunch empty", 50, -M_PI, M_PI);
866  meMETPhiChargedHadronsEndcapPlus_BXm1Empty =
867  ibooker.book1D("METPhiChargedHadronsEndcapPlus_BXm1Empty",
868  "METPhi_PFChargedHadronsEndcapPlus prev bunch empty",
869  50,
870  -M_PI,
871  M_PI);
872  meMETPhiChargedHadronsEndcapMinus_BXm1Empty =
873  ibooker.book1D("METPhiChargedHadronsEndcapMinus_BXm1Empty",
874  "METPhi_PFChargedHadronsEndcapMinus prev bunch empty",
875  50,
876  -M_PI,
877  M_PI);
878  meMETPhiNeutralHadronsBarrel_BXm1Empty = ibooker.book1D(
879  "METPhiNeutralHadronsBarrel_BXm1Empty", "METPhi_PFNeutralHadronsBarrel prev bunch empty", 50, -M_PI, M_PI);
880  meMETPhiNeutralHadronsEndcapPlus_BXm1Empty =
881  ibooker.book1D("METPhiNeutralHadronsEndcapPlus_BXm1Empty",
882  "METPhi_PFNeutralHadronsEndcapPlus prev bunch empty",
883  50,
884  -M_PI,
885  M_PI);
886  meMETPhiNeutralHadronsEndcapMinus_BXm1Empty =
887  ibooker.book1D("METPhiNeutralHadronsEndcapMinus_BXm1Empty",
888  "METPhi_PFNeutralHadronsEndcapMinus prev bunch empty",
889  50,
890  -M_PI,
891  M_PI);
892  meMETPhiPhotonsBarrel_BXm1Empty =
893  ibooker.book1D("METPhiPhotonsBarrel_BXm1Empty", "METPhi_PFPhotonsBarrel prev bunch empty", 50, -M_PI, M_PI);
894  meMETPhiPhotonsEndcapPlus_BXm1Empty = ibooker.book1D(
895  "METPhiPhotonsEndcapPlus_BXm1Empty", "METPhi_PFPhotonsEndcapPlus prev bunch empty", 50, -M_PI, M_PI);
896  meMETPhiPhotonsEndcapMinus_BXm1Empty = ibooker.book1D(
897  "METPhiPhotonsEndcapMinus_BXm1Empty", "METPhi_PFPhotonsEndcapMinus prev bunch empty", 50, -M_PI, M_PI);
898  meMETPhiHFHadronsPlus_BXm1Empty =
899  ibooker.book1D("METPhiHFHadronsPlus_BXm1Empty", "METPhi_PFHFHadronsPlus prev bunch empty", 50, -M_PI, M_PI);
900  meMETPhiHFHadronsMinus_BXm1Empty = ibooker.book1D(
901  "METPhiHFHadronsMinus_BXm1Empty", "METPhi_PFHFHadronsMinus prev bunch empty", 50, -M_PI, M_PI);
902  meMETPhiHFEGammasPlus_BXm1Empty =
903  ibooker.book1D("METPhiHFEGammasPlus_BXm1Empty", "METPhi_PFHFEGammasPlus prev bunch empty", 50, -M_PI, M_PI);
904  meMETPhiHFEGammasMinus_BXm1Empty = ibooker.book1D(
905  "METPhiHFEGammasMinus_BXm1Empty", "METPhi_PFHFEGammasMinus prev bunch empty", 50, -M_PI, M_PI);
906 
907  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
908  DirName + "/" + "METPhiChargedHadronsBarrel_BXm1Empty", meMETPhiChargedHadronsBarrel_BXm1Empty));
909  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
910  DirName + "/" + "METPhiChargedHadronsEndcapPlus_BXm1Empty", meMETPhiChargedHadronsEndcapPlus_BXm1Empty));
911  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
912  DirName + "/" + "METPhiChargedHadronsEndcapMinus_BXm1Empty", meMETPhiChargedHadronsEndcapMinus_BXm1Empty));
913  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
914  DirName + "/" + "METPhiNeutralHadronsBarrel_BXm1Empty", meMETPhiNeutralHadronsBarrel_BXm1Empty));
915  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
916  DirName + "/" + "METPhiNeutralHadronsEndcapPlus_BXm1Empty", meMETPhiNeutralHadronsEndcapPlus_BXm1Empty));
917  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
918  DirName + "/" + "METPhiNeutralHadronsEndcapMinus_BXm1Empty", meMETPhiNeutralHadronsEndcapMinus_BXm1Empty));
919  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsBarrel_BXm1Empty",
920  meMETPhiPhotonsBarrel_BXm1Empty));
921  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapPlus_BXm1Empty",
922  meMETPhiPhotonsEndcapPlus_BXm1Empty));
923  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapMinus_BXm1Empty",
924  meMETPhiPhotonsEndcapMinus_BXm1Empty));
925  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsPlus_BXm1Empty",
926  meMETPhiHFHadronsPlus_BXm1Empty));
927  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsMinus_BXm1Empty",
928  meMETPhiHFHadronsMinus_BXm1Empty));
929  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasPlus_BXm1Empty",
930  meMETPhiHFEGammasPlus_BXm1Empty));
931  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasMinus_BXm1Empty",
932  meMETPhiHFEGammasMinus_BXm1Empty));
933 
934  meMETPhiChargedHadronsBarrel =
935  ibooker.book1D("METPhiChargedHadronsBarrel", "METPhi_PFChargedHadronsBarrel", 50, -M_PI, M_PI);
936  meMETPhiChargedHadronsEndcapPlus =
937  ibooker.book1D("METPhiChargedHadronsEndcapPlus", "METPhi_PFChargedHadronsEndcapPlus", 50, -M_PI, M_PI);
938  meMETPhiChargedHadronsEndcapMinus =
939  ibooker.book1D("METPhiChargedHadronsEndcapMinus", "METPhi_PFChargedHadronsEndcapMinus", 50, -M_PI, M_PI);
940  meMETPhiNeutralHadronsBarrel =
941  ibooker.book1D("METPhiNeutralHadronsBarrel", "METPhi_PFNeutralHadronsBarrel", 50, -M_PI, M_PI);
942  meMETPhiNeutralHadronsEndcapPlus =
943  ibooker.book1D("METPhiNeutralHadronsEndcapPlus", "METPhi_PFNeutralHadronsEndcapPlus", 50, -M_PI, M_PI);
944  meMETPhiNeutralHadronsEndcapMinus =
945  ibooker.book1D("METPhiNeutralHadronsEndcapMinus", "METPhi_PFNeutralHadronsEndcapMinus", 50, -M_PI, M_PI);
946  meMETPhiPhotonsBarrel = ibooker.book1D("METPhiPhotonsBarrel", "METPhi_PFPhotonsBarrel", 50, -M_PI, M_PI);
947  meMETPhiPhotonsEndcapPlus =
948  ibooker.book1D("METPhiPhotonsEndcapPlus", "METPhi_PFPhotonsEndcapPlus", 50, -M_PI, M_PI);
949  meMETPhiPhotonsEndcapMinus =
950  ibooker.book1D("METPhiPhotonsEndcapMinus", "METPhi_PFPhotonsEndcapMinus", 50, -M_PI, M_PI);
951  meMETPhiHFHadronsPlus = ibooker.book1D("METPhiHFHadronsPlus", "METPhi_PFHFHadronsPlus", 50, -M_PI, M_PI);
952  meMETPhiHFHadronsMinus = ibooker.book1D("METPhiHFHadronsMinus", "METPhi_PFHFHadronsMinus", 50, -M_PI, M_PI);
953  meMETPhiHFEGammasPlus = ibooker.book1D("METPhiHFEGammasPlus", "METPhi_PFHFEGammasPlus", 50, -M_PI, M_PI);
954  meMETPhiHFEGammasMinus = ibooker.book1D("METPhiHFEGammasMinus", "METPhi_PFHFEGammasMinus", 50, -M_PI, M_PI);
955 
956  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiChargedHadronsBarrel",
957  meMETPhiChargedHadronsBarrel));
958  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiChargedHadronsEndcapPlus",
959  meMETPhiChargedHadronsEndcapPlus));
960  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiChargedHadronsEndcapMinus",
961  meMETPhiChargedHadronsEndcapMinus));
962  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiNeutralHadronsBarrel",
963  meMETPhiNeutralHadronsBarrel));
964  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiNeutralHadronsEndcapPlus",
965  meMETPhiNeutralHadronsEndcapPlus));
966  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiNeutralHadronsEndcapMinus",
967  meMETPhiNeutralHadronsEndcapMinus));
968  map_of_MEs.insert(
969  std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsBarrel", meMETPhiPhotonsBarrel));
970  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapPlus",
971  meMETPhiPhotonsEndcapPlus));
972  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapMinus",
973  meMETPhiPhotonsEndcapMinus));
974  map_of_MEs.insert(
975  std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsPlus", meMETPhiHFHadronsPlus));
976  map_of_MEs.insert(
977  std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsMinus", meMETPhiHFHadronsMinus));
978  map_of_MEs.insert(
979  std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasPlus", meMETPhiHFEGammasPlus));
980  map_of_MEs.insert(
981  std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasMinus", meMETPhiHFEGammasMinus));
982  }
983 
984  if (fillPFCandPlots && fillCandidateMap_histos) {
985  if (!profilePFCand_x_.empty()) {
986  etaMinPFCand_.clear();
987  etaMaxPFCand_.clear();
988  typePFCand_.clear();
989  countsPFCand_.clear();
990  MExPFCand_.clear();
991  MEyPFCand_.clear();
992  profilePFCand_x_.clear();
993  profilePFCand_y_.clear();
994  profilePFCand_x_name_.clear();
995  profilePFCand_y_name_.clear();
996  }
997  for (std::vector<edm::ParameterSet>::const_iterator v = diagnosticsParameters_.begin();
998  v != diagnosticsParameters_.end();
999  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  // etaNBins_.push_back(etaNBins);
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) { //first bool internal checks for subdirectory filling, second bool given in cfg file, checks that we fill maps only in one module in total
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) { //now configurable in python file
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  } //all non Z plots (restrict Z Plots only for resolution study)
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  // std::cout << "Run " << iRun.run() << " hltconfig.init "
1193  // << hltConfig_.init(iRun,iSetup,triggerResultsLabel_.process(),changed_) << " length: "<<hltConfig_.triggerNames().size()<<" changed "<<changed_<<std::endl;
1194  bool changed(true);
1195  if (hltConfig_.init(iRun, iSetup, triggerResultsLabel_.process(), changed)) {
1196  if (changed) {
1197  //hltConfig_.dump("ProcessName");
1198  //hltConfig_.dump("GlobalTag");
1199  //hltConfig_.dump("TableName");
1200  // hltConfig_.dump("Streams");
1201  // hltConfig_.dump("Datasets");
1202  // hltConfig_.dump("PrescaleTable");
1203  // hltConfig_.dump("ProcessPSet");
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  // std::cout<<"Length: "<<allTriggerNames_.size()<<std::endl;
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); //we have 8 filters at the moment
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); //actual label of filter, the first 5 items are Flag_, so stripped off
1240  HBHENoiseStringMiniAOD; //all filters end with DQM, which is not in the flag --> ONLY not for HBHEFilters
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); //actual label of filter, the first 5 items are Flag_, so stripped off
1287  HBHENoiseStringMiniAOD; //all filters end with DQM, which is not in the flag --> ONLY not for HBHEFilters
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  //--- Check the time length of the Run from the lumi section plots
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  //check overflow bin (if we have more than 2500 LS in a run)
1351  //lumisec is filled every time the analyze section is processed
1352  //we know an LS is present only once in a run: normalize how many events we had on average
1353  //if lumi fluctuates strongly might be unreliable for overflow bin though
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); // one lumi sec ~ 90 (sec)
1363  }
1364 
1365  if (totltime == 0.)
1366  totltime = 1.;
1367 
1368  std::string dirName = FolderName_ + metCollectionLabel_.label() + "/";
1369  //dbe_->setCurrentFolder(dirName);
1370 
1371  //below is the original METAnalyzer formulation
1372 
1373  for (std::vector<std::string>::const_iterator ic = folderNames_.begin(); ic != folderNames_.end(); ic++) {
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 // ***********************************************************
1390  //dbe_->setCurrentFolder(DirName);
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  // Integral plot & convert number of events to rate (hz)
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 // ***********************************************************
1416  // *** Fill lumisection ME
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  // Trigger information
1437  //
1438  // trigJetMB_=0;
1439  // trigHighPtJet_=0;
1440  // trigLowPtJet_=0;
1441  // trigMinBias_=0;
1442  // trigHighMET_=0;
1443  // // _trig_LowMET=0;
1444  // trigEle_=0;
1445  // trigMuon_=0;
1446  // trigPhysDec_=0;
1447  std::vector<int> triggerFolderDecisions;
1448  triggerFolderDecisions_ = std::vector<int>(triggerFolderEventFlag_.size(), 0);
1449  // **** Get the TriggerResults container
1451  iEvent.getByToken(triggerResultsToken_, triggerResults);
1452 
1453  if (triggerResults.isValid()) {
1455  // Check how many HLT triggers are in triggerResults
1456  int ntrigs = (*triggerResults).size();
1457  if (verbose_)
1458  std::cout << "ntrigs=" << ntrigs << std::endl;
1459  // If index=ntrigs, this HLT trigger doesn't exist in the HLT table for this data.
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  //std::cout<<"TR "<<(*triggerResults).size()<<" "<<(*triggerResults).accept(i)<<" "<<allTriggerNames_[i]<<std::endl;
1471  }
1472  }
1473 
1474  // ==========================================================
1475  // MET information
1476 
1477  // **** Get the MET container
1482 
1483  //if(isTCMet_){
1484  //iEvent.getByToken(tcMetToken_, tcmetcoll);
1485  //if(!tcmetcoll.isValid()) return;
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  //if(isTCMet_){
1508  //met=&(tcmetcoll->front());
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  // TCMET
1530 
1531  //if (/*isTCMet_ || */(isCaloMet_ && metCollectionLabel_.label() == "corMetGlobalMuons")) {
1532 
1533  //iEvent.getByToken(MuonToken_, muonHandle_);
1534  //iEvent.getByToken(TrackToken_, trackHandle_);
1535  //iEvent.getByToken(ElectronToken_, electronHandle_);
1536  //iEvent.getByToken(BeamspotToken_, beamSpotHandle_);
1537  //iEvent.getByToken(tcMETValueMapToken_,tcMetValueMapHandle_);
1538 
1539  //if(!muonHandle_.isValid()) edm::LogInfo("OutputInfo") << "falied to retrieve muon data require by MET Task";
1540  //if(!trackHandle_.isValid()) edm::LogInfo("OutputInfo") << "falied to retrieve track data require by MET Task";
1541  //if(!electronHandle_.isValid()) edm::LogInfo("OutputInfo") << "falied to retrieve electron data require by MET Task";
1542  //if(!beamSpotHandle_.isValid()) edm::LogInfo("OutputInfo") << "falied to retrieve beam spot data require by MET Task";
1543 
1544  //beamSpot_ = ( beamSpotHandle_.isValid() ) ? beamSpotHandle_->position() : math::XYZPoint(0, 0, 0);
1545  //}
1546 
1547  // ==========================================================
1548  bool bJetID = false;
1549  bool bDiJetID = false;
1550  // Jet ID -------------------------------------------------------
1551  //
1552 
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  }
1570  //if (isTCMet_){
1571  //iEvent.getByToken(jptJetsToken_, jptJets);
1572  //if (!jptJets.isValid()) {
1573  // LogDebug("") << "METAnalyzer: Could not find jptjet product" << std::endl;
1574  // if (verbose_) std::cout << "METAnalyzer: Could not find jptjet product" << std::endl;
1575  //}
1576  //collsize=jptJets->size();
1577  //}*/
1578 
1579  edm::Handle<edm::ValueMap<reco::JetID> > jetID_ValueMap_Handle;
1580  if (/*isTCMet_ || */ 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 
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  //do loose jet ID-> check threshold on corrected jets
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  //if(isTCMet_){
1633  //scale = jetCorr->correction((*jptJets)[ijet]);
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  }
1652  //if(isTCMet_){
1653  //pt_jet=scale*(*jptJets)[ijet].pt();
1654  //if(pt_jet> ptThreshold_){
1655  // const edm::RefToBase<reco::Jet>& rawJet = (*jptJets)[ijet].getCaloJetRef();
1656  // const reco::CaloJet *rawCaloJet = dynamic_cast<const reco::CaloJet*>(&*rawJet);
1657  // reco::CaloJetRef const theCaloJetRef = (rawJet).castTo<reco::CaloJetRef>();
1658  // if(!runcosmics_){
1659  // reco::JetID jetID = (*jetID_ValueMap_Handle)[theCaloJetRef];
1660  // iscleaned = jetIDFunctorLoose(*rawCaloJet, jetID);
1661  // }else{
1662  // iscleaned=true;
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  }
1701  //dphi=fabs((*jptJets)[ind1].phi()-(*jptJets)[ind2].phi());
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  //Vertex information
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 
1737  iEvent.getByToken(MuonsToken_, Muons);
1738 
1740 
1741  double pt_muon0 = -1;
1742  double pt_muon1 = -1;
1743  int mu_index0 = -1;
1744  int mu_index1 = -1;
1745  //fill it only for cleaned jets
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  // Muon pf isolation DB corrected
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 
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  // trigger results before mask for BxInEvent -2 (E), -1 (F), 0 (L1A), 1, 2
1813  const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBxM2 = gtReadoutRecord->technicalTriggerWord(-2);
1814  const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBxM1 = gtReadoutRecord->technicalTriggerWord(-1);
1815  const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBx0 = gtReadoutRecord->technicalTriggerWord();
1816  //const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBxG = gtReadoutRecord->technicalTriggerWord(1);
1817  //const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBxH = gtReadoutRecord->technicalTriggerWord(2);
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) { //current and previous two bunches filled
1830  trigger_flag[0] = true;
1831  }
1832  if (techTriggerResultBx0 && techTriggerResultBxM1) { //current and previous bunch filled
1833  trigger_flag[1] = true;
1834  }
1835  if (techTriggerResultBx0 && !techTriggerResultBxM1) { //current bunch filled, but previous bunch emtpy
1836  trigger_flag[2] = true;
1837  }
1838  if (techTriggerResultBx0 && !techTriggerResultBxM2 &&
1839  !techTriggerResultBxM1) { //current bunch filled, but previous two bunches emtpy
1840  trigger_flag[3] = true;
1841  }
1842  std::vector<bool> filter_decisions(
1843  8, false); //include all recommended filters, old filters in MiniAOD, and 2 new filters in testing phase
1844  if (!isMiniAODMet_ &&
1845  !runcosmics_) { //not checked for MiniAOD -> for miniaod decision filled as "triggerResults" bool
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  //miniaodFilterIndex_ is only filled in dqmBeginRun if isMiniAODMet_ true
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]; //setup for RECO and MINIAOD
1970  // ==========================================================
1971  // HCAL Noise filter
1972  bool bHBHENoiseFilter = HBHENoiseFilterResultFlag;
1973 
1974  // DCS Filter
1975  bool bDCSFilter = (bypassAllDCSChecks_ || DCSFilter_->filter(iEvent, iSetup));
1976  // ==========================================================
1977  // Reconstructed MET Information - fill MonitorElements
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  //take two lines out for first check
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 // ***********************************************************
2043  const reco::MET& met,
2044  const pat::MET* patmet,
2045  const reco::PFMET* pfmet,
2046  const reco::CaloMET* calomet,
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 // ***********************************************************
2150  std::string subFolderName,
2151  const reco::MET& met,
2152  const pat::MET* patmet,
2153  const reco::PFMET* pfmet,
2154  const reco::CaloMET* calomet,
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) { //do Z plots only
2163  do_only_Z_histograms = true;
2164  //\vec{p}_{T}^{Z}+vec{u}_{T}+\vec{MET}=0
2165 
2166  double u_x = -met.px() - zCand.Px();
2167  double u_y = -met.py() - zCand.Py();
2168 
2169  //protection for VERY special case where Z-Pt==0
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  // Reconstructed MET Information
2249  double SumET = met.sumEt();
2250  double METSig = met.mEtSig();
2251  //double Ez = met.e_longitudinal();
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  //hMET_HBHENoiseFilter = ibooker.book1D("MET_HBHENoiseFilter", "MET_HBHENoiseFiltered", 200, 0, 1000);
2288  //hMET_CSCTightHaloFilter = ibooker.book1D("MET_CSCTightHaloFilter", "MET_CSCTightHaloFiltered", 200, 0, 1000);
2289  //hMET_eeBadScFilter = ibooker.book1D("MET_eeBadScFilter", "MET_eeBadScFiltered", 200, 0, 1000);
2290  //hMET_HBHEIsoNoiseFilter = ibooker.book1D("MET_HBHEIsoNoiseFilter", "MET_HBHEIsoNoiseFiltered", 200, 0, 1000);
2291  //hMET_CSCTightHalo2015Filter = ibooker.book1D("MET_CSCTightHalo2015Filter", "MET_CSCTightHalo2015Filtered", 200, 0, 1000);
2292  //hMET_EcalDeadCellTriggerFilter = ibooker.book1D("MET_EcalDeadCellTriggerFilter", "MET_EcalDeadCellTriggerFiltered", 200, 0, 1000);
2293  //hMET_EcalDeadCellBoundaryFilter = ibooker.book1D("MET_EcalDeadCellBoundaryFilter", "MET_EcalDeadCellBoundaryFiltered", 200, 0, 1000);
2294  //hMET_HcalStripHaloFilter = ibooker.book1D("MET_HcalStripHaloFilter", "MET_HcalStripHaloFiltered", 200, 0, 1000);
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  // Fill NPV profiles
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  //const reco::CaloMETCollection *calometcol = calometcoll.product();
2386  //const reco::CaloMET *calomet;
2387  //calomet = &(calometcol->front());
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  // typedef std::vector<reco::PFCandidate> pfCand;
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) { //charged hadrons
2492  //endcap minus
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) { //barrel
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) { //endcap plus
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) { //neutral hadrons
2508  //endcap minus
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) { //photons
2524  //endcap minus
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) { //HFHadrons
2540  //forward minus
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) { //forward plus
2546  px_HFHadronsPlus -= c.px();
2547  py_HFHadronsPlus -= c.py();
2548  pt_sum_HFH_plus += c.et();
2549  }
2550  }
2551  if (c.particleId() == 7) { //HFEGammas
2552  //forward minus
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) { //forward plus
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  //second check for endcap, if inside barrel Max and Min symmetric around 0
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  //sanity check if we have any type of the respective species in the events
2624  //else don't fill phi, as else we have a results of a biased peak at 0
2625  //if pt_sum of species part is 0, obviously that would be the case
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  //fill other diagnostic plots based on trigger decision
2692  /*if(techTriggerCase[0]){//techTriggerResultBx0 && techTriggerResultBxM2 && techTriggerResultBxM1 -> both previous bunches filled
2693  meCHF_Barrel_BXm2BXm1Filled=map_of_MEs[DirName+"/"+"PfChargedHadronEtFractionBarrel_BXm2BXm1Filled"]; if(meCHF_Barrel_BXm2BXm1Filled && meCHF_Barrel_BXm2BXm1Filled->getRootObject()) meCHF_Barrel_BXm2BXm1Filled->Fill(pt_sum_CHF_Barrel/pfmet->sumEt());
2694  meCHF_EndcapPlus_BXm2BXm1Filled=map_of_MEs[DirName+"/"+"PfChargedHadronEtFractionEndcapPlus_BXm2BXm1Filled"]; if(meCHF_EndcapPlus_BXm2BXm1Filled && meCHF_EndcapPlus_BXm2BXm1Filled->getRootObject()) meCHF_EndcapPlus_BXm2BXm1Filled->Fill(pt_sum_CHF_Endcap_plus/pfmet->sumEt());
2695  meCHF_EndcapMinus_BXm2BXm1Filled=map_of_MEs[DirName+"/"+"PfChargedHadronEtFractionEndcapMinus_BXm2BXm1Filled"]; if(meCHF_EndcapMinus_BXm2BXm1Filled && meCHF_EndcapMinus_BXm2BXm1Filled->getRootObject()) meCHF_EndcapMinus_BXm2BXm1Filled->Fill(pt_sum_CHF_Endcap_minus/pfmet->sumEt());
2696  meNHF_Barrel_BXm2BXm1Filled=map_of_MEs[DirName+"/"+"PfNeutralHadronEtFractionBarrel_BXm2BXm1Filled"]; if(meNHF_Barrel_BXm2BXm1Filled && meNHF_Barrel_BXm2BXm1Filled->getRootObject()) meNHF_Barrel_BXm2BXm1Filled->Fill(pt_sum_NHF_Barrel/pfmet->sumEt());
2697  meNHF_EndcapPlus_BXm2BXm1Filled=map_of_MEs[DirName+"/"+"PfNeutralHadronEtFractionEndcapPlus_BXm2BXm1Filled"]; if(meNHF_EndcapPlus_BXm2BXm1Filled && meNHF_EndcapPlus_BXm2BXm1Filled->getRootObject()) meNHF_EndcapPlus_BXm2BXm1Filled->Fill(pt_sum_NHF_Endcap_plus/pfmet->sumEt());
2698  meNHF_EndcapMinus_BXm2BXm1Filled=map_of_MEs[DirName+"/"+"PfNeutralHadronEtFractionEndcapMinus_BXm2BXm1Filled"]; if(meNHF_EndcapMinus_BXm2BXm1Filled && meNHF_EndcapMinus_BXm2BXm1Filled->getRootObject()) meNHF_EndcapMinus_BXm2BXm1Filled->Fill(pt_sum_NHF_Endcap_minus/pfmet->sumEt());
2699  mePhF_Barrel_BXm2BXm1Filled=map_of_MEs[DirName+"/"+"PfPhotonEtFractionBarrel_BXm2BXm1Filled"]; if(mePhF_Barrel_BXm2BXm1Filled && mePhF_Barrel_BXm2BXm1Filled->getRootObject()) mePhF_Barrel_BXm2BXm1Filled->Fill(pt_sum_PhF_Barrel/pfmet->sumEt());
2700  mePhF_EndcapPlus_BXm2BXm1Filled=map_of_MEs[DirName+"/"+"PfPhotonEtFractionEndcapPlus_BXm2BXm1Filled"]; if(mePhF_EndcapPlus_BXm2BXm1Filled && mePhF_EndcapPlus_BXm2BXm1Filled->getRootObject()) mePhF_EndcapPlus_BXm2BXm1Filled->Fill(pt_sum_PhF_Endcap_plus/pfmet->sumEt());
2701  mePhF_EndcapMinus_BXm2BXm1Filled=map_of_MEs[DirName+"/"+"PfPhotonEtFractionEndcapMinus_BXm2BXm1Filled"]; if(mePhF_EndcapMinus_BXm2BXm1Filled && mePhF_EndcapMinus_BXm2BXm1Filled->getRootObject()) mePhF_EndcapMinus_BXm2BXm1Filled->Fill(pt_sum_PhF_Endcap_minus/pfmet->sumEt());
2702  meHFHadF_Plus_BXm2BXm1Filled=map_of_MEs[DirName+"/"+"PfHFHadronEtFractionPlus_BXm2BXm1Filled"]; if(meHFHadF_Plus_BXm2BXm1Filled && meHFHadF_Plus_BXm2BXm1Filled->getRootObject()) meHFHadF_Plus_BXm2BXm1Filled->Fill(pt_sum_HFH_plus/pfmet->sumEt());
2703  meHFHadF_Minus_BXm2BXm1Filled=map_of_MEs[DirName+"/"+"PfHFHadronEtFractionMinus_BXm2BXm1Filled"]; if(meHFHadF_Minus_BXm2BXm1Filled && meHFHadF_Minus_BXm2BXm1Filled->getRootObject()) meHFHadF_Minus_BXm2BXm1Filled->Fill(pt_sum_HFH_minus/pfmet->sumEt());
2704  meHFEMF_Plus_BXm2BXm1Filled=map_of_MEs[DirName+"/"+"PfHFEMEtFractionPlus_BXm2BXm1Filled"]; if(meHFEMF_Plus_BXm2BXm1Filled && meHFEMF_Plus_BXm2BXm1Filled->getRootObject()) meHFEMF_Plus_BXm2BXm1Filled->Fill(pt_sum_HFE_plus/pfmet->sumEt());
2705  meHFEMF_Minus_BXm2BXm1Filled=map_of_MEs[DirName+"/"+"PfHFEMEtFractionMinus_BXm2BXm1Filled"]; if(meHFEMF_Minus_BXm2BXm1Filled && meHFEMF_Minus_BXm2BXm1Filled->getRootObject()) meHFEMF_Minus_BXm2BXm1Filled->Fill(pt_sum_HFE_minus/pfmet->sumEt());
2706  mePhotonEtFraction_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"PfPhotonEtFraction_BXm2BXm1Filled"]; if ( mePhotonEtFraction_BXm2BXm1Filled && mePhotonEtFraction_BXm2BXm1Filled ->getRootObject()) mePhotonEtFraction_BXm2BXm1Filled ->Fill(pfmet->photonEtFraction());
2707  meNeutralHadronEtFraction_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"PfNeutralHadronEtFraction_BXm2BXm1Filled"]; if ( meNeutralHadronEtFraction_BXm2BXm1Filled && meNeutralHadronEtFraction_BXm2BXm1Filled ->getRootObject()) meNeutralHadronEtFraction_BXm2BXm1Filled ->Fill(pfmet->neutralHadronEtFraction());
2708  meChargedHadronEtFraction_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"PfChargedHadronEtFraction_BXm2BXm1Filled"]; if ( meChargedHadronEtFraction_BXm2BXm1Filled && meChargedHadronEtFraction_BXm2BXm1Filled ->getRootObject()) meChargedHadronEtFraction_BXm2BXm1Filled ->Fill(pfmet->chargedHadronEtFraction());
2709  meMET_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"MET_BXm2BXm1Filled"]; if ( meMET_BXm2BXm1Filled && meMET_BXm2BXm1Filled ->getRootObject()) meMET_BXm2BXm1Filled ->Fill(pfmet->pt());
2710  meSumET_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"SumET_BXm2BXm1Filled"]; if ( meSumET_BXm2BXm1Filled && meSumET_BXm2BXm1Filled ->getRootObject()) meSumET_BXm2BXm1Filled ->Fill(pfmet->sumEt());
2711  if(pt_sum_CHF_Barrel){
2712  meMETPhiChargedHadronsBarrel_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiChargedHadronsBarrel_BXm2BXm1Filled"];if(meMETPhiChargedHadronsBarrel_BXm2BXm1Filled && meMETPhiChargedHadronsBarrel_BXm2BXm1Filled ->getRootObject())meMETPhiChargedHadronsBarrel_BXm2BXm1Filled->Fill(atan2(py_chargedHadronsBarrel,px_chargedHadronsBarrel));
2713  }
2714  if(pt_sum_CHF_Endcap_plus){
2715  meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiChargedHadronsEndcapPlus_BXm2BXm1Filled"];if(meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Filled && meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Filled ->getRootObject())meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Filled->Fill(atan2(py_chargedHadronsEndcapPlus,px_chargedHadronsEndcapPlus));
2716  }
2717  if(pt_sum_CHF_Endcap_minus){
2718  meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiChargedHadronsEndcapMinus_BXm2BXm1Filled"];if(meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Filled && meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Filled ->getRootObject())meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Filled->Fill(atan2(py_chargedHadronsEndcapMinus,px_chargedHadronsEndcapMinus));
2719  }
2720  if(pt_sum_NHF_Barrel){
2721  meMETPhiNeutralHadronsBarrel_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiNeutralHadronsBarrel_BXm2BXm1Filled"];if(meMETPhiNeutralHadronsBarrel_BXm2BXm1Filled && meMETPhiNeutralHadronsBarrel_BXm2BXm1Filled ->getRootObject())meMETPhiNeutralHadronsBarrel_BXm2BXm1Filled->Fill(atan2(py_neutralHadronsBarrel,px_neutralHadronsBarrel));
2722  }
2723  if(pt_sum_NHF_Endcap_plus){
2724  meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled"];if(meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled && meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled ->getRootObject())meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled->Fill(atan2(py_neutralHadronsEndcapPlus,px_neutralHadronsEndcapPlus));
2725  }
2726  if(pt_sum_NHF_Endcap_minus){
2727  meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled"];if(meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled && meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled ->getRootObject())meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled->Fill(atan2(py_neutralHadronsEndcapMinus,px_neutralHadronsEndcapMinus));
2728  }
2729  if(pt_sum_PhF_Barrel){
2730  meMETPhiPhotonsBarrel_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiPhotonsBarrel_BXm2BXm1Filled"];if(meMETPhiPhotonsBarrel_BXm2BXm1Filled && meMETPhiPhotonsBarrel_BXm2BXm1Filled ->getRootObject())meMETPhiPhotonsBarrel_BXm2BXm1Filled->Fill(atan2(py_PhotonsBarrel,px_PhotonsBarrel));
2731  }
2732  if(pt_sum_PhF_Endcap_plus){
2733  meMETPhiPhotonsEndcapPlus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiPhotonsEndcapPlus_BXm2BXm1Filled"];if(meMETPhiPhotonsEndcapPlus_BXm2BXm1Filled && meMETPhiPhotonsEndcapPlus_BXm2BXm1Filled ->getRootObject())meMETPhiPhotonsEndcapPlus_BXm2BXm1Filled->Fill(atan2(py_PhotonsEndcapPlus,px_PhotonsEndcapPlus));
2734  }
2735  if(pt_sum_PhF_Endcap_minus){
2736  meMETPhiPhotonsEndcapMinus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiPhotonsEndcapMinus_BXm2BXm1Filled"];if(meMETPhiPhotonsEndcapMinus_BXm2BXm1Filled && meMETPhiPhotonsEndcapMinus_BXm2BXm1Filled ->getRootObject())meMETPhiPhotonsEndcapMinus_BXm2BXm1Filled->Fill(atan2(py_PhotonsEndcapMinus,px_PhotonsEndcapMinus));
2737  }
2738  if(pt_sum_HFH_plus){
2739  meMETPhiHFHadronsPlus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiHFHadronsPlus_BXm2BXm1Filled"];if(meMETPhiHFHadronsPlus_BXm2BXm1Filled && meMETPhiHFHadronsPlus_BXm2BXm1Filled ->getRootObject())meMETPhiHFHadronsPlus_BXm2BXm1Filled->Fill(atan2(py_HFHadronsPlus,px_HFHadronsPlus));
2740  }
2741  if(pt_sum_HFH_minus){
2742  meMETPhiHFHadronsMinus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiHFHadronsMinus_BXm2BXm1Filled"];if(meMETPhiHFHadronsMinus_BXm2BXm1Filled && meMETPhiHFHadronsMinus_BXm2BXm1Filled ->getRootObject())meMETPhiHFHadronsMinus_BXm2BXm1Filled->Fill(atan2(py_HFHadronsMinus,px_HFHadronsMinus));
2743  }
2744  if(pt_sum_HFE_plus){
2745  meMETPhiHFEGammasPlus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiHFEGammasPlus_BXm2BXm1Filled"];if(meMETPhiHFEGammasPlus_BXm2BXm1Filled && meMETPhiHFEGammasPlus_BXm2BXm1Filled ->getRootObject())meMETPhiHFEGammasPlus_BXm2BXm1Filled->Fill(atan2(py_HFEGammasPlus,px_HFEGammasPlus));
2746  }
2747  if(pt_sum_HFE_minus){
2748  meMETPhiHFEGammasMinus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiHFEGammasMinus_BXm2BXm1Filled"];if(meMETPhiHFEGammasMinus_BXm2BXm1Filled && meMETPhiHFEGammasMinus_BXm2BXm1Filled ->getRootObject())meMETPhiHFEGammasMinus_BXm2BXm1Filled->Fill(atan2(py_HFEGammasMinus,px_HFEGammasMinus));
2749  }
2750  }*/
2751  if (techTriggerCase[1]) { //techTriggerResultBx0 && techTriggerResultBxM1 -> previous bunch filled
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  /*if(techTriggerCase[3]){//techTriggerResultBx0 && !techTriggerResultBxM2 && !techTriggerResultBxM1 ->previous two bunches empty
2887  meCHF_Barrel_BXm2BXm1Empty=map_of_MEs[DirName+"/"+"PfChargedHadronEtFractionBarrel_BXm2BXm1Empty"]; if(meCHF_Barrel_BXm2BXm1Empty && meCHF_Barrel_BXm2BXm1Empty->getRootObject()) meCHF_Barrel_BXm2BXm1Empty->Fill(pt_sum_CHF_Barrel/pfmet->sumEt());
2888  meCHF_EndcapPlus_BXm2BXm1Empty=map_of_MEs[DirName+"/"+"PfChargedHadronEtFractionEndcapPlus_BXm2BXm1Empty"]; if(meCHF_EndcapPlus_BXm2BXm1Empty && meCHF_EndcapPlus_BXm2BXm1Empty->getRootObject()) meCHF_EndcapPlus_BXm2BXm1Empty->Fill(pt_sum_CHF_Endcap_plus/pfmet->sumEt());
2889  meCHF_EndcapMinus_BXm2BXm1Empty=map_of_MEs[DirName+"/"+"PfChargedHadronEtFractionEndcapMinus_BXm2BXm1Empty"]; if(meCHF_EndcapMinus_BXm2BXm1Empty && meCHF_EndcapMinus_BXm2BXm1Empty->getRootObject()) meCHF_EndcapMinus_BXm2BXm1Empty->Fill(pt_sum_CHF_Endcap_minus/pfmet->sumEt());
2890  meNHF_Barrel_BXm2BXm1Empty=map_of_MEs[DirName+"/"+"PfNeutralHadronEtFractionBarrel_BXm2BXm1Empty"]; if(meNHF_Barrel_BXm2BXm1Empty && meNHF_Barrel_BXm2BXm1Empty->getRootObject()) meNHF_Barrel_BXm2BXm1Empty->Fill(pt_sum_NHF_Barrel/pfmet->sumEt());
2891  meNHF_EndcapPlus_BXm2BXm1Empty=map_of_MEs[DirName+"/"+"PfNeutralHadronEtFractionEndcapPlus_BXm2BXm1Empty"]; if(meNHF_EndcapPlus_BXm2BXm1Empty && meNHF_EndcapPlus_BXm2BXm1Empty->getRootObject()) meNHF_EndcapPlus_BXm2BXm1Empty->Fill(pt_sum_NHF_Endcap_plus/pfmet->sumEt());
2892  meNHF_EndcapMinus_BXm2BXm1Empty=map_of_MEs[DirName+"/"+"PfNeutralHadronEtFractionEndcapMinus_BXm2BXm1Empty"]; if(meNHF_EndcapMinus_BXm2BXm1Empty && meNHF_EndcapMinus_BXm2BXm1Empty->getRootObject()) meNHF_EndcapMinus_BXm2BXm1Empty->Fill(pt_sum_NHF_Endcap_minus/pfmet->sumEt());
2893  mePhF_Barrel_BXm2BXm1Empty=map_of_MEs[DirName+"/"+"PfPhotonEtFractionBarrel_BXm2BXm1Empty"]; if(mePhF_Barrel_BXm2BXm1Empty && mePhF_Barrel_BXm2BXm1Empty->getRootObject()) mePhF_Barrel_BXm2BXm1Empty->Fill(pt_sum_PhF_Barrel/pfmet->sumEt());
2894  mePhF_EndcapPlus_BXm2BXm1Empty=map_of_MEs[DirName+"/"+"PfPhotonEtFractionEndcapPlus_BXm2BXm1Empty"]; if(mePhF_EndcapPlus_BXm2BXm1Empty && mePhF_EndcapPlus_BXm2BXm1Empty->getRootObject()) mePhF_EndcapPlus_BXm2BXm1Empty->Fill(pt_sum_PhF_Endcap_plus/pfmet->sumEt());
2895  mePhF_EndcapMinus_BXm2BXm1Empty=map_of_MEs[DirName+"/"+"PfPhotonEtFractionEndcapMinus_BXm2BXm1Empty"]; if(mePhF_EndcapMinus_BXm2BXm1Empty && mePhF_EndcapMinus_BXm2BXm1Empty->getRootObject()) mePhF_EndcapMinus_BXm2BXm1Empty->Fill(pt_sum_PhF_Endcap_minus/pfmet->sumEt());
2896  meHFHadF_Plus_BXm2BXm1Empty=map_of_MEs[DirName+"/"+"PfHFHadronEtFractionPlus_BXm2BXm1Empty"]; if(meHFHadF_Plus_BXm2BXm1Empty && meHFHadF_Plus_BXm2BXm1Empty->getRootObject()) meHFHadF_Plus_BXm2BXm1Empty->Fill(pt_sum_HFH_plus/pfmet->sumEt());
2897  meHFHadF_Minus_BXm2BXm1Empty=map_of_MEs[DirName+"/"+"PfHFHadronEtFractionMinus_BXm2BXm1Empty"]; if(meHFHadF_Minus_BXm2BXm1Empty && meHFHadF_Minus_BXm2BXm1Empty->getRootObject()) meHFHadF_Minus_BXm2BXm1Empty->Fill(pt_sum_HFH_minus/pfmet->sumEt());
2898  meHFEMF_Plus_BXm2BXm1Empty=map_of_MEs[DirName+"/"+"PfHFEMEtFractionPlus_BXm2BXm1Empty"]; if(meHFEMF_Plus_BXm2BXm1Empty && meHFEMF_Plus_BXm2BXm1Empty->getRootObject()) meHFEMF_Plus_BXm2BXm1Empty->Fill(pt_sum_HFE_plus/pfmet->sumEt());
2899  meHFEMF_Minus_BXm2BXm1Empty=map_of_MEs[DirName+"/"+"PfHFEMEtFractionMinus_BXm2BXm1Empty"]; if(meHFEMF_Minus_BXm2BXm1Empty && meHFEMF_Minus_BXm2BXm1Empty->getRootObject()) meHFEMF_Minus_BXm2BXm1Empty->Fill(pt_sum_HFE_minus/pfmet->sumEt());
2900  mePhotonEtFraction_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"PfPhotonEtFraction_BXm2BXm1Empty"]; if ( mePhotonEtFraction_BXm2BXm1Empty && mePhotonEtFraction_BXm2BXm1Empty ->getRootObject()) mePhotonEtFraction_BXm2BXm1Empty ->Fill(pfmet->photonEtFraction());
2901  meNeutralHadronEtFraction_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"PfNeutralHadronEtFraction_BXm2BXm1Empty"]; if ( meNeutralHadronEtFraction_BXm2BXm1Empty && meNeutralHadronEtFraction_BXm2BXm1Empty ->getRootObject()) meNeutralHadronEtFraction_BXm2BXm1Empty ->Fill(pfmet->neutralHadronEtFraction());
2902  meChargedHadronEtFraction_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"PfChargedHadronEtFraction_BXm2BXm1Empty"]; if ( meChargedHadronEtFraction_BXm2BXm1Empty && meChargedHadronEtFraction_BXm2BXm1Empty ->getRootObject()) meChargedHadronEtFraction_BXm2BXm1Empty ->Fill(pfmet->chargedHadronEtFraction());
2903  meMET_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"MET_BXm2BXm1Empty"]; if ( meMET_BXm2BXm1Empty && meMET_BXm2BXm1Empty ->getRootObject()) meMET_BXm2BXm1Empty ->Fill(pfmet->pt());
2904  meSumET_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"SumET_BXm2BXm1Empty"]; if ( meSumET_BXm2BXm1Empty && meSumET_BXm2BXm1Empty ->getRootObject()) meSumET_BXm2BXm1Empty ->Fill(pfmet->sumEt());
2905  if(pt_sum_CHF_Barrel){
2906  meMETPhiChargedHadronsBarrel_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiChargedHadronsBarrel_BXm2BXm1Empty"];if(meMETPhiChargedHadronsBarrel_BXm2BXm1Empty && meMETPhiChargedHadronsBarrel_BXm2BXm1Empty ->getRootObject())meMETPhiChargedHadronsBarrel_BXm2BXm1Empty->Fill(atan2(py_chargedHadronsBarrel,px_chargedHadronsBarrel));
2907  }
2908  if(pt_sum_CHF_Endcap_plus){
2909  meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiChargedHadronsEndcapPlus_BXm2BXm1Empty"];if(meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Empty && meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Empty ->getRootObject())meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Empty->Fill(atan2(py_chargedHadronsEndcapPlus,px_chargedHadronsEndcapPlus));
2910  }
2911  if(pt_sum_CHF_Endcap_minus){
2912  meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiChargedHadronsEndcapMinus_BXm2BXm1Empty"];if(meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Empty && meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Empty ->getRootObject())meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Empty->Fill(atan2(py_chargedHadronsEndcapMinus,px_chargedHadronsEndcapMinus));
2913  }
2914  if(pt_sum_NHF_Barrel){
2915  meMETPhiNeutralHadronsBarrel_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiNeutralHadronsBarrel_BXm2BXm1Empty"];if(meMETPhiNeutralHadronsBarrel_BXm2BXm1Empty && meMETPhiNeutralHadronsBarrel_BXm2BXm1Empty ->getRootObject())meMETPhiNeutralHadronsBarrel_BXm2BXm1Empty->Fill(atan2(py_neutralHadronsBarrel,px_neutralHadronsBarrel));
2916  }
2917  if(pt_sum_NHF_Endcap_plus){
2918  meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty"];if(meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty && meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty ->getRootObject())meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty->Fill(atan2(py_neutralHadronsEndcapPlus,px_neutralHadronsEndcapPlus));
2919  }
2920  if(pt_sum_NHF_Endcap_minus){
2921  meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty"];if(meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty && meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty ->getRootObject())meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty->Fill(atan2(py_neutralHadronsEndcapMinus,px_neutralHadronsEndcapMinus));
2922  }
2923  if(pt_sum_PhF_Barrel){
2924  meMETPhiPhotonsBarrel_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiPhotonsBarrel_BXm2BXm1Empty"];if(meMETPhiPhotonsBarrel_BXm2BXm1Empty && meMETPhiPhotonsBarrel_BXm2BXm1Empty ->getRootObject())meMETPhiPhotonsBarrel_BXm2BXm1Empty->Fill(atan2(py_PhotonsBarrel,px_PhotonsBarrel));
2925  }
2926  if(pt_sum_PhF_Endcap_plus){
2927  meMETPhiPhotonsEndcapPlus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiPhotonsEndcapPlus_BXm2BXm1Empty"];if(meMETPhiPhotonsEndcapPlus_BXm2BXm1Empty && meMETPhiPhotonsEndcapPlus_BXm2BXm1Empty ->getRootObject())meMETPhiPhotonsEndcapPlus_BXm2BXm1Empty->Fill(atan2(py_PhotonsEndcapPlus,px_PhotonsEndcapPlus));
2928  }
2929  if(pt_sum_PhF_Endcap_minus){
2930  meMETPhiPhotonsEndcapMinus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiPhotonsEndcapMinus_BXm2BXm1Empty"];if(meMETPhiPhotonsEndcapMinus_BXm2BXm1Empty && meMETPhiPhotonsEndcapMinus_BXm2BXm1Empty ->getRootObject())meMETPhiPhotonsEndcapMinus_BXm2BXm1Empty->Fill(atan2(py_PhotonsEndcapMinus,px_PhotonsEndcapMinus));
2931  }
2932  if(pt_sum_HFH_plus){
2933  meMETPhiHFHadronsPlus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiHFHadronsPlus_BXm2BXm1Empty"];if(meMETPhiHFHadronsPlus_BXm2BXm1Empty && meMETPhiHFHadronsPlus_BXm2BXm1Empty ->getRootObject())meMETPhiHFHadronsPlus_BXm2BXm1Empty->Fill(atan2(py_HFHadronsPlus,px_HFHadronsPlus));
2934  }
2935  if(pt_sum_HFH_minus){
2936  meMETPhiHFHadronsMinus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiHFHadronsMinus_BXm2BXm1Empty"];if(meMETPhiHFHadronsMinus_BXm2BXm1Empty && meMETPhiHFHadronsMinus_BXm2BXm1Empty ->getRootObject())meMETPhiHFHadronsMinus_BXm2BXm1Empty->Fill(atan2(py_HFHadronsMinus,px_HFHadronsMinus));
2937  }
2938  if(pt_sum_HFE_plus){
2939  meMETPhiHFEGammasPlus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiHFEGammasPlus_BXm2BXm1Empty"];if(meMETPhiHFEGammasPlus_BXm2BXm1Empty && meMETPhiHFEGammasPlus_BXm2BXm1Empty ->getRootObject())meMETPhiHFEGammasPlus_BXm2BXm1Empty->Fill(atan2(py_HFEGammasPlus,px_HFEGammasPlus));
2940  }
2941  if(pt_sum_HFE_minus){
2942  meMETPhiHFEGammasMinus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiHFEGammasMinus_BXm2BXm1Empty"];if(meMETPhiHFEGammasMinus_BXm2BXm1Empty && meMETPhiHFEGammasMinus_BXm2BXm1Empty ->getRootObject())meMETPhiHFEGammasMinus_BXm2BXm1Empty->Fill(atan2(py_HFEGammasMinus,px_HFEGammasMinus));
2943  }
2944  }*/
2945  if (techTriggerCase[2]) { //techTriggerResultBx0 && !techTriggerResultBxM1 --> previous bunch empty
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  } //fill candidate plots only then
3080 
3081  // PFMET getters
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  //NPV profiles
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()); //HFHadrons
3183  if (meHFEMEtFraction && meHFEMEtFraction->getRootObject())
3184  meHFEMEtFraction->Fill(patmet->Type7EtFraction());
3185 
3186  //NPV profiles
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()); //HFHadrons
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  //NPV profiles
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  //if (bLumiSecPlot){//get from config level
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  } //check if we only wanna do Z plots
3258 }
bool accept() const
Has at least one path accepted the event?
Analysis-level MET class.
Definition: MET.h:40
double Type6EtFraction() const
Definition: MET.h:142
double HFEMEt() const
Definition: PFMET.h:50
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
double neutralHadronEt() const
Definition: PFMET.h:35
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
double pt() const final
transverse momentum
double hadEtInHF() const
Definition: CaloMET.h:51
double chargedHadronEt() const
Definition: PFMET.h:41
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
double chargedHadronEtFraction() const
Definition: PFMET.h:40
double hadEtInHO() const
Definition: CaloMET.h:47
double ChargedEMEtFraction() const
Definition: MET.h:139
std::vector< T >::const_iterator search(const cond::Time_t &val, const std::vector< T > &container)
Definition: IOVProxy.cc:21
std::vector< ParameterSet > VParameterSet
Definition: ParameterSet.h:34
void bookMonitorElement(std::string, DQMStore::IBooker &, std::map< std::string, MonitorElement *> &, bool, bool, bool)
Definition: METAnalyzer.cc:253
T const * product() const
Definition: Handle.h:70
double neutralHadronEtFraction() const
Definition: PFMET.h:34
virtual MonitorElementData::Scope setScope(MonitorElementData::Scope newscope)
Definition: DQMStore.cc:50
double etFractionHadronic() const
Definition: CaloMET.h:41
double HFHadronEtFraction() const
Definition: PFMET.h:46
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
double sumEt() const
Definition: MET.h:56
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
double HFHadronEt() const
Definition: PFMET.h:47
double electronEt() const
Definition: PFMET.h:38
double emEtInEE() const
Definition: CaloMET.h:55
double Type7EtFraction() const
Definition: MET.h:143
Jet ID object.
Definition: JetID.h:16
double correction(const LorentzVector &fJet) const
get correction using Jet information only
Definition: JetCorrector.h:46
assert(be >=bs)
#define LogTrace(id)
AlgorithmMap::const_iterator CItAlgo
iterators through map containing the algorithms
double muonEt() const
Definition: PFMET.h:44
double HFEMEtFraction() const
Definition: PFMET.h:49
double emEtFraction() const
Definition: CaloMET.h:43
void makeRatePlot(std::string, double)
int iEvent
Definition: GenABIO.cc:224
void analyze(const edm::Event &, const edm::EventSetup &) override
Get the analysis.
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:399
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
Definition: MET.h:41
void dqmEndRun(const edm::Run &iRun, const edm::EventSetup &iSetup) override
Finish up a run.
T sqrt(T t)
Definition: SSEVec.h:19
void fillMonitorElement(const edm::Event &, std::string, std::string, const reco::MET &, const pat::MET *, const reco::PFMET *, const reco::CaloMET *, const reco::Candidate::PolarLorentzVector &, std::map< std::string, MonitorElement *> &, bool, bool, std::vector< bool >, std::vector< bool >)
double emEtInHF() const
Definition: CaloMET.h:57
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
const TechnicalTriggerWord & technicalTriggerWord(int bxInEventValue) const
double emEtInEB() const
Definition: CaloMET.h:53
UseScope< MonitorElementData::Scope::LUMI > UseLumiScope
Definition: DQMStore.h:540
double hadEtInHE() const
Definition: CaloMET.h:49
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
PF Jet selector for pat::Jets.
#define M_PI
double photonEt() const
Definition: PFMET.h:32
Jet selector for pat::Jets and for CaloJets.
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
Initialize run-based parameters.
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
static std::string const triggerResults("TriggerResults")
virtual TH1F * getTH1F() const
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:212
double NeutralHadEtFraction() const
Definition: MET.h:138
double hadEtInHB() const
Definition: CaloMET.h:45
bool isValid() const
Definition: HandleBase.h:70
METAnalyzer(const edm::ParameterSet &)
Constructor.
Definition: METAnalyzer.cc:42
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:41
fixed size matrix
double ChargedHadEtFraction() const
Definition: MET.h:140
HLT enums.
double photonEtFraction() const
Definition: PFMET.h:31
static int position[264][3]
Definition: ReadPGInfo.cc:289
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Inizialize parameters for histo binning.
Definition: METAnalyzer.cc:198
~METAnalyzer() override
Destructor.
Definition: METAnalyzer.cc:189
TObject * getRootObject() const override
double NeutralEMFraction() const
Definition: MET.h:137
Log< level::Warning, false > LogWarning
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
void bookMESet(std::string, DQMStore::IBooker &, std::map< std::string, MonitorElement *> &)
Definition: METAnalyzer.cc:226
fd
Definition: ztee.py:136
Definition: Run.h:45
void fillMESet(const edm::Event &, std::string, const reco::MET &, const pat::MET *, const reco::PFMET *, const reco::CaloMET *, const reco::Candidate::PolarLorentzVector &, std::map< std::string, MonitorElement *> &, std::vector< bool >, std::vector< bool >)
double MuonEtFraction() const
Definition: MET.h:141
#define LogDebug(id)
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: Candidate.h:38