00001 // @(#)root/tmva $Id: DataSetManager.h 33928 2010-06-15 16:19:31Z 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 : DataSetManager * 00008 * Web : http://tmva.sourceforge.net * 00009 * * 00010 * Description: * 00011 * Singleton class for dataset management * 00012 * * 00013 * Authors (alphabetical): * 00014 * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland * 00015 * Joerg Stelzer <Joerg.Stelzer@cern.ch> - CERN, Switzerland * 00016 * Peter Speckmayer <Peter.Speckmayer@cern.ch> - CERN, Switzerland * 00017 * Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, Germany * 00018 * * 00019 * Copyright (c) 2006: * 00020 * CERN, Switzerland * 00021 * MPI-K Heidelberg, Germany * 00022 * * 00023 * Redistribution and use in source and binary forms, with or without * 00024 * modification, are permitted according to the terms listed in LICENSE * 00025 * (http://tmva.sourceforge.net/LICENSE) * 00026 **********************************************************************************/ 00027 00028 #ifndef ROOT_TMVA_DataSetManager 00029 #define ROOT_TMVA_DataSetManager 00030 00031 ////////////////////////////////////////////////////////////////////////// 00032 // // 00033 // DataSetManager // 00034 // // 00035 // Class that contains all the data information // 00036 // // 00037 ////////////////////////////////////////////////////////////////////////// 00038 00039 #ifndef ROOT_TList 00040 #include "TList.h" 00041 #endif 00042 #ifndef ROOT_TString 00043 #include "TString.h" 00044 #endif 00045 00046 namespace TMVA { 00047 00048 class DataSet; 00049 class DataSetInfo; 00050 class DataInputHandler; 00051 class DataSetFactory; // DSMTEST 00052 class MsgLogger; 00053 00054 class DataSetManager { 00055 00056 public: 00057 00058 00059 // singleton class 00060 // static DataSetManager& Instance(); 00061 // static void CreateInstance( DataInputHandler& dataInput ); 00062 // static void DestroyInstance(); 00063 00064 // private default constructor 00065 DataSetManager(); // DSMTEST 00066 DataSetManager( DataInputHandler& dataInput ); //DSMTEST 00067 ~DataSetManager(); // DSMTEST 00068 00069 00070 // ownership stays with this handler 00071 DataSet* CreateDataSet ( const TString& dsiName ); 00072 DataSetInfo* GetDataSetInfo( const TString& dsiName ); 00073 00074 // makes a local copy of the dataset info object 00075 DataSetInfo& AddDataSetInfo( DataSetInfo& dsi ); 00076 00077 private: 00078 00079 // ~DataSetManager(); // DSMTEST moved to public 00080 00081 // static DataSetManager* fgDSManager; // removed DSMTEST 00082 00083 // private default constructor 00084 /* DataSetManager(); */ // DSMTEST 00085 /* DataSetManager( DataInputHandler& dataInput ); */ // DSMTEST 00086 00087 // // TMVA::DataSetFactory* fDatasetFactory; // DSMTEST 00088 00089 // access to input data 00090 DataInputHandler& DataInput() { return fDataInput; } 00091 00092 DataInputHandler& fDataInput; //! source of input data 00093 TList fDataSetInfoCollection; //! all registered dataset definitions 00094 mutable MsgLogger* fLogger; // message logger 00095 MsgLogger& Log() const { return *fLogger; } 00096 }; 00097 } 00098 00099 #endif