Go to the documentation of this file.00001 #ifndef RecoParticleFlow_Benchmark_Benchmark_h
00002 #define RecoParticleFlow_Benchmark_Benchmark_h
00003
00004 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidateFwd.h"
00005
00006
00007 #include <string>
00008
00009 class TH1;
00010 class TH1F;
00011 class TH2;
00012
00013 class TH2F;
00014 class TDirectory;
00015
00016 class DQMStore;
00017
00018
00020 class Benchmark{
00021
00022 public:
00023
00024 class PhaseSpace {
00025 public:
00026 int n;
00027 float m;
00028 float M;
00029 PhaseSpace() : n(1), m(0), M(1) {}
00030 PhaseSpace( int n, float m, float M):n(n), m(m), M(M) {}
00031 };
00032
00033 enum Mode {
00034 DEFAULT,
00035 DQMOFFLINE,
00036 VALIDATION
00037 };
00038
00039 static DQMStore *DQM_;
00040
00041 Benchmark(Mode mode = DEFAULT) :
00042 dir_(0), mode_(mode),
00043 ptMin_(0), ptMax_(10e10),
00044 etaMin_(-10), etaMax_(10),
00045 phiMin_(-10), phiMax_(10) {}
00046
00047 virtual ~Benchmark();
00048
00049 void setParameters( Mode mode) { mode_ = mode;}
00050
00051 void setRange( float ptMin, float ptMax,
00052 float etaMin, float etaMax,
00053 float phiMin, float phiMax ) {
00054 ptMin_ = ptMin; ptMax_ = ptMax; etaMin_ = etaMin; etaMax_ = etaMax;
00055 phiMin_ = phiMin; phiMax_ = phiMax;
00056 }
00057
00058 bool isInRange(float pt, float eta, float phi) const {
00059 return pt>ptMin_ && pt<ptMax_ && eta>etaMin_ && eta<etaMax_ && phi>phiMin_ && phi<phiMax_ ? true : false;
00060 }
00061
00062 virtual void setDirectory(TDirectory* dir);
00063
00065 void write();
00066
00067 protected:
00068
00070 TH1F* book1D(const char* histname, const char* title,
00071 int nbins, float xmin, float xmax);
00072
00074 TH2F* book2D(const char* histname, const char* title,
00075 int nbinsx, float xmin, float xmax,
00076 int nbinsy, float ymin, float ymax );
00077
00079 TH2F* book2D(const char* histname, const char* title,
00080 int nbinsx, float* xbins,
00081 int nbinsy, float ymin, float ymax );
00082
00083
00084 TDirectory* dir_;
00085
00086 Mode mode_;
00087
00088 float ptMin_;
00089 float ptMax_;
00090 float etaMin_;
00091 float etaMax_;
00092 float phiMin_;
00093 float phiMax_;
00094
00095
00096 };
00097
00098 #endif