| # Gaudi Framework, version v21r10p1 |

Home |  | Generated: 29 Jul 2010

# RNTupleCnv.h

Go to the documentation of this file.

    00001 #ifndef ROOTHISTCNV_RNTUPLECNV_H
    00002 #define ROOTHISTCNV_RNTUPLECNV_H 1
    00003
    00004 // Include files
    00005 #include "RConverter.h"
    00006
    00007 // Forward declarations
    00008 class ISvcLocator;
    00009 class NTUPLEINFO;
    00010 class INTupleItem;
    00011 class INTupleSvc;
    00012 class INTuple;
    00013 class TTree;
    00014
    00015 namespace RootHistCnv {
    00016
    00024   class RNTupleCnv : public RConverter   {
    00025   public:
    00027     virtual StatusCode initialize();
    00029     virtual StatusCode finalize();
    00030
    00032     virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& refpObj);
    00034     virtual StatusCode updateObj( IOpaqueAddress* pAddr, DataObject* refpObj);
    00036     virtual StatusCode createRep( DataObject* pObj, IOpaqueAddress*& refpAddr);
    00038     virtual StatusCode updateRep( IOpaqueAddress* pAddr, DataObject* pObj);
    00039
    00040   protected:
    00042     RNTupleCnv( ISvcLocator* svc, const CLID& clid );
    00043
    00045     virtual ~RNTupleCnv();
    00046
    00048     virtual StatusCode load(TTree* tree, INTuple*& refpObj ) = 0;
    00050     virtual StatusCode book(const std::string& desc, INTuple* pObj, TTree*& tree) = 0;
    00052     virtual StatusCode writeData(TTree* rtree, INTuple* pObj) = 0;
    00054     virtual StatusCode readData(TTree* rtree, INTuple* pObj, long ievt) = 0;
    00055
    00056   protected:
    00058     SmartIF<INTupleSvc>  m_ntupleSvc;
    00059
    00060     virtual std::string rootVarType(int);
    00061   };
    00062
    00064   template<class TYP>
    00065   INTupleItem* createNTupleItem(NTUPLEINFO& tags, long i, INTuple* tuple, TYP minimum, TYP maximum, long& size);
    00066
    00067   template<class TYP>
    00068   INTupleItem* createNTupleItem(std::string itemName, std::string blockName,
    00069                                 std::string indexName,
    00070                                 int indexRange, int arraySize,
    00071                                 TYP minimum, TYP maximum,
    00072                                 INTuple* tuple);
    00073
    00074   bool parseName(std::string full, std::string &blk, std::string &var);
    00075
    00076 }    // namespace RootHistCnv
    00077
    00078 #endif    // RootHistCnv_RNTupleCnv_H