QLoadCurve.hh
Go to the documentation of this file.00001
00008 #ifndef _QLOAD_CURVE_HH_
00009 #define _QLOAD_CURVE_HH_
00010
00011 #include <map>
00012
00013 #include "QCuore.hh"
00014
00015 #include "QBaseLoadCurve.hh"
00016 #include "QLCMeasurement.hh"
00017 #include "QLCCurvePoint.hh"
00018
00019 class QLoadCurve : public QBaseLoadCurve
00020 {
00021 public:
00022
00027 QLoadCurve(unsigned int lg);
00028
00030 virtual ~QLoadCurve();
00031
00032 virtual void Dump(std::ostream& file) const;
00033
00039 void EnableStrictCheck(const bool enable) { fStrictCheck = enable; };
00040
00045 void SetMaxExternalBias(const float maxBias) { fMaxExternalBias = maxBias; }
00046
00051 void SetNumHpPerConfig(size_t min) { fNumHpPerConfig = min; }
00052
00057 void SetNumNoisePerConfig(size_t min) { fNumNoisePerConfig = min; }
00058
00059 protected:
00060
00072 virtual bool ProcessPoint(QLCCurvePoint* point);
00073
00081 virtual bool ProcessCurve() const;
00082
00093 virtual bool ScheduleNextMeasurement();
00094
00101 virtual bool ScheduleNextMeasSequential();
00102
00108 virtual QLCMeasurement*
00109 FillMeasurement(const Cuore::QEvent* ev, const QEleChannelConfig* config) const;
00110
00121 virtual bool ValidateMeasurement(const QLCMeasurement* meas);
00122
00131 virtual const QLCCurvePoint* FindPoint(const float bias) const;
00132
00139 virtual QLCCurvePoint* GetPoint(const float bias);
00140
00148 virtual size_t GetCurve(std::map<double, double>& points,
00149 const bool onlyDonePoints) const;
00150
00155 virtual void ProcessCurveChild() {}
00156 virtual void SetOutputConfig() {}
00157
00158 private:
00159 std::vector<QLCCurvePoint*> fCurvePoints;
00160
00161 bool CheckSameOffsetAndGain(const std::set<const QLCMeasurement*>& measList,
00162 const QLCMeasurement* refMeas) const;
00163
00168 const double fBaselineMax;
00169
00171 const int fPointsOverIP;
00172
00174 float fMaxExternalBias;
00175
00183 bool fStrictCheck;
00184
00185 size_t fNumNoisePerConfig;
00186 size_t fNumHpPerConfig;
00187 };
00188 #endif // _QLOAD_CURVE_HH_