Belle II Software development
Filter.icc.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/filters/base/Filter.dcl.h>
11
12#include <tracking/trackFindingCDC/numerics/Weight.h>
13
14#include <string>
15#include <cmath>
16
17namespace Belle2 {
22 class ModuleParamList;
24}
25
26namespace Belle2 {
31 namespace TrackFindingCDC {
32
33 template<class AObject>
34 Filter<AObject>::Filter() = default;
35
36 template<class AObject>
37 Filter<AObject>::~Filter() = default;
38
39 template <class AObject>
40 void Filter<AObject>::exposeParameters(ModuleParamList* moduleParamListw __attribute__((unused)),
41 const std::string& prefix __attribute__((unused)))
42 {
43 }
44
45 template <class AObject>
47 {
48 return false;
49 }
50
51 template <class AObject>
52 Weight Filter<AObject>::operator()(const Object& obj __attribute__((unused)))
53 {
54 return 1;
55 }
56
57 template <class AObject>
59 {
60 return obj ? operator()(*obj) : NAN;
61 }
62
63 template <class AObject>
64 std::vector<float> Filter<AObject>::operator()(const std::vector <Object*>& objs)
65 {
66 std::vector<float> out;
67 for (const auto& obj : objs) {
68 out.push_back(operator()(obj));
69 }
70 return out;
71 }
72 }
74}
The Module parameter list class.
virtual void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix)
Expose the set of parameters of the filter to the module parameter list.
Definition: Filter.icc.h:40
AObject Object
Type of the object to be analysed.
Definition: Filter.dcl.h:35
virtual Weight operator()(const Object &obj)
Function to evaluate the object.
Definition: Filter.icc.h:52
Filter()
Default constructor.
virtual bool needsTruthInformation()
Indicates if the filter requires Monte Carlo information.
Definition: Filter.icc.h:46
virtual ~Filter()
Make destructor of interface class virtual.
Abstract base class for different kinds of events.