42 ClassImp(TMVA::VariableRearrangeTransform);
47 TMVA::VariableRearrangeTransform::VariableRearrangeTransform( DataSetInfo& dsi )
48 : VariableTransformBase( dsi, Types::kRearranged,
"Rearrange" )
54 TMVA::VariableRearrangeTransform::~VariableRearrangeTransform() {
61 void TMVA::VariableRearrangeTransform::Initialize()
68 Bool_t TMVA::VariableRearrangeTransform::PrepareTransformation (
const std::vector<Event*>& )
70 if (!IsEnabled() || IsCreated())
return kTRUE;
72 UInt_t nvars = 0, ntgts = 0, nspcts = 0;
73 CountVariableTypes( nvars, ntgts, nspcts );
74 if (ntgts>0) Log() << kFATAL <<
"Targets used in Rearrange-transformation." << Endl;
82 const TMVA::Event* TMVA::VariableRearrangeTransform::Transform(
const TMVA::Event*
const ev, Int_t )
const
84 if (!IsEnabled())
return ev;
87 if (!IsCreated()) Log() << kFATAL <<
"Transformation not yet created" << Endl;
89 if (fTransformedEvent==0) fTransformedEvent =
new Event();
92 std::vector<Char_t> mask;
93 GetInput( ev, input, mask );
94 SetOutput( fTransformedEvent, input, mask, ev );
96 return fTransformedEvent;
101 const TMVA::Event* TMVA::VariableRearrangeTransform::InverseTransform(
const TMVA::Event*
const ev, Int_t )
const
103 if (!IsEnabled())
return ev;
106 if (!IsCreated()) Log() << kFATAL <<
"Transformation not yet created" << Endl;
108 if (fBackTransformedEvent==0) fBackTransformedEvent =
new Event( *ev );
111 std::vector<Char_t> mask;
112 GetInput( ev, input, mask, kTRUE );
113 SetOutput( fBackTransformedEvent, input, mask, ev, kTRUE );
115 return fBackTransformedEvent;
122 std::vector<TString>* TMVA::VariableRearrangeTransform::GetTransformationStrings( Int_t )
const
124 const UInt_t size = fGet.size();
125 std::vector<TString>* strVec =
new std::vector<TString>(size);
133 void TMVA::VariableRearrangeTransform::AttachXMLTo(
void* parent)
135 void* trfxml = gTools().AddChild(parent,
"Transform");
136 gTools().AddAttr(trfxml,
"Name",
"Rearrange");
138 VariableTransformBase::AttachXMLTo( trfxml );
144 void TMVA::VariableRearrangeTransform::ReadFromXML(
void* trfnode )
147 void* inpnode = NULL;
149 inpnode = gTools().GetChild(trfnode,
"Selection");
151 Log() << kFATAL <<
"Unknown weight file format for transformations. (tried to read in 'rearrange' transform)" << Endl;
153 VariableTransformBase::ReadFromXML( inpnode );
161 void TMVA::VariableRearrangeTransform::PrintTransformation( std::ostream& )
168 void TMVA::VariableRearrangeTransform::MakeFunction( std::ostream& ,
const TString& ,
169 Int_t , UInt_t , Int_t )