All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
NTupleItems.cpp
Go to the documentation of this file.
1 //====================================================================
2 // NTuple name space implementation
3 //--------------------------------------------------------------------
4 //
5 // Package : Gaudi/NTupleSvc ( The LHCb Offline System)
6 // Author : M.Frank
7 //
8 // +---------+----------------------------------------------+--------+
9 // | Date | Comment | Who |
10 // +---------+----------------------------------------------+--------+
11 // | 21/10/99| Initial version. | MF |
12 // +---------+----------------------------------------------+--------+
13 //====================================================================
14 #define GAUDI_NTUPLEITEMS_CPP 1
15 
16 // Framework include files
18 #include "GaudiKernel/DataObject.h"
20 
21 typedef const std::string& CSTR;
22 typedef const std::type_info& CTYPE;
23 
25 template <class TYP> NTuple::_Item<TYP>*
26 NTuple::_Item<TYP>::create(INTuple* tup,const std::string& name,const std::type_info& info,TYP min,TYP max,TYP def) {
27  return new _ItemImp<TYP>(tup, name, info, min, max, def);
28 }
29 
31 template <class TYP> NTuple::_Array<TYP>*
32 NTuple::_Array<TYP>::create(INTuple* tup,const std::string& name,const std::type_info& info,const std::string& idx,long len,TYP min,TYP max,TYP def) {
33  return new _ArrayImp<TYP>(tup,name,info,idx,len,min,max,def);
34 }
35 
37 template <class TYP> NTuple::_Matrix<TYP>*
39  long ncol,long nrow,TYP min,TYP max,TYP def) {
40  return new _MatrixImp<TYP>(tup,name,info,idx,ncol,nrow,min,max,def);
41 }
42 
43 #define INSTANTIATE(TYP) \
44  template class NTuple::_Item<TYP>;\
45  template class NTuple::_Array<TYP>;\
46  template class NTuple::_Matrix<TYP>;
47 // This makes the stuff accessible from outside
48 // (instruct the compiler to explicitly instantiate specific instances....)
49 INSTANTIATE(bool)
50 INSTANTIATE(char)
51 INSTANTIATE(unsigned char)
52 INSTANTIATE(short)
53 INSTANTIATE(unsigned short)
54 INSTANTIATE(int)
55 INSTANTIATE(unsigned int)
56 INSTANTIATE(long)
57 INSTANTIATE(long long)
58 INSTANTIATE(unsigned long)
59 INSTANTIATE(unsigned long long)
60 INSTANTIATE(float)
61 INSTANTIATE(double)
62 INSTANTIATE(void*)
64 INSTANTIATE(std::string)
65 
66 #undef INSTANTIATE
#define INSTANTIATE(TYP)
Definition: NTupleItems.cpp:43
Abstract class describing a matrix column in a N tuple.
Definition: NTuple.h:40
Abstract class describing a column in a N tuple.
Definition: NTuple.h:38
Concrete class discribing a matrix column in a N tuple.
Definition: NTupleItems.h:34
STL namespace.
const std::type_info & CTYPE
Definition: NTupleItems.cpp:22
static _Array * create(INTuple *tup, const std::string &name, const std::type_info &info, const std::string &index, long len, TYP min, TYP max, TYP def)
Create instance.
Definition: NTupleItems.cpp:32
STL class.
NTuple interface class definition.
Definition: INTuple.h:79
Concrete class discribing a column-array in a N tuple.
Definition: NTupleItems.h:33
const std::string & CSTR
Definition: NTupleItems.cpp:21
Concrete class discribing a column in a N tuple.
Definition: NTupleItems.h:32
static _Item * create(INTuple *tup, const std::string &name, const std::type_info &info, TYP min, TYP max, TYP def)
Create instance.
Definition: NTupleItems.cpp:26
Opaque address interface definition.
static _Matrix * create(INTuple *tup, const std::string &name, const std::type_info &info, const std::string &index, long ncol, long nrow, TYP min, TYP max, TYP def)
Create instance.
Definition: NTupleItems.cpp:38
Abstract class describing a column-array in a N tuple.
Definition: NTuple.h:39