EwkDQM

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
#ifndef EwkDQM_H
#define EwkDQM_H

/** \class EwkDQM
 *
 *  DQM offline for SMP V+Jets
 *
 *  \author Valentina Gori, University of Firenze
 */

#include "FWCore/Framework/interface/Frameworkfwd.h"

// Trigger stuff
#include "DataFormats/Common/interface/TriggerResults.h"
#include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"

#include "DataFormats/EgammaCandidates/interface/Electron.h"
#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
#include "DataFormats/MuonReco/interface/MuonFwd.h"
#include "DataFormats/VertexReco/interface/VertexFwd.h"
#include "DQMServices/Core/interface/DQMEDAnalyzer.h"
#include "DQMServices/Core/interface/DQMStore.h"

namespace reco {
  class Jet;
  class MET;
}  // namespace reco

class EwkDQM : public DQMEDAnalyzer {
public:
  /// Constructor
  EwkDQM(const edm::ParameterSet&);

  /// Destructor
  ~EwkDQM() override;

  ///
  //Book histograms
  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
  void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;

  /// Get the analysis
  void analyze(const edm::Event&, const edm::EventSetup&) override;

  double calcDeltaPhi(double phi1, double phi2);

private:
  // ----------member data ---------------------------

  // Switch for verbosity
  std::string logTraceName;

  HLTConfigProvider hltConfigProvider_;
  bool isValidHltConfig_;

  // Variables from config file
  std::vector<std::string> theElecTriggerPathToPass_;
  std::vector<std::string> theMuonTriggerPathToPass_;
  edm::InputTag thePFJetCollectionLabel_;
  edm::InputTag theCaloMETCollectionLabel_;
  edm::InputTag theTriggerResultsCollection_;
  edm::EDGetTokenT<edm::TriggerResults> theTriggerResultsToken_;
  edm::EDGetTokenT<reco::MuonCollection> theMuonCollectionLabel_;
  edm::EDGetTokenT<reco::GsfElectronCollection> theElectronCollectionLabel_;
  edm::EDGetTokenT<edm::View<reco::Jet> > thePFJetCollectionToken_;
  edm::EDGetTokenT<edm::View<reco::MET> > theCaloMETCollectionToken_;
  edm::EDGetTokenT<reco::VertexCollection> theVertexToken_;

  double eJetMin_;

  // Histograms
  MonitorElement* h_vertex_number;
  MonitorElement* h_vertex_chi2;
  MonitorElement* h_vertex_numTrks;
  MonitorElement* h_vertex_sumTrks;
  MonitorElement* h_vertex_d0;

  MonitorElement* h_jet_count;
  MonitorElement* h_jet_et;
  MonitorElement* h_jet_pt;
  MonitorElement* h_jet_eta;
  MonitorElement* h_jet_phi;

  MonitorElement* h_jet2_et;
  // MonitorElement* h_jet2_pt;
  MonitorElement* h_jet2_eta;
  MonitorElement* h_jet2_phi;

  MonitorElement* h_e1_et;
  MonitorElement* h_e2_et;
  MonitorElement* h_e1_eta;
  MonitorElement* h_e2_eta;
  MonitorElement* h_e1_phi;
  MonitorElement* h_e2_phi;

  MonitorElement* h_m1_pt;
  MonitorElement* h_m2_pt;
  MonitorElement* h_m1_eta;
  MonitorElement* h_m2_eta;
  MonitorElement* h_m1_phi;
  MonitorElement* h_m2_phi;

  // MonitorElement* h_t1_et;
  // MonitorElement* h_t1_eta;
  // MonitorElement* h_t1_phi;

  MonitorElement* h_met;
  MonitorElement* h_met_phi;

  MonitorElement* h_e_invWMass;
  MonitorElement* h_m_invWMass;
  MonitorElement* h_mumu_invMass;
  MonitorElement* h_ee_invMass;
};
#endif

// Local Variables:
// show-trailing-whitespace: t
// truncate-lines: t
// End: