00001 #ifndef _Q_CORC_MODULE_HH_ 00002 #define _Q_CORC_MODULE_HH_ 00003 00015 #include "QModule.hh" 00016 #include "QGuiSession.hh" 00017 #include <ctime> 00018 #include <map> 00019 #include <string> 00020 #include <vector> 00021 00022 class TF1; 00023 00024 class QCorcModule : public QModule { 00025 00026 public: 00028 QCorcModule(const std::string& name, QSequence* s); 00029 00031 virtual ~QCorcModule(); 00032 00033 protected: 00035 int GetStabilizationInterval(const int channel, const double time_sec); 00036 00038 void LoadStabilizationFits(const std::string breakTimesFileName, 00039 const std::string fitParametersFileName); 00040 00041 class Polynomial { 00042 public: 00043 std::map<int, double> coeff; 00044 TF1* function; 00045 }; 00046 00047 class Fits { 00048 public: 00049 std::vector<double> fBreakTimes; 00050 std::map<int, Polynomial> fFitPolynomials; 00051 }; 00052 00053 static 00054 std::map<int, Fits> fChannelToFits; 00055 00057 static bool fIsOnline; 00058 00060 static std::string fOutputDBFile; 00061 00063 static std::string fOutputDBFileDirectory; 00064 00066 static std::string fOutputDBFilePrefix; 00067 00069 static std::string fOutputPlotsDirectory; 00070 00072 static std::string fOutputPlotsFormat; 00073 00075 static std::string fOutputReportFile; 00076 00078 static std::string fOutputReportFileDirectory; 00079 00081 static std::string fOutputReportFilePrefix; 00082 00084 static std::string fOutputRootFile; 00085 00087 static std::string fOutputRootFileDirectory; 00088 00090 static std::string fOutputRootFilePrefix; 00091 00094 static bool fStartingNewRun; 00095 00097 static time_t fStartTime; 00098 00100 static bool fTimeToWrite; 00101 00103 static int fUpdateInterval; 00104 00106 static bool fUseOutputDBFile; 00107 00109 static QGuiSession fWarningPlots; 00110 00112 static bool fWriteOutputPlots; 00113 00114 }; 00115 00116 #endif