00001 #ifndef _M_COINCIDENCE_MULTIPLICITY_HH_ 00002 #define _M_COINCIDENCE_MULTIPLICITY_HH_ 00003 00035 #include "QModule.hh" 00036 #include <map> 00037 #include <set> 00038 #include <string> 00039 #include <vector> 00040 00041 class MCoincidenceMultiplicity : public QModule { 00042 00043 public: 00045 MCoincidenceMultiplicity(QSequence* s); 00046 00048 ~MCoincidenceMultiplicity(); 00049 00051 void Init(); 00052 00054 QEvent* Do(QEvent* ev); 00055 00057 void Done(); 00058 private: 00059 class EventInfo { 00060 public: 00061 int fEventNumber; 00062 int fChannel; 00063 double fEnergy; 00064 double fTime; 00065 00066 int fMultiplicity; 00067 int fOrderInMultiple; 00068 int fFirstEventNumber; 00069 double fTotalEnergy; 00070 }; 00071 00073 std::set<int> fChannels; 00074 00076 double fCoincidenceWindow; 00077 00079 std::vector<EventInfo> fEventInfos; 00080 00082 std::map<int, int> fEventInfosIndex; 00083 00084 00085 00087 std::string fRelativeChannelsSource; 00088 00089 }; 00090 00091 #endif 00092