The Gaudi Framework  master (594c33fa)
NTuple::TupleImp Class Reference

#include </builds/gaudi/Gaudi/GaudiKernel/include/GaudiKernel/NTupleImplementation.h>

Inheritance diagram for NTuple::TupleImp:
Collaboration diagram for NTuple::TupleImp:

Public Member Functions

INTupleItemi_find (const std::string &name) const override
 Internally used by abstract classes. More...
 
 TupleImp (std::string title)
 Standard Constructor. More...
 
 ~TupleImp () override
 Standard Destructor. More...
 
ItemContaineritems () override
 Access item container. More...
 
const ItemContaineritems () const override
 Access item container (CONST) More...
 
const std::stringtitle () const override
 Object title. More...
 
const INTupleItemfind (const std::string &name) const override
 Find an item row of the Ntuple (CONST) More...
 
INTupleItemfind (const std::string &name) override
 Find an item row of the Ntuple. More...
 
char * buffer () override
 Access N tuple data buffer. More...
 
const char * buffer () const override
 Access N tuple data buffer (CONST) More...
 
IConversionSvcconversionService () const
 Access conversion service. More...
 
void setConversionService (IConversionSvc *svc)
 Access conversion service. More...
 
INTupleSvctupleService () const
 Access conversion service. More...
 
void setTupleService (INTupleSvc *svc)
 Access conversion service. More...
 
StatusCode attachSelector (ISelectStatement *sel) override
 Attach selector. More...
 
ISelectStatementselector () override
 Access selector. More...
 
virtual char * setBuffer (std::unique_ptr< char[]> &&buff)
 Set N tuple data buffer. More...
 
char * setBuffer (char *buff) override
 Set N tuple data buffer. More...
 
void reset () override
 Reset all entries to their default values. More...
 
StatusCode add (INTupleItem *item) override
 Add an item row to the N tuple. More...
 
StatusCode remove (INTupleItem *item) override
 Remove an item row (identified by pointer) from the N tuple. More...
 
StatusCode remove (const std::string &name) override
 Remove an item row (identified by name) from the N tuple. More...
 
StatusCode write () override
 Write record of the NTuple (Shortcut of writeRecord) More...
 
StatusCode writeRecord () override
 Write record of the NTuple. More...
 
StatusCode read () override
 Read record of the NTuple (Shortcut of readRecord) More...
 
StatusCode readRecord () override
 Read record of the NTuple. More...
 
StatusCode save () override
 Save the NTuple. More...
 
- Public Member Functions inherited from NTuple::Tuple
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 ()
 Retrieve Link manager. More...
 
const LinkManagerlinkMgr () const
 
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 ~INTuple ()=default
 

Protected Attributes

ItemContainer m_items
 Container with N tuple _Columns. More...
 
bool m_isBooked = false
 Flag wether N tuple is booked. More...
 
std::string m_title
 N tuple title. More...
 
SmartIF< ISelectStatementm_pSelector
 Possibly hanging selector. More...
 
std::unique_ptr< char[]> m_buffer
 Buffer. More...
 
INTupleSvcm_ntupleSvc = nullptr
 Reference to N-tuple service used. More...
 
IConversionSvcm_cnvSvc = nullptr
 Reference to the conversion service used. More...
 

Private Member Functions

 TupleImp (const TupleImp &)=delete
 Standard Copy Constructor. 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...
 
- Protected Member Functions inherited from NTuple::Tuple
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 &)
 

Detailed Description

Definition at line 26 of file NTupleImplementation.h.

Constructor & Destructor Documentation

◆ TupleImp() [1/2]

NTuple::TupleImp::TupleImp ( const TupleImp )
privatedelete

Standard Copy Constructor.

◆ TupleImp() [2/2]

NTuple::TupleImp::TupleImp ( std::string  title)

Standard Constructor.

Definition at line 36 of file NTupleImplementation.cpp.

36 : m_title( std::move( title ) ) {}

◆ ~TupleImp()

