Go to the documentation of this file.00001
00002 #ifndef Fireworks_Core_FWExpressionEvaluator_h
00003 #define Fireworks_Core_FWExpressionEvaluator_h
00004
00005
00006
00007
00016
00017
00018
00019
00020
00021
00022
00023 #include <string>
00024 #include <Reflex/Type.h>
00025
00026
00027 #include "CommonTools/Utils/src/SelectorPtr.h"
00028 #include "CommonTools/Utils/src/SelectorBase.h"
00029 #include "CommonTools/Utils/src/ExpressionPtr.h"
00030 #include "CommonTools/Utils/src/ExpressionBase.h"
00031
00032
00033
00034
00035 class FWExpressionEvaluator {
00036
00037 public:
00038 FWExpressionEvaluator(const std::string& iExpression,
00039 const std::string& iClassName);
00040 virtual ~FWExpressionEvaluator();
00041
00042
00043
00044 const std::string& expression() const;
00045
00046 double evalExpression(const void*) const;
00047
00048
00049
00050
00052 void setExpression(const std::string& );
00053 void setClassName(const std::string& );
00054
00055 private:
00056
00057
00058
00059
00060
00061 std::string m_expression;
00062 std::string m_className;
00063 reco::parser::ExpressionPtr m_expr;
00064 ROOT::Reflex::Type m_type;
00065 };
00066
00067 #endif