Logo ROOT   6.12/07
Reference Guide
TNeuronInputAbs.h
Go to the documentation of this file.
1 // @(#)root/tmva $Id$
2 // Author: Matt Jachowski
3 
4 /**********************************************************************************
5  * Project: TMVA - a Root-integrated toolkit for multivariate data analysis *
6  * Package: TMVA *
7  * Class : TMVA::TNeuronInputAbs *
8  * Web : http://tmva.sourceforge.net *
9  * *
10  * Description: *
11  * TNeuron input calculator -- calculates the sum of the absolute values *
12  * of the weighted inputs *
13  * *
14  * Authors (alphabetical): *
15  * Matt Jachowski <jachowski@stanford.edu> - Stanford University, USA *
16  * *
17  * Copyright (c) 2005: *
18  * CERN, Switzerland *
19  * *
20  * Redistribution and use in source and binary forms, with or without *
21  * modification, are permitted according to the terms listed in LICENSE *
22  * (http://tmva.sourceforge.net/LICENSE) *
23  **********************************************************************************/
24 
25 
26 #ifndef ROOT_TMVA_TNeuronInputAbs
27 #define ROOT_TMVA_TNeuronInputAbs
28 
29 //////////////////////////////////////////////////////////////////////////
30 // //
31 // TNeuronInputAbs //
32 // //
33 // TNeuron input calculator -- calculates the sum of the absolute //
34 // values of the weighted inputs //
35 // //
36 //////////////////////////////////////////////////////////////////////////
37 
38 // ROOT_VERSION(5,15,02) = (5<<16)+(15<<8)+2 = 364802
39 // we use the hardcoded number here since CINT does not easily understand macros
40 // we tried using rootcints -p option, but that causes rootcint to pick up
41 // things from the ROOT version of TMVA
42 
43 // #if ROOT_VERSION_CODE >= 364802
44 #include "TMathBase.h"
45 // #else
46 // #ifndef ROOT_TMath
47 // #include "TMath.h"
48 // #endif
49 // #endif
50 
51 #include "TObject.h"
52 #include "TString.h"
53 
54 #include "TMVA/TNeuronInput.h"
55 
56 #include "TMVA/TNeuron.h"
57 
58 namespace TMVA {
59 
60  class TNeuronInputAbs : public TNeuronInput {
61 
62  public:
63 
65  virtual ~TNeuronInputAbs() {}
66 
67  // calculate the input value for the neuron
68  Double_t GetInput( const TNeuron* neuron ) const {
69  if (neuron->IsInputNeuron()) return 0;
70  Double_t result = 0;
71  for (Int_t i=0; i < neuron->NumPreLinks(); i++)
72  result += TMath::Abs(neuron->PreLinkAt(i)->GetWeightedValue());
73  return result;
74  }
75 
76  // name of the class
77  TString GetName() { return "Sum of weighted activations (absolute value)"; }
78 
79  ClassDef(TNeuronInputAbs,0); // Calculates the sum of the absolute values of the weighted inputs
80  };
81 
82 } // namespace TMVA
83 
84 #endif
Bool_t IsInputNeuron() const
Definition: TNeuron.h:116
Basic string class.
Definition: TString.h:125
int Int_t
Definition: RtypesCore.h:41
Short_t Abs(Short_t d)
Definition: TMathBase.h:108
#define ClassDef(name, id)
Definition: Rtypes.h:320
Neuron class used by TMVA artificial neural network methods.
Definition: TNeuron.h:49
TNeuron input calculator – calculates the sum of the absolute values of the weighted inputs...
Int_t NumPreLinks() const
Definition: TNeuron.h:108
TSynapse * PreLinkAt(Int_t index) const
Definition: TNeuron.h:110
double Double_t
Definition: RtypesCore.h:55
Abstract ClassifierFactory template that handles arbitrary types.
Interface for TNeuron input calculation classes.
Definition: TNeuronInput.h:42
Double_t GetWeightedValue()
get output of pre-neuron weighted by synapse weight
Definition: TSynapse.cxx:77
Double_t GetInput(const TNeuron *neuron) const