10#include <tracking/trackFindingCDC/hough/boxes/Z0TanLambdaBox.h>
12#include <tracking/trackingUtilities/eventdata/hits/CDCRecoHit3D.h>
14#include <cdc/topology/CDCWire.h>
15#include <cdc/topology/WireLine.h>
17#include <tracking/trackingUtilities/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);
80 const double lhsZ = lhsRecoHit.
getRecoZ();
81 const double rhsZ = rhsRecoHit.
getRecoZ();
86 const double lhsZDistance = lhsS * tanLambdaMean + z0Mean - lhsZ;
87 const double rhsZDistance = rhsS * tanLambdaMean + z0Mean - rhsZ;
89 return lhsZDistance < rhsZDistance;
93 static const char*
debugLine() {
return "[0] + [1] * x";}
Class representing a sense wire in the central drift chamber.
const WireLine & getWireLine() const
Getter for the wire line representation of the wire.
A three dimensional limited line represented by its closest approach to the z-axes (reference positio...
ROOT::Math::XYVector nominalPos2DAtZ(const double z) const
Gives the two dimensional position without wire sag effect of the line at the given z value.
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.
static bool compareDistances(const HoughBox &z0TanLambdaBox, const TrackingUtilities::CDCRecoHit3D &lhsRecoHit, const TrackingUtilities::CDCRecoHit3D &rhsRecoHit)
Compares distances from two hits to the track represented by the given box.
TrackingUtilities::Weight operator()(const TrackingUtilities::CDCRecoHit3D &recoHit, const HoughBox *z0TanLambdaBox)
Return exp{-distance} with distance = distance between the trajectory constructed from the box parame...
Z0TanLambdaBox HoughBox
Use a Z0TanLambdaBox.
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.
Class representing a three dimensional reconstructed hit.
const Vector2D & getRecoPos2D() const
Getter for the 2d position of the hit.
const CDC::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.
A two dimensional vector which is equipped with functions for correct handling of orientation relate...
Abstract base class for different kinds of events.