00001 #ifndef CAFE_HISTOGETTER_HPP_
00002 #define CAFE_HISTOGETTER_HPP_
00003
00004 #include <string>
00005 #include "cafe/Variables.hpp"
00006
00007 class TObject;
00008 class TTree;
00009
00010 namespace cafe {
00011
00014 class HistoGetter {
00015 public:
00016 HistoGetter(const cafe::Variables& vars);
00017 virtual ~HistoGetter();
00018 virtual float get(TObject *obj) = 0;
00019
00020 static void parse(const std::string& expression, std::string& branch, std::string& method);
00021 static HistoGetter *create(TTree *tree, const std::string& branch, const std::string& method);
00022
00023 const cafe::Variables& vars() const;
00024
00025 private:
00026 const cafe::Variables _vars;
00027 };
00028
00029 }
00030
00031 #endif // CAFE_HISTOGETTER_HPP_