CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/Validation/RecoEgamma/plugins/ConversionPostprocessing.h

Go to the documentation of this file.
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