MLCSlowController.hh

Go to the documentation of this file.
00001 
00100 #ifndef _M_LC_SLOW_CONTROLLER_HH_
00101 #define _M_LC_SLOW_CONTROLLER_HH_
00102 
00103 
00104 #include "QModule.hh"
00105 
00106 
00107 #include <list>
00108 #include <vector>
00109 
00110 class QEleChannelConfig;
00111 
00112 class MLCSlowController : public QModule {
00113   
00114 public:
00116   MLCSlowController(QSequence* s);
00117   
00119   virtual ~MLCSlowController();
00120 
00128   void Init();
00129   
00136   QEvent* Do(QEvent* ev);
00137   
00139   void Done();
00140 
00141 private:
00147    enum QLCStepMode {
00148       QLC_STEP_LINEAR, 
00150       QLC_STEP_LOG,     
00152       QLC_STEP_FILE    
00154    };
00155 
00160    std::vector< std::list<unsigned int> > fGroups;
00161    
00162    int fDefaultBias;      
00163    int fDefaultGain;      
00164    bool fDefaultResistance; 
00165    float fExtBiasStepSize;  
00166    float fDefaultExternalBias;
00167    bool fAdjustOffsetAtStartup; 
00170    QLCStepMode fStepMode;
00171 
00173    std::vector<float> fExtBiasFromFile;
00174 
00178    size_t fExtBiasIndex; 
00179 
00187   void GroupChannels(const std::list<unsigned int>& channels);
00188 
00194    void InitConfig(QEleChannelConfig& conf,const bool polarity);
00195    
00200    void GetInitParameters();
00201 
00208    virtual bool PopulateNextConfig();
00209 
00220    bool IncrementExternalBias(int step = 0);
00221 
00223    float GetExtBiasStepSize() const { return fExtBiasStepSize; }
00224    
00226    void SetExtBiasStepSize(const float size) { fExtBiasStepSize = size; }
00227 };
00228 
00229 #endif // _M_LC_SLOW_CONTROLLER_HH_

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