The Gaudi Framework  v33r0 (d5ea422b)
NTuple::Tuple Class Reference

Abstract base class which allows the user to interact with the actual N tuple implementation. More...

#include <GaudiKernel/NTuple.h>

Inheritance diagram for NTuple::Tuple:
Collaboration diagram for NTuple::Tuple:

Public Member Functions

template<class TYPE >
StatusCode item (const std::string &name, Item< TYPE > &result)
 Locate a scalar Item of data to the N tuple type safe. More...
 
template<class TYPE >
StatusCode item (const std::string &name, const Item< TYPE > &result) const
 Locate a scalar Item of data to the N tuple type safe (CONST) More...
 
template<class TYPE >
StatusCode item (const std::string &name, Array< TYPE > &result)
 Locate a Array of data to the N tuple type safe. More...
 
template<class TYPE >
StatusCode item (const std::string &name, const Array< TYPE > &result) const
 Locate a Array of data to the N tuple type safe (CONST) More...
 
template<class TYPE >
StatusCode item (const std::string &name, Matrix< TYPE > &result)
 Locate a Matrix of data to the N tuple type safe. More...
 
template<class TYPE >
StatusCode item (const std::string &name, const Matrix< TYPE > &result) const
 Locate a Matrix of data to the N tuple type safe (CONST) More...
 
template<class TYPE >
StatusCode addItem (const std::string &name, Item< TYPE > &itm)
 Add a scalar data item a N tuple. More...
 
template<class TYPE >
StatusCode addItem (const std::string &name, Item< TYPE * > &itm)
 Add an simple object item to an N tuple. More...
 
StatusCode addItem (const std::string &name, Item< IOpaqueAddress * > &itm)
 Add an address object item to an N tuple: specialized call. More...
 
template<class TYPE , class RANGE >
StatusCode addItem (const std::string &name, Item< TYPE > &itm, const RANGE low, const RANGE high)
 Add a scalar data item a N tuple with a range. More...
 
template<class TYPE >
StatusCode addItem (const std::string &name, long dim, Array< TYPE > &array)
 Add an fixed-size Array of data to a column wise N tuple. More...
 
template<class TYPE , class RANGE >
StatusCode addItem (const std::string &name, long dim, Array< TYPE > &array, const RANGE low, const RANGE high)
 Add an fixed-size Array of data to a column wise N tuple with a range. More...
 
template<class TYPE , class INDEX , class RANGE >
StatusCode addItem (const std::string &name, Item< INDEX > &index, Array< TYPE > &array, const RANGE low, const RANGE high)
 Add an indexed Array of data to a column wise N tuple with a range. More...
 
template<class TYPE , class INDEX , class RANGE >
StatusCode addIndexedItem (const std::string &name, Item< INDEX > &index, Array< TYPE > &array, const RANGE low, const RANGE high)
 Add an indexed Array of data to a column wise N tuple with a range. More...
 
template<class TYPE , class INDEX >
StatusCode addItem (const std::string &name, Item< INDEX > &index, Array< TYPE > &array)
 Add an indexed Array of data to a column wise N tuple. More...
 
template<class TYPE , class INDEX >
StatusCode addIndexedItem (const std::string &name, Item< INDEX > &index, Array< TYPE > &array)
 Add an indexed Array of data to a column wise N tuple. More...
 
template<class TYPE >
StatusCode addItem (const std::string &name, long cols, long rows, Matrix< TYPE > &matrix)
 Add an fixed size Matrix of data to a column wise N tuple. More...
 
template<class TYPE , class RANGE >
StatusCode addItem (const std::string &name, long cols, long rows, Matrix< TYPE > &result, const RANGE low, const RANGE high)
 Add an fixed size Matrix of data to a column wise N tuple. More...
 
template<class TYPE , class INDEX >
StatusCode addItem (const std::string &name, Item< INDEX > &index, Matrix< TYPE > &matrix, long rows)
 Add an variable size Matrix of data to a column wise N tuple. More...
 
template<class TYPE , class INDEX >
StatusCode addIndexedItem (const std::string &name, Item< INDEX > &col_index, long rows, Matrix< TYPE > &matrix)
 Add an variable size Matrix of data to a column wise N tuple. More...
 
template<class TYPE , class INDEX , class RANGE >
StatusCode addItem (const std::string &name, Item< INDEX > &index, Matrix< TYPE > &matrix, long rows, const RANGE low, const RANGE high)
 Add an variable size Matrix of data to a column wise N tuple. More...
 
template<class TYPE , class INDEX , class RANGE >
StatusCode addIndexedItem (const std::string &name, Item< INDEX > &index, long rows, Matrix< TYPE > &matrix, const RANGE low, const RANGE high)
 Add an variable size Matrix of data to a column wise N tuple. More...
 
- Public Member Functions inherited from DataObject
 DataObject ()
 Standard Constructor. More...
 
 DataObject (const DataObject &rhs)
 Copy Constructor. More...
 
