LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
anab::MVAReader< T, N > Class Template Reference

#include "MVAReader.h"

Inheritance diagram for anab::MVAReader< T, N >:
anab::FVectorReader< T, N > anab::MVAWrapperBase anab::FVectorWrapperBase

Public Member Functions

 MVAReader (const art::Event &evt, const art::InputTag &tag)
 
std::vector< FeatureVector< N > > const & outputs () const
 Access the vector of the feature vectors. More...
 
std::array< float, N > getOutput (size_t key) const
 Get copy of the MVA output vector at index "key". More...
 
std::array< float, N > getOutput (art::Ptr< T > const &item) const
 Get copy of the MVA output vector idicated with art::Ptr::key(). More...
 
std::array< float, N > getOutput (std::vector< art::Ptr< T > > const &items) const
 Get MVA results accumulated over the vector of items (eg. over hits associated to a cluster). More...
 
std::array< float, N > getOutput (std::vector< art::Ptr< T > > const &items, std::vector< float > const &weights) const
 
std::array< float, N > getOutput (std::vector< art::Ptr< T > > const &items, std::function< float(T const &)> fweight) const
 
const std::string & outputName (size_t index) const
 Meaning/name of the index'th column in the collection of MVA output vectors. More...
 
T const & item (size_t key) const
 Access data product at index "key". More...
 
std::vector< T > const & items () const
 
std::vector< FeatureVector< N > > const & vectors () const
 Access the vector of the feature vectors. More...
 
std::array< float, N > getVector (size_t key) const
 Get copy of the feature vector at index "key". More...
 
std::array< float, N > getVector (art::Ptr< T > const &item) const
 Get copy of the feature vector idicated with art::Ptr::key(). More...
 
size_t size () const
 Get the number of contained items (no. of data product objects equal to no. of feature vectors). More...
 
size_t length () const
 Get the length of a single feature vector. More...
 
const std::string & dataTag () const
 Get the input tag (string representation) of data product used to calculate feature vectors. More...
 
const art::Handle< std::vector< T > > & dataHandle () const
 Access the data product handle. More...
 
const std::string & columnName (size_t index) const
 Meaning/name of the index'th column in the collection of feature vectors. More...
 
int getIndex (const std::string &name) const
 Index of column with given name, or -1 if name not found. More...
 

Static Public Member Functions

static std::unique_ptr< MVAReadercreate (const art::Event &evt, const art::InputTag &tag)
 

Protected Member Functions

std::string getProductName (std::type_info const &ti) const
 
size_t getProductHash (std::type_info const &ti) const
 
template<class T , size_t N>
std::array< float, N > pAccumulate (std::vector< art::Ptr< T > > const &items, std::vector< FeatureVector< N > > const &outs) const
 
template<class T , size_t N>
std::array< float, N > pAccumulate (std::vector< art::Ptr< T > > const &items, std::vector< float > const &weights, std::vector< FeatureVector< N > > const &outs) const
 
template<class T , size_t N>
std::array< float, N > pAccumulate (std::vector< art::Ptr< T > > const &items, std::function< float(T const &)> fweight, std::vector< FeatureVector< N > > const &outs) const
 
template<class T , size_t N>
std::array< float, N > pAccumulate (std::vector< art::Ptr< T > > const &items, std::function< float(art::Ptr< T > const &)> fweight, std::vector< FeatureVector< N > > const &outs) const
 
template<class T , size_t N>
std::array< float, N > pAccumulate (std::vector< art::Ptr< T > > const &items, std::vector< FeatureVector< N > > const &outs, std::array< char, N > const &mask) const
 

Private Member Functions

 MVAReader (const art::Event &evt, const art::InputTag &tag, bool &success)
 Not-throwing constructor. More...
 

Detailed Description

template<class T, size_t N>
class anab::MVAReader< T, N >

Helper for reading the reconstructed objects of type T together with associated N-outputs MVA results with their metadata (this class is not a data product).

Definition at line 104 of file MVAReader.h.

Constructor & Destructor Documentation

template<class T , size_t N>
anab::MVAReader< T, N >::MVAReader ( const art::Event evt,
const art::InputTag tag 
)
inline

Create the wrapper for MVA data stored in the event evt with the provided input tag (the same tag which was used to save MVA results with MVAWriter class). Throws exception if data products not found in the event.

Definition at line 121 of file MVAReader.h.

