5#ifndef ASSOCIATIONUTILS_OVERLAPDECORATIONHELPER_H
6#define ASSOCIATIONUTILS_OVERLAPDECORATIONHELPER_H
19namespace ADD_CMODE(ORUtils)
31 template<columnar::ContainerIdConcept CI>
92 bool m_outputPassValue;
99 template<columnar::ContainerIdConcept CI>
109 resetAccessor (m_inputAccessor, *
this,
inputLabel);
115 template<columnar::ContainerIdConcept CI>
120 if(!m_useInputLabel)
return true;
121 return m_inputAccessor(obj);
127 template<columnar::ContainerIdConcept CI>
132 return isInputObject(obj) && ( m_outputDecorator(obj) != m_outputPassValue );
137 template<columnar::ContainerIdConcept CI>
142 return isInputObject(obj) && ( m_outputDecorator(obj) == m_outputPassValue );
147 template<columnar::ContainerIdConcept CI>
152 return m_inputAccessor(obj);
158 template<columnar::ContainerIdConcept CI>
162 m_outputDecorator(obj) =
result;
165 template<columnar::ContainerIdConcept CI>
168 setOverlapDecoration(obj, m_outputPassValue);
171 template<columnar::ContainerIdConcept CI>
174 setOverlapDecoration(obj, !m_outputPassValue);
180 template<columnar::ContainerIdConcept CI>
191 template<columnar::ContainerIdConcept CI>
195 if(!isDecorated(container))
196 resetDecorations(container);
202 template<columnar::ContainerIdConcept CI>
206 for(
auto obj : container){
211 bool result = ( isInputObject(obj) && m_outputPassValue );
212 setOverlapDecoration(obj, result);
const std::string outputLabel
const bool outputPassValue
const std::string inputLabel
static const Attributes_t empty
bool isAvailable(auxid_t id) const
Test to see if a variable exists in the store.
a class representing a single object (electron, muons, etc.)
a class representing a continuous sequence of objects (a.k.a. a container)
const SG::AuxVectorData * container() const
Return the container holding this element.
AccessorTemplate< CI, CT, ColumnAccessMode::input, CM > ColumnAccessor
AccessorTemplate< CI, CT, ColumnAccessMode::output, CM > ColumnDecorator