00001 #ifndef STROBEDELAYVARIABLE_H 00002 #define STROBEDELAYVARIABLE_H 00003 00004 #include "ConfigurationVariable.h" 00005 #include "ModuleConfiguration.h" 00006 00007 namespace SctData { 00008 00009 class StrobeDelayVariable : public ConfigurationVariable { 00010 public: 00011 static const StrobeDelayVariable& instance() throw(); 00012 00013 virtual double getLinkActualPoint(double logicalPt, const ModuleConfiguration& config, unsigned int link) const throw(); 00014 virtual double getChipActualPoint(double logicalPt, const ModuleConfiguration& config, unsigned int chip) const throw(); 00015 virtual double getChannelActualPoint(double logicalPt, const ModuleConfiguration& config, unsigned int channel) const throw(); 00016 00017 virtual double getLinkLogicalPoint(double actualPt, const ModuleConfiguration& config, unsigned int link) const throw(); 00018 virtual double getChipLogicalPoint(double actualPt, const ModuleConfiguration& config, unsigned int chip) const throw(); 00019 virtual double getChannelLogicalPoint(double actualPt, const ModuleConfiguration& config, unsigned int channel) const throw(); 00020 00021 virtual double getChipActualPoint(const ModuleConfiguration& config, unsigned int chip) const throw(); 00022 virtual void setChipActualPoint(double actualPt, ModuleConfiguration& config, unsigned int chip) const throw(); 00023 00024 private: 00025 StrobeDelayVariable(); 00026 unsigned char getActualPoint(double logicalPt) const throw(); 00027 double getLogicalPoint(unsigned char actualPt) const throw(); 00028 00029 }; 00030 00032 inline unsigned char StrobeDelayVariable::getActualPoint(double logicalPt) const throw() { 00033 return (unsigned char)(logicalPt/2.5); 00034 } 00035 00036 inline double StrobeDelayVariable::getLogicalPoint(unsigned char actualPt) const throw() { 00037 return 2.5 * actualPt; 00038 } 00039 00040 00041 } 00042 00043 #endif //#ifndef THRESHOLDVARIABLE_H