| The Gaudi Framework v30r0 (c919700c)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Protected Types | Protected Attributes | Private Member Functions | List of all members
NTuple::_DataImp< TYP > Class Template Reference

Concrete class discribing basic data items in an N tuple. More...

`#include <GaudiKernel/NTupleItems.h>`

Inheritance diagram for NTuple::_DataImp< TYP >:
[legend]
Collaboration diagram for NTuple::_DataImp< TYP >:
[legend]

## Public Types
typedef Range< TYP > | ItemRange
| Set type definition to make life more easy easy. More...
Public Types inherited from NTuple::_Data< TYP >
typedef Range< TYP > | ItemRange
| Set type definition to make life more easy easy. More...

## Public Member Functions
| _DataImp (INTuple *tup, std::string name, const std::type_info &info, std::string index, long len, TYP low, TYP high, TYP def)
| Standard Constructor. More...
| ~_DataImp () override
| Standard destructor. More...
std::string | typeName () const override
| Get proper type name. More...
void | reset () override
| Reset to default. More...
long | filled () const override
| Number of items filled. More...
INTupleItem * | indexItem () override
| Pointer to index column (if present, 0 else) More...
const INTupleItem * | indexItem () const override
| Pointer to index column (if present, 0 else) (CONST) More...
const std::type_info & | typeID () const override
| Compiler type ID. More...
long | size () const override
| Size of entire object. More...
void | release () override
| Destruct object. More...
bool | hasIndex () const override
| Is the tuple have an index column? More...
const std::string & | index () const override
| Access the index _Column. More...
const std::string & | name () const override
| Access _Column name. More...
long | type () const override
| TYP information of the item. More...
void | setType (long t) override
| Set the properties of the _Column. More...
void | setDefault (const TYP val) override
| Set default value. More...
const ItemRange & | range () const override
| Access the range if specified. More...
long | length () const override
| Access the buffer length. More...
const void * | buffer () const override
| Access data buffer (CONST) More...
virtual void * | buffer ()
| Access data buffer. More...
long | ndim () const override
| Dimension. More...
long | dim (long i) const override
| Access individual dimensions. More...
INTuple * | tuple () override
| Access to hosting ntuple. More...
Public Member Functions inherited from INTupleItem
virtual | ~INTupleItem ()=default
| destructor More...

## Protected Types
typedef const std::string & | CSTR
typedef const std::type_info & | CTYPE

## Protected Attributes
long | m_length
| Entire buffer length. More...
INTuple * | m_tuple
| Pointer to N tuple. More...
std::string | m_name
| _Column name More...
std::string | m_index
| Check that values are within a certain range while filling. More...
INTupleItem * | m_indexItem = nullptr
| Pointer to index item. More...
DataTypeInfo::Type | m_type
| _Column type More...
TYP | m_def
| Buffer with default value. More...
Range< TYP > | m_range
| Check that values are within a certain range while filling. More...
const std::type_info & | m_info
| Item type information. More...
Protected Attributes inherited from NTuple::_Data< TYP >
TYP * | m_buffer = nullptr
| Pointer to data buffer. More...

## Private Member Functions
| _DataImp (const _DataImp &)=delete
| Inhibit Copy Constructor. More...

## Additional Inherited Members

## Detailed Description

### template<class TYP>
class NTuple::_DataImp< TYP >

Concrete class discribing basic data items in an N tuple.

Definition at line 34 of file NTupleItems.h.

## Member Typedef Documentation

template<class TYP >

typedef const std::string& NTuple::_DataImp< TYP >::CSTR
| protected

Definition at line 51 of file NTupleItems.h.

template<class TYP >

typedef const std::type_info& NTuple::_DataImp< TYP >::CTYPE
| protected

Definition at line 52 of file NTupleItems.h.

template<class TYP >

typedef Range<TYP> NTuple::_DataImp< TYP >::ItemRange

Set type definition to make life more easy easy.

