| The Gaudi Framework v27r1

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

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

Public Types | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
Tuples::TupleObj Class Referenceabstract

A simple wrapper class over standard Gaudi NTuple::Tuple facility. More...

`#include <GaudiAlg/TupleObj.h>`

Inheritance diagram for Tuples::TupleObj:
[legend]
Collaboration diagram for Tuples::TupleObj:
[legend]

## Public Types
typedef NTuple::Item< bool > | Bool
| basic type for int items More...
typedef NTuple::Item< char > | Char
| basic type for int items More...
typedef NTuple::Item< unsigned char > | UChar
| basic type for unsigned int items More...
typedef NTuple::Item< short > | Short
| basic type for int items More...
typedef NTuple::Item< unsigned short > | UShort
| basic type for unsigned int items More...
typedef NTuple::Item< int > | Int
| basic type for int items More...
typedef NTuple::Item< unsigned int > | UInt
| basic type for unsigned int items More...
typedef NTuple::Item< long long > | LongLong
| basic type for unsigned long long items More...
typedef NTuple::Item< unsigned long long > | ULongLong
| basic type for unsigned long long items More...
typedef NTuple::Item< float > | Float
| basic type for float items More...
typedef NTuple::Item< double > | Double
| basic type for double items More...
typedef NTuple::Item< IOpaqueAddress * > | Address
| basic type for address items More...
typedef NTuple::Array< float > | FArray
| basic type for array of floats More...
typedef NTuple::Matrix< float > | FMatrix
| basic type for matrix of floats More...
typedef unsigned short | MIndex
typedef std::map< std::string, std::string > | ItemMap

## Public Member Functions
StatusCode | column (const std::string &name, float value)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, double value)
| Set the value for the selected tuple column If the column does not exist, it will be automatically created and appended to the tuple. More...
StatusCode | column (const std::string &name, short value)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, short value, short minv, short maxv)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, unsigned short value)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, unsigned short value, unsigned short minv, unsigned short maxv)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, char value)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, char value, char minv, char maxv)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, unsigned char value)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, unsigned char value, unsigned char minv, unsigned char maxv)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, int value)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, int value, int minv, int maxv)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, unsigned int value)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, unsigned int value, unsigned int minv, unsigned int maxv)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, long value)
| Set the value for the selected tuple column. More...
StatusCode | column (const std::string &name, long value, long minv, long maxv)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, unsigned long value)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, unsigned long value, unsigned long minv, unsigned long maxv)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, long long value)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, long long value, long long minv, long long maxv)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, unsigned long long value)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, unsigned long long value, unsigned long long minv, unsigned long long maxv)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, signed char value)
| Set the value for the selected tuple column. More...
StatusCode | column (const std::string &name, bool value)
| Set the value for selected tuple column. More...
StatusCode | column (const std::string &name, IOpaqueAddress *address)
| Put IOpaqueAddress in POOL-based NTuple. More...
StatusCode | column (IOpaqueAddress *address)
| Put IOpaqueAddress in NTuple. More...
StatusCode | fill (const char *format...)
| Set the values for several columns simultaneously. More...
template<typename ITERATOR1 , typename ITERATOR2 >
StatusCode | farray (const std::string &name, ITERATOR1 &&first, ITERATOR2 &&last, const std::string &length, size_t maxv)
| Add an indexed array (of type float) to N-tuple. More...
template<class DATA >
StatusCode | farray (const std::string &name, const DATA &data, const std::string &length, const size_t maxv)
| Add an indexed array (of type float) to N-tuple. More...
template<class FUNCTION , class ITERATOR >
StatusCode | farray (const std::string &name, const FUNCTION &function, ITERATOR first, ITERATOR last, const std::string &length, size_t maxv)
| Put an indexed array into LoKi-style N-Tuple. More...
template<typename Iterator , typename Fun = std::function<float(detail::const_ref_t<Iterator>)>, typename Item = std::pair<std::string,Fun>>
StatusCode | farray (const std::vector< Item > &items, Iterator first, Iterator last, const std::string &length, size_t maxv)
| Put arbitrary number of functions from one data array into LoKi-style N-Tuple simultaneously (effective!) More...
template<class FUNC1 , class FUNC2 , class Iterator >
StatusCode | farray (const std::string &name1, const FUNC1 &func1, const std::string &name2, const FUNC2 &func2, Iterator &&first, Iterator &&last, const std::string &length, size_t maxv)
| Put two functions from one data array into LoKi-style N-Tuple simultaneously (effective!) More...
template<class FUNC1 , class FUNC2 , class FUNC3 , class Iterator >
StatusCode | farray (const std::string &name1, const FUNC1 &func1, const std::string &name2, const FUNC2 &func2, const std::string &name3, const FUNC3 &func3, Iterator &&first, Iterator &&last, const std::string &length, size_t maxv)
| Put three functions from one data array into LoKi-style N-Tuple simultaneously (effective!) More...
template<class FUNC1 , class FUNC2 , class FUNC3 , class FUNC4 , class Iterator >
StatusCode | farray (const std::string &name1, const FUNC1 &func1, const std::string &name2, const FUNC2 &func2, const std::string &name3, const FUNC3 &func3, const std::string &name4, const FUNC4 &func4, Iterator &&first, Iterator &&last, const std::string &length, size_t maxv)
| Put four functions from one data array into LoKi-style N-Tuple simultaneously (effective!) More...
template<class MATRIX >
StatusCode | fmatrix (const std::string &name, const MATRIX &data, size_t rows, const MIndex &cols, const std::string &length, size_t maxv)
| Fill N-Tuple with data from variable-size matrix. More...
template<class DATA >
StatusCode | fmatrix (const std::string &name, DATA first, DATA last, const MIndex &cols, const std::string &length, size_t maxv)
| Fill N-Tuple with data from variable-size matrix. More...
template<class FUN , class DATA >
StatusCode | fmatrix (const std::string &name, FUN funF, FUN funL, DATA first, DATA last, const std::string &length, size_t maxv)
| fill N-Tuple with matrix of "direct-product" of "data-vector" [first,last) and "function-vector" [funF, funL) More...
template<class DATA >
StatusCode | array (const std::string &name, DATA first, DATA last)
| fill N-Tuple with fixed-size array More...
template<class ARRAY >
StatusCode | array (const std::string &name, const ARRAY &data, const MIndex &length)
| fill N-Tuple with fixed-size array More...
template<class ARRAY >
StatusCode | array (const std::string &name, const ARRAY &data)
| fill N-Tuple with fixed-size array More...
template<class MATRIX >
StatusCode | matrix (const std::string &name, const MATRIX &data, const MIndex &rows, const MIndex &cols)
| fill N-Tuple with fixed-size matrix More...
template<class TYPE >
StatusCode | column (const std::string &name, const ROOT::Math::LorentzVector< TYPE > &v)
| Useful shortcut to put LorentzVector directly into N-Tuple: More...
template<class TYPE , class TAG >
StatusCode | column (const std::string &name, const ROOT::Math::DisplacementVector3D< TYPE, TAG > &v)
| Useful shortcut to put 3D-Vector directly into N-Tuple: More...
template<class TYPE , class TAG >
StatusCode | column (const std::string &name, const ROOT::Math::PositionVector3D< TYPE, TAG > &v)
| Useful shortcut to put 3D-Vector directly into N-Tuple: More...
template<class TYPE , unsigned int D1, unsigned int D2, class REP >
StatusCode | matrix (const std::string &name, const ROOT::Math::SMatrix< TYPE, D1, D2, REP > &mtrx)
| shortcut to put Smatrix into N-tuple: More...
template<class KEY , class VALUE >
StatusCode | fmatrix (const std::string &name, const GaudiUtils::VectorMap< KEY, VALUE > &info, const std::string &length, const size_t maxv=100)
| shortcut to put "ExtraInfo" fields of major into N-Tuple More...
template<class TYPE >
StatusCode | put (const std::string &name, const TYPE *obj)
| The function allows to add almost arbitrary object into N-tuple. More...
StatusCode | write ()
| write a record to NTuple More...
const std::string & | name () const
| get the name More...
const NTuple::Tuple * | tuple () const
| provide the access to underlying Gaudi N-tuple More...
NTuple::Tuple * | tuple ()
| provide the access to underlying Gaudi N-tuple More...
unsigned long | refCount () const
| return the reference counter More...
unsigned long | addRef ()
| add the reference to TupleObj More...
void | release ()
| release the reference to TupleObj if reference counter becomes zero, object will be automatically deleted More...
const CLID & | clid () const
| accessor to the N-Tuple CLID More...
Tuples::Type | type () const
| accessor to the N-Tuple type More...
bool | columnWise () const
| column wise NTuple ? More...
bool | rowWise () const
| row wise NTuple ? More...
bool | evtColType () const
| Event collection ? More...
bool | valid () const
| valid pointer to tuple ? More...
bool | invalid () const
| invalid pointer to tuple ? More...
bool | addItem (std::string name, std::string type)
| add the item name into the list of known items More...
bool | goodItem (const std::string &name) const
| check the uniqueness of the name More...
const ItemMap & | items () const
| get the full list of booked items More...
virtual StatusCode | Error (const std::string &msg, const StatusCode sc=StatusCode::FAILURE) const =0
virtual StatusCode | Warning (const std::string &msg, const StatusCode sc=StatusCode::FAILURE) const =0

## Protected Member Functions
| TupleObj (std::string name, NTuple::Tuple *tuple, const CLID &clid=CLID_ColumnWiseTuple, const Tuples::Type type=Tuples::NTUPLE)
| Standard constructor. More...
virtual | ~TupleObj ()
| destructor is protected More...

## Private Types
typedef GaudiUtils::HashMap< std::string, std::unique_ptr< Bool > > | Bools
| the actual storage type for short columns More...
typedef GaudiUtils::HashMap< std::string, std::unique_ptr< Char > > | Chars
| the actual storage type for short columns More...
typedef GaudiUtils::HashMap< std::string, std::unique_ptr< UChar > > | UChars
| the actual storage type for unsigned short columns More...
typedef GaudiUtils::HashMap< std::string, std::unique_ptr< Short > > | Shorts
| the actual storage type for short columns More...
typedef GaudiUtils::HashMap< std::string, std::unique_ptr< UShort > > | UShorts
| the actual storage type for unsigned short columns More...
typedef GaudiUtils::HashMap< std::string, std::unique_ptr< Int > > | Ints
| the actual storage type for integer columns More...
typedef GaudiUtils::HashMap< std::string, std::unique_ptr< UInt > > | UInts
| the actual storage type for unsigned integer columns More...
typedef GaudiUtils::HashMap< std::string, std::unique_ptr< LongLong > > | LongLongs
| the actual storage type for longlong columns More...
typedef GaudiUtils::HashMap< std::string, std::unique_ptr< ULongLong > > | ULongLongs
| the actual storage type for ulonglong columns More...
typedef GaudiUtils::HashMap< std::string, std::unique_ptr< Float > > | Floats
| the actual storage type for float columns More...
typedef GaudiUtils::HashMap< std::string, std::unique_ptr< Double > > | Doubles
| the actual storage type for float columns More...
typedef GaudiUtils::HashMap< std::string, std::unique_ptr< Address > > | Addresses
| the actual storage type for address columns More...
typedef GaudiUtils::HashMap< std::string, std::unique_ptr< FArray > > | FArrays
| the actual storage type for array columns More...
typedef GaudiUtils::HashMap< std::string, std::unique_ptr< FMatrix > > | FMatrices
| the actual storage type for matrix columns More...

## Private Member Functions
Bool * | bools (const std::string &name)
| get the column More...
Float * | floats (const std::string &name)
| get the column More...
Double * | doubles (const std::string &name)
| get the column More...
Char * | chars (const std::string &name)
| get the column More...
Char * | chars (const std::string &name, const char minv, const char maxv)
| get the column More...
UChar * | uchars (const std::string &name)
| get the column More...
UChar * | uchars (const std::string &name, unsigned char minv, unsigned char maxv)
| get the column More...
Short * | shorts (const std::string &name)
| get the column More...
Short * | shorts (const std::string &name, short minv, short maxv)
| get the column More...
UShort * | ushorts (const std::string &name)
| get the column More...
UShort * | ushorts (const std::string &name, unsigned short minv, unsigned short maxv)
| get the column More...
Int * | ints (const std::string &name)
| get the column More...
Int * | ints (const std::string &name, int minv, int maxv)
| get the column More...
UInt * | uints (const std::string &name)
| get the column More...
UInt * | uints (const std::string &name, unsigned int minv, unsigned int maxv)
| get the column More...
LongLong * | longlongs (const std::string &name)
| get the column More...
LongLong * | longlongs (const std::string &name, long long minv, long long maxv)
| get the column More...
ULongLong * | ulonglongs (const std::string &name)
| get the column More...
ULongLong * | ulonglongs (const std::string &name, unsigned long long minv, unsigned long long maxv)
| get the column More...
FArray * | fArray (const std::string &name, Int *item)
| get the column More...
FArray * | fArray (const std::string &name, const MIndex &rows)
| get the column More...
Address * | addresses (const std::string &name)
| get the column More...
FMatrix * | fMatrix (const std::string &name, Int *item, const MIndex &cols)
| get the column More...
FMatrix * | fMatrix (const std::string &name, const MIndex &rows, const MIndex &cols)
| get the column More...
| TupleObj ()=delete
| delete the default/copy constructor and assignment More...
| TupleObj (const TupleObj &)=delete
TupleObj & | operator= (const TupleObj &)=delete
template<typename T , NTuple::Item< T > *(TupleObj::*)(const std::string &) fun, typename UT >
StatusCode | column_ (const std::string &name, UT &&value)
template<typename T , NTuple::Item< T > *(TupleObj::*)(const std::string &, T, T) fun, typename UT >
StatusCode | column_ (const std::string &name, UT &&value, UT &&minv, UT &&maxv)

## Private Attributes
std::string | m_name
| name More...
NTuple::Tuple * | m_tuple
| tuple itself More...
CLID | m_clid
| tuple CLID More...
Tuples::Type | m_type
| tuple 'type' More...
size_t | m_refCount = 0
| reference counter More...
Bools | m_bools
| the actual storage of all 'bool' columns More...
Chars | m_chars
| the actual storage of all 'Int' columns More...
UChars | m_uchars
| the actual storage of all 'unsigned int' columns More...
Shorts | m_shorts
| the actual storage of all 'Int' columns More...
UShorts | m_ushorts
| the actual storage of all 'unsigned int' columns More...
Ints | m_ints
| the actual storage of all 'Int' columns More...
UInts | m_uints
| the actual storage of all 'unsigned int' columns More...
LongLongs | m_longlongs
| the actual storage of all 'longlong' columns More...
ULongLongs | m_ulonglongs
| the actual storage of all 'ulonglong' columns More...
Floats | m_floats
| the actual storage of all 'Float' columns More...
Doubles | m_doubles
| the actual storage of all 'Double' columns More...
Addresses | m_addresses
| the actual storage of all 'Address' columns More...
FArrays | m_farrays
| the actual storage of all 'FArray' columns More...
FArrays | m_arraysf
| the actual storage of all 'FArray' columns (fixed) More...
FMatrices | m_fmatrices
| the actual storage of all 'FArray' columns More...
FMatrices | m_matricesf
| the actual storage of all 'FMatrix' columns (fixed) More...
ItemMap | m_items
| all booked types: More...

