ROOT logo
// @(#)root/tmva $Id: MethodBayesClassifier.cxx 31458 2009-11-30 13:58:20Z stelzer $    
// Author: Marcin .... 

/**********************************************************************************
 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis       *
 * Package: TMVA                                                                  *
 * Class  : MethodBayesClassifier                                                 *
 * Web    : http://tmva.sourceforge.net                                           *
 *                                                                                *
 * Description:                                                                   *
 *      Implementation (see header file for description)                          *
 *                                                                                *
 * Authors (alphabetical):                                                        *
 *      Abhishek Narain, <narainabhi@gmail.com> - University of Houston           *
 *                                                                                *
 * Copyright (c) 2005-2006:                                                       *
 *      University of Houston,                                                    *
 *      CERN, Switzerland                                                         *
 *      U. of Victoria, Canada                                                    *
 *      MPI-K Heidelberg, Germany                                                 *
 *      LAPP, Annecy, France                                                      *
 *                                                                                *
 * Redistribution and use in source and binary forms, with or without             *
 * modification, are permitted according to the terms listed in LICENSE           *
 * (http://tmva.sourceforge.net/LICENSE)                                          *
 **********************************************************************************/

//_______________________________________________________________________
//                                                                      
// ... description of bayesian classifiers ...
//_______________________________________________________________________

#include "TMVA/ClassifierFactory.h"
#include "TMVA/MethodBayesClassifier.h"
#include "TMVA/Tools.h"
#include "Riostream.h"

REGISTER_METHOD(BayesClassifier)

ClassImp(TMVA::MethodBayesClassifier)

//_______________________________________________________________________
TMVA::MethodBayesClassifier::MethodBayesClassifier( const TString& jobName,
                                                    const TString& methodTitle,
                                                    DataSetInfo& theData, 
                                                    const TString& theOption,
                                                    TDirectory* theTargetDir ) :
   TMVA::MethodBase( jobName, Types::kBayesClassifier, methodTitle, theData, theOption, theTargetDir )
{
   // standard constructor
}

//_______________________________________________________________________
TMVA::MethodBayesClassifier::MethodBayesClassifier( DataSetInfo& theData, 
                                                    const TString& theWeightFile,  
                                                    TDirectory* theTargetDir ) :
   TMVA::MethodBase( Types::kBayesClassifier, theData, theWeightFile, theTargetDir ) 
{
   // constructor from weight file
}

//_______________________________________________________________________
Bool_t TMVA::MethodBayesClassifier::HasAnalysisType( Types::EAnalysisType type, UInt_t numberClasses, UInt_t /*numberTargets*/ )
{
   // Variable can handle classification with 2 classes 
   if( type == Types::kClassification && numberClasses == 2 ) return kTRUE;
   return kFALSE;
}


//_______________________________________________________________________
void TMVA::MethodBayesClassifier::Init( void )
{
   // default initialisation
}

//_______________________________________________________________________
void TMVA::MethodBayesClassifier::DeclareOptions() 
{
   // define the options (their key words) that can be set in the option string 
}

//_______________________________________________________________________
void TMVA::MethodBayesClassifier::ProcessOptions() 
{
   // the option string is decoded, for availabel options see "DeclareOptions"
}

//_______________________________________________________________________
TMVA::MethodBayesClassifier::~MethodBayesClassifier( void )
{
   // destructor
}

//_______________________________________________________________________
void TMVA::MethodBayesClassifier::Train( void )
{
   // some training 
}

//_______________________________________________________________________
void TMVA::MethodBayesClassifier::AddWeightsXMLTo( void* /*parent*/ ) const {
   Log() << kFATAL << "Please implement writing of weights as XML" << Endl;
}
  
//_______________________________________________________________________
void  TMVA::MethodBayesClassifier::ReadWeightsFromStream( istream & )
{
   // read back the training results from a file (stream)
}

//_______________________________________________________________________
Double_t TMVA::MethodBayesClassifier::GetMvaValue( Double_t* err )
{
   // returns MVA value for given event
   Double_t myMVA = 0;

   // cannot determine error
   if (err != 0) *err = -1;

   return myMVA;
}

