5#ifndef ASSOCIATIONUTILS_OVERLAPLINKHELPER_H
6#define ASSOCIATIONUTILS_OVERLAPLINKHELPER_H
40 template<columnar::ContainerIdConcept CI>
50 template<columnar::ContainerIdConcept LT>
56 template<columnar::ContainerIdConcept LT>
78 template<columnar::ContainerIdConcept CI>
87 template<columnar::ContainerIdConcept CI>
template<columnar::ContainerIdConcept LT>
92 return StatusCode::SUCCESS;
98 template<columnar::ContainerIdConcept CI>
template<columnar::ContainerIdConcept LT>
110 if (link.getXAODObject()->container() != &
container.getXAODObject())
113 return link.template tryGetVariant<LT>();
columnar::ColumnAccessor< CI, columnar::ObjectLink< LTDef > > m_linkAccessor
Corresponding object link accessor (for reading only)
OverlapLinkHelper(const std::string &linkLabel)
Constructor.
columnar::ColumnDecorator< CI, columnar::ObjectLink< LTDef > > m_linkDecorator
Object link decorator.
columnar::OptObjectId< LT > getObjectLink(columnar::ObjectId< CI > p, columnar::ObjectRange< LT > container) const
Retrieve an overlap-linked particle.
StatusCode addObjectLink(columnar::ObjectId< CI > p1, columnar::ObjectId< LT > p2) const
Decorate p1 with an overlap object link to p2.
columnar::VariantContainerId< columnar::ContainerId::particle1, columnar::ContainerId::particle1, columnar::ContainerId::particle2 > LTDef
a class representing a single object (electron, muons, etc.)
a class representing a continuous sequence of objects (a.k.a. a container)
a class representing a single optional object (electron, muons, etc.)
AccessorTemplate< CI, CT, ColumnAccessMode::input, CM > ColumnAccessor
AccessorTemplate< CI, CT, ColumnAccessMode::output, CM > ColumnDecorator
static constexpr bool isXAOD
Whether this is the xAOD mode.