Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef Validation_RecoMuon_GlobalMuonMatchAnalyzer_H
0002 #define Validation_RecoMuon_GlobalMuonMatchAnalyzer_H
0003 
0004 /** \class GlobalMuonMatchAnalyzer 
0005  *
0006  *
0007  *
0008  *
0009  *  \author Adam Everett        Purdue University
0010  */
0011 
0012 // system include files
0013 #include <memory>
0014 #include <string>
0015 
0016 // user include files
0017 #include "FWCore/Framework/interface/Frameworkfwd.h"
0018 
0019 #
0020 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0021 #include "SimDataFormats/Associations/interface/TrackToTrackingParticleAssociator.h"
0022 
0023 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
0024 #include "DQMServices/Core/interface/DQMOneEDAnalyzer.h"
0025 #include "DQMServices/Core/interface/DQMStore.h"
0026 
0027 namespace reco {
0028   class Track;
0029 }
0030 
0031 class InputTag;
0032 class TrackAssociatorBase;
0033 
0034 //
0035 // class decleration
0036 //
0037 
0038 class GlobalMuonMatchAnalyzer : public DQMOneEDAnalyzer<> {
0039 public:
0040   explicit GlobalMuonMatchAnalyzer(const edm::ParameterSet &);
0041   ~GlobalMuonMatchAnalyzer() override;
0042 
0043 private:
0044   //      virtual void beginRun(const edm::Run&, const edm::EventSetup&) ;
0045   void analyze(const edm::Event &, const edm::EventSetup &) override;
0046   void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
0047   void dqmEndRun(const edm::Run &, const edm::EventSetup &) override;
0048 
0049   void computeEfficiencyEta(MonitorElement *, MonitorElement *recoTH2, MonitorElement *simTH2);
0050   void computeEfficiencyPt(MonitorElement *, MonitorElement *recoTH2, MonitorElement *simTH2);
0051   // ----------member data ---------------------------
0052   std::string out;
0053   DQMStore *dbe_;
0054   edm::ParameterSet iConfig;
0055   std::string subsystemname_;
0056   MonitorElement *h_shouldMatch, *h_goodMatchSim, *h_tkOnlySim, *h_staOnlySim;
0057   MonitorElement *h_totReco, *h_goodMatch, *h_fakeMatch;
0058   MonitorElement *h_effic, *h_efficPt;
0059   MonitorElement *h_fake, *h_fakePt;
0060 
0061   const TrackAssociatorBase *tkAssociator_, *muAssociator_;
0062   edm::InputTag tkAssociatorName_, muAssociatorName_;
0063   edm::InputTag tkName_, tpName_, glbName_, staName_;
0064   edm::EDGetTokenT<edm::View<reco::Track> > tkToken_, tpToken_, glbToken_, staToken_;
0065   edm::EDGetTokenT<reco::TrackToTrackingParticleAssociator> tkAssociatorToken_, muAssociatorToken_;
0066 };
0067 
0068 #endif