121  :
122  FVectorReader<T, N>(evt, tag)
123  { }
template<class T , size_t N>
anab::MVAReader< T, N >::MVAReader ( const art::Event evt,
const art::InputTag tag,
bool &  success 
)
inlineprivate

Not-throwing constructor.

Definition at line 159 of file MVAReader.h.

159  :
160  FVectorReader<T, N>(evt, tag, success)
161  { }

Member Function Documentation

template<class T , size_t N>
const std::string& anab::FVectorReader< T, N >::columnName ( size_t  index) const
inlineinherited

Meaning/name of the index'th column in the collection of feature vectors.

Definition at line 79 of file MVAReader.h.

References anab::FVectorReader< T, N >::fDescription.

Referenced by anab::MVAReader< T, N >::outputName().

79 { return fDescription->outputName(index); }
FVecDescription< N > const * fDescription
Definition: MVAReader.h:95
template<class T , size_t N>
static std::unique_ptr<MVAReader> anab::MVAReader< T, N >::create ( const art::Event evt,
const art::InputTag tag 
)
inlinestatic

Create the wrapper for MVA data stored in the event evt with the provided input tag (the same tag which was used to save MVA results with MVAWriter class). Returns nullptr if data products not found in the event.

Definition at line 110 of file MVAReader.h.

Referenced by DUNE::NeutrinoShowerEff::checkCNNtrkshw(), trkf::PMAlgTrackMaker::getPdgFromCnnOnHits(), trkf::PMAlgTrackMaker::init(), and shower::EMShower::produce().

111  {
112  bool success;
113  std::unique_ptr<MVAReader> ptr(new MVAReader(evt, tag, success));
114  if (success) { return ptr; }
115  else { return nullptr; }
116  }
MVAReader(const art::Event &evt, const art::InputTag &tag)
Definition: MVAReader.h:121
template<class T , size_t N>
const art::Handle< std::vector<T> >& anab::FVectorReader< T, N >::dataHandle ( ) const
inlineinherited

Access the data product handle.

Definition at line 76 of file MVAReader.h.

References anab::FVectorReader< T, N >::fDataHandle.

76 { return fDataHandle; }
art::Handle< std::vector< T > > fDataHandle
Definition: MVAReader.h:97
template<class T , size_t N>
const std::string& anab::FVectorReader< T, N >::dataTag ( ) const
inlineinherited

Get the input tag (string representation) of data product used to calculate feature vectors.

Definition at line 73 of file MVAReader.h.

References anab::FVectorReader< T, N >::fDescription.

73 { return fDescription->dataTag(); }
FVecDescription< N > const * fDescription
Definition: MVAReader.h:95
template<class T , size_t N>
int anab::FVectorReader< T, N >::getIndex ( const std::string &  name) const
inlineinherited

Index of column with given name, or -1 if name not found.

Definition at line 82 of file MVAReader.h.

References anab::FVectorReader< T, N >::fDescription.

82 { return fDescription->getIndex(name); }
FVecDescription< N > const * fDescription
Definition: MVAReader.h:95
template<class T , size_t N>
std::array<float, N> anab::MVAReader< T, N >::getOutput ( size_t  key) const
inline

Get copy of the MVA output vector at index "key".

Definition at line 129 of file MVAReader.h.

References anab::FVectorReader< T, N >::getVector().

130  { return FVectorReader<T, N>::getVector(key); }
std::array< float, N > getVector(size_t key) const
Get copy of the feature vector at index "key".
Definition: MVAReader.h:54
template<class T , size_t N>
std::array<float, N> anab::MVAReader< T, N >::getOutput ( art::Ptr< T > const &  item) const
inline

Get copy of the MVA output vector idicated with art::Ptr::key().

Definition at line 133 of file MVAReader.h.

References anab::FVectorReader< T, N >::getVector(), and art::Ptr< T >::key().

134  { return FVectorReader<T, N>::getVector(item.key()); }
key_type key() const
Definition: Ptr.h:356
std::array< float, N > getVector(size_t key) const
Get copy of the feature vector at index "key".
Definition: MVAReader.h:54
template<class T , size_t N>
std::array<float, N> anab::MVAReader< T, N >::getOutput ( std::vector< art::Ptr< T > > const &  items) const
inline

Get MVA results accumulated over the vector of items (eg. over hits associated to a cluster).

Definition at line 137 of file MVAReader.h.

