Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 10:57:25

0001 #ifndef DQM_TrackingMonitorSource_TrackTypeMonitor_h
0002 #define DQM_TrackingMonitorSource_TrackTypeMonitor_h
0003 
0004 // system includes
0005 #include <string>
0006 #include <vector>
0007 #include <map>
0008 #include <set>
0009 
0010 // user includes
0011 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0012 #include "DQMServices/Core/interface/DQMStore.h"
0013 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0014 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
0015 #include "DataFormats/MuonReco/interface/MuonFwd.h"
0016 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0017 #include "FWCore/Framework/interface/ESHandle.h"
0018 #include "FWCore/Framework/interface/Event.h"
0019 #include "FWCore/Framework/interface/Frameworkfwd.h"
0020 #include "FWCore/Framework/interface/MakerMacros.h"
0021 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0022 #include "FWCore/ServiceRegistry/interface/Service.h"
0023 #include "FWCore/Utilities/interface/InputTag.h"
0024 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
0025 
0026 class TrackTypeMonitor : public DQMEDAnalyzer {
0027 public:
0028   TrackTypeMonitor(const edm::ParameterSet&);
0029 
0030 protected:
0031   void analyze(edm::Event const& iEvent, edm::EventSetup const& iSetup) override;
0032   void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
0033 
0034 private:
0035   void fillHistograms(const reco::Track& track, int indx);
0036 
0037   edm::ParameterSet parameters_;
0038 
0039   std::string moduleName_;
0040   std::string folderName_;
0041   bool verbose_;
0042 
0043   const edm::InputTag muonTag_;
0044   const edm::InputTag electronTag_;
0045   const edm::InputTag trackTag_;
0046   const edm::InputTag bsTag_;
0047   const edm::InputTag vertexTag_;
0048 
0049   const edm::EDGetTokenT<reco::GsfElectronCollection> electronToken_;
0050   const edm::EDGetTokenT<reco::MuonCollection> muonToken_;
0051   const edm::EDGetTokenT<reco::TrackCollection> trackToken_;
0052   const edm::EDGetTokenT<reco::BeamSpot> bsToken_;
0053   const edm::EDGetTokenT<reco::VertexCollection> vertexToken_;
0054 
0055   const std::string trackQuality_;
0056 
0057   std::vector<MonitorElement*> trackEtaHList_;
0058   std::vector<MonitorElement*> trackPhiHList_;
0059   std::vector<MonitorElement*> trackPHList_;
0060   std::vector<MonitorElement*> trackPtHList_;
0061   std::vector<MonitorElement*> trackPterrHList_;
0062   std::vector<MonitorElement*> trackqOverpHList_;
0063   std::vector<MonitorElement*> trackChi2bynDOFHList_;
0064   std::vector<MonitorElement*> nTracksHList_;
0065   std::vector<MonitorElement*> trackdzHList_;
0066 
0067   MonitorElement* hcounterH_;
0068   MonitorElement* dphiH_;
0069   MonitorElement* drH_;
0070 
0071   unsigned long long m_cacheID_;
0072 };
0073 #endif