00001 #ifndef MULTI_DRAW_FORMULA_SVC_H
00002 #define MULTI_DRAW_FORMULA_SVC_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00017
00018
00019
00020
00021 #include <MultiDraw/Global.h>
00022
00023 #include <EventLoop/Algorithm.h>
00024
00025 class TTree;
00026
00027 namespace MD
00028 {
00032 std::string dbg (const FormulaSvc& obj, unsigned verbosity = 0);
00033
00034
00038 void useFormulas (EL::Job& job);
00039
00040
00045 FormulaSvc *formulas (EL::Worker *worker);
00046
00047
00048
00049 class FormulaSvc : public EL::Algorithm
00050 {
00051
00052
00053
00054
00056 public:
00057 static const std::string name;
00058
00059
00062 public:
00063 void testInvariant () const;
00064
00065
00068 public:
00069 FormulaSvc ();
00070
00071
00074 public:
00075 ~FormulaSvc ();
00076
00077
00084 public:
00085 const Formula *addForm (const std::string& formula);
00086
00087
00088
00089
00090
00091
00092
00095 private:
00096 virtual const char *GetName () const;
00097
00098
00104 private:
00105 virtual EL::StatusCode changeInput (bool firstFile);
00106
00107
00112 private:
00113 virtual EL::StatusCode execute ();
00114
00115
00116
00117
00118
00119
00120
00122 private:
00123 TTree *m_tree;
00124
00126 private:
00127 std::vector<Formula*> m_vars;
00128
00129 ClassDef (FormulaSvc, 1);
00130 };
00131 }
00132
00133 #endif