00001 #ifndef MULTI_DRAW_ALG_HIST_H
00002 #define MULTI_DRAW_ALG_HIST_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00016
00017
00018
00019
00020 #include <MultiDraw/Global.h>
00021
00022 #include <EventLoop/Algorithm.h>
00023
00024 class TH1;
00025
00026 namespace MD
00027 {
00028 class AlgHist : public EL::Algorithm
00029 {
00030
00031
00032
00033
00036 public:
00037 void testInvariant () const;
00038
00039
00043 public:
00044 AlgHist ();
00045
00046
00053 public:
00054 AlgHist (TH1 *val_hist_swallow,
00055 const std::string& val_value0,
00056 const std::string& val_value1 = "",
00057 const std::string& val_value2 = "",
00058 const std::string& val_value3 = "");
00059
00060
00064 public:
00065 ~AlgHist ();
00066
00067
00068
00069
00070
00071
00080 private:
00081 virtual EL::StatusCode setupJob (EL::Job& job);
00082
00083
00094 private:
00095 virtual EL::StatusCode initialize ();
00096
00097
00102 private:
00103 virtual EL::StatusCode execute ();
00104
00105
00106
00107
00108
00109
00110
00112 private:
00113 TH1 *m_hist;
00114
00116 private:
00117 int m_type;
00118
00120 private:
00121 std::vector<std::string> m_formulas;
00122
00124 private:
00125 std::vector<Double_t> m_values;
00126
00128 private:
00129 std::size_t m_valnum;
00130
00132 private:
00133 bool m_cut;
00134
00136 private:
00137 std::vector<const Formula*> m_index;
00138
00140 private:
00141 TH1 *m_hist2;
00142
00144 private:
00145 FormulaSvc *m_formSvc;
00146
00147 ClassDef (AlgHist, 1);
00148 };
00149 }
00150
00151 #endif