8#include <tracking/trackFindingCDC/eventdata/utils/FlightTimeEstimator.h>
10#include <tracking/trackingUtilities/geometry/Vector3D.h>
12#include <tracking/trackingUtilities/numerics/SpecialFunctions.h>
13#include <tracking/trackingUtilities/numerics/Angle.h>
15#include <framework/gearbox/Const.h>
18using namespace TrackFindingCDC;
19using namespace TrackingUtilities;
26 s_instance = std::move(replacement);
32 double getFirstPeriodAlphaFlightTime(
double absAlpha)
42 std::nextafter(M_PI, INFINITY))
47 double getHalfPeriodAlphaFlightTime(
double absAlpha)
49 if (absAlpha > M_PI / 2.0) {
62 std::nextafter(M_PI, INFINITY))
static const double speedOfLight
[cm/ns]
TrackingUtilities::LookupTable< float > m_firstPeriodAlphaFlightTimeFactor
Lookup table for the sinc function.
BeamEventFlightTimeEstimator()
Constructor also setting up the flight time lookup table.
CosmicRayFlightTimeEstimator(TrackingUtilities::Vector3D triggerPoint=TrackingUtilities::Vector3D(0, 0, 0))
Constructor also setting up the flight time lookup table.
TrackingUtilities::Vector3D m_triggerPoint
Trigger point of the cosmic ray setup.
TrackingUtilities::LookupTable< float > m_halfPeriodAlphaFlightTimeFactor
Lookup table for the sinc function.
Helper struct to provide consistent flight time estimation throughout the CDC track finding.
static const FlightTimeEstimator & instance(std::unique_ptr< FlightTimeEstimator > replacement=nullptr)
Getter for the instance.
HepGeom::Vector3D< double > Vector3D
3D Vector
Abstract base class for different kinds of events.
static double reversed(const double angle)
Get the angle that point in the opposite direction.