TxCurrentTestResult.h

00001 #ifndef TXCURRENTTESTRESULT_H
00002 #define TXCURRENTTESTRESULT_H
00003 
00004 #include "TestResult.h"
00005 #include "Sct/RangedVector.h"
00006 
00007 namespace SctData{
00012   class TxCurrentTestResult : public TestResult {
00013   public:
00014     TxCurrentTestResult() throw();
00015     
00019     TxCurrentTestResult(unsigned int runNumber, const string& moduleName) throw();
00020     
00024     virtual ~TxCurrentTestResult() throw();
00025     
00026     //Override
00027     virtual string getClassName() const throw();
00028 
00029     class StreamResult {
00030     public:
00031       typedef int ThresholdType;
00032       StreamResult() {
00033         setInvalid();
00034       }
00035       void setInvalid() {
00036         m_minErrorFreeTxCurrent = NOT_YET_SET_OR_INVALID;
00037         m_maxErrorFreeTxCurrent = NOT_YET_SET_OR_INVALID;
00038         m_bestTxCurrent         = NOT_YET_SET_OR_INVALID;
00039       };
00040       bool isInvalid() const {
00041         return 
00042           m_minErrorFreeTxCurrent == NOT_YET_SET_OR_INVALID ||
00043           m_maxErrorFreeTxCurrent == NOT_YET_SET_OR_INVALID ||
00044           m_bestTxCurrent         == NOT_YET_SET_OR_INVALID;
00045       };
00046       int minErrorFreeTxCurrent() const { return m_minErrorFreeTxCurrent; };
00047       int maxErrorFreeTxCurrent() const { return m_maxErrorFreeTxCurrent; };
00048       int bestTxCurrent() const { return m_bestTxCurrent; };
00049       void setMinErrorFreeTxCurrent(int val) {
00050         m_minErrorFreeTxCurrent = (this->isAllowableTxCurrentPrivateVar(val)) ? val : NOT_YET_SET_OR_INVALID;
00051       };
00052       void setMaxErrorFreeTxCurrent(int val) {
00053         m_maxErrorFreeTxCurrent = (this->isAllowableTxCurrentPrivateVar(val)) ? val : NOT_YET_SET_OR_INVALID;
00054       };
00055       void setBestTxCurrent(int val) {
00056         m_bestTxCurrent = (this->isAllowableTxCurrentPrivateVar(val)) ? val : NOT_YET_SET_OR_INVALID;
00057       };
00058     private:
00059       static bool isAllowableTxCurrentPrivateVar(const int val) {
00060         return val == NOT_YET_SET_OR_INVALID || (val>=MIN_LEGITIMATE_TX_CURRENT && val <= MAX_LEGITIMATE_TX_CURRENT);
00061       };
00062     public:
00063       static bool isGoodPhysicalTxCurrent(const int val) {
00064         return val != NOT_YET_SET_OR_INVALID && val>=MIN_LEGITIMATE_TX_CURRENT && val <= MAX_LEGITIMATE_TX_CURRENT;
00065       };
00066     private:
00067       int m_minErrorFreeTxCurrent;
00068       int m_maxErrorFreeTxCurrent;
00069       int m_bestTxCurrent;
00070       static const int NOT_YET_SET_OR_INVALID=-1;
00071       static const int MIN_LEGITIMATE_TX_CURRENT=0;
00072       static const int MAX_LEGITIMATE_TX_CURRENT=255;
00073     };
00074     
00078     StreamResult& getStreamResult(const unsigned index);
00082     const StreamResult& getStreamResult(const unsigned index) const;
00083   private:
00084     RangedVector<StreamResult> streamResults;
00085 
00086   };
00087 }// end of namespace SctData
00088 #endif //#ifndef TIMEWALKTESTRESULT_H

Generated on Mon Feb 6 14:01:37 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6