MarlinTPC
1.2.0
|
A helper class to calculate the intersections of. More...
#include <IntersectionCalculator.h>
Classes | |
class | NoIntersectionException |
A nested exception which is thrown in case there is no intersection. More... | |
Static Public Member Functions | |
static std::pair< double, double > | circle_circle (double R, double centreX, double centreY, double r) |
Calculate the intersection of a circular pad row with a track circle. More... | |
static std::pair< std::pair < double, double >, std::pair < double, double > > | circle_straightLine_xy (double R, double inclination, double xAxisIntersect) |
Calculate the intersection of a circular pad row with a straight track parameterised in the direction parallel to the y axis (x = inclination*y + xAxisIntersect). More... | |
static std::pair< double, double > | circle_straightLine (double R, double x0, double y0, double trackPhi) |
Calculate the intersection of a circular pad row with a straight track. More... | |
static std::pair< double, double > | circle_straightLine_phi (double R, double inclination, double xAxisIntersect) |
Only kept for backwards compatibility. More... | |
static std::pair< double, double > | horizonalLine_circle (double Y, double centreX, double centreY, double r) |
Calculate the intersection of a straight line (pad row) with a circle. More... | |
static double | horizontalLine_straightLine (double Y, double inclination, double xAxisIntersect) |
Calculate the intersection of a straight line (pad row) with a straight track parameterised in the direction perpendicular to the pad rows (x = inclination*y + xAxisIntersect). More... | |
A helper class to calculate the intersections of.
The idea is to calculate the intersection of a pad row with a track (straight or helix). The first part of the function name is the type of pad row (circle or horizontal line), the second part the type of track (circle or straight line). The pad plane is descibed by one local coordinate (radius R
for circle and Y
for rectangular pad rows, which is a horizontal line). The pad rows are concentric around the origin of the local pad coordinate system, so no further parameter is needed. The track circle is described by centre (x,y) and a radius.
In case there is no intersection, an IntersectionCalculator::NoIntersectionException is thrown.
|
static |
Calculate the intersection of a circular pad row with a track circle.
R | The radius of the pad row. |
centreX | The x coordinate of the tracks helix centre. |
centreY | The y coordinate of the tracks helix centre. |
r | The radius of the track helix. |
Return value:
Referenced by marlintpc::ModuleDistortionCalculator::calculateDistanceRow(), marlintpc::TrackFitterSimpleChiSquarePads::calculateResiduals(), and marlintpc::GeometricMeanResidualsTupleProcessor::processEvent().
|
static |
Calculate the intersection of a circular pad row with a straight track.
Depending on the angle of the track either circle_straightLine_inx_phi or circle_straightLine_iny_phi is called.
R | The radius of the pad row. |
x0,y0 | A point on the track in local padplane coordinates |
phi | The angle of the track in local padplane coordinates |
Return value:
Referenced by marlintpc::ModuleDistortionCalculator::calculateDistanceRow(), and marlintpc::GeometricMeanResidualsTupleProcessor::processEvent().
|
static |
Only kept for backwards compatibility.
Use circle_straightLine instead! This function is now called circle_straightLine_inx_phi as a private member function accessable through circle_straightLine.
Referenced by marlintpc::TrackFitterSimpleChiSquarePads::calculateResiduals().
|
static |
Calculate the intersection of a circular pad row with a straight track parameterised in the direction parallel to the y axis (x = inclination*y + xAxisIntersect).
R | The radius of the pad row. |
inclination | Inclination of the track with respect to the y-axis |
xAxisIntersect | Intersection point of the track with the x-axis |
Return value:
|
static |
Calculate the intersection of a straight line (pad row) with a circle.
Y | The y coordinate the pad row. |
centreX | The x coordinate of the tracks helix centre. |
centreY | The y coordinate of the tracks helix centre. |
r | The radius of the track helix. |
Return value:
Referenced by marlintpc::ModuleDistortionCalculator::calculateDistanceRow(), and marlintpc::TrackFitterSimpleChiSquarePads::calculateResiduals().
|
static |
Calculate the intersection of a straight line (pad row) with a straight track parameterised in the direction perpendicular to the pad rows (x = inclination*y + xAxisIntersect).
Y | The y coordinate the pad row. |
inclination | Inclination of the track with respect to the y-axis |
xAxisIntersect | Intersection point of the track with the x-axis |
Return value:
Referenced by marlintpc::ModuleDistortionCalculator::calculateDistanceRow().