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::Particle1Def>>
m_decHelper1;
129 std::unique_ptr<OverlapDecorationHelper<columnar::Particle2Def>>
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)
AccessorTemplate< Particle1Def, CT, ColumnAccessMode::input, CM > Particle1Accessor
ObjectRange< EventContextDef > EventContextRange
ObjectId< Particle1Def > Particle1Id
AccessorTemplate< Particle2Def, CT, ColumnAccessMode::input, CM > Particle2Accessor
ObjectRange< Particle2Def > Particle2Range
ObjectRange< Particle1Def > Particle1Range
ObjectId< Particle2Def > Particle2Id