Generates the tracks from the given segments into the output argument.
130 size_t nAxialHits = 0;
131 std::vector<const CDCSegment2D*> ptrAxialSegments;
132 ptrAxialSegments.reserve(segments.size());
135 if (segment.getStereoKind() == EStereoKind::c_Axial) {
136 ptrAxialSegments.push_back(&segment);
137 nAxialHits += segment.size();
146 using Candidate = std::pair<HoughBox, std::vector<const CDCSegment2D*> >;
147 std::vector<Candidate> candidates =
m_houghTree->findBest(minWeight);
149 for (
const Candidate& candidate : candidates) {
153 const HoughBox& foundHoughBox = candidate.first;
154 const std::vector<const CDCSegment2D*>& foundSegments = candidate.second;
163 const std::array<DiscreteCurv, 2>& curvs = foundHoughBox.getBounds<
DiscreteCurv>();
164 float lowerCurv = *(curvs[0]);
165 float upperCurv = *(curvs[1]);
177 track.sortByArcLength2D();
180 if (track.empty())
continue;
183 startTrajectory3D.setLocalOrigin(startRecoHit3D.
getRecoPos3D());
184 track.setStartTrajectory3D(startTrajectory3D);
188 endTrajectory3D.setLocalOrigin(endRecoHit3D.
getRecoPos3D());
189 track.setEndTrajectory3D(endTrajectory3D);
191 tracks.push_back(std::move(track));
double m_param_minNHits
Parameter: Absolute minimal number of hits to make an axial track.
std::unique_ptr< SimpleSegmentPhi0ImpactCurvHoughTree > m_houghTree
The hough space tree search.
double m_param_minFractionNHits
Parameter: Minimal number of hits as a fraction of the total hits in the event.
Class serving as a storage of observed drift circles to present to the Riemann fitter.
std::size_t appendRange(const CDCSegment2D &segment2D)
Appends all reconstructed hits from the two dimensional segment.
Class representing a two dimensional reconstructed hit in the central drift chamber.
Class representing a three dimensional reconstructed hit.
static CDCRecoHit3D reconstruct(const CDCRecoHit2D &recoHit2D, const CDCTrajectory2D &trajectory2D)
Reconstructs the three dimensional hit from the two dimensional and the two dimensional trajectory.
const Vector3D & getRecoPos3D() const
Getter for the 3d position of the hit.
Class implementing the Riemann fit for two dimensional trajectory circle.
static const CDCRiemannFitter & getFitter()
Static getter for a general Riemann fitter.
A reconstructed sequence of two dimensional hits in one super layer.
Class representing a sequence of three dimensional reconstructed hits.
Particle trajectory as it is seen in xy projection represented as a circle.
void reverse()
Reverses the trajectory in place.
double getCurvature() const
Getter for the curvature as seen from the xy projection.
Particle full three dimensional trajectory.
Representation for a discrete position in an array of discrete positions.
typename InBox::HoughBox HoughBox
Type of the hough box.
static ESign common(ESign n1, ESign n2)
Check if two values have a common sign.