CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/DQM/HLTEvF/interface/HLTTauDQML1Plotter.h

Go to the documentation of this file.
00001 /* HLTTau Path  Analyzer
00002 Michail Bachtis
00003 University of Wisconsin - Madison
00004 bachtis@hep.wisc.edu
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 //Include DQM core
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   //helper functions
00037   std::pair<bool,LV> match(const LV&,const LVColl&,double);
00038 
00039 
00040   //Just a tag for better file organization
00041   std::string triggerTag_;
00042 
00043   //The  filters
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   //MonitorElements general
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   //Monitor Elements for matching
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 /*   MonitorElement* l1electronEtEffNum_; */
00101 /*   MonitorElement* l1electronEtEffDenom_; */
00102 
00103 /*   MonitorElement* l1electronEtaEffNum_; */
00104 /*   MonitorElement* l1electronEtaEffDenom_; */
00105 
00106 /*   MonitorElement* l1electronPhiEffNum_; */
00107 /*   MonitorElement* l1electronPhiEffDenom_; */
00108 
00109 /*   MonitorElement* l1muonEtEffNum_; */
00110 /*   MonitorElement* l1muonEtEffDenom_; */
00111 
00112 /*   MonitorElement* l1muonEtaEffNum_; */
00113 /*   MonitorElement* l1muonEtaEffDenom_; */
00114 
00115 /*   MonitorElement* l1muonPhiEffNum_; */
00116 /*   MonitorElement* l1muonPhiEffDenom_; */
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