41 class CDCTriggerHoughMLP :
public TObject {
45 CDCTriggerHoughMLP() =
default;
49 ~CDCTriggerHoughMLP() =
default;
52 void setFloatWeights(
const std::vector<float>& weights) { m_floatWeights = weights; }
55 size_t getNumberOfLayers()
const {
return m_nodes.size(); }
56 size_t getNumberOfNodes(
const size_t layerIdx)
const {
return m_nodes[layerIdx]; }
57 size_t getNumberOfWeights()
const;
58 const std::vector<float>& getFloatWeights()
const {
return m_floatWeights; }
62 void saveMLPToFile(
const std::string& fileName,
const std::string& objName)
const;
65 static T loadMLPFromFile(
const std::string& fileName,
const std::string& key)
67 TFile datafile(fileName.c_str(),
"READ");
68 if (!datafile.IsOpen()) {
69 B2ERROR(
"Could not open file " << fileName);
70 throw std::runtime_error(
"Could not open file " + fileName);
72 T* network =
dynamic_cast<T*
>(datafile.Get(key.c_str()));
74 throw std::runtime_error(
"File " + fileName +
" does not contain key " + key +
" of requested type");
87 static std::vector<T> readArray(
const std::string& rawString);
92 std::vector<size_t> m_nodes;
94 std::vector<float> m_floatWeights;
96 ClassDef(CDCTriggerHoughMLP, 1);