 |
Belle II Software
release-05-02-19
|
15 #include <Math/Functor.h>
16 #include <Math/BrentMinimizer1D.h>
32 constexpr
static double c_cTimesB = (1.5 * 0.00299792458);
37 HelixHelper(
float z0,
float d0,
float omega,
float cotTheta,
float phi):
39 m_poca(d0 * sin(phi), -d0 * cos(phi), z0)
44 HelixHelper(
const TVector3& poca,
const TVector3& momentum_in_poca,
int charge):
47 const double pt = momentum_in_poca.Pt();
50 const TVector3& dirInPoca = momentum_in_poca.Unit();
53 m_phi = atan2(dirInPoca.y() , dirInPoca.x());
57 const double d0Sign = TMath::Sign(1., poca.x() * dirInPoca.x()
58 + poca.y() * dirInPoca.y());
61 m_d0 = d0Sign * poca.Perp();
78 ROOT::Math::BrentMinimizer1D bm;
99 ROOT::Math::BrentMinimizer1D bm;
105 return bm.XMinimum();
112 TVector3
momentum(
double s = 0)
const
static TVector3 minimize_distance_to_line_a
first user supplied line we're trying to find the nearest helix point to
float m_d0
minimal r distance of point of closest approach to origin
double pathLengthToLine(const TVector3 &a, const TVector3 &b) const
returns the path length (along the helix) to the helix point closest to the line going through points...
TVector3 momentum(double s=0) const
momentum of the particle, at the helix point corresponding to a flown path length s (from poca).
float m_z0
minimal z distance of point of closest approach to origin
HelixHelper(float z0, float d0, float omega, float cotTheta, float phi)
construct a helix with given helix parameters, as defined for Track objects
TVector3 position(double s) const
point on helix corresponding to a flown path length s (from poca)
Helper class representing a helical track.
float m_omega
signed curvature
static double distanceToPoint(double s)
minimization function, calculates distance to minimize_distance_to_point
float m_cotTheta
cotangens of polar angle
constexpr static double c_cTimesB
magnetic filed times speed of light
static TVector3 minimize_distance_to_point
user supplied point we're trying to find the nearest helix point to
static TVector3 minimize_distance_to_line_b
second user supplied line we're trying to find the nearest helix point to
Abstract base class for different kinds of events.
float m_phi
Phi at the perigee [-pi, pi].
static double distanceToLine(double s)
same as distanceToPoint, but ignoring z coordinate
static HelixHelper const * helix_object
keep a 'this' pointer around for minimization
TVector3 m_poca
point of closest approach to origin
double pathLengthToPoint(const TVector3 &p) const
returns the path length (along the helix) to the helix point closest to p.
constexpr static double c_maxFlightLength
maximal path length (from origin) considered for extrapolation