LCFIVertex  0.7.2
NeuronBuilder.h
1 #ifndef NEURONBUILDER_H
2 #define NEURONBUILDER_H
3 
4 #include "NeuralNetConfig.h"
5 #include <string>
6 #include <vector>
7 
8 #ifdef __CINT__
9 #include "Neuron.h"
10 #include "NeuralNet.h"
11 #else
12 //namespace nnet added 15/08/06 by Mark Grimes (mark.grimes@bristol.ac.uk) for the LCFI vertex package
13 namespace nnet
14 {
15 class Neuron;
16 class NeuralNet;
17 }
18 #endif
19 
20 //namespace nnet added 15/08/06 by Mark Grimes (mark.grimes@bristol.ac.uk) for the LCFI vertex package
21 namespace nnet
22 {
23 
24 class
25 #ifndef __CINT__
26 NEURALNETDLL
27 #endif
29 {
30 public:
31  NeuronBuilder(void) : _theNetwork(0) {}
32  virtual ~NeuronBuilder(void) {}
33  virtual Neuron *buildNeuron(const int NumberOfInputs,const double bias=-1.0) const = 0;
34  virtual Neuron *buildNeuron(const int numberOfInputs,const std::vector<double> &constructionData) const = 0;
35  virtual std::string buildsType() const = 0;
36  void setNetwork(const NeuralNet *theNetwork) {_theNetwork = theNetwork;}
37 
38 protected:
39  const NeuralNet *_theNetwork;
40 };
41 
42 }//namespace nnet
43 
44 #endif