 |
Belle II Software
release-05-02-19
|
12 #include <tracking/trackFindingCDC/findlets/base/Findlet.h>
14 #include <tracking/ckf/cdc/findlets/CDCCKFStateCreator.h>
15 #include <tracking/ckf/cdc/findlets/CDCCKFStateFilter.h>
16 #include <tracking/ckf/cdc/findlets/CDCCKFPathMerger.h>
17 #include <tracking/ckf/cdc/findlets/CDCCKFPathSelector.h>
19 #include <tracking/ckf/cdc/entities/CDCCKFState.h>
20 #include <tracking/ckf/cdc/entities/CDCCKFPath.h>
22 #include <tracking/trackFindingCDC/utilities/StringManipulation.h>
23 #include <framework/core/ModuleParamList.h>
31 class StackTreeSearcher :
public
33 TrackFindingCDC::Findlet<CDCCKFPath, const TrackFindingCDC::CDCWireHit* const> {
53 void apply(std::vector<CDCCKFPath>& paths,
54 const std::vector<const TrackFindingCDC::CDCWireHit*>& wireHits)
override
61 std::vector<CDCCKFPath> newPaths;
62 std::vector<CDCCKFState> nextStates;
65 B2DEBUG(100,
"Testing one path from " << path.back());
70 for (
const auto& nextState : nextStates) {
71 path.push_back(nextState);
73 B2DEBUG(100,
"will go to " << nextState);
74 newPaths.push_back(path);
77 B2DEBUG(100,
"Now having " << newPaths.size() <<
" in flight");
81 B2DEBUG(100,
"Having found " << newPaths.size() <<
" new paths");
82 for (
const auto& path : newPaths) {
87 B2DEBUG(100,
"Having found " << newPaths.size() <<
" new paths after merging");
88 for (
const auto& path : newPaths) {
93 B2DEBUG(100,
"Having found " << newPaths.size() <<
" new paths after selection");
94 for (
const auto& path : newPaths) {
98 if (newPaths.empty()) {
102 paths.swap(newPaths);
105 apply(paths, wireHits);
CDCCKFPathSelector m_pathSelector
algorithm to select N best 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 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 ...
CDCCKFStateFilter m_stateFilter
algorithm to perform state filtering
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
void apply(std::vector< CDCCKFPath > &newPaths) override
main method of the findlet, reads/returns merged paths
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
CDCCKFPathMerger m_pathMerger
algorithm to merge similar paths
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
Abstract base class for different kinds of events.
virtual void exposeParameters(ModuleParamList *moduleParamList __attribute__((unused)), const std::string &prefix __attribute__((unused)))
Forward prefixed parameters of this findlet to the module parameter list.
std::vector< CDCCKFState > CDCCKFPath
Shortcut for the collection of CDC CKF-algorithm states.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
void apply(const CDCCKFPath &path, std::vector< CDCCKFState > &nextStates) override
Apply the findlet and do the state selection.
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.
The Module parameter list class.
CDCCKFStateCreator m_stateCreator
algorthim to create CDC-CDF states while traversing the path