00001 // @(#)root/tmva $Id: ResultsRegression.h 35727 2010-09-24 21:41:20Z stelzer $ 00002 // Author: Andreas Hoecker, Peter Speckmayer, Joerg Stelzer, Helge Voss 00003 00004 /********************************************************************************** 00005 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * 00006 * Package: TMVA * 00007 * Class : ResultsRegression * 00008 * Web : http://tmva.sourceforge.net * 00009 * * 00010 * Description: * 00011 * Base-class for result-vectors * 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_ResultsRegression 00030 #define ROOT_TMVA_ResultsRegression 00031 00032 ////////////////////////////////////////////////////////////////////////// 00033 // // 00034 // ResultsRegression // 00035 // // 00036 // Class that is the base-class for a vector of result // 00037 // // 00038 ////////////////////////////////////////////////////////////////////////// 00039 00040 #include <vector> 00041 00042 #ifndef ROOT_TH1F 00043 #include "TH1F.h" 00044 #endif 00045 #ifndef ROOT_TH2F 00046 #include "TH2F.h" 00047 #endif 00048 00049 #ifndef ROOT_TMVA_Results 00050 #include "TMVA/Results.h" 00051 #endif 00052 #ifndef ROOT_TMVA_Event 00053 #include "TMVA/Event.h" 00054 #endif 00055 00056 namespace TMVA { 00057 00058 class MsgLogger; 00059 00060 class ResultsRegression : public Results { 00061 00062 public: 00063 00064 ResultsRegression( const DataSetInfo* dsi ); 00065 ~ResultsRegression(); 00066 00067 // setters 00068 void SetValue( std::vector<Float_t>& value, Int_t ievt ); 00069 void Resize( Int_t entries ) { fRegValues.resize( entries ); } 00070 void Clear() { fRegValues.clear(); } 00071 00072 // getters 00073 Long64_t GetSize() const { return fRegValues.size(); } 00074 virtual const std::vector< Float_t >& operator [] ( Int_t ievt ) const { return fRegValues.at(ievt); } 00075 std::vector<std::vector< Float_t> >* GetValueVector() { return &fRegValues; } 00076 00077 TH2F* DeviationAsAFunctionOf( UInt_t varNum, UInt_t tgtNum ); 00078 TH1F* QuadraticDeviation( UInt_t tgtNum, Bool_t truncate = false, Double_t truncvalue = 0. ); 00079 void CreateDeviationHistograms( TString prefix ); 00080 00081 Types::EAnalysisType GetAnalysisType() { return Types::kRegression; } 00082 00083 00084 private: 00085 00086 mutable std::vector<std::vector< Float_t> > fRegValues; //! mva values (Results) 00087 mutable MsgLogger* fLogger; //! message logger 00088 MsgLogger& Log() const { return *fLogger; } 00089 }; 00090 } 00091 00092 #endif