ATLAS Offline Software
InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef PIXELCALIBALGS_TTRAINEDNETWORK_H
6 #define PIXELCALIBALGS_TTRAINEDNETWORK_H
7 
8 #include "TObject.h"
9 #include "TMatrixD.h"
10 #include "TVectorD.h"
11 #include <math.h>
12 #include <vector>
13 
14 /******************************************************
15  @class TTrainedNetwork
16  Created : 18-02-2008
17  @author Giacinto Piacquadio (giacinto.piacquadio AT physik.uni-freiburg.de)
18 ********************************************************/
19 
20 class TTrainedNetwork : public TObject
21 {
22  public:
23 
25 
26  //class takes ownership of all pointers...
27  TTrainedNetwork(Int_t nInput,
28  Int_t nHidden,
29  Int_t nOutput,
30  std::vector<Int_t> & nHiddenLayerSize,
31  std::vector<TVectorD*> & thresholdVectors,
32  std::vector<TMatrixD*> & weightMatrices,
33  Int_t activationFunction,
34  bool linearOutput=false,
35  bool normalizeOutput=false);
36 
38 
39  void setNewWeights(std::vector<TVectorD*> & thresholdVectors,
40  std::vector<TMatrixD*> & weightMatrices);
41 
42  Int_t getnInput() const {return m_nInput;};
43 
44  Int_t getnHidden() const {return m_nHidden;};
45 
46  Int_t getnOutput() const {return m_nOutput;};
47 
48  const std::vector<Int_t> & getnHiddenLayerSize() const {return m_nHiddenLayerSize;};
49 
51 
52  const std::vector<TVectorD*> & getThresholdVectors() const {return m_ThresholdVectors;};
53 
54  const std::vector<TMatrixD*> & weightMatrices() const {return m_WeightMatrices;};
55 
56  std::vector<Double_t> calculateOutputValues(std::vector<Double_t> & input) const;
57 
58  bool getIfLinearOutput() const { return m_LinearOutput; };
59 
60  bool getIfNormalizeOutput() const { return m_NormalizeOutput; };
61 
62  private:
63 
64  Int_t m_nInput;
65  Int_t m_nHidden;
66  Int_t m_nOutput;
67 
68  std::vector<Int_t> m_nHiddenLayerSize;
69  //Int_t* m_nHiddenLayerSize;
70 
71  std::vector<TVectorD*> m_ThresholdVectors;
72  std::vector<TMatrixD*> m_WeightMatrices;
73  // TVectorD** m_ThresholdVectors;
74  // TMatrixD** m_WeightMatrices;
76 
77  bool m_LinearOutput;
78 
80 
81  Double_t sigmoid(Double_t x) const { return 1./(1.+exp(-2*x)); };
82 
83  ClassDef( TTrainedNetwork, 2 )
84 
85 };
86 
87 #endif
TTrainedNetwork::getnInput
Int_t getnInput() const
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:46
TTrainedNetwork::calculateOutputValues
std::vector< Double_t > calculateOutputValues(std::vector< Double_t > &input) const
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.cxx:99
TTrainedNetwork::m_nHiddenLayerSize
std::vector< Int_t > m_nHiddenLayerSize
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:72
TTrainedNetwork::m_LinearOutput
bool m_LinearOutput
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:81
TTrainedNetwork::getActivationFunction
Int_t getActivationFunction() const
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:54
TTrainedNetwork::m_nInput
Int_t m_nInput
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:64
TTrainedNetwork::getnHiddenLayerSize
const std::vector< Int_t > & getnHiddenLayerSize() const
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:52
TTrainedNetwork::m_NormalizeOutput
bool m_NormalizeOutput
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:83
TTrainedNetwork::getIfNormalizeOutput
bool getIfNormalizeOutput() const
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:64
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
x
#define x
TTrainedNetwork::getnHidden
Int_t getnHidden() const
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:48
TTrainedNetwork::weightMatrices
const std::vector< TMatrixD * > & weightMatrices() const
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:58
TTrainedNetwork::m_nHidden
Int_t m_nHidden
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:69
TTrainedNetwork::TTrainedNetwork
TTrainedNetwork()
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.cxx:12
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
TTrainedNetwork::m_nOutput
Int_t m_nOutput
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:70
TTrainedNetwork::~TTrainedNetwork
~TTrainedNetwork()
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.cxx:43
TTrainedNetwork::m_WeightMatrices
std::vector< TMatrixD * > m_WeightMatrices
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:76
TTrainedNetwork::getThresholdVectors
const std::vector< TVectorD * > & getThresholdVectors() const
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:56
TTrainedNetwork
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:21
TTrainedNetwork::m_ThresholdVectors
std::vector< TVectorD * > m_ThresholdVectors
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:75
TTrainedNetwork::setNewWeights
void setNewWeights(std::vector< TVectorD * > &thresholdVectors, std::vector< TMatrixD * > &weightMatrices)
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.cxx:67
TTrainedNetwork::sigmoid
Double_t sigmoid(Double_t x) const
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:85
TTrainedNetwork::normalizeOutput
static const unsigned normalizeOutput
Definition: Tracking/TrkUtilityPackages/TrkNeuralNetworkUtils/TrkNeuralNetworkUtils/TTrainedNetwork.h:31
TTrainedNetwork::m_ActivationFunction
Int_t m_ActivationFunction
cache of the maximum needed size, not persisitified
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:79
TTrainedNetwork::getIfLinearOutput
bool getIfLinearOutput() const
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:62
TTrainedNetwork::getnOutput
Int_t getnOutput() const
Definition: InnerDetector/InDetCalibAlgs/PixelCalibAlgs/NNClusteringCalibration_RunI/TTrainedNetwork.h:50
TTrainedNetwork::linearOutput
static const unsigned linearOutput
Definition: Tracking/TrkUtilityPackages/TrkNeuralNetworkUtils/TrkNeuralNetworkUtils/TTrainedNetwork.h:30