70 TString trafoDefinition(trafoDefinitionIn);
71 if (trafoDefinition ==
"None")
return;
75 TString trafoDefinitionCheck(trafoDefinitionIn);
76 int npartial = 0, ntrafo = 0;
77 for (
Int_t pos = 0, siz = trafoDefinition.
Sizeof(); pos < siz; ++pos) {
78 TString ch = trafoDefinition(pos,1);
79 if ( ch ==
"(" ) npartial++;
80 if ( ch ==
"+" || ch ==
",") ntrafo++;
84 <<
"The use of multiple partial variable transformations during the "
85 "application phase can be properly invoked via the \"Reader\", but "
86 "it is not yet implemented in \"MakeClass\", the creation mechanism "
87 "for standalone C++ application classes. The standalone C++ class "
88 "produced by this training job is thus INCOMPLETE AND MUST NOT BE USED! "
89 "The transformation in question is: " << trafoDefinitionIn <<
Endl;
98 Int_t parenthesisCount = 0;
99 for (
Int_t position = 0, size = trafoDefinition.
Sizeof(); position < size; ++position) {
100 TString ch = trafoDefinition(position,1);
101 if (ch ==
"(") ++parenthesisCount;
102 else if (ch ==
")") --parenthesisCount;
103 else if (ch ==
"," && parenthesisCount == 0) trafoDefinition.
Replace(position,1,
'+');
109 TString tdef = os->GetString();
115 Ssiz_t parLen = tdef.
Index(
")", parStart )-parStart+1;
118 tdef.
Remove(parStart,parLen);
126 log << kFATAL <<
Form(
"Dataset[%s] : ",dataInfo.
GetName())<<
"Incorrect transformation string provided." <<
Endl;
133 if (trCls !=
"AllClasses") {
136 log << kFATAL <<
Form(
"Dataset[%s] : ",dataInfo.
GetName())<<
"Class " << trCls <<
" not known for variable transformation "
137 << trName <<
", please check." <<
Endl;
144 if (trName ==
"I" || trName ==
"Ident" || trName ==
"Identity") {
148 else if (trName ==
"D" || trName ==
"Deco" || trName ==
"Decorrelate") {
152 else if (trName ==
"P" || trName ==
"PCA") {
156 else if (trName ==
"U" || trName ==
"Uniform") {
160 else if (trName ==
"G" || trName ==
"Gauss") {
164 else if (trName ==
"N" || trName ==
"Norm" || trName ==
"Normalise" || trName ==
"Normalize") {
170 <<
"<ProcessOptions> Variable transform '"
171 << trName <<
"' unknown." <<
Endl;
174 if (transformation) {
178 <<
"Create Transformation \"" << trName <<
"\" with reference class "
182 <<
"Create Transformation \"" << trName <<
"\" with events from all classes."
char * Form(const char *fmt,...)
virtual Int_t GetEntries() const
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
virtual TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
Class that contains all the information of a class.
Class that contains all the data information.
virtual const char * GetName() const
Returns name of object.
ClassInfo * GetClassInfo(Int_t clNum) const
ostringstream derivative to redirect and format output
virtual const char * GetName() const
Returns name of object.
Collectable string class.
TString & Replace(Ssiz_t pos, Ssiz_t n, const char *s)
TString & Remove(Ssiz_t pos)
virtual Int_t Sizeof() const
Returns size string will occupy on I/O buffer.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
create variable transformations
void CreateVariableTransforms(const TString &trafoDefinition, TMVA::DataSetInfo &dataInfo, TMVA::TransformationHandler &transformationHandler, TMVA::MsgLogger &log)
void variables(TString dataset, TString fin="TMVA.root", TString dirName="InputVariables_Id", TString title="TMVA Input Variables", Bool_t isRegression=kFALSE, Bool_t useTMVAStyle=kTRUE)
MsgLogger & Endl(MsgLogger &ml)