Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:09:38

0001 #ifndef MuonKinVsEtaAnalyzer_H
0002 #define MuonKinVsEtaAnalyzer_H
0003 /** \class MuRecoAnalyzer
0004  *
0005  *  DQM monitoring source for muon reco track
0006  *
0007  *  \author S. Goy Lopez, CIEMAT
0008  *  \author S. Folgueras, U. Oviedo
0009  */
0010 
0011 #include <memory>
0012 #include <fstream>
0013 #include "FWCore/Framework/interface/Frameworkfwd.h"
0014 #include "FWCore/Framework/interface/Event.h"
0015 #include "FWCore/Framework/interface/MakerMacros.h"
0016 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0017 #include "FWCore/ServiceRegistry/interface/Service.h"
0018 #include "DQMServices/Core/interface/DQMStore.h"
0019 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0020 
0021 #include "DataFormats/Common/interface/Handle.h"
0022 #include "DataFormats/MuonReco/interface/Muon.h"
0023 #include "DataFormats/MuonReco/interface/MuonFwd.h"
0024 #include "DataFormats/MuonReco/interface/MuonEnergy.h"
0025 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0026 #include "DataFormats/VertexReco/interface/Vertex.h"
0027 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0028 #include "DataFormats/TrackReco/interface/Track.h"
0029 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0030 #include "DataFormats/MuonReco/interface/MuonSelectors.h"
0031 
0032 class MuonKinVsEtaAnalyzer : public DQMEDAnalyzer {
0033 public:
0034   /// Constructor
0035   MuonKinVsEtaAnalyzer(const edm::ParameterSet &pSet);
0036 
0037   /// Destructor
0038   ~MuonKinVsEtaAnalyzer() override;
0039 
0040   void analyze(const edm::Event &, const edm::EventSetup &) override;
0041   void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
0042 
0043 private:
0044   // ----------member data ---------------------------
0045   edm::ParameterSet parameters;
0046 
0047   // Switch for verbosity
0048   std::string metname;
0049 
0050   //Vertex requirements
0051   edm::EDGetTokenT<edm::View<reco::Muon> > theMuonCollectionLabel_;
0052   edm::EDGetTokenT<reco::VertexCollection> theVertexLabel_;
0053   edm::EDGetTokenT<reco::BeamSpot> theBeamSpotLabel_;
0054 
0055   //histo binning parameters
0056   int pBin;
0057   double pMin;
0058   double pMax;
0059 
0060   int ptBin;
0061   double ptMin;
0062   double ptMax;
0063 
0064   int etaBin;
0065   double etaMin;
0066   double etaMax;
0067 
0068   int phiBin;
0069   double phiMin;
0070   double phiMax;
0071 
0072   int chiBin;
0073   double chiMin;
0074   double chiMax;
0075 
0076   double chiprobMin;
0077   double chiprobMax;
0078 
0079   //Defining relevant eta regions
0080   double EtaCutMin;
0081   double EtaCutMax;
0082   double etaBMin;
0083   double etaBMax;
0084   double etaECMin;
0085   double etaECMax;
0086   double etaOvlpMin;
0087   double etaOvlpMax;
0088 
0089   //the histos
0090   // global muon
0091   std::vector<MonitorElement *> etaGlbTrack;
0092   std::vector<MonitorElement *> phiGlbTrack;
0093   std::vector<MonitorElement *> pGlbTrack;
0094   std::vector<MonitorElement *> ptGlbTrack;
0095   std::vector<MonitorElement *> chi2GlbTrack;
0096   std::vector<MonitorElement *> chi2probGlbTrack;
0097 
0098   // tracker muon
0099   std::vector<MonitorElement *> etaTrack;
0100   std::vector<MonitorElement *> phiTrack;
0101   std::vector<MonitorElement *> pTrack;
0102   std::vector<MonitorElement *> ptTrack;
0103   std::vector<MonitorElement *> chi2Track;
0104   std::vector<MonitorElement *> chi2probTrack;
0105 
0106   // sta muon
0107   std::vector<MonitorElement *> etaStaTrack;
0108   std::vector<MonitorElement *> phiStaTrack;
0109   std::vector<MonitorElement *> pStaTrack;
0110   std::vector<MonitorElement *> ptStaTrack;
0111   std::vector<MonitorElement *> chi2StaTrack;
0112   std::vector<MonitorElement *> chi2probStaTrack;
0113 
0114   // GMPT muon
0115   std::vector<MonitorElement *> etaTightTrack;
0116   std::vector<MonitorElement *> phiTightTrack;
0117   std::vector<MonitorElement *> pTightTrack;
0118   std::vector<MonitorElement *> ptTightTrack;
0119   std::vector<MonitorElement *> chi2TightTrack;
0120   std::vector<MonitorElement *> chi2probTightTrack;
0121 
0122   // Loose muon;
0123   std::vector<MonitorElement *> etaLooseTrack;
0124   std::vector<MonitorElement *> phiLooseTrack;
0125   std::vector<MonitorElement *> pLooseTrack;
0126   std::vector<MonitorElement *> ptLooseTrack;
0127   std::vector<MonitorElement *> chi2LooseTrack;
0128   std::vector<MonitorElement *> chi2probLooseTrack;
0129 
0130   // Medium muon;
0131   std::vector<MonitorElement *> etaMediumTrack;
0132   std::vector<MonitorElement *> phiMediumTrack;
0133   std::vector<MonitorElement *> pMediumTrack;
0134   std::vector<MonitorElement *> ptMediumTrack;
0135   std::vector<MonitorElement *> chi2MediumTrack;
0136   std::vector<MonitorElement *> chi2probMediumTrack;
0137 
0138   // Soft muon;
0139   std::vector<MonitorElement *> etaSoftTrack;
0140   std::vector<MonitorElement *> phiSoftTrack;
0141   std::vector<MonitorElement *> pSoftTrack;
0142   std::vector<MonitorElement *> ptSoftTrack;
0143   std::vector<MonitorElement *> chi2SoftTrack;
0144   std::vector<MonitorElement *> chi2probSoftTrack;
0145 
0146   // HighPt muon;
0147   std::vector<MonitorElement *> etaHighPtTrack;
0148   std::vector<MonitorElement *> phiHighPtTrack;
0149   std::vector<MonitorElement *> pHighPtTrack;
0150   std::vector<MonitorElement *> ptHighPtTrack;
0151   std::vector<MonitorElement *> chi2HighPtTrack;
0152   std::vector<MonitorElement *> chi2probHighPtTrack;
0153 
0154   std::string theFolder;
0155 };
0156 #endif