10#include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
11#include <tracking/trackFindingCDC/eventdata/hits/CDCRLWireHit.h>
12#include <tracking/trackFindingCDC/eventdata/trajectories/CDCTrajectory2D.h>
14#include <tracking/trackFindingCDC/hough/perigee/CurvRep.h>
16#include <tracking/trackFindingCDC/hough/baseelements/WithSharedMark.h>
25 class ModuleParamList;
26 namespace TrackFindingCDC {
40 using Candidate = std::pair<CDCTrajectory2D, std::vector<CDCRLWireHit> >;
69 bool skip(
const ANode* node)
72 bool tooHighCurvature = (
static_cast<float>(node->template getLowerBound<DiscreteCurv>()) >
m_param_maxCurv or
73 -
static_cast<float>(node->template getUpperBound<DiscreteCurv>()) >
m_param_maxCurv);
74 return tooLowWeight or tooHighCurvature;
84 std::array<DiscreteCurv, 2> curvs = node->template getBounds<DiscreteCurv>();
85 float lowerCurv = *(curvs[0]);
86 float upperCurv = *(curvs[1]);
87 float curvWidth = std::fabs(upperCurv - lowerCurv);
89 if (curvRes >= curvWidth)
return true;
103 std::vector<WithSharedMark<CDCRLWireHit> >
The Module parameter list class.
Predicate class that is feed the nodes in a WeightedHoughTree walk It decides if a node should be fur...
bool isLeaf(const ANode *node)
Decide when a leaf node is reached that should be processed further.
std::vector< Candidate > getCandidates() const
Getter for the candidates structure still used in some tests.
std::pair< CDCTrajectory2D, std::vector< CDCRLWireHit > > Candidate
Preliminary structure to save found hits and trajectory information.
int m_nLeafs
Statistic: Number processed leaf.
std::vector< WithSharedMark< CDCRLWireHit > > searchRoad(const ANode &node, const CDCTrajectory2D &trajectory2D)
Look for more hits near a ftted trajectory from hits available in the give node.
void setAxialWireHits(std::vector< const CDCWireHit * > axialWireHits)
Set the pool of all axial wire hits to be used in the postprocessing.
std::string m_param_curvResolution
Memory for the name of the resolution function to be used. Valid values are 'none',...
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix)
Expose the parameters as a module parameter list.
int m_nSkippedNodes
Statistic: Number of skipped nodes.
void processLeaf(ANode *leaf)
A valuable leaf has been found in the hough tree walk.
bool skip(const ANode *node)
Decide if the node should be expanded further or marks an end point of the depth search.
void beginWalk()
Function to notify the leaf processor about changes in parameters before a new walk.
std::function< double(double)> m_curvResolution
Memory for the freely defined curvature resolution function.
int m_nNodes
Statistic: Number received node.
int m_param_roadLevel
Memory for the tree node level which should be the source of hits for the road searches....
const std::vector< CDCTrack > & getTracks() const
Getter for the tracks.
AxialLegendreLeafProcessor(int maxLevel)
Initialize a new processor with the maximum level.
double m_param_curlCurv
Memory for the curvature of a curler in the CDC.
void clear()
Clear the found candidates.
std::vector< const CDCWireHit * > m_axialWireHits
Memory for the pool of axial wire hits to can be used in the post processing.
int m_param_maxLevel
Memory for the maximal level of the tree.
bool operator()(ANode *node)
Entry point for the WeightedHoughTree walk to ask if a node is a leaf that should not be further divi...
double m_param_maxCurv
Memory for the maximal curvature that should be searched in the current walk.
double m_param_minWeight
Memory for the minimal weight threshold for following the children of a node.
int m_param_nRoadSearches
Memory for the number of repeated road searches.
std::vector< CDCTrack > m_tracks
Memory for found trajectories.
Particle trajectory as it is seen in xy projection represented as a circle.
Abstract base class for different kinds of events.