#include <iostream>
#include <iomanip>
#include <stdexcept>
#ifndef ROOT_TMVA_MsgLogger
#include "TMVA/MsgLogger.h"
#endif
#ifndef ROOT_TMVA_VariableRearrangeTransform
#include "TMVA/VariableRearrangeTransform.h"
#endif
#ifndef ROOT_TMVA_Tools
#include "TMVA/Tools.h"
#endif
#ifndef ROOT_TMVA_DataSet
#include "TMVA/DataSet.h"
#endif
ClassImp(TMVA::VariableRearrangeTransform)
TMVA::VariableRearrangeTransform::VariableRearrangeTransform( DataSetInfo& dsi )
: VariableTransformBase( dsi, Types::kRearranged, "Rearrange" )
{
}
TMVA::VariableRearrangeTransform::~VariableRearrangeTransform() {
}
void TMVA::VariableRearrangeTransform::Initialize()
{
}
Bool_t TMVA::VariableRearrangeTransform::PrepareTransformation (const std::vector<Event*>& )
{
if (!IsEnabled() || IsCreated()) return kTRUE;
UInt_t nvars = 0, ntgts = 0, nspcts = 0;
CountVariableTypes( nvars, ntgts, nspcts );
if (ntgts>0) Log() << kFATAL << "Targets used in Rearrange-transformation." << Endl;
SetCreated( kTRUE );
return kTRUE;
}
const TMVA::Event* TMVA::VariableRearrangeTransform::Transform( const TMVA::Event* const ev, Int_t ) const
{
if (!IsEnabled()) return ev;
if (!IsCreated()) Log() << kFATAL << "Transformation not yet created" << Endl;
if (fTransformedEvent==0) fTransformedEvent = new Event();
FloatVector input;
std::vector<Char_t> mask;
GetInput( ev, input, mask );
SetOutput( fTransformedEvent, input, mask, ev );
return fTransformedEvent;
}
const TMVA::Event* TMVA::VariableRearrangeTransform::InverseTransform( const TMVA::Event* const ev, Int_t ) const
{
if (!IsEnabled()) return ev;
if (!IsCreated()) Log() << kFATAL << "Transformation not yet created" << Endl;
if (fBackTransformedEvent==0) fBackTransformedEvent = new Event( *ev );
FloatVector input;
std::vector<Char_t> mask;
GetInput( ev, input, mask, kTRUE );
SetOutput( fBackTransformedEvent, input, mask, ev, kTRUE );
return fBackTransformedEvent;
}
std::vector<TString>* TMVA::VariableRearrangeTransform::GetTransformationStrings( Int_t ) const
{
const UInt_t size = fGet.size();
std::vector<TString>* strVec = new std::vector<TString>(size);
return strVec;
}
void TMVA::VariableRearrangeTransform::AttachXMLTo(void* parent)
{
void* trfxml = gTools().AddChild(parent, "Transform");
gTools().AddAttr(trfxml, "Name", "Rearrange");
VariableTransformBase::AttachXMLTo( trfxml );
}
void TMVA::VariableRearrangeTransform::ReadFromXML( void* trfnode )
{
void* inpnode = NULL;
inpnode = gTools().GetChild(trfnode, "Selection");
if(inpnode == NULL)
Log() << kFATAL << "Unknown weight file format for transformations. (tried to read in 'rearrange' transform)" << Endl;
VariableTransformBase::ReadFromXML( inpnode );
SetCreated();
}
void TMVA::VariableRearrangeTransform::PrintTransformation( std::ostream& )
{
}
void TMVA::VariableRearrangeTransform::MakeFunction( std::ostream& , const TString& ,
Int_t , UInt_t , Int_t )
{
}
VariableRearrangeTransform.cxx:1 VariableRearrangeTransform.cxx:2 VariableRearrangeTransform.cxx:3 VariableRearrangeTransform.cxx:4 VariableRearrangeTransform.cxx:5 VariableRearrangeTransform.cxx:6 VariableRearrangeTransform.cxx:7 VariableRearrangeTransform.cxx:8 VariableRearrangeTransform.cxx:9 VariableRearrangeTransform.cxx:10 VariableRearrangeTransform.cxx:11 VariableRearrangeTransform.cxx:12 VariableRearrangeTransform.cxx:13 VariableRearrangeTransform.cxx:14 VariableRearrangeTransform.cxx:15 VariableRearrangeTransform.cxx:16 VariableRearrangeTransform.cxx:17 VariableRearrangeTransform.cxx:18 VariableRearrangeTransform.cxx:19 VariableRearrangeTransform.cxx:20 VariableRearrangeTransform.cxx:21 VariableRearrangeTransform.cxx:22 VariableRearrangeTransform.cxx:23 VariableRearrangeTransform.cxx:24 VariableRearrangeTransform.cxx:25 VariableRearrangeTransform.cxx:26 VariableRearrangeTransform.cxx:27 VariableRearrangeTransform.cxx:28 VariableRearrangeTransform.cxx:29 VariableRearrangeTransform.cxx:30 VariableRearrangeTransform.cxx:31 VariableRearrangeTransform.cxx:32 VariableRearrangeTransform.cxx:33 VariableRearrangeTransform.cxx:34 VariableRearrangeTransform.cxx:35 VariableRearrangeTransform.cxx:36 VariableRearrangeTransform.cxx:37 VariableRearrangeTransform.cxx:38 VariableRearrangeTransform.cxx:39 VariableRearrangeTransform.cxx:40 VariableRearrangeTransform.cxx:41 VariableRearrangeTransform.cxx:42 VariableRearrangeTransform.cxx:43 VariableRearrangeTransform.cxx:44 VariableRearrangeTransform.cxx:45 VariableRearrangeTransform.cxx:46 VariableRearrangeTransform.cxx:47 VariableRearrangeTransform.cxx:48 VariableRearrangeTransform.cxx:49 VariableRearrangeTransform.cxx:50 VariableRearrangeTransform.cxx:51 VariableRearrangeTransform.cxx:52 VariableRearrangeTransform.cxx:53 VariableRearrangeTransform.cxx:54 VariableRearrangeTransform.cxx:55 VariableRearrangeTransform.cxx:56 VariableRearrangeTransform.cxx:57 VariableRearrangeTransform.cxx:58 VariableRearrangeTransform.cxx:59 VariableRearrangeTransform.cxx:60 VariableRearrangeTransform.cxx:61 VariableRearrangeTransform.cxx:62 VariableRearrangeTransform.cxx:63 VariableRearrangeTransform.cxx:64 VariableRearrangeTransform.cxx:65 VariableRearrangeTransform.cxx:66 VariableRearrangeTransform.cxx:67 VariableRearrangeTransform.cxx:68 VariableRearrangeTransform.cxx:69 VariableRearrangeTransform.cxx:70 VariableRearrangeTransform.cxx:71 VariableRearrangeTransform.cxx:72 VariableRearrangeTransform.cxx:73 VariableRearrangeTransform.cxx:74 VariableRearrangeTransform.cxx:75 VariableRearrangeTransform.cxx:76 VariableRearrangeTransform.cxx:77 VariableRearrangeTransform.cxx:78 VariableRearrangeTransform.cxx:79 VariableRearrangeTransform.cxx:80 VariableRearrangeTransform.cxx:81 VariableRearrangeTransform.cxx:82 VariableRearrangeTransform.cxx:83 VariableRearrangeTransform.cxx:84 VariableRearrangeTransform.cxx:85 VariableRearrangeTransform.cxx:86 VariableRearrangeTransform.cxx:87 VariableRearrangeTransform.cxx:88 VariableRearrangeTransform.cxx:89 VariableRearrangeTransform.cxx:90 VariableRearrangeTransform.cxx:91 VariableRearrangeTransform.cxx:92 VariableRearrangeTransform.cxx:93 VariableRearrangeTransform.cxx:94 VariableRearrangeTransform.cxx:95 VariableRearrangeTransform.cxx:96 VariableRearrangeTransform.cxx:97 VariableRearrangeTransform.cxx:98 VariableRearrangeTransform.cxx:99 VariableRearrangeTransform.cxx:100 VariableRearrangeTransform.cxx:101 VariableRearrangeTransform.cxx:102 VariableRearrangeTransform.cxx:103 VariableRearrangeTransform.cxx:104 VariableRearrangeTransform.cxx:105 VariableRearrangeTransform.cxx:106 VariableRearrangeTransform.cxx:107 VariableRearrangeTransform.cxx:108 VariableRearrangeTransform.cxx:109 VariableRearrangeTransform.cxx:110 VariableRearrangeTransform.cxx:111 VariableRearrangeTransform.cxx:112 VariableRearrangeTransform.cxx:113 VariableRearrangeTransform.cxx:114 VariableRearrangeTransform.cxx:115 VariableRearrangeTransform.cxx:116 VariableRearrangeTransform.cxx:117 VariableRearrangeTransform.cxx:118 VariableRearrangeTransform.cxx:119 VariableRearrangeTransform.cxx:120 VariableRearrangeTransform.cxx:121 VariableRearrangeTransform.cxx:122 VariableRearrangeTransform.cxx:123 VariableRearrangeTransform.cxx:124 VariableRearrangeTransform.cxx:125 VariableRearrangeTransform.cxx:126 VariableRearrangeTransform.cxx:127 VariableRearrangeTransform.cxx:128 VariableRearrangeTransform.cxx:129 VariableRearrangeTransform.cxx:130 VariableRearrangeTransform.cxx:131 VariableRearrangeTransform.cxx:132 VariableRearrangeTransform.cxx:133 VariableRearrangeTransform.cxx:134 VariableRearrangeTransform.cxx:135 VariableRearrangeTransform.cxx:136 VariableRearrangeTransform.cxx:137 VariableRearrangeTransform.cxx:138 VariableRearrangeTransform.cxx:139 VariableRearrangeTransform.cxx:140 VariableRearrangeTransform.cxx:141 VariableRearrangeTransform.cxx:142 VariableRearrangeTransform.cxx:143 VariableRearrangeTransform.cxx:144 VariableRearrangeTransform.cxx:145 VariableRearrangeTransform.cxx:146 VariableRearrangeTransform.cxx:147 VariableRearrangeTransform.cxx:148 VariableRearrangeTransform.cxx:149 VariableRearrangeTransform.cxx:150 VariableRearrangeTransform.cxx:151 VariableRearrangeTransform.cxx:152 VariableRearrangeTransform.cxx:153 VariableRearrangeTransform.cxx:154 VariableRearrangeTransform.cxx:155 VariableRearrangeTransform.cxx:156 VariableRearrangeTransform.cxx:157 VariableRearrangeTransform.cxx:158 VariableRearrangeTransform.cxx:159 VariableRearrangeTransform.cxx:160 VariableRearrangeTransform.cxx:161 VariableRearrangeTransform.cxx:162