10#include <tracking/trackFindingCDC/eventdata/hits/CDCRLWireHit.h>
12#include <tracking/trackFindingCDC/topology/EStereoKind.h>
13#include <tracking/trackFindingCDC/topology/ISuperLayer.h>
15#include <tracking/trackFindingCDC/numerics/ERightLeft.h>
16#include <tracking/trackFindingCDC/numerics/ERotation.h>
18#include <tracking/trackFindingCDC/geometry/Vector2D.h>
30 namespace TrackFindingCDC {
31 class CDCTrajectory2D;
302 std::ostream& operator<<(std::ostream& output,
const CDCRecoHit2D& recohit);
Class containing the result of the unpacker in raw data and the result of the digitizer in simulation...
Class representing an oriented hit wire including a hypotheses whether the causing track passes left ...
const CDCWireHit & getWireHit() const
Getter for the wire hit associated with the oriented hit.
ISuperLayer getISuperLayer() const
Getter for the superlayer id.
double getRefDriftLengthVariance() const
Getter for the variance of the drift length at the reference position of the wire.
double getRefDriftLength() const
Getter for the drift length at the reference position of the wire.
bool isAxial() const
Indicator if the underlying wire is axial.
const CDCWire & getWire() const
Getter for the wire the oriented hit associated to.
bool hasWireHit(const CDCWireHit &wirehit) const
Checks if the oriented hit is associated with the give wire hit.
double getSignedRefDriftLength() const
Getter for the drift length at the reference position of the wire.
void setRLInfo(const ERightLeft rlInfo)
Setter for the right left passage information.
bool isOnWire(const CDCWire &wire) const
Checks if the oriented hit is associated with the give wire.
const Vector2D & getRefPos2D() const
The two dimensional reference position of the underlying wire.
EStereoKind getStereoKind() const
Getter for the stereo type of the underlying wire.
ERightLeft getRLInfo() const
Getter for the right left passage information.
Class representing a two dimensional reconstructed hit in the central drift chamber.
const CDCWireHit & getWireHit() const
Getter for the wire hit associated with the reconstructed hit.
void setRefDriftLength(double driftLength, bool snapRecoPos)
Setter for the drift length at the wire reference position.
Vector2D m_recoDisp2D
Memory for the displacement of the associated wire reference position.
void setRLInfo(ERightLeft &rlInfo)
Setter the right left passage information.
ISuperLayer getISuperLayer() const
Getter for the superlayer id.
const CDCRLWireHit & getRLWireHit() const
Getter for the oriented wire hit associated with the reconstructed hit.
double getRefDriftLengthVariance() const
Getter for the uncertainty in the drift length at the wire reference position.
void reverse()
Turns the orientation in place.
double getRefDriftLength() const
Getter for the drift length at the wire reference position.
friend bool operator<(const CDCWire &wire, const CDCRecoHit2D &recoHit2D)
Defines wires and the two dimensional reconstructed hits as coaligned.
bool isAxial() const
Indicator if the underlying wire is axial.
CDCRecoHit2D()=default
Default constructor for ROOT.
CDCRecoHit2D getAlias() const
Getter for the alias version of the reco hit.
static CDCRecoHit2D fromRecoPos2D(const CDCRLWireHit &rlWireHit, const Vector2D &recoPos2D, bool snap=true)
Constructs a two dimensional reconstructed hit from an absolute position.
Vector3D reconstruct3D(const CDCTrajectory2D &trajectory2D, const double z=0) const
Reconstruct the three dimensional position (especially of stereo hits) by determining the z coordinat...
CDCRecoHit2D reversed() const
Returns the recohit with the opposite right left information.
const CDCWire & getWire() const
Getter for the wire the reconstructed hit associated to.
static CDCRecoHit2D average(const CDCRecoHit2D &recoHit1, const CDCRecoHit2D &recoHit2)
Constructs the average of two reconstructed hit positions and snaps it to the drift circle.
double getAlpha() const
Getter for the direction of flight relative to the position.
friend bool operator<(const CDCWireHit &wireHit, const CDCRecoHit2D &recoHit2D)
Defines wire hits and the two dimensional reconstructed hits as coaligned.
const Vector2D & getRecoDisp2D() const
Getter for the displacement from the wire reference position.
void snapToDriftCircle(bool switchSide=false)
Scales the displacement vector in place to lie on the drift circle.
void setRLWireHit(const CDCRLWireHit &rlWireHit)
Setter for the oriented wire hit associated with the reconstructed hit.
double getSignedRefDriftLength() const
Getter for the drift length at the wire reference position signed with the right left passage hypothe...
Vector2D getFlightDirection2D() const
Getter for the direction of flight.
friend bool operator<(const CDCRecoHit2D &recoHit2D, const CDCWire &wire)
Defines wires and the two dimensional reconstructed hits as coaligned.
bool operator<(const CDCRecoHit2D &other) const
Total ordering relation based on wire hit, left right passage information and displacement in this or...
static CDCRecoHit2D fromSimHit(const CDCWireHit *wireHit, const CDCSimHit &simHit)
Constructs a two dimensional reconstructed hit from a sim hit and the associated wirehit.
Vector2D getRecoPos2D() const
Getter for the position in the reference plane.
bool hasWireHit(const CDCWireHit &wireHit) const
Checks if the reconstructed hit is associated with the give wire hit.
friend bool operator<(const CDCRecoHit2D &recoHit2D, const CDCWireHit &wireHit)
Defines wire hits and the two dimensional reconstructed hits as coaligned.
CDCRLWireHit m_rlWireHit
Memory for the reference to the associated wire hit.
bool isOnWire(const CDCWire &wire) const
Checks if the reconstructed hit is associated with the give wire.
const Vector2D & getRefPos2D() const
Getter for the reference position of the wire.
EStereoKind getStereoKind() const
Getter for the stereo type of the underlying wire.
ERightLeft getRLInfo() const
Getter for the right left passage information.
bool operator==(const CDCRecoHit2D &other) const
Equality comparison based on the oriented wire hit and displacement.
void setRecoPos2D(const Vector2D &recoPos2D)
Setter for the position in the reference plane.
Particle trajectory as it is seen in xy projection represented as a circle.
Class representing a hit wire in the central drift chamber.
Class representing a sense wire in the central drift chamber.
A two dimensional vector which is equipped with functions for correct handling of orientation relate...
Vector2D orthogonal() const
Orthogonal vector to the counterclockwise direction.
double angleWith(const Vector2D &rhs) const
The angle between this and rhs.
A three dimensional vector.
HepGeom::Vector3D< double > Vector3D
3D Vector
ERightLeft
Enumeration to represent the distinct possibilities of the right left passage.
ERotation
Enumeration to represent the distinct possibilities of the right left passage information.
Abstract base class for different kinds of events.