Belle II Software  release-08-01-10
RelationFilter.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/filters/base/Filter.dcl.h>
11 
12 #include <tracking/trackFindingCDC/numerics/Weight.h>
13 
14 #include <tracking/trackFindingCDC/utilities/Relation.h>
15 
16 #include <vector>
17 
18 namespace Belle2 {
23  namespace TrackFindingCDC {
24 
26  template <class AObject>
27  class RelationFilter : public Filter<Relation<AObject> > {
28 
29  public:
32 
34  virtual ~RelationFilter();
35 
37  virtual std::vector<AObject*> getPossibleTos(AObject* from,
38  const std::vector<AObject*>& objects) const;
39 
44  virtual Weight operator()(const AObject& from, const AObject& to);
45 
51  Weight operator()(const Relation<AObject>& relation) override;
52  };
53  }
55 }
Base class for filters on a generic object type.
Definition: Filter.dcl.h:29
Base class for filtering the neighborhood of objects.
virtual Weight operator()(const AObject &from, const AObject &to)
Main filter method returning the weight of the neighborhood relation.
virtual ~RelationFilter()
Default destructor.
virtual std::vector< AObject * > getPossibleTos(AObject *from, const std::vector< AObject * > &objects) const
Selects the objects possibly related to the given one from the given pool of objects.
Type for two related objects.
Definition: Relation.h:21
Abstract base class for different kinds of events.