LCIO  02.17
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | List of all members
EVENT::LCRelation Class Referenceabstract

A single weighted relationship between two LCObjects. More...

#include <LCRelation.h>

+ Inheritance diagram for EVENT::LCRelation:

Public Types

typedef LCRelation lcobject_type
 Useful typedef for template programming with LCIO. More...
 
- Public Types inherited from lcrtrel::LCRTRelations
typedef std::type_index ext_index
 
typedef std::shared_ptr< void > ext_type
 
typedef std::map< ext_index,
ext_type
ext_map
 

Public Member Functions

virtual ~LCRelation ()
 Destructor. More...
 
virtual LCObjectgetFrom () const =0
 The 'from' object of the given relation. More...
 
virtual LCObjectgetTo () const =0
 The 'to' object of the given relation. More...
 
virtual float getWeight () const =0
 The weight of the given relation - only if collection flag bit LCIO::LCREL_WEIGHTED is set. More...
 
- Public Member Functions inherited from EVENT::LCObject
virtual ~LCObject ()
 Destructor. More...
 
virtual int id () const =0
 Returns an object id for internal (debugging) use in LCIO. More...
 
virtual LCObjectclone () const
 Returns an object id for internal (debugging) use in LCIO. More...
 
- Public Member Functions inherited from lcrtrel::LCRTRelations
template<class V >
V::ext_type ext ()
 Provides access to an extension object - the type and ownership is defined by the class V which should be a subtype of LCExtension, LCOwnedExtension, LCExtensionVector, LCExtensionList,... More...
 
template<class V >
const V::ext_type ext () const
 Provides access to an extension object - the type and ownership is defined by the class V which should be a subtype of LCExtension, LCOwnedExtension, LCExtensionVector, LCExtensionList,... More...
 
template<class V >
V::rel_type rel ()
 Provides read access to relations - the object types and their connectivity are defined by the class V which has to be a subtype of either LC1To1Relation, LC1ToNRelation or LCNToNRelation. More...
 

Detailed Description

A single weighted relationship between two LCObjects.

Stored in an LCCollection like any other LCObject. Use inplementations of LCRelationNavigator to navigate the relation efficiently. the types of the objects is decoded in the collection paramters 'RelationFromType' and 'RelationToType'. In order to store weights != 1. with the relation set the collection flag bit LCIO::LCREL_WEIGHTED, this is done automatically in UTIL::LCRelationNavigator if a weight != 1. exists.

Author
gaede
Version
Id:
LCRelation.aid,v 1.7 2006-09-14 10:16:11 gaede Exp
See Also
LCRelationNavigator

Definition at line 29 of file LCRelation.h.

Member Typedef Documentation

Useful typedef for template programming with LCIO.

Definition at line 37 of file LCRelation.h.

Constructor & Destructor Documentation

virtual EVENT::LCRelation::~LCRelation ( )
inlinevirtual

Destructor.

Definition at line 33 of file LCRelation.h.

Member Function Documentation

virtual LCObject* EVENT::LCRelation::getFrom ( ) const
pure virtual

The 'from' object of the given relation.

Implemented in IMPL::LCRelationImpl.

Referenced by UTIL::LCRelationNavigator::initialize(), UTIL::operator<<(), and SIO::SIOLCRelationHandler::write().

virtual LCObject* EVENT::LCRelation::getTo ( ) const
pure virtual

The 'to' object of the given relation.

Implemented in IMPL::LCRelationImpl.

Referenced by UTIL::LCRelationNavigator::initialize(), and UTIL::operator<<().

virtual float EVENT::LCRelation::getWeight ( ) const
pure virtual

The weight of the given relation - only if collection flag bit LCIO::LCREL_WEIGHTED is set.

Implemented in IMPL::LCRelationImpl.

Referenced by UTIL::LCRelationNavigator::initialize(), and UTIL::operator<<().


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