00001 00010 #ifndef _QDBCORC_HH_ 00011 #define _QDBCORC_HH_ 00012 00013 #include <vector> 00014 #include <map> 00015 #include <string> 00016 #include "QVector.hh" 00017 #include "QMatrix.hh" 00018 00019 namespace Cuore {class QIntervalSet;} 00020 00021 namespace QDbCorc{ 00022 00030 class Reference { 00031 00032 public: 00033 00038 double GetMin() const {return fMin;} 00039 00044 double GetMax() const {return fMax;} 00045 00050 double GetAvg() const {return fAvg;} 00051 00057 void SetMin(double min) {fMin = min;} 00063 void SetMax(double max) {fMax = max;} 00069 void SetAvg(double avg) {fAvg = avg;} 00070 00071 private: 00072 00073 double fMin; 00074 double fMax; 00075 double fAvg; 00076 00077 }; 00078 00086 Reference GetBoloReference(int run, int ch, std::string variable); 00087 00094 Reference GetBoloBaselineReference(int run, int ch); 00095 00102 Reference GetBoloBaselineRMSReference(int run, int ch); 00103 00110 Reference GetBoloBaselineFluctuationReference(int run, int ch); 00111 00118 Reference GetBoloStabHeaterReference(int run, int ch); 00119 00126 Reference GetBoloStabHeaterRMSReference(int run, int ch); 00127 00134 Reference GetBoloNonStabHeaterReference(int run, int ch); 00135 00142 Reference GetBoloPowerSpectrumReference(int run, int ch); 00143 00150 Reference GetBoloRateReference(int run, int ch); 00151 00158 std::map<int,Reference> GetReference(int run, std::string variable); 00159 00165 std::map<int,Reference> GetBaselineReference(int run); 00166 00172 std::map<int,Reference> GetBaselineRMSReference(int run); 00173 00179 std::map<int,Reference> GetBaselineFluctuationReference(int run); 00180 00186 std::map<int,Reference> GetStabHeaterReference(int run); 00187 00193 std::map<int,Reference> GetStabHeaterRMSReference(int run); 00194 00195 00196 00202 std::map<int,Reference> GetNonStabHeaterReference(int run); 00203 00209 std::map<int,Reference> GetPowerSpectrumReference(int run); 00210 00216 std::map<int,Reference> GetRateReference(int run); 00217 00224 Cuore::QMatrix GetQMatrixReference(int run, std::string variable); 00225 00231 Cuore::QMatrix GetQMatrixMasked(int run); 00232 00238 int GetIsMasked(int run, int ch); 00244 std::vector<int> GetMaskedChannels(int run); 00250 std::map<int,int> GetMaskedMap(int run); 00251 00252 std::map<std::string,std::string> GetNameMap(); 00253 00257 struct TimeInterval { 00258 float fStart; 00259 float fEnd; 00260 }; 00264 std::vector<TimeInterval> GetRejectedIntervalsSeconds(int run, int channel); 00265 00269 const Cuore::QIntervalSet& GetRejectedIntervalSet( 00270 const int run, const int ch); 00271 00276 double GetLiveTime(const int run, const int ch); 00277 00281 void ClearSaturatedHigh(const int run, const int ch); 00282 00287 void ClearSaturatedHigh(const int run, const int ch, 00288 const std::string& dbOutputFile); 00289 00293 void ClearSaturatedLow(const int run, const int ch); 00294 00299 void ClearSaturatedLow(const int run, const int ch, 00300 const std::string& dbOutputFile); 00301 00305 void SetBadInterval(const int run, const int ch, 00306 const double startTime, const double stopTime, 00307 const std::string status); 00308 00312 void SetSaturatedHigh(const int run, const int ch, 00313 const Cuore::QIntervalSet& intervalSet); 00314 00318 void SetSaturatedHigh(const int run, const int ch, 00319 const Cuore::QIntervalSet& intervalSet, 00320 const std::string& dbOutputFile); 00324 void SetSaturatedLow(const int run, const int ch, 00325 const Cuore::QIntervalSet& intervalSet); 00329 void SetSaturatedLow(const int run, const int ch, 00330 const Cuore::QIntervalSet& intervalSet, 00331 const std::string& dbOutputFile); 00332 00340 void SetBoloSummary(const int run, const int ch, 00341 const std::string variable, double value); 00342 00346 void SetBoloSummary(const int run, const int ch, 00347 const std::string variable, double value, 00348 const std::string& dbOutputFile); 00349 00353 double GetBoloSummary(const int run, const int ch, 00354 const std::string variable); 00355 00359 double GetRmsStabHeaterAmplitude(const int run, const int ch); 00360 }; 00361 00362 #endif