00001 #ifndef PhysicsTools_PatExamples_PatTauAnalyzer_h 00002 #define PhysicsTools_PatExamples_PatTauAnalyzer_h 00003 00004 #include "FWCore/Framework/interface/Event.h" 00005 #include "FWCore/Framework/interface/EventSetup.h" 00006 #include "FWCore/Framework/interface/EDAnalyzer.h" 00007 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00008 #include "FWCore/Utilities/interface/InputTag.h" 00009 00010 #include <TH1.h> 00011 00012 #include <string> 00013 00014 class PatTauAnalyzer : public edm::EDAnalyzer 00015 { 00016 public: 00017 explicit PatTauAnalyzer(const edm::ParameterSet&); 00018 ~PatTauAnalyzer(); 00019 00020 //--- methods inherited from EDAnalyzer base-class 00021 void beginJob(); 00022 void analyze(const edm::Event&, const edm::EventSetup&); 00023 void endJob(); 00024 00025 private: 00026 //--- configuration parameters 00027 edm::InputTag src_; 00028 00029 bool requireGenTauMatch_; 00030 00031 std::string discrByLeadTrack_; 00032 std::string discrByIso_; 00033 std::string discrByTaNC_; 00034 00035 //--- generator level histograms 00036 TH1* hGenTauEnergy_; 00037 TH1* hGenTauPt_; 00038 TH1* hGenTauEta_; 00039 TH1* hGenTauPhi_; 00040 00041 //--- reconstruction level histograms 00042 TH1* hTauJetEnergy_; 00043 TH1* hTauJetPt_; 00044 TH1* hTauJetEta_; 00045 TH1* hTauJetPhi_; 00046 00047 TH1* hNumTauJets_; 00048 00049 TH1* hTauLeadTrackPt_; 00050 00051 TH1* hTauNumSigConeTracks_; 00052 TH1* hTauNumIsoConeTracks_; 00053 00054 TH1* hTauDiscrByIso_; 00055 TH1* hTauDiscrByTaNC_; 00056 TH1* hTauDiscrAgainstElectrons_; 00057 TH1* hTauDiscrAgainstMuons_; 00058 00059 TH1* hTauJetEnergyIsoPassed_; 00060 TH1* hTauJetPtIsoPassed_; 00061 TH1* hTauJetEtaIsoPassed_; 00062 TH1* hTauJetPhiIsoPassed_; 00063 00064 TH1* hTauJetEnergyTaNCpassed_; 00065 TH1* hTauJetPtTaNCpassed_; 00066 TH1* hTauJetEtaTaNCpassed_; 00067 TH1* hTauJetPhiTaNCpassed_; 00068 }; 00069 00070 #endif 00071 00072