00001 #ifndef _M_CORC_MULTIPLE_COINCIDENCES_HH_ 00002 #define _M_CORC_MULTIPLE_COINCIDENCES_HH_ 00003 00029 #include "QCorcModule.hh" 00030 #include <set> 00031 #include <string> 00032 #include <vector> 00033 00034 class MCorcMultipleCoincidences : public QCorcModule { 00035 00036 public: 00038 MCorcMultipleCoincidences(QSequence* s); 00039 00041 ~MCorcMultipleCoincidences(); 00042 00044 void Init(); 00045 00047 QEvent* Do(QEvent* ev); 00048 00050 void Done(); 00051 00052 private: 00054 bool ParseCoincidences(); 00055 00057 void Write(); 00058 00059 class EventInfo { 00060 public: 00061 int fChannel; 00062 int fRun; 00063 double fTime; 00064 }; 00065 00066 class Coincidence { 00067 public: 00068 std::set<int> fChannels; 00069 unsigned int fNumberOfCrystals; 00070 double fTime; 00071 }; 00072 00074 std::vector<Coincidence> fCoincidences; 00075 00077 std::vector<EventInfo> fCoincidentEvents; 00078 00080 double fCoincidenceWindow; 00081 00083 unsigned int fMaxCoincidentEvents; 00084 00086 std::string fRelativeChannelsSource; 00087 00088 }; 00089 00090 #endif