#ifndef ROOT_TMLPAnalyzer
#define ROOT_TMLPAnalyzer
#ifndef ROOT_TObject
#include "TObject.h"
#endif
class TTree;
class TNeuron;
class TSynapse;
class TMultiLayerPerceptron;
class TProfile;
class THStack;
class TMLPAnalyzer : public TObject {
private:
TMultiLayerPerceptron *fNetwork;
TTree *fAnalysisTree;
TTree *fIOTree;
protected:
Int_t GetLayers();
Int_t GetNeurons(Int_t layer);
TString GetNeuronFormula(Int_t idx);
const char* GetInputNeuronTitle(Int_t in);
const char* GetOutputNeuronTitle(Int_t out);
public:
TMLPAnalyzer(TMultiLayerPerceptron& net):
fNetwork(&net), fAnalysisTree(0), fIOTree(0) {}
TMLPAnalyzer(TMultiLayerPerceptron* net):
fNetwork(net), fAnalysisTree(0), fIOTree(0) {}
virtual ~TMLPAnalyzer();
void DrawNetwork(Int_t neuron, const char* signal, const char* bg);
void DrawDInput(Int_t i);
void DrawDInputs();
TProfile* DrawTruthDeviation(Int_t outnode=0, Option_t *option="");
THStack* DrawTruthDeviations(Option_t *option="");
TProfile* DrawTruthDeviationInOut(Int_t innode, Int_t outnode=0,
Option_t *option="");
THStack* DrawTruthDeviationInsOut(Int_t outnode=0, Option_t *option="");
void CheckNetwork();
void GatherInformations();
TTree* GetIOTree() const { return fIOTree;}
ClassDef(TMLPAnalyzer, 0)
};
#endif