35 #include <boost/version.hpp> 37 #if BOOST_VERSION >= 103800 38 # include <boost/spirit/include/classic_ast.hpp> 39 using namespace BOOST_SPIRIT_CLASSIC_NS;
41 # include <boost/spirit/tree/ast.hpp> 97 virtual Bool_t
IsValid() {
return fValid; }
99 virtual Bool_t CheckMapAndParamRange(UInt_t mapSize, UInt_t paramSize);
100 virtual Double_t Eval(std::vector<Double_t> param,
PMetaData metaData);
101 virtual void SetMap(std::vector<Int_t> map) { fMap = map; }
107 virtual Bool_t SetFuncNo();
109 virtual Bool_t FindAndCheckMapAndParamRange(
PFuncTreeNode &node, UInt_t mapSize, UInt_t paramSize);
110 virtual Bool_t GenerateFuncEvalTree();
113 virtual void CleanupFuncEvalTree();
125 virtual void EvalTreeForString(tree_parse_info<> info);
126 virtual void EvalTreeForStringExpression(
iter_t const& i);
132 #endif // _PFUNCTION_H_ Bool_t fValid
flag showing if the function is valid
virtual void SetMap(std::vector< Int_t > map)
Int_t fOperatorTag
tag for '+', '-', '*', '/'
virtual Int_t GetFuncNo()
Double_t fDvalue
for numbers
parse_tree_match_t::tree_iterator iter_t
std::vector< Double_t > fParam
parameter vector (from the msr-file Fit Parameter block)
Int_t fFuncNo
function number, i.e. FUNx with x the function number
std::vector< Int_t > fMap
map vector
Bool_t fSign
for sign, true means '-', false '+'
Int_t fFunctionTag
tag got "cos", "sin", ...
PMetaData fMetaData
keeps meta data from data files (field, energy, temperature, ...)
Int_t fID
tag showing what tree element this is
Int_t fIvalue
for parameter numbers and maps
std::vector< func_tree_node > children
holding sub-tree
virtual TString * GetFuncString()
struct func_tree_node PFuncTreeNode
TString fFuncString
clear text representation of the function
tree_parse_info fInfo
AST parse tree holding a single parsed msr-function in an ascii representation.