Belle II Software  release-05-02-19
FilterOnVarSet.dcl.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Oliver Frost *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <tracking/trackFindingCDC/filters/base/Filter.fwd.h>
13 
14 #include <tracking/trackFindingCDC/varsets/BaseVarSet.h>
15 
16 #include <tracking/trackFindingCDC/numerics/Weight.h>
17 
18 #include <memory>
19 
20 namespace Belle2 {
25  namespace TrackFindingCDC {
26 
28  template<class AFilter>
29  class OnVarSet : public AFilter {
30 
31  private:
33  using Super = AFilter;
34 
35  public:
37  using Object = typename AFilter::Object;
38 
39  private:
42 
43  public:
45  explicit OnVarSet(std::unique_ptr<AVarSet> varSet);
46 
48  ~OnVarSet();
49 
51  void initialize() override;
52 
54  bool needsTruthInformation() override;
55 
56  public:
58  Weight operator()(const Object& obj) override;
59 
60  public:
62  std::unique_ptr<AVarSet> releaseVarSet()&& ;
63 
64  protected:
66  AVarSet& getVarSet() const;
67 
69  void setVarSet(std::unique_ptr<AVarSet> varSet);
70 
71  private:
73  std::unique_ptr<AVarSet> m_varSet;
74  };
75  }
77 }
78 
79 #include <tracking/trackFindingCDC/filters/base/Filter.icc.h>
80 
81 namespace Belle2 {
86  namespace TrackFindingCDC {
87 
89  template<class AVarSet>
90  class FilterOnVarSet: public OnVarSet<Filter<typename AVarSet::Object> > {
91 
92  private:
95 
96  public:
98  using Object = typename AVarSet::Object;
99 
100  public:
102  FilterOnVarSet();
103 
105  ~FilterOnVarSet();
106  };
107  }
109 }
Belle2::TrackFindingCDC::FilterOnVarSet::~FilterOnVarSet
~FilterOnVarSet()
Default destructor.
Belle2::TrackFindingCDC::OnVarSet::needsTruthInformation
bool needsTruthInformation() override
Checks if any variables need Monte Carlo information.
Definition: FilterOnVarSet.icc.h:59
Belle2::TrackFindingCDC::OnVarSet::operator()
Weight operator()(const Object &obj) override
Function extracting the variables of the object into the variable set.
Definition: FilterOnVarSet.icc.h:76
Belle2::TrackFindingCDC::OnVarSet::m_varSet
std::unique_ptr< AVarSet > m_varSet
Instance of the variable set to be used in the filter.
Definition: FilterOnVarSet.dcl.h:81
Belle2::TrackFindingCDC::OnVarSet::Object
typename AFilter::Object Object
Type of pbject to be filtered.
Definition: FilterOnVarSet.dcl.h:45
Belle2::TrackFindingCDC::OnVarSet::OnVarSet
OnVarSet(std::unique_ptr< AVarSet > varSet)
Constructor from the variable set the filter should use.
Definition: FilterOnVarSet.icc.h:42
Belle2::TrackFindingCDC::FilterOnVarSet::FilterOnVarSet
FilterOnVarSet()
Constructor of the filter.
Definition: FilterOnVarSet.icc.h:102
Belle2::TrackFindingCDC::OnVarSet::getVarSet
AVarSet & getVarSet() const
Getter for the set of variables.
Definition: FilterOnVarSet.icc.h:90
Belle2::TrackFindingCDC::ProcessingSignalListener
Interface for an algorithm part that needs to receive the module processing signals.
Definition: ProcessingSignalListener.h:30
Belle2::TrackFindingCDC::OnVarSet::initialize
void initialize() override
No reassignment of variable set possible for now.
Definition: FilterOnVarSet.icc.h:52
Belle2::TrackFindingCDC::FilterOnVarSet
Convience template to create a filter operating on a specific set of variables.
Definition: FilterOnVarSet.dcl.h:90
Belle2::TrackFindingCDC::OnVarSet::~OnVarSet
~OnVarSet()
Default destructor.
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::OnVarSet::releaseVarSet
std::unique_ptr< AVarSet > releaseVarSet() &&
Steal the set of variables form this filter - filter becomes disfunctional afterwards.
Definition: FilterOnVarSet.icc.h:85
Belle2::TrackFindingCDC::OnVarSet::setVarSet
void setVarSet(std::unique_ptr< AVarSet > varSet)
Setter for the set of variables.
Definition: FilterOnVarSet.icc.h:96
Belle2::TrackFindingCDC::OnVarSet
Filter adapter to make a filter work on a set of variables.
Definition: FilterOnVarSet.dcl.h:37
Belle2::TrackFindingCDC::BaseVarSet< Object >
Belle2::TrackFindingCDC::BaseVarSet< Object >::Object
Object Object
Object type from which variables shall be extracted.
Definition: BaseVarSet.h:47
Belle2::TrackFindingCDC::OnVarSet::Super
AFilter Super
Type of the base class.
Definition: FilterOnVarSet.dcl.h:41
Belle2::TrackFindingCDC::Filter< AVarSet::Object >::Object
AVarSet::Object Object
Type of the object to be analysed.
Definition: Filter.dcl.h:43