NTuple::TupleImp::~TupleImp ( )
override

Standard Destructor.

Definition at line 39 of file NTupleImplementation.cpp.

39  {
40  for ( auto& i : m_items ) i->release();
41  }

Member Function Documentation

◆ add()

StatusCode NTuple::TupleImp::add ( INTupleItem item)
overridevirtual

Add an item row to the N tuple.

Implements INTuple.

Definition at line 65 of file NTupleImplementation.cpp.

65  {
66  if ( item ) {
67  INTupleItem* i = i_find( item->name() );
68  if ( !i ) {
70  return StatusCode::SUCCESS;
71  }
72  }
73  return StatusCode::FAILURE;
74  }

◆ attachSelector()

StatusCode NTuple::TupleImp::attachSelector ( ISelectStatement sel)
overridevirtual

Attach selector.

Implements INTuple.

Definition at line 44 of file NTupleImplementation.cpp.

44  {
45  m_pSelector = sel;
46  return StatusCode::SUCCESS;
47  }

◆ buffer() [1/2]

const char* NTuple::TupleImp::buffer ( ) const
inlineoverridevirtual

Access N tuple data buffer (CONST)

Implements INTuple.

Definition at line 69 of file NTupleImplementation.h.

69 { return m_buffer.get(); }

◆ buffer() [2/2]

char* NTuple::TupleImp::buffer ( )
inlineoverridevirtual

Access N tuple data buffer.

Implements INTuple.

Definition at line 67 of file NTupleImplementation.h.

67 { return m_buffer.get(); }

◆ conversionService()

IConversionSvc* NTuple::TupleImp::conversionService ( ) const
inline

Access conversion service.

Definition at line 71 of file NTupleImplementation.h.

71 { return m_cnvSvc; }

◆ find() [1/2]

const INTupleItem* NTuple::TupleImp::find ( const std::string name) const
inlineoverridevirtual

Find an item row of the Ntuple (CONST)

Implements INTuple.

Definition at line 63 of file NTupleImplementation.h.

63 { return i_find( name ); }

◆ find() [2/2]

INTupleItem* NTuple::TupleImp::find ( const std::string name)
inlineoverridevirtual

Find an item row of the Ntuple.

Implements INTuple.

Definition at line 65 of file NTupleImplementation.h.

65 { return i_find( name ); }

◆ i_find()

INTupleItem * NTuple::TupleImp::i_find ( const std::string name) const
overridevirtual

Internally used by abstract classes.

Locate a column of data to the N tuple (not type safe)

Implements INTuple.

Definition at line 58 of file NTupleImplementation.cpp.

58  {
60  [&]( ItemContainer::const_reference j ) { return j->name() == name; } );
61  return i != std::end( m_items ) ? const_cast<INTupleItem*>( *i ) : nullptr;
62  }

◆ items() [1/2]

const ItemContainer& NTuple::TupleImp::items ( ) const
inlineoverridevirtual

Access item container (CONST)

Implements INTuple.

Definition at line 59 of file NTupleImplementation.h.

59 { return m_items; }

◆ items() [2/2]

ItemContainer& NTuple::TupleImp::items ( )
inlineoverridevirtual

Access item container.

Implements INTuple.

Definition at line 57 of file NTupleImplementation.h.

57 { return m_items; }

◆ read()

StatusCode NTuple::TupleImp::read ( )
overridevirtual

Read record of the NTuple (Shortcut of readRecord)

Read record of the NTuple.

Implements INTuple.

Definition at line 105 of file NTupleImplementation.cpp.

105 { return m_ntupleSvc->readRecord( this ); }

◆ readRecord()

StatusCode NTuple::TupleImp::readRecord ( )
overridevirtual

Read record of the NTuple.

Implements INTuple.

Definition at line 107 of file NTupleImplementation.cpp.

107 { return m_ntupleSvc->readRecord( this ); }

◆ remove() [1/2]

StatusCode NTuple::TupleImp::remove ( const std::string name)
overridevirtual

Remove an item row (identified by name) from the N tuple.

Remove a column from the N-tuple.

Implements INTuple.

Definition at line 77 of file NTupleImplementation.cpp.

77  {
78  INTupleItem* i = i_find( name );
79  return i ? remove( i ) : StatusCode::FAILURE;
80  }

◆ remove() [2/2]

StatusCode NTuple::TupleImp::remove ( INTupleItem item)
overridevirtual

Remove an item row (identified by pointer) from the N tuple.

Remove a column from the N-tuple.

Implements INTuple.

Definition at line 83 of file NTupleImplementation.cpp.

83  {
84  auto i = std::find( std::begin( m_items ), std::end( m_items ), item );
85  if ( i == std::end( m_items ) ) return StatusCode::FAILURE;
86  m_items.erase( i );
87  item->release();
88  return StatusCode::SUCCESS;
89  }

◆ reset()

void NTuple::TupleImp::reset ( )
overridevirtual

Reset all entries to their default values.

Reset N tuple to default values.

Implements INTuple.

Definition at line 53 of file NTupleImplementation.cpp.

53  {
54  for ( auto& i : m_items ) i->reset();
55  }

◆ save()

StatusCode NTuple::TupleImp::save ( )
overridevirtual

Save the NTuple.

Implements INTuple.

Definition at line 109 of file NTupleImplementation.cpp.

109 { return m_ntupleSvc->save( this ); }

◆ selector()

ISelectStatement * NTuple::TupleImp::selector ( )
overridevirtual

Access selector.

Implements INTuple.

Definition at line 50 of file NTupleImplementation.cpp.

50 { return m_pSelector.get(); }

◆ setBuffer() [1/2]

char * NTuple::TupleImp::setBuffer ( char *  buff)
overridevirtual

Set N tuple data buffer.

Implements INTuple.

Definition at line 96 of file NTupleImplementation.cpp.

96  {
97  m_buffer.reset( buff );
98  return m_buffer.get();
99  }

◆ setBuffer() [2/2]

char * NTuple::TupleImp::setBuffer ( std::unique_ptr< char[]> &&  buff)
virtual

Set N tuple data buffer.

Definition at line 91 of file NTupleImplementation.cpp.

91  {
92  m_buffer = std::move( buff );
93  return m_buffer.get();
94  }

◆ setConversionService()

void NTuple::TupleImp::setConversionService ( IConversionSvc svc)
inline

Access conversion service.

Definition at line 73 of file NTupleImplementation.h.

73 { m_cnvSvc = svc; }

◆ setTupleService()

void NTuple::TupleImp::setTupleService ( INTupleSvc svc)
inline

Access conversion service.

Definition at line 77 of file NTupleImplementation.h.

77 { m_ntupleSvc = svc; }

◆ title()

const std::string& NTuple::TupleImp::title ( ) const
inlineoverridevirtual

Object title.

Implements INTuple.

Definition at line 61 of file NTupleImplementation.h.

61 { return m_title; }

◆ tupleService()

INTupleSvc* NTuple::TupleImp::tupleService ( ) const
inline

Access conversion service.

Definition at line 75 of file NTupleImplementation.h.

75 { return m_ntupleSvc; }

◆ write()

StatusCode NTuple::TupleImp::write ( )
overridevirtual

Write record of the NTuple (Shortcut of writeRecord)

Write record of the NTuple.

Implements INTuple.

Definition at line 101 of file NTupleImplementation.cpp.

101 { return m_ntupleSvc->writeRecord( this ); }

◆ writeRecord()

StatusCode NTuple::TupleImp::writeRecord ( )
overridevirtual

Write record of the NTuple.

Implements INTuple.

Definition at line 103 of file NTupleImplementation.cpp.

103 { return m_ntupleSvc->writeRecord( this ); }

Member Data Documentation

◆ m_buffer

std::unique_ptr<char[]> NTuple::TupleImp::m_buffer
protected

Buffer.

Definition at line 37 of file NTupleImplementation.h.

◆ m_cnvSvc

IConversionSvc* NTuple::TupleImp::m_cnvSvc = nullptr
protected

Reference to the conversion service used.

Definition at line 41 of file NTupleImplementation.h.

◆ m_isBooked

bool NTuple::TupleImp::m_isBooked = false
protected

Flag wether N tuple is booked.

Definition at line 31 of file NTupleImplementation.h.

◆ m_items

ItemContainer NTuple::TupleImp::m_items
protected

Container with N tuple _Columns.

Definition at line 29 of file NTupleImplementation.h.

◆ m_ntupleSvc

INTupleSvc* NTuple::TupleImp::m_ntupleSvc = nullptr
protected

Reference to N-tuple service used.

Definition at line 39 of file NTupleImplementation.h.

◆ m_pSelector

SmartIF<ISelectStatement> NTuple::TupleImp::m_pSelector
protected

Possibly hanging selector.

Definition at line 35 of file NTupleImplementation.h.

◆ m_title

std::string NTuple::TupleImp::m_title
protected

N tuple title.

Definition at line 33 of file NTupleImplementation.h.


The documentation for this class was generated from the following files:
GaudiPython.Bindings.FAILURE
FAILURE
Definition: Bindings.py:84
NTuple::TupleImp::title
const std::string & title() const override
Object title.
Definition: NTupleImplementation.h:61
NTuple::TupleImp::m_buffer
std::unique_ptr< char[]> m_buffer
Buffer.
Definition: NTupleImplementation.h:37
NTuple::TupleImp::m_cnvSvc
IConversionSvc * m_cnvSvc
Reference to the conversion service used.
Definition: NTupleImplementation.h:41
INTupleSvc::readRecord
virtual StatusCode readRecord(NTuple::Tuple *tuple)=0
Read single record from N tuple.
DataObject::name
const std::string & name() const
Retreive DataObject name. It is the name when registered in the store.
Definition: DataObject.cpp:72
std::move
T move(T... args)
std::find_if
T find_if(T... args)
std::unique_ptr::get
T get(T... args)
INTupleSvc::save
virtual StatusCode save(const std::string &fullPath)=0
Save N tuple to disk.
NTuple::TupleImp::remove
StatusCode remove(INTupleItem *item) override
Remove an item row (identified by pointer) from the N tuple.
Definition: NTupleImplementation.cpp:83
std::unique_ptr::reset
T reset(T... args)
NTuple::Tuple::item
StatusCode item(const std::string &name, Item< TYPE > &result)
Locate a scalar Item of data to the N tuple type safe.
Definition: NTuple.h:471
std::vector::push_back
T push_back(T... args)
NTuple::TupleImp::m_ntupleSvc
INTupleSvc * m_ntupleSvc
Reference to N-tuple service used.
Definition: NTupleImplementation.h:39
INTupleSvc::writeRecord
virtual StatusCode writeRecord(NTuple::Tuple *tuple)=0
Write single record to N tuple.
StatusCode
Definition: StatusCode.h:65
ProduceConsume.j
j
Definition: ProduceConsume.py:101
std::vector::erase
T erase(T... args)
NTuple::TupleImp::m_title
std::string m_title
N tuple title.
Definition: NTupleImplementation.h:33
INTupleItem
Definition: INTuple.h:37
IOTest.sel
sel
Definition: IOTest.py:106
NTuple::TupleImp::m_pSelector
SmartIF< ISelectStatement > m_pSelector
Possibly hanging selector.
Definition: NTupleImplementation.h:35
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:86
std::begin
T begin(T... args)
std::end
T end(T... args)
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:101
NTuple::TupleImp::m_items
ItemContainer m_items
Container with N tuple _Columns.
Definition: NTupleImplementation.h:29
NTuple::TupleImp::i_find
INTupleItem * i_find(const std::string &name) const override
Internally used by abstract classes.
Definition: NTupleImplementation.cpp:58