DataObjectoperator= (const DataObject &rhs)
 Assignment Operator. More...
 
 DataObject (DataObject &&rhs)
 Move Constructor. More...
 
DataObjectoperator= (DataObject &&rhs)
 Move Assignment Operator. More...
 
virtual ~DataObject ()
 Standard Destructor. More...
 
virtual unsigned long addRef ()
 Add reference to object. More...
 
virtual unsigned long release ()
 release reference to object More...
 
virtual const CLIDclID () const
 Retrieve reference to class definition structure. More...
 
const std::stringname () const
 Retreive DataObject name. It is the name when registered in the store. More...
 
virtual StatusCode update ()
 Provide empty placeholder for internal object reconfiguration callback. More...
 
void setRegistry (IRegistry *pRegistry)
 Set pointer to Registry. More...
 
IRegistryregistry () const
 Get pointer to Registry. More...
 
LinkManagerlinkMgr () const
 Retrieve Link manager. More...
 
unsigned char version () const
 Retrieve version number of this object representation. More...
 
void setVersion (unsigned char vsn)
 Set version number of this object representation. More...
 
unsigned long refCount () const
 Return the refcount. More...
 
virtual std::ostreamfillStream (std::ostream &s) const
 Fill the output stream (ASCII) More...
 
- Public Member Functions inherited from INTuple
virtual ItemContaineritems ()=0
 Access item container. More...
 
virtual const ItemContaineritems () const =0
 Access item container (CONST) More...
 
virtual char * setBuffer (char *buff)=0
 Attach data buffer. More...
 
virtual const char * buffer () const =0
 Access data buffer (CONST) More...
 
virtual char * buffer ()=0
 Access data buffer. More...
 
virtual const std::stringtitle () const =0
 Object title. More...
 
virtual void reset ()=0
 Reset all entries to their default values. More...
 
virtual const INTupleItemfind (const std::string &name) const =0
 Find an item row of the Ntuple (CONST) More...
 
virtual INTupleItemfind (const std::string &name)=0
 Find an item row of the Ntuple. More...
 
virtual StatusCode add (INTupleItem *item)=0
 Add an item row to the N tuple. More...
 
virtual StatusCode remove (INTupleItem *item)=0
 Remove an item row (identified by pointer) from the N tuple. More...
 
virtual StatusCode remove (const std::string &name)=0
 Remove an item row (identified by name) from the N tuple. More...
 
virtual StatusCode attachSelector (ISelectStatement *sel)=0
 Attach selector. More...
 
virtual ISelectStatementselector ()=0
 Access selector. More...
 
virtual StatusCode write ()=0
 Write record of the NTuple (Shortcut of writeRecord) More...
 
virtual StatusCode writeRecord ()=0
 Write record of the NTuple. More...
 
virtual StatusCode read ()=0
 Read record of the NTuple (Shortcut of readRecord) More...
 
virtual StatusCode readRecord ()=0
 Read record of the NTuple. More...
 
virtual StatusCode save ()=0
 Save the NTuple. More...
 
virtual ~INTuple ()=default
 

Protected Member Functions

template<class TYPE >
StatusCode i_item (const std::string &name, _Item< TYPE > *&result) const
 Locate a _Column of data to the N tuple type safe. More...
 
template<class TYPE >
StatusCode i_item (const std::string &name, _Item< TYPE * > *&result) const
 Locate a _Column of data to the N tuple type unsafe for objects. More...
 
StatusCode i_item (const std::string &name, _Item< IOpaqueAddress * > *&result) const
 Locate a _Column of data to the N tuple type safe. More...
 
template<class TYPE >
StatusCode i_item (const std::string &name, _Array< TYPE > *&result) const
 Locate a _Array of data to the N tuple type safe. More...
 
template<class TYPE >
StatusCode i_item (const std::string &name, _Matrix< TYPE > *&result) const
 Locate a _Matrix of data to the N tuple type safe. More...
 
