Logo ROOT  
Reference Guide
DataSetInfo.h
Go to the documentation of this file.
1 // // @(#)root/tmva $Id$
2 // Author: Andreas Hoecker, Peter Speckmayer, Joerg Stelzer, Helge Voss
3 
4 /**********************************************************************************
5  * Project: TMVA - a Root-integrated toolkit for multivariate data analysis *
6  * Package: TMVA *
7  * Class : DataSetInfo *
8  * Web : http://tmva.sourceforge.net *
9  * *
10  * Description: *
11  * Contains all the data information *
12  * *
13  * Authors (alphabetical): *
14  * Peter Speckmayer <speckmay@mail.cern.ch> - CERN, Switzerland *
15  * Joerg Stelzer <Joerg.Stelzer@cern.ch> - DESY, Germany *
16  * *
17  * Copyright (c) 2008-2011: *
18  * CERN, Switzerland *
19  * MPI-K Heidelberg, Germany *
20  * DESY Hamburg, Germany *
21  * *
22  * Redistribution and use in source and binary forms, with or without *
23  * modification, are permitted according to the terms listed in LICENSE *
24  * (http://tmva.sourceforge.net/LICENSE) *
25  **********************************************************************************/
26 
27 #ifndef ROOT_TMVA_DataSetInfo
28 #define ROOT_TMVA_DataSetInfo
29 
30 //////////////////////////////////////////////////////////////////////////
31 // //
32 // DataSetInfo //
33 // //
34 // Class that contains all the data information //
35 // //
36 //////////////////////////////////////////////////////////////////////////
37 
38 #include <iosfwd>
39 #include <vector>
40 #include <map>
41 
42 #include "TObject.h"
43 #include "TString.h"
44 #include "TTree.h"
45 #include "TCut.h"
46 #include "TMatrixDfwd.h"
47 
48 #include "TMVA/Types.h"
49 #include "TMVA/VariableInfo.h"
50 #include "TMVA/ClassInfo.h"
51 #include "TMVA/Event.h"
52 
53 class TH2;
54 
55 namespace TMVA {
56 
57  class DataSet;
58  class VariableTransformBase;
59  class MsgLogger;
60  class DataSetManager;
61 
62  class DataSetInfo : public TObject {
63 
64  public:
65 
66  enum { kIsArrayVariable = BIT(15) };
67 
68  DataSetInfo(const TString& name = "Default");
69  virtual ~DataSetInfo();
70 
71  virtual const char* GetName() const { return fName.Data(); }
72 
73  // the data set
74  void ClearDataSet() const;
75  DataSet* GetDataSet() const;
76 
77  // ---
78  // the variable data
79  // ---
80  VariableInfo& AddVariable( const TString& expression, const TString& title = "", const TString& unit = "",
81  Double_t min = 0, Double_t max = 0, char varType='F',
82  Bool_t normalized = kTRUE, void* external = 0 );
83  VariableInfo& AddVariable( const VariableInfo& varInfo );
84 
85  // NEW: add an array of variables (e.g. for image data)
86  void AddVariablesArray(const TString &expression, Int_t size, const TString &title = "", const TString &unit = "",
87  Double_t min = 0, Double_t max = 0, char type = 'F', Bool_t normalized = kTRUE,
88  void *external = 0 );
89 
90  VariableInfo& AddTarget ( const TString& expression, const TString& title, const TString& unit,
91  Double_t min, Double_t max, Bool_t normalized = kTRUE, void* external = 0 );
92  VariableInfo& AddTarget ( const VariableInfo& varInfo );
93 
94  VariableInfo& AddSpectator ( const TString& expression, const TString& title, const TString& unit,
95  Double_t min, Double_t max, char type = 'F', Bool_t normalized = kTRUE, void* external = 0 );
96  VariableInfo& AddSpectator ( const VariableInfo& varInfo );
97 
98  ClassInfo* AddClass ( const TString& className );
99 
100  // accessors
101 
102  // general
103  std::vector<VariableInfo>& GetVariableInfos() { return fVariables; }
104  const std::vector<VariableInfo>& GetVariableInfos() const { return fVariables; }
106  const VariableInfo& GetVariableInfo( Int_t i ) const { return fVariables.at(i); }
107 
108  Int_t GetVarArraySize(const TString &expression) const {
109  auto element = fVarArrays.find(expression);
110  return (element != fVarArrays.end()) ? element->second : -1;
111  }
113 
114  std::vector<VariableInfo> &GetTargetInfos()
115  {
116  return fTargets;
117  }
118  const std::vector<VariableInfo> &GetTargetInfos() const { return fTargets; }
119  VariableInfo &GetTargetInfo(Int_t i) { return fTargets.at(i); }
120  const VariableInfo &GetTargetInfo(Int_t i) const { return fTargets.at(i); }
121 
122  std::vector<VariableInfo> &GetSpectatorInfos() { return fSpectators; }
123  const std::vector<VariableInfo> &GetSpectatorInfos() const { return fSpectators; }
125  const VariableInfo &GetSpectatorInfo(Int_t i) const { return fSpectators.at(i); }
126 
127  UInt_t GetNVariables() const { return fVariables.size(); }
128  UInt_t GetNTargets() const { return fTargets.size(); }
129  UInt_t GetNSpectators(bool all = kTRUE) const;
130 
131  const TString &GetNormalization() const { return fNormalization; }
132  void SetNormalization(const TString &norm) { fNormalization = norm; }
133 
134  void SetTrainingSumSignalWeights(Double_t trainingSumSignalWeights)
135  {
136  fTrainingSumSignalWeights = trainingSumSignalWeights;}
137  void SetTrainingSumBackgrWeights(Double_t trainingSumBackgrWeights){fTrainingSumBackgrWeights = trainingSumBackgrWeights;}
138  void SetTestingSumSignalWeights (Double_t testingSumSignalWeights ){fTestingSumSignalWeights = testingSumSignalWeights ;}
139  void SetTestingSumBackgrWeights (Double_t testingSumBackgrWeights ){fTestingSumBackgrWeights = testingSumBackgrWeights ;}
140 
145 
146 
147 
148  // classification information
152  ClassInfo* GetClassInfo( Int_t clNum ) const;
153  ClassInfo* GetClassInfo( const TString& name ) const;
154  void PrintClasses() const;
155  UInt_t GetNClasses() const { return fClasses.size(); }
156  Bool_t IsSignal( const Event* ev ) const;
157  std::vector<Float_t>* GetTargetsForMulticlass( const Event* ev );
159 
160  // by variable
161  Int_t FindVarIndex( const TString& ) const;
162 
163  // weights
164  const TString GetWeightExpression(Int_t i) const { return GetClassInfo(i)->GetWeight(); }
165  void SetWeightExpression( const TString& exp, const TString& className = "" );
166 
167  // cuts
168  const TCut& GetCut (Int_t i) const { return GetClassInfo(i)->GetCut(); }
169  const TCut& GetCut ( const TString& className ) const { return GetClassInfo(className)->GetCut(); }
170  void SetCut ( const TCut& cut, const TString& className );
171  void AddCut ( const TCut& cut, const TString& className );
172  Bool_t HasCuts() const;
173 
174  std::vector<TString> GetListOfVariables() const;
175 
176  // correlation matrix
177  const TMatrixD* CorrelationMatrix ( const TString& className ) const;
178  void SetCorrelationMatrix ( const TString& className, TMatrixD* matrix );
179  void PrintCorrelationMatrix( const TString& className );
181  const TString& hName,
182  const TString& hTitle ) const;
183 
184  // options
186  const TString& GetSplitOptions() const { return fSplitOptions; }
187 
188  // root dir
190  TDirectory* GetRootDir() const { return fOwnRootDir; }
191 
192  void SetMsgType( EMsgType t ) const;
193 
195  private:
196 
198  void SetDataSetManager( DataSetManager* dsm ) { fDataSetManager = dsm; } // DSMTEST
199  friend class DataSetManager; // DSMTEST (datasetmanager test)
200 
201  DataSetInfo( const DataSetInfo& ) : TObject() {}
202 
203  void PrintCorrelationMatrix( TTree* theTree );
204 
205  TString fName; // name of the dataset info object
206 
207  mutable DataSet* fDataSet; // dataset, owned by this datasetinfo object
208  mutable Bool_t fNeedsRebuilding; // flag if rebuilding of dataset is needed (after change of cuts, vars, etc.)
209 
210  // expressions/formulas
211  std::vector<VariableInfo> fVariables; // list of variable expressions/internal names
212  std::vector<VariableInfo> fTargets; // list of targets expressions/internal names
213  std::vector<VariableInfo> fSpectators; // list of spectators expressions/internal names
214 
215  // variable arrays
216  std::map<TString, int> fVarArrays;
217 
218  // the classes
219  mutable std::vector<ClassInfo*> fClasses; // name and other infos of the classes
220 
223 
228 
229 
230 
231  TDirectory* fOwnRootDir; // ROOT output dir
232  Bool_t fVerbose; // Verbosity
233 
234  UInt_t fSignalClass; // index of the class with the name signal
235 
236  std::vector<Float_t>* fTargetsForMulticlass;//-> all targets 0 except the one with index==classNumber
237 
238  mutable MsgLogger* fLogger; //! message logger
239  MsgLogger& Log() const { return *fLogger; }
240 
241  public:
242 
244  };
245 }
246 
247 #endif
TMVA::DataSetInfo::SetTestingSumSignalWeights
void SetTestingSumSignalWeights(Double_t testingSumSignalWeights)
Definition: DataSetInfo.h:138
TMatrixDfwd.h
TMVA::DataSetInfo::Log
MsgLogger & Log() const
message logger
Definition: DataSetInfo.h:239
m
auto * m
Definition: textangle.C:8
TMVA::DataSetInfo::GetTargetInfo
const VariableInfo & GetTargetInfo(Int_t i) const
Definition: DataSetInfo.h:120
TMVA::DataSetInfo::fClasses
std::vector< ClassInfo * > fClasses
Definition: DataSetInfo.h:219
TMVA::DataSetInfo::ClearDataSet
void ClearDataSet() const
Definition: DataSetInfo.cxx:98
TCut
Definition: TCut.h:25
TMVA::DataSetInfo::SetTrainingSumBackgrWeights
void SetTrainingSumBackgrWeights(Double_t trainingSumBackgrWeights)
Definition: DataSetInfo.h:137
TMVA::DataSetInfo::FindVarIndex
Int_t FindVarIndex(const TString &) const
find variable by name
Definition: DataSetInfo.cxx:315
kTRUE
const Bool_t kTRUE
Definition: RtypesCore.h:91
TMVA::DataSetInfo::fVerbose
Bool_t fVerbose
Definition: DataSetInfo.h:232
TObject::TestBit
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
Definition: TObject.h:172
TMVA::DataSetInfo::fVariables
std::vector< VariableInfo > fVariables
Definition: DataSetInfo.h:211
TMVA::DataSetInfo::AddVariablesArray
void AddVariablesArray(const TString &expression, Int_t size, const TString &title="", const TString &unit="", Double_t min=0, Double_t max=0, char type='F', Bool_t normalized=kTRUE, void *external=0)
add an array of variables identified by an expression corresponding to an array entry in the tree
Definition: DataSetInfo.cxx:235
TMVA::DataSetInfo::IsSignal
Bool_t IsSignal(const Event *ev) const
Definition: DataSetInfo.cxx:167
TMVA::DataSetInfo::AddSpectator
VariableInfo & AddSpectator(const TString &expression, const TString &title, const TString &unit, Double_t min, Double_t max, char type='F', Bool_t normalized=kTRUE, void *external=0)
add a spectator (can be a complex expression) to the set of spectator variables used in the MV analys...
Definition: DataSetInfo.cxx:289
TMVA::DataSetInfo::SetCut
void SetCut(const TCut &cut, const TString &className)
set the cut for the classes
Definition: DataSetInfo.cxx:360
TMVA::ClassInfo
Definition: ClassInfo.h:72
TMVA::DataSetInfo::GetTrainingSumBackgrWeights
Double_t GetTrainingSumBackgrWeights()
Definition: DataSetInfo.cxx:552
TMVA::DataSetInfo::SetNormalization
void SetNormalization(const TString &norm)
Definition: DataSetInfo.h:132
TString::Data
const char * Data() const
Definition: TString.h:369
TMVA::DataSetInfo::GetDataSetManager
DataSetManager * GetDataSetManager()
Definition: DataSetInfo.h:194
TMVA::DataSetInfo::GetDataSet
DataSet * GetDataSet() const
returns data set
Definition: DataSetInfo.cxx:480
TMVA::DataSetInfo::GetTargetNameMaxLength
Int_t GetTargetNameMaxLength() const
Definition: DataSetInfo.cxx:533
TMVA::DataSetInfo::fName
TString fName
Definition: DataSetInfo.h:205
TMVA::DataSetInfo::GetTargetsForMulticlass
std::vector< Float_t > * GetTargetsForMulticlass(const Event *ev)
Definition: DataSetInfo.cxx:174
TTree
Definition: TTree.h:79
TMVA::DataSetInfo::GetNVariables
UInt_t GetNVariables() const
Definition: DataSetInfo.h:127
exp
double exp(double)
TMVA::DataSetInfo::fTargetsForMulticlass
std::vector< Float_t > * fTargetsForMulticlass
Definition: DataSetInfo.h:236
TMVA::DataSetInfo::GetNSpectators
UInt_t GetNSpectators(bool all=kTRUE) const
Definition: DataSetInfo.cxx:496
VariableInfo.h
TMVA::DataSetInfo::HasCuts
Bool_t HasCuts() const
Definition: DataSetInfo.cxx:186
TMVA::DataSetInfo::GetSpectatorInfos
std::vector< VariableInfo > & GetSpectatorInfos()
Definition: DataSetInfo.h:122
TMVA::DataSetInfo::GetTrainingSumSignalWeights
Double_t GetTrainingSumSignalWeights()
Definition: DataSetInfo.cxx:545
TMVA::DataSetInfo::SetSplitOptions
void SetSplitOptions(const TString &so)
Definition: DataSetInfo.h:185
TMVA::DataSetInfo::fTrainingSumBackgrWeights
Double_t fTrainingSumBackgrWeights
Definition: DataSetInfo.h:225
TMVA::DataSetInfo::fNeedsRebuilding
Bool_t fNeedsRebuilding
Definition: DataSetInfo.h:208
TTree.h
TMVA::DataSetInfo::GetVariableInfos
const std::vector< VariableInfo > & GetVariableInfos() const
Definition: DataSetInfo.h:104
TMVA::DataSetInfo::GetSpectatorInfos
const std::vector< VariableInfo > & GetSpectatorInfos() const
Definition: DataSetInfo.h:123
TString
Definition: TString.h:136
TMVA::DataSetInfo::fLogger
MsgLogger * fLogger
Definition: DataSetInfo.h:238
TMVA::DataSetInfo::GetVarArraySize
Int_t GetVarArraySize(const TString &expression) const
Definition: DataSetInfo.h:108
TMatrixT
Definition: TMatrixDfwd.h:22
Bool_t
bool Bool_t
Definition: RtypesCore.h:63
TMVA::DataSetInfo::GetVariableInfo
const VariableInfo & GetVariableInfo(Int_t i) const
Definition: DataSetInfo.h:106
TMVA::DataSetInfo::CorrelationMatrix
const TMatrixD * CorrelationMatrix(const TString &className) const
Definition: DataSetInfo.cxx:197
TString.h
TMVA::DataSetInfo::GetVariableInfo
VariableInfo & GetVariableInfo(Int_t i)
Definition: DataSetInfo.h:105
bool
TMVA::DataSetInfo::fTrainingSumSignalWeights
Double_t fTrainingSumSignalWeights
Definition: DataSetInfo.h:224
TMVA::DataSetInfo::fTargets
std::vector< VariableInfo > fTargets
Definition: DataSetInfo.h:212
TMVA::DataSetInfo::SetWeightExpression
void SetWeightExpression(const TString &exp, const TString &className="")
set the weight expressions for the classes if class name is specified, set only for this class if cla...
Definition: DataSetInfo.cxx:333
TMVA::DataSetInfo::PrintCorrelationMatrix
void PrintCorrelationMatrix(const TString &className)
calculates the correlation matrices for signal and background, prints them to standard output,...
Definition: DataSetInfo.cxx:406
TMVA::DataSetInfo::GetNClasses
UInt_t GetNClasses() const
Definition: DataSetInfo.h:155
TMVA::DataSetInfo::fTestingSumSignalWeights
Double_t fTestingSumSignalWeights
Definition: DataSetInfo.h:226
TMVA::DataSetInfo
Definition: DataSetInfo.h:62
TMVA::DataSetInfo::GetCut
const TCut & GetCut(Int_t i) const
Definition: DataSetInfo.h:168
TMVA::DataSetInfo::GetTargetInfos
std::vector< VariableInfo > & GetTargetInfos()
Definition: DataSetInfo.h:114
TMVA::DataSetInfo::AddCut
void AddCut(const TCut &cut, const TString &className)
set the cut for the classes
Definition: DataSetInfo.cxx:376
TMVA::DataSetInfo::IsVariableFromArray
Bool_t IsVariableFromArray(Int_t i) const
Definition: DataSetInfo.h:112
TMVA::DataSetInfo::kIsArrayVariable
@ kIsArrayVariable
Definition: DataSetInfo.h:66
TMVA::DataSetInfo::GetNormalization
const TString & GetNormalization() const
Definition: DataSetInfo.h:131
TMVA::DataSetInfo::fOwnRootDir
TDirectory * fOwnRootDir
Definition: DataSetInfo.h:231
TMVA::DataSetInfo::GetSpectatorInfo
const VariableInfo & GetSpectatorInfo(Int_t i) const
Definition: DataSetInfo.h:125
TMVA::DataSetInfo::GetSpectatorInfo
VariableInfo & GetSpectatorInfo(Int_t i)
Definition: DataSetInfo.h:124
TMVA::DataSetInfo::GetVariableNameMaxLength
Int_t GetVariableNameMaxLength() const
Definition: DataSetInfo.cxx:521
TMVA::DataSetInfo::GetWeightExpression
const TString GetWeightExpression(Int_t i) const
Definition: DataSetInfo.h:164
TMVA::DataSetInfo::GetClassInfo
ClassInfo * GetClassInfo(Int_t clNum) const
Definition: DataSetInfo.cxx:146
TMVA::VariableInfo
Definition: VariableInfo.h:70
TMVA::DataSetInfo::fDataSet
DataSet * fDataSet
Definition: DataSetInfo.h:207
TMVA::DataSetInfo::GetTestingSumBackgrWeights
Double_t GetTestingSumBackgrWeights()
Definition: DataSetInfo.cxx:566
TMVA::DataSet
Definition: DataSet.h:81
TMVA::DataSetInfo::GetTargetInfos
const std::vector< VariableInfo > & GetTargetInfos() const
Definition: DataSetInfo.h:118
TMVA::DataSetInfo::SetTrainingSumSignalWeights
void SetTrainingSumSignalWeights(Double_t trainingSumSignalWeights)
Definition: DataSetInfo.h:134
Event.h
TMVA::DataSetInfo::~DataSetInfo
virtual ~DataSetInfo()
destructor
Definition: DataSetInfo.cxx:83
TH2
Definition: TH2.h:30
TMVA::DataSetInfo::fSignalClass
UInt_t fSignalClass
Definition: DataSetInfo.h:234
TCut.h
BIT
#define BIT(n)
Definition: Rtypes.h:85
UInt_t
unsigned int UInt_t
Definition: RtypesCore.h:46
TMVA::DataSetInfo::SetMsgType
void SetMsgType(EMsgType t) const
Definition: DataSetInfo.cxx:106
TMVA::DataSetInfo::DataSetInfo
DataSetInfo(const DataSetInfo &)
Definition: DataSetInfo.h:201
TMVA::DataSetInfo::fNormalization
TString fNormalization
Definition: DataSetInfo.h:221
TMVA::DataSetInfo::SetDataSetManager
void SetDataSetManager(DataSetManager *dsm)
Definition: DataSetInfo.h:198
TMVA::DataSetInfo::GetRootDir
TDirectory * GetRootDir() const
Definition: DataSetInfo.h:190
Types.h
TMVA::DataSetInfo::GetSplitOptions
const TString & GetSplitOptions() const
Definition: DataSetInfo.h:186
TMVA::DataSetInfo::DataSetInfo
DataSetInfo(const TString &name="Default")
constructor
Definition: DataSetInfo.cxx:56
unsigned int
TMVA::ClassInfo::GetCut
const TCut & GetCut() const
Definition: ClassInfo.h:87
TMVA::DataSetManager
Definition: DataSetManager.h:73
TMVA::DataSetInfo::AddVariable
VariableInfo & AddVariable(const TString &expression, const TString &title="", const TString &unit="", Double_t min=0, Double_t max=0, char varType='F', Bool_t normalized=kTRUE, void *external=0)
add a variable (can be a complex expression) to the set of variables used in the MV analysis
Definition: DataSetInfo.cxx:207
TMVA::DataSetInfo::SetCorrelationMatrix
void SetCorrelationMatrix(const TString &className, TMatrixD *matrix)
Definition: DataSetInfo.cxx:352
TMVA::DataSetInfo::GetNTargets
UInt_t GetNTargets() const
Definition: DataSetInfo.h:128
Double_t
double Double_t
Definition: RtypesCore.h:59
TMVA::DataSetInfo::SetRootDir
void SetRootDir(TDirectory *d)
Definition: DataSetInfo.h:189
TMVA::DataSetInfo::fTestingSumBackgrWeights
Double_t fTestingSumBackgrWeights
Definition: DataSetInfo.h:227
TMVA::DataSetInfo::GetTestingSumSignalWeights
Double_t GetTestingSumSignalWeights()
Definition: DataSetInfo.cxx:559
TMVA::MsgLogger
Definition: MsgLogger.h:83
TMVA::DataSetInfo::GetVariableInfos
std::vector< VariableInfo > & GetVariableInfos()
Definition: DataSetInfo.h:103
TMVA::DataSetInfo::CreateCorrelationMatrixHist
TH2 * CreateCorrelationMatrixHist(const TMatrixD *m, const TString &hName, const TString &hTitle) const
Definition: DataSetInfo.cxx:416
TObject.h
TMVA::DataSetInfo::AddClass
ClassInfo * AddClass(const TString &className)
Definition: DataSetInfo.cxx:113
TMVA::DataSetInfo::GetName
virtual const char * GetName() const
Returns name of object.
Definition: DataSetInfo.h:71
TMVA::DataSetInfo::fVarArrays
std::map< TString, int > fVarArrays
Definition: DataSetInfo.h:216
TObject
Definition: TObject.h:37
TMVA::Event
Definition: Event.h:51
ClassDef
#define ClassDef(name, id)
Definition: Rtypes.h:325
TMVA::ClassInfo::GetWeight
const TString & GetWeight() const
Definition: ClassInfo.h:86
TMVA::DataSetInfo::PrintClasses
void PrintClasses() const
Definition: DataSetInfo.cxx:158
TMVA::DataSetInfo::SetTestingSumBackgrWeights
void SetTestingSumBackgrWeights(Double_t testingSumBackgrWeights)
Definition: DataSetInfo.h:139
name
char name[80]
Definition: TGX11.cxx:110
TMVA::DataSetInfo::fDataSetManager
TMVA::DataSetManager * fDataSetManager
Definition: DataSetInfo.h:197
d
#define d(i)
Definition: RSha256.hxx:120
TDirectory
Definition: TDirectory.h:40
TMVA::DataSetInfo::GetSignalClassIndex
UInt_t GetSignalClassIndex()
Definition: DataSetInfo.h:158
TMVA::DataSetInfo::fSpectators
std::vector< VariableInfo > fSpectators
Definition: DataSetInfo.h:213
TMVA::DataSetInfo::fSplitOptions
TString fSplitOptions
Definition: DataSetInfo.h:222
type
int type
Definition: TGX11.cxx:121
TMVA::DataSetInfo::AddTarget
VariableInfo & AddTarget(const TString &expression, const TString &title, const TString &unit, Double_t min, Double_t max, Bool_t normalized=kTRUE, void *external=0)
add a variable (can be a complex expression) to the set of variables used in the MV analysis
Definition: DataSetInfo.cxx:259
TMVA::DataSetInfo::GetClassNameMaxLength
Int_t GetClassNameMaxLength() const
Definition: DataSetInfo.cxx:509
TMVA::DataSetInfo::GetTargetInfo
VariableInfo & GetTargetInfo(Int_t i)
Definition: DataSetInfo.h:119
ClassInfo.h
TMVA::DataSetInfo::GetCut
const TCut & GetCut(const TString &className) const
Definition: DataSetInfo.h:169
TMVA::DataSetInfo::GetListOfVariables
std::vector< TString > GetListOfVariables() const
returns list of variables
Definition: DataSetInfo.cxx:393
TMVA
create variable transformations
Definition: GeneticMinimizer.h:22
int