00001 #ifndef __BCDATASET__H 00002 #define __BCDATASET__H 00003 00004 /*! 00005 * \class BCDataSet 00006 * \brief A class representing a set of data points. 00007 * \author Daniel Kollar 00008 * \author Kevin Kröninger 00009 * \version 1.0 00010 * \date 08.2008 00011 * \detail This class represents a data set containing a set of data 00012 * points. The data points are organized in a vector. The class 00013 * provides functions to read in data from a file. 00014 */ 00015 00016 /* 00017 * Copyright (C) 2008, Daniel Kollar and Kevin Kroeninger. 00018 * All rights reserved. 00019 * 00020 * For the licensing terms see doc/COPYING. 00021 */ 00022 00023 // --------------------------------------------------------- 00024 00025 #include <vector> 00026 00027 // BAT classes 00028 class BCDataPoint; 00029 00030 // --------------------------------------------------------- 00031 00032 typedef std::vector<BCDataPoint*> BCDataVector; 00033 00034 // --------------------------------------------------------- 00035 00036 class BCDataSet 00037 { 00038 public: 00039 00040 /** \name Constructors and destructors */ 00041 /* @{ */ 00042 00043 /* 00044 * Default constructor */ 00045 BCDataSet(); 00046 00047 /* 00048 * Default destructor */ 00049 virtual ~BCDataSet(); 00050 00051 /* @} */ 00052 00053 /** \name Member functions (get) */ 00054 /* @{ */ 00055 00056 /* 00057 * @param The vector of data points. */ 00058 // BCDataVector * GetDataVector(); 00059 00060 /* 00061 * @return The number of data points. */ 00062 unsigned int GetNDataPoints(); 00063 00064 /* 00065 * @return number of values per data point (dimension of data). */ 00066 unsigned int GetNValuesPerPoint(); 00067 00068 /* 00069 * @param index The index of the data point to be returned. 00070 * @return The data point at the index. */ 00071 BCDataPoint * GetDataPoint(unsigned int index); 00072 00073 00074 /* @} */ 00075 00076 /** \name Member functions (miscellaneous methods) */ 00077 /* @{ */ 00078 00079 /** 00080 * Reads data from a file. For a description see the following 00081 * member functions. */ 00082 int ReadDataFromFile(const char * filename, const char * treename, const char * branchnames) 00083 { return this -> ReadDataFromFileTree(filename, treename, branchnames); }; 00084 00085 int ReadDataFromFile(const char * filename, int nvariables) 00086 { return this -> ReadDataFromFileTxt(filename, nvariables); }; 00087 00088 /** 00089 * Reads a TTree from a .root file. Opens a .root file and 00090 * gets a TTree. It creates data points containing the values 00091 * read from the file. 00092 * @param filename The name of the .root file. 00093 * @param treename The name of the TTree. 00094 * @param branchnames A list of the names of the branches 00095 * separated by a comma 00096 * @return An error code. 00097 * @see ReadDataFromFileTxt(char* filename, int nbranches); 00098 * @see ReadDataFromFileUser(const char * filename, std::vector<int> options_int, std::vector<double> options_double, const char * options_char); 00099 */ 00100 int ReadDataFromFileTree(const char * filename, const char * treename, const char * branchnames); 00101 00102 /** 00103 * Reads data from a .txt file. Opens a .txt file and creates 00104 * data objects containing the values read from the file. 00105 * @param filename The name of the .txt file. 00106 * @param nvariables The number of variables. 00107 * @see ReadDataFromFileTree(char* filename, char* treename, std::vector<char*> branchnames) 00108 * @see ReadDataFromFileUser(const char * filename, std::vector<int> options_int, std::vector<double> options_double, const char * options_char); 00109 */ 00110 int ReadDataFromFileTxt(const char * filename, int nvariables); 00111 00112 /** 00113 * Adds a data point to the data set. 00114 * @param datapoint The data point to be added */ 00115 void AddDataPoint(BCDataPoint * datapoint); 00116 00117 /** 00118 * Resets the content of the data set */ 00119 void Reset(); 00120 00121 /** 00122 * Dump the data to the standard output */ 00123 void Dump(); 00124 00125 /* @} */ 00126 00127 private: 00128 00129 /* 00130 * A vector containing the data points */ 00131 BCDataVector * fBCDataVector; 00132 00133 }; 00134 00135 // --------------------------------------------------------- 00136 00137 #endif 00138