Belle II Software development
TrackLinker.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/trackingUtilities/findlets/base/Findlet.h>
11#include <tracking/trackingUtilities/findlets/minimal/WeightedRelationCreator.h>
12
13#include <tracking/trackFindingCDC/filters/trackRelation/ChooseableTrackRelationFilter.h>
14
15#include <tracking/trackingUtilities/ca/MultipassCellularPathFinder.h>
16
17#include <vector>
18#include <string>
19
20namespace Belle2 {
25
26
27 namespace TrackingUtilities {
28 class CDCTrack;
29 }
30
31 namespace TrackFindingCDC {
32
34 class TrackLinker : public TrackingUtilities::Findlet<const TrackingUtilities::CDCTrack, TrackingUtilities::CDCTrack> {
35
36 private:
39
40 public:
43
45 std::string getDescription() final;
46
48 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
49
50 public:
52 void apply(const std::vector<TrackingUtilities::CDCTrack>& inputTracks,
53 std::vector<TrackingUtilities::CDCTrack>& outputTracks) final;
54
55 private:
57 TrackingUtilities::WeightedRelationCreator<const TrackingUtilities::CDCTrack, TrackFindingCDC::ChooseableTrackRelationFilter>
59
61 TrackingUtilities::MultipassCellularPathFinder<const TrackingUtilities::CDCTrack> m_cellularPathFinder;
62
64 std::vector<TrackingUtilities::WeightedRelation<const TrackingUtilities::CDCTrack> > m_trackRelations;
65
67 std::vector<TrackingUtilities::Path<const TrackingUtilities::CDCTrack>> m_trackPaths;
68 };
69 }
71}
The Module parameter list class.
Implements a path consisting of Module and/or Path objects.
Definition Path.h:38
TrackingUtilities::Findlet< const TrackingUtilities::CDCTrack, TrackingUtilities::CDCTrack > Super
Type of the base class.
Definition TrackLinker.h:38
std::string getDescription() final
Short description of the findlet.
std::vector< TrackingUtilities::Path< const TrackingUtilities::CDCTrack > > m_trackPaths
Memory for the track paths generated from the graph.
Definition TrackLinker.h:67
void apply(const std::vector< TrackingUtilities::CDCTrack > &inputTracks, std::vector< TrackingUtilities::CDCTrack > &outputTracks) final
Main algorithm.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
TrackingUtilities::MultipassCellularPathFinder< const TrackingUtilities::CDCTrack > m_cellularPathFinder
Instance of the cellular automaton path finder.
Definition TrackLinker.h:61
TrackLinker()
Constructor adding the filter as a subordinary processing signal listener.
std::vector< TrackingUtilities::WeightedRelation< const TrackingUtilities::CDCTrack > > m_trackRelations
Memory for the relations between tracks to be followed on linking.
Definition TrackLinker.h:64
TrackingUtilities::WeightedRelationCreator< const TrackingUtilities::CDCTrack, TrackFindingCDC::ChooseableTrackRelationFilter > m_trackRelationCreator
Creator of the track relations for linking.
Definition TrackLinker.h:58
Class representing a sequence of three dimensional reconstructed hits.
Definition CDCTrack.h:39
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Definition Findlet.h:26
STL class.
Abstract base class for different kinds of events.
STL namespace.