MOT.hh
00001 #ifndef _M_OT_HH_
00002 #define _M_OT_HH_
00003
00039 #include "QModule.hh"
00040 #include <map>
00041 #include <vector>
00042 #include "QVector.hh"
00043 #include "QOTFilter.hh"
00044 #include "QOTTrigger.hh"
00045 #include "QOTTwins.hh"
00046
00047 class MOT : public QModule {
00048
00049 public:
00051 MOT(QSequence* s);
00052
00054 ~MOT();
00055
00057 void Init();
00058
00060 QEvent* Do(QEvent* ev);
00061
00063 void Done();
00064 private:
00065
00066 void InitSingleChannel(const int chan);
00067 struct SingleChannelInfo {
00068 QOTFilter OTF;
00069 QOTTrigger OTT;
00070 bool BlackSheep;
00071 };
00072 std::map<int,SingleChannelInfo> fSingleChannelInfos;
00073
00074 void InitTwinChannel(const int chan1, const int chan2);
00075 struct TwinChannelInfo {
00076 QOTFilter OTF1;
00077 QOTFilter OTF2;
00078 QOTTwins OTTwins;
00079 bool BlackSheep;
00080 };
00081 std::map<int,TwinChannelInfo> fTwinChannelInfos;
00082
00083 double fCoincidenceWindow;
00084 double fThresholdFactor;
00085 bool fDebug;
00086 bool fRelativeThermistor;
00087 bool fDiff;
00088 bool fVetoMode;
00089
00090 std::string fDebugFile;
00091 std::string fAvgPulseFile;
00092 std::string fAvgNoiseFile;
00093 std::string fKernelWindow;
00094
00095 std::string fListOfPulsersFile;
00096 std::vector<unsigned int> fPulserAmpl;
00097
00098
00099 QFFT::WindowType fKernelWindowType;
00100
00101 Cuore::QVector fTriggers,fSideTriggers,fCoincTriggers;
00102 Cuore::QVector fAmplTriggers,fAmplSideTriggers,fAmplCoincTriggers;
00103 Cuore::QVector fFiltered, fSideFiltered;
00104 Cuore::QVector fVetoIntervals,fSideVetoIntervals,fCoincVetoIntervals;
00105 Cuore::QVector fChi;
00106
00107 Cuore::QVector fApolloOT;
00108 };
00109
00110 #endif
00111