TrdMCClusterR Fit Classifier
|
Classes | |
struct | IntersectionPoint3D |
struct | Intersection2DResult |
Functions | |
Intersection2DResult | findIntersection2D (const Line::FitLine2D &lineA, const Line::FitLine2D &lineB, const bool &debugMode=false) |
bool | areLinesCloseEnough (const std::vector< Line::FitLine2D > &linesA, const std::vector< Line::FitLine2D > &linesB, const bool &debugMode=false) |
int | GetNIntersectingLinePairs (const std::vector< std::vector< Line::FitLine2D >> &vvFittedTracks, const bool &debugMode=false) |
bool Intersection3D::areLinesCloseEnough | ( | const std::vector< Line::FitLine2D > & | linesA, |
const std::vector< Line::FitLine2D > & | linesB, | ||
const bool & | debugMode = false |
||
) |
when not all three 2D fit-pairs intersect: if this condition is not met, then the lines do not intersect in 3D
Finally, check for 3D intersection condition:
P_XZ = (x1, 0, z1) is the intersection on the XZ plane. P_YZ = ( 0, y2, z2) is the intersection on the YZ plane. P_XY = (x3, y3, 0) is the intersection on the XY plane.
To search for interactions just above the TRD
With this condition met, next check if the interaction vertex is somewhere inside the detector, perhaps above the TRD:
The smaller of a and b is still larger than the Z-threshold this is probably a detector interaction, so a background event
Intersection2DResult Intersection3D::findIntersection2D | ( | const Line::FitLine2D & | lineA, |
const Line::FitLine2D & | lineB, | ||
const bool & | debugMode = false |
||
) |
If the lines are parallel (or coincident, which is a subset of parallel in this context)
i.e both slopes almost equal
further, the difference in the y-intercepts is also large
this means that the lines are parallel, and well separated.
Compute the intersection point using the formula: x = (c2 - c1) / (m1 - m2)
int Intersection3D::GetNIntersectingLinePairs | ( | const std::vector< std::vector< Line::FitLine2D >> & | vvFittedTracks, |
const bool & | debugMode = false |
||
) |