![]() |
|
|
Generated: 18 Jul 2008 |
00001 // $Header: /local/reps/Gaudi/HbookCnv/src/HNTupleCnv.h,v 1.1.1.1 2000/11/23 11:34:55 ranjard Exp $ 00002 #ifndef HBOOKCNV_HNTUPLECNV_H 00003 #define HBOOKCNV_HNTUPLECNV_H 1 00004 00005 00006 // Include files 00007 #include "HConverter.h" 00008 00009 00010 // Forward declarations 00011 class ISvcLocator; 00012 class NTUPLEINFO; 00013 class INTupleItem; 00014 class INTupleSvc; 00015 class INTuple; 00016 00017 00018 //==================================================================== 00019 // NTuple converter class definition 00020 //-------------------------------------------------------------------- 00021 // 00022 // Package : HbookCnv ( The LHCb Offline System) 00023 // Author : M.Frank 00024 // 00025 //==================================================================== 00026 00027 00028 namespace HbookCnv { 00029 00052 class HNTupleCnv : public HConverter { 00053 00054 public: 00056 virtual StatusCode initialize(); 00058 virtual StatusCode finalize(); 00060 virtual StatusCode createObj(IOpaqueAddress* pAddress, DataObject*& refpObject); 00062 virtual StatusCode updateObj( IOpaqueAddress* pAddress, DataObject* refpObject ); 00064 virtual StatusCode createRep( DataObject* pObject, IOpaqueAddress*& refpAddress ); 00066 virtual StatusCode updateRep( IOpaqueAddress* pAddress, DataObject* pObject ); 00067 00068 protected: 00070 HNTupleCnv( ISvcLocator* svc, const CLID& clid ); 00072 virtual ~HNTupleCnv(); 00074 virtual StatusCode load( long id, INTuple*& refpObject ) = 0; 00076 virtual StatusCode book( long idh, const std::string& loc, INTuple* pObject) = 0; 00078 virtual StatusCode writeData(long idh, INTuple* pObject) = 0; 00080 virtual StatusCode readData(long idh, INTuple* pObject, long ievt) = 0; 00081 00082 00083 protected: 00085 INTupleSvc* m_ntupleSvc; 00086 00087 }; 00088 00090 template<class TYP> 00091 INTupleItem* createNTupleItem(NTUPLEINFO& tags, long i, INTuple* tuple, TYP minimum, TYP maximum, long& size); 00092 00093 bool parseName(std::string full, std::string &blk, std::string &var); 00094 00095 } // namespace HbookCnv 00096 00097 00098 #endif // HBOOKCNV_HNTUPLECNV_H