10#include <tracking/trackFindingCDC/findlets/base/Findlet.h>
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>
17#include <tracking/trackFindingCDC/findlets/minimal/TrackNormalizer.h>
18#include <tracking/trackFindingCDC/findlets/minimal/SegmentTrackAdderWithNormalization.h>
19#include <tracking/trackFindingCDC/findlets/minimal/TrackRejecter.h>
21#include <tracking/trackFindingCDC/filters/base/ChooseableFilter.dcl.h>
23#include <tracking/trackFindingCDC/filters/segmentTrack/BaseSegmentTrackFilter.h>
24#include <tracking/trackFindingCDC/filters/segmentTrack/SegmentTrackFilterFactory.h>
26#include <tracking/trackFindingCDC/eventdata/segments/CDCSegment2D.h>
27#include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
37 namespace TrackFindingCDC {
40 extern template class TrackFindingCDC::Chooseable<BaseSegmentTrackFilter>;
41 extern template class TrackFindingCDC::ChooseableFilter<SegmentTrackFilterFactory>;
The Module parameter list class.
A reconstructed sequence of two dimensional hits in one super layer.
Class representing a sequence of three dimensional reconstructed hits.
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.
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.
Add the matched segments to the tracks and normalize the tracks afterwards.
void apply(std::vector< CDCSegment2D > &segments, std::vector< CDCTrack > &tracks) override
Try to combine the segments and the tracks.
FilterSelector< CDCTrack, CDCSegment2D, ChooseableFilter< SegmentTrackFilterFactory > > m_chooseableSegmentTrackSelector
Reference to the chooser to be used for matching segments and tracks in the first step.
Findlet< CDCSegment2D &, CDCTrack & > Super
Type of the base class.
std::vector< WeightedRelation< CDCTrack, const CDCSegment2D > > m_relations
Object pools.
CutSelector< CDCTrack, CDCSegment2D > m_selectPairsWithSharedHits
Select only those pairs, which share at least a certain amount of hits.
void beginEvent() final
Signal the beginning of a new event.
SegmentTrackCombiner()
Constructor setting up the filter parameters.
SingleMatchSelector< CDCTrack, CDCSegment2D > m_singleMatchSelector
Select only the best matching segment-track relations and remove the hits from the other ones.
std::string getDescription() final
Short description of the findlet.
TrackNormalizer m_trackNormalizer
Findlet for normalizing the tracks.
SegmentTrackAdderWithNormalization m_segmentTrackAdderWithNormalization
Add the matched segments to tracks.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
TrackRejecter m_trackRejecter
Findlet to filter out fake tracks.
SharingHitsMatcher< CDCTrack, CDCSegment2D > m_sharedHitsMatcher
Matcher for creating relations between tracks and segments based on the number of shared hits.
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.
Type for two related objects with a weight.
Abstract base class for different kinds of events.