8#include <tracking/trackingUtilities/eventdata/hits/CDCTangent.h>
10#include <tracking/trackingUtilities/eventdata/hits/CDCRecoHit2D.h>
11#include <tracking/trackingUtilities/eventdata/hits/CDCRLWireHitPair.h>
12#include <tracking/trackingUtilities/eventdata/hits/CDCRLWireHit.h>
14#include <tracking/trackingUtilities/geometry/ParameterLine2D.h>
16#include <tracking/trackingUtilities/numerics/ERightLeft.h>
21using namespace TrackingUtilities;
74 m_line.passiveMoveAtBy(-1);
103std::ostream& TrackingUtilities::operator<<(std::ostream& output,
const CDCTangent& tangent)
105 output <<
"Tangent" << std::endl;
virtual void reverse()
Reverses the oriented wire hit pair inplace.
CDCRLWireHit & getToRLWireHit()
Getter for the second oriented wire hit.
void setFromRLInfo(ERightLeft fromRLInfo)
Setter for the right left passage information of the first oriented wire hit.
void setToRLInfo(ERightLeft toRLInfo)
Setter for the right left passage information of the second oriented wire hit.
ERightLeft getFromRLInfo() const
Getter for the right left passage information of the first oriented wire hit.
CDCRLWireHitPair reversed() const
Constructs a oriented wire hit pair that is the reverse of this one.
CDCRLWireHit & getFromRLWireHit()
Getter for the first oriented wire hit.
CDCRLWireHitPair()=default
Default constructor for ROOT.
ERightLeft getToRLInfo() const
Getter for the right left passage information of the second oriented wire hit.
Class representing an oriented hit wire including a hypotheses whether the causing track passes left ...
const ROOT::Math::XYVector & getRefPos2D() const
The two dimensional reference position of the underlying wire.
Class representing a two dimensional reconstructed hit in the central drift chamber.
static CDCRecoHit2D fromRecoPos2D(const CDCRLWireHit &rlWireHit, const ROOT::Math::XYVector &recoPos2D, bool snap=true)
Constructs a two dimensional reconstructed hit from an absolute position.
Class representing a linear track piece between two oriented wire hits.
void adjustRLInfo()
Adjusts the right left passage information according to the tangent line.
CDCTangent()=default
Default constructor for ROOT.
const ROOT::Math::XYVector & getFromRecoPos2D() const
Getter for the touching point of the tangent to the first drift circle.
ParameterLine2D m_line
Memory for the line between the two touching points. The first touch point at(0), second at(1).
ROOT::Math::XYVector getFromRecoDisp2D() const
Getter for displacement of the touching point from the first wire in the reference plane.
CDCRecoHit2D getToRecoHit2D() const
Getter for the reconstructed hit on the second oriented wire hit using reconstructed touch point as p...
ROOT::Math::XYVector getToRecoDisp2D() const
Getter for displacement of the touching point from the second wire in the reference plane.
void reverse() override
Reverses the tangent inplace.
void adjustLine()
Adjusts the line to touch the drift circles with the correct right left passage information.
CDCRecoHit2D getFromRecoHit2D() const
Getter for the reconstructed hit on the first oriented wire hit using reconstructed touch point as po...
const ParameterLine2D & getLine() const
Getter for the line representation of the line.
CDCTangent reversed() const
Same as reverse but returns a copy.
ROOT::Math::XYVector getToRecoPos2D() const
Getter for the touching point of the tangent to the second drift circle.
A line with a support point and tangential vector.
static ParameterLine2D throughPoints(const ROOT::Math::XYVector &start, const ROOT::Math::XYVector &end)
Static constructor for a line between to points.
ERightLeft isRightOrLeft(const ROOT::Math::XYVector &point) const
Return if the point given is right or left of the line.
static ParameterLine2D touchingCircles(const ROOT::Math::XYVector &fromCenter, double fromSignedRadius, const ROOT::Math::XYVector &toCenter, double toSignedRadius)
Constructs a line touching two circles in one point each.
Abstract base class for different kinds of events.