00001 #ifndef ROOTHISTCNV_RCONVERTER_H
00002 #define ROOTHISTCNV_RCONVERTER_H 1
00003
00004
00005
00006 #include "GaudiKernel/Converter.h"
00007 #include <map>
00008 #include <string>
00009
00010
00011 class ISvcLocator;
00012 class TTree;
00013 class TFile;
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 namespace RootHistCnv {
00027
00028
00029 class RConverter : public Converter {
00030
00031 public:
00033 StatusCode writeObject(const std::string& loc, long id);
00035 StatusCode readObject(const std::string& loc, long id);
00037 StatusCode createAddress(DataObject* pObject, long id, IOpaqueAddress*& refpAddress);
00039 StatusCode createAddress(DataObject* pObject, const std::string& title, IOpaqueAddress*& refpAddress);
00041 StatusCode createAddress(const CLID& clid, const std::string& db, const std::string& loc, const std::string& obj, IOpaqueAddress*& refpAddress);
00043 StatusCode createAddress(const CLID& clid, const std::string& db, const std::string& loc, long id, IOpaqueAddress*& refpAddress);
00045 std::string diskDirectory(const std::string& loc);
00047 std::string directory(const std::string& loc);
00049 void setDirectory(const std::string& loc);
00051 void setDiskDirectory(const std::string& loc);
00053 StatusCode createDirectory(const std::string& loc);
00055 StatusCode createDiskDirectory(const std::string& loc);
00057 StatusCode createSubDirs(const std::string& top, const std::string& loc);
00058
00060 std::string getDirectory();
00061
00063 static const unsigned char storageType();
00064
00065 StatusCode regNTuple(const std::string, const TTree*);
00066 StatusCode findNTuple(const std::string, TTree*&);
00067
00068 protected:
00070 RConverter( const CLID& clid, ISvcLocator* svc );
00072 virtual ~RConverter();
00073
00074
00075
00076
00077 static std::map<std::string,TTree*> m_treeMap;
00078 static TFile* m_rootfile;
00079
00080 };
00081
00082 };
00083
00084
00085 #endif // RootHistCnv_RConverter_H