00001 #ifndef EVENT_LOOP_ALGS__ALG_SELECT_H
00002 #define EVENT_LOOP_ALGS__ALG_SELECT_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00016
00017
00018
00019
00020 #include <EventLoopAlgs/Global.h>
00021
00022 #include <EventLoop/Algorithm.h>
00023 #include <MultiDraw/Global.h>
00024
00025 class TH1;
00026
00027 namespace EL
00028 {
00029 class AlgSelect : public Algorithm
00030 {
00031
00032
00033
00034
00037 public:
00038 void testInvariant () const;
00039
00040
00046 public:
00047 AlgSelect (const std::string& val_outputStream,
00048 const std::string& cut = "");
00049
00050
00054 public:
00055 const std::string& outputStream () const;
00056
00057
00061 public:
00062 const std::string& histName () const;
00063 void histName (const std::string& val_histName);
00064
00065
00070 public:
00071 void addCut (const std::string& cut);
00072
00073
00074
00075
00076
00077
00078
00083 public:
00084 AlgSelect ();
00085
00086
00087
00088
00089
00090
00091
00100 private:
00101 virtual StatusCode setupJob (Job& job);
00102
00103
00114 private:
00115 virtual StatusCode initialize ();
00116
00117
00122 private:
00123 virtual StatusCode execute ();
00124
00125
00126
00127
00128
00129
00130
00132 private:
00133 std::string m_outputStream;
00134
00136 private:
00137 std::vector<std::string> m_cuts;
00138
00140 private:
00141 std::string m_histName;
00142
00144 private:
00145 std::vector<const MD::Formula*> m_index;
00146
00148 private:
00149 TH1 *m_hist;
00150
00152 private:
00153 MD::FormulaSvc *m_formSvc;
00154
00156 private:
00157 NTupleSvc *m_skim;
00158
00159 ClassDef (AlgSelect, 1);
00160 };
00161 }
00162
00163 #endif