Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:22:50

0001 // @(#)root/tmva $Id$       
0002 // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss 
0003 
0004 /**********************************************************************************
0005  * Project: TMVA - a Root-integrated toolkit for multivariate data analysis       *
0006  * Package: TMVA                                                                  *
0007  * Class  : CrossEntropy                                                          *
0008  *                                             *
0009  *                                                                                *
0010  * Description: Implementation of the CrossEntropy as separation criterion        *
0011  *                                                                                *
0012  * Authors (alphabetical):                                                        *
0013  *      Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland              *
0014  *      Helge Voss      <Helge.Voss@cern.ch>     - MPI-K Heidelberg, Germany      *
0015  *      Kai Voss        <Kai.Voss@cern.ch>       - U. of Victoria, Canada         *
0016  *                                                                                *
0017  * Copyright (c) 2005:                                                            *
0018  *      CERN, Switzerland                                                         * 
0019  *      U. of Victoria, Canada                                                    * 
0020  *      Heidelberg U., Germany                                                    * 
0021  *                                                                                *
0022  * Redistribution and use in source and binary forms, with or without             *
0023  * modification, are permitted according to the terms listed in LICENSE           *
0024  * (see tmva/doc/LICENSE)                                          *
0025  **********************************************************************************/
0026 
0027 #ifndef ROOT_TMVA_CrossEntropy
0028 #define ROOT_TMVA_CrossEntropy
0029 
0030 //////////////////////////////////////////////////////////////////////////
0031 //                                                                      //
0032 // CrossEntropy                                                         //
0033 //                                                                      //
0034 // Implementation of the CrossEntropy as separation criterion           //
0035 //  -p log (p) - (1-p)log(1-p);     p=purity = s/(s+b)                  // 
0036 //                                                                      //
0037 //////////////////////////////////////////////////////////////////////////
0038 
0039 #include "TMVA/SeparationBase.h"
0040 
0041 namespace TMVA {
0042 
0043    class CrossEntropy : public SeparationBase {
0044 
0045    public:
0046     
0047       // default constructor
0048    CrossEntropy(): SeparationBase()  { fName = "CE"; }
0049 
0050       // copy constructor
0051    CrossEntropy( const CrossEntropy& g): SeparationBase(g) {}
0052 
0053       // destructor
0054       virtual ~CrossEntropy(){}
0055 
0056       // return the separation Index  -p log (p) - (1-p)log(1-p);     p=purity = s/(s+b) 
0057       virtual Double_t GetSeparationIndex( const Double_t s, const Double_t b );
0058     
0059    protected:
0060     
0061       ClassDef(CrossEntropy,0); // Implementation of the CrossEntropy as separation criterion
0062    };
0063 
0064 } // namespace TMVA
0065 
0066 #endif
0067