00001 // @(#)root/tmva $Id: ClassInfo.h 29195 2009-06-24 10:39:49Z brun $ 00002 // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss 00003 00004 /********************************************************************************** 00005 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * 00006 * Package: TMVA * 00007 * Class : ClassInfo * 00008 * Web : http://tmva.sourceforge.net * 00009 * * 00010 * Description: * 00011 * Contains all the data information * 00012 * * 00013 * Authors (alphabetical): * 00014 * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland * 00015 * Peter Speckmayer <Peter.Speckmayer@cern.ch> - CERN, Switzerland * 00016 * Joerg Stelzer <Joerg.Stelzer@cern.ch> - CERN, Switzerland * 00017 * Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, Germany * 00018 * * 00019 * Copyright (c) 2006: * 00020 * CERN, Switzerland * 00021 * U. of Victoria, Canada * 00022 * MPI-K Heidelberg, Germany * 00023 * * 00024 * Redistribution and use in source and binary forms, with or without * 00025 * modification, are permitted according to the terms listed in LICENSE * 00026 * (http://tmva.sourceforge.net/LICENSE) * 00027 **********************************************************************************/ 00028 00029 #ifndef ROOT_TMVA_ClassInfo 00030 #define ROOT_TMVA_ClassInfo 00031 00032 ////////////////////////////////////////////////////////////////////////// 00033 // // 00034 // ClassInfo // 00035 // // 00036 // Class that contains all the information of a class // 00037 // // 00038 ////////////////////////////////////////////////////////////////////////// 00039 00040 #ifndef ROOT_Rtypes 00041 #include "Rtypes.h" 00042 #endif 00043 #ifndef ROOT_TString 00044 #include "TString.h" 00045 #endif 00046 #ifndef ROOT_TCut 00047 #include "TCut.h" 00048 #endif 00049 #ifndef ROOT_TMatrixDfwd 00050 #include "TMatrixDfwd.h" 00051 #endif 00052 00053 namespace TMVA { 00054 00055 class MsgLogger; 00056 00057 class ClassInfo { 00058 00059 public: 00060 00061 ClassInfo( const TString& name = "default" ); 00062 ~ClassInfo(); 00063 00064 // setters 00065 void SetName ( const TString& name ) { fName = name; } 00066 void SetWeight( const TString& weight ) { fWeight = weight; } 00067 void SetCut ( const TCut& cut ) { fCut = cut; } 00068 void SetNumber( const UInt_t index ) { fNumber = index; } 00069 void SetCorrelationMatrix( TMatrixD *matrix ) { fCorrMatrix = matrix; } 00070 00071 // getters 00072 const TString& GetName() const { return fName; } 00073 const TString& GetWeight() const { return fWeight; } 00074 const TCut& GetCut() const { return fCut; } 00075 UInt_t GetNumber() const { return fNumber; } 00076 const TMatrixD* GetCorrelationMatrix() const { return fCorrMatrix; } 00077 00078 private: 00079 00080 TString fName; //! name of the class 00081 TString fWeight; //! the input formula string that is the weight for the class 00082 TCut fCut; //! pretraining cut for the class 00083 UInt_t fNumber; //! index in of this class in vectors 00084 00085 TMatrixD* fCorrMatrix; //! Correlation matrix for this class 00086 00087 mutable MsgLogger* fLogger; // message logger 00088 MsgLogger& Log() const { return *fLogger; } 00089 }; 00090 } 00091 00092 #endif