00001 00002 #ifndef _M_COINCIDENCETESTER_HH_ 00003 #define _M_COINCIDENCETESTER_HH_ 00004 00005 #include "QModule.hh" 00006 00007 class QCoincidenceFiller; 00008 class QCoincidenceFilter; 00009 class QCoincidence; 00010 class QTower; 00011 00012 namespace Cuore { class QVector; } 00013 00014 #include <string> 00015 00113 class MCoincidenceTester: public QModule 00114 { 00115 public: 00117 MCoincidenceTester(QSequence* s); 00118 00120 ~MCoincidenceTester(); 00121 00123 void Init(); 00124 00126 QEvent* Do(QEvent* ev); 00127 00129 void Done(); 00130 00131 private: 00132 00134 QCoincidenceFiller *fFiller; 00135 00137 std::string fOutList; 00138 00143 std::string fCoincList; 00144 00146 std::string fCutFile; 00147 00149 std::string fTowerFile; 00150 00152 bool fSkipExecution; 00153 00155 std::list<QCoincidenceFilter*> fFilters; 00156 00161 QVector* fEventList; 00162 00165 bool fMultHisto; 00166 bool fDistanceHisto; 00167 bool fPositionHisto; 00168 bool fMultTimeGraph; 00169 bool fMultPositionGraph; 00170 bool fMultDurationGraph; 00171 bool fDistanceTimeGraph; 00172 bool fSummaryPlots; 00173 std::string fSummaryFile; 00177 void ProduceSummaryPlots(const std::list<QCoincidence>& coincList) const; 00178 00180 void DumpEventList(const std::list<QCoincidence>& coincList); 00181 00192 void DumpCoincidenceList(const std::list<QCoincidence>& coincList, 00193 const std::string& fileName) const; 00194 00242 void ReadCutsFile(); 00243 00259 double GetMinimumSumOfDistances(const QCoincidence& coinc, 00260 const QTower& tower) const; 00261 }; 00262 00263 #endif