Definition at line 74 of file NTupleItems.h.

## Constructor & Destructor Documentation

template<class TYP >

NTuple::_DataImp< TYP >::_DataImp | ( | const _DataImp< TYP > & |  | ) |
| private delete

Inhibit Copy Constructor.

template<class TYP >

NTuple::_DataImp< TYP >::_DataImp | ( | INTuple * | tup,
|  | std::string | name,
|  | const std::type_info & | info,
|  | std::string | index,
|  | long | len,
|  | TYP | low,
|  | TYP | high,
|  | TYP | def
| ) |  |
| inline

Standard Constructor.

Definition at line 76 of file NTupleItems.h.

78 : m_length( len )
79 , m_tuple( tup )
80 , m_name( std::move( name ) )
81 , m_index( std::move( index ) )
82 , m_def( std::move( def ) )
83 , m_range( std::move( low ), std::move( high ) )
84 , m_info( info )
85 {
86 m_type = typeid( TYP ) == typeid( void* ) ? DataTypeInfo::POINTER : DataTypeInfo::ID( info );
87 this->m_buffer = new TYP[m_length];
88 reset();
89 }
DataTypeInfo::POINTER
Definition: DataTypeInfo.h:41
DataTypeInfo::ID
static Type ID(const bool)
Access to type information: bool.
Definition: DataTypeInfo.h:49
NTuple::_DataImp::m_type
DataTypeInfo::Type m_type
_Column type
Definition: NTupleItems.h:64
NTuple::_DataImp::m_def
TYP m_def
Buffer with default value.
Definition: NTupleItems.h:66
NTuple::_DataImp::m_range
Range< TYP > m_range
Check that values are within a certain range while filling.
Definition: NTupleItems.h:68
NTuple::_DataImp::m_index
std::string m_index
Check that values are within a certain range while filling.
Definition: NTupleItems.h:60
NTuple::_DataImp::reset
void reset() override
Reset to default.
Definition: NTupleItems.h:95
std::move
T move(T...args)
NTuple::_DataImp::m_length
long m_length
Entire buffer length.
Definition: NTupleItems.h:54
NTuple::_DataImp::m_tuple
INTuple * m_tuple
Pointer to N tuple.
Definition: NTupleItems.h:56
NTuple::_DataImp::m_info
const std::type_info & m_info
Item type information.
Definition: NTupleItems.h:70
NTuple::_Data::m_buffer
TYP * m_buffer
Pointer to data buffer.
Definition: NTuple.h:130
NTuple::_DataImp::m_name
std::string m_name
_Column name
Definition: NTupleItems.h:58
template<class TYP >

NTuple::_DataImp< TYP >::~_DataImp | ( |  | ) |
| inline override

Standard destructor.

Definition at line 91 of file NTupleItems.h.

91 { delete[] this->m_buffer; }
NTuple::_Data::m_buffer
TYP * m_buffer
Pointer to data buffer.
Definition: NTuple.h:130

## Member Function Documentation

template<class TYP >

const void* NTuple::_DataImp< TYP >::buffer | ( |  | ) | const
| inline override virtual

Access data buffer (CONST)

Implements INTupleItem.

Definition at line 149 of file NTupleItems.h.

149 { return this->m_buffer; }
NTuple::_Data::m_buffer
TYP * m_buffer
Pointer to data buffer.
Definition: NTuple.h:130
template<class TYP >

virtual void* NTuple::_DataImp< TYP >::buffer | ( |  | ) |
| inline virtual

Access data buffer.

Definition at line 151 of file NTupleItems.h.

151 { return this->m_buffer; }
NTuple::_Data::m_buffer
TYP * m_buffer
Pointer to data buffer.
Definition: NTuple.h:130
template<class TYP >

long NTuple::_DataImp< TYP >::dim | ( | long | i | ) | const
| inline override virtual

Access individual dimensions.

Implements INTupleItem.

