QLoadCurve.hh

Go to the documentation of this file.
00001 
00008 #ifndef _QLOAD_CURVE_HH_
00009 #define _QLOAD_CURVE_HH_
00010 
00011 #include "QCuore.hh"
00012 
00013 #include "QBaseLoadCurve.hh"
00014 #include "QLCMeasurement.hh"
00015 #include "QLCCurvePoint.hh"
00016 #include "QEvent.hh"
00017 #include "QRawEvent.hh"
00018 
00019 class QLoadCurve : public QBaseLoadCurve {
00020 
00021 public:
00022 
00027    QLoadCurve(unsigned short lg);
00028 
00030   virtual ~QLoadCurve();
00031 
00040   virtual QLCProcedure_t SetProcedure(QLCProcedure_t procedure);
00041 
00048   virtual void AddMeasurement(const QEvent* const  ev,
00049                               const QLCSlowConfig* config);
00050 
00051    virtual void Dump(std::ostream& file) const;
00052 
00058    void EnableStrictCheck(const bool enable) { fStrictCheck = enable; };
00059 
00064    void SetMaxExternalBias(const float maxBias) { fMaxExternalBias = maxBias; }
00065 
00070    void SetNumHpPerConfig(size_t min) { fNumHpPerConfig = min; }
00071 
00076    void SetNumNoisePerConfig(size_t min) { fNumNoisePerConfig = min; }
00077 
00078 protected:
00079 
00091    virtual bool ProcessPoint(QLCCurvePoint* point);
00092 
00100    virtual bool ProcessCurve() const;
00101 
00112    virtual bool ScheduleNextMeasurement();
00113 
00120    virtual bool ScheduleNextMeasSequential();
00121 
00127    virtual void FillMeasurement(const QEvent* ev, QLCMeasurement* meas) const;
00128 
00139    virtual bool ValidateMeasurement(const QLCMeasurement* meas);
00140 
00149    virtual unsigned short FindPoint(const float bias) const;
00150 
00157    virtual QLCCurvePoint* GetPoint(const float bias);
00158 
00166    virtual size_t GetCurve(std::map<double, double>& points,
00167                            const bool                onlyDonePoints) const;
00168    
00169 private:
00170    std::map<unsigned short, QLCCurvePoint*> fCurvePoints;
00171 
00172    bool CheckSameOffsetAndGain(const std::vector<unsigned short>& measList,
00173                                const QLCMeasurement*            refMeas) const;
00174 
00175    const QLCMeasurement* GetMeasurement(const unsigned short id) const;
00176 
00181    const double fBaselineMax;
00182 
00184    const int fPointsOverIP;
00185    
00187    float fMaxExternalBias;
00188 
00196    bool fStrictCheck;
00197 
00198    size_t fNumNoisePerConfig; 
00199    size_t fNumHpPerConfig;    
00200 };
00201 
00202 #endif // _QLOAD_CURVE_HH_

Generated on Fri Mar 6 13:40:40 2009 for CUORE Software by  doxygen 1.5.1