00001 00037 #ifndef _M_OB_FILTER_H_ 00038 #define _M_OB_FILTER_H_ 00039 00040 #include "QModule.hh" 00041 #include "QMatrix.hh" 00042 #include "QOffset.hh" 00043 #include "QVector.hh" 00044 #include <map> 00045 #include <set> 00046 #include <string> 00047 00048 namespace Cuore {class QTime;} 00049 00050 class MOBFilter : public QModule { 00051 00052 public: 00053 MOBFilter(QSequence* s); 00054 00055 virtual ~MOBFilter(); 00056 00058 void Init(); 00059 00062 QEvent* Do(QEvent* ev); 00063 00065 void Done(); 00066 00067 private: 00069 double MaxMinusBaseline(const QVector& pulse); 00070 00072 void SetUpChannel(const int channel, const QTime& evTime); 00073 00075 std::set<int> fBadChannels; 00076 00078 std::set<int> fGoodChannels; 00079 00081 std::map<int, QVector> fIdealPulse; 00082 00084 std::string fIdealPulseFilename; 00085 00087 std::map<int, double> fIdealPulseMaxMinusBaseline; 00088 00091 std::map<int, QOffset> fOffsetAnalyzer; 00092 00095 std::map<int, QMatrix> fVinv; 00096 00098 std::map<int, QVector> fWeights; 00099 00101 std::string fWeightsFilename; 00102 00103 }; 00104 00105 #endif