10#include <tracking/trackFindingCDC/geometry/UncertainHelix.h>
11#include <tracking/trackFindingCDC/geometry/Helix.h>
12#include <tracking/trackFindingCDC/geometry/HelixParameters.h>
14#include <tracking/trackFindingCDC/geometry/Vector3D.h>
15#include <tracking/trackFindingCDC/geometry/Vector2D.h>
17#include <tracking/trackFindingCDC/numerics/ESign.h>
35 namespace TrackFindingCDC {
36 class CDCTrajectory2D;
37 class CDCTrajectorySZ;
41 class UncertainPerigeeCircle;
42 class UncertainSZLine;
71 double flightTime = NAN)
139 bool fillInto(genfit::TrackCand& trackCand)
const;
142 bool fillInto(genfit::TrackCand& gfTrackCand,
double bZ)
const;
247 bool isCurler(
double factor = 1)
const;
388 std::ostream& operator<<(std::ostream& output,
const CDCTrajectory3D& trajectory3D);
A Class to store the Monte Carlo particle information.
Particle trajectory as it is seen in xy projection represented as a circle.
Particle full three dimensional trajectory.
UncertainPerigeeCircle getLocalCircle() const
Getter for the circle in local coordinates.
Vector3D getMom3DAtSupport(const double bZ) const
Get the momentum at the start point of the trajectory.
double calcArcLength2D(const Vector3D &point) const
Calculate the travel distance from the start position of the trajectory.
Vector3D reconstruct3D(const WireLine &wireLine, double distance=0.0) const
Gives the three dimensional point which is on the dirft circle away from the wire line.
Vector3D m_localOrigin
Memory for local coordinate origin of the circle representing the trajectory in global coordinates.
double getMaximalCylindricalR() const
Getter for the maximal distance from the origin.
double getLocalCovariance(EHelixParameter iRow, EHelixParameter iCol) const
Getter for an individual element of the covariance matrix of the local helix parameters.
bool fillInto(genfit::TrackCand &trackCand) const
Copies the trajectory information to the Genfit track candidate.
double getAbsMom3D() const
Get the estimation for the absolute value of the transvers momentum.
CovarianceMatrix< 6 > getCartesianCovariance(double bZ) const
Convert the helix parameters to the cartesian coordinates x,y,z,px,py,pz.
PerigeeCircle getGlobalCircle() const
Getter for the circle in global coordinates.
bool isInvalid() const
Checks if the trajectory is already set to a valid value.
CDCTrajectory3D reversed() const
Returns the reverse trajectory as a copy.
double getGlobalImpact() const
Getter for the signed impact parameter of the trajectory.
void reverse()
Reverses the trajectory in place.
double getFlightTime() const
Getter for the time when the particle reached the support point position.
CDCTrajectory2D getTrajectory2D() const
Getter for the two dimensional trajectory.
ESign getChargeSign() const
Gets the charge sign of the trajectory.
CDCTrajectory3D(const Helix &helix)
conversion constructor to make that one stupid test work
double getChi2() const
Getter for the chi2 value of the fit.
double getPValue() const
Getter for p-value.
double shiftPeriod(int nPeriods)
Adjusts the z0 to the one that lies n periods forward.
bool isCurler(double factor=1) const
Checks if the trajectory leaves the outer radius of the CDC times the given tolerance factor.
double getLocalVariance(EHelixParameter i) const
Getter for an individual diagonal element of the covariance matrix of the local helix parameters.
bool isFitted() const
Checks if the trajectory has already been set to a valid value.
double getMinimalCylindricalR() const
Getter for the minimal distance from the origin.
UncertainSZLine getLocalSZLine() const
Getter for the sz line starting from the local origin.
double getCurvatureXY() const
Getter for the curvature as seen from the xy projection.
CDCTrajectory3D()
Default constructor for ROOT compatibility.
Vector3D getFlightDirection3DAtSupport() const
Get the unit momentum at the start point of the trajectory.
CDCTrajectorySZ getTrajectorySZ() const
Getter for the sz trajectory.
const UncertainHelix & getLocalHelix() const
Getter for the helix in local coordinates.
Vector3D getGlobalPerigee() const
Getter for the closest approach on the trajectory to the global origin.
double getTanLambda() const
Getter for the slope of z over the transverse travel distance s.
Vector3D getMom3DAtSupport() const
Get the momentum at the start point of the trajectory.
double getArcLength2DPeriod() const
Getter for the arc length for one round trip around the trajectory.
void setNDF(std::size_t ndf)
Setter for the number of degrees of freedom of the helix fit.
UncertainHelix m_localHelix
Memory for the generalized circle describing the trajectory in coordinates from the local origin.
Vector2D getGlobalCenter() const
Getter for the center of the helix in global coordinates.
CDCTrajectory3D(const Vector3D &localOrigin, const UncertainHelix &localHelix, double flightTime=NAN)
Constructs a trajectory from a local helix taken as relative to the given origin.
double setLocalOrigin(const Vector3D &localOrigin)
Setter for the origin of the local coordinate system.
void clear()
Clears all information from this trajectoy.
void setFlightTime(double flightTime)
Setter for the time when the particle reached the support point position.
void setChi2(const double chi2)
Setter for the chi square value of the helix fit.
CDCTrajectory3D(const UncertainHelix &helix)
Constructs a trajectory from a helix with reference point equivalent to the origin.
size_t getNDF() const
Getter for the number of degrees of freedom of the helix fit.
void setLocalHelix(const UncertainHelix &localHelix)
Setter for the helix that describes the trajectory in local coordinates.
const Vector3D & getLocalOrigin() const
Getter for the origin of the local coordinate system.
double m_flightTime
Memory for the estimation of the time at which the particle arrived at the support point.
Vector3D getSupport() const
Getter for the support point of the trajectory in global coordinates, where arcLength2D = 0.
Linear trajectory in sz space.
Extension of the generalized circle also caching the perigee coordinates.
Vector3D tangential() const
Getter for the unit three dimensional tangential vector at the perigee point of the helix.
bool isInvalid() const
Indicates if the stored parameter combination designates a valid helix.
double distanceXY(const Vector2D &point) const
Calculates the distance of the line parallel to the z axes through the given point.
Vector3D closestXY(const Vector2D &pointXY) const
Calculates the point on the helix with the smallest perpendicular (xy) distance.
double tanLambda() const
Getter for the proportinality factor from arc length in xy space to z.
double curvatureXY() const
Getter for the signed curvature in the xy projection.
double arcLength2DPeriod() const
Getter for the arc length of one trip around the helix.
Vector3D perigee() const
Getter for the perigee point of the helix.
Vector2D centerXY() const
Getter for the central point of the helix.
const PerigeeCircle & circleXY() const
Getter for the projection into xy space.
Extension of the generalized circle also caching the perigee coordinates.
double arcLengthTo(const Vector2D &point) const
Calculates the arc length between the perigee and the given point.
A matrix implementation to be used as an interface typ through out the track finder.
A general helix class including a covariance matrix.
double variance(const EHelixParameter &i) const
Getter for individual diagonal elements of the covariance matrix.
void reverse()
Flips the orientation of the circle in place.
double covariance(const EHelixParameter &iRow, const EHelixParameter &iCol) const
Getter for individual elements of the covariance matrix.
void invalidate()
Sets all circle parameters to zero and the covariance matrix to something noninformative.
double chi2() const
Getter for the chi square value of the helix fit.
void setNDF(std::size_t ndf)
Setter for the number of degrees of freediom used in the helix fit.
void setChi2(const double chi2)
Setter for the chi square value of the helix fit.
std::size_t ndf() const
Getter for the number of degrees of freediom used in the helix fit.
Adds an uncertainty matrix to the circle in perigee parameterisation.
A line in sz where s is the transverse travel distance as seen in the xy projection with uncertaintie...
A two dimensional vector which is equipped with functions for correct handling of orientation relate...
A three dimensional vector.
const Vector2D & xy() const
Getter for the xy projected vector ( reference ! )
void set(const double first, const double second, const double third)
Setter for all three coordinates.
A three dimensional limited line represented by its closest approach to the z-axes (reference positio...
ESign
Enumeration for the distinct sign values of floating point variables.
EHelixParameter
Enumeration to address the individual helix parameters in a vector or matrix.
Abstract base class for different kinds of events.