12 #include <tracking/trackFindingCDC/filters/base/FilterOnVarSet.dcl.h>
14 #include <tracking/trackFindingCDC/utilities/Named.h>
16 #include <framework/logging/Logger.h>
18 #include <RtypesCore.h>
31 namespace TrackFindingCDC {
33 template <
class AFilter>
35 : m_varSet(std::move(varSet))
37 B2ASSERT(
"Varset initialised as nullptr", m_varSet);
40 template <
class AFilter>
41 OnVarSet<AFilter>::~OnVarSet() =
default;
43 template <
class AFilter>
46 this->addProcessingSignalListener(m_varSet.get());
50 template <
class AFilter>
53 bool result = Super::needsTruthInformation();
54 if (result)
return true;
56 const std::vector<Named<Float_t*>>& namedVariables = m_varSet->getNamedVariables();
58 std::string name = namedVariable.getName();
60 if (name.find(
"truth") != std::string::npos) {
67 template <
class AFilter>
68 Weight OnVarSet<AFilter>::operator()(
const Object& obj)
70 Weight weight = Super::operator()(obj);
71 if (std::isnan(weight))
return NAN;
72 bool extracted = m_varSet->extract(&obj);
73 return extracted ? weight : NAN;
76 template <
class AFilter>
78 return std::move(m_varSet);
81 template <
class AFilter>
87 template <
class AFilter>
90 m_varSet = std::move(varSet);
93 template <
class AVarSet>
95 : Super(std::make_unique<AVarSet>())
99 template <
class AVarSet>