Reimplemented in NTuple::_MatrixImp< TYP >, and NTuple::_ArrayImp< TYP >.

Definition at line 155 of file NTupleItems.h.

155 { return ( i == 0 ) ? 1 : 0; }
template<class TYP >

long NTuple::_DataImp< TYP >::filled | ( |  | ) | const
| inline override virtual

Number of items filled.

Implements INTupleItem.

Definition at line 97 of file NTupleItems.h.

98 {
99 int len = 1;
100 int nd = ndim();
101 if ( m_length > 1 ) {
102 for ( int l = 0; l < nd - 1; l++ ) {
103 len *= dim( l );
104 }
105 if ( indexItem() ) {
106 long* ll = (long*)m_indexItem->buffer();
107 len *= *ll;
108 } else if ( nd > 0 ) {
109 len *= dim( nd - 1 );
110 }
111 }
112 return len;
113 }
NTuple::_DataImp::indexItem
INTupleItem * indexItem() override
Pointer to index column (if present, 0 else)
Definition: NTupleItems.h:115
NTuple::_DataImp::dim
long dim(long i) const override
Access individual dimensions.
Definition: NTupleItems.h:155
NTuple::_DataImp::ndim
long ndim() const override
Dimension.
Definition: NTupleItems.h:153
NTuple::_DataImp::m_length
long m_length
Entire buffer length.
Definition: NTupleItems.h:54
gaudirun.l
dictionary l
Definition: gaudirun.py:440
INTupleItem::buffer
virtual const void * buffer() const =0
Access data buffer (CONST)
NTuple::_DataImp::m_indexItem
INTupleItem * m_indexItem
Pointer to index item.
Definition: NTupleItems.h:62
template<class TYP >

bool NTuple::_DataImp< TYP >::hasIndex | ( |  | ) | const
| inline override virtual

Is the tuple have an index column?

Implements INTupleItem.

Definition at line 133 of file NTupleItems.h.

133 { return m_index.length() > 0; }
NTuple::_DataImp::m_index
std::string m_index
Check that values are within a certain range while filling.
Definition: NTupleItems.h:60
std::string::length
T length(T...args)
template<class TYP >

const std::string& NTuple::_DataImp< TYP >::index | ( |  | ) | const
| inline override virtual

Access the index _Column.

Implements INTupleItem.

Definition at line 135 of file NTupleItems.h.

135 { return m_index; }
NTuple::_DataImp::m_index
std::string m_index
Check that values are within a certain range while filling.
Definition: NTupleItems.h:60
template<class TYP >

INTupleItem* NTuple::_DataImp< TYP >::indexItem | ( |  | ) |
| inline override virtual

Pointer to index column (if present, 0 else)

Implements INTupleItem.

Definition at line 115 of file NTupleItems.h.

116 {
117 if ( !m_indexItem ) m_indexItem = m_tuple->find( m_index );
118 return m_indexItem;
119 }
NTuple::_DataImp::m_index
std::string m_index
Check that values are within a certain range while filling.
Definition: NTupleItems.h:60
NTuple::_DataImp::m_tuple
INTuple * m_tuple
Pointer to N tuple.
Definition: NTupleItems.h:56
INTuple::find
virtual const INTupleItem * find(const std::string &name) const =0
Find an item row of the Ntuple (CONST)
NTuple::_DataImp::m_indexItem
INTupleItem * m_indexItem
Pointer to index item.
Definition: NTupleItems.h:62
template<class TYP >

const INTupleItem* NTuple::_DataImp< TYP >::indexItem | ( |  | ) | const
| inline override virtual

Pointer to index column (if present, 0 else) (CONST)

Implements INTupleItem.

Definition at line 121 of file NTupleItems.h.

