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