00001 00047 #ifndef _M_OB_COMPUTE_WEIGHTS_HH_ 00048 #define _M_OB_COMPUTE_WEIGHTS_HH_ 00049 00050 #include "QModule.hh" 00051 #include "QMatrix.hh" 00052 #include "QOffset.hh" 00053 #include "QVector.hh" 00054 #include <map> 00055 #include <set> 00056 #include <string> 00057 00058 namespace Cuore {class QTime;} 00059 00060 class MOBComputeWeights : public QModule { 00061 00062 public: 00063 MOBComputeWeights(QSequence* s); 00064 00065 virtual ~MOBComputeWeights(); 00066 00067 // Init method is called before event loop 00068 void Init(); 00069 00070 // Do method is called for each event, getting the event as argument 00071 QEvent* Do( QEvent* ev); 00072 00073 // Done method is called after event loop 00074 void Done(); 00075 00076 private: 00078 void SetUpIdealPulse(const int channel, const QTime& evTime); 00079 00082 std::map<int, QMatrix> fAvgProduct; 00083 00086 std::set<int> fBadChannels; 00087 00089 std::map<int, int> fCount; 00090 00092 std::map<int, QVector> fIdealPulse; 00093 00095 std::string fIdealPulseFilename; 00096 00098 std::map<int, double> fIdealPulseMaxMinusBaseline; 00099 00101 unsigned int fNumFreq; 00102 00104 std::map<int, QOffset> fOffsetAnalyzer; 00105 00107 std::map<int, QVector> fResampledIdealPulse; 00108 00109 }; 00110 00111 #endif