template<class TYPE >
StatusCode i_addItem (const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
 Add a _Item of data to the N tuple. More...
 
template<class TYPE >
StatusCode i_addItem (const std::string &name, long dim, const std::string &index, TYPE low, TYPE high, _Array< TYPE > *&result)
 Add a _Item of data to the N tuple. More...
 
template<class TYPE >
StatusCode i_addItem (const std::string &name, long dim1, long dim2, const std::string &index, TYPE low, TYPE high, _Matrix< TYPE > *&result)
 Add a _Item of data to the N tuple. More...
 
template<class TYPE >
StatusCode i_addObject (const std::string &name, _Item< TYPE * > *&result, const std::type_info &)
 
- Protected Member Functions inherited from INTuple
virtual INTupleItemi_find (const std::string &name) const =0
 Internally used by abstract classes. More...
 

Additional Inherited Members

- Public Types inherited from INTuple
typedef std::vector< INTupleItem * > ItemContainer
 
- Static Public Member Functions inherited from DataObject
static const CLIDclassID ()
 Retrieve reference to class definition structure (static access) More...
 

Detailed Description

Abstract base class which allows the user to interact with the actual N tuple implementation.

The class is abstract, because the template methods must be instantiated by the compiler at compile time. Otherwise the references would be unresolved.

Definition at line 385 of file NTuple.h.

Member Function Documentation

◆ addIndexedItem() [1/4]

template<class TYPE , class INDEX , class RANGE >
StatusCode NTuple::Tuple::addIndexedItem ( const std::string name,
Item< INDEX > &  index,
Array< TYPE > &  array,
const RANGE  low,
const RANGE  high 
)
inline

Add an indexed Array of data to a column wise N tuple with a range.

You should use this entry point to add a VARIABLE SIZE ARRAY to a column wise N-tuple. The dimension of the array is unspecified and depends on the data range, which you allowed for the index column.

Hence you have to be careful on the allowed data range of the index column, because the index column determines the total allocated memory.

Note: Checks on the data range are not implemented!

Parameters
nameName of the column in the column wise N-tuple
indexReference to the scalar index column used to determine the size of the array.
arrayReference to the Array<TYPE> datatype, which should be connected to the N-tuple.
lowLower edge of client data values allowed to fill into the N-tuple array.
highUpper edge of client data values allowed to fill into the N-tuple array.
Returns
StatusCode indicating success or failure.

Definition at line 670 of file NTuple.h.

671  {
672  return i_addItem( name, index->range().distance(), index->name(), TYPE( low ), TYPE( high ), array.m_ptr );
673  }
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ addIndexedItem() [2/4]

template<class TYPE , class INDEX >
StatusCode NTuple::Tuple::addIndexedItem ( const std::string name,
Item< INDEX > &  index,
Array< TYPE > &  array 
)
inline

Add an indexed Array of data to a column wise N tuple.

You should use this entry point to add a VARIABLE SIZE ARRAY to a column wise N-tuple. The dimension of the array is unspecified and depends on the data range, which you allowed for the index column.

Hence, you have to be careful on the allowed data range of the index column, because the index column determines the total allocated memory.

Parameters
nameName of the column in the column wise N-tuple
indexReference to the scalar index column used to determine the size of the array.
arrayReference to the Array<TYPE> datatype, which should be connected to the N-tuple.
Returns
StatusCode indicating success or failure.

Definition at line 725 of file NTuple.h.

725  {
726  return i_addItem( name, index->range().distance(), index->name(), Range<TYPE>::min(), Range<TYPE>::max(),
727  array.m_ptr );
728  }
static TYP min()
Minimal number of data.
Definition: NTuple.h:92
static TYP max()
Maximal number of data.
Definition: NTuple.h:94
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ addIndexedItem() [3/4]

template<class TYPE , class INDEX >
StatusCode NTuple::Tuple::addIndexedItem ( const std::string name,
Item< INDEX > &  col_index,
long  rows,
Matrix< TYPE > &  matrix 
)
inline

Add an variable size Matrix of data to a column wise N tuple.

You should use this entry point to add a VARIABLE SIZE MATRIX to a column wise N-tuple. The number of columns of the matrix is given by the allowed data range of the index column. The number of rows however, which are allowed in the matrix must be specified explicitly and cannot be variable.

Attention: Do not confuse with entry point to add a FIXED SIZE MATRIX.

Parameters
nameName of the column in the column wise N-tuple
indexReference to the scalar index column used to determine the number of data columns in the matrix
rowsNumber of data rows in the Matrix.
matrixReference to the Matrix<TYPE> datatype, which should be connected to the N-tuple.
Returns
StatusCode indicating success or failure.

Definition at line 832 of file NTuple.h.

832  {
833  return i_addItem( name, col_index->range().distance(), rows, col_index->name(), Range<TYPE>::min(),
834  Range<TYPE>::max(), matrix.m_ptr );
835  }
static TYP min()
Minimal number of data.
Definition: NTuple.h:92
static TYP max()
Maximal number of data.
Definition: NTuple.h:94
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ addIndexedItem() [4/4]

template<class TYPE , class INDEX , class RANGE >
StatusCode NTuple::Tuple::addIndexedItem ( const std::string name,
Item< INDEX > &  index,
long  rows,
Matrix< TYPE > &  matrix,
const RANGE  low,
const RANGE  high 
)
inline

Add an variable size Matrix of data to a column wise N tuple.

You should use this entry point to add a VARIABLE SIZE MATRIX to a column wise N-tuple. The number of columns of the matrix is given by the allowed data range of the index column. The number of rows however, which are allowed in the matrix must be specified explicitly and cannot be variable. Also the range of allowed data values to be filled into the data area of the matrix can be specified.

Note: Checks on the data range are not implemented! Attention: Do not confuse with entry point to add a FIXED SIZE MATRIX.

Parameters
nameName of the column in the column wise N-tuple
indexReference to the scalar index column used to determine the number of data columns in the matrix
rowsNumber of data rows in the Matrix.
matrixReference to the Matrix<TYPE> datatype, which should be connected to the N-tuple.
lowLower edge of client data values allowed to fill into the N-tuple matrix.
highUpper edge of client data values allowed to fill into the N-tuple matrix.
Returns
StatusCode indicating success or failure.

Definition at line 903 of file NTuple.h.

904  {
905  return i_addItem( name, index->range().distance(), rows, index->name(), TYPE( low ), TYPE( high ), matrix.m_ptr );
906  }
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ addItem() [1/12]

template<class TYPE >
StatusCode NTuple::Tuple::addItem ( const std::string name,
Item< TYPE > &  itm 
)
inline

Add a scalar data item a N tuple.

Use this entry point to connect any allowed scalar data type to an N-tuple. The value filled, may have any range. Do NOT use this entry point to specify an index column in a column wise N-tuple.

Parameters
nameName of the column in the column wise N-tuple
itmReference to the Item<TYPE> datatype, which should be connected to the N-tuple.
Returns
StatusCode indicating success or failure.

Definition at line 513 of file NTuple.h.

513  {
514  typedef Range<TYPE> _R;
515  return i_addItem( name, 1, "", _R::min(), _R::max(), itm.m_ptr );
516  }
EventIDBase min(const EventIDBase &lhs, const EventIDBase &rhs)
Definition: EventIDBase.h:212
EventIDBase max(const EventIDBase &lhs, const EventIDBase &rhs)
Definition: EventIDBase.h:225
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ addItem() [2/12]

template<class TYPE >
StatusCode NTuple::Tuple::addItem ( const std::string name,
Item< TYPE * > &  itm 
)
inline

Add an simple object item to an N tuple.

Parameters
nameName of the column in the column wise N-tuple
itmReference to the Item<TYPE> datatype, which should be connected to the N-tuple.
Returns
StatusCode indicating success or failure.

Definition at line 527 of file NTuple.h.

527  {
528  return i_addObject( name, itm.m_ptr, typeid( TYPE ) );
529  }
StatusCode i_addObject(const std::string &name, _Item< TYPE * > *&result, const std::type_info &)
Definition: NTuple.h:459
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72

◆ addItem() [3/12]

StatusCode NTuple::Tuple::addItem ( const std::string name,
Item< IOpaqueAddress * > &  itm 
)
inline

Add an address object item to an N tuple: specialized call.

Parameters
nameName of the column in the column wise N-tuple
itmReference to the Item<TYPE> datatype, which should be connected to the N-tuple.
Returns
StatusCode indicating success or failure.

Definition at line 539 of file NTuple.h.

539  {
540  typedef Range<IOpaqueAddress*> _R;
541  return i_addItem( name, 1, "", _R::min(), _R::max(), itm.m_ptr );
542  }
EventIDBase min(const EventIDBase &lhs, const EventIDBase &rhs)
Definition: EventIDBase.h:212
EventIDBase max(const EventIDBase &lhs, const EventIDBase &rhs)
Definition: EventIDBase.h:225
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ addItem() [4/12]

template<class TYPE , class RANGE >
StatusCode NTuple::Tuple::addItem ( const std::string name,
Item< TYPE > &  itm,
const RANGE  low,
const RANGE  high 
)
inline

Add a scalar data item a N tuple with a range.

Typically this entry point is used to specuify index column with a fixed data range for a column wise N-tuple.

Note: Checks on the data range are not implemented!

Parameters
nameName of the column in the column wise N-tuple
itmReference to the Item<TYPE> datatype, which should be connected to the N-tuple.
lowLower edge of client data values allowed to fill into the N-tuple array.
highUpper edge of client data values allowed to fill into the N-tuple array.
Returns
StatusCode indicating success or failure.

Definition at line 562 of file NTuple.h.

562  {
563  return i_addItem( name, 1, "", TYPE( low ), TYPE( high ), itm.m_ptr );
564  }
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ addItem() [5/12]

template<class TYPE >
StatusCode NTuple::Tuple::addItem ( const std::string name,
long  dim,
Array< TYPE > &  array 
)
inline

Add an fixed-size Array of data to a column wise N tuple.

You should use this entry point to add a FIXED SIZE ARRAY to a column wise N-tuple. The dimension of the array must be specified.

Parameters
nameName of the column in the column wise N-tuple
dimLength of the array to be added to the N-tuple
arrayReference to the Array<TYPE> datatype, which should be connected to the N-tuple.
Returns
StatusCode indicating success or failure.

Definition at line 580 of file NTuple.h.

580  {
581  return i_addItem( name, dim, "", Range<TYPE>::min(), Range<TYPE>::max(), array.m_ptr );
582  }
static TYP min()
Minimal number of data.
Definition: NTuple.h:92
static TYP max()
Maximal number of data.
Definition: NTuple.h:94
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ addItem() [6/12]

template<class TYPE , class RANGE >
StatusCode NTuple::Tuple::addItem ( const std::string name,
long  dim,
Array< TYPE > &  array,
const RANGE  low,
const RANGE  high 
)
inline

Add an fixed-size Array of data to a column wise N tuple with a range.

You should use this entry point to add a FIXED SIZE ARRAY to a column wise N-tuple. The dimension of the array must be specified.

Note: Checks on the data range are not implemented!

Parameters
nameName of the column in the column wise N-tuple
dimLength of the array to be added to the N-tuple
arrayReference to the Array<TYPE> datatype, which should be connected to the N-tuple.
lowLower edge of client data values allowed to fill into the N-tuple array.
highUpper edge of client data values allowed to fill into the N-tuple array.
Returns
StatusCode indicating success or failure.

Definition at line 604 of file NTuple.h.

604  {
605  return i_addItem( name, dim, "", TYPE( low ), TYPE( high ), array.m_ptr );
606  }
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ addItem() [7/12]

template<class TYPE , class INDEX , class RANGE >
StatusCode NTuple::Tuple::addItem ( const std::string name,
Item< INDEX > &  index,
Array< TYPE > &  array,
const RANGE  low,
const RANGE  high 
)
inline

Add an indexed Array of data to a column wise N tuple with a range.

You should use this entry point to add a VARIABLE SIZE ARRAY to a column wise N-tuple. The dimension of the array is unspecified and depends on the data range, which you allowed for the index column.

Hence you have to be careful on the allowed data range of the index column, because the index column determines the total allocated memory.

Note: Checks on the data range are not implemented!

Note: Due to confusion with the entry point to connecting a fixed size array the use of this function is DEPRECATED *** please use addIndexedItem(...) instead.

Parameters
nameName of the column in the column wise N-tuple
indexReference to the scalar index column used to determine the size of the array.
arrayReference to the Array<TYPE> datatype, which should be connected to the N-tuple.
lowLower edge of client data values allowed to fill into the N-tuple array.
highUpper edge of client data values allowed to fill into the N-tuple array.
Returns
StatusCode indicating success or failure.

Definition at line 639 of file NTuple.h.

640  {
641  return i_addItem( name, index->range().distance(), index->name(), TYPE( low ), TYPE( high ), array.m_ptr );
642  }
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ addItem() [8/12]

template<class TYPE , class INDEX >
StatusCode NTuple::Tuple::addItem ( const std::string name,
Item< INDEX > &  index,
Array< TYPE > &  array 
)
inline

Add an indexed Array of data to a column wise N tuple.

You should use this entry point to add a VARIABLE SIZE ARRAY to a column wise N-tuple. The dimension of the array is unspecified and depends on the data range, which you allowed for the index column.

Hence, you have to be careful on the allowed data range of the index column, because the index column determines the total allocated memory.

Note: Due to confusion with the entry point to connecting a fixed size array the use of this member function is DEPRECATED *** please use addIndexedItem(...) instead.

Parameters
nameName of the column in the column wise N-tuple
indexReference to the scalar index column used to determine the size of the array.
arrayReference to the Array<TYPE> datatype, which should be connected to the N-tuple.
Returns
StatusCode indicating success or failure.

Definition at line 700 of file NTuple.h.

700  {
701  return i_addItem( name, index->range().distance(), index->name(), Range<TYPE>::min(), Range<TYPE>::max(),
702  array.m_ptr );
703  }
static TYP min()
Minimal number of data.
Definition: NTuple.h:92
static TYP max()
Maximal number of data.
Definition: NTuple.h:94
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
struct GAUDI_API array
Parametrisation class for redirection array - like implementation.
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ addItem() [9/12]

template<class TYPE >
StatusCode NTuple::Tuple::addItem ( const std::string name,
long  cols,
long  rows,
Matrix< TYPE > &  matrix 
)
inline

Add an fixed size Matrix of data to a column wise N tuple.

You should use this entry point to add a FIXED SIZE MATRIX to a column wise N-tuple. The dimension of the matrix must be specified.

Attention: Do not confuse with entry point to add a VARIABLE SIZE MATRIX!

Parameters
nameName of the column in the column wise N-tuple
colsNumber of data columns in the Matrix.
rowsNumber of data rows in the Matrix.
matrixReference to the Matrix<TYPE> datatype, which should be connected to the N-tuple.
Returns
StatusCode indicating success or failure.

Definition at line 748 of file NTuple.h.

748  {
749  return i_addItem( name, cols, rows, "", Range<TYPE>::min(), Range<TYPE>::max(), matrix.m_ptr );
750  }
static TYP min()
Minimal number of data.
Definition: NTuple.h:92
static TYP max()
Maximal number of data.
Definition: NTuple.h:94
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ addItem() [10/12]

template<class TYPE , class RANGE >
StatusCode NTuple::Tuple::addItem ( const std::string name,
long  cols,
long  rows,
Matrix< TYPE > &  result,
const RANGE  low,
const RANGE  high 
)
inline

Add an fixed size Matrix of data to a column wise N tuple.

You should use this entry point to add a FIXED SIZE MATRIX to a column wise N-tuple. The dimension of the matrix must be specified.

Note: Checks on the data range are not implemented! Attention: Do not confuse with entry point to add a VARIABLE SIZE MATRIX!

Parameters
nameName of the column in the column wise N-tuple
colsNumber of data columns in the Matrix.
rowsNumber of data rows in the Matrix.
matrixReference to the Matrix<TYPE> datatype, which should be connected to the N-tuple.
lowLower edge of client data values allowed to fill into the N-tuple matrix.
highUpper edge of client data values allowed to fill into the N-tuple matrix.
Returns
StatusCode indicating success or failure.

Definition at line 775 of file NTuple.h.

776  {
777  return i_addItem( name, cols, rows, "", TYPE( low ), TYPE( high ), result.m_ptr );
778  }
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ addItem() [11/12]

template<class TYPE , class INDEX >
StatusCode NTuple::Tuple::addItem ( const std::string name,
Item< INDEX > &  index,
Matrix< TYPE > &  matrix,
long  rows 
)
inline

Add an variable size Matrix of data to a column wise N tuple.

You should use this entry point to add a VARIABLE SIZE MATRIX to a column wise N-tuple. The number of columns of the matrix is given by the allowed data range of the index column. The number of rows however, which are allowed in the matrix must be specified explicitly and cannot be variable.

Attention: Do not confuse with entry point to add a FIXED SIZE MATRIX.

Note: Due to confusion with the entry point to connecting a fixed size matrix the use of this member function is DEPRECATED *** please use addIndexedItem(...) instead.

Parameters
nameName of the column in the column wise N-tuple
indexReference to the scalar index column used to determine the number of data columns in the matrix
matrixReference to the Matrix<TYPE> datatype, which should be connected to the N-tuple.
rowsNumber of data rows in the Matrix.
Returns
StatusCode indicating success or failure.

Definition at line 806 of file NTuple.h.

806  {
807  return i_addItem( name, index->range().distance(), rows, index->name(), Range<TYPE>::min(), Range<TYPE>::max(),
808  matrix.m_ptr );
809  }
static TYP min()
Minimal number of data.
Definition: NTuple.h:92
static TYP max()
Maximal number of data.
Definition: NTuple.h:94
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ addItem() [12/12]

template<class TYPE , class INDEX , class RANGE >
StatusCode NTuple::Tuple::addItem ( const std::string name,
Item< INDEX > &  index,
Matrix< TYPE > &  matrix,
long  rows,
const RANGE  low,
const RANGE  high 
)
inline

Add an variable size Matrix of data to a column wise N tuple.

You should use this entry point to add a VARIABLE SIZE MATRIX to a column wise N-tuple. The number of columns of the matrix is given by the allowed data range of the index column. The number of rows however, which are allowed in the matrix must be specified explicitly and cannot be variable. Also the range of allowed data values to be filled into the data area of the matrix can be specified.

Note: Checks on the data range are not implemented! Attention: Do not confuse with entry point to add a FIXED SIZE MATRIX.

Note: Due to confusion with the entry point to connecting a fixed size matrix the use of this member function is DEPRECATED *** please use addIndexedItem(...) instead.

Parameters
nameName of the column in the column wise N-tuple
indexReference to the scalar index column used to determine the number of data columns in the matrix
matrixReference to the Matrix<TYPE> datatype, which should be connected to the N-tuple.
rowsNumber of data rows in the Matrix.
lowLower edge of client data values allowed to fill into the N-tuple matrix.
highUpper edge of client data values allowed to fill into the N-tuple matrix.
Returns
StatusCode indicating success or failure.

Definition at line 870 of file NTuple.h.

871  {
872  return i_addItem( name, index->range().distance(), rows, index->name(), TYPE( low ), TYPE( high ), matrix.m_ptr );
873  }
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_addItem(const std::string &name, long, const std::string &, TYPE low, TYPE high, _Item< TYPE > *&result)
Add a _Item of data to the N tuple.
Definition: NTuple.h:430

◆ i_addItem() [1/3]

template<class TYPE >
StatusCode NTuple::Tuple::i_addItem ( const std::string name,
long  ,
const std::string ,
TYPE  low,
TYPE  high,
_Item< TYPE > *&  result 
)
inlineprotected

Add a _Item of data to the N tuple.

Definition at line 430 of file NTuple.h.

431  {
432  if ( !i_find( name ) ) {
433  TYPE nil;
434  nil = 0;
435  return add( result = _Item<TYPE>::create( this, name, typeid( TYPE ), low, high, nil ) );
436  }
437  return StatusCode::FAILURE;
438  }
virtual StatusCode add(INTupleItem *item)=0
Add an item row to the N tuple.
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
virtual INTupleItem * i_find(const std::string &name) const =0
Internally used by abstract classes.
constexpr static const auto FAILURE
Definition: StatusCode.h:97
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:36

◆ i_addItem() [2/3]

template<class TYPE >
StatusCode NTuple::Tuple::i_addItem ( const std::string name,
long  dim,
const std::string index,
TYPE  low,
TYPE  high,
_Array< TYPE > *&  result 
)
inlineprotected

Add a _Item of data to the N tuple.

Definition at line 441 of file NTuple.h.

442  {
443  if ( !i_find( name ) && clID() == CLID_ColumnWiseTuple ) {
444  return add( result = _Array<TYPE>::create( this, name, typeid( TYPE ), index, dim, low, high, TYPE( 0 ) ) );
445  }
446  return StatusCode::FAILURE;
447  }
virtual StatusCode add(INTupleItem *item)=0
Add an item row to the N tuple.
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:43
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
virtual const CLID & clID() const
Retrieve reference to class definition structure.
Definition: DataObject.cpp:66
virtual INTupleItem * i_find(const std::string &name) const =0
Internally used by abstract classes.
constexpr static const auto FAILURE
Definition: StatusCode.h:97

◆ i_addItem() [3/3]

template<class TYPE >
StatusCode NTuple::Tuple::i_addItem ( const std::string name,
long  dim1,
long  dim2,
const std::string index,
TYPE  low,
TYPE  high,
_Matrix< TYPE > *&  result 
)
inlineprotected

Add a _Item of data to the N tuple.

Definition at line 450 of file NTuple.h.

451  {
452  if ( !i_find( name ) && clID() == CLID_ColumnWiseTuple ) {
453  return add( result =
454  _Matrix<TYPE>::create( this, name, typeid( TYPE ), index, dim1, dim2, low, high, TYPE( 0 ) ) );
455  }
456  return StatusCode::FAILURE;
457  }
virtual StatusCode add(INTupleItem *item)=0
Add an item row to the N tuple.
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
virtual const CLID & clID() const
Retrieve reference to class definition structure.
Definition: DataObject.cpp:66
virtual INTupleItem * i_find(const std::string &name) const =0
Internally used by abstract classes.
constexpr static const auto FAILURE
Definition: StatusCode.h:97
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:50

◆ i_addObject()

template<class TYPE >
StatusCode NTuple::Tuple::i_addObject ( const std::string name,
_Item< TYPE * > *&  result,
const std::type_info  
)
inlineprotected

Definition at line 459 of file NTuple.h.

459  {
460  if ( !i_find( name ) && clID() == CLID_ColumnWiseTuple ) {
461  return add( result = (_Item<TYPE*>*)_Item<void*>::create( this, name, typeid( TYPE ), 0, 0, 0 ) );
462  }
463  return StatusCode::FAILURE;
464  }
virtual StatusCode add(INTupleItem *item)=0
Add an item row to the N tuple.
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
virtual const CLID & clID() const
Retrieve reference to class definition structure.
Definition: DataObject.cpp:66
virtual INTupleItem * i_find(const std::string &name) const =0
Internally used by abstract classes.
constexpr static const auto FAILURE
Definition: StatusCode.h:97
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:36

◆ i_item() [1/5]

template<class TYPE >
StatusCode NTuple::Tuple::i_item ( const std::string name,
_Item< TYPE > *&  result 
) const
inlineprotected

Locate a _Column of data to the N tuple type safe.

Definition at line 390 of file NTuple.h.

390  {
391  try {
392  result = dynamic_cast<_Item<TYPE>*>( i_find( name ) );
393  } catch ( ... ) { result = nullptr; }
394  return result ? StatusCode::SUCCESS : StatusCode::FAILURE;
395  }
constexpr static const auto SUCCESS
Definition: StatusCode.h:96
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
virtual INTupleItem * i_find(const std::string &name) const =0
Internally used by abstract classes.
constexpr static const auto FAILURE
Definition: StatusCode.h:97

◆ i_item() [2/5]

template<class TYPE >
StatusCode NTuple::Tuple::i_item ( const std::string name,
_Item< TYPE * > *&  result 
) const
inlineprotected

Locate a _Column of data to the N tuple type unsafe for objects.

Definition at line 398 of file NTuple.h.

398  {
399  try {
400  _Item<void*>* p = dynamic_cast<_Item<void*>*>( i_find( name ) );
401  result = (_Item<TYPE*>*)p;
402  } catch ( ... ) { result = nullptr; }
403  return result ? StatusCode::SUCCESS : StatusCode::FAILURE;
404  }
constexpr static const auto SUCCESS
Definition: StatusCode.h:96
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
virtual INTupleItem * i_find(const std::string &name) const =0
Internally used by abstract classes.
constexpr static const auto FAILURE
Definition: StatusCode.h:97

◆ i_item() [3/5]

StatusCode NTuple::Tuple::i_item ( const std::string name,
_Item< IOpaqueAddress * > *&  result 
) const
inlineprotected

Locate a _Column of data to the N tuple type safe.

Definition at line 406 of file NTuple.h.

406  {
407  try {
408  result = dynamic_cast<_Item<IOpaqueAddress*>*>( i_find( name ) );
409  } catch ( ... ) { result = nullptr; }
410  return result ? StatusCode::SUCCESS : StatusCode::FAILURE;
411  }
constexpr static const auto SUCCESS
Definition: StatusCode.h:96
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
virtual INTupleItem * i_find(const std::string &name) const =0
Internally used by abstract classes.
constexpr static const auto FAILURE
Definition: StatusCode.h:97

◆ i_item() [4/5]

template<class TYPE >
StatusCode NTuple::Tuple::i_item ( const std::string name,
_Array< TYPE > *&  result 
) const
inlineprotected

Locate a _Array of data to the N tuple type safe.

Definition at line 414 of file NTuple.h.

414  {
415  try {
416  if ( clID() == CLID_ColumnWiseTuple ) { result = dynamic_cast<_Array<TYPE>*>( i_find( name ) ); }
417  } catch ( ... ) { result = nullptr; }
418  return result ? StatusCode::SUCCESS : StatusCode::FAILURE;
419  }
constexpr static const auto SUCCESS
Definition: StatusCode.h:96
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
virtual const CLID & clID() const
Retrieve reference to class definition structure.
Definition: DataObject.cpp:66
virtual INTupleItem * i_find(const std::string &name) const =0
Internally used by abstract classes.
constexpr static const auto FAILURE
Definition: StatusCode.h:97

◆ i_item() [5/5]

template<class TYPE >
StatusCode NTuple::Tuple::i_item ( const std::string name,
_Matrix< TYPE > *&  result 
) const
inlineprotected

Locate a _Matrix of data to the N tuple type safe.

Definition at line 422 of file NTuple.h.

422  {
423  try {
424  if ( clID() == CLID_ColumnWiseTuple ) { result = dynamic_cast<_Matrix<TYPE>*>( i_find( name ) ); }
425  } catch ( ... ) { result = nullptr; }
426  return result ? StatusCode::SUCCESS : StatusCode::FAILURE;
427  }
constexpr static const auto SUCCESS
Definition: StatusCode.h:96
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
virtual const CLID & clID() const
Retrieve reference to class definition structure.
Definition: DataObject.cpp:66
virtual INTupleItem * i_find(const std::string &name) const =0
Internally used by abstract classes.
constexpr static const auto FAILURE
Definition: StatusCode.h:97

◆ item() [1/6]

template<class TYPE >
StatusCode NTuple::Tuple::item ( const std::string name,
Item< TYPE > &  result 
)
inline

Locate a scalar Item of data to the N tuple type safe.

Definition at line 469 of file NTuple.h.

469  {
470  return i_item( name, result.m_ptr );
471  }
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_item(const std::string &name, _Item< TYPE > *&result) const
Locate a _Column of data to the N tuple type safe.
Definition: NTuple.h:390

◆ item() [2/6]

template<class TYPE >
StatusCode NTuple::Tuple::item ( const std::string name,
const Item< TYPE > &  result 
) const
inline

Locate a scalar Item of data to the N tuple type safe (CONST)

Definition at line 474 of file NTuple.h.

474  {
475  return i_item( name, result.m_ptr );
476  }
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_item(const std::string &name, _Item< TYPE > *&result) const
Locate a _Column of data to the N tuple type safe.
Definition: NTuple.h:390

◆ item() [3/6]

template<class TYPE >
StatusCode NTuple::Tuple::item ( const std::string name,
Array< TYPE > &  result 
)
inline

Locate a Array of data to the N tuple type safe.

Definition at line 479 of file NTuple.h.

479  {
480  return i_item( name, result.m_ptr );
481  }
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_item(const std::string &name, _Item< TYPE > *&result) const
Locate a _Column of data to the N tuple type safe.
Definition: NTuple.h:390

◆ item() [4/6]

template<class TYPE >
StatusCode NTuple::Tuple::item ( const std::string name,
const Array< TYPE > &  result 
) const
inline

Locate a Array of data to the N tuple type safe (CONST)

Definition at line 484 of file NTuple.h.

484  {
485  return i_item( name, result.m_ptr );
486  }
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_item(const std::string &name, _Item< TYPE > *&result) const
Locate a _Column of data to the N tuple type safe.
Definition: NTuple.h:390

◆ item() [5/6]

template<class TYPE >
StatusCode NTuple::Tuple::item ( const std::string name,
Matrix< TYPE > &  result 
)
inline

Locate a Matrix of data to the N tuple type safe.

Definition at line 489 of file NTuple.h.

489  {
490  return i_item( name, result.m_ptr );
491  }
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_item(const std::string &name, _Item< TYPE > *&result) const
Locate a _Column of data to the N tuple type safe.
Definition: NTuple.h:390

◆ item() [6/6]

template<class TYPE >
StatusCode NTuple::Tuple::item ( const std::string name,
const Matrix< TYPE > &  result 
) const
inline

Locate a Matrix of data to the N tuple type safe (CONST)

Definition at line 495 of file NTuple.h.

495  {
496  return i_item( name, result.m_ptr );
497  }
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
StatusCode i_item(const std::string &name, _Item< TYPE > *&result) const
Locate a _Column of data to the N tuple type safe.
Definition: NTuple.h:390

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