00001 00039 #ifndef _Q_FILTER_MODULE_HH_ 00040 #define _Q_FILTER_MODULE_HH_ 00041 00042 #include "QBaseModule.hh" 00043 00044 using namespace Cuore; 00045 00046 class QFilter : public QBaseModule 00047 { 00048 public: 00050 QFilter(const std::string& name, QSequence* s); 00051 00053 virtual ~QFilter() {} 00054 protected: 00056 virtual void GetCuts() = 0; 00057 00059 virtual bool Filter(const QEvent* ev) = 0; 00060 00061 private: 00063 bool fSkipEvents; 00064 enum { 00065 AND, 00066 CASE, 00067 OR, 00068 } fLogicFlag; 00069 00070 unsigned long long fTotEvents; 00071 unsigned long long fSelEvents; 00072 00073 void Begin(); 00074 QEvent* Process(QEvent* ev); 00075 void End(); 00076 00077 std::string fAuxDataName; 00078 00079 }; 00080 00081 #undef REGISTER_MODULE 00082 #define REGISTER_MODULE(clazz) REGISTER_MOD(clazz,QFilter) 00083 00084 #endif