122 {
123 if ( !m_indexItem ) m_indexItem = m_tuple->find( m_index );
124 return m_indexItem;
125 }
NTuple::_DataImp::m_index
std::string m_index
Check that values are within a certain range while filling.
Definition: NTupleItems.h:60
NTuple::_DataImp::m_tuple
INTuple * m_tuple
Pointer to N tuple.
Definition: NTupleItems.h:56
INTuple::find
virtual const INTupleItem * find(const std::string &name) const =0
Find an item row of the Ntuple (CONST)
NTuple::_DataImp::m_indexItem
INTupleItem * m_indexItem
Pointer to index item.
Definition: NTupleItems.h:62
template<class TYP >

long NTuple::_DataImp< TYP >::length | ( |  | ) | const
| inline override virtual

Access the buffer length.

Implements INTupleItem.

Definition at line 147 of file NTupleItems.h.

147 { return m_length; }
NTuple::_DataImp::m_length
long m_length
Entire buffer length.
Definition: NTupleItems.h:54
template<class TYP >

const std::string& NTuple::_DataImp< TYP >::name | ( |  | ) | const
| inline override virtual

Access _Column name.

Implements INTupleItem.

Definition at line 137 of file NTupleItems.h.

137 { return m_name; }
NTuple::_DataImp::m_name
std::string m_name
_Column name
Definition: NTupleItems.h:58
template<class TYP >

long NTuple::_DataImp< TYP >::ndim | ( |  | ) | const
| inline override virtual

Dimension.

Implements INTupleItem.

Reimplemented in NTuple::_MatrixImp< TYP >, and NTuple::_ArrayImp< TYP >.

Definition at line 153 of file NTupleItems.h.

153 { return 0; }
template<class TYP >

const ItemRange& NTuple::_DataImp< TYP >::range | ( |  | ) | const
| inline override virtual

Access the range if specified.

Implements NTuple::_Data< TYP >.

Reimplemented in NTuple::_MatrixImp< TYP >, NTuple::_ArrayImp< TYP >, and NTuple::_ItemImp< TYP >.

Definition at line 145 of file NTupleItems.h.

145 { return m_range; }
NTuple::_DataImp::m_range
Range< TYP > m_range
Check that values are within a certain range while filling.
Definition: NTupleItems.h:68
template<class TYP >

void NTuple::_DataImp< TYP >::release | ( |  | ) |
| inline override virtual

Destruct object.

Implements INTupleItem.

Definition at line 131 of file NTupleItems.h.

131 { delete this; }
template<class TYP >

void NTuple::_DataImp< TYP >::reset | ( |  | ) |
| inline override virtual

Reset to default.

Implements INTupleItem.

Definition at line 95 of file NTupleItems.h.

95 { std::fill_n( this->m_buffer, m_length, m_def ); }
NTuple::_DataImp::m_def
TYP m_def
Buffer with default value.
Definition: NTupleItems.h:66
NTuple::_DataImp::m_length
long m_length
Entire buffer length.
Definition: NTupleItems.h:54
std::fill_n
T fill_n(T...args)
NTuple::_Data::m_buffer
TYP * m_buffer
Pointer to data buffer.
Definition: NTuple.h:130
template<class TYP >

void NTuple::_DataImp< TYP >::setDefault | ( | const TYP | val | ) |
| inline override virtual

Set default value.

Implements NTuple::_Data< TYP >.

Reimplemented in NTuple::_MatrixImp< TYP >, NTuple::_ArrayImp< TYP >, and NTuple::_ItemImp< TYP >.

Definition at line 143 of file NTupleItems.h.

143 { m_def = val; }
NTuple::_DataImp::m_def
TYP m_def
Buffer with default value.
Definition: NTupleItems.h:66
template<class TYP >

void NTuple::_DataImp< TYP >::setType | ( | long | t | ) |
| inline override virtual

Set the properties of the _Column.

Implements INTupleItem.

Definition at line 141 of file NTupleItems.h.

141 { m_type = DataTypeInfo::Type( t ); }
NTuple::_DataImp::m_type
DataTypeInfo::Type m_type
_Column type
Definition: NTupleItems.h:64
DataTypeInfo::Type
Type
Definition: DataTypeInfo.h:24
template<class TYP >

