TrdMCClusterR Fit Classifier
Classes | Functions
Intersection3D Namespace Reference

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)
 

Function Documentation

◆ areLinesCloseEnough()

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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findIntersection2D()

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)

Here is the caller graph for this function:

◆ GetNIntersectingLinePairs()

int Intersection3D::GetNIntersectingLinePairs ( const std::vector< std::vector< Line::FitLine2D >> &  vvFittedTracks,
const bool &  debugMode = false 
)
Here is the call graph for this function:
Here is the caller graph for this function: