00001 #ifndef _M_FIND_K40_PHOTOPEAK_HH_ 00002 #define _M_FIND_K40_PHOTOPEAK_HH_ 00003 00051 #include "QModule.hh" 00052 #include <map> 00053 #include <string> 00054 #include <vector> 00055 00056 //namespace Cuore {class QMatrix;} 00057 class TH1D; 00058 00059 class MFindK40Photopeak : public QModule { 00060 00061 public: 00063 MFindK40Photopeak(QSequence* s); 00064 00066 ~MFindK40Photopeak(); 00067 00069 void Init(); 00070 00072 QEvent* Do(QEvent* ev); 00073 00075 void Done(); 00076 private: 00078 std::string GetDiagnosticPlotsFile(const int& run); 00079 00081 std::string GetPeaksFile(const int& run); 00082 00083 class ChannelData { 00084 public: 00085 TH1D* fAmplitudeHist; 00086 }; 00087 00088 class ManualSeedData { 00089 public: 00090 double low; 00091 double high; 00092 }; 00093 00094 class PeakData { 00095 public: 00096 double mean; 00097 double mode; 00098 double sigma; 00099 }; 00100 00102 std::map<int, ChannelData> fChannelList; 00103 00105 std::string fDiagnosticPlotsFileName; 00106 00108 std::string fDiagnosticPlotsFilePrefix; 00109 00111 bool fIsFirstEvent; 00112 00114 std::map<int, ManualSeedData> fManualSeeds; 00115 00117 std::map<int, PeakData> fOldPeaks; 00118 00121 std::string fPeaksFileDir; 00122 00124 std::string fPeaksFileName; 00125 00127 std::string fPeaksFilePrefix; 00128 00129 }; 00130 00131 #endif