//_______________________________________________________________________
void TMVA::MethodBayesClassifier::MakeClassSpecific( std::ostream& fout, const TString& className ) const
{
   // write specific classifier response
   fout << "   // not implemented for class: \"" << className << "\"" << endl;
   fout << "};" << endl;
}

//_______________________________________________________________________
void TMVA::MethodBayesClassifier::GetHelpMessage() const
{
   // get help message text
   //
   // typical length of text line: 
   //         "|--------------------------------------------------------------|"
   Log() << Endl;
   Log() << gTools().Color("bold") << "--- Short description:" << gTools().Color("reset") << Endl;
   Log() << Endl;
   Log() << "<None>" << Endl;
   Log() << Endl;
   Log() << gTools().Color("bold") << "--- Performance optimisation:" << gTools().Color("reset") << Endl;
   Log() << Endl;
   Log() << "<None>" << Endl;
   Log() << Endl;
   Log() << gTools().Color("bold") << "--- Performance tuning via configuration options:" << gTools().Color("reset") << Endl;
   Log() << Endl;
   Log() << "<None>" << Endl;
}
 MethodBayesClassifier.cxx:1
 MethodBayesClassifier.cxx:2
 MethodBayesClassifier.cxx:3
 MethodBayesClassifier.cxx:4
 MethodBayesClassifier.cxx:5
 MethodBayesClassifier.cxx:6
 MethodBayesClassifier.cxx:7
 MethodBayesClassifier.cxx:8
 MethodBayesClassifier.cxx:9
 MethodBayesClassifier.cxx:10
 MethodBayesClassifier.cxx:11
 MethodBayesClassifier.cxx:12
 MethodBayesClassifier.cxx:13
 MethodBayesClassifier.cxx:14
 MethodBayesClassifier.cxx:15
 MethodBayesClassifier.cxx:16
 MethodBayesClassifier.cxx:17
 MethodBayesClassifier.cxx:18
 MethodBayesClassifier.cxx:19
 MethodBayesClassifier.cxx:20
 MethodBayesClassifier.cxx:21
 MethodBayesClassifier.cxx:22
 MethodBayesClassifier.cxx:23
 MethodBayesClassifier.cxx:24
 MethodBayesClassifier.cxx:25
 MethodBayesClassifier.cxx:26
 MethodBayesClassifier.cxx:27
 MethodBayesClassifier.cxx:28
 MethodBayesClassifier.cxx:29
 MethodBayesClassifier.cxx:30
 MethodBayesClassifier.cxx:31
 MethodBayesClassifier.cxx:32
 MethodBayesClassifier.cxx:33
 MethodBayesClassifier.cxx:34
 MethodBayesClassifier.cxx:35
 MethodBayesClassifier.cxx:36
 MethodBayesClassifier.cxx:37
 MethodBayesClassifier.cxx:38
 MethodBayesClassifier.cxx:39
 MethodBayesClassifier.cxx:40
 MethodBayesClassifier.cxx:41
 MethodBayesClassifier.cxx:42
 MethodBayesClassifier.cxx:43
 MethodBayesClassifier.cxx:44
 MethodBayesClassifier.cxx:45
 MethodBayesClassifier.cxx:46
 MethodBayesClassifier.cxx:47
 MethodBayesClassifier.cxx:48
 MethodBayesClassifier.cxx:49
 MethodBayesClassifier.cxx:50
 MethodBayesClassifier.cxx:51
 MethodBayesClassifier.cxx:52
 MethodBayesClassifier.cxx:53
 MethodBayesClassifier.cxx:54
 MethodBayesClassifier.cxx:55
 MethodBayesClassifier.cxx:56
 MethodBayesClassifier.cxx:57
 MethodBayesClassifier.cxx:58
 MethodBayesClassifier.cxx:59
 MethodBayesClassifier.cxx:60
 MethodBayesClassifier.cxx:61
 MethodBayesClassifier.cxx:62
 MethodBayesClassifier.cxx:63
 MethodBayesClassifier.cxx:64
 MethodBayesClassifier.cxx:65
 MethodBayesClassifier.cxx:66
 MethodBayesClassifier.cxx:67
 MethodBayesClassifier.cxx:68
 MethodBayesClassifier.cxx:69
 MethodBayesClassifier.cxx:70
 MethodBayesClassifier.cxx:71
 MethodBayesClassifier.cxx:72
 MethodBayesClassifier.cxx:73
 MethodBayesClassifier.cxx:74
 MethodBayesClassifier.cxx:75
 MethodBayesClassifier.cxx:76
 MethodBayesClassifier.cxx:77
 MethodBayesClassifier.cxx:78
 MethodBayesClassifier.cxx:79
 MethodBayesClassifier.cxx:80
 MethodBayesClassifier.cxx:81
 MethodBayesClassifier.cxx:82
 MethodBayesClassifier.cxx:83
 MethodBayesClassifier.cxx:84
 MethodBayesClassifier.cxx:85
 MethodBayesClassifier.cxx:86
 MethodBayesClassifier.cxx:87
 MethodBayesClassifier.cxx:88
 MethodBayesClassifier.cxx:89
 MethodBayesClassifier.cxx:90
 MethodBayesClassifier.cxx:91
 MethodBayesClassifier.cxx:92
 MethodBayesClassifier.cxx:93
 MethodBayesClassifier.cxx:94
 MethodBayesClassifier.cxx:95
 MethodBayesClassifier.cxx:96
 MethodBayesClassifier.cxx:97
 MethodBayesClassifier.cxx:98
 MethodBayesClassifier.cxx:99
 MethodBayesClassifier.cxx:100
 MethodBayesClassifier.cxx:101
 MethodBayesClassifier.cxx:102
 MethodBayesClassifier.cxx:103
 MethodBayesClassifier.cxx:104
 MethodBayesClassifier.cxx:105
 MethodBayesClassifier.cxx:106
 MethodBayesClassifier.cxx:107
 MethodBayesClassifier.cxx:108
 MethodBayesClassifier.cxx:109
 MethodBayesClassifier.cxx:110
 MethodBayesClassifier.cxx:111
 MethodBayesClassifier.cxx:112
 MethodBayesClassifier.cxx:113
 MethodBayesClassifier.cxx:114
 MethodBayesClassifier.cxx:115
 MethodBayesClassifier.cxx:116
 MethodBayesClassifier.cxx:117
 MethodBayesClassifier.cxx:118
 MethodBayesClassifier.cxx:119
 MethodBayesClassifier.cxx:120
 MethodBayesClassifier.cxx:121
 MethodBayesClassifier.cxx:122
 MethodBayesClassifier.cxx:123
 MethodBayesClassifier.cxx:124
 MethodBayesClassifier.cxx:125
 MethodBayesClassifier.cxx:126
 MethodBayesClassifier.cxx:127
 MethodBayesClassifier.cxx:128
 MethodBayesClassifier.cxx:129
 MethodBayesClassifier.cxx:130
 MethodBayesClassifier.cxx:131
 MethodBayesClassifier.cxx:132
 MethodBayesClassifier.cxx:133
 MethodBayesClassifier.cxx:134
 MethodBayesClassifier.cxx:135
 MethodBayesClassifier.cxx:136
 MethodBayesClassifier.cxx:137
 MethodBayesClassifier.cxx:138
 MethodBayesClassifier.cxx:139
 MethodBayesClassifier.cxx:140
 MethodBayesClassifier.cxx:141
 MethodBayesClassifier.cxx:142
 MethodBayesClassifier.cxx:143
 MethodBayesClassifier.cxx:144
 MethodBayesClassifier.cxx:145
 MethodBayesClassifier.cxx:146
 MethodBayesClassifier.cxx:147
 MethodBayesClassifier.cxx:148
 MethodBayesClassifier.cxx:149
 MethodBayesClassifier.cxx:150
 MethodBayesClassifier.cxx:151