10#include <tracking/trackFindingCDC/findlets/base/Findlet.h>
12#include <tracking/ckf/cdc/findlets/CDCCKFStateCreator.h>
13#include <tracking/ckf/cdc/findlets/CDCCKFStateFilter.h>
14#include <tracking/ckf/cdc/findlets/CDCCKFPathMerger.h>
15#include <tracking/ckf/cdc/findlets/CDCCKFPathSelector.h>
17#include <tracking/ckf/cdc/entities/CDCCKFState.h>
18#include <tracking/ckf/cdc/entities/CDCCKFPath.h>
20#include <tracking/trackFindingCDC/utilities/StringManipulation.h>
21#include <framework/core/ModuleParamList.h>
51 void apply(std::vector<CDCCKFPath>& paths,
52 const std::vector<const TrackFindingCDC::CDCWireHit*>& wireHits)
override
59 std::vector<CDCCKFPath> newPaths;
60 std::vector<CDCCKFState> nextStates;
63 B2DEBUG(29,
"Testing one path from " << path.back());
68 for (
const auto& nextState : nextStates) {
69 path.push_back(nextState);
71 B2DEBUG(29,
"will go to " << nextState);
72 newPaths.push_back(path);
75 B2DEBUG(29,
"Now having " << newPaths.size() <<
" in flight");
79 B2DEBUG(29,
"Having found " << newPaths.size() <<
" new paths");
80 for (
const auto& path : newPaths) {
85 B2DEBUG(29,
"Having found " << newPaths.size() <<
" new paths after merging");
86 for (
const auto& path : newPaths) {
91 B2DEBUG(29,
"Having found " << newPaths.size() <<
" new paths after selection");
92 for (
const auto& path : newPaths) {
96 if (newPaths.empty()) {
100 paths.swap(newPaths);
103 apply(paths, wireHits);
void apply(std::vector< CDCCKFPath > &newPaths) override
main method of the findlet, reads/returns merged paths
Select the m_maximalCandidatesInFlight paths for further processing.
void apply(std::vector< CDCCKFPath > &newPaths) override
main method of the findlet, out of all paths "newPaths" select the best N=m_maximalCandidatesInFlight
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
Create CKF states, based on the current path. Perform some basic selection at this stage (based on ph...
void apply(std::vector< CDCCKFState > &nextStates, const CDCCKFPath &path, const std::vector< const TrackFindingCDC::CDCWireHit * > &wireHits) override
Main method of the findlet. Select + create states (output parameter nextStates) suitable for the inp...
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
A stack of pre-, helix-extrapolation- , Kalman-extrapolation- and Kalman-update-filters.
void apply(const CDCCKFPath &path, std::vector< CDCCKFState > &nextStates) override
Apply the findlet and do the state selection.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
The Module parameter list class.
CKF tree searcher which traces several best paths.
void apply(std::vector< CDCCKFPath > &paths, const std::vector< const TrackFindingCDC::CDCWireHit * > &wireHits) override
Main method to update the paths. Input: vector of the selected paths and a vector of CDC wirehits to ...
CDCCKFStateCreator m_stateCreator
algorithm to create CDC-CDF states while traversing the path
CDCCKFStateFilter m_stateFilter
algorithm to perform state filtering
CDCCKFPathSelector m_pathSelector
algorithm to select N best paths, for further processing.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
CDCCKFPathMerger m_pathMerger
algorithm to merge similar paths
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
Interface for a minimal algorithm part that wants to expose some parameters to a module.
virtual void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix)
Forward prefixed parameters of this findlet to the module parameter list.
std::vector< CDCCKFState > CDCCKFPath
Shortcut for the collection of CDC CKF-algorithm states.
Abstract base class for different kinds of events.