References anab::FVectorReader< T, N >::items().

138  { return pAccumulate(items, FVectorReader<T, N>::vectors()); }
std::vector< FeatureVector< N > > const & vectors() const
Access the vector of the feature vectors.
Definition: MVAReader.h:47
std::array< float, N > pAccumulate(std::vector< art::Ptr< T > > const &items, std::vector< FeatureVector< N > > const &outs) const
template<class T , size_t N>
std::array<float, N> anab::MVAReader< T, N >::getOutput ( std::vector< art::Ptr< T > > const &  items,
std::vector< float > const &  weights 
) const
inline

Get MVA results accumulated with provided weights over the vector of items (eg. over clusters associated to a track, weighted by the cluster size; or over hits associated to a cluster, weighted by the hit area).

Definition at line 143 of file MVAReader.h.

References anab::FVectorReader< T, N >::items().

145  { return pAccumulate(items, weights, FVectorReader<T, N>::vectors()); }
std::vector< FeatureVector< N > > const & vectors() const
Access the vector of the feature vectors.
Definition: MVAReader.h:47
std::array< float, N > pAccumulate(std::vector< art::Ptr< T > > const &items, std::vector< FeatureVector< N > > const &outs) const
template<class T , size_t N>
std::array<float, N> anab::MVAReader< T, N >::getOutput ( std::vector< art::Ptr< T > > const &  items,
std::function< float(T const &)>  fweight 
) const
inline

Get MVA results accumulated with provided weighting function over the vector of items (eg. over clusters associated to a track, weighted by the cluster size; or over hits associated to a cluster, weighted by the hit area).

Definition at line 150 of file MVAReader.h.

References anab::FVectorReader< T, N >::items().

152  { return pAccumulate(items, fweight, FVectorReader<T, N>::vectors()); }
std::vector< FeatureVector< N > > const & vectors() const
Access the vector of the feature vectors.
Definition: MVAReader.h:47
std::array< float, N > pAccumulate(std::vector< art::Ptr< T > > const &items, std::vector< FeatureVector< N > > const &outs) const
size_t anab::FVectorWrapperBase::getProductHash ( std::type_info const &  ti) const
inlineprotectedinherited

Definition at line 31 of file MVAWrapperBase.h.

Referenced by anab::FVectorWriter< N >::getProductID(), and anab::FVectorWriter< N >::initOutputs().

31 { return ti.hash_code(); }
std::string anab::FVectorWrapperBase::getProductName ( std::type_info const &  ti) const
protectedinherited

Definition at line 17 of file MVAWrapperBase.cxx.

Referenced by anab::FVectorReader< T, N >::FVectorReader(), anab::FVectorWriter< N >::getProductID(), anab::FVectorWriter< N >::initOutputs(), and anab::FVectorWriter< N >::produces_using().

18 {
19  char* realname;
20  int status;
21 
22  realname = abi::__cxa_demangle(ti.name(), 0, 0, &status);
23  std::string pname(realname);
24  free(realname);
25 
26  pname.erase( std::remove(pname.begin(), pname.end(), ' '), pname.end() );
27  pname.erase( std::remove(pname.begin(), pname.end(), ':'), pname.end() );
28 
29  return pname;
30 }
template<class T , size_t N>
std::array<float, N> anab::FVectorReader< T, N >::getVector ( size_t  key) const
inlineinherited

Get copy of the feature vector at index "key".

Access feature vector data at index "key". *** WOULD LIKE TO CHANGE TYPE OF FVEC DATA MEMBER TO std::array AND THEN ENABLE THIS FUNCTION ***

Definition at line 54 of file MVAReader.h.

References anab::FVectorReader< T, N >::fVectors.

Referenced by anab::MVAReader< T, N >::getOutput(), and anab::FVectorReader< T, N >::getVector().

55  {
56  std::array<float, N> vout;
57  for (size_t i = 0; i < N; ++i) vout[i] = (*fVectors)[key][i];
58  return vout;
59  }
std::vector< FeatureVector< N > > const * fVectors
Definition: MVAReader.h:96
template<class T , size_t N>
std::array<float, N> anab::FVectorReader< T, N >::getVector ( art::Ptr< T > const &  item) const
inlineinherited

Get copy of the feature vector idicated with art::Ptr::key().

Definition at line 62 of file MVAReader.h.

