All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RNTupleCnv.h
Go to the documentation of this file.
1 #ifndef ROOTHISTCNV_RNTUPLECNV_H
2 #define ROOTHISTCNV_RNTUPLECNV_H 1
3 
4 // Include files
5 #include "RConverter.h"
6 
7 // Forward declarations
8 class ISvcLocator;
9 class NTUPLEINFO;
10 class INTupleItem;
11 class INTupleSvc;
12 class INTuple;
13 class TTree;
14 
15 namespace RootHistCnv {
16 
24  class RNTupleCnv : public RConverter {
25  public:
27  virtual StatusCode initialize();
29  virtual StatusCode finalize();
30 
32  virtual StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& refpObj);
34  virtual StatusCode updateObj( IOpaqueAddress* pAddr, DataObject* refpObj);
36  virtual StatusCode createRep( DataObject* pObj, IOpaqueAddress*& refpAddr);
38  virtual StatusCode updateRep( IOpaqueAddress* pAddr, DataObject* pObj);
39 
40  protected:
42  RNTupleCnv( ISvcLocator* svc, const CLID& clid );
43 
45  virtual ~RNTupleCnv();
46 
48  virtual StatusCode load(TTree* tree, INTuple*& refpObj ) = 0;
50  virtual StatusCode book(const std::string& desc, INTuple* pObj, TTree*& tree) = 0;
52  virtual StatusCode writeData(TTree* rtree, INTuple* pObj) = 0;
54  virtual StatusCode readData(TTree* rtree, INTuple* pObj, long ievt) = 0;
55 
56  protected:
59 
60  virtual std::string rootVarType(int);
61  };
62 
64  template<class TYP>
65  INTupleItem* createNTupleItem(NTUPLEINFO& tags, long i, INTuple* tuple, TYP minimum, TYP maximum, long& size);
66 
67  template<class TYP>
68  INTupleItem* createNTupleItem(std::string itemName, std::string blockName,
69  std::string indexName,
70  int indexRange, int arraySize,
71  TYP minimum, TYP maximum,
72  INTuple* tuple);
73 
74  bool parseName(std::string full, std::string &blk, std::string &var);
75 
76 } // namespace RootHistCnv
77 
78 #endif // RootHistCnv_RNTupleCnv_H
NTuple converter class definition.
Definition: RNTupleCnv.h:24
virtual StatusCode updateRep(IOpaqueAddress *pAddr, DataObject *pObj)
Update the converted representation of a transient object.
Definition: RNTupleCnv.cpp:197
Root Converter.
Definition: RConverter.h:34
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:26
RNTupleCnv(ISvcLocator *svc, const CLID &clid)
Standard constructor.
Definition: RNTupleCnv.cpp:35
virtual StatusCode book(const std::string &desc, INTuple *pObj, TTree *&tree)=0
Book a new N tuple.
virtual StatusCode finalize()
Finalize the converter.
Definition: RNTupleCnv.cpp:62
NTuple interface class definition.
Definition: INTuple.h:80
virtual StatusCode initialize()
Initialize the converter.
Definition: RNTupleCnv.cpp:49
NTuple interface class definition.
Definition: INTuple.h:27
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
unsigned int CLID
Class ID definition.
Definition: ClassID.h:9
virtual StatusCode createRep(DataObject *pObj, IOpaqueAddress *&refpAddr)
Convert the transient object to the requested representation.
Definition: RNTupleCnv.cpp:137
virtual StatusCode load(TTree *tree, INTuple *&refpObj)=0
Create the transient representation of an object.
virtual ~RNTupleCnv()
Standard destructor.
Definition: RNTupleCnv.cpp:43
virtual StatusCode writeData(TTree *rtree, INTuple *pObj)=0
Write N tuple data.
Opaque address interface definition.
SmartIF< INTupleSvc > m_ntupleSvc
Reference to N tuple service.
Definition: RNTupleCnv.h:58
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:31
list i
Definition: ana.py:128
bool parseName(std::string full, std::string &blk, std::string &var)
Definition: RNTupleCnv.cpp:251
virtual StatusCode readData(TTree *rtree, INTuple *pObj, long ievt)=0
Read N tuple data.
virtual StatusCode createObj(IOpaqueAddress *pAddr, DataObject *&refpObj)
Create the transient representation of an object.
Definition: RNTupleCnv.cpp:100
virtual StatusCode updateObj(IOpaqueAddress *pAddr, DataObject *refpObj)
Update the transient object from the other representation.
Definition: RNTupleCnv.cpp:71
INTupleItem * createNTupleItem(std::string itemName, std::string blockName, std::string indexName, int indexRange, int arraySize, TYP min, TYP max, INTuple *ntup)
Definition: RNTupleCnv.cpp:275
virtual std::string rootVarType(int)
Return ROOT type info:
Definition: RNTupleCnv.cpp:229