00001 #ifndef _M_COINCIDENCE_MULTIPLICITY_HH_ 00002 #define _M_COINCIDENCE_MULTIPLICITY_HH_ 00003 00050 #include "QModule.hh" 00051 #include <map> 00052 #include <set> 00053 #include <string> 00054 #include <vector> 00055 00056 class MCoincidenceMultiplicity : public QModule { 00057 00058 public: 00060 MCoincidenceMultiplicity(QSequence* s); 00061 00063 ~MCoincidenceMultiplicity(); 00064 00066 void Init(); 00067 00069 QEvent* Do(QEvent* ev); 00070 00072 void Done(); 00073 private: 00074 class EventInfo { 00075 public: 00076 int fEventNumber; 00077 int fChannel; 00078 double fEnergy; 00079 double fTime; 00080 00081 int fMultiplicity; 00082 int fOrderInMultiple; 00083 int fFirstEventNumber; 00084 double fTotalEnergy; 00085 }; 00086 00088 std::set<int> fChannels; 00089 00091 double fCoincidenceWindow; 00092 00094 std::vector<EventInfo> fEventInfos; 00095 00097 std::map<int, int> fEventInfosIndex; 00098 00100 std::string fPrefix; 00101 00103 std::string fRelativeChannelsSource; 00104 00106 std::string fThermistorRankingVariable; 00107 00109 bool fUseRunningWindow; 00110 }; 00111 00112 #endif 00113