## Detailed Description

A simple wrapper class over standard Gaudi NTuple::Tuple facility.

The design and implementation are imported from LoKi package

One should not use lass TupleObj directly. The special handler Tuples::Tuple should be used instead, which is simultaneously 'proxy' an d'smart pointer' for real (and heavy!) TupleObj class.

The main advantages of local ntuples with respect to 'standard' Gaudi NTuples ( NTuple::Tuple ) is their "locality". For 'standard' ntuples one need

1. Define all ntuple columns/items as data members of the algorithm
2. Book the `NTuple::Tuple` object using `INTupleSvc`
3. Add all defined columns/items to the booked ntuple
4. Fill ntuple records

Usually the first step is done in the header file (separate file!) of the algorithm, the second and the third steps are done in `initialize()` method of the algorithm and the fourth step is done somewhere in `execute()` method of the same algorithm. Such approach requires to keep track of the tuple structure through different method and event through different files. And even minor modification of the structure of the ntuple will require the modification of at least 2 methods and 2 files.

The `Tuples::Tuple` wrapper over standard Gaudi `NTuple::Tuple` class solves all above listed problems with "non-local" nature of Gaudi `NTuple::Tuple` objects.

`Tuples::Tuple` object is booked and used 'locally'. One does not need to pre-book the ntuple or its columns/items somewhere in different compilation units or other methods different from the actual point of using the ntuple.

The simplest example of usage Tuples::Tuple object:

Tuple tuple = nTuple( "some more or less unique tuple title ");
for( Loop D0 = loop( "K- pi+", "D0" ) , D0 , ++D0 )
{
tuple -> column ( "mass" , M ( D0 ) / GeV ) ;
tuple -> column ( "pt" , PT ( D0 ) / GeV ) ;
tuple -> column ( "p" , P ( D0 ) / GeV ) ;
tuple -> write () ;
}

One could fill some Tuple variables in one go

Tuple tuple = nTuple( "some more or less unique tuple title ");
for( Loop D0 = loop( "K- pi+", "D0" ) , D0 , ++D0 )
{
tuple -> column ( "mass" , M ( D0 ) / GeV ) ;
tuple -> fill ( "pt , p " , PT ( D0 ) / GeV , P(D0) / GeV ) ;
tuple -> write () ;
}

Even ALL variables could be filled in one go:

Tuple tuple = nTuple( "some more or less unique tuple title ");
for( Loop D0 = loop( "K- pi+", "D0" ) , D0 , ++D0 )
{
tuple -> fill ( "mass pt , p ", M(D0)/GeV,PT(D0)/GeV,P(D0)/GeV ) ;
tuple -> write () ;
}

The 'array-like' columns are also supported ( see methods 'farray')

All these techniques could be easily combined in arbitrary ways

class TupleObj is an abstract class with 3 pure abstract functions Error and Warning , which need to be reimplemented in any 'concrete class. Helper classes TupleObjImp, ErrorHandler and functions createTupleObj and make_handler allows to create concrete objects 'on-flight'

Attention
  `long long` and `unsigned long long` types are not supported. One needs to convert the data into some other representation (e.g. as 2 separate fields, or perform the explicitly cast to `long`)

Author
  Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u

Date
  2004-01-23

Definition at line 196 of file TupleObj.h.

## Member Typedef Documentation

typedef NTuple::Item<IOpaqueAddress*> Tuples::TupleObj::Address

basic type for address items

Definition at line 234 of file TupleObj.h.

typedef GaudiUtils::HashMap<std::string,std::unique_ptr<Address> > Tuples::TupleObj::Addresses
| private

the actual storage type for address columns

Definition at line 2202 of file TupleObj.h.

typedef NTuple::Item<bool> Tuples::TupleObj::Bool

basic type for int items

Definition at line 201 of file TupleObj.h.

typedef GaudiUtils::HashMap<std::string,std::unique_ptr<Bool> > Tuples::TupleObj::Bools
| private

the actual storage type for short columns

Definition at line 2169 of file TupleObj.h.

typedef NTuple::Item<char> Tuples::TupleObj::Char

basic type for int items

Definition at line 204 of file TupleObj.h.

typedef GaudiUtils::HashMap<std::string,std::unique_ptr<Char> > Tuples::TupleObj::Chars
| private

the actual storage type for short columns

Definition at line 2172 of file TupleObj.h.

typedef NTuple::Item<double> Tuples::TupleObj::Double

basic type for double items

Definition at line 231 of file TupleObj.h.

typedef GaudiUtils::HashMap<std::string,std::unique_ptr<Double> > Tuples::TupleObj::Doubles
| private

the actual storage type for float columns

Definition at line 2199 of file TupleObj.h.

typedef NTuple::Array<float> Tuples::TupleObj::FArray

basic type for array of floats

Definition at line 237 of file TupleObj.h.

typedef GaudiUtils::HashMap<std::string,std::unique_ptr<FArray> > Tuples::TupleObj::FArrays
| private

the actual storage type for array columns

Definition at line 2205 of file TupleObj.h.

typedef NTuple::Item<float> Tuples::TupleObj::Float

basic type for float items

Definition at line 228 of file TupleObj.h.

typedef GaudiUtils::HashMap<std::string,std::unique_ptr<Float> > Tuples::TupleObj::Floats
| private

the actual storage type for float columns

Definition at line 2196 of file TupleObj.h.

typedef GaudiUtils::HashMap<std::string,std::unique_ptr<FMatrix> > Tuples::TupleObj::FMatrices
| private

the actual storage type for matrix columns

Definition at line 2208 of file TupleObj.h.

typedef NTuple::Matrix<float> Tuples::TupleObj::FMatrix

basic type for matrix of floats

Definition at line 240 of file TupleObj.h.

typedef NTuple::Item<int> Tuples::TupleObj::Int

basic type for int items

Definition at line 216 of file TupleObj.h.

typedef GaudiUtils::HashMap<std::string,std::unique_ptr<Int> > Tuples::TupleObj::Ints
| private

the actual storage type for integer columns

Definition at line 2184 of file TupleObj.h.

typedef std::map<std::string,std::string> Tuples::TupleObj::ItemMap

Definition at line 246 of file TupleObj.h.

typedef NTuple::Item<long long> Tuples::TupleObj::LongLong

basic type for unsigned long long items

Definition at line 222 of file TupleObj.h.

typedef GaudiUtils::HashMap<std::string,std::unique_ptr<LongLong> > Tuples::TupleObj::LongLongs
| private

the actual storage type for longlong columns

Definition at line 2190 of file TupleObj.h.

typedef unsigned short Tuples::TupleObj::MIndex

Definition at line 243 of file TupleObj.h.

typedef NTuple::Item<short> Tuples::TupleObj::Short

basic type for int items

Definition at line 210 of file TupleObj.h.

typedef GaudiUtils::HashMap<std::string,std::unique_ptr<Short> > Tuples::TupleObj::Shorts
| private

the actual storage type for short columns

Definition at line 2178 of file TupleObj.h.

typedef NTuple::Item<unsigned char> Tuples::TupleObj::UChar

basic type for unsigned int items

Definition at line 207 of file TupleObj.h.

typedef GaudiUtils::HashMap<std::string,std::unique_ptr<UChar> > Tuples::TupleObj::UChars
| private

the actual storage type for unsigned short columns

Definition at line 2175 of file TupleObj.h.

typedef NTuple::Item<unsigned int> Tuples::TupleObj::UInt

basic type for unsigned int items

Definition at line 219 of file TupleObj.h.

typedef GaudiUtils::HashMap<std::string,std::unique_ptr<UInt> > Tuples::TupleObj::UInts
| private

the actual storage type for unsigned integer columns

Definition at line 2187 of file TupleObj.h.

typedef NTuple::Item<unsigned long long> Tuples::TupleObj::ULongLong

basic type for unsigned long long items

Definition at line 225 of file TupleObj.h.

typedef GaudiUtils::HashMap<std::string,std::unique_ptr<ULongLong> > Tuples::TupleObj::ULongLongs
| private

the actual storage type for ulonglong columns

Definition at line 2193 of file TupleObj.h.

typedef NTuple::Item<unsigned short> Tuples::TupleObj::UShort

basic type for unsigned int items

Definition at line 213 of file TupleObj.h.

typedef GaudiUtils::HashMap<std::string,std::unique_ptr<UShort> > Tuples::TupleObj::UShorts
| private

the actual storage type for unsigned short columns

Definition at line 2181 of file TupleObj.h.

## Constructor & Destructor Documentation

Tuples::TupleObj::TupleObj | ( | std::string | name,
|  | NTuple::Tuple * | tuple,
|  | const CLID & | clid = `CLID_ColumnWiseTuple`,
|  | const Tuples::Type | type = `Tuples::NTUPLE`
| ) |  |
| protected

Standard constructor.

See also
  NTuple:Tuple

Parameters

  name | name of the object
  tuple | pointer to standard Gaudi NTuple::Tuple object
  clid | CLID_ColumnWiseTuple or CLID_RowWiseTuple
  type | the type of the tuple

Definition at line 144 of file TupleObj.cpp.

149 : m_name ( std::move(name) )
150 , m_tuple ( tuple )
151 , m_clid ( clid )
152 , m_type ( type )
153 {
154 // make counts
155 Tuples::Local::s_InstanceCounter.increment ( m_name ) ;
156 }
Tuples::TupleObj::m_clid
CLID m_clid
tuple CLID
Definition: TupleObj.h:2236
Tuples::TupleObj::m_type
Tuples::Type m_type
tuple 'type'
Definition: TupleObj.h:2239
Tuples::TupleObj::m_name
std::string m_name
name
Definition: TupleObj.h:2230
std::move
T move(T...args)
Tuples::TupleObj::m_tuple
NTuple::Tuple * m_tuple
tuple itself
Definition: TupleObj.h:2233
Tuples::TupleObj::type
Tuples::Type type() const
accessor to the N-Tuple type
Definition: TupleObj.h:2015
Tuples::TupleObj::clid
const CLID & clid() const
accessor to the N-Tuple CLID
Definition: TupleObj.h:2012

Tuples::TupleObj::~TupleObj | ( |  | ) |
| protected virtual

destructor is protected

Definition at line 160 of file TupleObj.cpp.

161 {
162 // make counts
163 Tuples::Local::s_InstanceCounter.decrement ( m_name ) ;
164 }
Tuples::TupleObj::m_name
std::string m_name
name
Definition: TupleObj.h:2230

Tuples::TupleObj::TupleObj | ( |  | ) |
| private delete

delete the default/copy constructor and assignment

Tuples::TupleObj::TupleObj | ( | const TupleObj & |  | ) |
| private delete

## Member Function Documentation

bool Tuples::TupleObj::addItem | ( | std::string | name,
|  | std::string | type
| ) |  |
| inline

add the item name into the list of known items

Parameters

  name | the name of the item
  type | the type of the item

Returns
  true if the name is indeed added

Definition at line 2039 of file TupleObj.h.

2041 { return m_items.emplace ( std::move(name) , std::move(type) ).second ; }
Tuples::TupleObj::m_items
ItemMap m_items
all booked types:
Definition: TupleObj.h:2293
std::move
T move(T...args)
std::map::emplace
T emplace(T...args)

unsigned long Tuples::TupleObj::addRef | ( |  | ) |
| inline

add the reference to TupleObj

Returns
  current reference counter

Definition at line 2003 of file TupleObj.h.

2003 { return ++m_refCount ; }
Tuples::TupleObj::m_refCount
size_t m_refCount
reference counter
Definition: TupleObj.h:2242

Tuples::TupleObj::Address * Tuples::TupleObj::addresses | ( | const std::string & | name | ) |
| private

get the column

Definition at line 638 of file TupleObj.cpp.

639 {
640 auto found = m_addresses.find( name ) ;
641 if( m_addresses.end() != found ) { return found->second.get() ; }
642 return create_(this, m_addresses, name,
643 [&](const std::string& n, Address& i)
644 { return this->tuple()->addItem(n,i); });
645 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
Tuples::TupleObj::Address
NTuple::Item< IOpaqueAddress * > Address
basic type for address items
Definition: TupleObj.h:234
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
Tuples::TupleObj::m_addresses
Addresses m_addresses
the actual storage of all 'Address' columns
Definition: TupleObj.h:2278
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128
template<class DATA >

StatusCode Tuples::TupleObj::array | ( | const std::string & | name,
|  | DATA | first,
|  | DATA | last
| ) |  |
| inline

fill N-Tuple with fixed-size array

SEQUENCE data( 10 ) ;
...
tuple -> array("data" ,
data.begin () ,
data.end () ) ;

Sequence may be of any objects, implicitly convertible into "float"

Parameters

  name | N-Tuple entry name
  first | begin-iterator for data sequence
  last | end-iterator for data sequence

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@l.nosp@m.app..nosp@m.in2p3.nosp@m..fr

Date
  2005-05-01

fill the array

Definition at line 1616 of file TupleObj.h.

1620 {
1621 if ( invalid () ) { return InvalidTuple ; }
1622 if ( rowWise () ) { return InvalidOperation ; }
1623
1624 // get the length (fixed!)
1625 auto length = std::distance(first,last);
1626
1627 // get the array itself
1628 FArray* var = fArray ( name , length ) ;
1629 if ( !var ) { return InvalidColumn ; }
1630
1632 std::copy( first, last, std::begin(*var) );
1633
1634 return StatusCode::SUCCESS ;
1635 }
std::copy
T copy(T...args)
std::distance
T distance(T...args)
Tuples::InvalidTuple
Definition: TupleObj.h:94
Tuples::InvalidOperation
Definition: TupleObj.h:96
StatusCode::SUCCESS
Definition: StatusCode.h:30
Tuples::InvalidColumn
Definition: TupleObj.h:95
Tuples::TupleObj::rowWise
bool rowWise() const
row wise NTuple ?
Definition: TupleObj.h:2021
Tuples::TupleObj::fArray
FArray * fArray(const std::string &name, Int *item)
get the column
Definition: TupleObj.cpp:650
std::begin
T begin(T...args)
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030
Tuples::TupleObj::FArray
NTuple::Array< float > FArray
basic type for array of floats
Definition: TupleObj.h:237
template<class ARRAY >

StatusCode Tuples::TupleObj::array | ( | const std::string & | name,
|  | const ARRAY & | data,
|  | const MIndex & | length
| ) |  |
| inline

fill N-Tuple with fixed-size array

"ARRAY" must support indexing operations: e.g it coudl be of type:

- std::vector<TYPE>
- CLHEP::HepVector, ...
- "TYPE"[n]

The content of array should be implicitly convertible to "float"

CLHEP::HepVector vct1(10) ;
...
tuple -> array ( "vct1" , vct1 , 10 ) ;
double vct2[40];
...
tuple -> array ( "vct2" , vct2 , 40 ) ;
long vct3[4];
...
tuple -> array ( "vct3" , vct4 , 4 ) ;
std::vector<long double> vct4(15) ;
...
tuple -> array ( "vct4" , vct4 , 15 ) ;

Parameters

  name | N-Tuple entry name
  data | data sequence
  length | data length (fixed!)

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@l.nosp@m.app..nosp@m.in2p3.nosp@m..fr

Date
  2005-05-01

Definition at line 1676 of file TupleObj.h.

1679 {
1680 using std::begin; // allow data to be eg. CLHEP::HepVector (which does not define HepVector::begin()!,
1681 // in which case ADL prefers CLHEP::begin (yah! at least they (now) use a namespace)
1682 // so one just to insure double* CLHEP::begin(CLHEP::HepVector& v) { return &v[0]; }
1683 // is visible when this function gets instantiated for CLHEP::HepVector...
1684 auto first = begin(data);
1685 return array( name, first, std::next( first, length ) );
1686 }
begin
auto begin(reverse_wrapper< T > &w)
Definition: reverse.h:45
std::next
T next(T...args)
Tuples::TupleObj::array
StatusCode array(const std::string &name, DATA first, DATA last)
fill N-Tuple with fixed-size array
Definition: TupleObj.h:1616
std::begin
T begin(T...args)
template<class ARRAY >

StatusCode Tuples::TupleObj::array | ( | const std::string & | name,
|  | const ARRAY & | data
| ) |  |
| inline

fill N-Tuple with fixed-size array

"ARRAY" is any sequence, which supports ARRAY::begin() and ARRAY::end() protocol, e.g.

- std::vector<TYPE>
- ROOT::Math::SVector<double,15>

The content of array should be implicitly convertible to "float"

typedef std::vector<double> Seq ;
Seq data( 10 ) ;
for ( int i = 0 ; i < 10 ; ++i )
{
data[i] = ... ;
}
tuple -> array( "data" , data ) ;

Parameters

  name | N-Tupel entry name
  data | data sequence

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@l.nosp@m.app..nosp@m.in2p3.nosp@m..fr

Date
  2005-05-01

Definition at line 1719 of file TupleObj.h.

1721 {
1722 using std::begin; using std::end;
1723 return array ( name , begin(data) , end(data) ) ;
1724 }
std::end
T end(T...args)
begin
auto begin(reverse_wrapper< T > &w)
Definition: reverse.h:45
end
auto end(reverse_wrapper< T > &w)
Definition: reverse.h:47
Tuples::TupleObj::array
StatusCode array(const std::string &name, DATA first, DATA last)
fill N-Tuple with fixed-size array
Definition: TupleObj.h:1616
std::begin
T begin(T...args)

Tuples::TupleObj::Bool * Tuples::TupleObj::bools | ( | const std::string & | name | ) |
| private

get the column

Definition at line 456 of file TupleObj.cpp.

457 {
458 auto found = m_bools.find( name ) ;
459 if( m_bools.end() != found ) { return found->second.get() ; }
460 return create_(this, m_bools, name,
461 [&](const std::string& n, Bool& i)
462 { return this->tuple()->addItem(n,i); });
463 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
Tuples::TupleObj::m_bools
Bools m_bools
the actual storage of all 'bool' columns
Definition: TupleObj.h:2245
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
Tuples::TupleObj::Bool
NTuple::Item< bool > Bool
basic type for int items
Definition: TupleObj.h:201
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128

Tuples::TupleObj::Char * Tuples::TupleObj::chars | ( | const std::string & | name | ) |
| private

get the column

Definition at line 466 of file TupleObj.cpp.

467 {
468 auto found = m_chars.find( name ) ;
469 if( m_chars.end() != found ) { return found->second.get() ; }
470 return create_(this, m_chars, name,
471 [&](const std::string& n, Char& i)
472 { return this->tuple()->addItem(n,i); });
473 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
Tuples::TupleObj::m_chars
Chars m_chars
the actual storage of all 'Int' columns
Definition: TupleObj.h:2248
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
Tuples::TupleObj::Char
NTuple::Item< char > Char
basic type for int items
Definition: TupleObj.h:204
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128

Tuples::TupleObj::Char * Tuples::TupleObj::chars | ( | const std::string & | name,
|  | const char | minv,
|  | const char | maxv
| ) |  |
| private

get the column

Definition at line 476 of file TupleObj.cpp.

477 {
478 auto found = m_chars.find( name ) ;
479 return ( found != m_chars.end() ) ? found->second.get()
480 : create_(this, m_chars, name,
481 [&](const std::string& n, Char& i)
482 { return this->tuple()->addItem(n,i,minv,maxv); });
483 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
Tuples::TupleObj::m_chars
Chars m_chars
the actual storage of all 'Int' columns
Definition: TupleObj.h:2248
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
Tuples::TupleObj::Char
NTuple::Item< char > Char
basic type for int items
Definition: TupleObj.h:204
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128

const CLID& Tuples::TupleObj::clid | ( |  | ) | const
| inline

accessor to the N-Tuple CLID

Definition at line 2012 of file TupleObj.h.

2012 { return m_clid ; }
Tuples::TupleObj::m_clid
CLID m_clid
tuple CLID
Definition: TupleObj.h:2236

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | float | value
| ) |  |

Set the value for selected tuple column.

If column does not exist, it will be automatically created and appended to the tuple

//
const float mass = ... ;
tuple->column( "m", mass );
//

Parameters

  name | the name of the column
  value | the value of the variable

Returns
  status code

Definition at line 263 of file TupleObj.cpp.

265 {
266 return column_<float,&Tuples::TupleObj::floats>(name,value);
267 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | double | value
| ) |  |

Set the value for the selected tuple column If the column does not exist, it will be automatically created and appended to the tuple.

//
const double mass = ... ;
tuple->column( "m", mass );
//

Warning
  the value is truncated to float

Parameters

  name | the name of the column
  value | the value of the variable

Returns
  status code

Definition at line 269 of file TupleObj.cpp.

271 {
272 return column_<double,&Tuples::TupleObj::doubles>(name,value);
273 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | short | value
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

short number = ... ;
tuple -> column ( "num" , number );

Parameters

  name | the name of the column
  value | the value of the variable

Returns
  status code

Definition at line 303 of file TupleObj.cpp.

305 {
306 return column_<short,&Tuples::TupleObj::shorts>(name,value);
307 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | short | value,
|  | short | minv,
|  | short | maxv
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

short number = ... ;
tuple->column( "num", number );

Parameters

  name | name of the column
  value | value of the variable
  minv | minimum value of the variable
  maxv | maximum value of the variable

Returns
  status code

Definition at line 309 of file TupleObj.cpp.

313 {
314 return column_<short,&Tuples::TupleObj::shorts>(name,value,minv,maxv);
315 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | unsigned short | value
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

unsigned short number = ... ;
tuple -> column ( "num" , number );

Parameters

  name | the name of the column
  value | the value of the variable

Returns
  status code

Definition at line 317 of file TupleObj.cpp.

319 {
320 return column_<unsigned short,&Tuples::TupleObj::ushorts>( name, value );
321 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | unsigned short | value,
|  | unsigned short | minv,
|  | unsigned short | maxv
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

unsigned short number = ... ;
tuple->column( "num", number );

Parameters

  name | name of the column
  value | value of the variable
  minv | minimum value of the variable
  maxv | maximum value of the variable

Returns
  status code

Definition at line 323 of file TupleObj.cpp.

327 {
328 return column_<unsigned short,&Tuples::TupleObj::ushorts>( name, value, minv, maxv );
329 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | char | value
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

char number = ... ;
tuple -> column ( "num" , number );

Parameters

  name | the name of the column
  value | the value of the variable

Returns
  status code

Definition at line 275 of file TupleObj.cpp.

277 {
278 return column_<char,&Tuples::TupleObj::chars>(name,value);
279 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | char | value,
|  | char | minv,
|  | char | maxv
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

char number = ... ;
tuple->column( "num", number );

Parameters

  name | name of the column
  value | value of the variable
  minv | minimum value of the variable
  maxv | maximum value of the variable

Returns
  status code

Definition at line 281 of file TupleObj.cpp.

285 {
286 return column_<char,&Tuples::TupleObj::chars>(name,value,minv,maxv);
287 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | unsigned char | value
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

unsigned char number = ... ;
tuple -> column ( "num" , number );

Parameters

  name | the name of the column
  value | the value of the variable

Returns
  status code

Definition at line 289 of file TupleObj.cpp.

291 {
292 return column_<unsigned char,&Tuples::TupleObj::uchars>(name,value);
293 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | unsigned char | value,
|  | unsigned char | minv,
|  | unsigned char | maxv
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

unsigned char number = ... ;
tuple->column( "num", number );

Parameters

  name | name of the column
  value | value of the variable
  minv | minimum value of the variable
  maxv | maximum value of the variable

Returns
  status code

Definition at line 295 of file TupleObj.cpp.

299 {
300 return column_<unsigned char,&Tuples::TupleObj::uchars>(name,value,minv,maxv);
301 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | int | value
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

int number = ... ;
tuple->column("num", number );

Parameters

  name | name of the column
  value | value of the variable

Returns
  status code

Definition at line 331 of file TupleObj.cpp.

333 {
334 return column_<int,&Tuples::TupleObj::ints>( name, value );
335 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | int | value,
|  | int | minv,
|  | int | maxv
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

int number = ... ;
tuple->column( "num", number );

Parameters

  name | name of the column
  value | value of the variable
  minv | minimum value of the variable
  maxv | maximum value of the variable

Returns
  status code

Definition at line 337 of file TupleObj.cpp.

341 {
342 return column_<int,&Tuples::TupleObj::ints>(name,value,minv,maxv);
343 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | unsigned int | value
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

unsigned int number = ... ;
tuple->column("num", number );

Parameters

  name | name of the column
  value | value of the variable

Returns
  status code

Definition at line 345 of file TupleObj.cpp.

347 {
348 return column_<unsigned int,&Tuples::TupleObj::uints>(name,value);
349 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | unsigned int | value,
|  | unsigned int | minv,
|  | unsigned int | maxv
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

unsigned int number = ... ;
tuple->column("num", number );

Parameters

  name | name of the column
  value | value of the variable
  minv | minimum value of the variable
  maxv | maximum value of the variable

Returns
  status code

Definition at line 351 of file TupleObj.cpp.

355 {
356 return column_<unsigned int, &Tuples::TupleObj::uints>(name,value,minv,maxv);
357 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | long | value
| ) |  |

Set the value for the selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

long number = ... ;
tuple -> column ( "num", number );

Warning
  the value could be truncated to int

Parameters

  name | the name of the column
  value | the value of the variable

Returns
  status code

Definition at line 359 of file TupleObj.cpp.

361 {
362 Warning( "'long' has different sizes on 32/64 bit systems. Casting '" +
363 name + "' to 'long long'", StatusCode::SUCCESS ).ignore();
364 return column( name, (long long)value );
365 }
Tuples::TupleObj::column
StatusCode column(const std::string &name, float value)
Set the value for selected tuple column.
Definition: TupleObj.cpp:263
Tuples::TupleObj::Warning
virtual StatusCode Warning(const std::string &msg, const StatusCode sc=StatusCode::FAILURE) const =0
StatusCode::SUCCESS
Definition: StatusCode.h:30
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:108

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | long | value,
|  | long | minv,
|  | long | maxv
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

long number = ... ;
tuple->column("num", number );

Parameters

  name | name of the column
  value | value of the variable
  minv | minimum value of the variable
  maxv | maximum value of the variable

Returns
  status code

Definition at line 367 of file TupleObj.cpp.

371 {
372 Warning( "'long' has different sizes on 32/64 bit systems. Casting '" +
373 name + "' to 'long long'", StatusCode::SUCCESS ).ignore();
374 return column( name,
375 (long long)value,
376 (long long)minv,
377 (long long)maxv );
378 }
Tuples::TupleObj::column
StatusCode column(const std::string &name, float value)
Set the value for selected tuple column.
Definition: TupleObj.cpp:263
Tuples::TupleObj::Warning
virtual StatusCode Warning(const std::string &msg, const StatusCode sc=StatusCode::FAILURE) const =0
StatusCode::SUCCESS
Definition: StatusCode.h:30
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:108

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | unsigned long | value
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

unsigned long number = ... ;
tuple -> column ( "num" , number );

Warning
  the value could be truncated to int

Parameters

  name | the name of the column
  value | the value of the variable

Returns
  status code

Definition at line 380 of file TupleObj.cpp.

382 {
383 Warning( "'unsigned long' has different sizes on 32/64 bit systems. Casting '" +
384 name + "' to 'unsigned long long'", StatusCode::SUCCESS ).ignore();
385 return column( name, (unsigned long long)value );
386 }
Tuples::TupleObj::column
StatusCode column(const std::string &name, float value)
Set the value for selected tuple column.
Definition: TupleObj.cpp:263
Tuples::TupleObj::Warning
virtual StatusCode Warning(const std::string &msg, const StatusCode sc=StatusCode::FAILURE) const =0
StatusCode::SUCCESS
Definition: StatusCode.h:30
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:108

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | unsigned long | value,
|  | unsigned long | minv,
|  | unsigned long | maxv
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

unsigned long number = ... ;
tuple->column( "num", number );

Parameters

  name | name of the column
  value | value of the variable
  minv | minimum value of the variable
  maxv | maximum value of the variable

Returns
  status code

Definition at line 388 of file TupleObj.cpp.

392 {
393 Warning( "'unsigned long' has different sizes on 32/64 bit systems. Casting '" +
394 name + "' to 'unsigned long long'", StatusCode::SUCCESS ).ignore();
395 return column( name,
396 (unsigned long long)value,
397 (unsigned long long)minv,
398 (unsigned long long)maxv );
399 }
Tuples::TupleObj::column
StatusCode column(const std::string &name, float value)
Set the value for selected tuple column.
Definition: TupleObj.cpp:263
Tuples::TupleObj::Warning
virtual StatusCode Warning(const std::string &msg, const StatusCode sc=StatusCode::FAILURE) const =0
StatusCode::SUCCESS
Definition: StatusCode.h:30
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:108

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | long long | value
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

long long number = ... ;
tuple->column( "num", number );

Parameters

  name | name of the column
  value | value of the variable

Returns
  status code

Definition at line 401 of file TupleObj.cpp.

403 {
404 return column_<long long,&Tuples::TupleObj::longlongs>(name,value);
405 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | long long | value,
|  | long long | minv,
|  | long long | maxv
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

long long number = ... ;
tuple->column( "num", number );

Parameters

  name | name of the column
  value | value of the variable
  minv | minimum value of the variable
  maxv | maximum value of the variable

Returns
  status code

Definition at line 407 of file TupleObj.cpp.

411 {
412 return column_<long long,&Tuples::TupleObj::longlongs>(name,value,minv,maxv);
413 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | unsigned long long | value
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

unsigned long long number = ... ;
tuple->column( "num", number );

Parameters

  name | name of the column
  value | value of the variable

Returns
  status code

Definition at line 415 of file TupleObj.cpp.

417 {
418 return column_<unsigned long long,&Tuples::TupleObj::ulonglongs>(name,value);
419 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | unsigned long long | value,
|  | unsigned long long | minv,
|  | unsigned long long | maxv
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

unsigned long long number = ... ;
tuple->column( "num", number );

Parameters

  name | name of the column
  value | value of the variable
  minv | minimum value of the variable
  maxv | maximum value of the variable

Returns
  status code

Definition at line 421 of file TupleObj.cpp.

425 {
426 return column_<unsigned long long,&Tuples::TupleObj::ulonglongs>(name,value,minv,maxv);
427 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | signed char | value
| ) |  |
| inline

Set the value for the selected tuple column.

If the column does not exist yet, it will be automatically created and appended to the tuple

signed char number = ... ;
tuple->column("num", number );

Parameters

  name | the name of the column
  value | the value of tve variable

Returns
  status code

Definition at line 748 of file TupleObj.h.

750 {
751 return column
752 ( name ,
753 value ,
754 std::numeric_limits<signed char>::min() ,
755 std::numeric_limits<signed char>::max() ) ;
756 }
Tuples::TupleObj::column
StatusCode column(const std::string &name, float value)
Set the value for selected tuple column.
Definition: TupleObj.cpp:263
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
std::numeric_limits

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | bool | value
| ) |  |

Set the value for selected tuple column.

If the column does not exist yet, it will be automatically create and appended to the tuple

tuple->column( "empty" , v.empty() );

Parameters

  name | the name of the column
  value | the value of the variable

Returns
  status code

Definition at line 429 of file TupleObj.cpp.

431 {
432 return column_<bool,&Tuples::TupleObj::bools>(name,value);
433 }
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | IOpaqueAddress * | address
| ) |  |

Put IOpaqueAddress in POOL-based NTuple.

If the column does not exist, it will be automatically created and appended to the tuple.

IOpaqueAddress* address = ... ;
tuple->column( "Address", address );

Warning
  It has sense only for Event tag collection N-Tuples

Parameters

  name | name of the column ("Address" is a recommended convention!)
  address | IOpaqueAddress

Returns
  status code

Definition at line 243 of file TupleObj.cpp.

245 {
246 if ( !evtColType () ) { return InvalidOperation ; }
247 if ( !address )
248 { return Error ( "column('" + name +
249 "') IOpaqueAddress* is NULL!" , InvalidObject ) ; }
250 return column_<IOpaqueAddress*,&Tuples::TupleObj::addresses>(name, address);
251 }
Tuples::TupleObj::evtColType
bool evtColType() const
Event collection ?
Definition: TupleObj.h:2024
Tuples::InvalidOperation
Definition: TupleObj.h:96
Tuples::TupleObj::Error
virtual StatusCode Error(const std::string &msg, const StatusCode sc=StatusCode::FAILURE) const =0
Tuples::InvalidObject
Definition: TupleObj.h:97
Tuples::TupleObj::name
const std::string & name() const
get the name
Definition: TupleObj.h:1983

StatusCode Tuples::TupleObj::column | ( | IOpaqueAddress * | address | ) |

Put IOpaqueAddress in NTuple.

If the column does not exist, it will be automatically created and appended to the tuple. The column name is set to be `"Address"`

IOpaqueAddress* address = ... ;
tuple->column ( address );

Warning
  It has sense only for Event tag collection N-Tuples

Parameters

  address | IOpaqueAddress

Returns
  status code

Definition at line 257 of file TupleObj.cpp.

258 {
259 return column ( "Address" , address ) ;
260 }
Tuples::TupleObj::column
StatusCode column(const std::string &name, float value)
Set the value for selected tuple column.
Definition: TupleObj.cpp:263
template<class TYPE >

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | const ROOT::Math::LorentzVector< TYPE > & | v
| ) |  |
| inline

Useful shortcut to put LorentzVector directly into N-Tuple:

const LHCb::Particle* B = ...
Tuple tuple = nTuple("My N-Tuple") ;
// put 4-vector of B-candidate into N-tuple:
tuple -> column ("B" , B->momentum() ) ;

Author
  Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u

Date
  2006-11-26

Definition at line 1818 of file TupleObj.h.

1820 {
1821 if ( invalid() ) { return InvalidTuple ; }
1822 // fill all separate columns:
1823 StatusCode sc1 = this -> column ( name + "E" , v.E () ) ;
1824 StatusCode sc2 = this -> column ( name + "X" , v.Px () ) ;
1825 StatusCode sc3 = this -> column ( name + "Y" , v.Py () ) ;
1826 StatusCode sc4 = this -> column ( name + "Z" , v.Pz () ) ;
1827 return
1828 sc1.isFailure () ? sc1 :
1829 sc2.isFailure () ? sc2 :
1830 sc3.isFailure () ? sc3 :
1831 sc4.isFailure () ? sc4 : StatusCode(StatusCode::SUCCESS) ;
1832 }
Tuples::InvalidTuple
Definition: TupleObj.h:94
Tuples::TupleObj::column
StatusCode column(const std::string &name, float value)
Set the value for selected tuple column.
Definition: TupleObj.cpp:263
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:86
StatusCode::SUCCESS
Definition: StatusCode.h:30
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030
template<class TYPE , class TAG >

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | const ROOT::Math::DisplacementVector3D< TYPE, TAG > & | v
| ) |  |
| inline

Useful shortcut to put 3D-Vector directly into N-Tuple:

const LHCb::Vertex* V = ...
Tuple tuple = nTuple("My N-Tuple") ;
// put vertex position into N-tuple:
tuple -> column ("B" , B->position() ) ;

Author
  Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u

Date
  2006-11-26

fill separate columns

Definition at line 1852 of file TupleObj.h.

1854 {
1855 if ( invalid() ) { return InvalidTuple ; }
1857 StatusCode sc1 = this -> column ( name + "X" , v.X () ) ;
1858 StatusCode sc2 = this -> column ( name + "Y" , v.Y () ) ;
1859 StatusCode sc3 = this -> column ( name + "Z" , v.Z () ) ;
1860 return
1861 sc1.isFailure () ? sc1 :
1862 sc2.isFailure () ? sc2 :
1863 sc3.isFailure () ? sc3 : StatusCode(StatusCode::SUCCESS) ;
1864 }
Tuples::InvalidTuple
Definition: TupleObj.h:94
Tuples::TupleObj::column
StatusCode column(const std::string &name, float value)
Set the value for selected tuple column.
Definition: TupleObj.cpp:263
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:86
StatusCode::SUCCESS
Definition: StatusCode.h:30
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030
template<class TYPE , class TAG >

StatusCode Tuples::TupleObj::column | ( | const std::string & | name,
|  | const ROOT::Math::PositionVector3D< TYPE, TAG > & | v
| ) |  |
| inline

Useful shortcut to put 3D-Vector directly into N-Tuple:

const LHCb::Vertex* V = ...
Tuple tuple = nTuple("My N-Tuple") ;
// put vertex position into N-tuple:
tuple -> column ("B" , B->position() ) ;

Author
  Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u

Date
  2006-11-26

fill separate columns

Definition at line 1884 of file TupleObj.h.

1886 {
1887 if ( invalid() ) { return InvalidTuple ; }
1889 StatusCode sc1 = this -> column ( name + "X" , v.X () ) ;
1890 StatusCode sc2 = this -> column ( name + "Y" , v.Y () ) ;
1891 StatusCode sc3 = this -> column ( name + "Z" , v.Z () ) ;
1892 return
1893 sc1.isFailure () ? sc1 :
1894 sc2.isFailure () ? sc2 :
1895 sc3.isFailure () ? sc3 : StatusCode(StatusCode::SUCCESS) ;
1896 }
Tuples::InvalidTuple
Definition: TupleObj.h:94
Tuples::TupleObj::column
StatusCode column(const std::string &name, float value)
Set the value for selected tuple column.
Definition: TupleObj.cpp:263
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:86
StatusCode::SUCCESS
Definition: StatusCode.h:30
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030
template<typename T , NTuple::Item< T > *(TupleObj::*)(const std::string &) fun, typename UT >

StatusCode Tuples::TupleObj::column_ | ( | const std::string & | name,
|  | UT && | value
| ) |  |
| inline private

Definition at line 2212 of file TupleObj.h.

2212 {
2213 if ( invalid() ) { return InvalidTuple ; }
2214 auto item = (this->*fun)( name );
2215 if ( !item ) { return InvalidColumn ; }
2216 *item = std::forward<UT>(value);
2217 return StatusCode::SUCCESS ;
2218 }
Tuples::InvalidTuple
Definition: TupleObj.h:94
StatusCode::SUCCESS
Definition: StatusCode.h:30
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::InvalidColumn
Definition: TupleObj.h:95
fun
double fun(const std::vector< double > &x)
Definition: PFuncTest.cpp:26
ana.item
tuple item
print s1,s2
Definition: ana.py:146
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030
template<typename T , NTuple::Item< T > *(TupleObj::*)(const std::string &, T, T) fun, typename UT >

StatusCode Tuples::TupleObj::column_ | ( | const std::string & | name,
|  | UT && | value,
|  | UT && | minv,
|  | UT && | maxv
| ) |  |
| inline private

Definition at line 2220 of file TupleObj.h.

2220 {
2221 if ( invalid() ) { return InvalidTuple ; }
2222 auto item = (this->*fun)( name, std::forward<UT>(minv),std::forward<UT>(maxv) );
2223 if ( !item ) { return InvalidColumn ; }
2224 *item = std::forward<UT>(value);
2225 return StatusCode::SUCCESS ;
2226 }
Tuples::InvalidTuple
Definition: TupleObj.h:94
StatusCode::SUCCESS
Definition: StatusCode.h:30
dump_component_properties.value
list value
Definition: dump_component_properties.py:12
Tuples::InvalidColumn
Definition: TupleObj.h:95
fun
double fun(const std::vector< double > &x)
Definition: PFuncTest.cpp:26
ana.item
tuple item
print s1,s2
Definition: ana.py:146
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030

bool Tuples::TupleObj::columnWise | ( |  | ) | const
| inline

column wise NTuple ?

Definition at line 2018 of file TupleObj.h.

2018 { return CLID_ColumnWiseTuple == clid() ; }
Tuples::TupleObj::clid
const CLID & clid() const
accessor to the N-Tuple CLID
Definition: TupleObj.h:2012

Tuples::TupleObj::Double * Tuples::TupleObj::doubles | ( | const std::string & | name | ) |
| private

get the column

Definition at line 446 of file TupleObj.cpp.

447 {
448 auto found = m_doubles.find( name ) ;
449 if ( m_doubles.end() != found ) { return found->second.get() ; }
450 return create_(this, m_doubles,name,
451 [&](const std::string& n, Double& i)
452 { return this->tuple()->addItem(n,i); });
453 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
Tuples::TupleObj::m_doubles
Doubles m_doubles
the actual storage of all 'Double' columns
Definition: TupleObj.h:2275
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
Tuples::TupleObj::Double
NTuple::Item< double > Double
basic type for double items
Definition: TupleObj.h:231
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128

virtual StatusCode Tuples::TupleObj::Error | ( | const std::string & | msg,
|  | const StatusCode | sc = `StatusCode::FAILURE`
| ) |  | const
| pure virtual

Implemented in Tuples::detail::TupleObjImp< HANDLER1, HANDLER2 >.

bool Tuples::TupleObj::evtColType | ( |  | ) | const
| inline

Event collection ?

Definition at line 2024 of file TupleObj.h.

2024 { return Tuples::EVTCOL == type() ; }
Tuples::EVTCOL
Definition: TupleObj.h:82
Tuples::TupleObj::type
Tuples::Type type() const
accessor to the N-Tuple type
Definition: TupleObj.h:2015
template<typename ITERATOR1 , typename ITERATOR2 >

StatusCode Tuples::TupleObj::farray | ( | const std::string & | name,
|  | ITERATOR1 && | first,
|  | ITERATOR2 && | last,
|  | const std::string & | length,
|  | size_t | maxv
| ) |  |
| inline

Add an indexed array (of type float) to N-tuple.

The method is not VERY efficient since it copies the data.

std::vector<double> values = ... ;
tuple->farray( "Values" , // item name
values.begin () , // begin of sequence
values.end () , // end of sequence
"Length" , // name of "length" item
10000 ) ;

The name of "length" item can be reused for several arrays. The last assignement "wins"

std::vector<double> val1 = ... ;
std::vector<double> val2 = ... ;
tuple->farray( "Val1" , // item name
val1.begin () , // begin of sequence
val1.end () , // end of sequence
"Length" , // name of "length" item
10000 ) ; // maximal length
tuple->farray( "Val2" , // item name
val2.begin () , // begin of sequence
val2.end () , // end of sequence
"Length" , // name of "length" item
10000 ) ; // maximal length

Any sequence `[first:last[` of objects which can be converted to type `float` can be used as input data, e.g. `std::vector<double>`, `std::vector<float>`, plain C-array, or whatever else

Parameters

  name | name of N-tuple item
  first | begin of data sequence
  last | end of data sequence
  length | name of "length" item
  maxv | maximal length of array

Definition at line 896 of file TupleObj.h.

901 {
902 return farray( name, detail::to_float,
903 std::forward<ITERATOR1>(first), std::forward<ITERATOR2>(last),
904 length, maxv );
905 }
Tuples::TupleObj::farray
StatusCode farray(const std::string &name, ITERATOR1 &&first, ITERATOR2 &&last, const std::string &length, size_t maxv)
Add an indexed array (of type float) to N-tuple.
Definition: TupleObj.h:896
template<class DATA >

StatusCode Tuples::TupleObj::farray | ( | const std::string & | name,
|  | const DATA & | data,
|  | const std::string & | length,
|  | const size_t | maxv
| ) |  |
| inline

Add an indexed array (of type float) to N-tuple.

it is just a small adaptor for the previous method

std::vector<double> values = ... ;
tuple->farray( "Values" , // item name
values , // sequence
"Length" , // name of "length" item
10000 ) ;

The name of "length" item can be reused for several arrays. The last assignment "wins"

std::vector<double> val1 = ... ;
std::vector<double> val2 = ... ;
tuple->farray( "Val1" , // item name
val1 , // begin of sequence
"Length" , // name of "length" item
10000 ) ; // maximal length
tuple->farray( "Val2" , // item name
val2 , // begin of sequence
"Length" , // name of "length" item
10000 ) ; // maximal length

Any sequence which provides `begin()` and `end()` methods can be used.

Parameters

  name | name of N-tuple item
  data | data sequence
  length | name of "length" item
  maxv | maximal length of array

Definition at line 950 of file TupleObj.h.

954 { return farray ( name , std::begin(data) , std::end(data) , length , maxv ) ; }
std::end
T end(T...args)
Tuples::TupleObj::farray
StatusCode farray(const std::string &name, ITERATOR1 &&first, ITERATOR2 &&last, const std::string &length, size_t maxv)
Add an indexed array (of type float) to N-tuple.
Definition: TupleObj.h:896
std::begin
T begin(T...args)
template<class FUNCTION , class ITERATOR >

StatusCode Tuples::TupleObj::farray | ( | const std::string & | name,
|  | const FUNCTION & | function,
|  | ITERATOR | first,
|  | ITERATOR | last,
|  | const std::string & | length,
|  | size_t | maxv
| ) |  |
| inline

Put an indexed array into LoKi-style N-Tuple.

std::vector<double> data = ... ;
Tuple tuple = ntuple( "My Ntuple" );
tuple->farray( "data" , // data item name
sqrt , // "function" to be applied
data.begin () , // begin of data sequence
data.end () , // end of data sequence
"length" , // name of "length" tuple item
10000 ) ; // maximal array length

Since the method is templated, one can use arbitrary combinations of "sequences" and "functions", e.g. one can directly manipulate with complex objects. The only one thing is required - the result of `FUNCTION(*DATA)` formal operation MUST be convertible to type `float`

// some container of particles.
ParticleVector particles = ... ;
Tuple tuple = ntuple( "My Ntuple" );
// put the transverse momentum of all particles into N-Tuple
tuple->farray( "pt" , // data item name
PT , // function object
particles.begin () , // begin of data sequence
particles.end () , // end of data sequence
"num" , // name of "length" tuple item
10000 ) ; // maximal array length
// create the appropriate function object
Fun fun = Q / P ;
// put Q/P of all particles into N-Tuple
tuple->farray( "qp" , // data item name
fun , // function object
particles.begin () , // begin of data sequence
particles.end () , // end of data sequence
"num" , // name of "length" tuple item
10000 ) ; // maximal array length

Parameters

  name | tuple item name
  function | function to be applied
  first | begin of data sequence
  last | end of data sequence
  length | name of "length" tuple name
  maxv | maximal length of the array

Returns
  status code

Definition at line 1019 of file TupleObj.h.

1025 {
1026 if ( invalid () ) { return InvalidTuple ; }
1027 if ( rowWise () ) { return InvalidOperation ; }
1028
1029 // adjust the length
1030 if( std::distance(first,last) > static_cast<std::ptrdiff_t>(maxv) ) {
1031 Warning("farray('"
1032 + name + "'): array is overflow, skip extra entries") ;
1033 last = std::next(first,maxv);
1034 }
1035
1036 // get the length item
1037 Int* len = ints( length , 0 , maxv ) ;
1038 if( !len ) { return InvalidColumn ; }
1039
1040 // adjust the length
1041 *len = std::distance(first,last);
1042
1043 // get the array itself
1044 FArray* var = fArray ( name , len ) ;
1045 if( !var ) { return InvalidColumn ; }
1046
1047 // fill the array
1048 std::transform( first, last, std::begin(*var), std::cref(function) );
1049
1050 return StatusCode::SUCCESS ;
1051 }
std::distance
T distance(T...args)
Tuples::InvalidTuple
Definition: TupleObj.h:94
Tuples::InvalidOperation
Definition: TupleObj.h:96
Tuples::TupleObj::Warning
virtual StatusCode Warning(const std::string &msg, const StatusCode sc=StatusCode::FAILURE) const =0
std::next
T next(T...args)
StatusCode::SUCCESS
Definition: StatusCode.h:30
Tuples::InvalidColumn
Definition: TupleObj.h:95
Tuples::TupleObj::rowWise
bool rowWise() const
row wise NTuple ?
Definition: TupleObj.h:2021
Tuples::TupleObj::fArray
FArray * fArray(const std::string &name, Int *item)
get the column
Definition: TupleObj.cpp:650
std::cref
T cref(T...args)
std::begin
T begin(T...args)
Tuples::TupleObj::Int
NTuple::Item< int > Int
basic type for int items
Definition: TupleObj.h:216
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030
std::transform
T transform(T...args)
Tuples::TupleObj::ints
Int * ints(const std::string &name)
get the column
Definition: TupleObj.cpp:550
Tuples::TupleObj::FArray
NTuple::Array< float > FArray
basic type for array of floats
Definition: TupleObj.h:237
template<typename Iterator , typename Fun = std::function<float(detail::const_ref_t<Iterator>)>, typename Item = std::pair<std::string,Fun>>

StatusCode Tuples::TupleObj::farray | ( | const std::vector< Item > & | items,
|  | Iterator | first,
|  | Iterator | last,
|  | const std::string & | length,
|  | size_t | maxv
| ) |  |
| inline

Put arbitrary number of functions from one data array into LoKi-style N-Tuple simultaneously (effective!)

std::vector<double> data = ... ;
Tuple tuple = ntuple( "My Ntuple" );
tuple->farray( { { "sqrt", sqrt }, // name of 1st column, and function to use for it
{ "sinus", sin } }, // name of the 2nd column, and corresponding function
data.begin () , // begin of data sequence
data.end () , // end of data sequence
"length" , // name of "length" tuple item
10000 ) ; // maximal array length

Parameters

  items | vector of pairs { name, callable }
  first | begin of data sequence
  last | end of data sequence
  length | name of "length" tuple name
  maxv | maximal length of the array

Returns
  status code

Definition at line 1082 of file TupleObj.h.

1087 {
1088 if ( invalid () ) { return InvalidTuple ; }
1089 if ( rowWise () ) { return InvalidOperation ; }
1090
1091 // adjust the lenfth
1092 if( std::distance(first,last) > static_cast<std::ptrdiff_t>(maxv) ) {
1093 using GaudiUtils::details::ostream_joiner;
1094 std::ostringstream os;
1095 ostream_joiner( os, items, ",",
1096 [](std::ostream& os, const Item& i) -> std::ostream&
1097 { return os << i.first; } );
1098 Warning( "farray('" + os.str()
1099 + "'): array overflow, skipping extra entries").ignore() ;
1100 last = std::next(first, maxv) ;
1101 }
1102
1103 // get the length item
1104 Int* len = ints ( length , 0 , maxv ) ;
1105 if ( !len ) { return InvalidColumn ; }
1106
1107 // adjust the length
1108 *len = std::distance(first,last);
1109
1110 // get the arrays themselves
1111 std::vector<FArray*> vars; vars.reserve(items.size());
1112 std::transform( items.begin(), items.end(), std::back_inserter(vars),
1113 [&](const Item& item) { return this->fArray(item.first,len); } );
1114 if ( std::any_of( vars.begin(), vars.end(), [](const FArray* f) { return !f; } ) ) {
1115 return InvalidColumn ;
1116 }
1117
1118 // fill the array
1119 size_t index = 0;
1120 while( first != last ) {
1121 auto var = vars.begin();
1122 auto item = items.begin();
1123 while ( var != vars.end() ) {
1124 (**var)[index] = item->second(*first);
1125 ++var;
1126 ++item;
1127 }
1128 ++index;
1129 ++first;
1130 }
1131
1132 return StatusCode::SUCCESS ;
1133 }
std::distance
T distance(T...args)
Tuples::InvalidTuple
Definition: TupleObj.h:94
std::vector::end
T end(T...args)
Tuples::InvalidOperation
Definition: TupleObj.h:96
Tuples::TupleObj::Warning
virtual StatusCode Warning(const std::string &msg, const StatusCode sc=StatusCode::FAILURE) const =0
std::next
T next(T...args)
StatusCode::SUCCESS
Definition: StatusCode.h:30
std::ostringstream
STL class.
Tuples::InvalidColumn
Definition: TupleObj.h:95
Tuples::TupleObj::rowWise
bool rowWise() const
row wise NTuple ?
Definition: TupleObj.h:2021
GaudiUtils::details::ostream_joiner
Stream & ostream_joiner(Stream &os, Iterator first, Iterator last, Separator sep, OutputElement output=OutputElement{})
Definition: SerializeSTL.h:35
Tuples::TupleObj::fArray
FArray * fArray(const std::string &name, Int *item)
get the column
Definition: TupleObj.cpp:650
std::vector::size
T size(T...args)
std::vector
STL class.
std::vector::begin
T begin(T...args)
std::back_inserter
T back_inserter(T...args)
std::any_of
T any_of(T...args)
Tuples::TupleObj::Int
NTuple::Item< int > Int
basic type for int items
Definition: TupleObj.h:216
ana.item
tuple item
print s1,s2
Definition: ana.py:146
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030
std::transform
T transform(T...args)
Tuples::TupleObj::ints
Int * ints(const std::string &name)
get the column
Definition: TupleObj.cpp:550
Tuples::TupleObj::FArray
NTuple::Array< float > FArray
basic type for array of floats
Definition: TupleObj.h:237
ana.i
list i
Definition: ana.py:128
std::ostream
STL class.
std::vector::reserve
T reserve(T...args)
template<class FUNC1 , class FUNC2 , class Iterator >

StatusCode Tuples::TupleObj::farray | ( | const std::string & | name1,
|  | const FUNC1 & | func1,
|  | const std::string & | name2,
|  | const FUNC2 & | func2,
|  | Iterator && | first,
|  | Iterator && | last,
|  | const std::string & | length,
|  | size_t | maxv
| ) |  |
| inline

Put two functions from one data array into LoKi-style N-Tuple simultaneously (effective!)

std::vector<double> data = ... ;
Tuple tuple = ntuple( "My Ntuple" );
tuple->farray( "square_root" , // the first data item name
sqrt , // "func1" to be used
"sinus" , // the second data item name
sin , // "func2" to be used
data.begin () , // begin of data sequence
data.end () , // end of data sequence
"length" , // name of "length" tuple item
10000 ) ; // maximal array length

Parameters

  name1 | the first tuple item name
  func1 | the first function to be applied
  name2 | the second tuple item name
  func2 | the second function to be applied
  first | begin of data sequence
  last | end of data sequence
  length | name of "length" tuple name
  maxv | maximal length of the array

Returns
  status code

Definition at line 1167 of file TupleObj.h.

1175 {
1176 return farray( { { name1, std::cref(func1) },
1177 { name2, std::cref(func2) } },
1178 std::forward<Iterator>(first), std::forward<Iterator>(last),
1179 length, maxv );
1180 }
Tuples::TupleObj::farray
StatusCode farray(const std::string &name, ITERATOR1 &&first, ITERATOR2 &&last, const std::string &length, size_t maxv)
Add an indexed array (of type float) to N-tuple.
Definition: TupleObj.h:896
std::cref
T cref(T...args)
template<class FUNC1 , class FUNC2 , class FUNC3 , class Iterator >

StatusCode Tuples::TupleObj::farray | ( | const std::string & | name1,
|  | const FUNC1 & | func1,
|  | const std::string & | name2,
|  | const FUNC2 & | func2,
|  | const std::string & | name3,
|  | const FUNC3 & | func3,
|  | Iterator && | first,
|  | Iterator && | last,
|  | const std::string & | length,
|  | size_t | maxv
| ) |  |
| inline

Put three functions from one data array into LoKi-style N-Tuple simultaneously (effective!)

std::vector<double> data = ... ;
Tuple tuple = ntuple( "My Ntuple" );
tuple->farray( "square_root" , // the first data item name
sqrt , // "func1" to be used
"sinus" , // the second data item name
sin , // "func2" to be used
"tan" , // the third data item name
tan , // "func3" to be used
data.begin () , // begin of data sequence
data.end () , // end of data sequence
"length" , // name of "length" tuple item
10000 ) ; // maximal array length

Parameters

  name1 | the first tuple item name
  func1 | the first function to be applied
  name2 | the second tuple item name
  func2 | the second function to be applied
  name3 | the third tuple item name
  func3 | the third function to be applied
  first | begin of data sequence
  last | end of data sequence
  length | name of "length" tuple name
  maxv | maximal length of the array

Returns
  status code

Definition at line 1219 of file TupleObj.h.

1229 {
1230 return farray( {{name1,std::cref(func1)},
1231 {name2,std::cref(func2)},
1232 {name3,std::cref(func3)}},
1233 std::forward<Iterator>(first), std::forward<Iterator>(last),
1234 length, maxv );
1235 }
Tuples::TupleObj::farray
StatusCode farray(const std::string &name, ITERATOR1 &&first, ITERATOR2 &&last, const std::string &length, size_t maxv)
Add an indexed array (of type float) to N-tuple.
Definition: TupleObj.h:896
std::cref
T cref(T...args)
template<class FUNC1 , class FUNC2 , class FUNC3 , class FUNC4 , class Iterator >

StatusCode Tuples::TupleObj::farray | ( | const std::string & | name1,
|  | const FUNC1 & | func1,
|  | const std::string & | name2,
|  | const FUNC2 & | func2,
|  | const std::string & | name3,
|  | const FUNC3 & | func3,
|  | const std::string & | name4,
|  | const FUNC4 & | func4,
|  | Iterator && | first,
|  | Iterator && | last,
|  | const std::string & | length,
|  | size_t | maxv
| ) |  |
| inline

Put four functions from one data array into LoKi-style N-Tuple simultaneously (effective!)

std::vector<double> data = ... ;
Tuple tuple = ntuple( "My Ntuple" );
tuple->farray( "square_root" , // the first data item name
sqrt , // "func1" to be used
"sinus" , // the second data item name
sin , // "func2" to be used
"tan" , // the third data item name
tan , // "func3" to be used
"tanh" , //
tanh , //
data.begin () , // begin of data sequence
data.end () , // end of data sequence
"length" , // name of "length" tuple item
10000 ) ; // maximal array length

Parameters

  name1 | the first tuple item name
  func1 | the first function to be applied
  name2 | the second tuple item name
  func2 | the second function to be applied
  name3 | the third tuple item name
  func3 | the third function to be applied
  name4 | the fourth tuple item name
  func4 | the fourth function to be applied
  first | begin of data sequence
  last | end of data sequence
  length | name of "length" tuple name
  maxv | maximal length of the array

Returns
  status code

Definition at line 1277 of file TupleObj.h.

1289 {
1290 return farray( {{name1,std::cref(func1)},
1291 {name2,std::cref(func2)},
1292 {name3,std::cref(func3)},
1293 {name4,std::cref(func4)}},
1294 std::forward<Iterator>(first), std::forward<Iterator>(last),
1295 length, maxv );
1296 }
Tuples::TupleObj::farray
StatusCode farray(const std::string &name, ITERATOR1 &&first, ITERATOR2 &&last, const std::string &length, size_t maxv)
Add an indexed array (of type float) to N-tuple.
Definition: TupleObj.h:896
std::cref
T cref(T...args)

Tuples::TupleObj::FArray * Tuples::TupleObj::fArray | ( | const std::string & | name,
|  | Int * | item
| ) |  |
| private

get the column

Definition at line 650 of file TupleObj.cpp.

652 {
653 // existing array ?
654 auto found = m_farrays.find( name ) ;
655 if( m_farrays.end() != found ) { return found->second.get() ; }
656 return create_(this, m_farrays, name,
657 [&](const std::string& n, FArray& i)
658 { return this->tuple()->addIndexedItem(n,*length,i); });
659 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
Tuples::TupleObj::m_farrays
FArrays m_farrays
the actual storage of all 'FArray' columns
Definition: TupleObj.h:2281
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
NTuple::Tuple::addIndexedItem
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.
Definition: NTuple.h:743
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
Tuples::TupleObj::FArray
NTuple::Array< float > FArray
basic type for array of floats
Definition: TupleObj.h:237
ana.i
list i
Definition: ana.py:128

Tuples::TupleObj::FArray * Tuples::TupleObj::fArray | ( | const std::string & | name,
|  | const MIndex & | rows
| ) |  |
| private

get the column

Definition at line 664 of file TupleObj.cpp.

666 {
667 // existing array ?
668 auto found = m_arraysf.find( name ) ;
669 if( m_arraysf.end() != found ) { return found->second.get() ; }
670 return create_(this, m_arraysf, name,
671 [&](const std::string& n, FArray& i)
672 { return this->tuple()->addItem(n,rows,i); });
673 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
Tuples::TupleObj::m_arraysf
FArrays m_arraysf
the actual storage of all 'FArray' columns (fixed)
Definition: TupleObj.h:2284
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
Tuples::TupleObj::FArray
NTuple::Array< float > FArray
basic type for array of floats
Definition: TupleObj.h:237
ana.i
list i
Definition: ana.py:128

StatusCode Tuples::TupleObj::fill | ( | const char * | format... | ) |

Set the values for several columns simultaneously.

Number of columns is arbitrary, but it should not be less than number of blank or comma separated tags in `format` string. Non-existing columns will be automatically created and appended to the ntuple.

double r1 , r2 , r3 , r4 , mass , length ;
tuple->fill( "var1 var2, radius rad4 mass len" ,
r1, r2, r3, r4, mass, length);

Warning
  ALL columns are assumed to be of type `double`

Parameters

  format | blank-separated list of variables, followed by variable number of arguments.

Attention
  All variables are assumed to be `double` numbers

Author
  Vanya Belyaev Ivan..nosp@m.Bely.nosp@m.aev@i.nosp@m.tep..nosp@m.ru

Date
  2002-10-30

decode arguments

Definition at line 214 of file TupleObj.cpp.

215 {
216 // check the underlying tuple
217 if ( invalid() ) { return InvalidTuple ; }
218 // decode format string into tokens
219 auto tokens = tokenize( format , " ,;" );
221 va_list valist ;
222 va_start( valist , format ) ;
223 // loop over all tokens
224 StatusCode status = StatusCode::SUCCESS ;
225 for( auto token = tokens.cbegin() ;
226 tokens.cend() != token && status.isSuccess() ; ++token )
227 {
228 double val = va_arg( valist , double );
229 status = column( *token , val );
230 if( status.isFailure() )
231 { Error ( "fill(): Can not add column '" + *token + "' " ) ; }
232 }
233 // mandatory !!!
234 va_end( valist );
235 //
236 return status ;
237 }
format
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
Definition: MsgStream.cpp:119
Tuples::InvalidTuple
Definition: TupleObj.h:94
StatusCode::isSuccess
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:76
Tuples::TupleObj::column
StatusCode column(const std::string &name, float value)
Set the value for selected tuple column.
Definition: TupleObj.cpp:263
StatusCode::isFailure
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:86
StatusCode::SUCCESS
Definition: StatusCode.h:30
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Tuples::TupleObj::Error
virtual StatusCode Error(const std::string &msg, const StatusCode sc=StatusCode::FAILURE) const =0
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030
va_list

Tuples::TupleObj::Float * Tuples::TupleObj::floats | ( | const std::string & | name | ) |
| private

get the column

Definition at line 436 of file TupleObj.cpp.

437 {
438 auto found = m_floats.find( name ) ;
439 if ( m_floats.end() != found ) { return found->second.get() ; }
440 return create_(this, m_floats,name,
441 [&](const std::string& n, Float& i)
442 { return this->tuple()->addItem(n,i); });
443 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
Tuples::TupleObj::Float
NTuple::Item< float > Float
basic type for float items
Definition: TupleObj.h:228
Tuples::TupleObj::m_floats
Floats m_floats
the actual storage of all 'Float' columns
Definition: TupleObj.h:2272
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128
template<class MATRIX >

StatusCode Tuples::TupleObj::fmatrix | ( | const std::string & | name,
|  | const MATRIX & | data,
|  | size_t | rows,
|  | const MIndex & | cols,
|  | const std::string & | length,
|  | size_t | maxv
| ) |  |
| inline

Fill N-Tuple with data from variable-size matrix.

"Matrix" could be of any type, which supports data[iRow][iCol] indexing, e.g.

- std::vector<std::vector<TYPE> >
- CLHEP::HepMatrix, etc...

typedef std::vector<double> Row ;
typedef std::vector<Row> Mtrx ;
// number of columns (fixed!)
const size_t numCols = 5 ;
// maximal number of rows
const size_t maxRows = 300 ;
// number of rows (variable)
size_t numRows = .... ;
...
tuple -> fMatrix ( "mtrx" , // "column" name
mtrx , // matrix
numRows , // number of rows (variable!)
numCols , // number of columns (fixed)
"Length" , // name for "length" column
maxRows ) ; // maximal number of columns
CLHEP::HepMatrix mtrx = ... ;
...
tuple -> fMatrix ( "mtrx" , // "column" name
mtrx , // matrix
mtrx.num_row() , // number of rows (variable!)
mtrx.num_col() , // number of columns (fixed)
"Length" , // name for "length" column
maxRows ) ; // maximal number of columns

Parameters

  name | entry name in N-Tuple
  data | matrix itself
  rows | number of rows of matrix (variable)
  cols | number of columns of matrix (fixed)
  length | entry name in NTuple for number of matrix column
  maxv | maximal number of rows in matrix

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@l.nosp@m.app..nosp@m.in2p3.nosp@m..fr

Date
  2005-05-01

fill the matrix

Definition at line 1351 of file TupleObj.h.

1357 {
1358 if ( invalid () ) { return InvalidTuple ; }
1359 if ( rowWise () ) { return InvalidOperation ; }
1360
1361 // adjust the length
1362 if ( rows >= maxv )
1363 {
1364 Warning ( "fmatrix('"+name+"'): matrix is overflow, skip extra items").ignore() ;
1365 rows = ( 0 < maxv ) ? ( maxv - 1 ) : 0 ;
1366 }
1367
1368 // get the length item
1369 Int* len = ints( length , 0 , maxv ) ;
1370 if ( !len ) { return InvalidColumn; }
1371
1372 // adjust the length item
1373 *len = rows ;
1374
1375 // get the array itself
1376 FMatrix* var = fMatrix ( name , len , cols ) ;
1377 if ( !var ) { return InvalidColumn ; }
1378
1380 for ( size_t iCol = 0 ; iCol < cols ; ++iCol )
1381 {
1382 for ( MIndex iRow = 0 ; iRow < rows ; ++iRow )
1383 { (*var)[ iRow ] [ iCol ] = data[ iRow ][ iCol ] ; }
1384 }
1385
1386 return StatusCode::SUCCESS ;
1387 }
Tuples::InvalidTuple
Definition: TupleObj.h:94
Tuples::TupleObj::MIndex
unsigned short MIndex
Definition: TupleObj.h:243
Tuples::InvalidOperation
Definition: TupleObj.h:96
Tuples::TupleObj::Warning
virtual StatusCode Warning(const std::string &msg, const StatusCode sc=StatusCode::FAILURE) const =0
StatusCode::SUCCESS
Definition: StatusCode.h:30
Tuples::TupleObj::FMatrix
NTuple::Matrix< float > FMatrix
basic type for matrix of floats
Definition: TupleObj.h:240
Tuples::InvalidColumn
Definition: TupleObj.h:95
Tuples::TupleObj::rowWise
bool rowWise() const
row wise NTuple ?
Definition: TupleObj.h:2021
Tuples::TupleObj::Int
NTuple::Item< int > Int
basic type for int items
Definition: TupleObj.h:216
Tuples::TupleObj::fMatrix
FMatrix * fMatrix(const std::string &name, Int *item, const MIndex &cols)
get the column
Definition: TupleObj.cpp:679
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030
Tuples::TupleObj::ints
Int * ints(const std::string &name)
get the column
Definition: TupleObj.cpp:550
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:108
template<class DATA >

StatusCode Tuples::TupleObj::fmatrix | ( | const std::string & | name,
|  | DATA | first,
|  | DATA | last,
|  | const MIndex & | cols,
|  | const std::string & | length,
|  | size_t | maxv
| ) |  |
| inline

Fill N-Tuple with data from variable-size matrix.

"Matrix" could be of any type, which supports iteration from the first column to the last column and for each iterating column supports the indexing: (*first)[iCol]

typedef std::vector<double> Row ;
typedef std::vector<Row> Mtrx ;
// number of rows (fixed!)
const size_t numRows = 5 ;
// maximal number of columns
const size_t maxCols = 300 ;
// number of columns (variable)
size_t numCols = .... ;
...
tuple -> fMatrix ( "mtrx" , // entry name
mtrx.begin() , // first row of matrix
mtrx.end () , // last row of matrix
numCols , // number of columns (fixed!)
"Length" , // name for "length" column
maxRows ) ; // maximal number of rows

Parameters

  name | entry name in N-Tuple
  first | iterator for the first row of matrix
  last | iterator for the last row of matrix
  cols | number of columns for matrix (fixed!)
  length | entry name in NTuple for number of matrix column
  maxv | maximal number of rows in matrix

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@l.nosp@m.app..nosp@m.in2p3.nosp@m..fr

Date
  2005-05-01

fill the matrix

Definition at line 1426 of file TupleObj.h.

1432 {
1433 if ( invalid () ) { return InvalidTuple ; }
1434 if ( rowWise () ) { return InvalidOperation ; }
1435
1436 // adjust the length
1437 if ( first + maxv < last )
1438 {
1439 Warning("fmatrix('"+name+"'): matrix is overflow, skip extra items").ignore() ;
1440 last = first + maxv ;
1441 }
1442
1443 // get the length item
1444 Int* len = ints( length , 0 , maxv ) ;
1445 if ( !len ) { return InvalidColumn; }
1446
1447 // adjust the length item
1448 *len = last - first ;
1449
1450 // get the array itself
1451 FMatrix* var = fMatrix ( name , len , cols ) ;
1452 if ( !var ) { return InvalidColumn ; }
1453
1455 size_t iRow = 0 ;
1456 for ( ; first != last ; ++first )
1457 {
1458 //
1459 for ( MIndex iCol = 0 ; iCol < cols ; ++iCol )
1460 { (*var)[ iRow ] [ iCol ] = (float)((*first)[ iCol ]) ; }
1461 //
1462 ++iRow ;
1463 }
1464
1465 return StatusCode::SUCCESS ;
1466 }
Tuples::InvalidTuple
Definition: TupleObj.h:94
Tuples::TupleObj::MIndex
unsigned short MIndex
Definition: TupleObj.h:243
Tuples::InvalidOperation
Definition: TupleObj.h:96
Tuples::TupleObj::Warning
virtual StatusCode Warning(const std::string &msg, const StatusCode sc=StatusCode::FAILURE) const =0
StatusCode::SUCCESS
Definition: StatusCode.h:30
Tuples::TupleObj::FMatrix
NTuple::Matrix< float > FMatrix
basic type for matrix of floats
Definition: TupleObj.h:240
Tuples::InvalidColumn
Definition: TupleObj.h:95
Tuples::TupleObj::rowWise
bool rowWise() const
row wise NTuple ?
Definition: TupleObj.h:2021
Tuples::TupleObj::Int
NTuple::Item< int > Int
basic type for int items
Definition: TupleObj.h:216
Tuples::TupleObj::fMatrix
FMatrix * fMatrix(const std::string &name, Int *item, const MIndex &cols)
get the column
Definition: TupleObj.cpp:679
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030
Tuples::TupleObj::ints
Int * ints(const std::string &name)
get the column
Definition: TupleObj.cpp:550
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:108
template<class FUN , class DATA >

StatusCode Tuples::TupleObj::fmatrix | ( | const std::string & | name,
|  | FUN | funF,
|  | FUN | funL,
|  | DATA | first,
|  | DATA | last,
|  | const std::string & | length,
|  | size_t | maxv
| ) |  |
| inline

fill N-Tuple with matrix of "direct-product" of "data-vector" [first,last) and "function-vector" [funF, funL)

The elements of effective matrix are:

mtrx[iCol][iRow] = (*(funF+iRow))( *(first+iCol) )

Attention
  The length of data-vector is variable, while the length of "function" vector is fixed!

typedef std::vector<double> Array ;
Array array = ... ;
typedef double (*fun)( double ) ;
typedef std::vector<fun> Funs ;
Funs funs ;
funs.push_back( sin ) ;
funs.push_back( cos ) ;
funs.push_back( tan ) ;
funs.push_back( sinh ) ;
funs.push_back( cosh ) ;
funs.push_back( tanh ) ;
tuple->fmatrix ( "mtrx" , // N-Tuple entry name
funs.begin () , // begin of "function-vector"
funs.end () , // end of "function-vector"
array.begin () , // begin of "data-vector"
array.end () , // end of "data-vector"
"Length" ,
100 ) ;

This method is very convenient e.g. for using within LoKi:

typedef std::vector<Fun> VctFun ;
// sequence of Particles
Range particles = .... ;
// vector of functions:
VctFun funs ;
funs.push_back( E / GeV ) ;
funs.push_back( PX / GeV ) ;
funs.push_back( PY / GeV ) ;
funs.push_back( PZ / GeV ) ;
funs.push_back( PT / GeV ) ;
funs.push_back( M / GeV ) ;
funs.push_back( ID ) ;
// fill N-Tuple with information about each particle
tuple -> fmatrix ( "vars" ,
funs.begin () ,
funs.end () ,
particles.begin () ,
particles.end () ,
"nParts" ,
200 ) ;

Parameters

  name | entry name in N-Tuple
  funF | "begin"-iterator for vector of functions
  funL | "end"-iterator for vector of functions
  first | "begin"-iterator for vector of data
  last | "end"-iterator for vector of data
  length | entry name in NTuple for number of matrix column
  maxv | maximal number of rows in matrix

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@l.nosp@m.app..nosp@m.in2p3.nosp@m..fr

Date
  2005-05-01

fill the matrix

Definition at line 1547 of file TupleObj.h.

1554 {
1555 if ( invalid () ) { return InvalidTuple ; }
1556 if ( rowWise () ) { return InvalidOperation ; }
1557
1558 // adjust the length
1559 if ( std::distance(first,last) > static_cast<std::ptrdiff_t>(maxv) )
1560 {
1561 Warning("fmatrix('"+name+"'): matrix is overflow, skip extra items").ignore() ;
1562 last = std::next(first, maxv) ;
1563 }
1564
1565 // get the length item
1566 Int* len = ints( length , 0 , maxv ) ;
1567 if ( !len ) { return InvalidColumn; }
1568
1569 // adjust the length item
1570 *len = std::distance(first,last);
1571
1572 // get the array itself
1573 auto cols = std::distance(funF,funL);
1574 FMatrix* var = fMatrix ( name , len , cols ) ;
1575 if ( !var ) { return InvalidColumn ; }
1576
1578 size_t iRow = 0 ;
1579 for ( ; first != last ; ++first )
1580 {
1581 //
1582 for ( FUN fun = funF ; fun < funL ; ++fun )
1583 { (*var)[ iRow ] [ fun - funF ] = (*fun) ( *first ) ; }
1584 //
1585 ++iRow;
1586 }
1587
1588 return StatusCode::SUCCESS ;
1589 }
std::distance
T distance(T...args)
Tuples::InvalidTuple
Definition: TupleObj.h:94
Tuples::InvalidOperation
Definition: TupleObj.h:96
Tuples::TupleObj::Warning
virtual StatusCode Warning(const std::string &msg, const StatusCode sc=StatusCode::FAILURE) const =0
std::next
T next(T...args)
StatusCode::SUCCESS
Definition: StatusCode.h:30
Tuples::TupleObj::FMatrix
NTuple::Matrix< float > FMatrix
basic type for matrix of floats
Definition: TupleObj.h:240
Tuples::InvalidColumn
Definition: TupleObj.h:95
Tuples::TupleObj::rowWise
bool rowWise() const
row wise NTuple ?
Definition: TupleObj.h:2021
fun
double fun(const std::vector< double > &x)
Definition: PFuncTest.cpp:26
Tuples::TupleObj::Int
NTuple::Item< int > Int
basic type for int items
Definition: TupleObj.h:216
Tuples::TupleObj::fMatrix
FMatrix * fMatrix(const std::string &name, Int *item, const MIndex &cols)
get the column
Definition: TupleObj.cpp:679
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030
Tuples::TupleObj::ints
Int * ints(const std::string &name)
get the column
Definition: TupleObj.cpp:550
StatusCode::ignore
void ignore() const
Definition: StatusCode.h:108
template<class KEY , class VALUE >

StatusCode Tuples::TupleObj::fmatrix | ( | const std::string & | name,
|  | const GaudiUtils::VectorMap< KEY, VALUE > & | info,
|  | const std::string & | length,
|  | const size_t | maxv = `100`
| ) |  |
| inline

shortcut to put "ExtraInfo" fields of major into N-Tuple

const LHCb::Particle* B = ...
Tuple tuple = nTuple("My N-Tuple") ;
// put the vector into N-Tuple:
tuple -> fmatrix ( "Info" , B->extraInfo() , "nInfo" , 100 ) ;

Author
  Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u

Date
  2006-11-26

Definition at line 1947 of file TupleObj.h.

1951 {
1952 using Info = std::pair<KEY,VALUE>;
1953 static const std::array< std::function<float(const Info&)>, 2>
1954 fns = { [](const Info& i) { return i.first; } ,
1955 [](const Info& i) { return i.second; } };
1956 return fmatrix( name,
1957 std::begin(fns), std::end(fns),
1958 std::begin(info), std::end(info),
1959 length,maxv );
1960 }
std::end
T end(T...args)
Tuples::TupleObj::fmatrix
StatusCode fmatrix(const std::string &name, const MATRIX &data, size_t rows, const MIndex &cols, const std::string &length, size_t maxv)
Fill N-Tuple with data from variable-size matrix.
Definition: TupleObj.h:1351
std::pair
std::begin
T begin(T...args)
std::array
STL class.
ana.i
list i
Definition: ana.py:128

Tuples::TupleObj::FMatrix * Tuples::TupleObj::fMatrix | ( | const std::string & | name,
|  | Int * | item,
|  | const MIndex & | cols
| ) |  |
| private

get the column

Definition at line 679 of file TupleObj.cpp.

682 {
683 // existing array ?
684 auto found = m_fmatrices.find( name ) ;
685 if( m_fmatrices.end() != found ) { return found->second.get() ; }
686 return create_(this, m_fmatrices, name,
687 [&](const std::string& n, FMatrix& i)
688 { return this->tuple()->addIndexedItem(n,*length,cols,i); });
689 }
Tuples::TupleObj::m_fmatrices
FMatrices m_fmatrices
the actual storage of all 'FArray' columns
Definition: TupleObj.h:2287
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
NTuple::Tuple::addIndexedItem
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.
Definition: NTuple.h:743
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
Tuples::TupleObj::FMatrix
NTuple::Matrix< float > FMatrix
basic type for matrix of floats
Definition: TupleObj.h:240
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
ana.i
list i
Definition: ana.py:128

Tuples::TupleObj::FMatrix * Tuples::TupleObj::fMatrix | ( | const std::string & | name,
|  | const MIndex & | rows,
|  | const MIndex & | cols
| ) |  |
| private

get the column

Definition at line 695 of file TupleObj.cpp.

698 {
699 // existing array ?
700 auto found = m_matricesf.find( name ) ;
701 if( m_matricesf.end() != found ) { return found->second.get() ; }
702 return create_(this, m_matricesf, name,
703 [&](const std::string& n, FMatrix& i)
704 { return this->tuple()->addItem(n,rows,cols,i); });
705 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
Tuples::TupleObj::m_matricesf
FMatrices m_matricesf
the actual storage of all 'FMatrix' columns (fixed)
Definition: TupleObj.h:2290
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
Tuples::TupleObj::FMatrix
NTuple::Matrix< float > FMatrix
basic type for matrix of floats
Definition: TupleObj.h:240
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128

bool Tuples::TupleObj::goodItem | ( | const std::string & | name | ) | const
| inline

check the uniqueness of the name

Parameters

  name | the name of the item

Returns
  true if the name is indeed unique

Definition at line 2047 of file TupleObj.h.

2048 { return m_items.end() == m_items.find ( name ) ; }
std::map::end
T end(T...args)
Tuples::TupleObj::m_items
ItemMap m_items
all booked types:
Definition: TupleObj.h:2293
std::map::find
T find(T...args)

Tuples::TupleObj::Int * Tuples::TupleObj::ints | ( | const std::string & | name | ) |
| private

get the column

Definition at line 550 of file TupleObj.cpp.

551 {
552 auto found = m_ints.find( name ) ;
553 if( m_ints.end() != found ) { return found->second.get() ; }
554 return create_(this, m_ints, name,
555 [&](const std::string& n, Int& i)
556 { return this->tuple()->addItem(n,i); });
557 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
Tuples::TupleObj::m_ints
Ints m_ints
the actual storage of all 'Int' columns
Definition: TupleObj.h:2260
Tuples::TupleObj::Int
NTuple::Item< int > Int
basic type for int items
Definition: TupleObj.h:216
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128

Tuples::TupleObj::Int * Tuples::TupleObj::ints | ( | const std::string & | name,
|  | int | minv,
|  | int | maxv
| ) |  |
| private

get the column

Definition at line 560 of file TupleObj.cpp.

563 {
564 auto found = m_ints.find( name ) ;
565 if( m_ints.end() != found ) { return found->second.get() ; }
566 return create_(this, m_ints, name,
567 [&](const std::string& n, Int& i)
568 { return this->tuple()->addItem(n,i,minv,maxv); });
569 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
Tuples::TupleObj::m_ints
Ints m_ints
the actual storage of all 'Int' columns
Definition: TupleObj.h:2260
Tuples::TupleObj::Int
NTuple::Item< int > Int
basic type for int items
Definition: TupleObj.h:216
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128

bool Tuples::TupleObj::invalid | ( |  | ) | const
| inline

invalid pointer to tuple ?

Definition at line 2030 of file TupleObj.h.

2030 { return ! valid() ; }
Tuples::TupleObj::valid
bool valid() const
valid pointer to tuple ?
Definition: TupleObj.h:2027

const ItemMap& Tuples::TupleObj::items | ( |  | ) | const
| inline

get the full list of booked items

Definition at line 2051 of file TupleObj.h.

2051 { return m_items ; }
Tuples::TupleObj::m_items
ItemMap m_items
all booked types:
Definition: TupleObj.h:2293

Tuples::TupleObj::LongLong * Tuples::TupleObj::longlongs | ( | const std::string & | name | ) |
| private

get the column

Definition at line 594 of file TupleObj.cpp.

595 {
596 auto found = m_longlongs.find( name ) ;
597 if( m_longlongs.end() != found ) { return found->second.get() ; }
598 return create_(this, m_longlongs, name,
599 [&](const std::string& n, LongLong& i)
600 { return this->tuple()->addItem(n,i); });
601 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
Tuples::TupleObj::m_longlongs
LongLongs m_longlongs
the actual storage of all 'longlong' columns
Definition: TupleObj.h:2266
Tuples::TupleObj::LongLong
NTuple::Item< long long > LongLong
basic type for unsigned long long items
Definition: TupleObj.h:222
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128

Tuples::TupleObj::LongLong * Tuples::TupleObj::longlongs | ( | const std::string & | name,
|  | long long | minv,
|  | long long | maxv
| ) |  |
| private

get the column

Definition at line 604 of file TupleObj.cpp.

607 {
608 auto found = m_longlongs.find( name ) ;
609 if( m_longlongs.end() != found ) { return found->second.get() ; }
610 return create_(this, m_longlongs, name,
611 [&](const std::string& n, LongLong& i)
612 { return this->tuple()->addItem(n,i,minv,maxv); });
613 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
Tuples::TupleObj::m_longlongs
LongLongs m_longlongs
the actual storage of all 'longlong' columns
Definition: TupleObj.h:2266
Tuples::TupleObj::LongLong
NTuple::Item< long long > LongLong
basic type for unsigned long long items
Definition: TupleObj.h:222
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128
template<class MATRIX >

StatusCode Tuples::TupleObj::matrix | ( | const std::string & | name,
|  | const MATRIX & | data,
|  | const MIndex & | rows,
|  | const MIndex & | cols
| ) |  |
| inline

fill N-Tuple with fixed-size matrix

"MATRIX" must support indexing operations: data[iRow][iCol]

e.g it could be of type:

- std::vector<std::vector<TYPE> >
- CLHEP::HepMatrix , CLHEP::GenMatrix, etc ...
- "TYPE"[n][m]

The content of MATRIX should be implicitly convertible to "float"

CLHEP::HepMatrix mtrx1(3,20) ;
...
tuple -> matrix ( "m1" ,
mtrx1 ,
mtrx1.num_row() ,
mtrx1.num_col() ) ;
typedef std::vector<double> Row ;
typedef std:vector<Row> Mtrx ;
Mtrx mtrx2( 3 , Row(10) ) ;
...
tuple -> matrix ( "m2" ,
mtrx2 ,
3 ,
10 ) ;
float mtrx3[3][10] ;
...
tuple -> matrix ( "m3" ,
mtrx3 ,
3 ,
10 ) ;

Parameters

  name | N-Tuple entry name
  data | data source (matrix)
  cols | number of columns
  rows | number of rows

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@l.nosp@m.app..nosp@m.in2p3.nosp@m..fr

Date
  2005-05-01

fill the matrix

Definition at line 1777 of file TupleObj.h.

1781 {
1782 if ( invalid () ) { return InvalidTuple ; }
1783 if ( rowWise () ) { return InvalidOperation ; }
1784
1785 // get the matrix itself
1786 FMatrix* var = fMatrix ( name , rows , cols ) ;
1787 if ( !var ) { return InvalidColumn ; }
1788
1790 for ( size_t iCol = 0 ; iCol < cols ; ++iCol )
1791 {
1792 for ( size_t iRow = 0 ; iRow < rows ; ++iRow )
1793 { (*var)[iRow][iCol] = data[iRow][iCol]; }
1794 };
1795 return StatusCode::SUCCESS ;
1796 }
Tuples::InvalidTuple
Definition: TupleObj.h:94
Tuples::InvalidOperation
Definition: TupleObj.h:96
StatusCode::SUCCESS
Definition: StatusCode.h:30
Tuples::TupleObj::FMatrix
NTuple::Matrix< float > FMatrix
basic type for matrix of floats
Definition: TupleObj.h:240
Tuples::InvalidColumn
Definition: TupleObj.h:95
Tuples::TupleObj::rowWise
bool rowWise() const
row wise NTuple ?
Definition: TupleObj.h:2021
Tuples::TupleObj::fMatrix
FMatrix * fMatrix(const std::string &name, Int *item, const MIndex &cols)
get the column
Definition: TupleObj.cpp:679
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030
template<class TYPE , unsigned int D1, unsigned int D2, class REP >

StatusCode Tuples::TupleObj::matrix | ( | const std::string & | name,
|  | const ROOT::Math::SMatrix< TYPE, D1, D2, REP > & | mtrx
| ) |  |
| inline

shortcut to put Smatrix into N-tuple:

Author
  Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u

Date
  2006-11-26

fill the matrix

Definition at line 1908 of file TupleObj.h.

1910 {
1911 if ( invalid () ) { return InvalidTuple ; }
1912 if ( rowWise () ) { return InvalidOperation ; }
1913
1914 // get the matrix itself
1915 FMatrix* var = fMatrix ( name , (MIndex)D1 , (MIndex)D2 ) ;
1916 if ( !var ) { return InvalidColumn ; }
1917
1919 for ( size_t iCol = 0 ; iCol < D2 ; ++iCol )
1920 {
1921 for ( size_t iRow = 0 ; iRow < D1 ; ++iRow )
1922 { (*var)[iRow][iCol] = mtrx(iRow,iCol) ; }
1923 };
1924
1925 return StatusCode::SUCCESS ;
1926 }
Tuples::InvalidTuple
Definition: TupleObj.h:94
Tuples::TupleObj::MIndex
unsigned short MIndex
Definition: TupleObj.h:243
Tuples::InvalidOperation
Definition: TupleObj.h:96
StatusCode::SUCCESS
Definition: StatusCode.h:30
Tuples::TupleObj::FMatrix
NTuple::Matrix< float > FMatrix
basic type for matrix of floats
Definition: TupleObj.h:240
Tuples::InvalidColumn
Definition: TupleObj.h:95
Tuples::TupleObj::rowWise
bool rowWise() const
row wise NTuple ?
Definition: TupleObj.h:2021
Tuples::TupleObj::fMatrix
FMatrix * fMatrix(const std::string &name, Int *item, const MIndex &cols)
get the column
Definition: TupleObj.cpp:679
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030

const std::string& Tuples::TupleObj::name | ( |  | ) | const
| inline

get the name

Definition at line 1983 of file TupleObj.h.

1983 { return m_name ; }
Tuples::TupleObj::m_name
std::string m_name
name
Definition: TupleObj.h:2230

TupleObj& Tuples::TupleObj::operator= | ( | const TupleObj & |  | ) |
| private delete

template<class TYPE >

StatusCode Tuples::TupleObj::put | ( | const std::string & | name,
|  | const TYPE * | obj
| ) |  |
| inline

The function allows to add almost arbitrary object into N-tuple.

Attention
  it requires POOL persistency

Parameters

  name | column name
  obj | pointer to the object

Author
  Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u

Date
  2007-04-08

Definition at line 124 of file TuplePut.h.

125 {
126 if ( invalid () ) { return InvalidTuple ; } // RETURN
127 if ( !evtColType () ) { return InvalidOperation ; } // RETURN
128
129 // static block: The type description & the flag
130 static bool s_fail = false ; // STATIC
131 static TClass* s_type = nullptr; // STATIC
132 // check the status
133 if ( s_fail ) { return InvalidItem ; } // RETURN
134 else if ( !s_type )
135 {
136 s_type = TClass::GetClass(typeid(TYPE));
137 if ( !s_type )
138 {
139 s_fail = true ;
140 return Error ( " put('"+name+"'," + System::typeinfoName(typeid(TYPE)) +
141 ") :Invalid ROOT Type", InvalidItem ) ; // RETURN
142 }
143 }
144 // the local storage of items
145 static Tuples::ItemStore<TYPE*> s_map ;
146 // get the variable by name:
147 auto item = s_map.getItem ( name , this ) ;
148 if ( !item )
149 { return Error ( " put('" + name + "'): invalid item detected", InvalidItem ) ; }
150 // assign the item!
151 (*item) = const_cast<TYPE*> ( obj ) ; // THATS ALL!!
152 //
153 return StatusCode::SUCCESS ; // RETURN
154 }
Tuples::TupleObj::evtColType
bool evtColType() const
Event collection ?
Definition: TupleObj.h:2024
Tuples::InvalidTuple
Definition: TupleObj.h:94
System::typeinfoName
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:297
Tuples::InvalidItem
Definition: TupleObj.h:98
Tuples::InvalidOperation
Definition: TupleObj.h:96
StatusCode::SUCCESS
Definition: StatusCode.h:30
Tuples::TupleObj::Error
virtual StatusCode Error(const std::string &msg, const StatusCode sc=StatusCode::FAILURE) const =0
ana.item
tuple item
print s1,s2
Definition: ana.py:146
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030
Tuples::ItemStore
Simple class, which represents the local storage of N-tuple items of the given type.
Definition: TuplePut.h:38
Tuples::ItemStore::getItem
NTuple::Item< VALUE > * getItem(const std::string &key, Tuples::TupleObj *tuple)
the only one method:
Definition: TuplePut.h:49

unsigned long Tuples::TupleObj::refCount | ( |  | ) | const
| inline

return the reference counter

Returns
  current reference counter

Definition at line 1998 of file TupleObj.h.

1998 { return m_refCount ; }
Tuples::TupleObj::m_refCount
size_t m_refCount
reference counter
Definition: TupleObj.h:2242

void Tuples::TupleObj::release | ( |  | ) |

release the reference to TupleObj if reference counter becomes zero, object will be automatically deleted

Definition at line 170 of file TupleObj.cpp.

171 {
172 // decrease the reference counter
173 if( refCount() > 0 ) { --m_refCount; }
174 // check references -- delete if needed
175 if( 0 == refCount() ) delete this;
176 }
Tuples::TupleObj::m_refCount
size_t m_refCount
reference counter
Definition: TupleObj.h:2242
Tuples::TupleObj::refCount
unsigned long refCount() const
return the reference counter
Definition: TupleObj.h:1998

bool Tuples::TupleObj::rowWise | ( |  | ) | const
| inline

row wise NTuple ?

Definition at line 2021 of file TupleObj.h.

2021 { return CLID_RowWiseTuple == clid() ; }
Tuples::TupleObj::clid
const CLID & clid() const
accessor to the N-Tuple CLID
Definition: TupleObj.h:2012

Tuples::TupleObj::Short * Tuples::TupleObj::shorts | ( | const std::string & | name | ) |
| private

get the column

Definition at line 506 of file TupleObj.cpp.

507 {
508 auto found = m_shorts.find( name ) ;
509 if( m_shorts.end() != found ) { return found->second.get() ; }
510 return create_(this, m_shorts, name,
511 [&](const std::string& n, Short& i)
512 { return this->tuple()->addItem(n,i); });
513 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
Tuples::TupleObj::Short
NTuple::Item< short > Short
basic type for int items
Definition: TupleObj.h:210
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
Tuples::TupleObj::m_shorts
Shorts m_shorts
the actual storage of all 'Int' columns
Definition: TupleObj.h:2254
ana.i
list i
Definition: ana.py:128

Tuples::TupleObj::Short * Tuples::TupleObj::shorts | ( | const std::string & | name,
|  | short | minv,
|  | short | maxv
| ) |  |
| private

get the column

Definition at line 516 of file TupleObj.cpp.

519 {
520 auto found = m_shorts.find( name ) ;
521 if( m_shorts.end() != found ) { return found->second.get(); }
522 return create_(this, m_shorts, name,
523 [&](const std::string& n, Short& i)
524 { return this->tuple()->addItem(n,i,minv,maxv); });
525 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
Tuples::TupleObj::Short
NTuple::Item< short > Short
basic type for int items
Definition: TupleObj.h:210
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
Tuples::TupleObj::m_shorts
Shorts m_shorts
the actual storage of all 'Int' columns
Definition: TupleObj.h:2254
ana.i
list i
Definition: ana.py:128

const NTuple::Tuple* Tuples::TupleObj::tuple | ( |  | ) | const
| inline

provide the access to underlying Gaudi N-tuple

Returns
  pointer to Gaudi N-tuple object

Definition at line 1988 of file TupleObj.h.

1988 { return m_tuple ; }
Tuples::TupleObj::m_tuple
NTuple::Tuple * m_tuple
tuple itself
Definition: TupleObj.h:2233

NTuple::Tuple* Tuples::TupleObj::tuple | ( |  | ) |
| inline

provide the access to underlying Gaudi N-tuple

Returns
  pointer to Gaudi N-tuple object

Definition at line 1993 of file TupleObj.h.

1993 { return m_tuple ; }
Tuples::TupleObj::m_tuple
NTuple::Tuple * m_tuple
tuple itself
Definition: TupleObj.h:2233

Tuples::Type Tuples::TupleObj::type | ( |  | ) | const
| inline

accessor to the N-Tuple type

Definition at line 2015 of file TupleObj.h.

2015 { return m_type ; }
Tuples::TupleObj::m_type
Tuples::Type m_type
tuple 'type'
Definition: TupleObj.h:2239

Tuples::TupleObj::UChar * Tuples::TupleObj::uchars | ( | const std::string & | name | ) |
| private

get the column

Definition at line 486 of file TupleObj.cpp.

487 {
488 auto found = m_uchars.find( name ) ;
489 return ( found != m_uchars.end() ) ? found->second.get()
490 : create_(this, m_uchars, name,
491 [&](const std::string& n, UChar& i)
492 { return this->tuple()->addItem(n,i); });
493 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
Tuples::TupleObj::UChar
NTuple::Item< unsigned char > UChar
basic type for unsigned int items
Definition: TupleObj.h:207
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128
Tuples::TupleObj::m_uchars
UChars m_uchars
the actual storage of all 'unsigned int' columns
Definition: TupleObj.h:2251

Tuples::TupleObj::UChar * Tuples::TupleObj::uchars | ( | const std::string & | name,
|  | unsigned char | minv,
|  | unsigned char | maxv
| ) |  |
| private

get the column

Definition at line 496 of file TupleObj.cpp.

497 {
498 auto found = m_uchars.find( name ) ;
499 return ( found != m_uchars.end() ) ? found->second.get()
500 : create_(this, m_uchars, name,
501 [&](const std::string& n, UChar& i)
502 { return this->tuple()->addItem(n,i,minv,maxv); });
503 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
Tuples::TupleObj::UChar
NTuple::Item< unsigned char > UChar
basic type for unsigned int items
Definition: TupleObj.h:207
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128
Tuples::TupleObj::m_uchars
UChars m_uchars
the actual storage of all 'unsigned int' columns
Definition: TupleObj.h:2251

Tuples::TupleObj::UInt * Tuples::TupleObj::uints | ( | const std::string & | name | ) |
| private

get the column

Definition at line 572 of file TupleObj.cpp.

573 {
574 auto found = m_uints.find( name ) ;
575 if( m_uints.end() != found ) { return found->second.get() ; }
576 return create_(this, m_uints, name,
577 [&](const std::string& n, UInt& i)
578 { return this->tuple()->addItem(n,i); });
579 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
Tuples::TupleObj::m_uints
UInts m_uints
the actual storage of all 'unsigned int' columns
Definition: TupleObj.h:2263
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128
Tuples::TupleObj::UInt
NTuple::Item< unsigned int > UInt
basic type for unsigned int items
Definition: TupleObj.h:219

Tuples::TupleObj::UInt * Tuples::TupleObj::uints | ( | const std::string & | name,
|  | unsigned int | minv,
|  | unsigned int | maxv
| ) |  |
| private

get the column

Definition at line 582 of file TupleObj.cpp.

585 {
586 auto found = m_uints.find( name ) ;
587 if( m_uints.end() != found ) { return found->second.get() ; }
588 return create_(this, m_uints, name,
589 [&](const std::string& n, UInt& i)
590 { return this->tuple()->addItem(n,i,minv,maxv); });
591 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
Tuples::TupleObj::m_uints
UInts m_uints
the actual storage of all 'unsigned int' columns
Definition: TupleObj.h:2263
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128
Tuples::TupleObj::UInt
NTuple::Item< unsigned int > UInt
basic type for unsigned int items
Definition: TupleObj.h:219

Tuples::TupleObj::ULongLong * Tuples::TupleObj::ulonglongs | ( | const std::string & | name | ) |
| private

get the column

Definition at line 616 of file TupleObj.cpp.

617 {
618 auto found = m_ulonglongs.find( name ) ;
619 if( m_ulonglongs.end() != found ) { return found->second.get() ; }
620 return create_(this, m_ulonglongs, name,
621 [&](const std::string& n, ULongLong& i)
622 { return this->tuple()->addItem(n,i); });
623 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
Tuples::TupleObj::ULongLong
NTuple::Item< unsigned long long > ULongLong
basic type for unsigned long long items
Definition: TupleObj.h:225
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
Tuples::TupleObj::m_ulonglongs
ULongLongs m_ulonglongs
the actual storage of all 'ulonglong' columns
Definition: TupleObj.h:2269
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128

Tuples::TupleObj::ULongLong * Tuples::TupleObj::ulonglongs | ( | const std::string & | name,
|  | unsigned long long | minv,
|  | unsigned long long | maxv
| ) |  |
| private

get the column

Definition at line 626 of file TupleObj.cpp.

629 {
630 auto found = m_ulonglongs.find( name ) ;
631 if( m_ulonglongs.end() != found ) { return found->second.get() ; }
632 return create_(this, m_ulonglongs, name,
633 [&](const std::string& n, ULongLong& i)
634 { return this->tuple()->addItem(n,i,minv,maxv); });
635 }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
Tuples::TupleObj::ULongLong
NTuple::Item< unsigned long long > ULongLong
basic type for unsigned long long items
Definition: TupleObj.h:225
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
Tuples::TupleObj::m_ulonglongs
ULongLongs m_ulonglongs
the actual storage of all 'ulonglong' columns
Definition: TupleObj.h:2269
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128

Tuples::TupleObj::UShort * Tuples::TupleObj::ushorts | ( | const std::string & | name | ) |
| private

get the column

Definition at line 528 of file TupleObj.cpp.

529 {
530 auto found = m_ushorts.find( name ) ;
531 if( m_ushorts.end() != found ) { return found->second.get() ; }
532 return create_(this, m_ushorts, name,
533 [&](const std::string& n, UShort& i)
534 { return this->tuple()->addItem(n,i); });
535 }
Tuples::TupleObj::m_ushorts
UShorts m_ushorts
the actual storage of all 'unsigned int' columns
Definition: TupleObj.h:2257
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
Tuples::TupleObj::UShort
NTuple::Item< unsigned short > UShort
basic type for unsigned int items
Definition: TupleObj.h:213
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128

Tuples::TupleObj::UShort * Tuples::TupleObj::ushorts | ( | const std::string & | name,
|  | unsigned short | minv,
|  | unsigned short | maxv
| ) |  |
| private

get the column

Definition at line 538 of file TupleObj.cpp.

541 {
542 auto found = m_ushorts.find( name ) ;
543 if( m_ushorts.end() != found ) { return found->second.get() ; }
544 return create_(this, m_ushorts, name,
545 [&](const std::string& n, UShort& i)
546 { return this->tuple()->addItem(n,i,minv,maxv); });
547 }
Tuples::TupleObj::m_ushorts
UShorts m_ushorts
the actual storage of all 'unsigned int' columns
Definition: TupleObj.h:2257
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
Tuples::TupleObj::UShort
NTuple::Item< unsigned short > UShort
basic type for unsigned int items
Definition: TupleObj.h:213
GaudiPluginService.cpluginsvc.n
list n
Definition: cpluginsvc.py:217
std::string
STL class.
GaudiUtils::Map::end
iterator end()
Definition: Map.h:132
GaudiUtils::Map::find
iterator find(const key_type &key)
Definition: Map.h:149
NTuple::Tuple::addItem
StatusCode addItem(const std::string &name, Item< TYPE > &itm)
Add a scalar data item a N tuple.
Definition: NTuple.h:554
ana.i
list i
Definition: ana.py:128

bool Tuples::TupleObj::valid | ( |  | ) | const
| inline

valid pointer to tuple ?

Definition at line 2027 of file TupleObj.h.

2027 { return 0 != tuple() ; }
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988

virtual StatusCode Tuples::TupleObj::Warning | ( | const std::string & | msg,
|  | const StatusCode | sc = `StatusCode::FAILURE`
| ) |  | const
| pure virtual

Implemented in Tuples::detail::TupleObjImp< HANDLER1, HANDLER2 >.

StatusCode Tuples::TupleObj::write | ( |  | ) |

write a record to NTuple

Returns
  status code

Definition at line 180 of file TupleObj.cpp.

181 {
182 if ( invalid() ) { return InvalidTuple ; }
183 return tuple()->write() ;
184 }
INTuple::write
virtual StatusCode write()=0
Write record of the NTuple (Shortcut of writeRecord)
Tuples::TupleObj::tuple
const NTuple::Tuple * tuple() const
provide the access to underlying Gaudi N-tuple
Definition: TupleObj.h:1988
Tuples::InvalidTuple
Definition: TupleObj.h:94
Tuples::TupleObj::invalid
bool invalid() const
invalid pointer to tuple ?
Definition: TupleObj.h:2030

## Member Data Documentation

Addresses Tuples::TupleObj::m_addresses
| mutable private

the actual storage of all 'Address' columns

Definition at line 2278 of file TupleObj.h.

FArrays Tuples::TupleObj::m_arraysf
| mutable private

the actual storage of all 'FArray' columns (fixed)

Definition at line 2284 of file TupleObj.h.

Bools Tuples::TupleObj::m_bools
| mutable private

the actual storage of all 'bool' columns

Definition at line 2245 of file TupleObj.h.

Chars Tuples::TupleObj::m_chars
| mutable private

the actual storage of all 'Int' columns

Definition at line 2248 of file TupleObj.h.

CLID Tuples::TupleObj::m_clid
| private

tuple CLID

Definition at line 2236 of file TupleObj.h.

Doubles Tuples::TupleObj::m_doubles
| mutable private

the actual storage of all 'Double' columns

Definition at line 2275 of file TupleObj.h.

FArrays Tuples::TupleObj::m_farrays
| mutable private

the actual storage of all 'FArray' columns

Definition at line 2281 of file TupleObj.h.

Floats Tuples::TupleObj::m_floats
| mutable private

the actual storage of all 'Float' columns

Definition at line 2272 of file TupleObj.h.

FMatrices Tuples::TupleObj::m_fmatrices
| mutable private

the actual storage of all 'FArray' columns

Definition at line 2287 of file TupleObj.h.

Ints Tuples::TupleObj::m_ints
| mutable private

the actual storage of all 'Int' columns

Definition at line 2260 of file TupleObj.h.

ItemMap Tuples::TupleObj::m_items
| private

all booked types:

Definition at line 2293 of file TupleObj.h.

LongLongs Tuples::TupleObj::m_longlongs
| mutable private

the actual storage of all 'longlong' columns

Definition at line 2266 of file TupleObj.h.

FMatrices Tuples::TupleObj::m_matricesf
| mutable private

the actual storage of all 'FMatrix' columns (fixed)

Definition at line 2290 of file TupleObj.h.

std::string Tuples::TupleObj::m_name
| private

name

Definition at line 2230 of file TupleObj.h.

size_t Tuples::TupleObj::m_refCount = 0
| private

reference counter

Definition at line 2242 of file TupleObj.h.

Shorts Tuples::TupleObj::m_shorts
| mutable private

the actual storage of all 'Int' columns

Definition at line 2254 of file TupleObj.h.

NTuple::Tuple* Tuples::TupleObj::m_tuple
| private

tuple itself

Definition at line 2233 of file TupleObj.h.

Tuples::Type Tuples::TupleObj::m_type
| private

tuple 'type'

Definition at line 2239 of file TupleObj.h.

UChars Tuples::TupleObj::m_uchars
| mutable private

the actual storage of all 'unsigned int' columns

Definition at line 2251 of file TupleObj.h.

UInts Tuples::TupleObj::m_uints
| mutable private

the actual storage of all 'unsigned int' columns

Definition at line 2263 of file TupleObj.h.

ULongLongs Tuples::TupleObj::m_ulonglongs
| mutable private

the actual storage of all 'ulonglong' columns

Definition at line 2269 of file TupleObj.h.

UShorts Tuples::TupleObj::m_ushorts
| mutable private

the actual storage of all 'unsigned int' columns

Definition at line 2257 of file TupleObj.h.

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

- GaudiAlg/GaudiAlg/TupleObj.h
- GaudiAlg/GaudiAlg/TuplePut.h
- GaudiAlg/src/lib/TupleObj.cpp