00001 #ifndef _M_HEATER_FLAG_BY_REGULAR_TIMING_HH_ 00002 #define _M_HEATER_FLAG_BY_REGULAR_TIMING_HH_ 00003 00092 #include "MSetHeaterFlag.hh" 00093 #include "QTimingAnalyzer.hh" 00094 #include <map> 00095 #include <string> 00096 #include <vector> 00097 00098 class MHeaterFlagByRegularTiming : public MSetHeaterFlag { 00099 00100 public: 00102 MHeaterFlagByRegularTiming(QSequence* s); 00103 00105 ~MHeaterFlagByRegularTiming(); 00106 00108 void Init(); 00109 00111 QEvent* Do(QEvent* ev); 00112 00114 void Done(); 00115 00116 private: 00118 double fExpectedTimeInterval; 00119 00121 double fFalsePositiveRate; 00122 00124 std::string fFlagName; 00125 00127 bool fFlagRawEvent; 00128 00132 int fMaxRandomCoincidentEvents; 00133 00138 int fNecessaryCoincidentEvents; 00139 00144 int fSufficientCoincidentEvents; 00145 00147 std::vector<double> fTimeAdjustments; 00148 00150 double fTimeIntervalStepSize; 00151 00153 double fTimeIntervalUncertainty; 00154 00156 std::map<int, QTimingAnalyzer> fTimingAnalyzer; 00157 00159 double fTimeTolerance; 00160 00162 bool fUseCoincidences; 00163 00164 }; 00165 00166 #endif