Tomato
OxTestData.h
Go to the documentation of this file.
1 
7 #ifndef Tomato_OXTESTDATA_H
8 #define Tomato_OXTESTDATA_H
9 
10 #include "CmakeConfigForTomato.h"
11 
12 #ifdef USE_YAML
13 
14 #include "TomatoParser.h"
15 
16 #include "yaml.h"
17 
18 
19 namespace Ox {
20 
21  template< typename MeasureType >
22  class TestData {
23 
24  public:
25 
26  TestData(char* filePath);
27 
28  virtual std::vector<MeasureType> getSignalMag() const { return _signalMag; }
29  virtual std::vector<MeasureType> getSignalPha() const { return _signalPha; }
30  virtual std::vector<MeasureType> getSigns() const { return _signs; }
31  virtual std::vector<MeasureType> getSignal() const { return _signal; }
32  virtual std::vector<MeasureType> getInvTimes() const { return _invTimes; }
33  virtual std::vector<MeasureType> getEchoTimes() const { return _echoTimes; }
34  virtual std::vector<MeasureType> getResultsMolli() const { return _resultsMolli; }
35  virtual std::vector<MeasureType> getResultsShmolli() const { return _resultsShmolli; }
36  virtual std::vector<MeasureType> getResultsTwoParam() const { return _resultsTwoParam; }
37  virtual std::vector<MeasureType> getResultsThreeParam() const { return _resultsThreeParam; }
38 
39 
40  virtual const MeasureType* getSignalMagPtr() const {
41  if (_signalMag.size() == 0) {
42  throw std::runtime_error("Empty signalMag");
43  }
44  return &_signalMag.at(0);
45  }
46  virtual const MeasureType* getSignalPhaPtr() const {
47  if (_signalPha.size() == 0) {
48  throw std::runtime_error("Empty signalPha");
49  }
50  return &_signalPha.at(0);
51  }
52  virtual const MeasureType* getSignsPtr() const {
53  if (_signs.size() == 0) {
54  throw std::runtime_error("Empty signs");
55  }
56  return &_signs.at(0);
57  }
58  virtual const MeasureType* getSignalPtr() const {
59  if (_signal.size() == 0) {
60  throw std::runtime_error("Empty signal");
61  }
62  return &_signal.at(0);
63  }
64  virtual const MeasureType* getInvTimesPtr() const {
65  if (_invTimes.size() == 0) {
66  throw std::runtime_error("Empty invTimes");
67  }
68  return &_invTimes.at(0);
69  }
70  virtual const MeasureType* getEchoTimesPtr() const {
71  if (_echoTimes.size() == 0) {
72  throw std::runtime_error("Empty echoTimes");
73  }
74  return &_echoTimes.at(0);
75  }
76  virtual const MeasureType* getResultsMolliPtr() const {
77  if (_resultsMolli.size() == 0) {
78  throw std::runtime_error("Empty resultsMolli");
79  }
80  return &_resultsMolli.at(0);
81  }
82  virtual const MeasureType* getResultsShmolliPtr() const {
83  if (_resultsShmolli.size() == 0) {
84  throw std::runtime_error("Empty resultsShmolli");
85  }
86  return &_resultsShmolli.at(0);
87  }
88  virtual const MeasureType* getResultsTwoParamPtr() const {
89  if (_resultsTwoParam.size() == 0) {
90  throw std::runtime_error("Empty resultsTwoParam");
91  }
92  return &_resultsTwoParam.at(0);
93  }
94  virtual const MeasureType* getResultsThreeParamPtr() const {
95  if (_resultsThreeParam.size() == 0) {
96  throw std::runtime_error("Empty resultsThreeParam");
97  }
98  return &_resultsThreeParam.at(0);
99  }
100 
101  virtual int getNSamples() const { return _nSamples; }
102 
103  void copyStrVectorToMemberVector(std::vector<std::string> strVector, std::vector<MeasureType> &memberVector);
104 
105  void disp();
106 
107  template< typename TYPE >
108  void printVector(std::vector<TYPE> myVector, std::string myVectorName);
109 
110  protected:
111  int _nSamples;
112  std::vector<MeasureType> _signalMag;
113  std::vector<MeasureType> _signalPha;
114  std::vector<MeasureType> _signal;
115  std::vector<MeasureType> _signs;
116  std::vector<MeasureType> _invTimes;
117  std::vector<MeasureType> _echoTimes;
118 
119  std::vector<MeasureType> _resultsMolli;
120  std::vector<MeasureType> _resultsShmolli;
121  std::vector<MeasureType> _resultsTwoParam;
122  std::vector<MeasureType> _resultsThreeParam;
123 
124  void calcSignal();
125  };
126 } // namespace Ox
127 
128 #include "OxTestData.hxx"
129 
130 #endif // USE_YAML
131 
132 #endif //Tomato_OXTESTDATA_H
Definition: OxCalculator.h:19