00001 #ifndef Validation_Tools_PostProcessor_H
00002 #define Validation_Tools_PostProcessor_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "FWCore/Framework/interface/Frameworkfwd.h"
00016 #include "FWCore/Framework/interface/EDAnalyzer.h"
00017
00018 #include <string>
00019 #include <vector>
00020 #include <boost/tokenizer.hpp>
00021
00022 class DQMStore;
00023 class MonitorElement;
00024
00025 typedef boost::escaped_list_separator<char> elsc;
00026
00027 class PostProcessor : public edm::EDAnalyzer
00028 {
00029 public:
00030 PostProcessor(const edm::ParameterSet& pset);
00031 ~PostProcessor() {};
00032
00033 void analyze(const edm::Event& event, const edm::EventSetup& eventSetup) {};
00034 void endJob();
00035
00036 void computeEfficiency(const std::string& startDir,
00037 const std::string& efficMEName, const std::string& efficMETitle,
00038 const std::string& recoMEName, const std::string& simMEName,const std::string& type="eff");
00039 void computeResolution(const std::string &,
00040 const std::string& fitMEPrefix, const std::string& fitMETitlePrefix,
00041 const std::string& srcMEName);
00042
00043 void limitedFit(MonitorElement * srcME, MonitorElement * meanME, MonitorElement * sigmaME);
00044
00045 private:
00046 unsigned int verbose_;
00047 bool isWildcardUsed_;
00048
00049 DQMStore* theDQM;
00050 std::vector<std::string> subDirs_;
00051 std::string outputFileName_;
00052 std::vector<std::string> effCmds_, resCmds_;
00053 bool resLimitedFit_;
00054 };
00055
00056 #endif
00057
00058