References anab::FVectorReader< T, N >::getVector(), and art::Ptr< T >::key().

63  { return getVector(item.key()); }
key_type key() const
Definition: Ptr.h:356
std::array< float, N > getVector(size_t key) const
Get copy of the feature vector at index "key".
Definition: MVAReader.h:54
template<class T , size_t N>
T const& anab::FVectorReader< T, N >::item ( size_t  key) const
inlineinherited

Access data product at index "key".

Definition at line 43 of file MVAReader.h.

References anab::FVectorReader< T, N >::fDataHandle.

43 { return (*fDataHandle)[key]; }
art::Handle< std::vector< T > > fDataHandle
Definition: MVAReader.h:97
template<class T , size_t N>
std::vector<T> const& anab::FVectorReader< T, N >::items ( ) const
inlineinherited

Definition at line 44 of file MVAReader.h.

References anab::FVectorReader< T, N >::fDataHandle.

Referenced by anab::MVAReader< T, N >::getOutput().

44 { return *fDataHandle; }
art::Handle< std::vector< T > > fDataHandle
Definition: MVAReader.h:97
template<class T , size_t N>
size_t anab::FVectorReader< T, N >::length ( ) const
inlineinherited

Get the length of a single feature vector.

Definition at line 70 of file MVAReader.h.

70 { return N; }
template<class T , size_t N>
const std::string& anab::MVAReader< T, N >::outputName ( size_t  index) const
inline

Meaning/name of the index'th column in the collection of MVA output vectors.

Definition at line 155 of file MVAReader.h.

References anab::FVectorReader< T, N >::columnName().

155 { return FVectorReader<T, N>::columnName(index); }
const std::string & columnName(size_t index) const
Meaning/name of the index&#39;th column in the collection of feature vectors.
Definition: MVAReader.h:79
template<class T , size_t N>
std::vector< FeatureVector<N> > const& anab::MVAReader< T, N >::outputs ( ) const
inline

Access the vector of the feature vectors.

Definition at line 126 of file MVAReader.h.

References anab::FVectorReader< T, N >::vectors().

126 { return FVectorReader<T, N>::vectors(); }
std::vector< FeatureVector< N > > const & vectors() const
Access the vector of the feature vectors.
Definition: MVAReader.h:47
template<class T , size_t N>
std::array< float, N > anab::MVAWrapperBase::pAccumulate ( std::vector< art::Ptr< T > > const &  items,
std::vector< FeatureVector< N > > const &  outs 
) const
protectedinherited

Definition at line 80 of file MVAWrapperBase.h.

References trkf::fill().

83 {
84  std::array<double, N> acc;
85  acc.fill(0);
86 
87  float pmin = 1.0e-6, pmax = 1.0 - pmin;
88  float log_pmin = std::log(pmin), log_pmax = std::log(pmax);
89 
90  for (auto const & ptr : items)
91  {
92  auto const & vout = outs[ptr.key()];
93  for (size_t i = 0; i < vout.size(); ++i)
94  {
95  float v;
96  if (vout[i] < pmin) v = log_pmin;
97  else if (vout[i] > pmax) v = log_pmax;
98  else v = std::log(vout[i]);
99 
100  acc[i] += v;
101  }
102  }
103 
104  if (!items.empty())
105  {
106  double totp = 0.0;
107  for (size_t i = 0; i < N; ++i)
108  {
109  acc[i] = exp(acc[i] / items.size());
110  totp += acc[i];
111  }
112  for (size_t i = 0; i < N; ++i)
113  {
114  acc[i] /= totp;
115  }
116  }
117  else std::fill(acc.begin(), acc.end(), 1.0 / N);
118 
119 
120  std::array<float, N> result;
121  for (size_t i = 0; i < N; ++i) result[i] = acc[i];
122  return result;
123 }
void fill(const art::PtrVector< recob::Hit > &hits, int only_plane)
template<class T , size_t N>
std::array< float, N > anab::MVAWrapperBase::pAccumulate ( std::vector< art::Ptr< T > > const &  items,
std::vector< float > const &  weights,
std::vector< FeatureVector< N > > const &  outs 
) const
protectedinherited

Definition at line 127 of file MVAWrapperBase.h.

References trkf::fill(), and w.