long NTuple::_DataImp< TYP >::size | ( |  | ) | const
| inline override virtual

Size of entire object.

Implements INTupleItem.

Reimplemented in NTuple::_MatrixImp< TYP >, NTuple::_ArrayImp< TYP >, and NTuple::_ItemImp< TYP >.

Definition at line 129 of file NTupleItems.h.

129 { return m_length * sizeof( TYP ); }
NTuple::_DataImp::m_length
long m_length
Entire buffer length.
Definition: NTupleItems.h:54
template<class TYP >

INTuple* NTuple::_DataImp< TYP >::tuple | ( |  | ) |
| inline override virtual

Access to hosting ntuple.

Implements INTupleItem.

Definition at line 157 of file NTupleItems.h.

157 { return m_tuple; }
NTuple::_DataImp::m_tuple
INTuple * m_tuple
Pointer to N tuple.
Definition: NTupleItems.h:56
template<class TYP >

long NTuple::_DataImp< TYP >::type | ( |  | ) | const
| inline override virtual

TYP information of the item.

Implements INTupleItem.

Definition at line 139 of file NTupleItems.h.

139 { return m_type; }
NTuple::_DataImp::m_type
DataTypeInfo::Type m_type
_Column type
Definition: NTupleItems.h:64
template<class TYP >

const std::type_info& NTuple::_DataImp< TYP >::typeID | ( |  | ) | const
| inline override virtual

Compiler type ID.

Implements INTupleItem.

Definition at line 127 of file NTupleItems.h.

127 { return m_info; }
NTuple::_DataImp::m_info
const std::type_info & m_info
Item type information.
Definition: NTupleItems.h:70
template<class TYP >

std::string NTuple::_DataImp< TYP >::typeName | ( |  | ) | const
| inline override virtual

Get proper type name.

Implements INTupleItem.

Definition at line 93 of file NTupleItems.h.

93 { return System::typeinfoName( this->typeID() ); }
System::typeinfoName
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:336
NTuple::_DataImp::typeID
const std::type_info & typeID() const override
Compiler type ID.
Definition: NTupleItems.h:127

## Member Data Documentation

template<class TYP >

TYP NTuple::_DataImp< TYP >::m_def
| protected

Buffer with default value.

Definition at line 66 of file NTupleItems.h.

template<class TYP >

std::string NTuple::_DataImp< TYP >::m_index
| protected

Check that values are within a certain range while filling.

Definition at line 60 of file NTupleItems.h.

template<class TYP >

INTupleItem* NTuple::_DataImp< TYP >::m_indexItem = nullptr
| mutable protected

Pointer to index item.

Definition at line 62 of file NTupleItems.h.

template<class TYP >

const std::type_info& NTuple::_DataImp< TYP >::m_info
| protected

Item type information.

Definition at line 70 of file NTupleItems.h.

template<class TYP >

long NTuple::_DataImp< TYP >::m_length
| protected

Entire buffer length.

Definition at line 54 of file NTupleItems.h.

template<class TYP >

std::string NTuple::_DataImp< TYP >::m_name
| protected

_Column name

Definition at line 58 of file NTupleItems.h.

template<class TYP >

Range<TYP> NTuple::_DataImp< TYP >::m_range
| protected

Check that values are within a certain range while filling.

Definition at line 68 of file NTupleItems.h.

template<class TYP >

INTuple* NTuple::_DataImp< TYP >::m_tuple
| protected

Pointer to N tuple.

Definition at line 56 of file NTupleItems.h.

template<class TYP >

DataTypeInfo::Type NTuple::_DataImp< TYP >::m_type
| protected

_Column type

Definition at line 64 of file NTupleItems.h.

The documentation for this class was generated from the following file:

- GaudiKernel/GaudiKernel/NTupleItems.h