9#include <tracking/trackFindingCDC/eventdata/segments/CDCSegment3D.h>
10#include <tracking/trackFindingCDC/eventdata/trajectories/CDCTrajectorySZ.h>
11#include <tracking/trackFindingCDC/hough/boxes/Z0TanLambdaBox.h>
12#include <tracking/trackFindingCDC/hough/baseelements/SameSignChecker.h>
19 namespace TrackFindingCDC {
36 Weight
operator()(
const std::pair<CDCSegment3D, CDCTrajectorySZ>& segmentWithTrajectorySZ,
46 const CDCSegment3D& segment = segmentWithTrajectorySZ.first;
48 float trajectoryZ0 = szTrajectory.
getZ0();
51 if (std::isnan(trajectoryZ0) or std::isnan(trajectoryTanLambda)) {
55 if (
SameSignChecker::isIn(trajectoryZ0, trajectoryTanLambda, lowerZ0, upperZ0, lowerTanLambda, upperTanLambda)) {
56 return 0.6 * segment.size();
A segment consisting of three dimensional reconstructed hits.
Linear trajectory in sz space.
double getTanLambda() const
Getter for the slope over the travel distance coordinate.
double getZ0() const
Getter for the z coordinate at zero travel distance.
static bool isIn(double x, double y, double x1, double x2, double y1, double y2)
Check if two values are in the rectangle spanned by the other four values.
Predicate class to check for the containment of hits in a z0 tan lambda hough space part.
Weight operator()(const std::pair< CDCSegment3D, CDCTrajectorySZ > &segmentWithTrajectorySZ, const HoughBox *z0TanLambdaBox)
Checks if the wire hit is contained in a z0 tan lambda hough space.
A rectangular domain for the hough space over phi0 and two dimensional curvature.
float getLowerTanLambda() const
Concise getter for the lower tan lambda bound.
float getUpperZ0() const
Concise getter for the upper z0 bound.
float getLowerZ0() const
Concise getter for the lower z0 bound.
float getUpperTanLambda() const
Concise getter for the upper tan lambda bound.
Abstract base class for different kinds of events.