MarlinKinfit
0.4.0
|
A helix, parametrized by (kappa, phi0, theta, dca, z0) More...
#include <JBLHelix.h>
Public Member Functions | |
JBLHelix (double kappa, double phi0, double theta, double dca, double z0) | |
Constructor from (kappa, phi0, theta, dca, z0) More... | |
JBLHelix (double par_[]) | |
Constructor from an array of values. More... | |
~JBLHelix () | |
Destructor. | |
double | getPar (int i) |
Get value of parameter i. More... | |
JBLHelix & | setPar (int i, double par_) |
Set value of parameter i. More... | |
int | getClosestApproach (const JBLHelix &h1, double &s0, double &s1, double &s02nd, double &s12nd) const |
Get arc lengths for point where another helix comes closest. More... | |
double | getClosestS (const TwoVector &p) const |
Return s of point on helix where helix comes closest in (x,y) to given point. More... | |
double | getClosestS (const ThreeVector &p) const |
Return s of point on helix where helix comes closest in (x,y) to given point. More... | |
void | getTrajectoryPointEx (double s, ThreeVector &p) const |
Get point along trajectory into existing 3-vector. | |
ThreeVector | getTrajectoryPoint (double s) const |
Get point along trajectory. | |
double | getTrajectoryZ (double s) const |
Get z value along trajectory. | |
void | getCenterPointEx (TwoVector &p) const |
Get center point of trajectory into existing 2-vector. | |
TwoVector | getCenterPoint () const |
Get center point of trajectory. | |
double | getNormalS (double s) const |
Get smallest s that corresponds to same (x, y) | |
A helix, parametrized by (kappa, phi0, theta, dca, z0)
The main purpose of an JBLHelix is that it can be "intersected" with another JBLHelix object, giving estimates for arc length values s1 and s2 of the two helices where the two helices intersect each other in r/phi and come closest in z
Parameters:
JBLHelix::JBLHelix | ( | double | kappa, |
double | phi0, | ||
double | theta, | ||
double | dca, | ||
double | z0 | ||
) |
Constructor from (kappa, phi0, theta, dca, z0)
kappa | kappa |
phi0 | phi0 |
theta | theta |
dca | dca |
z0 | z0 |
References setPar().
JBLHelix::JBLHelix | ( | double | par_[] | ) |
Constructor from an array of values.
par_ | Parameters (kappa, phi0, theta, dca, z0) |
References setPar().
int JBLHelix::getClosestApproach | ( | const JBLHelix & | h1, |
double & | s0, | ||
double & | s1, | ||
double & | s02nd, | ||
double & | s12nd | ||
) | const |
Get arc lengths for point where another helix comes closest.
This routine intersects the helices in the (x, y) plane, and then returns the arclengths corresponding to the best intersection point, where the helices come closest in z. If the helices don't intersect in (x, y), the point where they come closest in (x,y) is returned.
The return value indicates: 1: circles touch, just one intersection point 2: circles intersect, 2 intersection points 0: circles dont intersect, point is best approximation
h1 | The second helix |
s0 | This helix's arc length of the best point |
s1 | The 2nd helix's arc length of the best point |
s02nd | This helix's arc length of the 2nd best point |
s12nd | The 2nd helix's arc length of the2nd best point |
References getCenterPoint(), getClosestS(), getNormalS(), and getTrajectoryZ().
Referenced by VertexFitObject::estimatePosition().
double JBLHelix::getClosestS | ( | const TwoVector & | p | ) | const |
Return s of point on helix where helix comes closest in (x,y) to given point.
p | The point |
References getNormalS().
Referenced by getClosestApproach(), getClosestS(), and TrackParticleFitObject::setVertex().
double JBLHelix::getClosestS | ( | const ThreeVector & | p | ) | const |
Return s of point on helix where helix comes closest in (x,y) to given point.
p | The point |
References getClosestS().
double JBLHelix::getPar | ( | int | i | ) |
Get value of parameter i.
i | Parameter number i (i=0...4) |
JBLHelix & JBLHelix::setPar | ( | int | i, |
double | par_ | ||
) |
Set value of parameter i.
i | Parameter number i (i=0...4) |
par_ | New parameter value |
Referenced by JBLHelix().