QBaseLoadCurve.hh

Go to the documentation of this file.
00001 
00011 #ifndef _QBASE_LOAD_CURVE_HH_
00012 #define _QBASE_LOAD_CURVE_HH_
00013 
00014 #include "QCuore.hh"
00015 #include "QLCSlowConfig.hh"
00016 
00017 #include <map>
00018 #include <vector>
00019 #include <string>
00020 #include <ostream>
00021 
00022 namespace Cuore {class QEvent;}
00023 using namespace Cuore;
00024 class QLCMeasConfig;
00025 
00026 class QBaseLoadCurve {
00027 
00028 public:
00029 
00035   enum QLCProcedure_t {
00036     QDefault_p,    
00038     QSequential_p, 
00040     QBisection_p   
00042   };
00043   
00048    QBaseLoadCurve(unsigned short lg);
00049 
00051   virtual ~QBaseLoadCurve();
00052 
00062   virtual QLCProcedure_t SetProcedure(QLCProcedure_t procedure) = 0;
00063 
00074   virtual void AddMeasurement(const QEvent* const  ev, 
00075                               const QLCSlowConfig* config) = 0;
00076 
00078    unsigned short GetLg() const { return fLg; }
00079 
00080    virtual void Dump(std::ostream& file) const = 0;
00081 protected:
00082 
00091    virtual unsigned short 
00092    FindMeasurement(QLCSlowConfig* refMeas,
00093                    std::vector<unsigned short>& matching) const;
00094 
00101    virtual unsigned short 
00102    FindMostRecent(const std::vector<unsigned short>& measIds) const;
00103 
00108    virtual bool ScheduleNextMeasurement() = 0;
00109    
00111    QLCProcedure_t fProcedure;
00112 
00117    std::map<unsigned short,QLCSlowConfig*> fMeasurements;
00118    
00120    unsigned short fMeasurementId;
00121 
00123    unsigned short fPointId;
00124 
00126    const unsigned short fLg;
00127 };
00128 
00129 #endif // _QBASE_LOAD_CURVE_HH_

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