Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #include "FWCore/Framework/interface/Event.h"
00008 #include "FWCore/Framework/interface/EDAnalyzer.h"
00009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00010 #include "DataFormats/Math/interface/LorentzVector.h"
00011 #include "FWCore/ServiceRegistry/interface/Service.h"
00012 #include "DataFormats/L1Trigger/interface/L1JetParticle.h"
00013 #include "DataFormats/L1Trigger/interface/L1JetParticleFwd.h"
00014 #include "DataFormats/L1Trigger/interface/L1EmParticle.h"
00015 #include "DataFormats/L1Trigger/interface/L1EmParticleFwd.h"
00016 #include "DataFormats/L1Trigger/interface/L1MuonParticle.h"
00017 #include "DataFormats/L1Trigger/interface/L1MuonParticleFwd.h"
00018
00019 #include "DQMServices/Core/interface/DQMStore.h"
00020 #include "DQMServices/Core/interface/MonitorElement.h"
00021
00022 typedef math::XYZTLorentzVectorD LV;
00023 typedef std::vector<LV> LVColl;
00024
00025
00026 class HLTTauDQML1Plotter {
00027
00028 public:
00029 HLTTauDQML1Plotter(const edm::ParameterSet&,int,int,int,double,bool,double);
00030 ~HLTTauDQML1Plotter();
00031 void analyze(const edm::Event&, const edm::EventSetup&, const std::vector<LVColl>&);
00032
00033 private:
00034 void endJob() ;
00035
00036
00037 std::pair<bool,LV> match(const LV&,const LVColl&,double);
00038
00039
00040
00041 std::string triggerTag_;
00042
00043
00044 edm::InputTag l1ExtraTaus_;
00045 edm::InputTag l1ExtraJets_;
00046 edm::InputTag l1ExtraElectrons_;
00047 edm::InputTag l1ExtraMuons_;
00048
00049 bool doRefAnalysis_;
00050 double matchDeltaR_;
00051
00052 double maxEt_;
00053 int binsEt_;
00054 int binsEta_;
00055 int binsPhi_;
00056
00057
00058
00059
00060 MonitorElement* l1tauEt_;
00061 MonitorElement* l1tauEta_;
00062 MonitorElement* l1tauPhi_;
00063
00064
00065 MonitorElement* l1jetEt_;
00066 MonitorElement* l1jetEta_;
00067 MonitorElement* l1jetPhi_;
00068
00069 MonitorElement* l1electronEt_;
00070 MonitorElement* l1electronEta_;
00071 MonitorElement* l1electronPhi_;
00072
00073 MonitorElement* l1muonEt_;
00074 MonitorElement* l1muonEta_;
00075 MonitorElement* l1muonPhi_;
00076
00077
00078 MonitorElement* inputEvents_;
00079
00080 MonitorElement* l1tauEtRes_;
00081
00082 MonitorElement* l1tauEtEffNum_;
00083 MonitorElement* l1tauEtEffDenom_;
00084
00085 MonitorElement* l1tauEtaEffNum_;
00086 MonitorElement* l1tauEtaEffDenom_;
00087
00088 MonitorElement* l1tauPhiEffNum_;
00089 MonitorElement* l1tauPhiEffDenom_;
00090
00091 MonitorElement* l1jetEtEffNum_;
00092 MonitorElement* l1jetEtEffDenom_;
00093
00094 MonitorElement* l1jetEtaEffNum_;
00095 MonitorElement* l1jetEtaEffDenom_;
00096
00097 MonitorElement* l1jetPhiEffNum_;
00098 MonitorElement* l1jetPhiEffDenom_;
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118 MonitorElement* l1doubleTauPath_;
00119 MonitorElement* l1electronTauPath_;
00120 MonitorElement* l1muonTauPath_;
00121
00122 MonitorElement* firstTauEt_;
00123 MonitorElement* secondTauEt_;
00124
00125
00126 struct ComparePt
00127 {
00128 bool operator()(LV l1,LV l2)
00129 {
00130 return l1.pt() > l2.pt() ;
00131
00132 }
00133 };
00134
00135 ComparePt ptSort;
00136
00137
00138
00139 };
00140