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_

Generated on Tue Nov 16 10:49:57 2010 for CUORE Software by  doxygen 1.5.6