10#include <tracking/trackFindingCDC/eventdata/hits/CDCRLWireHit.h>
12#include <tracking/trackFindingCDC/geometry/Vector3D.h>
13#include <tracking/trackFindingCDC/geometry/Vector2D.h>
15#include <tracking/trackFindingCDC/topology/EStereoKind.h>
16#include <tracking/trackFindingCDC/topology/ISuperLayer.h>
18#include <tracking/trackFindingCDC/numerics/ERightLeft.h>
19#include <tracking/trackFindingCDC/numerics/ERotation.h>
29 namespace TrackFindingCDC {
31 class CDCTrajectory3D;
32 class CDCTrajectory2D;
33 class CDCTrajectorySZ;
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.
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.
Class representing a three dimensional reconstructed hit.
static CDCRecoHit3D average(const CDCRecoHit3D &first, const CDCRecoHit3D &second)
Constructs the average of two reconstructed hit positions.
const CDCWireHit & getWireHit() const
Getter for the wire hit.
void setRecoPos3D(const Vector3D &recoPos3D)
Setter for the 3d position of the hit.
const Vector3D & getRecoPos3D() const
Getter for the 3d position of the hit.
double m_arcLength2D
Memory for the travel distance as see in the xy projection.
ISuperLayer getISuperLayer() const
Getter for the superlayer id.
void shiftArcLength2D(double arcLength2DOffSet)
Adjust the travel distance by the given value.
const CDCRLWireHit & getRLWireHit() const
Getter for the oriented wire hit.
CDCRecoHit3D()=default
Default constructor for ROOT.
void reverse()
Turns the orientation in place.
bool isAxial() const
Indicator if the underlying wire is axial.
double getSignedRecoDriftLength() const
Returns the drift length next to the reconstructed position.
friend bool operator<(const CDCWireHit &wireHit, const CDCRecoHit3D &recoHit3D)
Defines wire hits and the three dimensional reconstructed hits as coaligned.
const Vector2D & getRecoPos2D() const
Getter for the 2d position of the hit.
bool operator<(const CDCRecoHit3D &other) const
Total ordering relation based on wire hit, right left passage information and position information in...
static CDCRecoHit3D reconstruct(const CDCRecoHit2D &recoHit2D, const CDCTrajectory2D &trajectory2D)
Reconstructs the three dimensional hit from the two dimensional and the two dimensional trajectory.
const CDCWire & getWire() const
Getter for the wire.
double getAlpha() const
Getter for the direction of flight relative to the position.
CDCRecoHit2D getRecoHit2D() const
Constructs a two dimensional reconstructed hit by carrying out the stereo ! projection to the wire re...
friend bool operator<(const CDCWire &wire, const CDCRecoHit3D &recoHit3D)
Defines wires and the three dimensional reconstructed hits as coaligned.
Vector2D getRecoWirePos2D() const
Returns the position of the wire in the xy plain the reconstructed position is located in.
static CDCRecoHit3D fromSimHit(const CDCWireHit *wireHit, const CDCSimHit &simHit)
Constructs a three dimensional reconstructed hit from a sim hit and the associated wirehit.
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 getRecoZ() const
Getter for the z coordinate of the reconstructed position.
double getRecoDriftLengthVariance() const
Returns the drift length variance next to the reconstructed position.
Vector2D getFlightDirection2D() const
Getter for the direction of flight.
double getArcLength2D() const
Getter for the travel distance in the xy projection.
friend bool operator<(const CDCRecoHit3D &recoHit3D, const CDCWireHit &wireHit)
Defines wire hits and the three dimensional reconstructed hits as coaligned.
friend bool operator<(const CDCRecoHit3D &recoHit3D, const CDCWire &wire)
Defines wires and the three dimensional reconstructed hits as coaligned.
bool hasWireHit(const CDCWireHit &wireHit) const
Checks if the reconstructed hit is associated with the give wire hit.
CDCRecoHit2D stereoProjectToRef() const
Constructs a two dimensional reconstructed hit by carrying out the stereo ! projection to the wire re...
void setArcLength2D(const double arcLength2D)
Setter for the travel distance in the xy projection.
bool operator==(const CDCRecoHit3D &other) const
Equality comparison based on wire hit, right left passage information and reconstructed position.
CDCRLWireHit m_rlWireHit
Memory for the oriented wire hit reference.
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.
void setRLInfo(ERightLeft rlInfo)
Setter the right left passage information.
EStereoKind getStereoKind() const
Getter for the stereo type of the underlying wire.
CDCRecoHit3D reversed() const
Returns the recohit with the opposite right left information.
void setRecoDriftLength(double driftLength, bool snapRecoPos)
Setter to update the drift length of the hit.
static CDCRecoHit3D reconstructNearest(const CDCWireHit *axialWireHit, const CDCTrajectory2D &trajectory2D)
Reconstruct a three dimensional hit from a wire hit (as in reconstruct(rlWireHit, trajectory2D)),...
ERightLeft getRLInfo() const
Getter for the right left passage information.
Vector2D getRecoDisp2D() const
Gets the displacement from the wire position in the xy plain at the reconstructed position.
Vector3D m_recoPos3D
Memory for the reconstructed hit position.
bool isInCellZBounds(const double factor=1) const
Indicator if the hit is in the cdc (scaled by the factor) or already outside its boundaries.
Particle trajectory as it is seen in xy projection represented as a circle.
Particle full three dimensional trajectory.
Linear trajectory in sz space.
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.
const Vector2D & xy() const
Getter for the xy projected vector ( reference ! )
double z() const
Getter for the z coordinate.
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.