41 ClassImp(TMVA::Ranking);
46 TMVA::Ranking::Ranking()
49 fRankingDiscriminatorName(
"" ),
50 fLogger( new MsgLogger(
"", kINFO) )
57 TMVA::Ranking::Ranking(
const TString& context,
const TString& rankingDiscriminatorName )
60 fRankingDiscriminatorName( rankingDiscriminatorName ),
61 fLogger( new MsgLogger(fContext.Data(), kINFO) )
68 TMVA::Ranking::~Ranking()
76 void TMVA::Ranking::SetContext(
const TString& context)
79 fLogger->SetSource( fContext.Data() );
86 void TMVA::Ranking::AddRank(
const Rank& rank )
93 fRanking.push_back( rank );
95 UInt_t sizeofarray=fRanking.size();
96 Rank temp(fRanking[0]);
97 for (UInt_t i=0; i<sizeofarray; i++) {
98 for (UInt_t j=sizeofarray-1; j>i; j--) {
99 if (fRanking[j-1] < fRanking[j]) {
100 temp = fRanking[j-1];fRanking[j-1] = fRanking[j]; fRanking[j] = temp;
105 for (UInt_t i=0; i<fRanking.size(); i++) fRanking[i].SetRank( i+1 );
111 void TMVA::Ranking::Print()
const
114 for (std::vector<Rank>::const_iterator ir = fRanking.begin(); ir != fRanking.end(); ++ir )
115 if ((*ir).GetVariable().Length() > maxL) maxL = (*ir).GetVariable().Length();
118 for (Int_t i=0; i<maxL+15+fRankingDiscriminatorName.Length(); i++) hline +=
"-";
119 Log() << kHEADER <<
"Ranking result (top variable is best ranked)" << Endl;
120 Log() << kINFO << hline << Endl;
121 Log() << kINFO << std::setiosflags(std::ios::left)
122 << std::setw(5) <<
"Rank : "
123 << std::setw(maxL+0) <<
"Variable "
124 << std::resetiosflags(std::ios::right)
125 <<
" : " << fRankingDiscriminatorName << Endl;
126 Log() << kINFO << hline << Endl;
127 for (std::vector<Rank>::const_iterator ir = fRanking.begin(); ir != fRanking.end(); ++ir ) {
129 << Form(
"%4i : ",(*ir).GetRank() )
130 << std::setw(TMath::Max(maxL+0,9)) << (*ir).GetVariable().Data()
131 << Form(
" : %3.3e", (*ir).GetRankValue() ) << Endl;
133 Log() << kINFO << hline << Endl;
139 TMVA::Rank::Rank(
const TString& variable, Double_t rankValue )
140 : fVariable( variable ),
141 fRankValue( rankValue ),
156 Bool_t TMVA::Rank::operator< (
const Rank& other )
const
158 if (fRankValue < other.fRankValue)
return true;
165 Bool_t TMVA::Rank::operator> (
const Rank& other )
const
167 if (fRankValue > other.fRankValue)
return true;