Belle II Software  release-05-02-19
AdderInterface.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2016 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Nils Braun *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <tracking/trackFindingCDC/findlets/base/Findlet.h>
13 #include <tracking/trackFindingCDC/utilities/WeightedRelation.h>
14 
15 namespace Belle2 {
20  namespace TrackFindingCDC {
39  template <class ACollectorItem, class ACollectionItem>
40  class AdderInterface :
41  public Findlet<WeightedRelation<ACollectorItem, const ACollectionItem>&> {
42  public:
44  using WeightedRelationItem = WeightedRelation<ACollectorItem, const ACollectionItem>;
45 
47  void apply(std::vector<WeightedRelationItem>& weightedRelations) override
48  {
49  for (const WeightedRelationItem& relationItem : weightedRelations) {
50  ACollectorItem& collectorItem = *relationItem.getFrom();
51  const ACollectionItem& collectionItem = *relationItem.getTo();
52  Weight weight = relationItem.getWeight();
53  add(collectorItem, collectionItem, weight);
54  }
55  }
56 
57  protected:
59  virtual void add(ACollectorItem& collectorItem __attribute__((unused)),
60  const ACollectionItem& collectionItem __attribute__((unused)),
61  Weight weight __attribute__((unused)))
62  {
63  }
64  };
65  }
67 }
Belle2::TrackFindingCDC::AdderInterface::apply
void apply(std::vector< WeightedRelationItem > &weightedRelations) override
Main function to do the adding. Override the add function below in your derived class.
Definition: AdderInterface.h:55
Belle2::TrackFindingCDC::AdderInterface::add
virtual void add(ACollectorItem &collectorItem __attribute__((unused)), const ACollectionItem &collectionItem __attribute__((unused)), Weight weight __attribute__((unused)))
Override this function to implement how a collection item should be matched to a collector item.
Definition: AdderInterface.h:67
Belle2::TrackFindingCDC::AdderInterface::WeightedRelationItem
WeightedRelation< ACollectorItem, const ACollectionItem > WeightedRelationItem
Shortcut class name for a weighted relation between a collector item and a collection item.
Definition: AdderInterface.h:52
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::WeightedRelation
Type for two related objects with a weight.
Definition: CDCSegment2D.h:36