CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
186 // ***********************************************************
188  for (std::vector<GenericTriggerEventFlag*>::const_iterator it = triggerFolderEventFlag_.begin();
189  it != triggerFolderEventFlag_.end();
190  it++) {
191  delete *it;
192  }
193  delete DCSFilter_;
194 }
195 
197  std::string DirName = FolderName_ + metCollectionLabel_.label();
198  ibooker.setCurrentFolder(DirName);
199 
200  if (!folderNames_.empty()) {
201  folderNames_.clear();
202  }
203  if (runcosmics_) {
204  folderNames_.push_back("Uncleaned");
205  } else {
206  if (!onlyCleaned_) {
207  folderNames_.push_back("Uncleaned");
208  }
209  folderNames_.push_back("Cleaned");
210  folderNames_.push_back("DiJet");
211  if (!isMiniAODMet_) {
212  folderNames_.push_back("ZJets");
213  }
214  }
215  for (std::vector<std::string>::const_iterator ic = folderNames_.begin(); ic != folderNames_.end(); ic++) {
216  bookMESet(DirName + "/" + *ic, ibooker, map_dijet_MEs);
217  }
218 }
219 
220 // ***********************************************************
222  DQMStore::IBooker& ibooker,
223  std::map<std::string, MonitorElement*>& map_of_MEs) {
224  bool bLumiSecPlot = fill_met_high_level_histo;
225  //bool inTriggerPathPlots=false;
226  bool fillPFCandidatePlots = false;
227  bool fillZPlots = false;
228 
229  if (DirName.find("Cleaned") != std::string::npos) {
230  fillPFCandidatePlots = true;
231  bookMonitorElement(DirName, ibooker, map_of_MEs, bLumiSecPlot, fillPFCandidatePlots, fillZPlots);
232  //for (unsigned int i = 0; i<triggerFolderEventFlag_.size(); i++) {
233  //fillPFCandidatePlots=false;
234  //if (triggerFolderEventFlag_[i]->on()) {
235  //bookMonitorElement(DirName+"/"+triggerFolderLabels_[i],ibooker,map_of_MEs,bLumiSecPlot,fillPFCandidatePlots,fillZPlots);
236  //}
237  //}
238  } else if (DirName.find("ZJets") != std::string::npos) {
239  fillPFCandidatePlots = false;
240  fillZPlots = true;
241  bookMonitorElement(DirName, ibooker, map_of_MEs, bLumiSecPlot, fillPFCandidatePlots, fillZPlots);
242  } else {
243  bookMonitorElement(DirName, ibooker, map_of_MEs, bLumiSecPlot, fillPFCandidatePlots, fillZPlots);
244  }
245 }
246 
247 // ***********************************************************
249  DQMStore::IBooker& ibooker,
250  std::map<std::string, MonitorElement*>& map_of_MEs,
251  bool bLumiSecPlot = false,
252  bool fillPFCandPlots = false,
253  bool fillZPlots = false) {
254  if (verbose_)
255  std::cout << "bookMonitorElement " << DirName << std::endl;
256 
257  ibooker.setCurrentFolder(DirName);
258  if (fillZPlots) {
259  if (isCaloMet_) {
260  meZJets_u_par = ibooker.book1D("u_parallel_Z_inc", "u_parallel_Z_inc", 50, -1000., 75);
261  } else {
262  meZJets_u_par = ibooker.book1D("u_parallel_Z_inc", "u_parallel_Z_inc", 50, -800., 75);
263  }
264  meZJets_u_par_ZPt_0_15 = ibooker.book1D("u_parallel_ZPt_0_15", "u_parallel_ZPt_0_15", 50, -100, 75);
265  meZJets_u_par_ZPt_15_30 = ibooker.book1D("u_parallel_ZPt_15_30", "u_parallel_ZPt_15_30", 50, -100, 50);
266  meZJets_u_par_ZPt_30_55 = ibooker.book1D("u_parallel_ZPt_30_55", "u_parallel_ZPt_30_55", 50, -175, 50);
267  meZJets_u_par_ZPt_55_75 = ibooker.book1D("u_parallel_ZPt_55_75", "u_parallel_ZPt_55_75", 50, -175, 0);
268  meZJets_u_par_ZPt_75_150 = ibooker.book1D("u_parallel_ZPt_75_150", "u_parallel_ZPt_75_150", 50, -300, 0);
269  if (isCaloMet_) {
270  meZJets_u_par_ZPt_150_290 = ibooker.book1D("u_parallel_ZPt_150_290", "u_parallel_ZPt_150_290", 50, -750, -100);
271  } else {
272  meZJets_u_par_ZPt_150_290 = ibooker.book1D("u_parallel_ZPt_150_290", "u_parallel_ZPt_150_290", 50, -450, -50);
273  }
274  if (isCaloMet_) {
275  meZJets_u_par_ZPt_290 = ibooker.book1D("u_parallel_ZPt_290", "u_parallel_ZPt_290", 50, -1000., -350.);
276  } else {
277  meZJets_u_par_ZPt_290 = ibooker.book1D("u_parallel_ZPt_290", "u_parallel_ZPt_290", 50, -750., -150.);
278  }
279  meZJets_u_perp = ibooker.book1D("u_perp_Z_inc", "u_perp_Z_inc", 50, -85., 85.);
280  meZJets_u_perp_ZPt_0_15 = ibooker.book1D("u_perp_ZPt_0_15", "u_perp_ZPt_0_15", 50, -85., 85.);
281  meZJets_u_perp_ZPt_15_30 = ibooker.book1D("u_perp_ZPt_15_30", "u_perp_ZPt_15_30", 50, -85., 85.);
282  meZJets_u_perp_ZPt_30_55 = ibooker.book1D("u_perp_ZPt_30_55", "u_perp_ZPt_30_55", 50, -85., 85.);
283  meZJets_u_perp_ZPt_55_75 = ibooker.book1D("u_perp_ZPt_55_75", "u_perp_ZPt_55_75", 50, -85., 85.);
284  meZJets_u_perp_ZPt_75_150 = ibooker.book1D("u_perp_ZPt_75_150", "u_perp_ZPt_75_150", 50, -85., 85.);
285  meZJets_u_perp_ZPt_150_290 = ibooker.book1D("u_perp_ZPt_150_290", "u_perp_ZPt_150_290", 50, -85., 85.);
286  meZJets_u_perp_ZPt_290 = ibooker.book1D("u_perp_ZPt_290", "u_perp_ZPt_290", 50, -85., 85.);
287 
288  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_Z_inc", meZJets_u_par));
289  map_of_MEs.insert(
290  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_0_15", meZJets_u_par_ZPt_0_15));
291  map_of_MEs.insert(
292  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_15_30", meZJets_u_par_ZPt_15_30));
293  map_of_MEs.insert(
294  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_30_55", meZJets_u_par_ZPt_30_55));
295  map_of_MEs.insert(
296  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_55_75", meZJets_u_par_ZPt_55_75));
297  map_of_MEs.insert(
298  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_75_150", meZJets_u_par_ZPt_75_150));
299  map_of_MEs.insert(
300  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_150_290", meZJets_u_par_ZPt_150_290));
301  map_of_MEs.insert(
302  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_parallel_ZPt_290", meZJets_u_par_ZPt_290));
303 
304  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_Z_inc", meZJets_u_perp));
305  map_of_MEs.insert(
306  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_0_15", meZJets_u_perp_ZPt_0_15));
307  map_of_MEs.insert(
308  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_15_30", meZJets_u_perp_ZPt_15_30));
309  map_of_MEs.insert(
310  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_30_55", meZJets_u_perp_ZPt_30_55));
311  map_of_MEs.insert(
312  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_55_75", meZJets_u_perp_ZPt_55_75));
313  map_of_MEs.insert(
314  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_75_150", meZJets_u_perp_ZPt_75_150));
315  map_of_MEs.insert(
316  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_150_290", meZJets_u_perp_ZPt_150_290));
317  map_of_MEs.insert(
318  std::pair<std::string, MonitorElement*>(DirName + "/" + "u_perp_ZPt_290", meZJets_u_perp_ZPt_290));
319  }
320 
321  if (!fillZPlots) {
322  hTrigger = ibooker.book1D("triggerResults", "triggerResults", 500, 0, 500);
323  for (unsigned int i = 0; i < allTriggerNames_.size(); i++) {
324  if (i < (unsigned int)hTrigger->getNbinsX()) {
325  if (!hTriggerLabelsIsSet_) {
326  hTrigger->setBinLabel(i + 1, allTriggerNames_[i]);
327  }
328  }
329  }
330  hTriggerLabelsIsSet_ = true;
331 
332  hMEx = ibooker.book1D("MEx", "MEx", 200, -500, 500);
333  hMEy = ibooker.book1D("MEy", "MEy", 200, -500, 500);
334  hMET = ibooker.book1D("MET", "MET", 200, 0, 1000);
335  hMET_2 = ibooker.book1D("MET_2", "MET Range 2", 200, 0, 2000);
336  hSumET = ibooker.book1D("SumET", "SumET", 400, 0, 4000);
337  hMETSig = ibooker.book1D("METSig", "METSig", 51, 0, 51);
338  hMETSig->setLumiFlag();
339  hMETPhi = ibooker.book1D("METPhi", "METPhi", 60, -M_PI, M_PI);
340  hMET_logx = ibooker.book1D("MET_logx", "MET_logx", 40, -1, 9);
341  hSumET_logx = ibooker.book1D("SumET_logx", "SumET_logx", 40, -1, 9);
342 
343  hMEx->setAxisTitle("MEx [GeV]", 1);
344  hMEy->setAxisTitle("MEy [GeV]", 1);
345  hMET->setAxisTitle("MET [GeV]", 1);
346  hMET_2->setAxisTitle("MET [GeV]", 1);
347  hSumET->setAxisTitle("SumET [GeV]", 1);
348  hMETSig->setAxisTitle("METSig", 1);
349  hMETPhi->setAxisTitle("METPhi [rad]", 1);
350  hMET_logx->setAxisTitle("log(MET) [GeV]", 1);
351  hSumET_logx->setAxisTitle("log(SumET) [GeV]", 1);
352 
353  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "triggerResults", hTrigger));
354  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MEx", hMEx));
355  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MEy", hMEy));
356  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET", hMET));
357  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_2", hMET_2));
358  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET", hSumET));
359  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METSig", hMETSig));
360  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhi", hMETPhi));
361  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_logx", hMET_logx));
362  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET_logx", hSumET_logx));
363 
364  hMET_HBHENoiseFilter = ibooker.book1D("MET_HBHENoiseFilter", "MET_HBHENoiseFiltered", 200, 0, 1000);
365  hMET_CSCTightHaloFilter = ibooker.book1D("MET_CSCTightHaloFilter", "MET_CSCTightHaloFiltered", 200, 0, 1000);
366  hMET_eeBadScFilter = ibooker.book1D("MET_eeBadScFilter", "MET_eeBadScFiltered", 200, 0, 1000);
367  hMET_HBHEIsoNoiseFilter = ibooker.book1D("MET_HBHEIsoNoiseFilter", "MET_HBHEIsoNoiseFiltered", 200, 0, 1000);
368  hMET_CSCTightHalo2015Filter =
369  ibooker.book1D("MET_CSCTightHalo2015Filter", "MET_CSCTightHalo2015Filtered", 200, 0, 1000);
370  hMET_EcalDeadCellTriggerFilter =
371  ibooker.book1D("MET_EcalDeadCellTriggerFilter", "MET_EcalDeadCellTriggerFiltered", 200, 0, 1000);
372  hMET_EcalDeadCellBoundaryFilter =
373  ibooker.book1D("MET_EcalDeadCellBoundaryFilter", "MET_EcalDeadCellBoundaryFiltered", 200, 0, 1000);
374  hMET_HcalStripHaloFilter = ibooker.book1D("MET_HcalStripHaloFilter", "MET_HcalStripHaloFiltered", 200, 0, 1000);
375 
376  map_of_MEs.insert(
377  std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_HBHENoiseFilter", hMET_HBHENoiseFilter));
378  map_of_MEs.insert(
379  std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_CSCTightHaloFilter", hMET_CSCTightHaloFilter));
380  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_eeBadScFilter", hMET_eeBadScFilter));
381  map_of_MEs.insert(
382  std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_HBHEIsoNoiseFilter", hMET_HBHEIsoNoiseFilter));
383  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_CSCTightHalo2015Filter",
384  hMET_CSCTightHalo2015Filter));
385  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_EcalDeadCellTriggerFilter",
386  hMET_EcalDeadCellTriggerFilter));
387  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_EcalDeadCellBoundaryFilter",
388  hMET_EcalDeadCellBoundaryFilter));
389  map_of_MEs.insert(
390  std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_HcalStripHaloFilter", hMET_HcalStripHaloFilter));
391 
392  // Book NPV profiles --> would some of these profiles be interesting for other MET types too
393  //----------------------------------------------------------------------------
394  meMEx_profile = ibooker.bookProfile("MEx_profile", "met.px()", nbinsPV_, nPVMin_, nPVMax_, 200, -500, 500);
395  meMEy_profile = ibooker.bookProfile("MEy_profile", "met.py()", nbinsPV_, nPVMin_, nPVMax_, 200, -500, 500);
396  meMET_profile = ibooker.bookProfile("MET_profile", "met.pt()", nbinsPV_, nPVMin_, nPVMax_, 200, 0, 1000);
397  meSumET_profile = ibooker.bookProfile("SumET_profile", "met.sumEt()", nbinsPV_, nPVMin_, nPVMax_, 400, 0, 4000);
398  // Set NPV profiles x-axis title
399  //----------------------------------------------------------------------------
400  meMEx_profile->setAxisTitle("nvtx", 1);
401  meMEy_profile->setAxisTitle("nvtx", 1);
402  meMET_profile->setAxisTitle("nvtx", 1);
403  meSumET_profile->setAxisTitle("nvtx", 1);
404 
405  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MEx_profile", meMEx_profile));
406  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MEy_profile", meMEy_profile));
407  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_profile", meMET_profile));
408  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET_profile", meSumET_profile));
409 
410  if (isCaloMet_) {
411  hCaloHadEtInHB = ibooker.book1D("CaloHadEtInHB", "CaloHadEtInHB", 50, 0, 2000);
412  hCaloHadEtInHB->setAxisTitle("Had Et [GeV]", 1);
413  hCaloHadEtInHO = ibooker.book1D("CaloHadEtInHO", "CaloHadEtInHO", 25, 0, 500);
414  hCaloHadEtInHO->setAxisTitle("Had Et [GeV]", 1);
415  hCaloHadEtInHE = ibooker.book1D("CaloHadEtInHE", "CaloHadEtInHE", 50, 0, 2000);
416  hCaloHadEtInHE->setAxisTitle("Had Et [GeV]", 1);
417  hCaloHadEtInHF = ibooker.book1D("CaloHadEtInHF", "CaloHadEtInHF", 50, 0, 1000);
418  hCaloHadEtInHF->setAxisTitle("Had Et [GeV]", 1);
419  hCaloEmEtInHF = ibooker.book1D("CaloEmEtInHF", "CaloEmEtInHF", 25, 0, 500);
420  hCaloEmEtInHF->setAxisTitle("EM Et [GeV]", 1);
421  hCaloEmEtInEE = ibooker.book1D("CaloEmEtInEE", "CaloEmEtInEE", 50, 0, 1000);
422  hCaloEmEtInEE->setAxisTitle("EM Et [GeV]", 1);
423  hCaloEmEtInEB = ibooker.book1D("CaloEmEtInEB", "CaloEmEtInEB", 50, 0, 2000);
424  hCaloEmEtInEB->setAxisTitle("EM Et [GeV]", 1);
425 
426  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloHadEtInHO", hCaloHadEtInHO));
427  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloHadEtInHF", hCaloHadEtInHF));
428  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloHadEtInHE", hCaloHadEtInHE));
429  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloHadEtInHB", hCaloHadEtInHB));
430  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtInHF", hCaloEmEtInHF));
431  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtInEE", hCaloEmEtInEE));
432  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtInEB", hCaloEmEtInEB));
433 
434  hCaloMETPhi020 = ibooker.book1D("CaloMETPhi020", "CaloMETPhi020", 60, -M_PI, M_PI);
435  hCaloMETPhi020->setAxisTitle("METPhi [rad] (MET>20 GeV)", 1);
436 
437  hCaloEtFractionHadronic = ibooker.book1D("CaloEtFractionHadronic", "CaloEtFractionHadronic", 50, 0, 1);
438  hCaloEtFractionHadronic->setAxisTitle("Hadronic Et Fraction", 1);
439  hCaloEmEtFraction = ibooker.book1D("CaloEmEtFraction", "CaloEmEtFraction", 50, 0, 1);
440  hCaloEmEtFraction->setAxisTitle("EM Et Fraction", 1);
441 
442  hCaloEmEtFraction020 = ibooker.book1D("CaloEmEtFraction020", "CaloEmEtFraction020", 50, 0, 1);
443  hCaloEmEtFraction020->setAxisTitle("EM Et Fraction (MET>20 GeV)", 1);
444 
445  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloMETPhi020", hCaloMETPhi020));
446  map_of_MEs.insert(
447  std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEtFractionHadronic", hCaloEtFractionHadronic));
448  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtFraction", hCaloEmEtFraction));
449  map_of_MEs.insert(
450  std::pair<std::string, MonitorElement*>(DirName + "/" + "CaloEmEtFraction020", hCaloEmEtFraction020));
451  }
452 
453  if (isPFMet_) {
454  if (fillPFCandPlots &&
455  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
456 
457  meCHF_Barrel = ibooker.book1D("PfChargedHadronEtFractionBarrel", "chargedHadronEtFractionBarrel", 50, 0, 1);
458  meCHF_EndcapPlus =
459  ibooker.book1D("PfChargedHadronEtFractionEndcapPlus", "chargedHadronEtFractionEndcapPlus", 50, 0, 1);
460  meCHF_EndcapMinus =
461  ibooker.book1D("PfChargedHadronEtFractionEndcapMinus", "chargedHadronEtFractionEndcapMinus", 50, 0, 1);
462  meCHF_Barrel_BXm1Empty = ibooker.book1D(
463  "PfChargedHadronEtFractionBarrel_BXm1Empty", "chargedHadronEtFractionBarrel prev empty bunch", 50, 0, 1);
464  meCHF_EndcapPlus_BXm1Empty = ibooker.book1D("PfChargedHadronEtFractionEndcapPlus_BXm1Empty",
465  "chargedHadronEtFractionEndcapPlus prev empty bunch",
466  50,
467  0,
468  1);
469  meCHF_EndcapMinus_BXm1Empty = ibooker.book1D("PfChargedHadronEtFractionEndcapMinus_BXm1Empty",
470  "chargedHadronEtFractionEndcapMinus prev empty bunch",
471  50,
472  0,
473  1);
474  meCHF_Barrel_BXm1Filled = ibooker.book1D("PfChargedHadronEtFractionBarrel_BXm1Filled",
475  "chargedHadronEtFractionBarrel prev filled 2 bunches",
476  50,
477  0,
478  1);
479  meCHF_EndcapPlus_BXm1Filled = ibooker.book1D("PfChargedHadronEtFractionEndcapPlus_BXm1Filled",
480  "chargedHadronEtFractionEndcapPlus prev filled bunch",
481  50,
482  0,
483  1);
484  meCHF_EndcapMinus_BXm1Filled = ibooker.book1D("PfChargedHadronEtFractionEndcapMinus_BXm1Filled",
485  "chargedHadronEtFractionEndcapMinus prev filled bunch",
486  50,
487  0,
488  1);
489 
490  map_of_MEs.insert(
491  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEtFractionBarrel", meCHF_Barrel));
492  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEtFractionEndcapPlus",
493  meCHF_EndcapPlus));
494  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
495  DirName + "/" + "PfChargedHadronEtFractionEndcapMinus", meCHF_EndcapMinus));
496  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
497  DirName + "/" + "PfChargedHadronEtFractionBarrel_BXm1Empty", meCHF_Barrel_BXm1Empty));
498  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
499  DirName + "/" + "PfChargedHadronEtFractionEndcapPlus_BXm1Empty", meCHF_EndcapPlus_BXm1Empty));
500  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
501  DirName + "/" + "PfChargedHadronEtFractionEndcapMinus_BXm1Empty", meCHF_EndcapMinus_BXm1Empty));
502  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfChargedHadronEtFractionBarrel_BXm2BXm1Empty", meCHF_Barrel_BXm2BXm1Empty));
503  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfChargedHadronEtFractionEndcapPlus_BXm2BXm1Empty", meCHF_EndcapPlus_BXm2BXm1Empty));
504  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfChargedHadronEtFractionEndcapMinus_BXm2BXm1Empty", meCHF_EndcapMinus_BXm2BXm1Empty));
505  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
506  DirName + "/" + "PfChargedHadronEtFractionBarrel_BXm1Filled", meCHF_Barrel_BXm1Filled));
507  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
508  DirName + "/" + "PfChargedHadronEtFractionEndcapPlus_BXm1Filled", meCHF_EndcapPlus_BXm1Filled));
509  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
510  DirName + "/" + "PfChargedHadronEtFractionEndcapMinus_BXm1Filled", meCHF_EndcapMinus_BXm1Filled));
511  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfChargedHadronEtFractionBarrel_BXm2BXm1Filled", meCHF_Barrel_BXm2BXm1Filled));
512  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfChargedHadronEtFractionEndcapPlus_BXm2BXm1Filled", meCHF_EndcapPlus_BXm2BXm1Filled));
513  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfChargedHadronEtFractionEndcapMinus_BXm2BXm1Filled", meCHF_EndcapMinus_BXm2BXm1Filled));
514 
515  meNHF_Barrel = ibooker.book1D("PfNeutralHadronEtFractionBarrel", "neutralHadronEtFractionBarrel", 50, 0, 1);
516  meNHF_EndcapPlus =
517  ibooker.book1D("PfNeutralHadronEtFractionEndcapPlus", "neutralHadronEtFractionEndcapPlus", 50, 0, 1);
518  meNHF_EndcapMinus =
519  ibooker.book1D("PfNeutralHadronEtFractionEndcapMinus", "neutralHadronEtFractionEndcapMinus", 50, 0, 1);
520  meNHF_Barrel_BXm1Empty = ibooker.book1D(
521  "PfNeutralHadronEtFractionBarrel_BXm1Empty", "neutralHadronEtFractionBarrel prev empty bunch", 50, 0, 1);
522  meNHF_EndcapPlus_BXm1Empty = ibooker.book1D("PfNeutralHadronEtFractionEndcapPlus_BXm1Empty",
523  "neutralHadronEtFractionEndcapPlus prev empty bunch",
524  50,
525  0,
526  1);
527  meNHF_EndcapMinus_BXm1Empty = ibooker.book1D("PfNeutralHadronEtFractionEndcapMinus_BXm1Empty",
528  "neutralHadronEtFractionEndcapMinus prev empty bunch",
529  50,
530  0,
531  1);
532  //meNHF_Barrel_BXm2BXm1Empty = ibooker.book1D("PfNeutralHadronEtFractionBarrel_BXm2BXm1Empty", "neutralHadronEtFractionBarrel prev empty 2 bunches", 50, 0, 1);
533  //meNHF_EndcapPlus_BXm2BXm1Empty = ibooker.book1D("PfNeutralHadronEtFractionEndcapPlus_BXm2BXm1Empty", "neutralHadronEtFractionEndcapPlus prev empty 2 bunches", 50, 0, 1);
534  //meNHF_EndcapMinus_BXm2BXm1Empty = ibooker.book1D("PfNeutralHadronEtFractionEndcapMinus_BXm2BXm1Empty", "neutralHadronEtFractionEndcapMinus prev empty 2 bunches", 50, 0, 1);
535  meNHF_Barrel_BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionBarrel_BXm1Filled",
536  "neutralHadronEtFractionBarrel prev filled 2 bunches",
537  50,
538  0,
539  1);
540  meNHF_EndcapPlus_BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionEndcapPlus_BXm1Filled",
541  "neutralHadronEtFractionEndcapPlus prev filled bunch",
542  50,
543  0,
544  1);
545  meNHF_EndcapMinus_BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionEndcapMinus_BXm1Filled",
546  "neutralHadronEtFractionEndcapMinus prev filled bunch",
547  50,
548  0,
549  1);
550  //meNHF_Barrel_BXm2BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionBarrel_BXm2BXm1Filled", "neutralHadronEtFractionBarrel prev filled 2 bunches", 50, 0, 1);
551  //meNHF_EndcapPlus_BXm2BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionEndcapPlus_BXm2BXm1Filled", "neutralHadronEtFractionEndcapPlus prev filled 2 bunches", 50, 0, 1);
552  //meNHF_EndcapMinus_BXm2BXm1Filled = ibooker.book1D("PfNeutralHadronEtFractionEndcapMinus_BXm2BXm1Filled", "neutralHadronEtFractionEndcapMinus prev filled 2 bunches", 50, 0, 1);
553 
554  map_of_MEs.insert(
555  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEtFractionBarrel", meNHF_Barrel));
556  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus",
557  meNHF_EndcapPlus));
558  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
559  DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus", meNHF_EndcapMinus));
560  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
561  DirName + "/" + "PfNeutralHadronEtFractionBarrel_BXm1Empty", meNHF_Barrel_BXm1Empty));
562  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
563  DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus_BXm1Empty", meNHF_EndcapPlus_BXm1Empty));
564  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
565  DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus_BXm1Empty", meNHF_EndcapMinus_BXm1Empty));
566  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfNeutralHadronEtFractionBarrel_BXm2BXm1Empty", meNHF_Barrel_BXm2BXm1Empty));
567  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfNeutralHadronEtFractionEndcapPlus_BXm2BXm1Empty", meNHF_EndcapPlus_BXm2BXm1Empty));
568  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfNeutralHadronEtFractionEndcapMinus_BXm2BXm1Empty", meNHF_EndcapMinus_BXm2BXm1Empty));
569  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
570  DirName + "/" + "PfNeutralHadronEtFractionBarrel_BXm1Filled", meNHF_Barrel_BXm1Filled));
571  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
572  DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus_BXm1Filled", meNHF_EndcapPlus_BXm1Filled));
573  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
574  DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus_BXm1Filled", meNHF_EndcapMinus_BXm1Filled));
575  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfNeutralHadronEtFractionBarrel_BXm2BXm1Filled", meNHF_Barrel_BXm2BXm1Filled));
576  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfNeutralHadronEtFractionEndcapPlus_BXm2BXm1Filled", meNHF_EndcapPlus_BXm2BXm1Filled));
577  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfNeutralHadronEtFractionEndcapMinus_BXm2BXm1Filled", meNHF_EndcapMinus_BXm2BXm1Filled));
578 
579  mePhF_Barrel = ibooker.book1D("PfPhotonEtFractionBarrel", "photonEtFractionBarrel", 50, 0, 1);
580  mePhF_EndcapPlus = ibooker.book1D("PfPhotonEtFractionEndcapPlus", "photonEtFractionEndcapPlus", 50, 0, 1);
581  mePhF_EndcapMinus = ibooker.book1D("PfPhotonEtFractionEndcapMinus", "photonEtFractionEndcapMinus", 50, 0, 1);
582  mePhF_Barrel_BXm1Empty =
583  ibooker.book1D("PfPhotonEtFractionBarrel_BXm1Empty", "photonEtFractionBarrel prev empty bunch", 50, 0, 1);
584  mePhF_EndcapPlus_BXm1Empty = ibooker.book1D(
585  "PfPhotonEtFractionEndcapPlus_BXm1Empty", "photonEtFractionEndcapPlus prev empty bunch", 50, 0, 1);
586  mePhF_EndcapMinus_BXm1Empty = ibooker.book1D(
587  "PfPhotonEtFractionEndcapMinus_BXm1Empty", "photonEtFractionEndcapMinus prev empty bunch", 50, 0, 1);
588  //mePhF_Barrel_BXm2BXm1Empty = ibooker.book1D("PfPhotonEtFractionBarrel_BXm2BXm1Empty", "photonEtFractionBarrel prev empty 2 bunches", 50, 0, 1);
589  //mePhF_EndcapPlus_BXm2BXm1Empty = ibooker.book1D("PfPhotonEtFractionEndcapPlus_BXm2BXm1Empty", "photonEtFractionEndcapPlus prev empty 2 bunches", 50, 0, 1);
590  //mePhF_EndcapMinus_BXm2BXm1Empty = ibooker.book1D("PfPhotonEtFractionEndcapMinus_BXm2BXm1Empty", "photonEtFractionEndcapMinus prev empty 2 bunches", 50, 0, 1);
591  mePhF_Barrel_BXm1Filled = ibooker.book1D(
592  "PfPhotonEtFractionBarrel_BXm1Filled", "photonEtFractionBarrel prev filled 2 bunches", 50, 0, 1);
593  mePhF_EndcapPlus_BXm1Filled = ibooker.book1D(
594  "PfPhotonEtFractionEndcapPlus_BXm1Filled", "photonEtFractionEndcapPlus prev filled bunch", 50, 0, 1);
595  mePhF_EndcapMinus_BXm1Filled = ibooker.book1D(
596  "PfPhotonEtFractionEndcapMinus_BXm1Filled", "photonEtFractionEndcapMinus prev filled bunch", 50, 0, 1);
597  //mePhF_Barrel_BXm2BXm1Filled = ibooker.book1D("PfPhotonEtFractionBarrel_BXm2BXm1Filled", "photonEtFractionBarrel prev filled 2 bunches", 50, 0, 1);
598  //mePhF_EndcapPlus_BXm2BXm1Filled = ibooker.book1D("PfPhotonEtFractionEndcapPlus_BXm2BXm1Filled", "photonEtFractionEndcapPlus prev filled 2 bunches", 50, 0, 1);
599  //mePhF_EndcapMinus_BXm2BXm1Filled = ibooker.book1D("PfPhotonEtFractionEndcapMinus_BXm2BXm1Filled", "photonEtFractionEndcapMinus prev filled 2 bunches", 50, 0, 1);
600 
601  map_of_MEs.insert(
602  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionBarrel", mePhF_Barrel));
603  map_of_MEs.insert(
604  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionEndcapPlus", mePhF_EndcapPlus));
605  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionEndcapMinus",
606  mePhF_EndcapMinus));
607  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionBarrel_BXm1Empty",
608  mePhF_Barrel_BXm1Empty));
609  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
610  DirName + "/" + "PfPhotonEtFractionEndcapPlus_BXm1Empty", mePhF_EndcapPlus_BXm1Empty));
611  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
612  DirName + "/" + "PfPhotonEtFractionEndcapMinus_BXm1Empty", mePhF_EndcapMinus_BXm1Empty));
613  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfPhotonEtFractionBarrel_BXm2BXm1Empty", mePhF_Barrel_BXm2BXm1Empty));
614  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfPhotonEtFractionEndcapPlus_BXm2BXm1Empty", mePhF_EndcapPlus_BXm2BXm1Empty));
615  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfPhotonEtFractionEndcapMinus_BXm2BXm1Empty", mePhF_EndcapMinus_BXm2BXm1Empty));
616  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFractionBarrel_BXm1Filled",
617  mePhF_Barrel_BXm1Filled));
618  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
619  DirName + "/" + "PfPhotonEtFractionEndcapPlus_BXm1Filled", mePhF_EndcapPlus_BXm1Filled));
620  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
621  DirName + "/" + "PfPhotonEtFractionEndcapMinus_BXm1Filled", mePhF_EndcapMinus_BXm1Filled));
622  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfPhotonEtFractionBarrel_BXm2BXm1Filled", mePhF_Barrel_BXm2BXm1Filled));
623  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfPhotonEtFractionEndcapPlus_BXm2BXm1Filled", mePhF_EndcapPlus_BXm2BXm1Filled));
624  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfPhotonEtFractionEndcapMinus_BXm2BXm1Filled", mePhF_EndcapMinus_BXm2BXm1Filled));
625 
626  meHFHadF_Plus = ibooker.book1D("PfHFHadronEtFractionPlus", "HFHadronEtFractionPlus", 50, 0, 1);
627  meHFHadF_Minus = ibooker.book1D("PfHFHadronEtFractionMinus", "HFHadronEtFractionMinus", 50, 0, 1);
628  meHFHadF_Plus_BXm1Empty =
629  ibooker.book1D("PfHFHadronEtFractionPlus_BXm1Empty", "HFHadronEtFractionPlus prev empty bunch", 50, 0, 1);
630  meHFHadF_Minus_BXm1Empty =
631  ibooker.book1D("PfHFHadronEtFractionMinus_BXm1Empty", "HFHadronEtFractionMinus prev empty bunch", 50, 0, 1);
632  //meHFHadF_Plus_BXm2BXm1Empty = ibooker.book1D("PfHFHadronEtFractionPlus_BXm2BXm1Empty", "HFHadronEtFractionPlus prev empty 2 bunches", 50, 0, 1);
633  //meHFHadF_Minus_BXm2BXm1Empty = ibooker.book1D("PfHFHadronEtFractionMinus_BXm2BXm1Empty", "HFHadronEtFractionMinus prev empty 2 bunches", 50, 0, 1);
634  meHFHadF_Plus_BXm1Filled =
635  ibooker.book1D("PfHFHadronEtFractionPlus_BXm1Filled", "HFHadronEtFractionPlus prev filled bunch", 50, 0, 1);
636  meHFHadF_Minus_BXm1Filled = ibooker.book1D(
637  "PfHFHadronEtFractionMinus_BXm1Filled", "HFHadronEtFractionMinus prev filled bunch", 50, 0, 1);
638  //meHFHadF_Plus_BXm2BXm1Filled = ibooker.book1D("PfHFHadronEtFractionPlus_BXm2BXm1Filled", "HFHadronEtFractionPlus prev filled 2 bunches", 50, 0, 1);
639  //meHFHadF_Minus_BXm2BXm1Filled = ibooker.book1D("PfHFHadronEtFractionMinus_BXm2BXm1Filled", "HFHadronEtFractionMinus prev filled 2 bunches", 50, 0, 1);
640 
641  map_of_MEs.insert(
642  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionPlus", meHFHadF_Plus));
643  map_of_MEs.insert(
644  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionMinus", meHFHadF_Minus));
645  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionPlus_BXm1Empty",
646  meHFHadF_Plus_BXm1Empty));
647  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionMinus_BXm1Empty",
648  meHFHadF_Minus_BXm1Empty));
649  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFHadronEtFractionPlus_BXm2BXm1Empty", meHFHadF_Plus_BXm2BXm1Empty));
650  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFHadronEtFractionMinus_BXm2BXm1Empty", meHFHadF_Minus_BXm2BXm1Empty));
651  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFractionPlus_BXm1Filled",
652  meHFHadF_Plus_BXm1Filled));
653  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
654  DirName + "/" + "PfHFHadronEtFractionMinus_BXm1Filled", meHFHadF_Minus_BXm1Filled));
655  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFHadronEtFractionPlus_BXm2BXm1Filled", meHFHadF_Plus_BXm2BXm1Filled));
656  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFHadronEtFractionMinus_BXm2BXm1Filled", meHFHadF_Minus_BXm2BXm1Filled));
657 
658  meHFEMF_Plus = ibooker.book1D("PfHFEMEtFractionPlus", "HFEMEtFractionPlus", 50, 0, 1);
659  meHFEMF_Minus = ibooker.book1D("PfHFEMEtFractionMinus", "HFEMEtFractionMinus", 50, 0, 1);
660  meHFEMF_Plus_BXm1Empty =
661  ibooker.book1D("PfHFEMEtFractionPlus_BXm1Empty", "HFEMEtFractionPlus prev empty bunch", 50, 0, 1);
662  meHFEMF_Minus_BXm1Empty =
663  ibooker.book1D("PfHFEMEtFractionMinus_BXm1Empty", "HFEMEtFractionMinus prev empty bunch", 50, 0, 1);
664  //meHFEMF_Plus_BXm2BXm1Empty = ibooker.book1D("PfHFEMEtFractionPlus_BXm2BXm1Empty", "HFEMEtFractionPlus prev empty 2 bunches", 50, 0, 1);
665  //meHFEMF_Minus_BXm2BXm1Empty = ibooker.book1D("PfHFEMEtFractionMinus_BXm2BXm1Empty", "HFEMEtFractionMinus prev empty 2 bunches", 50, 0, 1);
666  meHFEMF_Plus_BXm1Filled =
667  ibooker.book1D("PfHFEMEtFractionPlus_BXm1Filled", "HFEMEtFractionPlus prev filled bunch", 50, 0, 1);
668  meHFEMF_Minus_BXm1Filled =
669  ibooker.book1D("PfHFEMEtFractionMinus_BXm1Filled", "HFEMEtFractionMinus prev filled bunch", 50, 0, 1);
670  //meHFEMF_Plus_BXm2BXm1Filled = ibooker.book1D("PfHFEMEtFractionPlus_BXm2BXm1Filled", "HFEMEtFractionPlus prev filled 2 bunches", 50, 0, 1);
671  //meHFEMF_Minus_BXm2BXm1Filled = ibooker.book1D("PfHFEMEtFractionMinus_BXm2BXm1Filled", "HFEMEtFractionMinus prev filled 2 bunches", 50, 0, 1);
672 
673  map_of_MEs.insert(
674  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionPlus", meHFEMF_Plus));
675  map_of_MEs.insert(
676  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionMinus", meHFEMF_Minus));
677  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionPlus_BXm1Empty",
678  meHFEMF_Plus_BXm1Empty));
679  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionMinus_BXm1Empty",
680  meHFEMF_Minus_BXm1Empty));
681  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFEMEtFractionPlus_BXm2BXm1Empty", meHFEMF_Plus_BXm2BXm1Empty));
682  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFEMEtFractionMinus_BXm2BXm1Empty", meHFEMF_Minus_BXm2BXm1Empty));
683  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionPlus_BXm1Filled",
684  meHFEMF_Plus_BXm1Filled));
685  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFractionMinus_BXm1Filled",
686  meHFEMF_Minus_BXm1Filled));
687  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFEMEtFractionPlus_BXm2BXm1Filled", meHFEMF_Plus_BXm2BXm1Filled));
688  //map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PfHFEMEtFractionMinus_BXm2BXm1Filled", meHFEMF_Minus_BXm2BXm1Filled));
689  /*
690  meMETPhiChargedHadronsBarrel_BXm2BXm1Filled = ibooker.book1D("METPhiChargedHadronsBarrel_BXm2BXm1Filled", "METPhi_PFChargedHadronsBarrel prev two bunches filled", 50, -M_PI,M_PI);
691  meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Filled = ibooker.book1D("METPhiChargedHadronsEndcapPlus_BXm2BXm1Filled", "METPhi_PFChargedHadronsEndcapPlus prev two bunches filled", 50, -M_PI,M_PI);
692  meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Filled = ibooker.book1D("METPhiChargedHadronsEndcapMinus_BXm2BXm1Filled","METPhi_PFChargedHadronsEndcapMinus prev two bunches filled", 50, -M_PI,M_PI);
693  meMETPhiNeutralHadronsBarrel_BXm2BXm1Filled = ibooker.book1D("METPhiNeutralHadronsBarrel_BXm2BXm1Filled", "METPhi_PFNeutralHadronsBarrel prev two bunches filled", 50, -M_PI,M_PI);
694  meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled = ibooker.book1D("METPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled", "METPhi_PFNeutralHadronsEndcapPlus prev two bunches filled", 50, -M_PI,M_PI);
695  meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled = ibooker.book1D("METPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled","METPhi_PFNeutralHadronsEndcapMinus prev two bunches filled", 50, -M_PI,M_PI);
696  meMETPhiPhotonsBarrel_BXm2BXm1Filled = ibooker.book1D("METPhiPhotonsBarrel_BXm2BXm1Filled", "METPhi_PFPhotonsBarrel prev two bunches filled", 50, -M_PI,M_PI);
697  meMETPhiPhotonsEndcapPlus_BXm2BXm1Filled = ibooker.book1D("METPhiPhotonsEndcapPlus_BXm2BXm1Filled", "METPhi_PFPhotonsEndcapPlus prev two bunches filled", 50, -M_PI,M_PI);
698  meMETPhiPhotonsEndcapMinus_BXm2BXm1Filled = ibooker.book1D("METPhiPhotonsEndcapMinus_BXm2BXm1Filled", "METPhi_PFPhotonsEndcapMinus prev two bunches filled", 50, -M_PI,M_PI);
699  meMETPhiHFHadronsPlus_BXm2BXm1Filled = ibooker.book1D("METPhiHFHadronsPlus_BXm2BXm1Filled", "METPhi_PFHFHadronsPlus prev two bunches filled", 50, -M_PI,M_PI);
700  meMETPhiHFHadronsMinus_BXm2BXm1Filled = ibooker.book1D("METPhiHFHadronsMinus_BXm2BXm1Filled", "METPhi_PFHFHadronsMinus prev two bunches filled", 50, -M_PI,M_PI);
701  meMETPhiHFEGammasPlus_BXm2BXm1Filled = ibooker.book1D("METPhiHFEGammasPlus_BXm2BXm1Filled", "METPhi_PFHFEGammasPlus prev two bunches filled", 50, -M_PI,M_PI);
702  meMETPhiHFEGammasMinus_BXm2BXm1Filled = ibooker.book1D("METPhiHFEGammasMinus_BXm2BXm1Filled", "METPhi_PFHFEGammasMinus prev two bunches filled", 50, -M_PI,M_PI);
703 
704  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiChargedHadronsBarrel_BXm2BXm1Filled" ,meMETPhiChargedHadronsBarrel_BXm2BXm1Filled));
705  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiChargedHadronsEndcapPlus_BXm2BXm1Filled" ,meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Filled));
706  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiChargedHadronsEndcapMinus_BXm2BXm1Filled" ,meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Filled));
707  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiNeutralHadronsBarrel_BXm2BXm1Filled" ,meMETPhiNeutralHadronsBarrel_BXm2BXm1Filled));
708  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled" ,meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled));
709  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled" ,meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled));
710  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiPhotonsBarrel_BXm2BXm1Filled" ,meMETPhiPhotonsBarrel_BXm2BXm1Filled));
711  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiPhotonsEndcapPlus_BXm2BXm1Filled" ,meMETPhiPhotonsEndcapPlus_BXm2BXm1Filled));
712  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiPhotonsEndcapMinus_BXm2BXm1Filled" ,meMETPhiPhotonsEndcapMinus_BXm2BXm1Filled));
713  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFHadronsPlus_BXm2BXm1Filled" ,meMETPhiHFHadronsPlus_BXm2BXm1Filled));
714  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFHadronsMinus_BXm2BXm1Filled" ,meMETPhiHFHadronsMinus_BXm2BXm1Filled));
715  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFEGammasPlus_BXm2BXm1Filled" ,meMETPhiHFEGammasPlus_BXm2BXm1Filled));
716  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFEGammasMinus_BXm2BXm1Filled" ,meMETPhiHFEGammasMinus_BXm2BXm1Filled));
717 
718  meMETPhiChargedHadronsBarrel_BXm2BXm1Empty = ibooker.book1D("METPhiChargedHadronsBarrel_BXm2BXm1Empty", "METPhi_PFChargedHadronsBarrel prev two bunches empty", 50, -M_PI,M_PI);
719  meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Empty = ibooker.book1D("METPhiChargedHadronsEndcapPlus_BXm2BXm1Empty", "METPhi_PFChargedHadronsEndcapPlus prev two bunches empty", 50, -M_PI,M_PI);
720  meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Empty = ibooker.book1D("METPhiChargedHadronsEndcapMinus_BXm2BXm1Empty","METPhi_PFChargedHadronsEndcapMinus prev two bunches empty", 50, -M_PI,M_PI);
721  meMETPhiNeutralHadronsBarrel_BXm2BXm1Empty = ibooker.book1D("METPhiNeutralHadronsBarrel_BXm2BXm1Empty", "METPhi_PFNeutralHadronsBarrel prev two bunches empty", 50, -M_PI,M_PI);
722  meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty = ibooker.book1D("METPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty", "METPhi_PFNeutralHadronsEndcapPlus prev two bunches empty", 50, -M_PI,M_PI);
723  meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty = ibooker.book1D("METPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty","METPhi_PFNeutralHadronsEndcapMinus prev two bunches empty", 50, -M_PI,M_PI);
724  meMETPhiPhotonsBarrel_BXm2BXm1Empty = ibooker.book1D("METPhiPhotonsBarrel_BXm2BXm1Empty", "METPhi_PFPhotonsBarrel prev two bunches empty", 50, -M_PI,M_PI);
725  meMETPhiPhotonsEndcapPlus_BXm2BXm1Empty = ibooker.book1D("METPhiPhotonsEndcapPlus_BXm2BXm1Empty", "METPhi_PFPhotonsEndcapPlus prev two bunches empty", 50, -M_PI,M_PI);
726  meMETPhiPhotonsEndcapMinus_BXm2BXm1Empty = ibooker.book1D("METPhiPhotonsEndcapMinus_BXm2BXm1Empty", "METPhi_PFPhotonsEndcapMinus prev two bunches empty", 50, -M_PI,M_PI);
727  meMETPhiHFHadronsPlus_BXm2BXm1Empty = ibooker.book1D("METPhiHFHadronsPlus_BXm2BXm1Empty", "METPhi_PFHFHadronsPlus prev two bunches empty", 50, -M_PI,M_PI);
728  meMETPhiHFHadronsMinus_BXm2BXm1Empty = ibooker.book1D("METPhiHFHadronsMinus_BXm2BXm1Empty", "METPhi_PFHFHadronsMinus prev two bunches empty", 50, -M_PI,M_PI);
729  meMETPhiHFEGammasPlus_BXm2BXm1Empty = ibooker.book1D("METPhiHFEGammasPlus_BXm2BXm1Empty", "METPhi_PFHFEGammasPlus prev two bunches empty", 50, -M_PI,M_PI);
730  meMETPhiHFEGammasMinus_BXm2BXm1Empty = ibooker.book1D("METPhiHFEGammasMinus_BXm2BXm1Empty", "METPhi_PFHFEGammasMinus prev two bunches empty", 50, -M_PI,M_PI);
731 
732  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiChargedHadronsBarrel_BXm2BXm1Empty" ,meMETPhiChargedHadronsBarrel_BXm2BXm1Empty));
733  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiChargedHadronsEndcapPlus_BXm2BXm1Empty" ,meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Empty));
734  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiChargedHadronsEndcapMinus_BXm2BXm1Empty" ,meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Empty));
735  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiNeutralHadronsBarrel_BXm2BXm1Empty" ,meMETPhiNeutralHadronsBarrel_BXm2BXm1Empty));
736  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty" ,meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty));
737  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty" ,meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty));
738  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiPhotonsBarrel_BXm2BXm1Empty" ,meMETPhiPhotonsBarrel_BXm2BXm1Empty));
739  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiPhotonsEndcapPlus_BXm2BXm1Empty" ,meMETPhiPhotonsEndcapPlus_BXm2BXm1Empty));
740  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiPhotonsEndcapMinus_BXm2BXm1Empty" ,meMETPhiPhotonsEndcapMinus_BXm2BXm1Empty));
741  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFHadronsPlus_BXm2BXm1Empty" ,meMETPhiHFHadronsPlus_BXm2BXm1Empty));
742  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFHadronsMinus_BXm2BXm1Empty" ,meMETPhiHFHadronsMinus_BXm2BXm1Empty));
743  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFEGammasPlus_BXm2BXm1Empty" ,meMETPhiHFEGammasPlus_BXm2BXm1Empty));
744  map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"METPhiHFEGammasMinus_BXm2BXm1Empty" ,meMETPhiHFEGammasMinus_BXm2BXm1Empty));
745  */
746  //histos where one previous bunch was empty/filled
747  mePhotonEtFraction_BXm1Empty =
748  ibooker.book1D("PfPhotonEtFraction_BXm1Empty", "photonEtFraction() prev empty bunch", 50, 0, 1);
749  mePhotonEtFraction_BXm1Filled =
750  ibooker.book1D("PfPhotonEtFraction_BXm1Filled", "photonEtFraction() prev filled bunch", 50, 0, 1);
751  meNeutralHadronEtFraction_BXm1Empty = ibooker.book1D(
752  "PfNeutralHadronEtFraction_BXm1Empty", "neutralHadronEtFraction() prev empty bunch", 50, 0, 1);
753  meNeutralHadronEtFraction_BXm1Filled = ibooker.book1D(
754  "PfNeutralHadronEtFraction_BXm1Filled", "neutralHadronEtFraction() prev filled bunch", 50, 0, 1);
755  meChargedHadronEtFraction_BXm1Empty = ibooker.book1D(
756  "PfChargedHadronEtFraction_BXm1Empty", "chargedHadronEtFraction() prev empty bunch", 50, 0, 1);
757  meChargedHadronEtFraction_BXm1Filled = ibooker.book1D(
758  "PfChargedHadronEtFraction_BXm1Filled", "chargedHadronEtFraction() prev filled bunch", 50, 0, 1);
759  meMET_BXm1Empty = ibooker.book1D("MET_BXm1Empty", "MET prev empty bunch", 200, 0, 1000);
760  meMET_BXm1Filled = ibooker.book1D("MET_BXm1Filled", "MET prev filled bunch", 200, 0, 1000);
761  meSumET_BXm1Empty = ibooker.book1D("SumET_BXm1Empty", "SumET prev empty bunch", 400, 0, 4000);
762  meSumET_BXm1Filled = ibooker.book1D("SumET_BXm1Filled", "SumET prev filled bunch", 400, 0, 4000);
763 
764  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFraction_BXm1Empty",
765  mePhotonEtFraction_BXm1Empty));
766  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFraction_BXm1Filled",
767  mePhotonEtFraction_BXm1Filled));
768  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEtFraction_BXm1Empty",
769  meNeutralHadronEtFraction_BXm1Empty));
770  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralEtFraction_BXm1Filled",
771  meNeutralHadronEtFraction_BXm1Filled));
772  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEtFraction_BXm1Empty",
773  meChargedHadronEtFraction_BXm1Empty));
774  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedEtFraction_BXm1Filled",
775  meChargedHadronEtFraction_BXm1Filled));
776  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_BXm1Empty", meMET_BXm1Empty));
777  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MET_BXm1Filled", meMET_BXm1Filled));
778  map_of_MEs.insert(
779  std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET_BXm1Empty", meSumET_BXm1Empty));
780  map_of_MEs.insert(
781  std::pair<std::string, MonitorElement*>(DirName + "/" + "SumET_BXm1Filled", meSumET_BXm1Filled));
782 
783  meMETPhiChargedHadronsBarrel_BXm1Filled = ibooker.book1D(
784  "METPhiChargedHadronsBarrel_BXm1Filled", "METPhi_PFChargedHadronsBarrel prev bunch filled", 50, -M_PI, M_PI);
785  meMETPhiChargedHadronsEndcapPlus_BXm1Filled =
786  ibooker.book1D("METPhiChargedHadronsEndcapPlus_BXm1Filled",
787  "METPhi_PFChargedHadronsEndcapPlus prev bunch filled",
788  50,
789  -M_PI,
790  M_PI);
791  meMETPhiChargedHadronsEndcapMinus_BXm1Filled =
792  ibooker.book1D("METPhiChargedHadronsEndcapMinus_BXm1Filled",
793  "METPhi_PFChargedHadronsEndcapMinus prev bunch filled",
794  50,
795  -M_PI,
796  M_PI);
797  meMETPhiNeutralHadronsBarrel_BXm1Filled = ibooker.book1D(
798  "METPhiNeutralHadronsBarrel_BXm1Filled", "METPhi_PFNeutralHadronsBarrel prev bunch filled", 50, -M_PI, M_PI);
799  meMETPhiNeutralHadronsEndcapPlus_BXm1Filled =
800  ibooker.book1D("METPhiNeutralHadronsEndcapPlus_BXm1Filled",
801  "METPhi_PFNeutralHadronsEndcapPlus prev bunch filled",
802  50,
803  -M_PI,
804  M_PI);
805  meMETPhiNeutralHadronsEndcapMinus_BXm1Filled =
806  ibooker.book1D("METPhiNeutralHadronsEndcapMinus_BXm1Filled",
807  "METPhi_PFNeutralHadronsEndcapMinus prev bunch filled",
808  50,
809  -M_PI,
810  M_PI);
811  meMETPhiPhotonsBarrel_BXm1Filled = ibooker.book1D(
812  "METPhiPhotonsBarrel_BXm1Filled", "METPhi_PFPhotonsBarrel prev bunch filled", 50, -M_PI, M_PI);
813  meMETPhiPhotonsEndcapPlus_BXm1Filled = ibooker.book1D(
814  "METPhiPhotonsEndcapPlus_BXm1Filled", "METPhi_PFPhotonsEndcapPlus prev bunch filled", 50, -M_PI, M_PI);
815  meMETPhiPhotonsEndcapMinus_BXm1Filled = ibooker.book1D(
816  "METPhiPhotonsEndcapMinus_BXm1Filled", "METPhi_PFPhotonsEndcapMinus prev bunch filled", 50, -M_PI, M_PI);
817  meMETPhiHFHadronsPlus_BXm1Filled = ibooker.book1D(
818  "METPhiHFHadronsPlus_BXm1Filled", "METPhi_PFHFHadronsPlus prev bunch filled", 50, -M_PI, M_PI);
819  meMETPhiHFHadronsMinus_BXm1Filled = ibooker.book1D(
820  "METPhiHFHadronsMinus_BXm1Filled", "METPhi_PFHFHadronsMinus prev bunch filled", 50, -M_PI, M_PI);
821  meMETPhiHFEGammasPlus_BXm1Filled = ibooker.book1D(
822  "METPhiHFEGammasPlus_BXm1Filled", "METPhi_PFHFEGammasPlus prev bunch filled", 50, -M_PI, M_PI);
823  meMETPhiHFEGammasMinus_BXm1Filled = ibooker.book1D(
824  "METPhiHFEGammasMinus_BXm1Filled", "METPhi_PFHFEGammasMinus prev bunch filled", 50, -M_PI, M_PI);
825 
826  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
827  DirName + "/" + "METPhiChargedHadronsBarrel_BXm1Filled", meMETPhiChargedHadronsBarrel_BXm1Filled));
828  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
829  DirName + "/" + "METPhiChargedHadronsEndcapPlus_BXm1Filled", meMETPhiChargedHadronsEndcapPlus_BXm1Filled));
830  map_of_MEs.insert(
831  std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiChargedHadronsEndcapMinus_BXm1Filled",
832  meMETPhiChargedHadronsEndcapMinus_BXm1Filled));
833  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
834  DirName + "/" + "METPhiNeutralHadronsBarrel_BXm1Filled", meMETPhiNeutralHadronsBarrel_BXm1Filled));
835  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
836  DirName + "/" + "METPhiNeutralHadronsEndcapPlus_BXm1Filled", meMETPhiNeutralHadronsEndcapPlus_BXm1Filled));
837  map_of_MEs.insert(
838  std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiNeutralHadronsEndcapMinus_BXm1Filled",
839  meMETPhiNeutralHadronsEndcapMinus_BXm1Filled));
840  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsBarrel_BXm1Filled",
841  meMETPhiPhotonsBarrel_BXm1Filled));
842  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapPlus_BXm1Filled",
843  meMETPhiPhotonsEndcapPlus_BXm1Filled));
844  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapMinus_BXm1Filled",
845  meMETPhiPhotonsEndcapMinus_BXm1Filled));
846  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsPlus_BXm1Filled",
847  meMETPhiHFHadronsPlus_BXm1Filled));
848  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsMinus_BXm1Filled",
849  meMETPhiHFHadronsMinus_BXm1Filled));
850  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasPlus_BXm1Filled",
851  meMETPhiHFEGammasPlus_BXm1Filled));
852  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasMinus_BXm1Filled",
853  meMETPhiHFEGammasMinus_BXm1Filled));
854 
855  meMETPhiChargedHadronsBarrel_BXm1Empty = ibooker.book1D(
856  "METPhiChargedHadronsBarrel_BXm1Empty", "METPhi_PFChargedHadronsBarrel prev bunch empty", 50, -M_PI, M_PI);
857  meMETPhiChargedHadronsEndcapPlus_BXm1Empty =
858  ibooker.book1D("METPhiChargedHadronsEndcapPlus_BXm1Empty",
859  "METPhi_PFChargedHadronsEndcapPlus prev bunch empty",
860  50,
861  -M_PI,
862  M_PI);
863  meMETPhiChargedHadronsEndcapMinus_BXm1Empty =
864  ibooker.book1D("METPhiChargedHadronsEndcapMinus_BXm1Empty",
865  "METPhi_PFChargedHadronsEndcapMinus prev bunch empty",
866  50,
867  -M_PI,
868  M_PI);
869  meMETPhiNeutralHadronsBarrel_BXm1Empty = ibooker.book1D(
870  "METPhiNeutralHadronsBarrel_BXm1Empty", "METPhi_PFNeutralHadronsBarrel prev bunch empty", 50, -M_PI, M_PI);
871  meMETPhiNeutralHadronsEndcapPlus_BXm1Empty =
872  ibooker.book1D("METPhiNeutralHadronsEndcapPlus_BXm1Empty",
873  "METPhi_PFNeutralHadronsEndcapPlus prev bunch empty",
874  50,
875  -M_PI,
876  M_PI);
877  meMETPhiNeutralHadronsEndcapMinus_BXm1Empty =
878  ibooker.book1D("METPhiNeutralHadronsEndcapMinus_BXm1Empty",
879  "METPhi_PFNeutralHadronsEndcapMinus prev bunch empty",
880  50,
881  -M_PI,
882  M_PI);
883  meMETPhiPhotonsBarrel_BXm1Empty =
884  ibooker.book1D("METPhiPhotonsBarrel_BXm1Empty", "METPhi_PFPhotonsBarrel prev bunch empty", 50, -M_PI, M_PI);
885  meMETPhiPhotonsEndcapPlus_BXm1Empty = ibooker.book1D(
886  "METPhiPhotonsEndcapPlus_BXm1Empty", "METPhi_PFPhotonsEndcapPlus prev bunch empty", 50, -M_PI, M_PI);
887  meMETPhiPhotonsEndcapMinus_BXm1Empty = ibooker.book1D(
888  "METPhiPhotonsEndcapMinus_BXm1Empty", "METPhi_PFPhotonsEndcapMinus prev bunch empty", 50, -M_PI, M_PI);
889  meMETPhiHFHadronsPlus_BXm1Empty =
890  ibooker.book1D("METPhiHFHadronsPlus_BXm1Empty", "METPhi_PFHFHadronsPlus prev bunch empty", 50, -M_PI, M_PI);
891  meMETPhiHFHadronsMinus_BXm1Empty = ibooker.book1D(
892  "METPhiHFHadronsMinus_BXm1Empty", "METPhi_PFHFHadronsMinus prev bunch empty", 50, -M_PI, M_PI);
893  meMETPhiHFEGammasPlus_BXm1Empty =
894  ibooker.book1D("METPhiHFEGammasPlus_BXm1Empty", "METPhi_PFHFEGammasPlus prev bunch empty", 50, -M_PI, M_PI);
895  meMETPhiHFEGammasMinus_BXm1Empty = ibooker.book1D(
896  "METPhiHFEGammasMinus_BXm1Empty", "METPhi_PFHFEGammasMinus prev bunch empty", 50, -M_PI, M_PI);
897 
898  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
899  DirName + "/" + "METPhiChargedHadronsBarrel_BXm1Empty", meMETPhiChargedHadronsBarrel_BXm1Empty));
900  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
901  DirName + "/" + "METPhiChargedHadronsEndcapPlus_BXm1Empty", meMETPhiChargedHadronsEndcapPlus_BXm1Empty));
902  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
903  DirName + "/" + "METPhiChargedHadronsEndcapMinus_BXm1Empty", meMETPhiChargedHadronsEndcapMinus_BXm1Empty));
904  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
905  DirName + "/" + "METPhiNeutralHadronsBarrel_BXm1Empty", meMETPhiNeutralHadronsBarrel_BXm1Empty));
906  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
907  DirName + "/" + "METPhiNeutralHadronsEndcapPlus_BXm1Empty", meMETPhiNeutralHadronsEndcapPlus_BXm1Empty));
908  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
909  DirName + "/" + "METPhiNeutralHadronsEndcapMinus_BXm1Empty", meMETPhiNeutralHadronsEndcapMinus_BXm1Empty));
910  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsBarrel_BXm1Empty",
911  meMETPhiPhotonsBarrel_BXm1Empty));
912  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapPlus_BXm1Empty",
913  meMETPhiPhotonsEndcapPlus_BXm1Empty));
914  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapMinus_BXm1Empty",
915  meMETPhiPhotonsEndcapMinus_BXm1Empty));
916  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsPlus_BXm1Empty",
917  meMETPhiHFHadronsPlus_BXm1Empty));
918  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsMinus_BXm1Empty",
919  meMETPhiHFHadronsMinus_BXm1Empty));
920  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasPlus_BXm1Empty",
921  meMETPhiHFEGammasPlus_BXm1Empty));
922  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasMinus_BXm1Empty",
923  meMETPhiHFEGammasMinus_BXm1Empty));
924 
925  meMETPhiChargedHadronsBarrel =
926  ibooker.book1D("METPhiChargedHadronsBarrel", "METPhi_PFChargedHadronsBarrel", 50, -M_PI, M_PI);
927  meMETPhiChargedHadronsEndcapPlus =
928  ibooker.book1D("METPhiChargedHadronsEndcapPlus", "METPhi_PFChargedHadronsEndcapPlus", 50, -M_PI, M_PI);
929  meMETPhiChargedHadronsEndcapMinus =
930  ibooker.book1D("METPhiChargedHadronsEndcapMinus", "METPhi_PFChargedHadronsEndcapMinus", 50, -M_PI, M_PI);
931  meMETPhiNeutralHadronsBarrel =
932  ibooker.book1D("METPhiNeutralHadronsBarrel", "METPhi_PFNeutralHadronsBarrel", 50, -M_PI, M_PI);
933  meMETPhiNeutralHadronsEndcapPlus =
934  ibooker.book1D("METPhiNeutralHadronsEndcapPlus", "METPhi_PFNeutralHadronsEndcapPlus", 50, -M_PI, M_PI);
935  meMETPhiNeutralHadronsEndcapMinus =
936  ibooker.book1D("METPhiNeutralHadronsEndcapMinus", "METPhi_PFNeutralHadronsEndcapMinus", 50, -M_PI, M_PI);
937  meMETPhiPhotonsBarrel = ibooker.book1D("METPhiPhotonsBarrel", "METPhi_PFPhotonsBarrel", 50, -M_PI, M_PI);
938  meMETPhiPhotonsEndcapPlus =
939  ibooker.book1D("METPhiPhotonsEndcapPlus", "METPhi_PFPhotonsEndcapPlus", 50, -M_PI, M_PI);
940  meMETPhiPhotonsEndcapMinus =
941  ibooker.book1D("METPhiPhotonsEndcapMinus", "METPhi_PFPhotonsEndcapMinus", 50, -M_PI, M_PI);
942  meMETPhiHFHadronsPlus = ibooker.book1D("METPhiHFHadronsPlus", "METPhi_PFHFHadronsPlus", 50, -M_PI, M_PI);
943  meMETPhiHFHadronsMinus = ibooker.book1D("METPhiHFHadronsMinus", "METPhi_PFHFHadronsMinus", 50, -M_PI, M_PI);
944  meMETPhiHFEGammasPlus = ibooker.book1D("METPhiHFEGammasPlus", "METPhi_PFHFEGammasPlus", 50, -M_PI, M_PI);
945  meMETPhiHFEGammasMinus = ibooker.book1D("METPhiHFEGammasMinus", "METPhi_PFHFEGammasMinus", 50, -M_PI, M_PI);
946 
947  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiChargedHadronsBarrel",
948  meMETPhiChargedHadronsBarrel));
949  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiChargedHadronsEndcapPlus",
950  meMETPhiChargedHadronsEndcapPlus));
951  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiChargedHadronsEndcapMinus",
952  meMETPhiChargedHadronsEndcapMinus));
953  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiNeutralHadronsBarrel",
954  meMETPhiNeutralHadronsBarrel));
955  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiNeutralHadronsEndcapPlus",
956  meMETPhiNeutralHadronsEndcapPlus));
957  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiNeutralHadronsEndcapMinus",
958  meMETPhiNeutralHadronsEndcapMinus));
959  map_of_MEs.insert(
960  std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsBarrel", meMETPhiPhotonsBarrel));
961  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapPlus",
962  meMETPhiPhotonsEndcapPlus));
963  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiPhotonsEndcapMinus",
964  meMETPhiPhotonsEndcapMinus));
965  map_of_MEs.insert(
966  std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsPlus", meMETPhiHFHadronsPlus));
967  map_of_MEs.insert(
968  std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFHadronsMinus", meMETPhiHFHadronsMinus));
969  map_of_MEs.insert(
970  std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasPlus", meMETPhiHFEGammasPlus));
971  map_of_MEs.insert(
972  std::pair<std::string, MonitorElement*>(DirName + "/" + "METPhiHFEGammasMinus", meMETPhiHFEGammasMinus));
973  }
974 
975  if (fillPFCandPlots && fillCandidateMap_histos) {
976  if (!profilePFCand_x_.empty()) {
977  etaMinPFCand_.clear();
978  etaMaxPFCand_.clear();
979  typePFCand_.clear();
980  countsPFCand_.clear();
981  MExPFCand_.clear();
982  MEyPFCand_.clear();
983  profilePFCand_x_.clear();
984  profilePFCand_y_.clear();
985  profilePFCand_x_name_.clear();
986  profilePFCand_y_name_.clear();
987  }
988  for (std::vector<edm::ParameterSet>::const_iterator v = diagnosticsParameters_.begin();
989  v != diagnosticsParameters_.end();
990  v++) {
991  double etaMinPFCand = v->getParameter<double>("etaMin");
992  double etaMaxPFCand = v->getParameter<double>("etaMax");
993  int nMinPFCand = v->getParameter<int>("nMin");
994  int nMaxPFCand = v->getParameter<int>("nMax");
995  int nbinsPFCand = v->getParameter<double>("nbins");
996 
997  // etaNBins_.push_back(etaNBins);
998  etaMinPFCand_.push_back(etaMinPFCand);
999  etaMaxPFCand_.push_back(etaMaxPFCand);
1000  typePFCand_.push_back(v->getParameter<int>("type"));
1001  countsPFCand_.push_back(0);
1002  MExPFCand_.push_back(0.);
1003  MEyPFCand_.push_back(0.);
1004 
1005  profilePFCand_x_.push_back(
1006  ibooker.bookProfile(std::string(v->getParameter<std::string>("name")).append("_Px_").c_str(),
1007  std::string(v->getParameter<std::string>("name")) + "Px",
1008  nbinsPFCand,
1009  nMinPFCand,
1010  nMaxPFCand,
1011  -300,
1012  300));
1013  profilePFCand_x_name_.push_back(std::string(v->getParameter<std::string>("name")).append("_Px_"));
1014  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
1015  DirName + "/" + profilePFCand_x_name_[profilePFCand_x_name_.size() - 1],
1016  profilePFCand_x_[profilePFCand_x_.size() - 1]));
1017  profilePFCand_y_.push_back(
1018  ibooker.bookProfile(std::string(v->getParameter<std::string>("name")).append("_Py_").c_str(),
1019  std::string(v->getParameter<std::string>("name")) + "Py",
1020  nbinsPFCand,
1021  nMinPFCand,
1022  nMaxPFCand,
1023  -300,
1024  300));
1025  profilePFCand_y_name_.push_back(std::string(v->getParameter<std::string>("name")).append("_Py_"));
1026  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(
1027  DirName + "/" + profilePFCand_y_name_[profilePFCand_y_name_.size() - 1],
1028  profilePFCand_y_[profilePFCand_y_.size() - 1]));
1029  }
1030  }
1031  }
1032  if (isMiniAODMet_) {
1033  if (fillPFCandPlots &&
1034  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
1035  if (!profilePFCand_x_.empty()) {
1036  etaMinPFCand_.clear();
1037  etaMaxPFCand_.clear();
1038  typePFCand_.clear();
1039  countsPFCand_.clear();
1040  profilePFCand_x_.clear();
1041  profilePFCand_y_.clear();
1042  }
1043  for (std::vector<edm::ParameterSet>::const_iterator v = diagnosticsParameters_.begin();
1044  v != diagnosticsParameters_.end();
1045  v++) {
1046  double etaMinPFCand = v->getParameter<double>("etaMin");
1047  double etaMaxPFCand = v->getParameter<double>("etaMax");
1048 
1049  etaMinPFCand_.push_back(etaMinPFCand);
1050  etaMaxPFCand_.push_back(etaMaxPFCand);
1051  typePFCand_.push_back(v->getParameter<int>("type"));
1052  countsPFCand_.push_back(0);
1053  MExPFCand_.push_back(0.);
1054  MEyPFCand_.push_back(0.);
1055  }
1056  }
1057  }
1058 
1059  if (isPFMet_ || isMiniAODMet_) {
1060  mePhotonEtFraction = ibooker.book1D("PfPhotonEtFraction", "photonEtFraction()", 50, 0, 1);
1061  meNeutralHadronEtFraction = ibooker.book1D("PfNeutralHadronEtFraction", "neutralHadronEtFraction()", 50, 0, 1);
1062  meChargedHadronEtFraction = ibooker.book1D("PfChargedHadronEtFraction", "chargedHadronEtFraction()", 50, 0, 1);
1063  meHFHadronEtFraction = ibooker.book1D("PfHFHadronEtFraction", "HFHadronEtFraction()", 50, 0, 1);
1064  meHFEMEtFraction = ibooker.book1D("PfHFEMEtFraction", "HFEMEtFraction()", 50, 0, 1);
1065 
1066  map_of_MEs.insert(
1067  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFraction", mePhotonEtFraction));
1068  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEtFraction",
1069  meNeutralHadronEtFraction));
1070  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEtFraction",
1071  meChargedHadronEtFraction));
1072  map_of_MEs.insert(
1073  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFraction", meHFHadronEtFraction));
1074  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFraction", meHFEMEtFraction));
1075 
1076  mePhotonEtFraction_profile =
1077  ibooker.bookProfile("PfPhotonEtFraction_profile", "photonEtFraction()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1);
1078  meNeutralHadronEtFraction_profile = ibooker.bookProfile(
1079  "PfNeutralHadronEtFraction_profile", "neutralHadronEtFraction()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1);
1080  meChargedHadronEtFraction_profile = ibooker.bookProfile(
1081  "PfChargedHadronEtFraction_profile", "chargedHadronEtFraction()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1);
1082  meHFHadronEtFraction_profile = ibooker.bookProfile(
1083  "PfHFHadronEtFraction_profile", "HFHadronEtFraction()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1);
1084  meHFEMEtFraction_profile =
1085  ibooker.bookProfile("PfHFEMEtFraction_profile", "HFEMEtFraction()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1);
1086  mePhotonEtFraction_profile->setAxisTitle("nvtx", 1);
1087  meNeutralHadronEtFraction_profile->setAxisTitle("nvtx", 1);
1088  meChargedHadronEtFraction_profile->setAxisTitle("nvtx", 1);
1089  meHFHadronEtFraction_profile->setAxisTitle("nvtx", 1);
1090  meHFEMEtFraction_profile->setAxisTitle("nvtx", 1);
1091 
1092  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEtFraction_profile",
1093  mePhotonEtFraction_profile));
1094  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEtFraction_profile",
1095  meNeutralHadronEtFraction_profile));
1096  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEtFraction_profile",
1097  meChargedHadronEtFraction_profile));
1098  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEtFraction_profile",
1099  meHFHadronEtFraction_profile));
1100  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEtFraction_profile",
1101  meHFEMEtFraction_profile));
1102 
1103  mePhotonEt = ibooker.book1D("PfPhotonEt", "photonEt()", 50, 0, 1000);
1104  meNeutralHadronEt = ibooker.book1D("PfNeutralHadronEt", "neutralHadronEt()", 50, 0, 1000);
1105  meElectronEt = ibooker.book1D("PfElectronEt", "electronEt()", 50, 0, 100);
1106  meChargedHadronEt = ibooker.book1D("PfChargedHadronEt", "chargedHadronEt()", 50, 0, 2000);
1107  meMuonEt = ibooker.book1D("PfMuonEt", "muonEt()", 50, 0, 100);
1108  meHFHadronEt = ibooker.book1D("PfHFHadronEt", "HFHadronEt()", 50, 0, 2000);
1109  meHFEMEt = ibooker.book1D("PfHFEMEt", "HFEMEt()", 50, 0, 1000);
1110 
1111  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEt", mePhotonEt));
1112  map_of_MEs.insert(
1113  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEt", meNeutralHadronEt));
1114  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfElectronEt", meElectronEt));
1115  map_of_MEs.insert(
1116  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEt", meChargedHadronEt));
1117  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfMuonEt", meMuonEt));
1118  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEt", meHFHadronEt));
1119  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEt", meHFEMEt));
1120 
1121  mePhotonEt_profile =
1122  ibooker.bookProfile("PfPhotonEt_profile", "photonEt()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1000);
1123  meNeutralHadronEt_profile = ibooker.bookProfile(
1124  "PfNeutralHadronEt_profile", "neutralHadronEt()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1000);
1125  meChargedHadronEt_profile = ibooker.bookProfile(
1126  "PfChargedHadronEt_profile", "chargedHadronEt()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1000);
1127  meHFHadronEt_profile =
1128  ibooker.bookProfile("PfHFHadronEt_profile", "HFHadronEt()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1000);
1129  meHFEMEt_profile = ibooker.bookProfile("PfHFEMEt_profile", "HFEMEt()", nbinsPV_, nPVMin_, nPVMax_, 50, 0, 1000);
1130 
1131  mePhotonEt_profile->setAxisTitle("nvtx", 1);
1132  meNeutralHadronEt_profile->setAxisTitle("nvtx", 1);
1133  meChargedHadronEt_profile->setAxisTitle("nvtx", 1);
1134  meHFHadronEt_profile->setAxisTitle("nvtx", 1);
1135  meHFEMEt_profile->setAxisTitle("nvtx", 1);
1136 
1137  map_of_MEs.insert(
1138  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfPhotonEt_profile", mePhotonEt_profile));
1139  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfNeutralHadronEt_profile",
1140  meNeutralHadronEt_profile));
1141  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfChargedHadronEt_profile",
1142  meChargedHadronEt_profile));
1143  map_of_MEs.insert(
1144  std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFHadronEt_profile", meHFHadronEt_profile));
1145  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PfHFEMEt_profile", meHFEMEt_profile));
1146  }
1147 
1148  if (isCaloMet_) {
1149  if (fill_met_high_level_histo) { //now configurable in python file
1150  hMExLS = ibooker.book2D("MExLS", "MEx_LS", 200, -200, 200, 250, 0., 2500.);
1151  hMExLS->setAxisTitle("MEx [GeV]", 1);
1152  hMExLS->setAxisTitle("Lumi Section", 2);
1153  hMExLS->setOption("colz");
1154  hMEyLS = ibooker.book2D("MEyLS", "MEy_LS", 200, -200, 200, 250, 0., 2500.);
1155  hMEyLS->setAxisTitle("MEy [GeV]", 1);
1156  hMEyLS->setAxisTitle("Lumi Section", 2);
1157  hMEyLS->setOption("colz");
1158  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MExLS", hMExLS));
1159  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MEyLS", hMEyLS));
1160  }
1161  }
1162 
1163  hMETRate = ibooker.book1D("METRate", "METRate", 200, 0, 1000);
1164  map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "METRate", hMETRate));
1165 
1166  ibooker.setCurrentFolder("JetMET");
1167  lumisecME = ibooker.book1D("lumisec", "lumisec", 2501, -1., 2500.);
1168  map_of_MEs.insert(std::pair<std::string, MonitorElement*>("JetMET/lumisec", lumisecME));
1169  } //all non Z plots (restrict Z Plots only for resolution study)
1170 }
1171 
1172 // ***********************************************************
1173 void METAnalyzer::dqmBeginRun(const edm::Run& iRun, const edm::EventSetup& iSetup) {
1175  iSetup.get<L1GtTriggerMenuRcd>().get(menuRcd);
1176  const L1GtTriggerMenu* menu = menuRcd.product();
1177  for (CItAlgo techTrig = menu->gtTechnicalTriggerMap().begin(); techTrig != menu->gtTechnicalTriggerMap().end();
1178  ++techTrig) {
1179  if ((techTrig->second).algoName() == m_l1algoname_) {
1180  m_bitAlgTechTrig_ = (techTrig->second).algoBitNumber();
1181  break;
1182  }
1183  }
1184 
1185  // std::cout << "Run " << iRun.run() << " hltconfig.init "
1186  // << hltConfig_.init(iRun,iSetup,triggerResultsLabel_.process(),changed_) << " length: "<<hltConfig_.triggerNames().size()<<" changed "<<changed_<<std::endl;
1187  bool changed(true);
1188  if (hltConfig_.init(iRun, iSetup, triggerResultsLabel_.process(), changed)) {
1189  if (changed) {
1190  //hltConfig_.dump("ProcessName");
1191  //hltConfig_.dump("GlobalTag");
1192  //hltConfig_.dump("TableName");
1193  // hltConfig_.dump("Streams");
1194  // hltConfig_.dump("Datasets");
1195  // hltConfig_.dump("PrescaleTable");
1196  // hltConfig_.dump("ProcessPSet");
1197  }
1198  } else {
1199  if (verbose_)
1200  std::cout << "HLTEventAnalyzerAOD::analyze:"
1201  << " config extraction failure with process name " << triggerResultsLabel_.process() << std::endl;
1202  }
1203 
1204  allTriggerNames_.clear();
1205  for (unsigned int i = 0; i < hltConfig_.size(); i++) {
1206  allTriggerNames_.push_back(hltConfig_.triggerName(i));
1207  }
1208  // std::cout<<"Length: "<<allTriggerNames_.size()<<std::endl;
1209 
1210  triggerSelectedSubFolders_ = parameters.getParameter<edm::VParameterSet>("triggerSelectedSubFolders");
1211  for (std::vector<GenericTriggerEventFlag*>::const_iterator it = triggerFolderEventFlag_.begin();
1212  it != triggerFolderEventFlag_.end();
1213  it++) {
1214  int pos = it - triggerFolderEventFlag_.begin();
1215  if ((*it)->on()) {
1216  (*it)->initRun(iRun, iSetup);
1217  if (triggerSelectedSubFolders_[pos].exists(std::string("hltDBKey"))) {
1218  if ((*it)->expressionsFromDB((*it)->hltDBKey(), iSetup)[0] != "CONFIG_ERROR")
1219  triggerFolderExpr_[pos] = (*it)->expressionsFromDB((*it)->hltDBKey(), iSetup);
1220  }
1221  }
1222  }
1223  if (isMiniAODMet_) {
1224  bool changed_filter = true;
1225  std::vector<int> initializeFilter(8, -1); //we have 8 filters at the moment
1226  miniaodFilterIndex_ = initializeFilter;
1227  if (FilterhltConfig_.init(iRun, iSetup, METFilterMiniAODLabel_.process(), changed_filter)) {
1228  miniaodfilterdec = 0;
1229  for (unsigned int i = 0; i < FilterhltConfig_.size(); i++) {
1230  std::string search = FilterhltConfig_.triggerName(i).substr(
1231  5); //actual label of filter, the first 5 items are Flag_, so stripped off
1233  HBHENoiseStringMiniAOD; //all filters end with DQM, which is not in the flag --> ONLY not for HBHEFilters
1234  std::size_t found = search2.find(search);
1235  if (found != std::string::npos) {
1236  miniaodFilterIndex_[0] = i;
1237  }
1238  search2 = CSCHaloResultTag_.label().substr(0, CSCHaloResultTag_.label().size() - 3);
1239  found = search2.find(search);
1240  if (found != std::string::npos) {
1241  miniaodFilterIndex_[1] = i;
1242  }
1243  search2 = eeBadScFilterTag_.label().substr(0, eeBadScFilterTag_.label().size() - 3);
1244  found = search2.find(search);
1245  if (found != std::string::npos) {
1246  miniaodFilterIndex_[2] = i;
1247  }
1248  search2 = HBHEIsoNoiseStringMiniAOD;
1249  found = search2.find(search);
1250  if (found != std::string::npos) {
1251  miniaodFilterIndex_[3] = i;
1252  }
1253  search2 = CSCHalo2015ResultTag_.label().substr(0, CSCHalo2015ResultTag_.label().size() - 3);
1254  found = search2.find(search);
1255  if (found != std::string::npos) {
1256  miniaodFilterIndex_[4] = i;
1257  }
1258  search2 = EcalDeadCellTriggerTag_.label().substr(0, EcalDeadCellTriggerTag_.label().size() - 3);
1259  found = search2.find(search);
1260  if (found != std::string::npos) {
1261  miniaodFilterIndex_[5] = i;
1262  }
1263  search2 = EcalDeadCellBoundaryTag_.label().substr(0, EcalDeadCellBoundaryTag_.label().size() - 3);
1264  found = search2.find(search);
1265  if (found != std::string::npos) {
1266  miniaodFilterIndex_[6] = i;
1267  }
1268  search2 = HcalStripHaloTag_.label().substr(0, HcalStripHaloTag_.label().size() - 3);
1269  found = search2.find(search);
1270  if (found != std::string::npos) {
1271  miniaodFilterIndex_[7] = i;
1272  }
1273  }
1274  } else if (FilterhltConfig_.init(iRun, iSetup, METFilterMiniAODLabel2_.process(), changed_filter)) {
1275  miniaodfilterdec = 1;
1276  for (unsigned int i = 0; i < FilterhltConfig_.size(); i++) {
1277  std::string search = FilterhltConfig_.triggerName(i).substr(
1278  5); //actual label of filter, the first 5 items are Flag_, so stripped off
1280  HBHENoiseStringMiniAOD; //all filters end with DQM, which is not in the flag --> ONLY not for HBHEFilters
1281  std::size_t found = search2.find(search);
1282  if (found != std::string::npos) {
1283  miniaodFilterIndex_[0] = i;
1284  }
1285  search2 = CSCHaloResultTag_.label().substr(0, CSCHaloResultTag_.label().size() - 3);
1286  found = search2.find(search);
1287  if (found != std::string::npos) {
1288  miniaodFilterIndex_[1] = i;
1289  }
1290  search2 = eeBadScFilterTag_.label().substr(0, eeBadScFilterTag_.label().size() - 3);
1291  found = search2.find(search);
1292  if (found != std::string::npos) {
1293  miniaodFilterIndex_[2] = i;
1294  }
1295  search2 = HBHEIsoNoiseStringMiniAOD;
1296  found = search2.find(search);
1297  if (found != std::string::npos) {
1298  miniaodFilterIndex_[3] = i;
1299  }
1300  search2 = CSCHalo2015ResultTag_.label().substr(0, CSCHalo2015ResultTag_.label().size() - 3);
1301  found = search2.find(search);
1302  if (found != std::string::npos) {
1303  miniaodFilterIndex_[4] = i;
1304  }
1305  search2 = EcalDeadCellTriggerTag_.label().substr(0, EcalDeadCellTriggerTag_.label().size() - 3);
1306  found = search2.find(search);
1307  if (found != std::string::npos) {
1308  miniaodFilterIndex_[5] = i;
1309  }
1310  search2 = EcalDeadCellBoundaryTag_.label().substr(0, EcalDeadCellBoundaryTag_.label().size() - 3);
1311  found = search2.find(search);
1312  if (found != std::string::npos) {
1313  miniaodFilterIndex_[6] = i;
1314  }
1315  search2 = HcalStripHaloTag_.label().substr(0, HcalStripHaloTag_.label().size() - 3);
1316  found = search2.find(search);
1317  if (found != std::string::npos) {
1318  miniaodFilterIndex_[7] = i;
1319  }
1320  }
1321  } else {
1322  edm::LogWarning("MiniAOD METAN Filter HLT OBject version")
1323  << "nothing found with both RECO and reRECO label" << std::endl;
1324  }
1325  }
1326 }
1327 
1328 // ***********************************************************
1329 void METAnalyzer::dqmEndRun(const edm::Run& iRun, const edm::EventSetup& iSetup) {
1330  //
1331  //--- Check the time length of the Run from the lumi section plots
1332 
1333  TH1F* tlumisec;
1334 
1335  MonitorElement* meLumiSec = map_dijet_MEs["aaa"];
1336  meLumiSec = map_dijet_MEs["JetMET/lumisec"];
1337 
1338  int totlsec = 0;
1339  int totlssecsum = 0;
1340  double totltime = 0.;
1341  if (meLumiSec && meLumiSec->getRootObject()) {
1342  tlumisec = meLumiSec->getTH1F();
1343  //check overflow bin (if we have more than 2500 LS in a run)
1344  //lumisec is filled every time the analyze section is processed
1345  //we know an LS is present only once in a run: normalize how many events we had on average
1346  //if lumi fluctuates strongly might be unreliable for overflow bin though
1347  for (int i = 0; i < (tlumisec->GetNbinsX()); i++) {
1348  if (tlumisec->GetBinContent(i) != 0) {
1349  totlsec += 1;
1350  totlssecsum += tlumisec->GetBinContent(i);
1351  }
1352  }
1353  int num_per_ls = (double)totlssecsum / (double)totlsec;
1354  totlsec = totlsec + tlumisec->GetBinContent(tlumisec->GetNbinsX() + 1) / (double)num_per_ls;
1355  totltime = double(totlsec * 90); // one lumi sec ~ 90 (sec)
1356  }
1357 
1358  if (totltime == 0.)
1359  totltime = 1.;
1360 
1361  std::string dirName = FolderName_ + metCollectionLabel_.label() + "/";
1362  //dbe_->setCurrentFolder(dirName);
1363 
1364  //below is the original METAnalyzer formulation
1365 
1366  for (std::vector<std::string>::const_iterator ic = folderNames_.begin(); ic != folderNames_.end(); ic++) {
1368  DirName = dirName + *ic;
1369  makeRatePlot(DirName, totltime);
1370  for (std::vector<GenericTriggerEventFlag*>::const_iterator it = triggerFolderEventFlag_.begin();
1371  it != triggerFolderEventFlag_.end();
1372  it++) {
1373  int pos = it - triggerFolderEventFlag_.begin();
1374  if ((*it)->on()) {
1375  makeRatePlot(DirName + "/" + triggerFolderLabels_[pos], totltime);
1376  }
1377  }
1378  }
1379 }
1380 
1381 // ***********************************************************
1383  //dbe_->setCurrentFolder(DirName);
1384  MonitorElement* meMET = map_dijet_MEs[DirName + "/" + "MET"];
1385  MonitorElement* mMETRate = map_dijet_MEs[DirName + "/" + "METRate"];
1386 
1387  TH1F* tMET;
1388  TH1F* tMETRate;
1389 
1390  if (meMET && mMETRate) {
1391  if (meMET->getRootObject() && mMETRate->getRootObject()) {
1392  tMET = meMET->getTH1F();
1393 
1394  // Integral plot & convert number of events to rate (hz)
1395  tMETRate = (TH1F*)tMET->Clone("METRateHist");
1396  for (int i = tMETRate->GetNbinsX() - 1; i >= 0; i--) {
1397  mMETRate->setBinContent(i + 1, tMETRate->GetBinContent(i + 2) + tMET->GetBinContent(i + 1));
1398  }
1399  for (int i = 0; i < tMETRate->GetNbinsX(); i++) {
1400  mMETRate->setBinContent(i + 1, tMETRate->GetBinContent(i + 1) / double(totltime));
1401  }
1402  }
1403  }
1404 }
1405 
1406 // ***********************************************************
1408  // *** Fill lumisection ME
1409  int myLuminosityBlock;
1410  myLuminosityBlock = iEvent.luminosityBlock();
1411  if (fill_met_high_level_histo) {
1412  lumisecME = map_dijet_MEs["JetMET/lumisec"];
1413  if (lumisecME && lumisecME->getRootObject())
1414  lumisecME->Fill(myLuminosityBlock);
1415  }
1416 
1417  if (myLuminosityBlock < LSBegin_)
1418  return;
1419  if (myLuminosityBlock > LSEnd_ && LSEnd_ > 0)
1420  return;
1421 
1422  if (verbose_)
1423  std::cout << "METAnalyzer analyze" << std::endl;
1424 
1425  std::string DirName = FolderName_ + metCollectionLabel_.label();
1426 
1427  // ==========================================================
1428  // Trigger information
1429  //
1430  // trigJetMB_=0;
1431  // trigHighPtJet_=0;
1432  // trigLowPtJet_=0;
1433  // trigMinBias_=0;
1434  // trigHighMET_=0;
1435  // // _trig_LowMET=0;
1436  // trigEle_=0;
1437  // trigMuon_=0;
1438  // trigPhysDec_=0;
1439  std::vector<int> triggerFolderDecisions;
1440  triggerFolderDecisions_ = std::vector<int>(triggerFolderEventFlag_.size(), 0);
1441  // **** Get the TriggerResults container
1443  iEvent.getByToken(triggerResultsToken_, triggerResults);
1444 
1445  if (triggerResults.isValid()) {
1447  // Check how many HLT triggers are in triggerResults
1448  int ntrigs = (*triggerResults).size();
1449  if (verbose_)
1450  std::cout << "ntrigs=" << ntrigs << std::endl;
1451  // If index=ntrigs, this HLT trigger doesn't exist in the HLT table for this data.
1452  for (std::vector<GenericTriggerEventFlag*>::const_iterator it = triggerFolderEventFlag_.begin();
1453  it != triggerFolderEventFlag_.end();
1454  it++) {
1455  unsigned int pos = it - triggerFolderEventFlag_.begin();
1456  bool fd = (*it)->accept(iEvent, iSetup);
1457  triggerFolderDecisions_[pos] = fd;
1458  }
1459  allTriggerDecisions_.clear();
1460  for (unsigned int i = 0; i < allTriggerNames_.size(); ++i) {
1461  allTriggerDecisions_.push_back((*triggerResults).accept(i));
1462  //std::cout<<"TR "<<(*triggerResults).size()<<" "<<(*triggerResults).accept(i)<<" "<<allTriggerNames_[i]<<std::endl;
1463  }
1464  }
1465 
1466  // ==========================================================
1467  // MET information
1468 
1469  // **** Get the MET container
1474 
1475  //if(isTCMet_){
1476  //iEvent.getByToken(tcMetToken_, tcmetcoll);
1477  //if(!tcmetcoll.isValid()) return;
1478  //}
1479  if (isCaloMet_) {
1480  iEvent.getByToken(caloMetToken_, calometcoll);
1481  if (!calometcoll.isValid())
1482  return;
1483  }
1484  if (isPFMet_) {
1485  iEvent.getByToken(pfMetToken_, pfmetcoll);
1486  if (!pfmetcoll.isValid())
1487  return;
1488  }
1489  if (isMiniAODMet_) {
1490  iEvent.getByToken(patMetToken_, patmetcoll);
1491  if (!patmetcoll.isValid())
1492  return;
1493  }
1494 
1495  const MET* met = nullptr;
1496  const pat::MET* patmet = nullptr;
1497  const PFMET* pfmet = nullptr;
1498  const CaloMET* calomet = nullptr;
1499  //if(isTCMet_){
1500  //met=&(tcmetcoll->front());
1501  //}
1502  if (isPFMet_) {
1503  assert(!pfmetcoll->empty());
1504  met = &(pfmetcoll->front());
1505  pfmet = &(pfmetcoll->front());
1506  }
1507  if (isCaloMet_) {
1508  assert(!calometcoll->empty());
1509  met = &(calometcoll->front());
1510  calomet = &(calometcoll->front());
1511  }
1512  if (isMiniAODMet_) {
1513  assert(!patmetcoll->empty());
1514  met = &(patmetcoll->front());
1515  patmet = &(patmetcoll->front());
1516  }
1517 
1518  LogTrace("METAnalyzer") << "[METAnalyzer] Call to the MET analyzer";
1519 
1520  // ==========================================================
1521  // TCMET
1522 
1523  //if (/*isTCMet_ || */(isCaloMet_ && metCollectionLabel_.label() == "corMetGlobalMuons")) {
1524 
1525  //iEvent.getByToken(MuonToken_, muonHandle_);
1526  //iEvent.getByToken(TrackToken_, trackHandle_);
1527  //iEvent.getByToken(ElectronToken_, electronHandle_);
1528  //iEvent.getByToken(BeamspotToken_, beamSpotHandle_);
1529  //iEvent.getByToken(tcMETValueMapToken_,tcMetValueMapHandle_);
1530 
1531  //if(!muonHandle_.isValid()) edm::LogInfo("OutputInfo") << "falied to retrieve muon data require by MET Task";
1532  //if(!trackHandle_.isValid()) edm::LogInfo("OutputInfo") << "falied to retrieve track data require by MET Task";
1533  //if(!electronHandle_.isValid()) edm::LogInfo("OutputInfo") << "falied to retrieve electron data require by MET Task";
1534  //if(!beamSpotHandle_.isValid()) edm::LogInfo("OutputInfo") << "falied to retrieve beam spot data require by MET Task";
1535 
1536  //beamSpot_ = ( beamSpotHandle_.isValid() ) ? beamSpotHandle_->position() : math::XYZPoint(0, 0, 0);
1537  //}
1538 
1539  // ==========================================================
1540  bool bJetID = false;
1541  bool bDiJetID = false;
1542  // Jet ID -------------------------------------------------------
1543  //
1544 
1549 
1550  int collsize = -1;
1551 
1552  if (isCaloMet_) {
1553  iEvent.getByToken(caloJetsToken_, caloJets);
1554  if (!caloJets.isValid()) {
1555  LogDebug("") << "METAnalyzer: Could not find calojet product" << std::endl;
1556  if (verbose_)
1557  std::cout << "METAnalyzer: Could not find calojet product" << std::endl;
1558  }
1559  collsize = caloJets->size();
1560  }
1562  //if (isTCMet_){
1563  //iEvent.getByToken(jptJetsToken_, jptJets);
1564  //if (!jptJets.isValid()) {
1565  // LogDebug("") << "METAnalyzer: Could not find jptjet product" << std::endl;
1566  // if (verbose_) std::cout << "METAnalyzer: Could not find jptjet product" << std::endl;
1567  //}
1568  //collsize=jptJets->size();
1569  //}*/
1570 
1571  edm::Handle<edm::ValueMap<reco::JetID> > jetID_ValueMap_Handle;
1572  if (/*isTCMet_ || */ isCaloMet_) {
1573  if (!runcosmics_) {
1574  iEvent.getByToken(jetID_ValueMapToken_, jetID_ValueMap_Handle);
1575  }
1576  }
1577 
1578  if (isMiniAODMet_) {
1579  iEvent.getByToken(patJetsToken_, patJets);
1580  if (!patJets.isValid()) {
1581  LogDebug("") << "METAnalyzer: Could not find patjet product" << std::endl;
1582  if (verbose_)
1583  std::cout << "METAnalyzer: Could not find patjet product" << std::endl;
1584  }
1585  collsize = patJets->size();
1586  }
1587 
1588  if (isPFMet_) {
1589  iEvent.getByToken(pfJetsToken_, pfJets);
1590  if (!pfJets.isValid()) {
1591  LogDebug("") << "METAnalyzer: Could not find pfjet product" << std::endl;
1592  if (verbose_)
1593  std::cout << "METAnalyzer: Could not find pfjet product" << std::endl;
1594  }
1595  collsize = pfJets->size();
1596  }
1597 
1598  unsigned int ind1 = -1;
1599  double pt1 = -1;
1600  bool pass_jetID1 = false;
1601  unsigned int ind2 = -1;
1602  double pt2 = -1;
1603  bool pass_jetID2 = false;
1604 
1606  bool pass_correction_flag = false;
1607  if (!isMiniAODMet_) {
1608  iEvent.getByToken(jetCorrectorToken_, jetCorr);
1609  if (jetCorr.isValid()) {
1610  pass_correction_flag = true;
1611  }
1612  } else {
1613  pass_correction_flag = true;
1614  }
1615  //do loose jet ID-> check threshold on corrected jets
1616  for (int ijet = 0; ijet < collsize; ijet++) {
1617  double pt_jet = -10;
1618  double scale = 1.;
1619  bool iscleaned = false;
1620  if (pass_correction_flag) {
1621  if (isCaloMet_) {
1622  scale = jetCorr->correction((*caloJets)[ijet]);
1623  }
1624  //if(isTCMet_){
1625  //scale = jetCorr->correction((*jptJets)[ijet]);
1626  //}
1627  if (isPFMet_) {
1628  scale = jetCorr->correction((*pfJets)[ijet]);
1629  }
1630  }
1631  if (isCaloMet_) {
1632  pt_jet = scale * (*caloJets)[ijet].pt();
1633  if (pt_jet > ptThreshold_) {
1634  reco::CaloJetRef calojetref(caloJets, ijet);
1635  if (!runcosmics_) {
1636  reco::JetID jetID = (*jetID_ValueMap_Handle)[calojetref];
1637  iscleaned = jetIDFunctorLoose((*caloJets)[ijet], jetID);
1638  } else {
1639  iscleaned = true;
1640  }
1641  }
1642  }
1644  //if(isTCMet_){
1645  //pt_jet=scale*(*jptJets)[ijet].pt();
1646  //if(pt_jet> ptThreshold_){
1647  // const edm::RefToBase<reco::Jet>& rawJet = (*jptJets)[ijet].getCaloJetRef();
1648  // const reco::CaloJet *rawCaloJet = dynamic_cast<const reco::CaloJet*>(&*rawJet);
1649  // reco::CaloJetRef const theCaloJetRef = (rawJet).castTo<reco::CaloJetRef>();
1650  // if(!runcosmics_){
1651  // reco::JetID jetID = (*jetID_ValueMap_Handle)[theCaloJetRef];
1652  // iscleaned = jetIDFunctorLoose(*rawCaloJet, jetID);
1653  // }else{
1654  // iscleaned=true;
1655  // }
1656  //}
1657  //}*/
1658  if (isPFMet_) {
1659  pt_jet = scale * (*pfJets)[ijet].pt();
1660  if (pt_jet > ptThreshold_) {
1661  iscleaned = pfjetIDFunctorLoose((*pfJets)[ijet]);
1662  }
1663  }
1664  if (isMiniAODMet_) {
1665  pt_jet = (*patJets)[ijet].pt();
1666  if (pt_jet > ptThreshold_) {
1667  pat::strbitset stringbitset = pfjetIDFunctorLoose.getBitTemplate();
1668  iscleaned = pfjetIDFunctorLoose((*patJets)[ijet], stringbitset);
1669  }
1670  }
1671  if (iscleaned) {
1672  bJetID = true;
1673  }
1674  if (pt_jet > pt1) {
1675  pt2 = pt1;
1676  ind2 = ind1;
1677  pass_jetID2 = pass_jetID1;
1678  pt1 = pt_jet;
1679  ind1 = ijet;
1680  pass_jetID1 = iscleaned;
1681  } else if (pt_jet > pt2) {
1682  pt2 = pt_jet;
1683  ind2 = ijet;
1684  pass_jetID2 = iscleaned;
1685  }
1686  }
1687  if (pass_jetID1 && pass_jetID2) {
1688  double dphi = -1.0;
1689  if (isCaloMet_) {
1690  dphi = fabs((*caloJets)[ind1].phi() - (*caloJets)[ind2].phi());
1691  }
1693  //dphi=fabs((*jptJets)[ind1].phi()-(*jptJets)[ind2].phi());
1694  //}*/
1695  if (isPFMet_) {
1696  dphi = fabs((*pfJets)[ind1].phi() - (*pfJets)[ind2].phi());
1697  }
1698  if (isMiniAODMet_) {
1699  dphi = fabs((*patJets)[0].phi() - (*patJets)[1].phi());
1700  }
1701  if (dphi > acos(-1.)) {
1702  dphi = 2 * acos(-1.) - dphi;
1703  }
1704  if (dphi > 2.7) {
1705  bDiJetID = true;
1706  }
1707  }
1708  // ==========================================================
1709  // ==========================================================
1710  //Vertex information
1711  Handle<VertexCollection> vertexHandle;
1712  iEvent.getByToken(vertexToken_, vertexHandle);
1713 
1714  if (!vertexHandle.isValid()) {
1715  LogDebug("") << "CaloMETAnalyzer: Could not find vertex collection" << std::endl;
1716  if (verbose_)
1717  std::cout << "CaloMETAnalyzer: Could not find vertex collection" << std::endl;
1718  }
1719  numPV_ = 0;
1720  if (vertexHandle.isValid()) {
1721  VertexCollection vertexCollection = *(vertexHandle.product());
1722  numPV_ = vertexCollection.size();
1723  }
1724  bool bPrimaryVertex = (bypassAllPVChecks_ || (numPV_ > 0));
1725 
1726  bool bZJets = false;
1727 
1729  iEvent.getByToken(MuonsToken_, Muons);
1730 
1732 
1733  double pt_muon0 = -1;
1734  double pt_muon1 = -1;
1735  int mu_index0 = -1;
1736  int mu_index1 = -1;
1737  //fill it only for cleaned jets
1738  if (Muons.isValid() && Muons->size() > 1) {
1739  for (unsigned int i = 0; i < Muons->size(); i++) {
1740  bool pass_muon_id = false;
1741  bool pass_muon_iso = false;
1742  double dxy = fabs((*Muons)[i].muonBestTrack()->dxy());
1743  double dz = fabs((*Muons)[i].muonBestTrack()->dz());
1744  if (numPV_ > 0) {
1745  dxy = fabs((*Muons)[i].muonBestTrack()->dxy((*vertexHandle)[0].position()));
1746  dz = fabs((*Muons)[i].muonBestTrack()->dz((*vertexHandle)[0].position()));
1747  }
1748  if ((*Muons)[i].pt() > 20 && fabs((*Muons)[i].eta()) < 2.3) {
1749  if ((*Muons)[i].isGlobalMuon() && (*Muons)[i].isPFMuon() &&
1750  (*Muons)[i].globalTrack()->hitPattern().numberOfValidMuonHits() > 0 &&
1751  (*Muons)[i].numberOfMatchedStations() > 1 && dxy < 0.2 && (*Muons)[i].numberOfMatchedStations() > 1 &&
1752  dz < 0.5 && (*Muons)[i].innerTrack()->hitPattern().numberOfValidPixelHits() > 0 &&
1753  (*Muons)[i].innerTrack()->hitPattern().trackerLayersWithMeasurement() > 5) {
1754  pass_muon_id = true;
1755  }
1756  // Muon pf isolation DB corrected
1757  float muonIsoPFdb =
1758  ((*Muons)[i].pfIsolationR04().sumChargedHadronPt +
1759  std::max(0.,
1760  (*Muons)[i].pfIsolationR04().sumNeutralHadronEt + (*Muons)[i].pfIsolationR04().sumPhotonEt -
1761  0.5 * (*Muons)[i].pfIsolationR04().sumPUPt)) /
1762  (*Muons)[i].pt();
1763  if (muonIsoPFdb < 0.12) {
1764  pass_muon_iso = true;
1765  }
1766 
1767  if (pass_muon_id && pass_muon_iso) {
1768  if ((*Muons)[i].pt() > pt_muon0) {
1769  mu_index1 = mu_index0;
1770  pt_muon1 = pt_muon0;
1771  mu_index0 = i;
1772  pt_muon0 = (*Muons)[i].pt();
1773  } else if ((*Muons)[i].pt() > pt_muon1) {
1774  mu_index1 = i;
1775  pt_muon1 = (*Muons)[i].pt();
1776  }
1777  }
1778  }
1779  }
1780  if (mu_index0 >= 0 && mu_index1 >= 0) {
1781  if ((*Muons)[mu_index0].charge() * (*Muons)[mu_index1].charge() < 0) {
1782  zCand = (*Muons)[mu_index0].polarP4() + (*Muons)[mu_index1].polarP4();
1783  if (fabs(zCand.M() - 91.) < 20) {
1784  bZJets = true;
1785  }
1786  }
1787  }
1788  }
1789 
1790  // ==========================================================
1791 
1793  iEvent.getByToken(gtToken_, gtReadoutRecord);
1794 
1795  bool techTriggerResultBxM2 = false;
1796  bool techTriggerResultBxM1 = false;
1797  bool techTriggerResultBx0 = false;
1798 
1799  if (!gtReadoutRecord.isValid()) {
1800  LogDebug("") << "METAnalyzer: Could not find GT readout record" << std::endl;
1801  if (verbose_)
1802  std::cout << "METAnalyzer: Could not find GT readout record product" << std::endl;
1803  } else {
1804  // trigger results before mask for BxInEvent -2 (E), -1 (F), 0 (L1A), 1, 2
1805  const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBxM2 = gtReadoutRecord->technicalTriggerWord(-2);
1806  const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBxM1 = gtReadoutRecord->technicalTriggerWord(-1);
1807  const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBx0 = gtReadoutRecord->technicalTriggerWord();
1808  //const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBxG = gtReadoutRecord->technicalTriggerWord(1);
1809  //const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBxH = gtReadoutRecord->technicalTriggerWord(2);
1810  if (m_bitAlgTechTrig_ > -1 && !technicalTriggerWordBeforeMaskBx0.empty()) {
1811  techTriggerResultBx0 = technicalTriggerWordBeforeMaskBx0.at(m_bitAlgTechTrig_);
1812  if (techTriggerResultBx0 != 0) {
1813  techTriggerResultBxM2 = technicalTriggerWordBeforeMaskBxM2.at(m_bitAlgTechTrig_);
1814  techTriggerResultBxM1 = technicalTriggerWordBeforeMaskBxM1.at(m_bitAlgTechTrig_);
1815  }
1816  }
1817  }
1818 
1819  std::vector<bool> trigger_flag(4, false);
1820  if (techTriggerResultBx0 && techTriggerResultBxM2 &&
1821  techTriggerResultBxM1) { //current and previous two bunches filled
1822  trigger_flag[0] = true;
1823  }
1824  if (techTriggerResultBx0 && techTriggerResultBxM1) { //current and previous bunch filled
1825  trigger_flag[1] = true;
1826  }
1827  if (techTriggerResultBx0 && !techTriggerResultBxM1) { //current bunch filled, but previous bunch emtpy
1828  trigger_flag[2] = true;
1829  }
1830  if (techTriggerResultBx0 && !techTriggerResultBxM2 &&
1831  !techTriggerResultBxM1) { //current bunch filled, but previous two bunches emtpy
1832  trigger_flag[3] = true;
1833  }
1834  std::vector<bool> filter_decisions(
1835  8, false); //include all recommended filters, old filters in MiniAOD, and 2 new filters in testing phase
1836  if (!isMiniAODMet_ &&
1837  !runcosmics_) { //not checked for MiniAOD -> for miniaod decision filled as "triggerResults" bool
1838  edm::Handle<bool> HBHENoiseFilterResultHandle;
1839  iEvent.getByToken(hbheNoiseFilterResultToken_, HBHENoiseFilterResultHandle);
1840  if (!HBHENoiseFilterResultHandle.isValid()) {
1841  LogDebug("") << "METAnalyzer: Could not find HBHENoiseFilterResult" << std::endl;
1842  if (verbose_)
1843  std::cout << "METAnalyzer: Could not find HBHENoiseFilterResult" << std::endl;
1844  }
1845  filter_decisions[0] = *HBHENoiseFilterResultHandle;
1846  edm::Handle<bool> CSCTightHaloFilterResultHandle;
1847  iEvent.getByToken(CSCHaloResultToken_, CSCTightHaloFilterResultHandle);
1848  if (!CSCTightHaloFilterResultHandle.isValid()) {
1849  LogDebug("") << "METAnalyzer: Could not find CSCTightHaloFilterResultHandle" << std::endl;
1850  if (verbose_)
1851  std::cout << "METAnalyzer: CSCTightHaloFilterResultHandle" << std::endl;
1852  }
1853  filter_decisions[1] = *CSCTightHaloFilterResultHandle;
1854  edm::Handle<bool> eeBadScFilterResultHandle;
1855  iEvent.getByToken(eeBadScFilterToken_, eeBadScFilterResultHandle);
1856  if (!eeBadScFilterResultHandle.isValid()) {
1857  LogDebug("") << "METAnalyzer: Could not find eeBadScFilterResultHandle" << std::endl;
1858  if (verbose_)
1859  std::cout << "METAnalyzer: eeBadScFilterResultHandle" << std::endl;
1860  }
1861  filter_decisions[2] = *eeBadScFilterResultHandle;
1862  edm::Handle<bool> HBHENoiseIsoFilterResultHandle;
1863  iEvent.getByToken(hbheIsoNoiseFilterResultToken_, HBHENoiseIsoFilterResultHandle);
1864  if (!HBHENoiseIsoFilterResultHandle.isValid()) {
1865  LogDebug("") << "METAnalyzer: Could not find HBHENoiseIsoFilterResult" << std::endl;
1866  if (verbose_)
1867  std::cout << "METAnalyzer: Could not find HBHENoiseIsoFilterResult" << std::endl;
1868  }
1869  filter_decisions[3] = *HBHENoiseIsoFilterResultHandle;
1870  edm::Handle<bool> CSCTightHalo2015FilterResultHandle;
1871  iEvent.getByToken(CSCHalo2015ResultToken_, CSCTightHalo2015FilterResultHandle);
1872  if (!CSCTightHalo2015FilterResultHandle.isValid()) {
1873  LogDebug("") << "METAnalyzer: Could not find CSCTightHalo2015FilterResultHandle" << std::endl;
1874  if (verbose_)
1875  std::cout << "METAnalyzer: CSCTightHalo2015FilterResultHandle" << std::endl;
1876  }
1877  filter_decisions[4] = *CSCTightHalo2015FilterResultHandle;
1878  edm::Handle<bool> EcalDeadCellTriggerFilterResultHandle;
1879  iEvent.getByToken(EcalDeadCellTriggerToken_, EcalDeadCellTriggerFilterResultHandle);
1880  if (!EcalDeadCellTriggerFilterResultHandle.isValid()) {
1881  LogDebug("") << "METAnalyzer: Could not find EcalDeadCellTriggerFilterResultHandle" << std::endl;
1882  if (verbose_)
1883  std::cout << "METAnalyzer: EcalDeadCellTriggerFilterResultHandle" << std::endl;
1884  }
1885  filter_decisions[5] = *EcalDeadCellTriggerFilterResultHandle;
1886  edm::Handle<bool> EcalDeadCellBoundaryHandle;
1887  iEvent.getByToken(EcalDeadCellBoundaryToken_, EcalDeadCellBoundaryHandle);
1888  if (!EcalDeadCellBoundaryHandle.isValid()) {
1889  LogDebug("") << "METAnalyzer: Could not find EcalDeadCellBoundaryHandle" << std::endl;
1890  if (verbose_)
1891  std::cout << "METAnalyzer: EcalDeadCellBoundaryHandle" << std::endl;
1892  }
1893  filter_decisions[6] = *EcalDeadCellBoundaryHandle;
1894  edm::Handle<bool> HcalStripHaloFilterHandle;
1895  iEvent.getByToken(HcalStripHaloToken_, HcalStripHaloFilterHandle);
1896  if (!HcalStripHaloFilterHandle.isValid()) {
1897  LogDebug("") << "METAnalyzer: Could not find CSCTightHalo2015FilterResultHandle" << std::endl;
1898  if (verbose_)
1899  std::cout << "METAnalyzer: CSCTightHalo2015FilterResultHandle" << std::endl;
1900  }
1901  filter_decisions[7] = *HcalStripHaloFilterHandle;
1902  } else if (isMiniAODMet_) {
1903  //miniaodFilterIndex_ is only filled in dqmBeginRun if isMiniAODMet_ true
1904  edm::Handle<edm::TriggerResults> metFilterResults;
1905  iEvent.getByToken(METFilterMiniAODToken_, metFilterResults);
1906  if (metFilterResults.isValid()) {
1907  if (miniaodFilterIndex_[0] != -1) {
1908  filter_decisions[0] = metFilterResults->accept(miniaodFilterIndex_[0]);
1909  }
1910  if (miniaodFilterIndex_[1] != -1) {
1911  filter_decisions[1] = metFilterResults->accept(miniaodFilterIndex_[1]);
1912  }
1913  if (miniaodFilterIndex_[2] != -1) {
1914  filter_decisions[2] = metFilterResults->accept(miniaodFilterIndex_[2]);
1915  }
1916  if (miniaodFilterIndex_[3] != -1) {
1917  filter_decisions[3] = metFilterResults->accept(miniaodFilterIndex_[3]);
1918  }
1919  if (miniaodFilterIndex_[4] != -1) {
1920  filter_decisions[4] = metFilterResults->accept(miniaodFilterIndex_[4]);
1921  }
1922  if (miniaodFilterIndex_[5] != -1) {
1923  filter_decisions[5] = metFilterResults->accept(miniaodFilterIndex_[5]);
1924  }
1925  if (miniaodFilterIndex_[6] != -1) {
1926  filter_decisions[6] = metFilterResults->accept(miniaodFilterIndex_[6]);
1927  }
1928  if (miniaodFilterIndex_[7] != -1) {
1929  filter_decisions[7] = metFilterResults->accept(miniaodFilterIndex_[7]);
1930  }
1931  } else {
1932  iEvent.getByToken(METFilterMiniAODToken2_, metFilterResults);
1933  if (metFilterResults.isValid()) {
1934  if (miniaodFilterIndex_[0] != -1) {
1935  filter_decisions[0] = metFilterResults->accept(miniaodFilterIndex_[0]);
1936  }
1937  if (miniaodFilterIndex_[1] != -1) {
1938  filter_decisions[1] = metFilterResults->accept(miniaodFilterIndex_[1]);
1939  }
1940  if (miniaodFilterIndex_[2] != -1) {
1941  filter_decisions[2] = metFilterResults->accept(miniaodFilterIndex_[2]);
1942  }
1943  if (miniaodFilterIndex_[3] != -1) {
1944  filter_decisions[3] = metFilterResults->accept(miniaodFilterIndex_[3]);
1945  }
1946  if (miniaodFilterIndex_[4] != -1) {
1947  filter_decisions[4] = metFilterResults->accept(miniaodFilterIndex_[4]);
1948  }
1949  if (miniaodFilterIndex_[5] != -1) {
1950  filter_decisions[5] = metFilterResults->accept(miniaodFilterIndex_[5]);
1951  }
1952  if (miniaodFilterIndex_[6] != -1) {
1953  filter_decisions[6] = metFilterResults->accept(miniaodFilterIndex_[6]);
1954  }
1955  if (miniaodFilterIndex_[7] != -1) {
1956  filter_decisions[7] = metFilterResults->accept(miniaodFilterIndex_[7]);
1957  }
1958  }
1959  }
1960  }
1961  bool HBHENoiseFilterResultFlag = filter_decisions[0]; //setup for RECO and MINIAOD
1962  // ==========================================================
1963  // HCAL Noise filter
1964  bool bHBHENoiseFilter = HBHENoiseFilterResultFlag;
1965 
1966  // DCS Filter
1967  bool bDCSFilter = (bypassAllDCSChecks_ || DCSFilter_->filter(iEvent, iSetup));
1968  // ==========================================================
1969  // Reconstructed MET Information - fill MonitorElements
1970  std::string DirName_old = DirName;
1971  for (std::vector<std::string>::const_iterator ic = folderNames_.begin(); ic != folderNames_.end(); ic++) {
1972  bool pass_selection = false;
1973  if ((*ic == "Uncleaned") && (isCaloMet_ || bPrimaryVertex)) {
1974  fillMESet(iEvent,
1975  DirName_old + "/" + *ic,
1976  *met,
1977  patmet,
1978  pfmet,
1979  calomet,
1980  zCand,
1981  map_dijet_MEs,
1982  trigger_flag,
1983  filter_decisions);
1984  pass_selection = true;
1985  }
1986  //take two lines out for first check
1987  if ((*ic == "Cleaned") && bDCSFilter && bHBHENoiseFilter && bPrimaryVertex && bJetID) {
1988  fillMESet(iEvent,
1989  DirName_old + "/" + *ic,
1990  *met,
1991  patmet,
1992  pfmet,
1993  calomet,
1994  zCand,
1995  map_dijet_MEs,
1996  trigger_flag,
1997  filter_decisions);
1998  pass_selection = true;
1999  }
2000  if ((*ic == "DiJet") && bDCSFilter && bHBHENoiseFilter && bPrimaryVertex && bDiJetID) {
2001  fillMESet(iEvent,
2002  DirName_old + "/" + *ic,
2003  *met,
2004  patmet,
2005  pfmet,
2006  calomet,
2007  zCand,
2008  map_dijet_MEs,
2009  trigger_flag,
2010  filter_decisions);
2011  pass_selection = true;
2012  }
2013  if ((*ic == "ZJets") && bDCSFilter && bHBHENoiseFilter && bPrimaryVertex && bZJets) {
2014  fillMESet(iEvent,
2015  DirName_old + "/" + *ic,
2016  *met,
2017  patmet,
2018  pfmet,
2019  calomet,
2020  zCand,
2021  map_dijet_MEs,
2022  trigger_flag,
2023  filter_decisions);
2024  pass_selection = true;
2025  }
2026  if (pass_selection && isPFMet_) {
2027  DirName = DirName_old + "/" + *ic;
2028  }
2029  }
2030 }
2031 
2032 // ***********************************************************
2035  const reco::MET& met,
2036  const pat::MET* patmet,
2037  const reco::PFMET* pfmet,
2038  const reco::CaloMET* calomet,
2040  std::map<std::string, MonitorElement*>& map_of_MEs,
2041  std::vector<bool> techTriggerCase,
2042  std::vector<bool> METFilterDecision) {
2043  bool bLumiSecPlot = fill_met_high_level_histo;
2044  bool fillPFCandidatePlots = false;
2045  if (DirName.find("Cleaned") != std::string::npos) {
2046  fillPFCandidatePlots = true;
2047  fillMonitorElement(iEvent,
2048  DirName,
2049  std::string(""),
2050  met,
2051  patmet,
2052  pfmet,
2053  calomet,
2054  zCand,
2055  map_of_MEs,
2056  bLumiSecPlot,
2057  fillPFCandidatePlots,
2058  techTriggerCase,
2059  METFilterDecision);
2060  for (unsigned int i = 0; i < triggerFolderLabels_.size(); i++) {
2061  fillPFCandidatePlots = false;
2062  if (triggerFolderDecisions_[i]) {
2063  fillMonitorElement(iEvent,
2064  DirName,
2065  triggerFolderLabels_[i],
2066  met,
2067  patmet,
2068  pfmet,
2069  calomet,
2070  zCand,
2071  map_of_MEs,
2072  bLumiSecPlot,
2073  fillPFCandidatePlots,
2074  techTriggerCase,
2075  METFilterDecision);
2076  }
2077  }
2078  } else if (DirName.find("DiJet") != std::string::npos) {
2079  fillMonitorElement(iEvent,
2080  DirName,
2081  std::string(""),
2082  met,
2083  patmet,
2084  pfmet,
2085  calomet,
2086  zCand,
2087  map_of_MEs,
2088  bLumiSecPlot,
2089  fillPFCandidatePlots,
2090  techTriggerCase,
2091  METFilterDecision);
2092  for (unsigned int i = 0; i < triggerFolderLabels_.size(); i++) {
2093  if (triggerFolderDecisions_[i])
2094  fillMonitorElement(iEvent,
2095  DirName,
2096  triggerFolderLabels_[i],
2097  met,
2098  patmet,
2099  pfmet,
2100  calomet,
2101  zCand,
2102  map_of_MEs,
2103  bLumiSecPlot,
2104  fillPFCandidatePlots,
2105  techTriggerCase,
2106  METFilterDecision);
2107  }
2108  } else if (DirName.find("ZJets") != std::string::npos) {
2109  fillMonitorElement(iEvent,
2110  DirName,
2111  std::string(""),
2112  met,
2113  patmet,
2114  pfmet,
2115  calomet,
2116  zCand,
2117  map_of_MEs,
2118  bLumiSecPlot,
2119  fillPFCandidatePlots,
2120  techTriggerCase,
2121  METFilterDecision);
2122  } else {
2123  fillMonitorElement(iEvent,
2124  DirName,
2125  std::string(""),
2126  met,
2127  patmet,
2128  pfmet,
2129  calomet,
2130  zCand,
2131  map_of_MEs,
2132  bLumiSecPlot,
2133  fillPFCandidatePlots,
2134  techTriggerCase,
2135  METFilterDecision);
2136  }
2137 }
2138 
2139 // ***********************************************************
2142  std::string subFolderName,
2143  const reco::MET& met,
2144  const pat::MET* patmet,
2145  const reco::PFMET* pfmet,
2146  const reco::CaloMET* calomet,
2148  std::map<std::string, MonitorElement*>& map_of_MEs,
2149  bool bLumiSecPlot,
2150  bool fillPFCandidatePlots,
2151  std::vector<bool> techTriggerCase,
2152  std::vector<bool> METFilterDecision) {
2153  bool do_only_Z_histograms = false;
2154  if (DirName.find("ZJets") != std::string::npos) { //do Z plots only
2155  do_only_Z_histograms = true;
2156  //\vec{p}_{T}^{Z}+vec{u}_{T}+\vec{MET}=0
2157 
2158  double u_x = -met.px() - zCand.Px();
2159  double u_y = -met.py() - zCand.Py();
2160 
2161  //protection for VERY special case where Z-Pt==0
2162  double u_par = 0;
2163  double u_perp = sqrt(u_x * u_x + u_y * u_y);
2164  double e_Z_x = 0;
2165  double e_Z_y = 0;
2166  if (zCand.Pt() != 0) {
2167  e_Z_x = zCand.Px() / zCand.Pt();
2168  e_Z_y = zCand.Py() / zCand.Pt();
2169  }
2170  u_par = u_x * e_Z_x + u_y * e_Z_y;
2171  u_perp = -e_Z_y * u_x + e_Z_x * u_y;
2172 
2173  meZJets_u_par = map_of_MEs[DirName + "/" + "u_parallel_Z_inc"];
2174  if (meZJets_u_par && meZJets_u_par->getRootObject())
2175  meZJets_u_par->Fill(u_par);
2176  if (zCand.Pt() < 15) {
2177  meZJets_u_par_ZPt_0_15 = map_of_MEs[DirName + "/" + "u_parallel_ZPt_0_15"];
2178  if (meZJets_u_par_ZPt_0_15 && meZJets_u_par_ZPt_0_15->getRootObject())
2179  meZJets_u_par_ZPt_0_15->Fill(u_par);
2180  } else if (zCand.Pt() < 30) {
2181  meZJets_u_par_ZPt_15_30 = map_of_MEs[DirName + "/" + "u_parallel_ZPt_15_30"];
2182  if (meZJets_u_par_ZPt_15_30 && meZJets_u_par_ZPt_15_30->getRootObject())
2183  meZJets_u_par_ZPt_15_30->Fill(u_par);
2184  } else if (zCand.Pt() < 55) {
2185  meZJets_u_par_ZPt_30_55 = map_of_MEs[DirName + "/" + "u_parallel_ZPt_30_55"];
2186  if (meZJets_u_par_ZPt_30_55 && meZJets_u_par_ZPt_30_55->getRootObject())
2187  meZJets_u_par_ZPt_30_55->Fill(u_par);
2188  } else if (zCand.Pt() < 75) {
2189  meZJets_u_par_ZPt_55_75 = map_of_MEs[DirName + "/" + "u_parallel_ZPt_55_75"];
2190  if (meZJets_u_par_ZPt_55_75 && meZJets_u_par_ZPt_55_75->getRootObject())
2191  meZJets_u_par_ZPt_55_75->Fill(u_par);
2192  } else if (zCand.Pt() < 150) {
2193  meZJets_u_par_ZPt_75_150 = map_of_MEs[DirName + "/" + "u_parallel_ZPt_75_150"];
2194  if (meZJets_u_par_ZPt_75_150 && meZJets_u_par_ZPt_75_150->getRootObject())
2195  meZJets_u_par_ZPt_75_150->Fill(u_par);
2196  } else if (zCand.Pt() < 290) {
2197  meZJets_u_par_ZPt_150_290 = map_of_MEs[DirName + "/" + "u_parallel_ZPt_150_290"];
2198  if (meZJets_u_par_ZPt_150_290 && meZJets_u_par_ZPt_150_290->getRootObject())
2199  meZJets_u_par_ZPt_150_290->Fill(u_par);
2200  } else {
2201  meZJets_u_par_ZPt_290 = map_of_MEs[DirName + "/" + "u_parallel_ZPt_290"];
2202  if (meZJets_u_par_ZPt_290 && meZJets_u_par_ZPt_290->getRootObject())
2203  meZJets_u_par_ZPt_290->Fill(u_par);
2204  }
2205 
2206  meZJets_u_perp = map_of_MEs[DirName + "/" + "u_perp_Z_inc"];
2207  if (meZJets_u_perp && meZJets_u_perp->getRootObject())
2208  meZJets_u_perp->Fill(u_perp);
2209  if (zCand.Pt() < 15) {
2210  meZJets_u_perp_ZPt_0_15 = map_of_MEs[DirName + "/" + "u_perp_ZPt_0_15"];
2211  if (meZJets_u_perp_ZPt_0_15 && meZJets_u_perp_ZPt_0_15->getRootObject())
2212  meZJets_u_perp_ZPt_0_15->Fill(u_perp);
2213  } else if (zCand.Pt() < 30) {
2214  meZJets_u_perp_ZPt_15_30 = map_of_MEs[DirName + "/" + "u_perp_ZPt_15_30"];
2215  if (meZJets_u_perp_ZPt_15_30 && meZJets_u_perp_ZPt_15_30->getRootObject())
2216  meZJets_u_perp_ZPt_15_30->Fill(u_perp);
2217  } else if (zCand.Pt() < 55) {
2218  meZJets_u_perp_ZPt_30_55 = map_of_MEs[DirName + "/" + "u_perp_ZPt_30_55"];
2219  if (meZJets_u_perp_ZPt_30_55 && meZJets_u_perp_ZPt_30_55->getRootObject())
2220  meZJets_u_perp_ZPt_30_55->Fill(u_perp);
2221  } else if (zCand.Pt() < 75) {
2222  meZJets_u_perp_ZPt_55_75 = map_of_MEs[DirName + "/" + "u_perp_ZPt_55_75"];
2223  if (meZJets_u_perp_ZPt_55_75 && meZJets_u_perp_ZPt_55_75->getRootObject())
2224  meZJets_u_perp_ZPt_55_75->Fill(u_perp);
2225  } else if (zCand.Pt() < 150) {
2226  meZJets_u_perp_ZPt_75_150 = map_of_MEs[DirName + "/" + "u_perp_ZPt_75_150"];
2227  if (meZJets_u_perp_ZPt_75_150 && meZJets_u_perp_ZPt_75_150->getRootObject())
2228  meZJets_u_perp_ZPt_75_150->Fill(u_perp);
2229  } else if (zCand.Pt() < 290) {
2230  meZJets_u_perp_ZPt_150_290 = map_of_MEs[DirName + "/" + "u_perp_ZPt_150_290"];
2231  if (meZJets_u_perp_ZPt_150_290 && meZJets_u_perp_ZPt_150_290->getRootObject())
2232  meZJets_u_perp_ZPt_150_290->Fill(u_perp);
2233  } else {
2234  meZJets_u_perp_ZPt_290 = map_of_MEs[DirName + "/" + "u_perp_ZPt_290"];
2235  if (meZJets_u_perp_ZPt_290 && meZJets_u_perp_ZPt_290->getRootObject())
2236  meZJets_u_perp_ZPt_290->Fill(u_perp);
2237  }
2238  }
2239  if (!do_only_Z_histograms) {
2240  // Reconstructed MET Information
2241  double SumET = met.sumEt();
2242  double METSig = met.mEtSig();
2243  //double Ez = met.e_longitudinal();
2244  double MET = met.pt();
2245  double MEx = met.px();
2246  double MEy = met.py();
2247  double METPhi = met.phi();
2248  //
2249  int myLuminosityBlock;
2250  myLuminosityBlock = iEvent.luminosityBlock();
2251  //
2252 
2253  if (!subFolderName.empty()) {
2254  DirName = DirName + "/" + subFolderName;
2255  }
2256 
2257  hTrigger = map_of_MEs[DirName + "/triggerResults"];
2258  if (hTrigger && hTrigger->getRootObject()) {
2259  for (unsigned int i = 0; i < allTriggerDecisions_.size(); i++) {
2260  if (i < (unsigned int)hTrigger->getNbinsX()) {
2261  hTrigger->Fill(i + .5, allTriggerDecisions_[i]);
2262  }
2263  }
2264  }
2265 
2266  hMEx = map_of_MEs[DirName + "/" + "MEx"];
2267  if (hMEx && hMEx->getRootObject())
2268  hMEx->Fill(MEx);
2269  hMEy = map_of_MEs[DirName + "/" + "MEy"];
2270  if (hMEy && hMEy->getRootObject())
2271  hMEy->Fill(MEy);
2272  hMET = map_of_MEs[DirName + "/" + "MET"];
2273  if (hMET && hMET->getRootObject())
2274  hMET->Fill(MET);
2275  hMET_2 = map_of_MEs[DirName + "/" + "MET_2"];
2276  if (hMET_2 && hMET_2->getRootObject())
2277  hMET_2->Fill(MET);
2278 
2279  //hMET_HBHENoiseFilter = ibooker.book1D("MET_HBHENoiseFilter", "MET_HBHENoiseFiltered", 200, 0, 1000);
2280  //hMET_CSCTightHaloFilter = ibooker.book1D("MET_CSCTightHaloFilter", "MET_CSCTightHaloFiltered", 200, 0, 1000);
2281  //hMET_eeBadScFilter = ibooker.book1D("MET_eeBadScFilter", "MET_eeBadScFiltered", 200, 0, 1000);
2282  //hMET_HBHEIsoNoiseFilter = ibooker.book1D("MET_HBHEIsoNoiseFilter", "MET_HBHEIsoNoiseFiltered", 200, 0, 1000);
2283  //hMET_CSCTightHalo2015Filter = ibooker.book1D("MET_CSCTightHalo2015Filter", "MET_CSCTightHalo2015Filtered", 200, 0, 1000);
2284  //hMET_EcalDeadCellTriggerFilter = ibooker.book1D("MET_EcalDeadCellTriggerFilter", "MET_EcalDeadCellTriggerFiltered", 200, 0, 1000);
2285  //hMET_EcalDeadCellBoundaryFilter = ibooker.book1D("MET_EcalDeadCellBoundaryFilter", "MET_EcalDeadCellBoundaryFiltered", 200, 0, 1000);
2286  //hMET_HcalStripHaloFilter = ibooker.book1D("MET_HcalStripHaloFilter", "MET_HcalStripHaloFiltered", 200, 0, 1000);
2287 
2288  bool HBHENoiseFilterResult = false;
2289  bool CSCTightHaloFilterResult = false;
2290  bool eeBadScFilterResult = false;
2291  bool HBHEIsoNoiseFilterResult = false;
2292  bool CSCTightHalo2015FilterResult = false;
2293  bool EcalDeadCellTriggerFilterResult = false;
2294  bool EcalDeadCellBoundaryFilterResult = false;
2295  bool HcalStripHaloFilterResult = false;
2296  HBHENoiseFilterResult = METFilterDecision[0];
2297  if (HBHENoiseFilterResult) {
2298  hMET_HBHENoiseFilter = map_of_MEs[DirName + "/" + "MET_HBHENoiseFilter"];
2299  if (hMET_HBHENoiseFilter && hMET_HBHENoiseFilter->getRootObject())
2300  hMET_HBHENoiseFilter->Fill(MET);
2301  }
2302  CSCTightHaloFilterResult = METFilterDecision[1];
2303  if (CSCTightHaloFilterResult) {
2304  hMET_CSCTightHaloFilter = map_of_MEs[DirName + "/" + "MET_CSCTightHaloFilter"];
2305  if (hMET_CSCTightHaloFilter && hMET_CSCTightHaloFilter->getRootObject())
2306  hMET_CSCTightHaloFilter->Fill(MET);
2307  }
2308  eeBadScFilterResult = METFilterDecision[2];
2309  if (eeBadScFilterResult) {
2310  hMET_eeBadScFilter = map_of_MEs[DirName + "/" + "MET_eeBadScFilter"];
2311  if (hMET_eeBadScFilter && hMET_eeBadScFilter->getRootObject())
2312  hMET_eeBadScFilter->Fill(MET);
2313  }
2314  HBHEIsoNoiseFilterResult = METFilterDecision[3];
2315  if (HBHEIsoNoiseFilterResult) {
2316  hMET_HBHEIsoNoiseFilter = map_of_MEs[DirName + "/" + "MET_HBHEIsoNoiseFilter"];
2317  if (hMET_HBHEIsoNoiseFilter && hMET_HBHEIsoNoiseFilter->getRootObject())
2318  hMET_HBHEIsoNoiseFilter->Fill(MET);
2319  }
2320  CSCTightHalo2015FilterResult = METFilterDecision[4];
2321  if (CSCTightHalo2015FilterResult) {
2322  hMET_CSCTightHalo2015Filter = map_of_MEs[DirName + "/" + "MET_CSCTightHalo2015Filter"];
2323  if (hMET_CSCTightHalo2015Filter && hMET_CSCTightHalo2015Filter->getRootObject())
2324  hMET_CSCTightHalo2015Filter->Fill(MET);
2325  }
2326  EcalDeadCellTriggerFilterResult = METFilterDecision[5];
2327  if (EcalDeadCellTriggerFilterResult) {
2328  hMET_EcalDeadCellTriggerFilter = map_of_MEs[DirName + "/" + "MET_EcalDeadCellTriggerFilter"];
2329  if (hMET_EcalDeadCellTriggerFilter && hMET_EcalDeadCellTriggerFilter->getRootObject())
2330  hMET_EcalDeadCellTriggerFilter->Fill(MET);
2331  }
2332  EcalDeadCellBoundaryFilterResult = METFilterDecision[6];
2333  if (EcalDeadCellBoundaryFilterResult) {
2334  hMET_EcalDeadCellBoundaryFilter = map_of_MEs[DirName + "/" + "MET_EcalDeadCellBoundaryFilter"];
2335  if (hMET_EcalDeadCellBoundaryFilter && hMET_EcalDeadCellBoundaryFilter->getRootObject())
2336  hMET_EcalDeadCellBoundaryFilter->Fill(MET);
2337  }
2338  HcalStripHaloFilterResult = METFilterDecision[7];
2339  if (HcalStripHaloFilterResult) {
2340  hMET_HcalStripHaloFilter = map_of_MEs[DirName + "/" + "MET_HcalStripHaloFilter"];
2341  if (hMET_HcalStripHaloFilter && hMET_HcalStripHaloFilter->getRootObject())
2342  hMET_HcalStripHaloFilter->Fill(MET);
2343  }
2344  hMETPhi = map_of_MEs[DirName + "/" + "METPhi"];
2345  if (hMETPhi && hMETPhi->getRootObject())
2346  hMETPhi->Fill(METPhi);
2347  hSumET = map_of_MEs[DirName + "/" + "SumET"];
2348  if (hSumET && hSumET->getRootObject())
2349  hSumET->Fill(SumET);
2350  hMETSig = map_of_MEs[DirName + "/" + "METSig"];
2351  if (hMETSig && hMETSig->getRootObject())
2352  hMETSig->Fill(METSig);
2353  hMET_logx = map_of_MEs[DirName + "/" + "MET_logx"];
2354  if (hMET_logx && hMET_logx->getRootObject())
2355  hMET_logx->Fill(log10(MET));
2356  hSumET_logx = map_of_MEs[DirName + "/" + "SumET_logx"];
2357  if (hSumET_logx && hSumET_logx->getRootObject())
2358  hSumET_logx->Fill(log10(SumET));
2359 
2360  // Fill NPV profiles
2361  //--------------------------------------------------------------------------
2362  meMEx_profile = map_of_MEs[DirName + "/MEx_profile"];
2363  meMEy_profile = map_of_MEs[DirName + "/MEy_profile"];
2364  meMET_profile = map_of_MEs[DirName + "/MET_profile"];
2365  meSumET_profile = map_of_MEs[DirName + "/SumET_profile"];
2366 
2367  if (meMEx_profile && meMEx_profile->getRootObject())
2368  meMEx_profile->Fill(numPV_, MEx);
2369  if (meMEy_profile && meMEy_profile->getRootObject())
2370  meMEy_profile->Fill(numPV_, MEy);
2371  if (meMET_profile && meMET_profile->getRootObject())
2372  meMET_profile->Fill(numPV_, MET);
2373  if (meSumET_profile && meSumET_profile->getRootObject())
2374  meSumET_profile->Fill(numPV_, SumET);
2375 
2376  if (isCaloMet_) {
2377  //const reco::CaloMETCollection *calometcol = calometcoll.product();
2378  //const reco::CaloMET *calomet;
2379  //calomet = &(calometcol->front());
2380 
2381  double caloEtFractionHadronic = calomet->etFractionHadronic();
2382  double caloEmEtFraction = calomet->emEtFraction();
2383 
2384  double caloHadEtInHB = calomet->hadEtInHB();
2385  double caloHadEtInHO = calomet->hadEtInHO();
2386  double caloHadEtInHE = calomet->hadEtInHE();
2387  double caloHadEtInHF = calomet->hadEtInHF();
2388  double caloEmEtInEB = calomet->emEtInEB();
2389  double caloEmEtInEE = calomet->emEtInEE();
2390  double caloEmEtInHF = calomet->emEtInHF();
2391 
2392  hCaloHadEtInHB = map_of_MEs[DirName + "/" + "CaloHadEtInHB"];
2393  if (hCaloHadEtInHB && hCaloHadEtInHB->getRootObject())
2394  hCaloHadEtInHB->Fill(caloHadEtInHB);
2395  hCaloHadEtInHO = map_of_MEs[DirName + "/" + "CaloHadEtInHO"];
2396  if (hCaloHadEtInHO && hCaloHadEtInHO->getRootObject())
2397  hCaloHadEtInHO->Fill(caloHadEtInHO);
2398  hCaloHadEtInHE = map_of_MEs[DirName + "/" + "CaloHadEtInHE"];
2399  if (hCaloHadEtInHE && hCaloHadEtInHE->getRootObject())
2400  hCaloHadEtInHE->Fill(caloHadEtInHE);
2401  hCaloHadEtInHF = map_of_MEs[DirName + "/" + "CaloHadEtInHF"];
2402  if (hCaloHadEtInHF && hCaloHadEtInHF->getRootObject())
2403  hCaloHadEtInHF->Fill(caloHadEtInHF);
2404  hCaloEmEtInEB = map_of_MEs[DirName + "/" + "CaloEmEtInEB"];
2405  if (hCaloEmEtInEB && hCaloEmEtInEB->getRootObject())
2406  hCaloEmEtInEB->Fill(caloEmEtInEB);
2407  hCaloEmEtInEE = map_of_MEs[DirName + "/" + "CaloEmEtInEE"];
2408  if (hCaloEmEtInEE && hCaloEmEtInEE->getRootObject())
2409  hCaloEmEtInEE->Fill(caloEmEtInEE);
2410  hCaloEmEtInHF = map_of_MEs[DirName + "/" + "CaloEmEtInHF"];
2411  if (hCaloEmEtInHF && hCaloEmEtInHF->getRootObject())
2412  hCaloEmEtInHF->Fill(caloEmEtInHF);
2413 
2414  hCaloMETPhi020 = map_of_MEs[DirName + "/" + "CaloMETPhi020"];
2415  if (MET > 20. && hCaloMETPhi020 && hCaloMETPhi020->getRootObject()) {
2416  hCaloMETPhi020->Fill(METPhi);
2417  }
2418 
2419  hCaloEtFractionHadronic = map_of_MEs[DirName + "/" + "CaloEtFractionHadronic"];
2420  if (hCaloEtFractionHadronic && hCaloEtFractionHadronic->getRootObject())
2421  hCaloEtFractionHadronic->Fill(caloEtFractionHadronic);
2422  hCaloEmEtFraction = map_of_MEs[DirName + "/" + "CaloEmEtFraction"];
2423  if (hCaloEmEtFraction && hCaloEmEtFraction->getRootObject())
2424  hCaloEmEtFraction->Fill(caloEmEtFraction);
2425  hCaloEmEtFraction020 = map_of_MEs[DirName + "/" + "CaloEmEtFraction020"];
2426  if (MET > 20. && hCaloEmEtFraction020 && hCaloEmEtFraction020->getRootObject())
2427  hCaloEmEtFraction020->Fill(caloEmEtFraction);
2428  }
2429  if (isPFMet_) {
2430  if (fillPFCandidatePlots && fillCandidateMap_histos) {
2431  for (unsigned int i = 0; i < countsPFCand_.size(); i++) {
2432  countsPFCand_[i] = 0;
2433  MExPFCand_[i] = 0.;
2434  MEyPFCand_[i] = 0.;
2435  }
2436 
2437  // typedef std::vector<reco::PFCandidate> pfCand;
2439  iEvent.getByToken(pflowToken_, particleFlow);
2440 
2441  float pt_sum_CHF_Barrel = 0;
2442  float pt_sum_CHF_Endcap_plus = 0;
2443  float pt_sum_CHF_Endcap_minus = 0;
2444  float pt_sum_NHF_Barrel = 0;
2445  float pt_sum_NHF_Endcap_plus = 0;
2446  float pt_sum_NHF_Endcap_minus = 0;
2447  float pt_sum_PhF_Barrel = 0;
2448  float pt_sum_PhF_Endcap_plus = 0;
2449  float pt_sum_PhF_Endcap_minus = 0;
2450  float pt_sum_HFH_plus = 0;
2451  float pt_sum_HFH_minus = 0;
2452  float pt_sum_HFE_plus = 0;
2453  float pt_sum_HFE_minus = 0;
2454 
2455  float px_chargedHadronsBarrel = 0;
2456  float py_chargedHadronsBarrel = 0;
2457  float px_chargedHadronsEndcapPlus = 0;
2458  float py_chargedHadronsEndcapPlus = 0;
2459  float px_chargedHadronsEndcapMinus = 0;
2460  float py_chargedHadronsEndcapMinus = 0;
2461  float px_neutralHadronsBarrel = 0;
2462  float py_neutralHadronsBarrel = 0;
2463  float px_neutralHadronsEndcapPlus = 0;
2464  float py_neutralHadronsEndcapPlus = 0;
2465  float px_neutralHadronsEndcapMinus = 0;
2466  float py_neutralHadronsEndcapMinus = 0;
2467  float px_PhotonsBarrel = 0;
2468  float py_PhotonsBarrel = 0;
2469  float px_PhotonsEndcapPlus = 0;
2470  float py_PhotonsEndcapPlus = 0;
2471  float px_PhotonsEndcapMinus = 0;
2472  float py_PhotonsEndcapMinus = 0;
2473  float px_HFHadronsPlus = 0;
2474  float py_HFHadronsPlus = 0;
2475  float px_HFHadronsMinus = 0;
2476  float py_HFHadronsMinus = 0;
2477  float px_HFEGammasPlus = 0;
2478  float py_HFEGammasPlus = 0;
2479  float px_HFEGammasMinus = 0;
2480  float py_HFEGammasMinus = 0;
2481  for (unsigned int i = 0; i < particleFlow->size(); i++) {
2482  const reco::PFCandidate& c = particleFlow->at(i);
2483  if (c.particleId() == 1) { //charged hadrons
2484  //endcap minus
2485  if (c.eta() > (-3.0) && c.eta() < (-1.392)) {
2486  px_chargedHadronsEndcapMinus -= c.px();
2487  py_chargedHadronsEndcapMinus -= c.py();
2488  pt_sum_CHF_Endcap_minus += c.et();
2489  } else if (c.eta() >= (-1.392) && c.eta() <= 1.392) { //barrel
2490  px_chargedHadronsBarrel -= c.px();
2491  py_chargedHadronsBarrel -= c.py();
2492  pt_sum_CHF_Barrel += c.et();
2493  } else if (c.eta() > 1.392 && c.eta() < 3.0) { //endcap plus
2494  px_chargedHadronsEndcapPlus -= c.px();
2495  py_chargedHadronsEndcapPlus -= c.py();
2496  pt_sum_CHF_Endcap_plus += c.et();
2497  }
2498  }
2499  if (c.particleId() == 5) { //neutral hadrons
2500  //endcap minus
2501  if (c.eta() > (-3.0) && c.eta() < (-1.392)) {
2502  px_neutralHadronsEndcapMinus -= c.px();
2503  py_neutralHadronsEndcapMinus -= c.py();
2504  pt_sum_NHF_Endcap_minus += c.et();
2505  } else if (c.eta() >= (-1.392) && c.eta() <= 1.392) {
2506  px_neutralHadronsBarrel -= c.px();
2507  py_neutralHadronsBarrel -= c.py();
2508  pt_sum_NHF_Barrel += c.et();
2509  } else if (c.eta() > 1.392 && c.eta() < 3.0) {
2510  px_neutralHadronsEndcapPlus -= c.px();
2511  py_neutralHadronsEndcapPlus -= c.py();
2512  pt_sum_NHF_Endcap_plus += c.et();
2513  }
2514  }
2515  if (c.particleId() == 4) { //photons
2516  //endcap minus
2517  if (c.eta() > (-3.0) && c.eta() < (-1.479)) {
2518  px_PhotonsEndcapMinus -= c.px();
2519  py_PhotonsEndcapMinus -= c.py();
2520  pt_sum_PhF_Endcap_minus += c.et();
2521  } else if (c.eta() >= (-1.479) && c.eta() <= 1.479) {
2522  px_PhotonsBarrel -= c.px();
2523  py_PhotonsBarrel -= c.py();
2524  pt_sum_PhF_Barrel += c.et();
2525  } else if (c.eta() > 1.479 && c.eta() < 3.0) {
2526  px_PhotonsEndcapPlus -= c.px();
2527  py_PhotonsEndcapPlus -= c.py();
2528  pt_sum_PhF_Endcap_plus += c.et();
2529  }
2530  }
2531  if (c.particleId() == 6) { //HFHadrons
2532  //forward minus
2533  if (c.eta() > (-5.20) && c.eta() < -2.901376) {
2534  pt_sum_HFH_minus += c.et();
2535  px_HFHadronsMinus -= c.px();
2536  py_HFHadronsMinus -= c.py();
2537  } else if (c.eta() > 2.901376 && c.eta() < 5.20) { //forward plus
2538  px_HFHadronsPlus -= c.px();
2539  py_HFHadronsPlus -= c.py();
2540  pt_sum_HFH_plus += c.et();
2541  }
2542  }
2543  if (c.particleId() == 7) { //HFEGammas
2544  //forward minus
2545  if (c.eta() > (-5.20) && c.eta() < -2.901376) {
2546  pt_sum_HFE_minus += c.et();
2547  px_HFEGammasMinus -= c.px();
2548  py_HFEGammasMinus -= c.py();
2549  } else if (c.eta() > 2.901376 && c.eta() < 5.20) { //forward plus
2550  px_HFEGammasPlus -= c.px();
2551  py_HFEGammasPlus -= c.py();
2552  pt_sum_HFE_plus += c.et();
2553  }
2554  }
2555  for (unsigned int j = 0; j < typePFCand_.size(); j++) {
2556  if (c.particleId() == typePFCand_[j]) {
2557  //second check for endcap, if inside barrel Max and Min symmetric around 0
2558  if (((c.eta() > etaMinPFCand_[j]) && (c.eta() < etaMaxPFCand_[j])) ||
2559  ((c.eta() > (-etaMaxPFCand_[j])) && (c.eta() < (-etaMinPFCand_[j])))) {
2560  countsPFCand_[j] += 1;
2561  MExPFCand_[j] -= c.px();
2562  MEyPFCand_[j] -= c.py();
2563  }
2564  }
2565  }
2566  }
2567 
2568  for (unsigned int j = 0; j < countsPFCand_.size(); j++) {
2569  profilePFCand_x_[j] = map_of_MEs[DirName + "/" + profilePFCand_x_name_[j]];
2570  if (profilePFCand_x_[j] && profilePFCand_x_[j]->getRootObject())
2571  profilePFCand_x_[j]->Fill(countsPFCand_[j], MExPFCand_[j]);
2572  profilePFCand_y_[j] = map_of_MEs[DirName + "/" + profilePFCand_y_name_[j]];
2573  if (profilePFCand_y_[j] && profilePFCand_y_[j]->getRootObject())
2574  profilePFCand_y_[j]->Fill(countsPFCand_[j], MEyPFCand_[j]);
2575  }
2576  meCHF_Barrel = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionBarrel"];
2577  if (meCHF_Barrel && meCHF_Barrel->getRootObject())
2578  meCHF_Barrel->Fill(pt_sum_CHF_Barrel / pfmet->sumEt());
2579  meCHF_EndcapPlus = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionEndcapPlus"];
2580  if (meCHF_EndcapPlus && meCHF_EndcapPlus->getRootObject())
2581  meCHF_EndcapPlus->Fill(pt_sum_CHF_Endcap_plus / pfmet->sumEt());
2582  meCHF_EndcapMinus = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionEndcapMinus"];
2583  if (meCHF_EndcapMinus && meCHF_EndcapMinus->getRootObject())
2584  meCHF_EndcapMinus->Fill(pt_sum_CHF_Endcap_minus / pfmet->sumEt());
2585  meNHF_Barrel = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionBarrel"];
2586  if (meNHF_Barrel && meNHF_Barrel->getRootObject())
2587  meNHF_Barrel->Fill(pt_sum_NHF_Barrel / pfmet->sumEt());
2588  meNHF_EndcapPlus = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus"];
2589  if (meNHF_EndcapPlus && meNHF_EndcapPlus->getRootObject())
2590  meNHF_EndcapPlus->Fill(pt_sum_NHF_Endcap_plus / pfmet->sumEt());
2591  meNHF_EndcapMinus = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus"];
2592  if (meNHF_EndcapMinus && meNHF_EndcapMinus->getRootObject())
2593  meNHF_EndcapMinus->Fill(pt_sum_NHF_Endcap_minus / pfmet->sumEt());
2594  mePhF_Barrel = map_of_MEs[DirName + "/" + "PfPhotonEtFractionBarrel"];
2595  if (mePhF_Barrel && mePhF_Barrel->getRootObject())
2596  mePhF_Barrel->Fill(pt_sum_PhF_Barrel / pfmet->sumEt());
2597  mePhF_EndcapPlus = map_of_MEs[DirName + "/" + "PfPhotonEtFractionEndcapPlus"];
2598  if (mePhF_EndcapPlus && mePhF_EndcapPlus->getRootObject())
2599  mePhF_EndcapPlus->Fill(pt_sum_PhF_Endcap_plus / pfmet->sumEt());
2600  mePhF_EndcapMinus = map_of_MEs[DirName + "/" + "PfPhotonEtFractionEndcapMinus"];
2601  if (mePhF_EndcapMinus && mePhF_EndcapMinus->getRootObject())
2602  mePhF_EndcapMinus->Fill(pt_sum_PhF_Endcap_minus / pfmet->sumEt());
2603  meHFHadF_Plus = map_of_MEs[DirName + "/" + "PfHFHadronEtFractionPlus"];
2604  if (meHFHadF_Plus && meHFHadF_Plus->getRootObject())
2605  meHFHadF_Plus->Fill(pt_sum_HFH_plus / pfmet->sumEt());
2606  meHFHadF_Minus = map_of_MEs[DirName + "/" + "PfHFHadronEtFractionMinus"];
2607  if (meHFHadF_Minus && meHFHadF_Minus->getRootObject())
2608  meHFHadF_Minus->Fill(pt_sum_HFH_minus / pfmet->sumEt());
2609  meHFEMF_Plus = map_of_MEs[DirName + "/" + "PfHFEMEtFractionPlus"];
2610  if (meHFEMF_Plus && meHFEMF_Plus->getRootObject())
2611  meHFEMF_Plus->Fill(pt_sum_HFE_plus / pfmet->sumEt());
2612  meHFEMF_Minus = map_of_MEs[DirName + "/" + "PfHFEMEtFractionMinus"];
2613  if (meHFEMF_Minus && meHFEMF_Minus->getRootObject())
2614  meHFEMF_Minus->Fill(pt_sum_HFE_minus / pfmet->sumEt());
2615  //sanity check if we have any type of the respective species in the events
2616  //else don't fill phi, as else we have a results of a biased peak at 0
2617  //if pt_sum of species part is 0, obviously that would be the case
2618  if (pt_sum_CHF_Barrel) {
2619  meMETPhiChargedHadronsBarrel = map_of_MEs[DirName + "/" + "METPhiChargedHadronsBarrel"];
2620  if (meMETPhiChargedHadronsBarrel && meMETPhiChargedHadronsBarrel->getRootObject())
2621  meMETPhiChargedHadronsBarrel->Fill(atan2(py_chargedHadronsBarrel, px_chargedHadronsBarrel));
2622  }
2623  if (pt_sum_CHF_Endcap_plus) {
2624  meMETPhiChargedHadronsEndcapPlus = map_of_MEs[DirName + "/" + "METPhiChargedHadronsEndcapPlus"];
2625  if (meMETPhiChargedHadronsEndcapPlus && meMETPhiChargedHadronsEndcapPlus->getRootObject())
2626  meMETPhiChargedHadronsEndcapPlus->Fill(atan2(py_chargedHadronsEndcapPlus, px_chargedHadronsEndcapPlus));
2627  }
2628  if (pt_sum_CHF_Endcap_minus) {
2629  meMETPhiChargedHadronsEndcapMinus = map_of_MEs[DirName + "/" + "METPhiChargedHadronsEndcapMinus"];
2630  if (meMETPhiChargedHadronsEndcapMinus && meMETPhiChargedHadronsEndcapMinus->getRootObject())
2631  meMETPhiChargedHadronsEndcapMinus->Fill(atan2(py_chargedHadronsEndcapMinus, px_chargedHadronsEndcapMinus));
2632  }
2633  if (pt_sum_NHF_Barrel) {
2634  meMETPhiNeutralHadronsBarrel = map_of_MEs[DirName + "/" + "METPhiNeutralHadronsBarrel"];
2635  if (meMETPhiNeutralHadronsBarrel && meMETPhiNeutralHadronsBarrel->getRootObject())
2636  meMETPhiNeutralHadronsBarrel->Fill(atan2(py_neutralHadronsBarrel, px_neutralHadronsBarrel));
2637  }
2638  if (pt_sum_NHF_Endcap_plus) {
2639  meMETPhiNeutralHadronsEndcapPlus = map_of_MEs[DirName + "/" + "METPhiNeutralHadronsEndcapPlus"];
2640  if (meMETPhiNeutralHadronsEndcapPlus && meMETPhiNeutralHadronsEndcapPlus->getRootObject())
2641  meMETPhiNeutralHadronsEndcapPlus->Fill(atan2(py_neutralHadronsEndcapPlus, px_neutralHadronsEndcapPlus));
2642  }
2643  if (pt_sum_NHF_Endcap_minus) {
2644  meMETPhiNeutralHadronsEndcapMinus = map_of_MEs[DirName + "/" + "METPhiNeutralHadronsEndcapMinus"];
2645  if (meMETPhiNeutralHadronsEndcapMinus && meMETPhiNeutralHadronsEndcapMinus->getRootObject())
2646  meMETPhiNeutralHadronsEndcapMinus->Fill(atan2(py_neutralHadronsEndcapMinus, px_neutralHadronsEndcapMinus));
2647  }
2648  if (pt_sum_PhF_Barrel) {
2649  meMETPhiPhotonsBarrel = map_of_MEs[DirName + "/" + "METPhiPhotonsBarrel"];
2650  if (meMETPhiPhotonsBarrel && meMETPhiPhotonsBarrel->getRootObject())
2651  meMETPhiPhotonsBarrel->Fill(atan2(py_PhotonsBarrel, px_PhotonsBarrel));
2652  }
2653  if (pt_sum_PhF_Endcap_plus) {
2654  meMETPhiPhotonsEndcapPlus = map_of_MEs[DirName + "/" + "METPhiPhotonsEndcapPlus"];
2655  if (meMETPhiPhotonsEndcapPlus && meMETPhiPhotonsEndcapPlus->getRootObject())
2656  meMETPhiPhotonsEndcapPlus->Fill(atan2(py_PhotonsEndcapPlus, px_PhotonsEndcapPlus));
2657  }
2658  if (pt_sum_PhF_Endcap_minus) {
2659  meMETPhiPhotonsEndcapMinus = map_of_MEs[DirName + "/" + "METPhiPhotonsEndcapMinus"];
2660  if (meMETPhiPhotonsEndcapMinus && meMETPhiPhotonsEndcapMinus->getRootObject())
2661  meMETPhiPhotonsEndcapMinus->Fill(atan2(py_PhotonsEndcapMinus, px_PhotonsEndcapMinus));
2662  }
2663  if (pt_sum_HFH_plus) {
2664  meMETPhiHFHadronsPlus = map_of_MEs[DirName + "/" + "METPhiHFHadronsPlus"];
2665  if (meMETPhiHFHadronsPlus && meMETPhiHFHadronsPlus->getRootObject())
2666  meMETPhiHFHadronsPlus->Fill(atan2(py_HFHadronsPlus, px_HFHadronsPlus));
2667  }
2668  if (pt_sum_HFH_minus) {
2669  meMETPhiHFHadronsMinus = map_of_MEs[DirName + "/" + "METPhiHFHadronsMinus"];
2670  if (meMETPhiHFHadronsMinus && meMETPhiHFHadronsMinus->getRootObject())
2671  meMETPhiHFHadronsMinus->Fill(atan2(py_HFHadronsMinus, px_HFHadronsMinus));
2672  }
2673  if (pt_sum_HFE_plus) {
2674  meMETPhiHFEGammasPlus = map_of_MEs[DirName + "/" + "METPhiHFEGammasPlus"];
2675  if (meMETPhiHFEGammasPlus && meMETPhiHFEGammasPlus->getRootObject())
2676  meMETPhiHFEGammasPlus->Fill(atan2(py_HFEGammasPlus, px_HFEGammasPlus));
2677  }
2678  if (pt_sum_HFE_minus) {
2679  meMETPhiHFEGammasMinus = map_of_MEs[DirName + "/" + "METPhiHFEGammasMinus"];
2680  if (meMETPhiHFEGammasMinus && meMETPhiHFEGammasMinus->getRootObject())
2681  meMETPhiHFEGammasMinus->Fill(atan2(py_HFEGammasMinus, px_HFEGammasMinus));
2682  }
2683  //fill other diagnostic plots based on trigger decision
2684  /*if(techTriggerCase[0]){//techTriggerResultBx0 && techTriggerResultBxM2 && techTriggerResultBxM1 -> both previous bunches filled
2685  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());
2686  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());
2687  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());
2688  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());
2689  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());
2690  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());
2691  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());
2692  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());
2693  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());
2694  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());
2695  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());
2696  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());
2697  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());
2698  mePhotonEtFraction_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"PfPhotonEtFraction_BXm2BXm1Filled"]; if ( mePhotonEtFraction_BXm2BXm1Filled && mePhotonEtFraction_BXm2BXm1Filled ->getRootObject()) mePhotonEtFraction_BXm2BXm1Filled ->Fill(pfmet->photonEtFraction());
2699  meNeutralHadronEtFraction_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"PfNeutralHadronEtFraction_BXm2BXm1Filled"]; if ( meNeutralHadronEtFraction_BXm2BXm1Filled && meNeutralHadronEtFraction_BXm2BXm1Filled ->getRootObject()) meNeutralHadronEtFraction_BXm2BXm1Filled ->Fill(pfmet->neutralHadronEtFraction());
2700  meChargedHadronEtFraction_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"PfChargedHadronEtFraction_BXm2BXm1Filled"]; if ( meChargedHadronEtFraction_BXm2BXm1Filled && meChargedHadronEtFraction_BXm2BXm1Filled ->getRootObject()) meChargedHadronEtFraction_BXm2BXm1Filled ->Fill(pfmet->chargedHadronEtFraction());
2701  meMET_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"MET_BXm2BXm1Filled"]; if ( meMET_BXm2BXm1Filled && meMET_BXm2BXm1Filled ->getRootObject()) meMET_BXm2BXm1Filled ->Fill(pfmet->pt());
2702  meSumET_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"SumET_BXm2BXm1Filled"]; if ( meSumET_BXm2BXm1Filled && meSumET_BXm2BXm1Filled ->getRootObject()) meSumET_BXm2BXm1Filled ->Fill(pfmet->sumEt());
2703  if(pt_sum_CHF_Barrel){
2704  meMETPhiChargedHadronsBarrel_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiChargedHadronsBarrel_BXm2BXm1Filled"];if(meMETPhiChargedHadronsBarrel_BXm2BXm1Filled && meMETPhiChargedHadronsBarrel_BXm2BXm1Filled ->getRootObject())meMETPhiChargedHadronsBarrel_BXm2BXm1Filled->Fill(atan2(py_chargedHadronsBarrel,px_chargedHadronsBarrel));
2705  }
2706  if(pt_sum_CHF_Endcap_plus){
2707  meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiChargedHadronsEndcapPlus_BXm2BXm1Filled"];if(meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Filled && meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Filled ->getRootObject())meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Filled->Fill(atan2(py_chargedHadronsEndcapPlus,px_chargedHadronsEndcapPlus));
2708  }
2709  if(pt_sum_CHF_Endcap_minus){
2710  meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiChargedHadronsEndcapMinus_BXm2BXm1Filled"];if(meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Filled && meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Filled ->getRootObject())meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Filled->Fill(atan2(py_chargedHadronsEndcapMinus,px_chargedHadronsEndcapMinus));
2711  }
2712  if(pt_sum_NHF_Barrel){
2713  meMETPhiNeutralHadronsBarrel_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiNeutralHadronsBarrel_BXm2BXm1Filled"];if(meMETPhiNeutralHadronsBarrel_BXm2BXm1Filled && meMETPhiNeutralHadronsBarrel_BXm2BXm1Filled ->getRootObject())meMETPhiNeutralHadronsBarrel_BXm2BXm1Filled->Fill(atan2(py_neutralHadronsBarrel,px_neutralHadronsBarrel));
2714  }
2715  if(pt_sum_NHF_Endcap_plus){
2716  meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled"];if(meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled && meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled ->getRootObject())meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Filled->Fill(atan2(py_neutralHadronsEndcapPlus,px_neutralHadronsEndcapPlus));
2717  }
2718  if(pt_sum_NHF_Endcap_minus){
2719  meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled"];if(meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled && meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled ->getRootObject())meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Filled->Fill(atan2(py_neutralHadronsEndcapMinus,px_neutralHadronsEndcapMinus));
2720  }
2721  if(pt_sum_PhF_Barrel){
2722  meMETPhiPhotonsBarrel_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiPhotonsBarrel_BXm2BXm1Filled"];if(meMETPhiPhotonsBarrel_BXm2BXm1Filled && meMETPhiPhotonsBarrel_BXm2BXm1Filled ->getRootObject())meMETPhiPhotonsBarrel_BXm2BXm1Filled->Fill(atan2(py_PhotonsBarrel,px_PhotonsBarrel));
2723  }
2724  if(pt_sum_PhF_Endcap_plus){
2725  meMETPhiPhotonsEndcapPlus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiPhotonsEndcapPlus_BXm2BXm1Filled"];if(meMETPhiPhotonsEndcapPlus_BXm2BXm1Filled && meMETPhiPhotonsEndcapPlus_BXm2BXm1Filled ->getRootObject())meMETPhiPhotonsEndcapPlus_BXm2BXm1Filled->Fill(atan2(py_PhotonsEndcapPlus,px_PhotonsEndcapPlus));
2726  }
2727  if(pt_sum_PhF_Endcap_minus){
2728  meMETPhiPhotonsEndcapMinus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiPhotonsEndcapMinus_BXm2BXm1Filled"];if(meMETPhiPhotonsEndcapMinus_BXm2BXm1Filled && meMETPhiPhotonsEndcapMinus_BXm2BXm1Filled ->getRootObject())meMETPhiPhotonsEndcapMinus_BXm2BXm1Filled->Fill(atan2(py_PhotonsEndcapMinus,px_PhotonsEndcapMinus));
2729  }
2730  if(pt_sum_HFH_plus){
2731  meMETPhiHFHadronsPlus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiHFHadronsPlus_BXm2BXm1Filled"];if(meMETPhiHFHadronsPlus_BXm2BXm1Filled && meMETPhiHFHadronsPlus_BXm2BXm1Filled ->getRootObject())meMETPhiHFHadronsPlus_BXm2BXm1Filled->Fill(atan2(py_HFHadronsPlus,px_HFHadronsPlus));
2732  }
2733  if(pt_sum_HFH_minus){
2734  meMETPhiHFHadronsMinus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiHFHadronsMinus_BXm2BXm1Filled"];if(meMETPhiHFHadronsMinus_BXm2BXm1Filled && meMETPhiHFHadronsMinus_BXm2BXm1Filled ->getRootObject())meMETPhiHFHadronsMinus_BXm2BXm1Filled->Fill(atan2(py_HFHadronsMinus,px_HFHadronsMinus));
2735  }
2736  if(pt_sum_HFE_plus){
2737  meMETPhiHFEGammasPlus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiHFEGammasPlus_BXm2BXm1Filled"];if(meMETPhiHFEGammasPlus_BXm2BXm1Filled && meMETPhiHFEGammasPlus_BXm2BXm1Filled ->getRootObject())meMETPhiHFEGammasPlus_BXm2BXm1Filled->Fill(atan2(py_HFEGammasPlus,px_HFEGammasPlus));
2738  }
2739  if(pt_sum_HFE_minus){
2740  meMETPhiHFEGammasMinus_BXm2BXm1Filled = map_of_MEs[DirName+"/"+"METPhiHFEGammasMinus_BXm2BXm1Filled"];if(meMETPhiHFEGammasMinus_BXm2BXm1Filled && meMETPhiHFEGammasMinus_BXm2BXm1Filled ->getRootObject())meMETPhiHFEGammasMinus_BXm2BXm1Filled->Fill(atan2(py_HFEGammasMinus,px_HFEGammasMinus));
2741  }
2742  }*/
2743  if (techTriggerCase[1]) { //techTriggerResultBx0 && techTriggerResultBxM1 -> previous bunch filled
2744  meCHF_Barrel_BXm1Filled = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionBarrel_BXm1Filled"];
2745  if (meCHF_Barrel_BXm1Filled && meCHF_Barrel_BXm1Filled->getRootObject())
2746  meCHF_Barrel_BXm1Filled->Fill(pt_sum_CHF_Barrel / pfmet->sumEt());
2747  meCHF_EndcapPlus_BXm1Filled = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionEndcapPlus_BXm1Filled"];
2748  if (meCHF_EndcapPlus_BXm1Filled && meCHF_EndcapPlus_BXm1Filled->getRootObject())
2749  meCHF_EndcapPlus_BXm1Filled->Fill(pt_sum_CHF_Endcap_plus / pfmet->sumEt());
2750  meCHF_EndcapMinus_BXm1Filled = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionEndcapMinus_BXm1Filled"];
2751  if (meCHF_EndcapMinus_BXm1Filled && meCHF_EndcapMinus_BXm1Filled->getRootObject())
2752  meCHF_EndcapMinus_BXm1Filled->Fill(pt_sum_CHF_Endcap_minus / pfmet->sumEt());
2753  meNHF_Barrel_BXm1Filled = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionBarrel_BXm1Filled"];
2754  if (meNHF_Barrel_BXm1Filled && meNHF_Barrel_BXm1Filled->getRootObject())
2755  meNHF_Barrel_BXm1Filled->Fill(pt_sum_NHF_Barrel / pfmet->sumEt());
2756  meNHF_EndcapPlus_BXm1Filled = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus_BXm1Filled"];
2757  if (meNHF_EndcapPlus_BXm1Filled && meNHF_EndcapPlus_BXm1Filled->getRootObject())
2758  meNHF_EndcapPlus_BXm1Filled->Fill(pt_sum_NHF_Endcap_plus / pfmet->sumEt());
2759  meNHF_EndcapMinus_BXm1Filled = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus_BXm1Filled"];
2760  if (meNHF_EndcapMinus_BXm1Filled && meNHF_EndcapMinus_BXm1Filled->getRootObject())
2761  meNHF_EndcapMinus_BXm1Filled->Fill(pt_sum_NHF_Endcap_minus / pfmet->sumEt());
2762  mePhF_Barrel_BXm1Filled = map_of_MEs[DirName + "/" + "PfPhotonEtFractionBarrel_BXm1Filled"];
2763  if (mePhF_Barrel_BXm1Filled && mePhF_Barrel_BXm1Filled->getRootObject())
2764  mePhF_Barrel_BXm1Filled->Fill(pt_sum_PhF_Barrel / pfmet->sumEt());
2765  mePhF_EndcapPlus_BXm1Filled = map_of_MEs[DirName + "/" + "PfPhotonEtFractionEndcapPlus_BXm1Filled"];
2766  if (mePhF_EndcapPlus_BXm1Filled && mePhF_EndcapPlus_BXm1Filled->getRootObject())
2767  mePhF_EndcapPlus_BXm1Filled->Fill(pt_sum_PhF_Endcap_plus / pfmet->sumEt());
2768  mePhF_EndcapMinus_BXm1Filled = map_of_MEs[DirName + "/" + "PfPhotonEtFractionEndcapMinus_BXm1Filled"];
2769  if (mePhF_EndcapMinus_BXm1Filled && mePhF_EndcapMinus_BXm1Filled->getRootObject())
2770  mePhF_EndcapMinus_BXm1Filled->Fill(pt_sum_PhF_Endcap_minus / pfmet->sumEt());
2771  meHFHadF_Plus_BXm1Filled = map_of_MEs[DirName + "/" + "PfHFHadronEtFractionPlus_BXm1Filled"];
2772  if (meHFHadF_Plus_BXm1Filled && meHFHadF_Plus_BXm1Filled->getRootObject())
2773  meHFHadF_Plus_BXm1Filled->Fill(pt_sum_HFH_plus / pfmet->sumEt());
2774  meHFHadF_Minus_BXm1Filled = map_of_MEs[DirName + "/" + "PfHFHadronEtFractionMinus_BXm1Filled"];
2775  if (meHFHadF_Minus_BXm1Filled && meHFHadF_Minus_BXm1Filled->getRootObject())
2776  meHFHadF_Minus_BXm1Filled->Fill(pt_sum_HFH_minus / pfmet->sumEt());
2777  meHFEMF_Plus_BXm1Filled = map_of_MEs[DirName + "/" + "PfHFEMEtFractionPlus_BXm1Filled"];
2778  if (meHFEMF_Plus_BXm1Filled && meHFEMF_Plus_BXm1Filled->getRootObject())
2779  meHFEMF_Plus_BXm1Filled->Fill(pt_sum_HFE_plus / pfmet->sumEt());
2780  meHFEMF_Minus_BXm1Filled = map_of_MEs[DirName + "/" + "PfHFEMEtFractionMinus_BXm1Filled"];
2781  if (meHFEMF_Minus_BXm1Filled && meHFEMF_Minus_BXm1Filled->getRootObject())
2782  meHFEMF_Minus_BXm1Filled->Fill(pt_sum_HFE_minus / pfmet->sumEt());
2783  mePhotonEtFraction_BXm1Filled = map_of_MEs[DirName + "/" + "PfPhotonEtFraction_BXm1Filled"];
2784  if (mePhotonEtFraction_BXm1Filled && mePhotonEtFraction_BXm1Filled->getRootObject())
2785  mePhotonEtFraction_BXm1Filled->Fill(pfmet->photonEtFraction());
2786  meNeutralHadronEtFraction_BXm1Filled = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFraction_BXm1Filled"];
2787  if (meNeutralHadronEtFraction_BXm1Filled && meNeutralHadronEtFraction_BXm1Filled->getRootObject())
2788  meNeutralHadronEtFraction_BXm1Filled->Fill(pfmet->neutralHadronEtFraction());
2789  meChargedHadronEtFraction_BXm1Filled = map_of_MEs[DirName + "/" + "PfChargedHadronEtFraction_BXm1Filled"];
2790  if (meChargedHadronEtFraction_BXm1Filled && meChargedHadronEtFraction_BXm1Filled->getRootObject())
2791  meChargedHadronEtFraction_BXm1Filled->Fill(pfmet->chargedHadronEtFraction());
2792  meMET_BXm1Filled = map_of_MEs[DirName + "/" + "MET_BXm1Filled"];
2793  if (meMET_BXm1Filled && meMET_BXm1Filled->getRootObject())
2794  meMET_BXm1Filled->Fill(pfmet->pt());
2795  meSumET_BXm1Filled = map_of_MEs[DirName + "/" + "SumET_BXm1Filled"];
2796  if (meSumET_BXm1Filled && meSumET_BXm1Filled->getRootObject())
2797  meSumET_BXm1Filled->Fill(pfmet->sumEt());
2798  if (pt_sum_CHF_Barrel) {
2799  meMETPhiChargedHadronsBarrel_BXm1Filled =
2800  map_of_MEs[DirName + "/" + "METPhiChargedHadronsBarrel_BXm1Filled"];
2801  if (meMETPhiChargedHadronsBarrel_BXm1Filled && meMETPhiChargedHadronsBarrel_BXm1Filled->getRootObject())
2802  meMETPhiChargedHadronsBarrel_BXm1Filled->Fill(atan2(py_chargedHadronsBarrel, px_chargedHadronsBarrel));
2803  }
2804  if (pt_sum_CHF_Endcap_plus) {
2805  meMETPhiChargedHadronsEndcapPlus_BXm1Filled =
2806  map_of_MEs[DirName + "/" + "METPhiChargedHadronsEndcapPlus_BXm1Filled"];
2807  if (meMETPhiChargedHadronsEndcapPlus_BXm1Filled &&
2808  meMETPhiChargedHadronsEndcapPlus_BXm1Filled->getRootObject())
2809  meMETPhiChargedHadronsEndcapPlus_BXm1Filled->Fill(
2810  atan2(py_chargedHadronsEndcapPlus, px_chargedHadronsEndcapPlus));
2811  }
2812  if (pt_sum_CHF_Endcap_minus) {
2813  meMETPhiChargedHadronsEndcapMinus_BXm1Filled =
2814  map_of_MEs[DirName + "/" + "METPhiChargedHadronsEndcapMinus_BXm1Filled"];
2815  if (meMETPhiChargedHadronsEndcapMinus_BXm1Filled &&
2816  meMETPhiChargedHadronsEndcapMinus_BXm1Filled->getRootObject())
2817  meMETPhiChargedHadronsEndcapMinus_BXm1Filled->Fill(
2818  atan2(py_chargedHadronsEndcapMinus, px_chargedHadronsEndcapMinus));
2819  }
2820  if (pt_sum_NHF_Barrel) {
2821  meMETPhiNeutralHadronsBarrel_BXm1Filled =
2822  map_of_MEs[DirName + "/" + "METPhiNeutralHadronsBarrel_BXm1Filled"];
2823  if (meMETPhiNeutralHadronsBarrel_BXm1Filled && meMETPhiNeutralHadronsBarrel_BXm1Filled->getRootObject())
2824  meMETPhiNeutralHadronsBarrel_BXm1Filled->Fill(atan2(py_neutralHadronsBarrel, px_neutralHadronsBarrel));
2825  }
2826  if (pt_sum_NHF_Endcap_plus) {
2827  meMETPhiNeutralHadronsEndcapPlus_BXm1Filled =
2828  map_of_MEs[DirName + "/" + "METPhiNeutralHadronsEndcapPlus_BXm1Filled"];
2829  if (meMETPhiNeutralHadronsEndcapPlus_BXm1Filled &&
2830  meMETPhiNeutralHadronsEndcapPlus_BXm1Filled->getRootObject())
2831  meMETPhiNeutralHadronsEndcapPlus_BXm1Filled->Fill(
2832  atan2(py_neutralHadronsEndcapPlus, px_neutralHadronsEndcapPlus));
2833  }
2834  if (pt_sum_NHF_Endcap_minus) {
2835  meMETPhiNeutralHadronsEndcapMinus_BXm1Filled =
2836  map_of_MEs[DirName + "/" + "METPhiNeutralHadronsEndcapMinus_BXm1Filled"];
2837  if (meMETPhiNeutralHadronsEndcapMinus_BXm1Filled &&
2838  meMETPhiNeutralHadronsEndcapMinus_BXm1Filled->getRootObject())
2839  meMETPhiNeutralHadronsEndcapMinus_BXm1Filled->Fill(
2840  atan2(py_neutralHadronsEndcapMinus, px_neutralHadronsEndcapMinus));
2841  }
2842  if (pt_sum_PhF_Barrel) {
2843  meMETPhiPhotonsBarrel_BXm1Filled = map_of_MEs[DirName + "/" + "METPhiPhotonsBarrel_BXm1Filled"];
2844  if (meMETPhiPhotonsBarrel_BXm1Filled && meMETPhiPhotonsBarrel_BXm1Filled->getRootObject())
2845  meMETPhiPhotonsBarrel_BXm1Filled->Fill(atan2(py_PhotonsBarrel, px_PhotonsBarrel));
2846  }
2847  if (pt_sum_PhF_Endcap_plus) {
2848  meMETPhiPhotonsEndcapPlus_BXm1Filled = map_of_MEs[DirName + "/" + "METPhiPhotonsEndcapPlus_BXm1Filled"];
2849  if (meMETPhiPhotonsEndcapPlus_BXm1Filled && meMETPhiPhotonsEndcapPlus_BXm1Filled->getRootObject())
2850  meMETPhiPhotonsEndcapPlus_BXm1Filled->Fill(atan2(py_PhotonsEndcapPlus, px_PhotonsEndcapPlus));
2851  }
2852  if (pt_sum_PhF_Endcap_minus) {
2853  meMETPhiPhotonsEndcapMinus_BXm1Filled = map_of_MEs[DirName + "/" + "METPhiPhotonsEndcapMinus_BXm1Filled"];
2854  if (meMETPhiPhotonsEndcapMinus_BXm1Filled && meMETPhiPhotonsEndcapMinus_BXm1Filled->getRootObject())
2855  meMETPhiPhotonsEndcapMinus_BXm1Filled->Fill(atan2(py_PhotonsEndcapMinus, px_PhotonsEndcapMinus));
2856  }
2857  if (pt_sum_HFH_plus) {
2858  meMETPhiHFHadronsPlus_BXm1Filled = map_of_MEs[DirName + "/" + "METPhiHFHadronsPlus_BXm1Filled"];
2859  if (meMETPhiHFHadronsPlus_BXm1Filled && meMETPhiHFHadronsPlus_BXm1Filled->getRootObject())
2860  meMETPhiHFHadronsPlus_BXm1Filled->Fill(atan2(py_HFHadronsPlus, px_HFHadronsPlus));
2861  }
2862  if (pt_sum_HFH_minus) {
2863  meMETPhiHFHadronsMinus_BXm1Filled = map_of_MEs[DirName + "/" + "METPhiHFHadronsMinus_BXm1Filled"];
2864  if (meMETPhiHFHadronsMinus_BXm1Filled && meMETPhiHFHadronsMinus_BXm1Filled->getRootObject())
2865  meMETPhiHFHadronsMinus_BXm1Filled->Fill(atan2(py_HFHadronsMinus, px_HFHadronsMinus));
2866  }
2867  if (pt_sum_HFE_plus) {
2868  meMETPhiHFEGammasPlus_BXm1Filled = map_of_MEs[DirName + "/" + "METPhiHFEGammasPlus_BXm1Filled"];
2869  if (meMETPhiHFEGammasPlus_BXm1Filled && meMETPhiHFEGammasPlus_BXm1Filled->getRootObject())
2870  meMETPhiHFEGammasPlus_BXm1Filled->Fill(atan2(py_HFEGammasPlus, px_HFEGammasPlus));
2871  }
2872  if (pt_sum_HFE_minus) {
2873  meMETPhiHFEGammasMinus_BXm1Filled = map_of_MEs[DirName + "/" + "METPhiHFEGammasMinus_BXm1Filled"];
2874  if (meMETPhiHFEGammasMinus_BXm1Filled && meMETPhiHFEGammasMinus_BXm1Filled->getRootObject())
2875  meMETPhiHFEGammasMinus_BXm1Filled->Fill(atan2(py_HFEGammasMinus, px_HFEGammasMinus));
2876  }
2877  }
2878  /*if(techTriggerCase[3]){//techTriggerResultBx0 && !techTriggerResultBxM2 && !techTriggerResultBxM1 ->previous two bunches empty
2879  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());
2880  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());
2881  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());
2882  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());
2883  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());
2884  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());
2885  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());
2886  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());
2887  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());
2888  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());
2889  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());
2890  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());
2891  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());
2892  mePhotonEtFraction_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"PfPhotonEtFraction_BXm2BXm1Empty"]; if ( mePhotonEtFraction_BXm2BXm1Empty && mePhotonEtFraction_BXm2BXm1Empty ->getRootObject()) mePhotonEtFraction_BXm2BXm1Empty ->Fill(pfmet->photonEtFraction());
2893  meNeutralHadronEtFraction_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"PfNeutralHadronEtFraction_BXm2BXm1Empty"]; if ( meNeutralHadronEtFraction_BXm2BXm1Empty && meNeutralHadronEtFraction_BXm2BXm1Empty ->getRootObject()) meNeutralHadronEtFraction_BXm2BXm1Empty ->Fill(pfmet->neutralHadronEtFraction());
2894  meChargedHadronEtFraction_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"PfChargedHadronEtFraction_BXm2BXm1Empty"]; if ( meChargedHadronEtFraction_BXm2BXm1Empty && meChargedHadronEtFraction_BXm2BXm1Empty ->getRootObject()) meChargedHadronEtFraction_BXm2BXm1Empty ->Fill(pfmet->chargedHadronEtFraction());
2895  meMET_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"MET_BXm2BXm1Empty"]; if ( meMET_BXm2BXm1Empty && meMET_BXm2BXm1Empty ->getRootObject()) meMET_BXm2BXm1Empty ->Fill(pfmet->pt());
2896  meSumET_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"SumET_BXm2BXm1Empty"]; if ( meSumET_BXm2BXm1Empty && meSumET_BXm2BXm1Empty ->getRootObject()) meSumET_BXm2BXm1Empty ->Fill(pfmet->sumEt());
2897  if(pt_sum_CHF_Barrel){
2898  meMETPhiChargedHadronsBarrel_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiChargedHadronsBarrel_BXm2BXm1Empty"];if(meMETPhiChargedHadronsBarrel_BXm2BXm1Empty && meMETPhiChargedHadronsBarrel_BXm2BXm1Empty ->getRootObject())meMETPhiChargedHadronsBarrel_BXm2BXm1Empty->Fill(atan2(py_chargedHadronsBarrel,px_chargedHadronsBarrel));
2899  }
2900  if(pt_sum_CHF_Endcap_plus){
2901  meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiChargedHadronsEndcapPlus_BXm2BXm1Empty"];if(meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Empty && meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Empty ->getRootObject())meMETPhiChargedHadronsEndcapPlus_BXm2BXm1Empty->Fill(atan2(py_chargedHadronsEndcapPlus,px_chargedHadronsEndcapPlus));
2902  }
2903  if(pt_sum_CHF_Endcap_minus){
2904  meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiChargedHadronsEndcapMinus_BXm2BXm1Empty"];if(meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Empty && meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Empty ->getRootObject())meMETPhiChargedHadronsEndcapMinus_BXm2BXm1Empty->Fill(atan2(py_chargedHadronsEndcapMinus,px_chargedHadronsEndcapMinus));
2905  }
2906  if(pt_sum_NHF_Barrel){
2907  meMETPhiNeutralHadronsBarrel_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiNeutralHadronsBarrel_BXm2BXm1Empty"];if(meMETPhiNeutralHadronsBarrel_BXm2BXm1Empty && meMETPhiNeutralHadronsBarrel_BXm2BXm1Empty ->getRootObject())meMETPhiNeutralHadronsBarrel_BXm2BXm1Empty->Fill(atan2(py_neutralHadronsBarrel,px_neutralHadronsBarrel));
2908  }
2909  if(pt_sum_NHF_Endcap_plus){
2910  meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty"];if(meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty && meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty ->getRootObject())meMETPhiNeutralHadronsEndcapPlus_BXm2BXm1Empty->Fill(atan2(py_neutralHadronsEndcapPlus,px_neutralHadronsEndcapPlus));
2911  }
2912  if(pt_sum_NHF_Endcap_minus){
2913  meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty"];if(meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty && meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty ->getRootObject())meMETPhiNeutralHadronsEndcapMinus_BXm2BXm1Empty->Fill(atan2(py_neutralHadronsEndcapMinus,px_neutralHadronsEndcapMinus));
2914  }
2915  if(pt_sum_PhF_Barrel){
2916  meMETPhiPhotonsBarrel_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiPhotonsBarrel_BXm2BXm1Empty"];if(meMETPhiPhotonsBarrel_BXm2BXm1Empty && meMETPhiPhotonsBarrel_BXm2BXm1Empty ->getRootObject())meMETPhiPhotonsBarrel_BXm2BXm1Empty->Fill(atan2(py_PhotonsBarrel,px_PhotonsBarrel));
2917  }
2918  if(pt_sum_PhF_Endcap_plus){
2919  meMETPhiPhotonsEndcapPlus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiPhotonsEndcapPlus_BXm2BXm1Empty"];if(meMETPhiPhotonsEndcapPlus_BXm2BXm1Empty && meMETPhiPhotonsEndcapPlus_BXm2BXm1Empty ->getRootObject())meMETPhiPhotonsEndcapPlus_BXm2BXm1Empty->Fill(atan2(py_PhotonsEndcapPlus,px_PhotonsEndcapPlus));
2920  }
2921  if(pt_sum_PhF_Endcap_minus){
2922  meMETPhiPhotonsEndcapMinus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiPhotonsEndcapMinus_BXm2BXm1Empty"];if(meMETPhiPhotonsEndcapMinus_BXm2BXm1Empty && meMETPhiPhotonsEndcapMinus_BXm2BXm1Empty ->getRootObject())meMETPhiPhotonsEndcapMinus_BXm2BXm1Empty->Fill(atan2(py_PhotonsEndcapMinus,px_PhotonsEndcapMinus));
2923  }
2924  if(pt_sum_HFH_plus){
2925  meMETPhiHFHadronsPlus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiHFHadronsPlus_BXm2BXm1Empty"];if(meMETPhiHFHadronsPlus_BXm2BXm1Empty && meMETPhiHFHadronsPlus_BXm2BXm1Empty ->getRootObject())meMETPhiHFHadronsPlus_BXm2BXm1Empty->Fill(atan2(py_HFHadronsPlus,px_HFHadronsPlus));
2926  }
2927  if(pt_sum_HFH_minus){
2928  meMETPhiHFHadronsMinus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiHFHadronsMinus_BXm2BXm1Empty"];if(meMETPhiHFHadronsMinus_BXm2BXm1Empty && meMETPhiHFHadronsMinus_BXm2BXm1Empty ->getRootObject())meMETPhiHFHadronsMinus_BXm2BXm1Empty->Fill(atan2(py_HFHadronsMinus,px_HFHadronsMinus));
2929  }
2930  if(pt_sum_HFE_plus){
2931  meMETPhiHFEGammasPlus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiHFEGammasPlus_BXm2BXm1Empty"];if(meMETPhiHFEGammasPlus_BXm2BXm1Empty && meMETPhiHFEGammasPlus_BXm2BXm1Empty ->getRootObject())meMETPhiHFEGammasPlus_BXm2BXm1Empty->Fill(atan2(py_HFEGammasPlus,px_HFEGammasPlus));
2932  }
2933  if(pt_sum_HFE_minus){
2934  meMETPhiHFEGammasMinus_BXm2BXm1Empty = map_of_MEs[DirName+"/"+"METPhiHFEGammasMinus_BXm2BXm1Empty"];if(meMETPhiHFEGammasMinus_BXm2BXm1Empty && meMETPhiHFEGammasMinus_BXm2BXm1Empty ->getRootObject())meMETPhiHFEGammasMinus_BXm2BXm1Empty->Fill(atan2(py_HFEGammasMinus,px_HFEGammasMinus));
2935  }
2936  }*/
2937  if (techTriggerCase[2]) { //techTriggerResultBx0 && !techTriggerResultBxM1 --> previous bunch empty
2938  meCHF_Barrel_BXm1Empty = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionBarrel_BXm1Empty"];
2939  if (meCHF_Barrel_BXm1Empty && meCHF_Barrel_BXm1Empty->getRootObject())
2940  meCHF_Barrel_BXm1Empty->Fill(pt_sum_CHF_Barrel / pfmet->sumEt());
2941  meCHF_EndcapPlus_BXm1Empty = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionEndcapPlus_BXm1Empty"];
2942  if (meCHF_EndcapPlus_BXm1Empty && meCHF_EndcapPlus_BXm1Empty->getRootObject())
2943  meCHF_EndcapPlus_BXm1Empty->Fill(pt_sum_CHF_Endcap_plus / pfmet->sumEt());
2944  meCHF_EndcapMinus_BXm1Empty = map_of_MEs[DirName + "/" + "PfChargedHadronEtFractionEndcapMinus_BXm1Empty"];
2945  if (meCHF_EndcapMinus_BXm1Empty && meCHF_EndcapMinus_BXm1Empty->getRootObject())
2946  meCHF_EndcapMinus_BXm1Empty->Fill(pt_sum_CHF_Endcap_minus / pfmet->sumEt());
2947  meNHF_Barrel_BXm1Empty = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionBarrel_BXm1Empty"];
2948  if (meNHF_Barrel_BXm1Empty && meNHF_Barrel_BXm1Empty->getRootObject())
2949  meNHF_Barrel_BXm1Empty->Fill(pt_sum_NHF_Barrel / pfmet->sumEt());
2950  meNHF_EndcapPlus_BXm1Empty = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionEndcapPlus_BXm1Empty"];
2951  if (meNHF_EndcapPlus_BXm1Empty && meNHF_EndcapPlus_BXm1Empty->getRootObject())
2952  meNHF_EndcapPlus_BXm1Empty->Fill(pt_sum_NHF_Endcap_plus / pfmet->sumEt());
2953  meNHF_EndcapMinus_BXm1Empty = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFractionEndcapMinus_BXm1Empty"];
2954  if (meNHF_EndcapMinus_BXm1Empty && meNHF_EndcapMinus_BXm1Empty->getRootObject())
2955  meNHF_EndcapMinus_BXm1Empty->Fill(pt_sum_NHF_Endcap_minus / pfmet->sumEt());
2956  mePhF_Barrel_BXm1Empty = map_of_MEs[DirName + "/" + "PfPhotonEtFractionBarrel_BXm1Empty"];
2957  if (mePhF_Barrel_BXm1Empty && mePhF_Barrel_BXm1Empty->getRootObject())
2958  mePhF_Barrel_BXm1Empty->Fill(pt_sum_PhF_Barrel / pfmet->sumEt());
2959  mePhF_EndcapPlus_BXm1Empty = map_of_MEs[DirName + "/" + "PfPhotonEtFractionEndcapPlus_BXm1Empty"];
2960  if (mePhF_EndcapPlus_BXm1Empty && mePhF_EndcapPlus_BXm1Empty->getRootObject())
2961  mePhF_EndcapPlus_BXm1Empty->Fill(pt_sum_PhF_Endcap_plus / pfmet->sumEt());
2962  mePhF_EndcapMinus_BXm1Empty = map_of_MEs[DirName + "/" + "PfPhotonEtFractionEndcapMinus_BXm1Empty"];
2963  if (mePhF_EndcapMinus_BXm1Empty && mePhF_EndcapMinus_BXm1Empty->getRootObject())
2964  mePhF_EndcapMinus_BXm1Empty->Fill(pt_sum_PhF_Endcap_minus / pfmet->sumEt());
2965  meHFHadF_Plus_BXm1Empty = map_of_MEs[DirName + "/" + "PfHFHadronEtFractionPlus_BXm1Empty"];
2966  if (meHFHadF_Plus_BXm1Empty && meHFHadF_Plus_BXm1Empty->getRootObject())
2967  meHFHadF_Plus_BXm1Empty->Fill(pt_sum_HFH_plus / pfmet->sumEt());
2968  meHFHadF_Minus_BXm1Empty = map_of_MEs[DirName + "/" + "PfHFHadronEtFractionMinus_BXm1Empty"];
2969  if (meHFHadF_Minus_BXm1Empty && meHFHadF_Minus_BXm1Empty->getRootObject())
2970  meHFHadF_Minus_BXm1Empty->Fill(pt_sum_HFH_minus / pfmet->sumEt());
2971  meHFEMF_Plus_BXm1Empty = map_of_MEs[DirName + "/" + "PfHFEMEtFractionPlus_BXm1Empty"];
2972  if (meHFEMF_Plus_BXm1Empty && meHFEMF_Plus_BXm1Empty->getRootObject())
2973  meHFEMF_Plus_BXm1Empty->Fill(pt_sum_HFE_plus / pfmet->sumEt());
2974  meHFEMF_Minus_BXm1Empty = map_of_MEs[DirName + "/" + "PfHFEMEtFractionMinus_BXm1Empty"];
2975  if (meHFEMF_Minus_BXm1Empty && meHFEMF_Minus_BXm1Empty->getRootObject())
2976  meHFEMF_Minus_BXm1Empty->Fill(pt_sum_HFE_minus / pfmet->sumEt());
2977  mePhotonEtFraction_BXm1Empty = map_of_MEs[DirName + "/" + "PfPhotonEtFraction_BXm1Empty"];
2978  if (mePhotonEtFraction_BXm1Empty && mePhotonEtFraction_BXm1Empty->getRootObject())
2979  mePhotonEtFraction_BXm1Empty->Fill(pfmet->photonEtFraction());
2980  meNeutralHadronEtFraction_BXm1Empty = map_of_MEs[DirName + "/" + "PfNeutralHadronEtFraction_BXm1Empty"];
2981  if (meNeutralHadronEtFraction_BXm1Empty && meNeutralHadronEtFraction_BXm1Empty->getRootObject())
2982  meNeutralHadronEtFraction_BXm1Empty->Fill(pfmet->neutralHadronEtFraction());
2983  meChargedHadronEtFraction_BXm1Empty = map_of_MEs[DirName + "/" + "PfChargedHadronEtFraction_BXm1Empty"];
2984  if (meChargedHadronEtFraction_BXm1Empty && meChargedHadronEtFraction_BXm1Empty->getRootObject())
2985  meChargedHadronEtFraction_BXm1Empty->Fill(pfmet->chargedHadronEtFraction());
2986  meMET_BXm1Empty = map_of_MEs[DirName + "/" + "MET_BXm1Empty"];
2987  if (meMET_BXm1Empty && meMET_BXm1Empty->getRootObject())
2988  meMET_BXm1Empty->Fill(pfmet->pt());
2989  meSumET_BXm1Empty = map_of_MEs[DirName + "/" + "SumET_BXm1Empty"];
2990  if (meSumET_BXm1Empty && meSumET_BXm1Empty->getRootObject())
2991  meSumET_BXm1Empty->Fill(pfmet->sumEt());
2992  if (pt_sum_CHF_Barrel) {
2993  meMETPhiChargedHadronsBarrel_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiChargedHadronsBarrel_BXm1Empty"];
2994  if (meMETPhiChargedHadronsBarrel_BXm1Empty && meMETPhiChargedHadronsBarrel_BXm1Empty->getRootObject())
2995  meMETPhiChargedHadronsBarrel_BXm1Empty->Fill(atan2(py_chargedHadronsBarrel, px_chargedHadronsBarrel));
2996  }
2997  if (pt_sum_CHF_Endcap_plus) {
2998  meMETPhiChargedHadronsEndcapPlus_BXm1Empty =
2999  map_of_MEs[DirName + "/" + "METPhiChargedHadronsEndcapPlus_BXm1Empty"];
3000  if (meMETPhiChargedHadronsEndcapPlus_BXm1Empty &&
3001  meMETPhiChargedHadronsEndcapPlus_BXm1Empty->getRootObject())
3002  meMETPhiChargedHadronsEndcapPlus_BXm1Empty->Fill(
3003  atan2(py_chargedHadronsEndcapPlus, px_chargedHadronsEndcapPlus));
3004  }
3005  if (pt_sum_CHF_Endcap_minus) {
3006  meMETPhiChargedHadronsEndcapMinus_BXm1Empty =
3007  map_of_MEs[DirName + "/" + "METPhiChargedHadronsEndcapMinus_BXm1Empty"];
3008  if (meMETPhiChargedHadronsEndcapMinus_BXm1Empty &&
3009  meMETPhiChargedHadronsEndcapMinus_BXm1Empty->getRootObject())
3010  meMETPhiChargedHadronsEndcapMinus_BXm1Empty->Fill(
3011  atan2(py_chargedHadronsEndcapMinus, px_chargedHadronsEndcapMinus));
3012  }
3013  if (pt_sum_NHF_Barrel) {
3014  meMETPhiNeutralHadronsBarrel_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiNeutralHadronsBarrel_BXm1Empty"];
3015  if (meMETPhiNeutralHadronsBarrel_BXm1Empty && meMETPhiNeutralHadronsBarrel_BXm1Empty->getRootObject())
3016  meMETPhiNeutralHadronsBarrel_BXm1Empty->Fill(atan2(py_neutralHadronsBarrel, px_neutralHadronsBarrel));
3017  }
3018  if (pt_sum_NHF_Endcap_plus) {
3019  meMETPhiNeutralHadronsEndcapPlus_BXm1Empty =
3020  map_of_MEs[DirName + "/" + "METPhiNeutralHadronsEndcapPlus_BXm1Empty"];
3021  if (meMETPhiNeutralHadronsEndcapPlus_BXm1Empty &&
3022  meMETPhiNeutralHadronsEndcapPlus_BXm1Empty->getRootObject())
3023  meMETPhiNeutralHadronsEndcapPlus_BXm1Empty->Fill(
3024  atan2(py_neutralHadronsEndcapPlus, px_neutralHadronsEndcapPlus));
3025  }
3026  if (pt_sum_NHF_Endcap_minus) {
3027  meMETPhiNeutralHadronsEndcapMinus_BXm1Empty =
3028  map_of_MEs[DirName + "/" + "METPhiNeutralHadronsEndcapMinus_BXm1Empty"];
3029  if (meMETPhiNeutralHadronsEndcapMinus_BXm1Empty &&
3030  meMETPhiNeutralHadronsEndcapMinus_BXm1Empty->getRootObject())
3031  meMETPhiNeutralHadronsEndcapMinus_BXm1Empty->Fill(
3032  atan2(py_neutralHadronsEndcapMinus, px_neutralHadronsEndcapMinus));
3033  }
3034  if (pt_sum_PhF_Barrel) {
3035  meMETPhiPhotonsBarrel_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiPhotonsBarrel_BXm1Empty"];
3036  if (meMETPhiPhotonsBarrel_BXm1Empty && meMETPhiPhotonsBarrel_BXm1Empty->getRootObject())
3037  meMETPhiPhotonsBarrel_BXm1Empty->Fill(atan2(py_PhotonsBarrel, px_PhotonsBarrel));
3038  }
3039  if (pt_sum_PhF_Endcap_plus) {
3040  meMETPhiPhotonsEndcapPlus_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiPhotonsEndcapPlus_BXm1Empty"];
3041  if (meMETPhiPhotonsEndcapPlus_BXm1Empty && meMETPhiPhotonsEndcapPlus_BXm1Empty->getRootObject())
3042  meMETPhiPhotonsEndcapPlus_BXm1Empty->Fill(atan2(py_PhotonsEndcapPlus, px_PhotonsEndcapPlus));
3043  }
3044  if (pt_sum_PhF_Endcap_minus) {
3045  meMETPhiPhotonsEndcapMinus_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiPhotonsEndcapMinus_BXm1Empty"];
3046  if (meMETPhiPhotonsEndcapMinus_BXm1Empty && meMETPhiPhotonsEndcapMinus_BXm1Empty->getRootObject())
3047  meMETPhiPhotonsEndcapMinus_BXm1Empty->Fill(atan2(py_PhotonsEndcapMinus, px_PhotonsEndcapMinus));
3048  }
3049  if (pt_sum_HFH_plus) {
3050  meMETPhiHFHadronsPlus_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiHFHadronsPlus_BXm1Empty"];
3051  if (meMETPhiHFHadronsPlus_BXm1Empty && meMETPhiHFHadronsPlus_BXm1Empty->getRootObject())
3052  meMETPhiHFHadronsPlus_BXm1Empty->Fill(atan2(py_HFHadronsPlus, px_HFHadronsPlus));
3053  }
3054  if (pt_sum_HFH_minus) {
3055  meMETPhiHFHadronsMinus_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiHFHadronsMinus_BXm1Empty"];
3056  if (meMETPhiHFHadronsMinus_BXm1Empty && meMETPhiHFHadronsMinus_BXm1Empty->getRootObject())
3057  meMETPhiHFHadronsMinus_BXm1Empty->Fill(atan2(py_HFHadronsMinus, px_HFHadronsMinus));
3058  }
3059  if (pt_sum_HFE_plus) {
3060  meMETPhiHFEGammasPlus_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiHFEGammasPlus_BXm1Empty"];
3061  if (meMETPhiHFEGammasPlus_BXm1Empty && meMETPhiHFEGammasPlus_BXm1Empty->getRootObject())
3062  meMETPhiHFEGammasPlus_BXm1Empty->Fill(atan2(py_HFEGammasPlus, px_HFEGammasPlus));
3063  }
3064  if (pt_sum_HFE_minus) {
3065  meMETPhiHFEGammasMinus_BXm1Empty = map_of_MEs[DirName + "/" + "METPhiHFEGammasMinus_BXm1Empty"];
3066  if (meMETPhiHFEGammasMinus_BXm1Empty && meMETPhiHFEGammasMinus_BXm1Empty->getRootObject())
3067  meMETPhiHFEGammasMinus_BXm1Empty->Fill(atan2(py_HFEGammasMinus, px_HFEGammasMinus));
3068  }
3069  }
3070 
3071  } //fill candidate plots only then
3072 
3073  // PFMET getters
3074  //----------------------------------------------------------------------------
3075  double pfPhotonEtFraction = pfmet->photonEtFraction();
3076  double pfPhotonEt = pfmet->photonEt();
3077  double pfNeutralHadronEtFraction = pfmet->neutralHadronEtFraction();
3078  double pfNeutralHadronEt = pfmet->neutralHadronEt();
3079  double pfElectronEt = pfmet->electronEt();
3080  double pfChargedHadronEtFraction = pfmet->chargedHadronEtFraction();
3081  double pfChargedHadronEt = pfmet->chargedHadronEt();
3082  double pfMuonEt = pfmet->muonEt();
3083  double pfHFHadronEtFraction = pfmet->HFHadronEtFraction();
3084  double pfHFHadronEt = pfmet->HFHadronEt();
3085  double pfHFEMEtFraction = pfmet->HFEMEtFraction();
3086  double pfHFEMEt = pfmet->HFEMEt();
3087  mePhotonEtFraction = map_of_MEs[DirName + "/PfPhotonEtFraction"];
3088  mePhotonEt = map_of_MEs[DirName + "/PfPhotonEt"];
3089  meNeutralHadronEtFraction = map_of_MEs[DirName + "/PfNeutralHadronEtFraction"];
3090  meNeutralHadronEt = map_of_MEs[DirName + "/PfNeutralHadronEt"];
3091  meElectronEt = map_of_MEs[DirName + "/PfElectronEt"];
3092  meChargedHadronEtFraction = map_of_MEs[DirName + "/PfChargedHadronEtFraction"];
3093  meChargedHadronEt = map_of_MEs[DirName + "/PfChargedHadronEt"];
3094  meMuonEt = map_of_MEs[DirName + "/PfMuonEt"];
3095  meHFHadronEtFraction = map_of_MEs[DirName + "/PfHFHadronEtFraction"];
3096  meHFHadronEt = map_of_MEs[DirName + "/PfHFHadronEt"];
3097  meHFEMEtFraction = map_of_MEs[DirName + "/PfHFEMEtFraction"];
3098  meHFEMEt = map_of_MEs[DirName + "/PfHFEMEt"];
3099 
3100  if (mePhotonEtFraction && mePhotonEtFraction->getRootObject())
3101  mePhotonEtFraction->Fill(pfPhotonEtFraction);
3102  if (mePhotonEt && mePhotonEt->getRootObject())
3103  mePhotonEt->Fill(pfPhotonEt);
3104  if (meNeutralHadronEtFraction && meNeutralHadronEtFraction->getRootObject())
3105  meNeutralHadronEtFraction->Fill(pfNeutralHadronEtFraction);
3106  if (meNeutralHadronEt && meNeutralHadronEt->getRootObject())
3107  meNeutralHadronEt->Fill(pfNeutralHadronEt);
3108  if (meElectronEt && meElectronEt->getRootObject())
3109  meElectronEt->Fill(pfElectronEt);
3110  if (meChargedHadronEtFraction && meChargedHadronEtFraction->getRootObject())
3111  meChargedHadronEtFraction->Fill(pfChargedHadronEtFraction);
3112  if (meChargedHadronEt && meChargedHadronEt->getRootObject())
3113  meChargedHadronEt->Fill(pfChargedHadronEt);
3114  if (meMuonEt && meMuonEt->getRootObject())
3115  meMuonEt->Fill(pfMuonEt);
3116  if (meHFHadronEtFraction && meHFHadronEtFraction->getRootObject())
3117  meHFHadronEtFraction->Fill(pfHFHadronEtFraction);
3118  if (meHFHadronEt && meHFHadronEt->getRootObject())
3119  meHFHadronEt->Fill(pfHFHadronEt);
3120  if (meHFEMEtFraction && meHFEMEtFraction->getRootObject())
3121  meHFEMEtFraction->Fill(pfHFEMEtFraction);
3122  if (meHFEMEt && meHFEMEt->getRootObject())
3123  meHFEMEt->Fill(pfHFEMEt);
3124 
3125  //NPV profiles
3126 
3127  mePhotonEtFraction_profile = map_of_MEs[DirName + "/PfPhotonEtFraction_profile"];
3128  mePhotonEt_profile = map_of_MEs[DirName + "/PfPhotonEt_profile"];
3129  meNeutralHadronEtFraction_profile = map_of_MEs[DirName + "/PfNeutralHadronEtFraction_profile"];
3130  meNeutralHadronEt_profile = map_of_MEs[DirName + "/PfNeutralHadronEt_profile"];
3131  meChargedHadronEtFraction_profile = map_of_MEs[DirName + "/PfChargedHadronEtFraction_profile"];
3132  meChargedHadronEt_profile = map_of_MEs[DirName + "/PfChargedHadronEt_profile"];
3133  meHFHadronEtFraction_profile = map_of_MEs[DirName + "/PfHFHadronEtFraction_profile"];
3134  meHFHadronEt_profile = map_of_MEs[DirName + "/PfHFHadronEt_profile"];
3135  meHFEMEtFraction_profile = map_of_MEs[DirName + "/PfHFEMEtFraction_profile"];
3136  meHFEMEt_profile = map_of_MEs[DirName + "/PfHFEMEt_profile"];
3137 
3138  if (mePhotonEtFraction_profile && mePhotonEtFraction_profile->getRootObject())
3139  mePhotonEtFraction_profile->Fill(numPV_, pfPhotonEtFraction);
3140  if (mePhotonEt_profile && mePhotonEt_profile->getRootObject())
3141  mePhotonEt_profile->Fill(numPV_, pfPhotonEt);
3142  if (meNeutralHadronEtFraction_profile && meNeutralHadronEtFraction_profile->getRootObject())
3143  meNeutralHadronEtFraction_profile->Fill(numPV_, pfNeutralHadronEtFraction);
3144  if (meNeutralHadronEt_profile && meNeutralHadronEt_profile->getRootObject())
3145  meNeutralHadronEt_profile->Fill(numPV_, pfNeutralHadronEt);
3146  if (meChargedHadronEtFraction_profile && meChargedHadronEtFraction_profile->getRootObject())
3147  meChargedHadronEtFraction_profile->Fill(numPV_, pfChargedHadronEtFraction);
3148  if (meChargedHadronEt_profile && meChargedHadronEt_profile->getRootObject())
3149  meChargedHadronEt_profile->Fill(numPV_, pfChargedHadronEt);
3150  if (meHFHadronEtFraction_profile && meHFHadronEtFraction_profile->getRootObject())
3151  meHFHadronEtFraction_profile->Fill(numPV_, pfHFHadronEtFraction);
3152  if (meHFHadronEt_profile && meHFHadronEt_profile->getRootObject())
3153  meHFHadronEt_profile->Fill(numPV_, pfHFHadronEt);
3154  if (meHFEMEtFraction_profile && meHFEMEtFraction_profile->getRootObject())
3155  meHFEMEtFraction_profile->Fill(numPV_, pfHFEMEtFraction);
3156  if (meHFEMEt_profile && meHFEMEt_profile->getRootObject())
3157  meHFEMEt_profile->Fill(numPV_, pfHFEMEt);
3158  }
3159 
3160  if (isMiniAODMet_) {
3161  mePhotonEtFraction = map_of_MEs[DirName + "/PfPhotonEtFraction"];
3162  meNeutralHadronEtFraction = map_of_MEs[DirName + "/PfNeutralHadronEtFraction"];
3163  meChargedHadronEtFraction = map_of_MEs[DirName + "/PfChargedHadronEtFraction"];
3164  meHFHadronEtFraction = map_of_MEs[DirName + "/PfHFHadronEtFraction"];
3165  meHFEMEtFraction = map_of_MEs[DirName + "/PfHFEMEtFraction"];
3166 
3167  if (mePhotonEtFraction && mePhotonEtFraction->getRootObject())
3168  mePhotonEtFraction->Fill(patmet->NeutralEMFraction());
3169  if (meNeutralHadronEtFraction && meNeutralHadronEtFraction->getRootObject())
3170  meNeutralHadronEtFraction->Fill(patmet->NeutralHadEtFraction());
3171  if (meChargedHadronEtFraction && meChargedHadronEtFraction->getRootObject())
3172  meChargedHadronEtFraction->Fill(patmet->ChargedHadEtFraction());
3173  if (meHFHadronEtFraction && meHFHadronEtFraction->getRootObject())
3174  meHFHadronEtFraction->Fill(patmet->Type6EtFraction()); //HFHadrons
3175  if (meHFEMEtFraction && meHFEMEtFraction->getRootObject())
3176  meHFEMEtFraction->Fill(patmet->Type7EtFraction());
3177 
3178  //NPV profiles
3179  mePhotonEtFraction_profile = map_of_MEs[DirName + "/PfPhotonEtFraction_profile"];
3180  meNeutralHadronEtFraction_profile = map_of_MEs[DirName + "/PfNeutralHadronEtFraction_profile"];
3181  meChargedHadronEtFraction_profile = map_of_MEs[DirName + "/PfChargedHadronEtFraction_profile"];
3182  meHFHadronEtFraction_profile = map_of_MEs[DirName + "/PfHFHadronEtFraction_profile"];
3183  meHFEMEtFraction_profile = map_of_MEs[DirName + "/PfHFEMEtFraction_profile"];
3184 
3185  if (mePhotonEtFraction_profile && mePhotonEtFraction_profile->getRootObject())
3186  mePhotonEtFraction_profile->Fill(numPV_, patmet->NeutralEMFraction());
3187  if (meNeutralHadronEtFraction_profile && meNeutralHadronEtFraction_profile->getRootObject())
3188  meNeutralHadronEtFraction_profile->Fill(numPV_, patmet->NeutralHadEtFraction());
3189  if (meChargedHadronEtFraction_profile && meChargedHadronEtFraction_profile->getRootObject())
3190  meChargedHadronEtFraction_profile->Fill(numPV_, patmet->ChargedHadEtFraction());
3191  if (meHFHadronEtFraction_profile && meHFHadronEtFraction_profile->getRootObject())
3192  meHFHadronEtFraction_profile->Fill(numPV_, patmet->Type6EtFraction());
3193  if (meHFEMEtFraction_profile && meHFEMEtFraction_profile->getRootObject())
3194  meHFEMEtFraction_profile->Fill(numPV_, patmet->Type7EtFraction());
3195 
3196  mePhotonEt = map_of_MEs[DirName + "/PfPhotonEt"];
3197  meNeutralHadronEt = map_of_MEs[DirName + "/PfNeutralHadronEt"];
3198  meChargedHadronEt = map_of_MEs[DirName + "/PfChargedHadronEt"];
3199  meHFHadronEt = map_of_MEs[DirName + "/PfHFHadronEt"];
3200  meHFEMEt = map_of_MEs[DirName + "/PfHFEMEt"];
3201  meMuonEt = map_of_MEs[DirName + "/PfMuonEt"];
3202  meElectronEt = map_of_MEs[DirName + "/PfElectronEt"];
3203 
3204  if (mePhotonEt && mePhotonEt->getRootObject())
3205  mePhotonEt->Fill(patmet->NeutralEMFraction() * patmet->sumEt());
3206  if (meNeutralHadronEt && meNeutralHadronEt->getRootObject())
3207  meNeutralHadronEt->Fill(patmet->NeutralHadEtFraction() * patmet->sumEt());
3208  if (meChargedHadronEt && meChargedHadronEt->getRootObject())
3209  meChargedHadronEt->Fill(patmet->ChargedHadEtFraction() * patmet->sumEt());
3210  if (meHFHadronEt && meHFHadronEt->getRootObject())
3211  meHFHadronEt->Fill(patmet->Type6EtFraction() * patmet->sumEt()); //HFHadrons
3212  if (meHFEMEt && meHFEMEt->getRootObject())
3213  meHFEMEt->Fill(patmet->Type7EtFraction() * patmet->sumEt());
3214  if (meMuonEt && meMuonEt->getRootObject())
3215  meMuonEt->Fill(patmet->MuonEtFraction() * patmet->sumEt());
3216  if (meElectronEt && meElectronEt->getRootObject())
3217  meElectronEt->Fill(patmet->ChargedEMEtFraction() * patmet->sumEt());
3218 
3219  //NPV profiles
3220  mePhotonEt_profile = map_of_MEs[DirName + "/PfPhotonEt_profile"];
3221  meNeutralHadronEt_profile = map_of_MEs[DirName + "/PfNeutralHadronEt_profile"];
3222  meChargedHadronEt_profile = map_of_MEs[DirName + "/PfChargedHadronEt_profile"];
3223  meHFHadronEt_profile = map_of_MEs[DirName + "/PfHFHadronEt_profile"];
3224  meHFEMEt_profile = map_of_MEs[DirName + "/PfHFEMEt_profile"];
3225 
3226  if (mePhotonEt_profile && mePhotonEt_profile->getRootObject())
3227  mePhotonEt_profile->Fill(numPV_, patmet->NeutralEMFraction() * patmet->sumEt());
3228  if (meNeutralHadronEt_profile && meNeutralHadronEt_profile->getRootObject())
3229  meNeutralHadronEt_profile->Fill(numPV_, patmet->NeutralHadEtFraction() * patmet->sumEt());
3230  if (meChargedHadronEt_profile && meChargedHadronEt_profile->getRootObject())
3231  meChargedHadronEt_profile->Fill(numPV_, patmet->ChargedHadEtFraction() * patmet->sumEt());
3232  if (meHFHadronEt_profile && meHFHadronEt_profile->getRootObject())
3233  meHFHadronEt_profile->Fill(numPV_, patmet->Type6EtFraction() * patmet->sumEt());
3234  if (meHFEMEt_profile && meHFEMEt_profile->getRootObject())
3235  meHFEMEt_profile->Fill(numPV_, patmet->Type7EtFraction() * patmet->sumEt());
3236  }
3237 
3238  if (isCaloMet_) {
3239  //if (bLumiSecPlot){//get from config level
3240  if (fill_met_high_level_histo) {
3241  hMExLS = map_of_MEs[DirName + "/" + "MExLS"];
3242  if (hMExLS && hMExLS->getRootObject())
3243  hMExLS->Fill(MEx, myLuminosityBlock);
3244  hMEyLS = map_of_MEs[DirName + "/" + "MEyLS"];
3245  if (hMEyLS && hMEyLS->getRootObject())
3246  hMEyLS->Fill(MEy, myLuminosityBlock);
3247  }
3248  }
3249  } //check if we only wanna do Z plots
3250 }
#define LogDebug(id)
Analysis-level MET class.
Definition: MET.h:40
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX)
Definition: DQMStore.cc:239
T getParameter(std::string const &) const
double hadEtInHE() const
Definition: CaloMET.h:49
double eta() const final
momentum pseudorapidity
double HFEMEtFraction() const
Definition: PFMET.h:45
double hadEtInHF() const
Definition: CaloMET.h:51
const TechnicalTriggerWord & technicalTriggerWord(int bxInEventValue) const
double ChargedHadEtFraction() const
Definition: MET.h:140
double MuonEtFraction() const
Definition: MET.h:141
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
std::vector< T >::const_iterator search(const cond::Time_t &val, const std::vector< T > &container)
Definition: IOVProxy.cc:315
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:418
std::vector< ParameterSet > VParameterSet
Definition: ParameterSet.h:33
double neutralHadronEtFraction() const
Definition: PFMET.h:30
double px() const final
x coordinate of momentum vector
bool accept() const
Has at least one path accepted the event?
double muonEt() const
Definition: PFMET.h:40
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 >)
void setLumiFlag()
this ME is meant to be stored for each luminosity section
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:61
double pt() const final
transverse momentum
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
double NeutralEMFraction() const
Definition: MET.h:137
double correction(const LorentzVector &fJet) const
get correction using Jet information only
Definition: JetCorrector.h:47
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
double ChargedEMEtFraction() const
Definition: MET.h:139
double Type6EtFraction() const
Definition: MET.h:142
double Type7EtFraction() const
Definition: MET.h:143
Jet ID object.
Definition: JetID.h:16
double NeutralHadEtFraction() const
Definition: MET.h:138
AlgorithmMap::const_iterator CItAlgo
iterators through map containing the algorithms
void makeRatePlot(std::string, double)
double mEtSig() const
Definition: MET.h:54
double HFHadronEtFraction() const
Definition: PFMET.h:42
int iEvent
Definition: GenABIO.cc:224
double sumEt() const
Definition: MET.h:52
void analyze(const edm::Event &, const edm::EventSetup &) override
Get the analysis.
double HFHadronEt() const
Definition: PFMET.h:43
double et() const final
transverse energy
void bookMESet(std::string, DQMStore::IBooker &, std::map< std::string, MonitorElement * > &)
Definition: METAnalyzer.cc:221
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 photonEtFraction() const
Definition: PFMET.h:27
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, char const *option="s")
Definition: DQMStore.cc:333
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
double emEtInEB() const
Definition: CaloMET.h:53
bool isValid() const
Definition: HandleBase.h:70
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)
#define LogTrace(id)
double HFEMEt() const
Definition: PFMET.h:46
PF Jet selector for pat::Jets.
Definition: Error.h:15
double hadEtInHO() const
Definition: CaloMET.h:47
#define M_PI
double electronEt() const
Definition: PFMET.h:34
Jet selector for pat::Jets and for CaloJets.
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
Initialize run-based parameters.
double etFractionHadronic() const
Definition: CaloMET.h:41
T const * product() const
Definition: Handle.h:69
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
double photonEt() const
Definition: PFMET.h:28
static std::string const triggerResults("TriggerResults")
double py() const final
y coordinate of momentum vector
METAnalyzer(const edm::ParameterSet &)
Constructor.
Definition: METAnalyzer.cc:42
double emEtInEE() const
Definition: CaloMET.h:55
void bookMonitorElement(std::string, DQMStore::IBooker &, std::map< std::string, MonitorElement * > &, bool, bool, bool)
Definition: METAnalyzer.cc:248
double chargedHadronEtFraction() const
Definition: PFMET.h:36
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:40
fixed size matrix
HLT enums.
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Definition: DQMStore.cc:266
static int position[264][3]
Definition: ReadPGInfo.cc:289
T get() const
Definition: EventSetup.h:73
pfIsolationR04
Definition: muons_cfi.py:31
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Inizialize parameters for histo binning.
Definition: METAnalyzer.cc:196
~METAnalyzer() override
Destructor.
Definition: METAnalyzer.cc:187
double emEtInHF() const
Definition: CaloMET.h:57
double neutralHadronEt() const
Definition: PFMET.h:31
const AlgorithmMap & gtTechnicalTriggerMap() const
get / set the technical trigger map
virtual ParticleType particleId() const
Definition: PFCandidate.h:366
virtual TObject const * getRootObject() const
double phi() const final
momentum azimuthal angle
T const * product() const
Definition: ESHandle.h:86
fd
Definition: ztee.py:136
double hadEtInHB() const
Definition: CaloMET.h:45
double emEtFraction() const
Definition: CaloMET.h:43
double chargedHadronEt() const
Definition: PFMET.h:37
Definition: Run.h:45
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:39