Ranking.h

Go to the documentation of this file.
00001 // @(#)root/tmva $Id: Ranking.h 29195 2009-06-24 10:39:49Z brun $
00002 // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss 
00003 
00004 /**********************************************************************************
00005  * Project: TMVA - a Root-integrated toolkit for multivariate data analysis       *
00006  * Package: TMVA                                                                  *
00007  * Class  : Ranking                                                               *
00008  * Web    : http://tmva.sourceforge.net                                           *
00009  *                                                                                *
00010  * Description:                                                                   *
00011  *      Virtual ranking class                                                     *
00012  *                                                                                *
00013  * Authors (alphabetical):                                                        *
00014  *      Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland              *
00015  *      Joerg Stelzer   <Joerg.Stelzer@cern.ch>  - CERN, Switzerland              *
00016  *      Helge Voss      <Helge.Voss@cern.ch>     - MPI-K Heidelberg, Germany      *
00017  *                                                                                *
00018  * Copyright (c) 2005:                                                            *
00019  *      CERN, Switzerland                                                         * 
00020  *      MPI-K Heidelberg, Germany                                                 * 
00021  *                                                                                *
00022  * Redistribution and use in source and binary forms, with or without             *
00023  * modification, are permitted according to the terms listed in LICENSE           *
00024  * (http://tmva.sourceforge.net/LICENSE)                                          *
00025  *                                                                                *
00026  **********************************************************************************/
00027 
00028 #ifndef ROOT_TMVA_Ranking
00029 #define ROOT_TMVA_Ranking
00030 
00031 //////////////////////////////////////////////////////////////////////////
00032 //                                                                      //
00033 // Ranking                                                              //
00034 //                                                                      //
00035 // Defines vector of rank                                               //
00036 //                                                                      //
00037 //////////////////////////////////////////////////////////////////////////
00038 
00039 #include <vector>
00040 
00041 #ifndef ROOT_TString
00042 #include "TString.h"
00043 #endif
00044 
00045 namespace TMVA {
00046 
00047    class MsgLogger;
00048    class Rank;
00049 
00050    class Ranking {
00051 
00052    public:
00053 
00054       Ranking();
00055       Ranking( const TString& context, const TString& rankingDiscriminatorName );
00056       virtual ~Ranking();
00057      
00058       virtual void AddRank( const Rank& rank );
00059       virtual void Print() const;
00060 
00061       void SetContext  ( const TString& context   );
00062       void SetDiscrName( const TString& discrName ) { fRankingDiscriminatorName = discrName; }
00063 
00064    private:
00065                   
00066       std::vector<TMVA::Rank> fRanking;                  // vector of ranks
00067       TString                 fContext;                  // the ranking context
00068       TString                 fRankingDiscriminatorName; // the name of the ranking discriminator
00069 
00070       mutable MsgLogger*      fLogger;                   //! message logger
00071       MsgLogger& Log() const { return *fLogger; }                       
00072 
00073       ClassDef(Ranking,0) // Method-specific ranking for input variables 
00074    };
00075 
00076    // --------------------------------------------------------------------------
00077 
00078    class Rank {
00079 
00080    public:
00081 
00082       Rank( const TString& variable, Double_t rankValue );
00083       virtual ~Rank();
00084 
00085       // comparison between rank
00086       Bool_t operator <  ( const Rank& other ) const; 
00087       Bool_t operator >  ( const Rank& other ) const; 
00088 
00089       const TString& GetVariable()  const { return fVariable; }
00090       Double_t       GetRankValue() const { return fRankValue; }
00091       Int_t          GetRank()      const { return fRank; }
00092       void           SetRank( Int_t rank ) { fRank = rank; }
00093 
00094    private:
00095       
00096       TString  fVariable;   // the variable name
00097       Double_t fRankValue;  // the rank value
00098 
00099       Int_t    fRank;
00100    };
00101 }
00102 
00103 #endif

Generated on Tue Jul 5 14:27:33 2011 for ROOT_528-00b_version by  doxygen 1.5.1