8#include <tracking/trackFindingCDC/eventdata/utils/FlightTimeEstimator.h>
10#include <tracking/trackFindingCDC/geometry/Vector3D.h>
12#include <tracking/trackFindingCDC/numerics/SpecialFunctions.h>
13#include <tracking/trackFindingCDC/numerics/Angle.h>
15#include <framework/gearbox/Const.h>
18using namespace TrackFindingCDC;
25 s_instance = std::move(replacement);
31 double getFirstPeriodAlphaFlightTime(
double absAlpha)
38 : m_firstPeriodAlphaFlightTimeFactor(getFirstPeriodAlphaFlightTime,
41 std::nextafter(M_PI, INFINITY))
46 double getHalfPeriodAlphaFlightTime(
double absAlpha)
48 if (absAlpha > M_PI / 2.0) {
58 : m_triggerPoint(triggerPoint)
59 , m_halfPeriodAlphaFlightTimeFactor(getHalfPeriodAlphaFlightTime,
62 std::nextafter(M_PI, INFINITY))
static const double speedOfLight
[cm/ns]
BeamEventFlightTimeEstimator()
Constructor also setting up the flight time lookup table.
CosmicRayFlightTimeEstimator(Vector3D triggerPoint=Vector3D(0, 0, 0))
Constructor also setting up the flight time lookup table.
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.
A three dimensional vector.
Abstract base class for different kinds of events.
static double reversed(const double angle)
Get the angle that point in the opposite direction.