10#include <tracking/trackFindingCDC/hough/boxes/Z0TanLambdaBox.h>
12#include <tracking/trackFindingCDC/eventdata/hits/CDCRecoHit3D.h>
14#include <tracking/trackFindingCDC/topology/CDCWire.h>
15#include <tracking/trackFindingCDC/topology/WireLine.h>
17#include <tracking/trackFindingCDC/numerics/Weight.h>
24 namespace TrackFindingCDC {
52 const float centerZ0 = 0.5 * (lowerZ0 + upperZ0);
56 const float centerTanLambda = 0.5 * (lowerTanLambda + upperTanLambda);
61 float hitZ = centerTanLambda * perpS + centerZ0;
65 float distanceToRecoPosition = (pos2D - recoPosition).norm();
67 return exp(-distanceToRecoPosition);
79 const double lhsZ = lhsRecoHit.
getRecoZ();
80 const double rhsZ = rhsRecoHit.
getRecoZ();
85 const double lhsZDistance = lhsS * tanLambdaMean + z0Mean - lhsZ;
86 const double rhsZDistance = rhsS * tanLambdaMean + z0Mean - rhsZ;
88 return lhsZDistance < rhsZDistance;
92 static const char*
debugLine() {
return "[0] + [1] * x";}
Class representing a three dimensional reconstructed hit.
const Vector2D & getRecoPos2D() const
Getter for the 2d position of the hit.
const CDCWire & getWire() const
Getter for the wire.
double getRecoZ() const
Getter for the z coordinate of the reconstructed position.
double getArcLength2D() const
Getter for the travel distance in the xy projection.
Class representing a sense wire in the central drift chamber.
const WireLine & getWireLine() const
Getter for the wire line representation of the wire.
Predicate class to check for the containment of hits in a z0 tan lambda hough space part using a diff...
static const char * debugLine()
ROOT-compatible formula for z(s) = z0 + tanlambda * s.
Weight operator()(const CDCRecoHit3D &recoHit, const HoughBox *z0TanLambdaBox)
Return exp{-distance} with distance = distance between the trajectory constructed from the box parame...
static bool compareDistances(const HoughBox &z0TanLambdaBox, const CDCRecoHit3D &lhsRecoHit, const CDCRecoHit3D &rhsRecoHit)
Compares distances from two hits to the track represented by the given box.
A two dimensional vector which is equipped with functions for correct handling of orientation relate...
A three dimensional limited line represented by its closest approach to the z-axes (reference positio...
Vector2D nominalPos2DAtZ(const double z) const
Gives the two dimensional position without wire sag effect of the line at the given z value.
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.