Belle II Software development
AndFilter.dcl.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8#pragma once
9
10#include <tracking/trackFindingCDC/numerics/Weight.h>
11
12#include <memory>
13
14namespace Belle2 {
19 class ModuleParamList;
20
21 namespace TrackFindingCDC {
23 template<class AFilter>
24 class AndFilter : public AFilter {
25
26 private:
28 using Super = AFilter;
29
30 public:
32 AndFilter(std::unique_ptr<AFilter> lhsFilter, std::unique_ptr<AFilter> rhsFilter);
33
36
38 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
39
41 Weight operator()(const typename AFilter::Object& obj) final;
42
43 private:
45 std::unique_ptr<AFilter> m_lhsFilter;
46
48 std::unique_ptr<AFilter> m_rhsFilter;
49 };
50 }
52}
The Module parameter list class.
Filter adapter type that joins two filter results in an and like fashion.
Definition: AndFilter.dcl.h:24
std::unique_ptr< AFilter > m_rhsFilter
Right hand side filter.
Definition: AndFilter.dcl.h:48
AFilter Super
Type of the base class.
Definition: AndFilter.dcl.h:28
Weight operator()(const typename AFilter::Object &obj) final
Return result of right hand side filter if left hand side filter acknowledges.
Definition: AndFilter.icc.h:45
~AndFilter()
Default destructor.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: AndFilter.icc.h:37
std::unique_ptr< AFilter > m_lhsFilter
Left hand side filter.
Definition: AndFilter.dcl.h:45
Abstract base class for different kinds of events.