5#ifndef ASSOCIATIONUTILS_BASEOVERLAPTOOL_H
6#define ASSOCIATIONUTILS_BASEOVERLAPTOOL_H
67 {
return StatusCode::SUCCESS; }
76 template<columnar::RegularContainerIdConcept CI1,columnar::RegularContainerIdConcept CI2,
typename CM>
82 template<
typename XAODContainer,columnar::RegularContainerIdConcept CI,
typename CM>
85 if constexpr (CM::isXAOD) {
86 if(
typeid(cont.getXAODObjectNoexcept()) !=
typeid(XAODContainer) &&
89 return StatusCode::FAILURE;
92 return StatusCode::SUCCESS;
123 using ColumnarTool::ColumnarTool;
125 std::unique_ptr<BaseAccessors>
m_baseAccessors {std::make_unique<BaseAccessors> (
this)};
128 std::unique_ptr<OverlapDecorationHelper<columnar::ContainerId::particle1>>
m_decHelper1;
129 std::unique_ptr<OverlapDecorationHelper<columnar::ContainerId::particle2>>
m_decHelper2;
162 template<columnar::ContainerIdConcept CI>
165 template<columnar::ContainerIdConcept CI>
176 template<columnar::RegularContainerIdConcept CI1,columnar::RegularContainerIdConcept CI2,
typename CM>
177 StatusCode BaseOverlapTool ::
186 if constexpr (CM::isXAOD)
189 const float invGeV = 1e-3;
190 ATH_MSG_DEBUG(
" Found overlap " << testParticle.getXAODObject().type() <<
191 " pt " << testParticle.getXAODObject().pt()*
invGeV);
201 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
DataVector adapter that acts like it holds const pointers.
a class representing a single object (electron, muons, etc.)
a class representing a continuous sequence of objects (a.k.a. a container)
ObjectId< ContainerId::particle1 > Particle1Id
ObjectId< ContainerId::particle2 > Particle2Id
ObjectRange< ContainerId::eventContext > EventContextRange
AccessorTemplate< ContainerId::particle2, CT, ColumnAccessMode::input, CM > Particle2Accessor
ObjectRange< ContainerId::particle2 > Particle2Range
ObjectRange< ContainerId::particle1 > Particle1Range
AccessorTemplate< ContainerId::particle1, CT, ColumnAccessMode::input, CM > Particle1Accessor