MuonKinVsEtaAnalyzer

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 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
#ifndef MuonKinVsEtaAnalyzer_H
#define MuonKinVsEtaAnalyzer_H
/** \class MuRecoAnalyzer
 *
 *  DQM monitoring source for muon reco track
 *
 *  \author S. Goy Lopez, CIEMAT
 *  \author S. Folgueras, U. Oviedo
 */

#include <memory>
#include <fstream>
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "DQMServices/Core/interface/DQMStore.h"
#include "DQMServices/Core/interface/DQMEDAnalyzer.h"

#include "DataFormats/Common/interface/Handle.h"
#include "DataFormats/MuonReco/interface/Muon.h"
#include "DataFormats/MuonReco/interface/MuonFwd.h"
#include "DataFormats/MuonReco/interface/MuonEnergy.h"
#include "DataFormats/BeamSpot/interface/BeamSpot.h"
#include "DataFormats/VertexReco/interface/Vertex.h"
#include "DataFormats/VertexReco/interface/VertexFwd.h"
#include "DataFormats/TrackReco/interface/Track.h"
#include "DataFormats/TrackReco/interface/TrackFwd.h"
#include "DataFormats/MuonReco/interface/MuonSelectors.h"

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

  /// Destructor
  ~MuonKinVsEtaAnalyzer() override;

  void analyze(const edm::Event &, const edm::EventSetup &) override;
  void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;

private:
  // ----------member data ---------------------------
  edm::ParameterSet parameters;

  // Switch for verbosity
  std::string metname;

  //Vertex requirements
  edm::EDGetTokenT<edm::View<reco::Muon> > theMuonCollectionLabel_;
  edm::EDGetTokenT<reco::VertexCollection> theVertexLabel_;
  edm::EDGetTokenT<reco::BeamSpot> theBeamSpotLabel_;

  //histo binning parameters
  int pBin;
  double pMin;
  double pMax;

  int ptBin;
  double ptMin;
  double ptMax;

  int etaBin;
  double etaMin;
  double etaMax;

  int phiBin;
  double phiMin;
  double phiMax;

  int chiBin;
  double chiMin;
  double chiMax;

  double chiprobMin;
  double chiprobMax;

  //Defining relevant eta regions
  double EtaCutMin;
  double EtaCutMax;
  double etaBMin;
  double etaBMax;
  double etaECMin;
  double etaECMax;
  double etaOvlpMin;
  double etaOvlpMax;

  //the histos
  // global muon
  std::vector<MonitorElement *> etaGlbTrack;
  std::vector<MonitorElement *> phiGlbTrack;
  std::vector<MonitorElement *> pGlbTrack;
  std::vector<MonitorElement *> ptGlbTrack;
  std::vector<MonitorElement *> chi2GlbTrack;
  std::vector<MonitorElement *> chi2probGlbTrack;

  // tracker muon
  std::vector<MonitorElement *> etaTrack;
  std::vector<MonitorElement *> phiTrack;
  std::vector<MonitorElement *> pTrack;
  std::vector<MonitorElement *> ptTrack;
  std::vector<MonitorElement *> chi2Track;
  std::vector<MonitorElement *> chi2probTrack;

  // sta muon
  std::vector<MonitorElement *> etaStaTrack;
  std::vector<MonitorElement *> phiStaTrack;
  std::vector<MonitorElement *> pStaTrack;
  std::vector<MonitorElement *> ptStaTrack;
  std::vector<MonitorElement *> chi2StaTrack;
  std::vector<MonitorElement *> chi2probStaTrack;

  // GMPT muon
  std::vector<MonitorElement *> etaTightTrack;
  std::vector<MonitorElement *> phiTightTrack;
  std::vector<MonitorElement *> pTightTrack;
  std::vector<MonitorElement *> ptTightTrack;
  std::vector<MonitorElement *> chi2TightTrack;
  std::vector<MonitorElement *> chi2probTightTrack;

  // Loose muon;
  std::vector<MonitorElement *> etaLooseTrack;
  std::vector<MonitorElement *> phiLooseTrack;
  std::vector<MonitorElement *> pLooseTrack;
  std::vector<MonitorElement *> ptLooseTrack;
  std::vector<MonitorElement *> chi2LooseTrack;
  std::vector<MonitorElement *> chi2probLooseTrack;

  // Medium muon;
  std::vector<MonitorElement *> etaMediumTrack;
  std::vector<MonitorElement *> phiMediumTrack;
  std::vector<MonitorElement *> pMediumTrack;
  std::vector<MonitorElement *> ptMediumTrack;
  std::vector<MonitorElement *> chi2MediumTrack;
  std::vector<MonitorElement *> chi2probMediumTrack;

  // Soft muon;
  std::vector<MonitorElement *> etaSoftTrack;
  std::vector<MonitorElement *> phiSoftTrack;
  std::vector<MonitorElement *> pSoftTrack;
  std::vector<MonitorElement *> ptSoftTrack;
  std::vector<MonitorElement *> chi2SoftTrack;
  std::vector<MonitorElement *> chi2probSoftTrack;

  // HighPt muon;
  std::vector<MonitorElement *> etaHighPtTrack;
  std::vector<MonitorElement *> phiHighPtTrack;
  std::vector<MonitorElement *> pHighPtTrack;
  std::vector<MonitorElement *> ptHighPtTrack;
  std::vector<MonitorElement *> chi2HighPtTrack;
  std::vector<MonitorElement *> chi2probHighPtTrack;

  std::string theFolder;
};
#endif