130 {
131  std::array<double, N> acc;
132  acc.fill(0);
133 
134  float pmin = 1.0e-6, pmax = 1.0 - pmin;
135  float log_pmin = std::log(pmin), log_pmax = std::log(pmax);
136  double totw = 0.0;
137 
138  for (size_t k = 0; k < items.size(); ++k)
139  {
140  auto const & ptr = items[k];
141  float w = weights[k];
142 
143  if (w == 0) continue;
144 
145  auto const & vout = outs[ptr.key()];
146  for (size_t i = 0; i < vout.size(); ++i)
147  {
148  float v;
149  if (vout[i] < pmin) v = log_pmin;
150  else if (vout[i] > pmax) v = log_pmax;
151  else v = std::log(vout[i]);
152 
153  acc[i] += w * v;
154  }
155  totw += w;
156  }
157 
158  if (!items.empty())
159  {
160  double totp = 0.0;
161  for (size_t i = 0; i < N; ++i)
162  {
163  acc[i] = exp(acc[i] / totw);
164  totp += acc[i];
165  }
166  for (size_t i = 0; i < N; ++i)
167  {
168  acc[i] /= totp;
169  }
170  }
171  else std::fill(acc.begin(), acc.end(), 1.0 / N);
172 
173 
174  std::array<float, N> result;
175  for (size_t i = 0; i < N; ++i) result[i] = acc[i];
176  return result;
177 }
void fill(const art::PtrVector< recob::Hit > &hits, int only_plane)
Float_t w
Definition: plot.C:23
template<class T , size_t N>
std::array< float, N > anab::MVAWrapperBase::pAccumulate ( std::vector< art::Ptr< T > > const &  items,
std::function< float(T const &)>  fweight,
std::vector< FeatureVector< N > > const &  outs 
) const
protectedinherited

Definition at line 181 of file MVAWrapperBase.h.

References trkf::fill(), and w.

184 {
185  std::array<double, N> acc;
186  acc.fill(0);
187 
188  float pmin = 1.0e-6, pmax = 1.0 - pmin;
189  float log_pmin = std::log(pmin), log_pmax = std::log(pmax);
190  double totw = 0.0;
191 
192  for (size_t k = 0; k < items.size(); ++k)
193  {
194  auto const & ptr = items[k];
195  float w = fweight(*ptr);
196 
197  if (w == 0) continue;
198 
199  auto const & vout = outs[ptr.key()];
200  for (size_t i = 0; i < vout.size(); ++i)
201  {
202  float v;
203  if (vout[i] < pmin) v = log_pmin;
204  else if (vout[i] > pmax) v = log_pmax;
205  else v = std::log(vout[i]);
206 
207  acc[i] += w * v;
208  }
209  totw += w;
210  }
211 
212  if (!items.empty())
213  {
214  double totp = 0.0;
215  for (size_t i = 0; i < N; ++i)
216  {
217  acc[i] = exp(acc[i] / totw);
218  totp += acc[i];
219  }
220  for (size_t i = 0; i < N; ++i)
221  {
222  acc[i] /= totp;
223  }
224  }
225  else std::fill(acc.begin(), acc.end(), 1.0 / N);
226 
227 
228  std::array<float, N> result;
229  for (size_t i = 0; i < N; ++i) result[i] = acc[i];
230  return result;
231 }
void fill(const art::PtrVector< recob::Hit > &hits, int only_plane)
Float_t w
Definition: plot.C:23
template<class T , size_t N>
std::array< float, N > anab::MVAWrapperBase::pAccumulate ( std::vector< art::Ptr< T > > const &  items,
std::function< float(art::Ptr< T > const &)>  fweight,
std::vector< FeatureVector< N > > const &  outs 
) const
protectedinherited

Definition at line 235 of file MVAWrapperBase.h.

References trkf::fill(), and w.

