Go to the documentation of this file.00001
00002
00003
00004
00005
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <memory>
00023
00024
00025 #include "FWCore/Framework/interface/Frameworkfwd.h"
00026 #include "FWCore/Framework/interface/EDAnalyzer.h"
00027
00028 #include "FWCore/Framework/interface/Event.h"
00029 #include "FWCore/Framework/interface/Run.h"
00030 #include "FWCore/Framework/interface/LuminosityBlock.h"
00031
00032 #include "FWCore/Framework/interface/MakerMacros.h"
00033
00034 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00035
00036 #include "DataFormats/Common/interface/Handle.h"
00037 #include "DataFormats/Histograms/interface/MEtoEDMFormat.h"
00038
00039 #include "FWCore/ServiceRegistry/interface/Service.h"
00040 #include "DQMServices/Core/interface/DQMStore.h"
00041
00042 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00043
00044
00045 #include <TH1F.h>
00046 #include <TH1D.h>
00047
00048
00049
00050
00051
00052 class MEtoMEComparitor : public edm::EDAnalyzer {
00053 public:
00054 explicit MEtoMEComparitor(const edm::ParameterSet&);
00055 ~MEtoMEComparitor();
00056
00057
00058 private:
00059 virtual void beginJob() ;
00060 virtual void analyze(const edm::Event&, const edm::EventSetup&){}
00061 virtual void beginRun(const edm::Run& iRun, const edm::EventSetup& iSetup);
00062 virtual void endRun(const edm::Run& iRun, const edm::EventSetup& iSetup);
00063 virtual void endLuminosityBlock(const edm::LuminosityBlock&, const edm::EventSetup&);
00064 virtual void endJob() ;
00065
00066 template <class W,class T> void compare(const W& where,const std::string & instance);
00067 template <class T> void book(const std::string & directory,const std::string & type, const T * h);
00068 template <class T> void keepBadHistograms(const std::string & directory, const T * h_new, const T * h_ref);
00069
00070 DQMStore * _dbe;
00071 std::string _moduleLabel;
00072
00073 std::string _lumiInstance;
00074 std::string _runInstance;
00075
00076 std::string _process_ref;
00077 std::string _process_new;
00078 bool _autoProcess;
00079
00080 double _KSgoodness;
00081 double _diffgoodness;
00082 unsigned int _dirDepth;
00083 double _overallgoodness;
00084
00085 };