Tomato
OxTestData.hxx
Go to the documentation of this file.
1 
7 #ifndef Tomato_OXTESTDATA_HXX
8 #define Tomato_OXTESTDATA_HXX
9 
10 #include "CmakeConfigForTomato.h"
11 
12 #ifdef USE_YAML
13 
14 
15 namespace Ox {
16 
17  template< typename MeasureType >
18  TestData<MeasureType>
19  ::TestData(char* filePath){
20 
21  Ox::TomatoParser<MeasureType> parser;
22  parser._filePath = filePath;
23 
24  // tokens to be parsed
25  parser._sequences["invTimes"];
26  parser._sequences["echoTimes"];
27  parser._sequences["signalMag"];
28  parser._sequences["signalPha"];
29  parser._sequences["signs"];
30 
31  parser._sequences["resultsMolli"];
32  parser._sequences["resultsShmolli"];
33  parser._sequences["resultsTwoParam"];
34  parser._sequences["resultsThreeParam"];
35 
36  parser.parse();
37 
38  copyStrVectorToMemberVector(parser._sequences["signalMag"], _signalMag);
39  copyStrVectorToMemberVector(parser._sequences["signalPha"], _signalPha);
40  copyStrVectorToMemberVector(parser._sequences["signs"], _signs);
41  copyStrVectorToMemberVector(parser._sequences["invTimes"], _invTimes);
42  copyStrVectorToMemberVector(parser._sequences["echoTimes"], _echoTimes);
43 
44  copyStrVectorToMemberVector(parser._sequences["resultsMolli"], _resultsMolli);
45  copyStrVectorToMemberVector(parser._sequences["resultsShmolli"], _resultsShmolli);
46  copyStrVectorToMemberVector(parser._sequences["resultsTwoParam"], _resultsTwoParam);
47  copyStrVectorToMemberVector(parser._sequences["resultsThreeParam"], _resultsThreeParam);
48 
49  int nInvTimes = (int)_invTimes.size();
50  int nEchoTimes = (int)_echoTimes.size();
51 
52  if (nInvTimes != 0) {
53  _nSamples = nInvTimes;
54  } else if (nEchoTimes != 0) {
55  _nSamples = nEchoTimes;
56  }
57 
58  calcSignal();
59  }
60 
61  template< typename MeasureType >
62  void
63  TestData<MeasureType>
64  ::calcSignal(){
65  _signal.resize(_nSamples);
66  if (_signs.size() > 0) {
67  for (int i = 0; i < _nSamples; ++i) {
68  _signal[i] = _signalMag[i] * _signs[i];
69  }
70  } else {
71  for (int i = 0; i < _nSamples; ++i){
72  _signal[i] = _signalMag[i];
73  }
74  }
75  }
76 
77  template< typename MeasureType >
78  template< typename TYPE >
79  void
80  TestData<MeasureType>
81  ::printVector(std::vector<TYPE> myVector, std::string myVectorName){
82  std::cout << myVectorName << " =";
83  for (size_t i = 0; i < myVector.size(); ++i) {
84  std::cout << std::setw(7) << myVector[i];
85  }
86  std::cout << std::endl;
87  }
88 
89  template< typename MeasureType >
90  void
91  TestData<MeasureType>
92  ::copyStrVectorToMemberVector(std::vector<std::string> strVector, std::vector<MeasureType> &memberVector) {
93 
94  //memberVector.resize(strVector.size());
95  for (size_t i = 0; i < strVector.size(); ++i) {
96  memberVector.push_back(KWUtil::StringToNumber<MeasureType>(strVector[i]));
97  }
98  }
99 
100  template< typename MeasureType >
101  void
102  TestData<MeasureType>
103  ::disp(){
104  std::cout << std::endl;
105  printVector<MeasureType>(_signalMag, "signalMag ");
106  printVector<MeasureType>(_signalPha, "signalPha ");
107  printVector<MeasureType>(_signs, "signs ");
108  printVector<MeasureType>(_invTimes, "invTimes ");
109 
110  printVector<MeasureType>(_resultsMolli, "resultsMolli ");
111  printVector<MeasureType>(_resultsShmolli, "resultsShmolli ");
112  printVector<MeasureType>(_resultsMolli, "resultsTwoParam ");
113  printVector<MeasureType>(_resultsShmolli, "resultsThreeParam ");
114  };
115 
116 } // namespace Ox
117 
118 #endif // USE_YAML
119 
120 #endif //Tomato_OXTESTDATA_HXX
Definition: OxCalculator.h:19