Belle II Software development
SegmentTrackCombiner.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
12#include <tracking/trackFindingCDC/collectors/matchers/SharingHitsMatcher.h>
13#include <tracking/trackFindingCDC/collectors/selectors/CutSelector.h>
14#include <tracking/trackFindingCDC/collectors/selectors/FilterSelector.h>
15#include <tracking/trackFindingCDC/collectors/selectors/SingleMatchSelector.h>
16
17#include <tracking/trackFindingCDC/findlets/minimal/TrackNormalizer.h>
18#include <tracking/trackFindingCDC/findlets/minimal/SegmentTrackAdderWithNormalization.h>
19#include <tracking/trackFindingCDC/findlets/minimal/TrackRejecter.h>
20
21#include <tracking/trackFindingCDC/filters/base/ChooseableFilter.dcl.h>
22
23#include <tracking/trackFindingCDC/filters/segmentTrack/BaseSegmentTrackFilter.h>
24#include <tracking/trackFindingCDC/filters/segmentTrack/SegmentTrackFilterFactory.h>
25
26#include <tracking/trackFindingCDC/eventdata/segments/CDCSegment2D.h>
27#include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
28
29#include <vector>
30
31namespace Belle2 {
37 namespace TrackFindingCDC {
38
39 // Guard to prevent repeated instantiations
40 extern template class TrackFindingCDC::Chooseable<BaseSegmentTrackFilter>;
41 extern template class TrackFindingCDC::ChooseableFilter<SegmentTrackFilterFactory>;
42
59
60 private:
63
64 public:
67
69 std::string getDescription() final;
70
72 void beginEvent() final;
73
75 void exposeParameters(ModuleParamList* moduleParamList, const std::string& prefix) final;
76
78 void apply(std::vector<CDCSegment2D>& segments,
79 std::vector<CDCTrack>& tracks) override;
80
81 private:
82 // Findlets
85
87 CutSelector<CDCTrack, CDCSegment2D> m_selectPairsWithSharedHits;
88
91
93 SingleMatchSelector<CDCTrack, CDCSegment2D> m_singleMatchSelector;
94
96 SegmentTrackAdderWithNormalization m_segmentTrackAdderWithNormalization;
97
99 TrackRejecter m_trackRejecter;
100
102 TrackNormalizer m_trackNormalizer;
103
105 std::vector<WeightedRelation<CDCTrack, const CDCSegment2D>> m_relations;
106 };
107 }
109}
The Module parameter list class.
A reconstructed sequence of two dimensional hits in one super layer.
Definition: CDCSegment2D.h:39
Class representing a sequence of three dimensional reconstructed hits.
Definition: CDCTrack.h:41
Convenvience wrapper to setup a Chooseable filter from a specific factory object.
Selector to remove all weighted relations with a weight below a certain cut value.
Definition: CutSelector.h:43
Selector to remove all weighted relations, where a definable Filter gives NaN as a result.
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Definition: Findlet.h:26
Add the matched segments to the tracks and normalize the tracks afterwards.
Findlet for the combination of tracks and segments.
Factory that can create appropriate segment to track combinations filters from associated names.
A generic matcher algorithm which outputs all combinations of elements with the number of shared hits...
Selector to remove all relations in the list, which share the same collection item - except one in ca...
Findlet for normalizing the track (trajectory) into common requirements (e.g. let it start at the fir...
Deletes fake tracks that have been rejected by a filter.
Definition: TrackRejecter.h:34
Type for two related objects with a weight.
Abstract base class for different kinds of events.
STL namespace.