Logo ROOT   6.07/09
Reference Guide
VariableInfo.h
Go to the documentation of this file.
1 // @(#)root/tmva $Id$
2 // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss
3 
4 /**********************************************************************************
5  * Project: TMVA - a Root-integrated toolkit for multivariate data analysis *
6  * Package: TMVA *
7  * Class : Option *
8  * Web : http://tmva.sourceforge.net *
9  * *
10  * Description: *
11  * Variable type info *
12  * *
13  * Authors (alphabetical): *
14  * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland *
15  * Joerg Stelzer <Joerg.Stelzer@cern.ch> - CERN, Switzerland *
16  * Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, Germany *
17  * *
18  * Copyright (c) 2006: *
19  * CERN, Switzerland *
20  * U. of Victoria, Canada *
21  * MPI-K Heidelberg, Germany *
22  * LAPP, Annecy, France *
23  * *
24  * Redistribution and use in source and binary forms, with or without *
25  * modification, are permitted according to the terms listed in LICENSE *
26  * (http://mva.sourceforge.net/license.txt) *
27  **********************************************************************************/
28 
29 #ifndef ROOT_TMVA_VariableInfo
30 #define ROOT_TMVA_VariableInfo
31 
32 //////////////////////////////////////////////////////////////////////////
33 // //
34 // VariableInfo //
35 // //
36 // Class for type info of MVA input variable //
37 // //
38 //////////////////////////////////////////////////////////////////////////
39 
40 #ifndef ROOT_Rtypes
41 #include "Rtypes.h"
42 #endif
43 #ifndef ROOT_TString
44 #include "TString.h"
45 #endif
46 #ifndef ROOT_TMVA_Types
47 #include "TMVA/Types.h"
48 #endif
49 #ifndef ROOT_TNamed
50 #include "TNamed.h"
51 #endif
52 
53 namespace TMVA {
54 
55  class VariableInfo:public TNamed {
56 
57  public:
58 
59  VariableInfo( const TString& expression, const TString& title, const TString& unit,
60  Int_t varCounter, char varType = 'F', void* external = 0,
61  Double_t min = 0, Double_t max = 0, Bool_t normalized=kTRUE );
62  VariableInfo();
63  VariableInfo( const VariableInfo& other );
65  const TString& GetExpression() const { return fExpression; }
66  const TString& GetInternalName() const { return fInternalName; }
67  const TString& GetLabel() const { return fLabel; }
68  const TString& GetUnit() const { return fUnit; }
69  char GetVarType() const { return fVarType; }
70 
71  Double_t GetMin () const { return fXminNorm; }
72  Double_t GetMax () const { return fXmaxNorm; }
73  Double_t GetMean() const { return fXmeanNorm; }
74  Double_t GetRMS () const { return fXrmsNorm; }
75  Double_t GetVariance() const { return fXvarianceNorm; }
76 
77  void SetMin ( Double_t v ) { fXminNorm = v; }
78  void SetMax ( Double_t v ) { fXmaxNorm = v; }
79  void SetMean ( Double_t v ) { fXmeanNorm = v; }
80  void SetRMS ( Double_t v ) { fXrmsNorm = v; }
81  void SetExternalLink( void* p ) { fExternalData = (char*)p; }
83  void ResetMinMax() { fXminNorm = 1e30; fXmaxNorm = -1e30; }
84 
85  void WriteToStream ( std::ostream& o ) const;
86  void ReadFromStream( std::istream& istr );
87  void ReadFromXML ( void* varnode );
88  void AddToXML ( void* varnode );
89  void* GetExternalLink() const { return (void*)fExternalData; }
90 
91  // assignment operator (does not copy external link)
93 
94  private:
95 
96  // should not be set from outside this class
97  void SetExpression ( const TString& s ) { fExpression = s; }
98  void SetLabel ( const TString& s ) { fLabel = s; }
99  void SetUnit ( const TString& s ) { fUnit = s; }
100  void SetInternalVarName( const TString& s ) { fInternalName = s; }
101  void SetVarType ( char c ) { fVarType = c; }
102 
103  TString fExpression; // original variable expression (can be a formula)
104  TString fInternalName; // internal variable name (needs to be regular expression)
105  TString fLabel; // variable label, set by "mylabel := var1 + var2", this is a shortcut
106  //TString fTitle; //! title for axis labels in plots; set by second string in AddVariable
107  TString fUnit; // unit for axis labels in plots; set by third string in AddVariable
108  Char_t fVarType; // the variable type to be used internally ('F'-default or 'I')
109  Double_t fXminNorm; // minimum value for correlated/decorrelated/PCA variable
110  Double_t fXmaxNorm; // maximum value for correlated/decorrelated/PCA variable
111  Double_t fXmeanNorm; // mean value for correlated/decorrelated/PCA variable
112  Double_t fXrmsNorm; // rms value for correlated/decorrelated/PCA variable
113  Double_t fXvarianceNorm; // variance value for correlated/decorrelated/PCA variable
114  Bool_t fNormalized; // variable gets normalized
115  void* fExternalData; //! if the variable content is linked to an external pointer
116  TString fExternalDataType;// type of external variable (int, long, double, float) - to be done JS
117  Int_t fVarCounter; // dummy variable
118  public:
119 
121  };
122 
123 }
124 
125 #endif
Double_t GetRMS() const
Definition: VariableInfo.h:74
return c
Double_t GetMin() const
Definition: VariableInfo.h:71
const TString & GetExpression() const
Definition: VariableInfo.h:65
Double_t fXvarianceNorm
Definition: VariableInfo.h:113
void SetUnit(const TString &s)
Definition: VariableInfo.h:99
Double_t GetMax() const
Definition: VariableInfo.h:72
VariableInfo & operator=(const TMVA::VariableInfo &rhs)
comparison operator
Basic string class.
Definition: TString.h:137
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
Double_t GetVariance() const
Definition: VariableInfo.h:75
void SetLabel(const TString &s)
Definition: VariableInfo.h:98
const TString & GetInternalName() const
Definition: VariableInfo.h:66
void SetRMS(Double_t v)
Definition: VariableInfo.h:80
#define ClassDef(name, id)
Definition: Rtypes.h:254
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:33
TString fExternalDataType
if the variable content is linked to an external pointer
Definition: VariableInfo.h:116
void SetVariance(Double_t v)
Definition: VariableInfo.h:82
void SetMin(Double_t v)
Definition: VariableInfo.h:77
void SetMean(Double_t v)
Definition: VariableInfo.h:79
char GetVarType() const
Definition: VariableInfo.h:69
void SetInternalVarName(const TString &s)
Definition: VariableInfo.h:100
SVector< double, 2 > v
Definition: Dict.h:5
const TString & GetUnit() const
Definition: VariableInfo.h:68
void ReadFromXML(void *varnode)
read VariableInfo from stream
VariableInfo()
default constructor
void SetMax(Double_t v)
Definition: VariableInfo.h:78
double Double_t
Definition: RtypesCore.h:55
Double_t GetMean() const
Definition: VariableInfo.h:73
void WriteToStream(std::ostream &o) const
write VariableInfo to stream
void SetExpression(const TString &s)
Definition: VariableInfo.h:97
void * GetExternalLink() const
Definition: VariableInfo.h:89
char Char_t
Definition: RtypesCore.h:29
Abstract ClassifierFactory template that handles arbitrary types.
void ReadFromStream(std::istream &istr)
void AddToXML(void *varnode)
write class to XML
void SetVarType(char c)
Definition: VariableInfo.h:101
const TString & GetLabel() const
Definition: VariableInfo.h:67
const Bool_t kTRUE
Definition: Rtypes.h:91
void SetExternalLink(void *p)
Definition: VariableInfo.h:81