00001 #include "StrobeDelayTestResult.h"
00002 #include "StrobeDelayVariable.h"
00003 #include "NullVariable.h"
00004 #include "FitObject.h"
00005 #include "FitScanResult.h"
00006 #include "ConfigurationVariable.h"
00007 #include "TopHatFitObject.h"
00008
00009 #include "Sct/SctParameters.h"
00010 #include "Sct/LogicErrors.h"
00011 #include "Sct/OutOfRangeError.h"
00012
00013
00014 #include <TF1.h>
00015
00016 using namespace Sct;
00017
00018 namespace SctData {
00019
00020 StrobeDelayTestResult::StrobeDelayTestResult() throw() : m_optima(nChipModule){
00021 setFraction();
00022 }
00023
00024 StrobeDelayTestResult::StrobeDelayTestResult(const unsigned int runNumber, const string& moduleName) throw()
00025 : TestResult(runNumber, moduleName, NullVariable::instance(), StrobeDelayVariable::instance()),
00026 m_optima(nChipModule){
00027 setFraction();
00028 }
00029
00030 string StrobeDelayTestResult::getClassName() const throw() {
00031 return "SctData::StrobeDelayTestResult";
00032 }
00033
00034 void StrobeDelayTestResult::addScan(unsigned int scanNumber, double testPoint) throw (LogicError) {
00035 if (data.size() != 0) throw InvariantViolatedError("StrobeDelayTestResult::addScan - can only contain 1 scan", __FILE__, __LINE__);
00036 TestResult::addScan(scanNumber, testPoint);
00037 }
00038
00039 double StrobeDelayTestResult::getOptimum(unsigned i) const throw(LogicError) {
00040 if (i>=nChipModule)
00041 throw OutOfRangeError<unsigned>("StrobeDelayTestResult::getOptimum", __FILE__, __LINE__, i,0,nChipModule-1);
00042 return m_optima[i];
00043 }
00044
00045 void StrobeDelayTestResult::setOptimum(unsigned int chip, double optimum) throw(Sct::LogicError) {
00046 if (chip>=nChipModule)
00047 throw OutOfRangeError<unsigned>("StrobeDelayTestResult::setOptimum", __FILE__, __LINE__,chip,0,nChipModule-1);
00048 m_optima[chip] = optimum;
00049 }
00050 }