CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ProfilingTools.h
Go to the documentation of this file.
1 #ifndef HiggsAnalysis_CombinedLimit_ProfilingTools_
2 #define HiggsAnalysis_CombinedLimit_ProfilingTools_
3 #include <string>
4 
5 bool setupIgProfDumpHook() ;
6 
7 //#include <boost/unordered_map.hpp>
8 class PerfCounter {
9  public:
10  PerfCounter() : value_(0) {}
11  static PerfCounter & get(const char *name) ;
12 
13  void add(double increment=1.0) { value_ += increment; }
14  double get() const { return value_; }
15 
16  static void add(const char *name, double increment=1.0) { PerfCounter::get(name).add(increment); }
17  static void enable() ;
18  static void printAll() ;
19  private:
20  double value_;
21 };
22 
23 namespace runtimedef {
24  // get the flag. name MUST BE a compile-time string
25  int get(const char *name);
26 
27  // get the flag, with a run-time name
28  int get(const std::string & name);
29 
31  void set(const std::string & name, int value);
32 }
33 #endif
static void add(const char *name, double increment=1.0)
void add(double increment=1.0)
static void printAll()
bool setupIgProfDumpHook()
static void enable()
double get() const
void set(const std::string &name, int value)
set the flag, with a run-time name