8#include <tracking/trackFindingCDC/findlets/combined/SegmentTrackCombiner.h>
10#include <tracking/trackFindingCDC/eventdata/segments/CDCSegment2D.h>
11#include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
13#include <tracking/trackFindingCDC/filters/base/ChooseableFilter.icc.h>
16using namespace TrackFindingCDC;
32 const std::string prefix =
"";
34 moduleParamList.
getParameter<
double>(
"sharedHitsCutValue").setDefaultValue(1.0);
35 moduleParamList.
getParameter<
bool>(
"useOnlySingleBestCandidate").setDefaultValue(
false);
36 moduleParamList.
getParameter<
bool>(
"hitSelectorUseOnlySingleBestCandidate").setDefaultValue(
false);
41 return "Findlet for the combination of tracks and segments.";
65 std::vector<TrackFindingCDC::CDCTrack>& tracks)
71 if (segment.isFullyTaken()) {
72 segment.getAutomatonCell().setTakenFlag();
74 segment.getAutomatonCell().unsetTakenFlag();
The Module parameter list class.
A reconstructed sequence of two dimensional hits in one super layer.
Convenvience wrapper to setup a Chooseable filter from a specific factory object.
Filter can delegate to a filter chosen and set up at run time by parameters.
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
void beginEvent() override
Receive and dispatch signal for the start of a new event.
virtual void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix)
Forward prefixed parameters of this findlet to the module parameter list.
void apply(std::vector< WeightedRelation< CDCTrack, const CDCSegment2D > > &relations, std::vector< CDCTrack > &tracks, const std::vector< CDCSegment2D > &segment) override
Apply the findlet.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub-findlets.
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.
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.
void apply(std::vector< CDCTrack > &tracks) final
Fit the tracks.
void apply(std::vector< CDCTrack > &tracks) final
Main algorithm.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
ModuleParam< T > & getParameter(const std::string &name) const
Returns a reference to a parameter.
Abstract base class for different kinds of events.