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