25 void TDataLoader<MatrixInput_t, TReference<Real_t>>::CopyInput(TMatrixT<Real_t> &matrix, IndexIterator_t sampleIterator)
27 const TMatrixT<Real_t> &input = std::get<0>(fData);
28 Int_t m = matrix.GetNrows();
29 Int_t n = input.GetNcols();
31 for (Int_t i = 0; i < m; i++) {
32 Int_t sampleIndex = *sampleIterator;
33 for (Int_t j = 0; j < n; j++) {
34 matrix(i, j) =
static_cast<Real_t
>(input(sampleIndex, j));
42 void TDataLoader<MatrixInput_t, TReference<Real_t>>::CopyOutput(TMatrixT<Real_t> &matrix,
43 IndexIterator_t sampleIterator)
45 const TMatrixT<Real_t> &output = std::get<1>(fData);
46 Int_t m = matrix.GetNrows();
47 Int_t n = output.GetNcols();
49 for (Int_t i = 0; i < m; i++) {
50 Int_t sampleIndex = *sampleIterator;
51 for (Int_t j = 0; j < n; j++) {
52 matrix(i, j) =
static_cast<Real_t
>(output(sampleIndex, j));
60 void TDataLoader<MatrixInput_t, TReference<Real_t>>::CopyWeights(TMatrixT<Real_t> &matrix,
61 IndexIterator_t sampleIterator)
63 const TMatrixT<Real_t> &weights = std::get<2>(fData);
64 Int_t m = matrix.GetNrows();
66 for (Int_t i = 0; i < m; i++) {
67 Int_t sampleIndex = *sampleIterator;
68 matrix(i, 0) =
static_cast<Real_t
>(weights(sampleIndex, 0));
75 void TDataLoader<MatrixInput_t, TReference<Double_t>>::CopyInput(TMatrixT<Double_t> &matrix,
76 IndexIterator_t sampleIterator)
78 const TMatrixT<Double_t> &input = std::get<0>(fData);
79 Int_t m = matrix.GetNrows();
80 Int_t n = input.GetNcols();
82 for (Int_t i = 0; i < m; i++) {
83 Int_t sampleIndex = *sampleIterator;
84 for (Int_t j = 0; j < n; j++) {
85 matrix(i, j) =
static_cast<Double_t
>(input(sampleIndex, j));
93 void TDataLoader<MatrixInput_t, TReference<Double_t>>::CopyOutput(TMatrixT<Double_t> &matrix,
94 IndexIterator_t sampleIterator)
96 const TMatrixT<Double_t> &output = std::get<1>(fData);
97 Int_t m = matrix.GetNrows();
98 Int_t n = output.GetNcols();
100 for (Int_t i = 0; i < m; i++) {
101 Int_t sampleIndex = *sampleIterator;
102 for (Int_t j = 0; j < n; j++) {
103 matrix(i, j) =
static_cast<Double_t
>(output(sampleIndex, j));
111 void TDataLoader<MatrixInput_t, TReference<Double_t>>::CopyWeights(TMatrixT<Double_t> &matrix,
112 IndexIterator_t sampleIterator)
114 const TMatrixT<Double_t> &output = std::get<2>(fData);
115 Int_t m = matrix.GetNrows();
117 for (Int_t i = 0; i < m; i++) {
118 Int_t sampleIndex = *sampleIterator;
119 matrix(i, 0) =
static_cast<Double_t
>(output(sampleIndex, 0));
126 void TDataLoader<TMVAInput_t, TReference<Real_t>>::CopyInput(TMatrixT<Real_t> &matrix, IndexIterator_t sampleIterator)
128 Event *
event =
nullptr;
130 Int_t m = matrix.GetNrows();
131 Int_t n =
event->GetNVariables();
135 for (Int_t i = 0; i < m; i++) {
136 Int_t sampleIndex = *sampleIterator++;
137 event = std::get<0>(fData)[sampleIndex];
138 for (Int_t j = 0; j < n; j++) {
139 matrix(i, j) =
event->GetValue(j);
146 void TDataLoader<TMVAInput_t, TReference<Real_t>>::CopyOutput(TMatrixT<Real_t> &matrix, IndexIterator_t sampleIterator)
148 Event *
event = std::get<0>(fData).front();
149 const DataSetInfo &info = std::get<1>(fData);
150 Int_t m = matrix.GetNrows();
151 Int_t n = matrix.GetNcols();
153 for (Int_t i = 0; i < m; i++) {
154 Int_t sampleIndex = *sampleIterator++;
155 event = std::get<0>(fData)[sampleIndex];
156 for (Int_t j = 0; j < n; j++) {
158 if (event->GetNTargets() == 0) {
161 matrix(i, j) = (info.IsSignal(event)) ? 1.0 : 0.0;
165 if (j == static_cast<Int_t>(event->GetClass())) {
170 matrix(i, j) =
static_cast<Real_t
>(
event->GetTarget(j));
178 void TDataLoader<TMVAInput_t, TReference<Real_t>>::CopyWeights(TMatrixT<Real_t> &matrix, IndexIterator_t sampleIterator)
180 Event *
event = std::get<0>(fData).front();
181 for (Int_t i = 0; i < matrix.GetNrows(); i++) {
182 Int_t sampleIndex = *sampleIterator++;
183 event = std::get<0>(fData)[sampleIndex];
184 matrix(i, 0) =
event->GetWeight();
190 void TDataLoader<TMVAInput_t, TReference<Double_t>>::CopyInput(TMatrixT<Double_t> &matrix,
191 IndexIterator_t sampleIterator)
193 Event *
event = std::get<0>(fData).front();
194 Int_t m = matrix.GetNrows();
195 Int_t n =
event->GetNVariables();
199 for (Int_t i = 0; i < m; i++) {
200 Int_t sampleIndex = *sampleIterator++;
201 event = std::get<0>(fData)[sampleIndex];
202 for (Int_t j = 0; j < n; j++) {
203 matrix(i, j) =
event->GetValue(j);
210 void TDataLoader<TMVAInput_t, TReference<Double_t>>::CopyOutput(TMatrixT<Double_t> &matrix,
211 IndexIterator_t sampleIterator)
213 Event *
event = std::get<0>(fData).front();
214 const DataSetInfo &info = std::get<1>(fData);
215 Int_t m = matrix.GetNrows();
216 Int_t n = matrix.GetNcols();
218 for (Int_t i = 0; i < m; i++) {
219 Int_t sampleIndex = *sampleIterator++;
220 event = std::get<0>(fData)[sampleIndex];
221 for (Int_t j = 0; j < n; j++) {
223 if (event->GetNTargets() == 0) {
226 matrix(i, j) = (info.IsSignal(event)) ? 1.0 : 0.0;
230 if (j == static_cast<Int_t>(event->GetClass())) {
235 matrix(i, j) =
static_cast<Real_t
>(
event->GetTarget(j));
243 void TDataLoader<TMVAInput_t, TReference<Double_t>>::CopyWeights(TMatrixT<Double_t> &matrix,
244 IndexIterator_t sampleIterator)
246 Event *
event =
nullptr;
248 for (Int_t i = 0; i < matrix.GetNrows(); i++) {
249 Int_t sampleIndex = *sampleIterator++;
250 event = std::get<0>(fData)[sampleIndex];
251 matrix(i, 0) =
event->GetWeight();
256 template class TDataLoader<MatrixInput_t, TReference<Real_t>>;
257 template class TDataLoader<TMVAInput_t, TReference<Real_t>>;
258 template class TDataLoader<MatrixInput_t, TReference<Double_t>>;
259 template class TDataLoader<TMVAInput_t, TReference<Double_t>>;