00001
00002
00014 #ifndef _PyFitsController_H_
00015 #define _PyFitsController_H_
00016
00017 #include <string>
00018 #include <vector>
00019
00020 namespace hippodraw {
00021
00022 class DataSource;
00023 class FitsController;
00024 class FitsNTuple;
00025 class PyDataSource;
00026 class QtCut;
00027
00035 class PyFitsController
00036 {
00037
00038 private:
00039
00041 static PyFitsController * s_instance;
00042
00044 static FitsController * m_instance;
00045
00047 PyFitsController ();
00048
00050 PyFitsController ( const PyFitsController &);
00051
00052 public:
00053
00056 static PyFitsController * instance ();
00057
00060 FitsNTuple * createNTuple ( const std::string & filename,
00061 const std::string & hduname );
00062
00066 PyDataSource * createDataArray ( const std::string & filename,
00067 const std::string & hduname );
00068
00071 void writeToFile ( const DataSource * source,
00072 const std::string & filename );
00073
00076 void writeToFile ( const PyDataSource * source,
00077 const std::string & filename );
00078
00083 void writeToFile ( const DataSource * source,
00084 const std::string & filename,
00085 const std::vector < QtCut * > & cut_list,
00086 const std::vector < std::string > & column_list );
00087
00092 void writeToFile ( const PyDataSource * source,
00093 const std::string & filename,
00094 const std::vector < QtCut * > & cut_list,
00095 const std::vector < std::string > & column_list );
00096
00099 const std::vector < std::string > &
00100 getNTupleNames ( const std::string & filename );
00101
00102 };
00103
00104 }
00105
00106 #endif // _PyFitsController_H_