Belle II Software development
SegmentLinker.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/findlets/base/Findlet.h>
11#include <tracking/trackFindingCDC/findlets/minimal/WeightedRelationCreator.h>
12
13#include <tracking/trackFindingCDC/filters/segmentRelation/ChooseableSegmentRelationFilter.h>
14
15#include <tracking/trackFindingCDC/ca/MultipassCellularPathFinder.h>
16#include <tracking/trackFindingCDC/utilities/WeightedRelation.h>
17
18#include <vector>
19#include <string>
20
21namespace Belle2 {
26
27 namespace TrackFindingCDC {
28 class CDCSegment2D;
29
31 class SegmentLinker : public Findlet<const CDCSegment2D, CDCSegment2D> {
32
33 private:
36
37 public:
40
42 std::string getDescription() final;
43
45 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
46
47 public:
49 void apply(const std::vector<CDCSegment2D>& inputSegment2Ds,
50 std::vector<CDCSegment2D>& outputSegment2Ds) final;
51
52 private: // Parameters
55
58
60 bool m_param_onlyLinked = false;
61
62 private:
64 WeightedRelationCreator<const CDCSegment2D, ChooseableSegmentRelationFilter> m_segment2DRelationCreator;
65
68
71
74 };
75 }
77}
The Module parameter list class.
A reconstructed sequence of two dimensional hits in one super layer.
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Definition Findlet.h:26
Class to combine the run of the cellular automaton and the repeated path extraction.
std::vector< WeightedRelation< const CDCSegment2D > > m_segment2DRelations
Memory for the relations between segments to be followed on linking.
WeightedRelationCreator< const CDCSegment2D, ChooseableSegmentRelationFilter > m_segment2DRelationCreator
Creator of the segment relations for linking.
Findlet< const CDCSegment2D, CDCSegment2D > Super
Type of the base class.
MultipassCellularPathFinder< const CDCSegment2D > m_cellularPathFinder
Instance of the cellular automaton path finder.
bool m_param_wholeSuperLayer
Parameter : Switch to activate segment linking in the whole superlayer instead of only the super clus...
bool m_param_dealiasLinked
Parameter : Switch to block hits that appear in linked segments such that unlinked reverse and aliase...
std::string getDescription() final
Short description of the findlet.
bool m_param_onlyLinked
Parameter : Switch to construct only segments that have a linked partner.
void apply(const std::vector< CDCSegment2D > &inputSegment2Ds, std::vector< CDCSegment2D > &outputSegment2Ds) final
Main algorithm.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
SegmentLinker()
Constructor adding the filter as a subordinary processing signal listener.
std::vector< Path< const CDCSegment2D > > m_segment2DPaths
Memory for the segment paths generated from the graph.
Findlet that combines geometrical constrained pairs of objects to relations and selects them by the f...
Type for two related objects with a weight.
STL class.
Abstract base class for different kinds of events.
STL namespace.