7 #ifndef Tomato_OXCALCULATORT1_HXX 8 #define Tomato_OXCALCULATORT1_HXX 18 template<
typename MeasureType>
19 std::map<std::string, MeasureType>
20 Calculator<MeasureType>
21 ::getResults()
const {
25 template<
typename MeasureType >
30 throw std::runtime_error(
"Calculator: _Model equals 0. Set _Model");
35 template<
typename MeasureType >
40 throw std::runtime_error(
"Calculator: _Fitter equals 0. Set _Fitter");
45 template<
typename MeasureType >
49 return _StartPointCalculator;
52 template<
typename MeasureType >
56 return _SignCalculator;
59 template<
typename MeasureType >
66 template<
typename MeasureType >
73 template<
typename MeasureType >
80 template<
typename MeasureType >
87 template<
typename MeasureType >
92 throw std::runtime_error(
"Calculator: _SigMag equals 0. Set _SigMag" );
97 template<
typename MeasureType >
104 template<
typename MeasureType >
111 template<
typename MeasureType >
118 template<
typename MeasureType >
125 template<
typename MeasureType >
133 template<
typename MeasureType >
140 template<
typename MeasureType >
145 throw std::runtime_error(
"Calculator: _nSamples equals 0. Set _nSamples");
150 template<
typename MeasureType >
155 throw std::runtime_error(
"Calculator: _nDims equals 0. Set _nDims");
165 template<
typename MeasureType >
169 setNDims(_Model->getNDims());
170 Calculator::_Model = _Model;
173 template<
typename MeasureType >
177 Calculator::_Fitter = _Fitter;
180 template<
typename MeasureType >
184 Calculator::_SignCalculator = _SignCalculator;
187 template<
typename MeasureType >
191 Calculator::_StartPointCalculator = _StartPointCalculator;
195 template<
typename MeasureType >
199 Calculator::_InvTimes = _InvTimes;
202 template<
typename MeasureType >
206 Calculator::_EchoTimes = _EchoTimes;
209 template<
typename MeasureType >
213 Calculator::_SigMag = _SigMag;
216 template<
typename MeasureType >
220 Calculator::_SigPha = _SigPha;
223 template<
typename MeasureType >
227 Calculator::_Noise = _Noise;
230 template<
typename MeasureType >
234 Calculator::_MeanCutOff = _MeanCutOff;
237 template<
typename MeasureType >
242 delete [] _Signal; _Signal = 0;
243 delete [] _Signs; _Signs = 0;
245 Calculator::_nSamples = nSamples;
247 _Signal =
new MeasureType[nSamples];
248 _Signs =
new MeasureType[nSamples];
250 for (
int i = 0; i < nSamples; ++i){
260 template<
typename MeasureType >
265 delete [] _StartPoint; _StartPoint = 0;
266 delete [] _ParametersAfterFitting; _ParametersAfterFitting = 0;
268 Calculator::_nDims = nDims;
270 _StartPoint =
new MeasureType[nDims];
271 _ParametersAfterFitting =
new MeasureType[nDims];
273 for (
int i = 0; i < nDims; ++i){
275 _ParametersAfterFitting[i] = 0;
279 template<
typename MeasureType>
281 return _ParametersAfterFitting;
284 template<
typename MeasureType >
288 int nSamples = this->getNSamples();
289 std::cout <<
"\nYou called disp() on a Calculator object " <<
this 290 <<
" with nSamples: " << nSamples
291 <<
" nDims: " << _nDims;
292 KWUtil::printArray(_InvTimes != 0, nSamples, _InvTimes, (
char*)
"\nInvTimes: ");
293 KWUtil::printArray(_EchoTimes != 0, nSamples, _EchoTimes, (
char*)
"\nEchoTimes: ");
294 KWUtil::printArray(_RepTimes != 0, nSamples, _RepTimes, (
char*)
"\nRepTimes: ");
295 KWUtil::printArray(_RelAcqTimes != 0, nSamples, _RelAcqTimes, (
char*)
"\nRelAcqTimes: ");
296 KWUtil::printArray(_SigMag != 0, nSamples, _SigMag, (
char*)
"\nSigMag: ");
297 KWUtil::printArray(_SigPha != 0, nSamples, _SigPha, (
char*)
"\nSigPha: ");
298 KWUtil::printArray(_Noise != 0, nSamples, _Noise, (
char*)
"\nNoise: ");
299 KWUtil::printArray(_Signal != 0, nSamples, _Signal, (
char*)
"\nSignal: ");
300 KWUtil::printArray(_Signs != 0, nSamples, _Signs, (
char*)
"\nSigns: ");
301 KWUtil::printArray(_StartPoint != 0, _nDims, _StartPoint, (
char*)
"\nStart point: ");
302 std::cout << std::endl;
304 std::cout <<
"This Calculator contains the following Model object: ";
309 std::cout <<
"This Calculator contains the following Fitter object: ";
313 if(_SignCalculator) {
314 std::cout <<
"This Calculator contains the following SignCalculator object: ";
315 _SignCalculator->disp();
318 if(_StartPointCalculator) {
319 std::cout <<
"This Calculator contains the following StartPointCalculator object: ";
320 _StartPointCalculator->disp();
326 #endif //Tomato_OXCALCULATORT1_H virtual int getNSamples() const
Definition: OxCalculator.hxx:143
virtual int getNDims() const
Definition: OxCalculator.hxx:153
virtual void disp()
show me your ModelT1
Definition: OxModel.hxx:26
Container for a model function, cost function and Least-Squares function. And derivatives.
Definition: OxModel.h:26
virtual const MeasureType * getSigMag() const
Definition: OxCalculator.hxx:90
virtual void setNDims(int _nDims)
Definition: OxCalculator.hxx:263
void disp()
show me your Model
Definition: OxCalculator.hxx:287
Definition: OxCalculator.h:28
virtual void disp()
show me your Fitter
Definition: OxFitter.h:77
Definition: OxSignCalculator.h:21
Definition: OxStartPointCalculator.h:21
Definition: OxFitter.h:22
virtual const MeasureType * getSigPha() const
Definition: OxCalculator.hxx:100
Definition: OxCalculator.h:19
virtual Model< MeasureType > * getModel() const
Definition: OxCalculator.hxx:28
virtual void setNSamples(int _nSamples)
Definition: OxCalculator.hxx:240
virtual Fitter< MeasureType > * getFitter() const
Definition: OxCalculator.hxx:38