Belle II Software development
OnVarSet< AFilter > Class Template Reference

Filter adapter to make a filter work on a set of variables. More...

#include <FilterOnVarSet.dcl.h>

Inheritance diagram for OnVarSet< AFilter >:
ChoosableFromVarSet< Filter< typename ATruthVarSet::Object > > FilterOnVarSet< SkimmedHitGapSegmentPairVarSet > MVA< BaseAxialSegmentPairFilter > MVA< BaseFacetFilter > MVA< BaseFacetRelationFilter > MVA< BaseSegmentPairRelationFilter > MVA< BaseSegmentRelationFilter > MVA< BaseTrackRelationFilter > ChoosableFromVarSet< AFilter > MVA< AFilter > Recording< AFilter >

Public Types

using Object = typename AFilter::Object
 Type of pbject to be filtered.
 

Public Member Functions

 OnVarSet (std::unique_ptr< AVarSet > varSet)
 Constructor from the variable set the filter should use.
 
 ~OnVarSet ()
 Default destructor.
 
void initialize () override
 No reassignment of variable set possible for now.
 
bool needsTruthInformation () override
 Checks if any variables need Monte Carlo information.
 
Weight operator() (const Object &obj) override
 Function extracting the variables of the object into the variable set.
 
std::unique_ptr< AVarSetreleaseVarSet () &&
 Steal the set of variables form this filter - filter becomes dysfunctional afterwards.
 

Protected Member Functions

AVarSetgetVarSet () const
 Getter for the set of variables.
 
void setVarSet (std::unique_ptr< AVarSet > varSet)
 Setter for the set of variables.
 
virtual void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override
 Forward prefixed parameters of this findlet to the module parameter list.
 

Private Types

using Super = AFilter
 Type of the base class.
 
using AVarSet = BaseVarSet<Object>
 Type of the variable set usedi in this filter.
 

Private Attributes

std::unique_ptr< AVarSetm_varSet
 Instance of the variable set to be used in the filter.
 

Detailed Description

template<class AFilter>
class Belle2::TrackFindingCDC::OnVarSet< AFilter >

Filter adapter to make a filter work on a set of variables.

Definition at line 27 of file FilterOnVarSet.dcl.h.

Member Typedef Documentation

◆ AVarSet

template<class AFilter>
using AVarSet = BaseVarSet<Object>
private

Type of the variable set usedi in this filter.

Definition at line 39 of file FilterOnVarSet.dcl.h.

◆ Object

template<class AFilter>
using Object = typename AFilter::Object

Type of pbject to be filtered.

Definition at line 35 of file FilterOnVarSet.dcl.h.

◆ Super

template<class AFilter>
using Super = AFilter
private

Type of the base class.

Definition at line 31 of file FilterOnVarSet.dcl.h.

Constructor & Destructor Documentation

◆ OnVarSet()

template<class AFilter>
OnVarSet ( std::unique_ptr< AVarSet > varSet)
explicit

Constructor from the variable set the filter should use.

Definition at line 32 of file FilterOnVarSet.icc.h.

33 : m_varSet(std::move(varSet))
34 {
35 B2ASSERT("Varset initialised as nullptr", m_varSet);
36 }

Member Function Documentation

◆ exposeParameters()

template<class AFilter>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
overrideprotectedvirtual

Forward prefixed parameters of this findlet to the module parameter list.

