00001 #ifndef ConversionPostprocessing_H 00002 #define ConversionPostprocessing_H 00003 00004 #include "FWCore/ServiceRegistry/interface/Service.h" 00005 #include "CommonTools/UtilAlgos/interface/TFileService.h" 00006 // 00007 #include "FWCore/Framework/interface/MakerMacros.h" 00008 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00009 #include "FWCore/Utilities/interface/Exception.h" 00010 00011 #include "TFile.h" 00012 #include "TH1.h" 00013 #include "TH2.h" 00014 #include "TTree.h" 00015 #include "TVector3.h" 00016 #include "TProfile.h" 00017 // 00018 00019 00020 #include "FWCore/Framework/interface/EDAnalyzer.h" 00021 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00022 #include "FWCore/Framework/interface/Event.h" 00023 #include "FWCore/Framework/interface/EventSetup.h" 00024 00025 //DQM services 00026 #include "DQMServices/Core/interface/DQMStore.h" 00027 #include "FWCore/ServiceRegistry/interface/Service.h" 00028 #include "DQMServices/Core/interface/MonitorElement.h" 00029 00030 // 00031 00032 #include <vector> 00033 00045 // forward declarations 00046 class TFile; 00047 class TH1F; 00048 class TH2F; 00049 class TProfile; 00050 class TTree; 00051 00052 00053 class ConversionPostprocessing : public edm::EDAnalyzer 00054 { 00055 00056 public: 00057 00058 // 00059 explicit ConversionPostprocessing( const edm::ParameterSet& pset ) ; 00060 virtual ~ConversionPostprocessing(); 00061 00062 00063 virtual void analyze(const edm::Event&, const edm::EventSetup& ) ; 00064 virtual void beginJob() ; 00065 virtual void endJob() ; 00066 virtual void endLuminosityBlock( const edm::LuminosityBlock& , const edm::EventSetup& ) ; 00067 virtual void endRun(const edm::Run& , const edm::EventSetup& ) ; 00068 00069 private: 00070 // 00071 00072 00073 00074 void dividePlots(MonitorElement* dividend, MonitorElement* numerator, MonitorElement* denominator,std::string type); 00075 void dividePlots(MonitorElement* dividend, MonitorElement* numerator, double denominator); 00076 virtual void runPostprocessing(); 00077 00078 DQMStore *dbe_; 00079 int verbosity_; 00080 00081 edm::ParameterSet parameters_; 00082 00083 bool standAlone_; 00084 bool batch_; 00085 std::string outputFileName_; 00086 std::string inputFileName_; 00087 00088 std::stringstream currentFolder_; 00089 00090 00091 double etMin; 00092 double etMax; 00093 int etBin; 00094 double etaMin; 00095 double etaMax; 00096 int etaBin; 00097 int etaBin2; 00098 double phiMin; 00099 double phiMax; 00100 int phiBin; 00101 double rMin; 00102 double rMax; 00103 int rBin; 00104 double zMin; 00105 double zMax; 00106 int zBin; 00107 00108 00109 00110 MonitorElement* convEffEtaTwoTracks_; 00111 MonitorElement* convEffPhiTwoTracks_; 00112 MonitorElement* convEffRTwoTracks_; 00113 MonitorElement* convEffZTwoTracks_; 00114 MonitorElement* convEffEtTwoTracks_; 00115 00116 MonitorElement* convEffEtaTwoTracksAndVtxProbGT0_; 00117 MonitorElement* convEffEtaTwoTracksAndVtxProbGT0005_; 00118 MonitorElement* convEffRTwoTracksAndVtxProbGT0_; 00119 MonitorElement* convEffRTwoTracksAndVtxProbGT0005_; 00120 00121 00122 MonitorElement* convFakeRateEtaTwoTracks_; 00123 MonitorElement* convFakeRatePhiTwoTracks_; 00124 MonitorElement* convFakeRateRTwoTracks_; 00125 MonitorElement* convFakeRateZTwoTracks_; 00126 MonitorElement* convFakeRateEtTwoTracks_; 00127 00128 00129 }; 00130 00131 00132 00133 00134 00135 #endif