238 {
239  std::array<double, N> acc;
240  acc.fill(0);
241 
242  float pmin = 1.0e-6, pmax = 1.0 - pmin;
243  float log_pmin = std::log(pmin), log_pmax = std::log(pmax);
244  double totw = 0.0;
245 
246  for (size_t k = 0; k < items.size(); ++k)
247  {
248  auto const & ptr = items[k];
249  float w = fweight(ptr);
250 
251  if (w == 0) continue;
252 
253  auto const & vout = outs[ptr.key()];
254  for (size_t i = 0; i < vout.size(); ++i)
255  {
256  float v;
257  if (vout[i] < pmin) v = log_pmin;
258  else if (vout[i] > pmax) v = log_pmax;
259  else v = std::log(vout[i]);
260 
261  acc[i] += w * v;
262  }
263  totw += w;
264  }
265 
266  if (!items.empty())
267  {
268  double totp = 0.0;
269  for (size_t i = 0; i < N; ++i)
270  {
271  acc[i] = exp(acc[i] / totw);
272  totp += acc[i];
273  }
274  for (size_t i = 0; i < N; ++i)
275  {
276  acc[i] /= totp;
277  }
278  }
279  else std::fill(acc.begin(), acc.end(), 1.0 / N);
280 
281 
282  std::array<float, N> result;
283  for (size_t i = 0; i < N; ++i) result[i] = acc[i];
284  return result;
285 }
void fill(const art::PtrVector< recob::Hit > &hits, int only_plane)
Float_t w
Definition: plot.C:23
template<class T , size_t N>
std::array< float, N > anab::MVAWrapperBase::pAccumulate ( std::vector< art::Ptr< T > > const &  items,
std::vector< FeatureVector< N > > const &  outs,
std::array< char, N > const &  mask 
) const
protectedinherited

Definition at line 293 of file MVAWrapperBase.h.

297 {
298  size_t n_groups = 0;
299  std::unordered_map<char, size_t> label2group;
300  std::vector<size_t> nb_entries;
301  std::array<int, N> groupidx;
302  for (size_t i = 0; i < N; ++i)
303  {
304  int idx = -1;
305  if (mask[i] >= 0)
306  {
307  auto search = label2group.find(mask[i]);
308  if (search == label2group.end())
309  {
310  idx = n_groups;
311  label2group[mask[i]] = idx;
312  nb_entries.push_back(0);
313  ++n_groups;
314  }
315  else
316  {
317  idx = search->second;
318  nb_entries[idx]++;
319  }
320  }
321  groupidx[i] = idx;
322  }
323 
324  std::array<double, N> acc;
325  acc.fill(0);
326 
327  float pmin = 1.0e-6, pmax = 1.0 - pmin;
328  float log_pmin = std::log(pmin), log_pmax = std::log(pmax);
329 
330  for (auto const & ptr : items)
331  {
332  auto const & vout = outs[ptr.key()];
333  for (size_t i = 0; i < vout.size(); ++i)
334  {
335  if (groupidx[i] < 0) continue;
336 
337  float v;
338  if (vout[i] < pmin) v = log_pmin;
339  else if (vout[i] > pmax) v = log_pmax;
340  else v = std::log(vout[i]);
341 
342  acc[i] += v;
343  }
344  }
345 
346  if (!items.empty())
347  {
348  std::vector<double> totp(n_groups, 0.0);
349  for (size_t i = 0; i < N; ++i)
350  {
351  if (groupidx[i] >= 0)
352  {
353  acc[i] = exp(acc[i] / items.size());
354  totp[groupidx[i]] += acc[i];
355  }
356  }
357  for (size_t i = 0; i < N; ++i)
358  {
359  if (groupidx[i] >= 0) { acc[i] /= totp[groupidx[i]]; }
360  }
361  }
362  else
363  {
364  for (size_t i = 0; i < N; ++i)
365  {
366  if (groupidx[i] >= 0) { acc[i] = 1 / nb_entries[groupidx[i]]; }
367  }
368  }
369 
370  std::array<float, N> result;
371  for (size_t i = 0; i < N; ++i) result[i] = acc[i];
372  return result;
373 }
template<class T , size_t N>
size_t anab::FVectorReader< T, N >::size ( ) const
inlineinherited

Get the number of contained items (no. of data product objects equal to no. of feature vectors).

Definition at line 67 of file MVAReader.h.

References anab::FVectorReader< T, N >::fVectors.

67 { return fVectors->size(); }
std::vector< FeatureVector< N > > const * fVectors
Definition: MVAReader.h:96
template<class T , size_t N>
std::vector< FeatureVector<N> > const& anab::FVectorReader< T, N >::vectors ( ) const
inlineinherited

Access the vector of the feature vectors.

Definition at line 47 of file MVAReader.h.

References anab::FVectorReader< T, N >::fVectors.

Referenced by anab::MVAReader< T, N >::outputs().

47 { return *fVectors; }
std::vector< FeatureVector< N > > const * fVectors
Definition: MVAReader.h:96

The documentation for this class was generated from the following file: