Revision 0f64bd4d449519c67265fd7ec8a2a80305326d38 authored by Layal on 02 August 2018, 22:24:20 UTC, committed by Layal on 02 August 2018, 22:24:20 UTC
1 parent 6682ced
OxStartPointCalculator.h
/*!
* \file OxStartPointCalculator.h
* \author Konrad Werys
* \date 2018/07/29
*/
#ifndef OXSHMOLLI2_OXSTARTPOINTCALCULATOR_H
#define OXSHMOLLI2_OXSTARTPOINTCALCULATOR_H
namespace Ox {
/**
* \class StartPointCalculator
* \brief
* \details
* @tparam MeasureType
*/
template< typename MeasureType >
class StartPointCalculator{
public:
// getters
MeasureType *getCalculatedStartPoint() const {
if (!_CalculatedStartPoint) {
std::cerr << "_CalculatedStartPoint equals 0. Set _CalculatedStartPoint" << std::endl;
throw std::exception();
};
return _CalculatedStartPoint;
}
const MeasureType *getDefaultStartPoint() const {
return _DefaultStartPoint;
}
int getNStartFitPoints() const { return _nStartFitPoints; }
//setters
virtual void setInvTimes(const MeasureType *_InvTimes) { StartPointCalculator::_InvTimes = _InvTimes; }
virtual void setSignal(const MeasureType *_Signal) { StartPointCalculator::_Signal = _Signal; }
virtual void setSigns(const MeasureType *_Signs) { StartPointCalculator::_Signs = _Signs; }
virtual void setCalculatedStartPoint(MeasureType *_CalculatedStartPoint) { StartPointCalculator::_CalculatedStartPoint = _CalculatedStartPoint; }
virtual void setNSamples(int _nSamples) { StartPointCalculator::_nSamples = _nSamples; }
/**
* the most important function of this class
* @return success/failure
*/
virtual int calculateStartPoint(){
setStartPointToDefault();
return 0; // EXIT_SUCCESS
};
int setStartPointToDefault(){
getCalculatedStartPoint()[0] = _DefaultStartPoint[0];
getCalculatedStartPoint()[1] = _DefaultStartPoint[1];
getCalculatedStartPoint()[2] = _DefaultStartPoint[2];
return 0; // EXIT_SUCCESS
}
/**
* \brief default constructor
*/
StartPointCalculator(){
_DefaultStartPoint[0] = 100;
_DefaultStartPoint[1] = 200;
_DefaultStartPoint[2] = 1000;
_CalculatedStartPoint = 0;
_InvTimes = 0;
_Signal = 0;
_Signs = 0;
_nSamples = 0;
_nStartFitPoints = 3;
}
/**
* \brief do not forget about the virtual destructor, see
* https://stackoverflow.com/questions/461203/when-to-use-virtual-destructors
*/
virtual ~StartPointCalculator(){};
protected:
MeasureType _DefaultStartPoint[3];
MeasureType* _CalculatedStartPoint;
const MeasureType* _InvTimes;
const MeasureType* _Signal;
const MeasureType* _Signs;
int _nSamples;
int _nStartFitPoints; // special ShMOLLI parameter
};
} //namespace Ox
#endif //OXSHMOLLI2_OXSTARTPOINTCALCULATOR_H
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...