Reimplemented in ChoosableFromVarSet< AFilter >, ChoosableFromVarSet< Filter< ATruthVarSet::Object > >, ChoosableFromVarSet< Filter< PXDResultVarSet::Object > >, ChoosableFromVarSet< Filter< SVDResultVarSet::Object > >, ChoosableFromVarSet< Filter< typename ATruthVarSet::Object > >, ChoosableFromVarSet< Filter< typename ATruthVarSet::Object > >, MVA< AFilter >, MVA< BaseAxialSegmentPairFilter >, MVA< BaseAxialSegmentPairFilter >, MVA< BaseFacetFilter >, MVA< BaseFacetFilter >, MVA< BaseFacetRelationFilter >, MVA< BaseFacetRelationFilter >, MVA< BaseSegmentPairRelationFilter >, MVA< BaseSegmentPairRelationFilter >, MVA< BaseSegmentRelationFilter >, MVA< BaseSegmentRelationFilter >, MVA< BaseTrackRelationFilter >, MVA< BaseTrackRelationFilter >, MVA< Filter< AVarSet::Object > >, MVA< Filter< typename AVarSet::Object > >, MVA< Filter< typename AVarSet::Object > >, Recording< AFilter >, Recording< AFilterFactory::CreatedFilter >, Recording< Filter< AVarSet::Object > >, Recording< Filter< typename AVarSet::Object > >, Recording< Filter< typename AVarSet::Object > >, Sloppy< TruthVarFilter< ATruthVarSet > >, Sloppy< TruthVarFilter< ATruthVarSet > >, UnionRecording< AFilter >, UnionRecording< AFilterFactory::CreatedFilter >, UnionRecording< typename AFilterFactory::CreatedFilter >, and UnionRecording< typename AFilterFactory::CreatedFilter >.

Definition at line 93 of file FilterOnVarSet.icc.h.

94 {
95 Super::exposeParameters(moduleParamList, prefix);
96 m_varSet->exposeParameters(moduleParamList, prefix);
97 }

◆ getVarSet()

template<class AFilter>
auto getVarSet ( ) const
protected

Getter for the set of variables.

Definition at line 81 of file FilterOnVarSet.icc.h.

82 {
83 return *m_varSet;
84 }

◆ initialize()

template<class AFilter>
void initialize ( )
override

No reassignment of variable set possible for now.

Reimplemented in Recording< Filter< AVarSet::Object > >, Recording< Filter< typename AVarSet::Object > >, and Recording< Filter< typename AVarSet::Object > >.

Definition at line 42 of file FilterOnVarSet.icc.h.

43 {
44 this->addProcessingSignalListener(m_varSet.get());
45 Super::initialize();
46 }

◆ needsTruthInformation()

template<class AFilter>
bool needsTruthInformation ( )
override

Checks if any variables need Monte Carlo information.

Definition at line 49 of file FilterOnVarSet.icc.h.

50 {
51 bool result = Super::needsTruthInformation();
52 if (result) return true;
53
54 const std::vector<Named<Float_t*>>& namedVariables = m_varSet->getNamedVariables();
55 for (const Named<Float_t*>& namedVariable : namedVariables) {
56 std::string name = namedVariable.getName();
57 // If the name contains the word truth it is considered to have Monte carlo information.
58 if (name.find("truth") != std::string::npos) {
59 return true;
60 }
61 }
62 return false;
63 }

◆ operator()()

template<class AFilter>
Weight operator() ( const Object & obj)
override

Function extracting the variables of the object into the variable set.

Reimplemented in Recording< Filter< typename AVarSet::Object > >.

Definition at line 66 of file FilterOnVarSet.icc.h.

67 {
68 Weight weight = Super::operator()(obj);
69 if (std::isnan(weight)) return NAN;
70 bool extracted = m_varSet->extract(&obj);
71 return extracted ? weight : NAN;
72 }

◆ releaseVarSet()

template<class AFilter>
auto releaseVarSet ( ) &&

Steal the set of variables form this filter - filter becomes dysfunctional afterwards.

Definition at line 75 of file FilterOnVarSet.icc.h.

76 {
77 return std::move(m_varSet);
78 }

◆ setVarSet()

template<class AFilter>
void setVarSet ( std::unique_ptr< AVarSet > varSet)
protected

Setter for the set of variables.

Definition at line 87 of file FilterOnVarSet.icc.h.

88 {
89 m_varSet = std::move(varSet);
90 }

Member Data Documentation

◆ m_varSet

template<class AFilter>
std::unique_ptr<AVarSet> m_varSet
private

Instance of the variable set to be used in the filter.

Definition at line 74 of file FilterOnVarSet.dcl.h.


The documentation for this class was generated from the following files: