CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ExoticaDQM.cc
Go to the documentation of this file.
2 
3 #include <memory>
4 
5 // DQM
8 
9 // Framework
18 
19 // Candidate handling
26 
27 // Vertex utilities
30 
31 // Other
35 
36 // Math
44 
45 // vertexing
46 
47 // Transient tracks
55 
56 //JetCorrection
58 
59 // ROOT
60 #include "TLorentzVector.h"
61 
62 // STDLIB
63 #include <iostream>
64 #include <iomanip>
65 #include <stdio.h>
66 #include <string>
67 #include <sstream>
68 #include <math.h>
69 
70 using namespace edm;
71 using namespace std;
72 using namespace reco;
73 using namespace trigger;
74 
75 typedef vector<string> vstring;
76 
78  bool operator()( const Candidate &c1, const Candidate &c2) const {
79  return c1.pt() > c2.pt();
80  }
81 };
82 
83 
84 //
85 // -- Constructor
86 //
88 
89  edm::LogInfo("ExoticaDQM") << " Starting ExoticaDQM " << "\n" ;
90 
91  bei_ = Service<DQMStore>().operator->();
92  bei_->setCurrentFolder("Physics/Exotica");
93  bookHistos(bei_);
94 
95  typedef std::vector<edm::InputTag> vtag;
96 
97  // Get parameters from configuration file
98  // Trigger
99  theTriggerResultsCollection = ps.getParameter<InputTag>("triggerResultsCollection");
100  //
101  theTriggerForMultiJetsList = ps.getParameter<vstring>("triggerMultiJetsList");
102  theTriggerForLongLivedList = ps.getParameter<vstring>("triggerLongLivedList");
103 
104  //
105  ElectronLabel_ = ps.getParameter<InputTag>("electronCollection");
106  PFElectronLabelEI_ = ps.getParameter<InputTag>("pfelectronCollectionEI");
107  //
108  MuonLabel_ = ps.getParameter<InputTag>("muonCollection");
109  PFMuonLabelEI_ = ps.getParameter<InputTag>("pfmuonCollectionEI");
110  //
111  TauLabel_ = ps.getParameter<InputTag>("tauCollection");
112  //PFTauLabel_ = ps.getParameter<InputTag>("pftauCollection");
113  //
114  PhotonLabel_ = ps.getParameter<InputTag>("photonCollection");
115  //PFPhotonLabel_ = ps.getParameter<InputTag>("pfphotonCollection");
116  //
117  CaloJetLabel_ = ps.getParameter<InputTag>("caloJetCollection");
118  PFJetLabel_ = ps.getParameter<InputTag>("pfJetCollection");
119  PFJetLabelEI_ = ps.getParameter<InputTag>("pfJetCollectionEI");
120 
121  //
122  CaloMETLabel_ = ps.getParameter<InputTag>("caloMETCollection");
123  PFMETLabel_ = ps.getParameter<InputTag>("pfMETCollection");
124  PFMETLabelEI_ = ps.getParameter<InputTag>("pfMETCollectionEI");
125 
126  //Cuts - MultiJets
127  jetID = new reco::helper::JetIDHelper(ps.getParameter<ParameterSet>("JetIDParams"));
128  mj_monojet_ptPFJet_ = ps.getParameter<double>("mj_monojet_ptPFJet");
129  mj_monojet_ptPFMuon_ = ps.getParameter<double>("mj_monojet_ptPFMuon");
130  mj_monojet_ptPFElectron_ = ps.getParameter<double>("mj_monojet_ptPFElectron");
131  CaloJetCorService_ = ps.getParameter<std::string>("CaloJetCorService");
132  PFJetCorService_ = ps.getParameter<std::string>("PFJetCorService");
133 
134  // just to initialize
135  //isValidHltConfig_ = false;
136 }
137 
138 
139 //
140 // -- Destructor
141 //
143  edm::LogInfo("ExoticaDQM") << " Deleting ExoticaDQM " << "\n" ;
144 }
145 
146 
147 //
148 // -- Begin Job
149 //
151  nLumiSecs_ = 0;
152  nEvents_ = 0;
153  pi = 3.14159265;
154 }
155 
156 
157 //
158 // -- Begin Run
159 //
160 void ExoticaDQM::beginRun(Run const& run, edm::EventSetup const& eSetup) {
161  edm::LogInfo ("ExoticaDQM") <<"[ExoticaDQM]: Begining of Run";
162 
163  // passed as parameter to HLTConfigProvider::init(), not yet used
164  bool isConfigChanged = false;
165 
166  // isValidHltConfig_ used to short-circuit analyze() in case of problems
167  // const std::string hltProcessName( "HLT" );
168  const std::string hltProcessName = theTriggerResultsCollection.process();
169  isValidHltConfig_ = hltConfigProvider_.init( run, eSetup, hltProcessName, isConfigChanged );
170 
171 }
172 
173 
174 //
175 // -- Begin Luminosity Block
176 //
178  edm::EventSetup const& context) {
179  //edm::LogInfo ("ExoticaDQM") <<"[ExoticaDQM]: Begin of LS transition";
180 }
181 
182 
183 //
184 // -- Book histograms
185 //
187 
188  bei->cd();
189 
190  //--- Multijets
191  bei->setCurrentFolder("Physics/Exotica/MultiJets");
192  mj_monojet_pfchef = bei->book1D("mj_monojet_pfchef", "PFJetID CHEF", 50, 0.0 , 1.0);
193  mj_monojet_pfnhef = bei->book1D("mj_monojet_pfnhef", "PFJetID NHEF", 50, 0.0 , 1.0);
194  mj_monojet_pfcemf = bei->book1D("mj_monojet_pfcemf", "PFJetID CEMF", 50, 0.0 , 1.0);
195  mj_monojet_pfnemf = bei->book1D("mj_monojet_pfnemf", "PFJetID NEMF", 50, 0.0 , 1.0);
196  mj_monojet_pfJet1_pt = bei->book1D("mj_monojet_pfJet1_pt", "Pt of PFJet-1 (GeV)", 40, 0.0 , 1000);
197  mj_monojet_pfJet2_pt = bei->book1D("mj_monojet_pfJet2_pt", "Pt of PFJet-2 (GeV)", 40, 0.0 , 1000);
198  mj_monojet_pfJet1_eta = bei->book1D("mj_monojet_pfJet1_eta", "#eta(PFJet-1)", 50, -5.0, 5.0);
199  mj_monojet_pfJet2_eta = bei->book1D("mj_monojet_pfJet2_eta", "#eta(PFJet-2)", 50, -5.0, 5.0);
200  mj_monojet_pfJetMulti = bei->book1D("mj_monojet_pfJetMulti", "No. of PFJets", 10, 0., 10.);
201  mj_monojet_deltaPhiPFJet1PFJet2 = bei->book1D("mj_monojet_deltaPhiPFJet1PFJet2", "#Delta#phi(PFJet1, PFJet2)", 40, 0., 4.);
202  mj_monojet_deltaRPFJet1PFJet2 = bei->book1D("mj_monojet_deltaRPFJet1PFJet2", "#DeltaR(PFJet1, PFJet2)", 50, 0., 10.);
203  mj_monojet_pfmetnomu = bei->book1D("mj_monojet_pfmetnomu", "PFMET no Mu", 100, 0.0 , 500.0);
204  mj_caloMet_et = bei->book1D("mj_caloMet", "Calo Missing E_{T}; GeV", 50, 0.0 , 500);
205  mj_caloMet_phi = bei->book1D("mj_caloMet_phi", "Calo Missing E_{T} #phi;#phi(MET)", 35, -3.5, 3.5 );
206  mj_pfMet_et = bei->book1D("mj_pfMet", "Pf Missing E_{T}; GeV", 50, 0.0 , 500);
207  mj_pfMet_phi = bei->book1D("mj_pfMet_phi", "Pf Missing E_{T} #phi;#phi(MET)", 35, -3.5, 3.5 );
208 
209  //
210  //bei->setCurrentFolder("Physics/Exotica/MultiJetsTrigger");
211 
212  //--- LongLived
213  bei->setCurrentFolder("Physics/Exotica/LongLived");
214  ll_gammajet_sMajMajPhot = bei->book1D("ll_gammajet_sMajMajPhot", "sMajMajPhot", 50, 0.0 , 5.0);
215  ll_gammajet_sMinMinPhot = bei->book1D("ll_gammajet_sMinMinPhot", "sMinMinPhot", 50, 0.0 , 5.0);
216 
217  //
218  //bei->setCurrentFolder("Physics/Exotica/LongLivedTrigger");
219 
220  //
221  bei->setCurrentFolder("Physics/Exotica/EIComparison");
222  ei_pfjet1_pt = bei->book1D("ei_pfjet1_pt", "Pt of PFJet-1 (EI) (GeV)", 40, 0.0 , 1000);
223  ei_pfmet_pt = bei->book1D("ei_pfmet_pt", "Pt of PFMET (EI) (GeV)", 40, 0.0 , 1000);
224  //ei_pfmuon_pt = bei->book1D("ei_pfmuon_pt", "Pt of PFMuon (EI) (GeV)", 40, 0.0 , 1000);
225  //ei_pfelectron_pt = bei->book1D("ei_pfelectron_pt", "Pt of PFElectron (EI) (GeV)", 40, 0.0 , 1000);
226 
227  bei->cd();
228 }
229 
230 
231 //
232 // -- Analyze
233 //
235 
236  // Calo objects
237  // Electrons
238  bool ValidCaloElectron = iEvent.getByLabel(ElectronLabel_, ElectronCollection_);
239  if(!ValidCaloElectron) return;
240  // Muons
241  bool ValidCaloMuon = iEvent.getByLabel(MuonLabel_, MuonCollection_);
242  if(!ValidCaloMuon) return;
243  // Taus
244  bool ValidCaloTau = iEvent.getByLabel(TauLabel_, TauCollection_);
245  if(!ValidCaloTau) return;
246  // Photons
247  bool ValidCaloPhoton = iEvent.getByLabel(PhotonLabel_, PhotonCollection_);
248  if(!ValidCaloPhoton) return;
249  // Jets
250  bool ValidCaloJet = iEvent.getByLabel(CaloJetLabel_, caloJetCollection_);
251  if(!ValidCaloJet) return;
252  calojets = *caloJetCollection_;
253  // MET
254  bool ValidCaloMET = iEvent.getByLabel(CaloMETLabel_, caloMETCollection_);
255  if(!ValidCaloMET) return;
256 
257 
258  // PF objects
259  // PFJets
260  bool ValidPFJet = iEvent.getByLabel(PFJetLabel_, pfJetCollection_);
261  if(!ValidPFJet) return;
262  pfjets = *pfJetCollection_;
263  // PFMETs
264  bool ValidPFMET = iEvent.getByLabel(PFMETLabel_, pfMETCollection_);
265  if(!ValidPFMET) return;
266 
267  //#######################################################
268  // Jet Correction
269  // Define on-the-fly correction Jet
270  for(int i=0; i<2; i++){
271  CaloJetPx[i] = 0.;
272  CaloJetPy[i] = 0.;
273  CaloJetPt[i] = 0.;
274  CaloJetEta[i] = 0.;
275  CaloJetPhi[i] = 0.;
276  CaloJetEMF[i] = 0.;
277  CaloJetfHPD[i] = 0.;
278  CaloJetn90[i] = 0.;
279  PFJetPx[i] = 0.;
280  PFJetPy[i] = 0.;
281  PFJetPt[i] = 0.;
282  PFJetEta[i] = 0.;
283  PFJetPhi[i] = 0.;
284  PFJetNHEF[i] = 0.;
285  PFJetCHEF[i] = 0.;
286  PFJetNEMF[i] = 0.;
287  PFJetCEMF[i] = 0.;
288  }
289 
290  //---------- CaloJet Correction (on-the-fly) ----------
291  const JetCorrector* calocorrector = JetCorrector::getJetCorrector(CaloJetCorService_,iSetup);
292  CaloJetCollection::const_iterator calojet_ = calojets.begin();
293  for(; calojet_ != calojets.end(); ++calojet_){
294  double scale = calocorrector->correction(*calojet_,iEvent, iSetup);
295  jetID->calculate(iEvent, *calojet_);
296 
297  if(scale*calojet_->pt()>CaloJetPt[0]){
298  CaloJetPt[1] = CaloJetPt[0];
299  CaloJetPx[1] = CaloJetPx[0];
300  CaloJetPy[1] = CaloJetPy[0];
301  CaloJetEta[1] = CaloJetEta[0];
302  CaloJetPhi[1] = CaloJetPhi[0];
303  CaloJetEMF[1] = CaloJetEMF[0];
304  CaloJetfHPD[1] = CaloJetfHPD[0];
305  CaloJetn90[1] = CaloJetn90[0];
306  //
307  CaloJetPt[0] = scale*calojet_->pt();
308  CaloJetPx[0] = scale*calojet_->px();
309  CaloJetPy[0] = scale*calojet_->py();
310  CaloJetEta[0] = calojet_->eta();
311  CaloJetPhi[0] = calojet_->phi();
312  CaloJetEMF[0] = calojet_->emEnergyFraction();
313  CaloJetfHPD[0] = jetID->fHPD();
314  CaloJetn90[0] = jetID->n90Hits();
315  }
316  else if(scale*calojet_->pt()<CaloJetPt[0] && scale*calojet_->pt()>CaloJetPt[1] ){
317  CaloJetPt[1] = scale*calojet_->pt();
318  CaloJetPx[1] = scale*calojet_->px();
319  CaloJetPy[1] = scale*calojet_->py();
320  CaloJetEta[1] = calojet_->eta();
321  CaloJetPhi[1] = calojet_->phi();
322  CaloJetEMF[1] = calojet_->emEnergyFraction();
323  CaloJetfHPD[1] = jetID->fHPD();
324  CaloJetn90[1] = jetID->n90Hits();
325  }
326  else{}
327  }
328 
329  //
330  mj_monojet_countPFJet=0;
331  const JetCorrector* pfcorrector = JetCorrector::getJetCorrector(PFJetCorService_,iSetup);
332  PFJetCollection::const_iterator pfjet_ = pfjets.begin();
333  for(; pfjet_ != pfjets.end(); ++pfjet_){
334  double scale = pfcorrector->correction(*pfjet_,iEvent, iSetup);
335  if(scale*pfjet_->pt()>PFJetPt[0]){
336  PFJetPt[1] = PFJetPt[0];
337  PFJetPx[1] = PFJetPx[0];
338  PFJetPy[1] = PFJetPy[0];
339  PFJetEta[1] = PFJetEta[0];
340  PFJetPhi[1] = PFJetPhi[0];
341  PFJetNHEF[1] = PFJetNHEF[0];
342  PFJetCHEF[1] = PFJetCHEF[0];
343  PFJetNEMF[1] = PFJetNEMF[0];
344  PFJetCEMF[1] = PFJetCEMF[0];
345  //
346  PFJetPt[0] = scale*pfjet_->pt();
347  PFJetPx[0] = scale*pfjet_->px();
348  PFJetPy[0] = scale*pfjet_->py();
349  PFJetEta[0] = pfjet_->eta();
350  PFJetPhi[0] = pfjet_->phi();
351  PFJetNHEF[0] = pfjet_->neutralHadronEnergyFraction();
352  PFJetCHEF[0] = pfjet_->chargedHadronEnergyFraction();
353  PFJetNEMF[0] = pfjet_->neutralEmEnergyFraction();
354  PFJetCEMF[0] = pfjet_->chargedEmEnergyFraction();
355  }
356  else if(scale*pfjet_->pt()<PFJetPt[0] && scale*pfjet_->pt()>PFJetPt[1] ){
357  PFJetPt[1] = scale*pfjet_->pt();
358  PFJetPx[1] = scale*pfjet_->px();
359  PFJetPy[1] = scale*pfjet_->py();
360  PFJetEta[1] = pfjet_->eta();
361  PFJetPhi[1] = pfjet_->phi();
362  PFJetNHEF[1] = pfjet_->neutralHadronEnergyFraction();
363  PFJetCHEF[1] = pfjet_->chargedHadronEnergyFraction();
364  PFJetNEMF[1] = pfjet_->neutralEmEnergyFraction();
365  PFJetCEMF[1] = pfjet_->chargedEmEnergyFraction();
366  }
367  else{}
368  if(scale*pfjet_->pt()>mj_monojet_ptPFJet_) mj_monojet_countPFJet++;
369  }
370  //#######################################################
371 
372 
373  // Analyze
374  //
375  analyzeMultiJets(iEvent);
376  //analyzeMultiJetsTrigger(iEvent);
377  //
378  analyzeLongLived(iEvent);
379  //analyzeLongLivedTrigger(iEvent);
380 
381  analyzeEventInterpretation(iEvent, iSetup);
382 }
383 
385 
386  //--- MonoJet
387  //bool checkLepton = false;
388  //reco::MuonCollection::const_iterator muon = MuonCollection_->begin();
389  //for(; muon != MuonCollection_->end(); muon++){
390  //if(muon->pt()<mj_monojet_ptPFMuon_) continue;
391  //checkLepton = true;
392  //}
393  //reco::GsfElectronCollection::const_iterator electron = ElectronCollection_->begin();
394  //for(; electron != ElectronCollection_->end(); electron++){
395  //if(electron->pt()<mj_monojet_ptPFElectron_) continue;
396  //checkLepton = true;
397  //}
398  //if(checkLepton==false){
399 
400  if(PFJetPt[0]>0.){
401  mj_monojet_pfJet1_pt->Fill(PFJetPt[0]);
402  mj_monojet_pfJet1_eta->Fill(PFJetEta[0]);
403  mj_monojet_pfchef->Fill(PFJetCHEF[0]);
404  mj_monojet_pfnhef->Fill(PFJetNHEF[0]);
405  mj_monojet_pfcemf->Fill(PFJetCEMF[0]);
406  mj_monojet_pfnemf->Fill(PFJetNEMF[0]);
407  mj_monojet_pfJetMulti->Fill(mj_monojet_countPFJet);
408  }
409  if(PFJetPt[1]>0.){
410  mj_monojet_pfJet2_pt->Fill(PFJetPt[1]);
411  mj_monojet_pfJet2_eta->Fill(PFJetEta[1]);
412  mj_monojet_deltaPhiPFJet1PFJet2->Fill(deltaPhi(PFJetPhi[0],PFJetPhi[1]));
413  mj_monojet_deltaRPFJet1PFJet2->Fill(deltaR(PFJetEta[0],PFJetPhi[0],
414  PFJetEta[1],PFJetPhi[1]));
415  }
416 
417  //--- MET
418  const CaloMETCollection *calometcol = caloMETCollection_.product();
419  const CaloMET met = calometcol->front();
420  mj_caloMet_et->Fill(met.et());
421  mj_caloMet_phi->Fill(met.phi());
422 
423  //
424  const PFMETCollection *pfmetcol = pfMETCollection_.product();
425  const PFMET pfmet = pfmetcol->front();
426  mj_pfMet_et->Fill(pfmet.et());
427  mj_pfMet_phi->Fill(pfmet.phi());
428 }
429 
431 }
432 
434  // SMajMajPho, SMinMinPho
435  // get ECAL reco hits
436  Handle<EBRecHitCollection> ecalhitseb;
437  const EBRecHitCollection* rhitseb=0;
438  iEvent.getByLabel("reducedEcalRecHitsEB", ecalhitseb);
439  rhitseb = ecalhitseb.product(); // get a ptr to the product
440  //
441  Handle<EERecHitCollection> ecalhitsee;
442  const EERecHitCollection* rhitsee=0;
443  iEvent.getByLabel("reducedEcalRecHitsEE", ecalhitsee);
444  rhitsee = ecalhitsee.product(); // get a ptr to the product
445  //
446  int nPhot = 0;
447  reco::PhotonCollection::const_iterator photon = PhotonCollection_->begin();
448  for(; photon != PhotonCollection_->end(); ++photon){
449  if(photon->energy()<3.) continue;
450  if(nPhot>=40) continue;
451 
452  const Ptr<CaloCluster> theSeed = photon->superCluster()->seed();
453  const EcalRecHitCollection* rechits = ( photon->isEB()) ? rhitseb : rhitsee;
454  CaloClusterPtr SCseed = photon->superCluster()->seed();
455 
456  std::pair<DetId, float> maxRH = EcalClusterTools::getMaximum( *theSeed, &(*rechits) );
457 
458  if(maxRH.second) {
459  Cluster2ndMoments moments = EcalClusterTools::cluster2ndMoments(*SCseed, *rechits);
460  //std::vector<float> etaphimoments = EcalClusterTools::localCovariances(*SCseed, &(*rechits), &(*topology));
461  ll_gammajet_sMajMajPhot->Fill(moments.sMaj);
462  ll_gammajet_sMinMinPhot->Fill(moments.sMin);
463  }
464  else{
465  ll_gammajet_sMajMajPhot->Fill(-100.);
466  ll_gammajet_sMinMinPhot->Fill(-100.);
467  }
468  ++nPhot;
469  }
470 
471 }
472 
474 }
475 
477 
478  // EI
479  // PFElectrons
480  bool ValidPFElectronEI = iEvent.getByLabel(PFElectronLabelEI_, pfElectronCollectionEI_);
481  if(!ValidPFElectronEI) return;
482  pfelectronsEI = *pfElectronCollectionEI_;
483 
484  // PFMuons
485  bool ValidPFMuonEI = iEvent.getByLabel(PFMuonLabelEI_, pfMuonCollectionEI_);
486  if(!ValidPFMuonEI) return;
487  pfmuonsEI = *pfMuonCollectionEI_;
488 
489  // PFJets
490  bool ValidPFJetEI = iEvent.getByLabel(PFJetLabelEI_, pfJetCollectionEI_);
491  if(!ValidPFJetEI) return;
492  pfjetsEI = *pfJetCollectionEI_;
493 
494  // PFMETs
495  bool ValidPFMETEI = iEvent.getByLabel(PFMETLabelEI_, pfMETCollectionEI_);
496  if(!ValidPFMETEI) return;
497 
498  // Jet Correction
499  int countJet = 0;
500  PFJetEIPt = -99.;
501  const JetCorrector* pfcorrectorEI = JetCorrector::getJetCorrector(PFJetCorService_,iSetup);
502  PFJetCollection::const_iterator pfjet_ = pfjetsEI.begin();
503  for(; pfjet_ != pfjetsEI.end(); ++pfjet_){
504  double scale = pfcorrectorEI->correction(*pfjet_,iEvent, iSetup);
505  if(scale*pfjet_->pt()<PFJetEIPt) continue;
506  PFJetEIPt = scale*pfjet_->pt();
507  PFJetEIPx = scale*pfjet_->px();
508  PFJetEIPy = scale*pfjet_->py();
509  PFJetEIEta = pfjet_->eta();
510  PFJetEIPhi = pfjet_->phi();
511  PFJetEINHEF = pfjet_->neutralHadronEnergyFraction();
512  PFJetEICHEF = pfjet_->chargedHadronEnergyFraction();
513  PFJetEINEMF = pfjet_->neutralEmEnergyFraction();
514  PFJetEICEMF = pfjet_->chargedEmEnergyFraction();
515  countJet++;
516  }
517  if(countJet>0){
518  ei_pfjet1_pt->Fill(PFJetEIPt);
519  }
520 
521  const PFMETCollection *pfmetcolEI = pfMETCollectionEI_.product();
522  const PFMET pfmetEI = pfmetcolEI->front();
523  ei_pfmet_pt->Fill(pfmetEI.et());
524 }
525 
526 //
527 // -- End Luminosity Block
528 //
530  //edm::LogInfo ("ExoticaDQM") <<"[ExoticaDQM]: End of LS transition, performing the DQM client operation";
531  nLumiSecs_++;
532  //edm::LogInfo("ExoticaDQM") << "============================================ "
533  //<< endl << " ===> Iteration # " << nLumiSecs_ << " " << lumiSeg.luminosityBlock()
534  //<< endl << "============================================ " << endl;
535 }
536 
537 
538 //
539 // -- End Run
540 //
541 void ExoticaDQM::endRun(edm::Run const& run, edm::EventSetup const& eSetup){
542 }
543 
544 
545 //
546 // -- End Job
547 //
549  //edm::LogInfo("ExoticaDQM") <<"[ExoticaDQM]: endjob called!";
550 }
T getParameter(std::string const &) const
virtual double et() const GCC11_FINAL
transverse energy
int i
Definition: DBlmapReader.cc:9
virtual void analyzeLongLivedTrigger(edm::Event const &e)
Definition: ExoticaDQM.cc:473
virtual void beginLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &context)
Definition: ExoticaDQM.cc:177
virtual void analyzeMultiJetsTrigger(edm::Event const &e)
Definition: ExoticaDQM.cc:430
ExoticaDQM(const edm::ParameterSet &ps)
Definition: ExoticaDQM.cc:87
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:722
virtual void endLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &c)
Definition: ExoticaDQM.cc:529
virtual void analyzeEventInterpretation(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: ExoticaDQM.cc:476
std::vector< std::string > vstring
Definition: Schedule.cc:277
vector< string > vstring
Definition: ExoticaDQM.cc:75
void cd(void)
go to top directory (ie. root)
Definition: DQMStore.cc:411
virtual double correction(const LorentzVector &fJet) const =0
get correction using Jet information only
void bookHistos()
Definition: Histogram.h:33
Collection of Calo MET.
virtual float phi() const GCC11_FINAL
momentum azimuthal angle
virtual float pt() const =0
transverse momentum
int iEvent
Definition: GenABIO.cc:243
virtual void beginJob()
Definition: ExoticaDQM.cc:150
static Cluster2ndMoments cluster2ndMoments(const reco::BasicCluster &basicCluster, const EcalRecHitCollection &recHits, double phiCorrectionFactor=0.8, double w0=4.7, bool useLogWeights=true)
void bookHistos(DQMStore *bei)
Definition: ExoticaDQM.cc:186
virtual void beginRun(edm::Run const &run, edm::EventSetup const &eSetup)
Definition: ExoticaDQM.cc:160
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:361
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
virtual void analyze(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: ExoticaDQM.cc:234
virtual ~ExoticaDQM()
Definition: ExoticaDQM.cc:142
static const JetCorrector * getJetCorrector(const std::string &fName, const edm::EventSetup &fSetup)
retrieve corrector from the event setup. troughs exception if something is missing ...
Definition: JetCorrector.cc:51
T const * product() const
Definition: Handle.h:74
virtual void analyzeMultiJets(edm::Event const &e)
Definition: ExoticaDQM.cc:384
static std::pair< DetId, float > getMaximum(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits)
virtual void analyzeLongLived(edm::Event const &e)
Definition: ExoticaDQM.cc:433
bool operator()(const Candidate &c1, const Candidate &c2) const
Definition: ExoticaDQM.cc:78
virtual void endJob()
Definition: ExoticaDQM.cc:548
double pi
virtual void endRun(edm::Run const &run, edm::EventSetup const &eSetup)
Definition: ExoticaDQM.cc:541
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:434
Definition: Run.h:36
Collection of PF MET.