8#include <tracking/trackFindingCDC/findlets/minimal/TrackFlightTimeAdjuster.h>
10#include <tracking/trackingUtilities/eventdata/tracks/CDCTrack.h>
12#include <tracking/trackFindingCDC/eventdata/utils/FlightTimeEstimator.h>
14#include <framework/geometry/VectorUtil.h>
16#include <Math/Vector2D.h>
17#include <Math/VectorUtil.h>
23using namespace TrackFindingCDC;
24using namespace TrackingUtilities;
28 return "Adjusts the flight time of tracks relative to the flight time zero location";
35 const ROOT::Math::XYVector pos2D = VectorUtil::getXYVector(startTrajectory3D.
getSupport());
37 const double alpha = ROOT::Math::VectorUtil::DeltaPhi(pos2D, dir2D);
38 const double beta = 1;
39 const double flightTime2D =
41 const double flightTime3D = flightTime2D * hypot2(1, startTrajectory3D.
getTanLambda());
43 track.setStartTrajectory3D(startTrajectory3D);
static const FlightTimeEstimator & instance(std::unique_ptr< FlightTimeEstimator > replacement=nullptr)
Getter for the instance.
virtual double getFlightTime2D(const ROOT::Math::XYVector &, double, double=1) const
Default estimator for the flight time.
void apply(std::vector< TrackingUtilities::CDCTrack > &tracks) final
Adjust the flight time of the given tracks.
std::string getDescription() final
Short description of the findlet.
Class representing a sequence of three dimensional reconstructed hits.
Particle full three dimensional trajectory.
double getTanLambda() const
Getter for the slope of z over the transverse travel distance s.
void setFlightTime(double flightTime)
Setter for the time when the particle reached the support point position.
ROOT::Math::XYZVector getFlightDirection3DAtSupport() const
Get the unit momentum at the start point of the trajectory.
ROOT::Math::XYZVector getSupport() const
Getter for the support point of the trajectory in global coordinates, where arcLength2D = 0.
Abstract base class for different kinds of events.