Belle II Software  release-05-02-19
BaseSegmentRelationFilter.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2014 - 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/RelationFilter.dcl.h>
13 
14 #include <tracking/trackFindingCDC/numerics/Weight.h>
15 
16 #include <tracking/trackFindingCDC/utilities/Relation.h>
17 
18 #include <vector>
19 
20 namespace Belle2 {
25  namespace TrackFindingCDC {
26  class CDCSegment2D;
27 
28  // Guard to prevent repeated instantiations
29  extern template class RelationFilter<const CDCSegment2D>;
30 
32  class BaseSegmentRelationFilter : public RelationFilter<const CDCSegment2D> {
33 
34  private:
36  using Super = RelationFilter<const CDCSegment2D>;
37 
38  public:
41 
43  virtual ~BaseSegmentRelationFilter();
44 
46  std::vector<const CDCSegment2D*> getPossibleTos(
47  const CDCSegment2D* from,
48  const std::vector<const CDCSegment2D*>& segments) const final;
49 
50  using Super::operator();
51 
57  Weight operator()(const Relation<const CDCSegment2D>& relation) override;
58  };
59  }
61 }
Belle2::TrackFindingCDC::Relation
Type for two related objects.
Definition: CDCSegment2D.h:37
Belle2::TrackFindingCDC::BaseSegmentRelationFilter
Base class for filtering the neighborhood of segments.
Definition: BaseSegmentRelationFilter.h:40
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::CDCSegment2D
A reconstructed sequence of two dimensional hits in one super layer.
Definition: CDCSegment2D.h:40