00001 #ifndef ElectronConversionRejectionValidator_H 00002 #define ElectronConversionRejectionValidator_H 00003 #include "FWCore/Framework/interface/EDAnalyzer.h" 00004 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00005 #include "FWCore/Framework/interface/Event.h" 00006 #include "FWCore/Framework/interface/EventSetup.h" 00007 #include "FWCore/Framework/interface/ESHandle.h" 00008 #include "DataFormats/Common/interface/RefToBaseVector.h" 00009 #include "DataFormats/Common/interface/RefVector.h" 00010 #include "DataFormats/VertexReco/interface/VertexFwd.h" 00011 #include "DataFormats/VertexReco/interface/Vertex.h" 00012 // 00013 //DQM services 00014 #include "DQMServices/Core/interface/DQMStore.h" 00015 #include "FWCore/ServiceRegistry/interface/Service.h" 00016 #include "DQMServices/Core/interface/MonitorElement.h" 00017 00018 00019 // 00020 #include <map> 00021 #include <vector> 00022 00023 // forward declarations 00024 class TFile; 00025 class TH1F; 00026 class TH2F; 00027 class TProfile; 00028 class TTree; 00029 class SimVertex; 00030 class SimTrack; 00042 class ElectronConversionRejectionValidator : public edm::EDAnalyzer 00043 { 00044 00045 public: 00046 00047 // 00048 explicit ElectronConversionRejectionValidator( const edm::ParameterSet& ) ; 00049 virtual ~ElectronConversionRejectionValidator(); 00050 00051 00052 virtual void analyze( const edm::Event&, const edm::EventSetup& ) ; 00053 virtual void beginJob(); 00054 virtual void beginRun( edm::Run const & r, edm::EventSetup const & theEventSetup) ; 00055 virtual void endRun (edm::Run& r, edm::EventSetup const & es); 00056 virtual void endJob() ; 00057 00058 private: 00059 // 00060 00061 00062 00063 std::string fName_; 00064 DQMStore *dbe_; 00065 00066 int verbosity_; 00067 int nEvt_; 00068 int nEntry_; 00069 00070 00071 edm::ParameterSet parameters_; 00072 std::string conversionCollectionProducer_; 00073 std::string conversionCollection_; 00074 00075 std::string gsfElectronCollectionProducer_; 00076 std::string gsfElectronCollection_; 00077 00078 std::string dqmpath_; 00079 00080 edm::InputTag label_tp_; 00081 00082 00083 00084 bool isRunCentrally_; 00085 00086 float elePtMin_; 00087 int eleExpectedHitsInnerMax_; 00088 float eleD0Max_; 00089 00090 // 00091 MonitorElement* h_elePtAll_; 00092 MonitorElement* h_eleEtaAll_; 00093 MonitorElement* h_elePhiAll_; 00094 00095 MonitorElement* h_elePtPass_; 00096 MonitorElement* h_eleEtaPass_; 00097 MonitorElement* h_elePhiPass_; 00098 00099 MonitorElement* h_elePtFail_; 00100 MonitorElement* h_eleEtaFail_; 00101 MonitorElement* h_elePhiFail_; 00102 00103 MonitorElement* h_elePtEff_; 00104 MonitorElement* h_eleEtaEff_; 00105 MonitorElement* h_elePhiEff_; 00106 00107 MonitorElement* h_convPt_; 00108 MonitorElement* h_convEta_; 00109 MonitorElement* h_convPhi_; 00110 MonitorElement* h_convRho_; 00111 MonitorElement* h_convZ_; 00112 00113 MonitorElement* h_convProb_; 00114 00115 MonitorElement* h_convLeadTrackpt_; 00116 MonitorElement* h_convTrailTrackpt_; 00117 MonitorElement* h_convLog10TrailTrackpt_; 00118 MonitorElement* h_convLeadTrackAlgo_; 00119 MonitorElement* h_convTrailTrackAlgo_; 00120 00121 }; 00122 00123 00124 00125 00126 #endif