10#include <tracking/trackingUtilities/eventdata/segments/CDCSegment2D.h>
11#include <tracking/trackingUtilities/eventdata/trajectories/CDCTrajectory2D.h>
12#include <tracking/trackFindingCDC/hough/phi0_curv/Phi0CurvBox.h>
13#include <tracking/trackingUtilities/geometry/Vector2D.h>
20 namespace TrackFindingCDC {
36 const Phi0CurvBox* phi0CurvBox)
38 if (segment->empty())
return NAN;
40 TrackingUtilities::Weight weight =
operator()(&trajectory2D, phi0CurvBox);
41 return weight * segment->size();
49 const Phi0CurvBox* phi0CurvBox)
64 const Phi0CurvBox* phi0CurvBox)
86 const double curvature,
87 const Phi0CurvBox* phi0CurvBox)
94 if (phi0CurvBox->isIn<1>(curvature)) {
95 return phi0Vec.
isBetween(lowerPhi0Vec, upperPhi0Vec);
97 }
else if (phi0CurvBox->isIn<1>(-curvature)) {
98 return (-phi0Vec).isBetween(lowerPhi0Vec, upperPhi0Vec);
Predicate class to check for the containment of segments in a phi0 curv hough space part.
bool isPhi0CurvPointIn(const TrackingUtilities::Vector2D &phi0Vec, const double curvature, const Phi0CurvBox *phi0CurvBox)
Predicate checking if the phi0 vector and curvature are contained in the given box.
TrackingUtilities::Weight operator()(const TrackingUtilities::CDCFacet *facet, const Phi0CurvBox *phi0CurvBox)
Checks if the given hit triplet is considered part of the hough box in phi0, curvature space.
TrackingUtilities::Weight operator()(const TrackingUtilities::CDCTrajectory2D *trajectory2D, const Phi0CurvBox *phi0CurvBox)
Checks if the given trajectory is considered part of the hough box in phi0, curvature space.
TrackingUtilities::Weight operator()(const TrackingUtilities::CDCSegment2D *segment, const Phi0CurvBox *phi0CurvBox)
Checks if the segment is contained in a phi0 curv hough space.
Class representing a triple of neighboring oriented wire with additional trajectory information.
ParameterLine2D getStartToEndLine() const
Getter for the tangential line from the first to the third hit.
Vector2D getMiddleRecoPos2D() const
Getter for the reconstructed position at the second hit on the fit line.
A reconstructed sequence of two dimensional hits in one super layer.
Particle trajectory as it is seen in xy projection represented as a circle.
double getCurvature() const
Getter for the curvature as seen from the xy projection.
A two dimensional vector which is equipped with functions for correct handling of orientation relate...
double cross(const Vector2D &rhs) const
Calculated the two dimensional cross product.
bool isBetween(const Vector2D &lower, const Vector2D &upper) const
Checks if this vector is between two other vectors Between means here that when rotating the lower ve...
double normSquared() const
Calculates .
Vector2D flippedOver(const Vector2D &reflectionLine) const
Reflects this vector over line designated by the given vector.
Abstract base class for different kinds of events.