Project
Loading...
Searching...
No Matches
o2::track::CrossInfo Struct Reference

#include <HelixHelper.h>

Public Member Functions

 GPUd () int circlesCrossInfo(const TrackAuxPar &trax0
 
template<typename T >
 GPUd () CrossInfo(const TrackAuxPar &trax0
 
int circlesCrossInfo (const TrackAuxPar &trax0, const TrackAuxPar &trax1, float maxDistXY=MaxDistXYDef)
 
void notTouchingXY (float dist, float xDist, float yDist, const TrackAuxPar &trcA, float rBSign)
 
template<typename T >
int linesCrossInfo (const TrackAuxPar &trax0, const T &tr0, const TrackAuxPar &trax1, const T &tr1, float maxDistXY=MaxDistXYDef)
 
template<typename T >
int circleLineCrossInfo (const TrackAuxPar &trax0, const T &tr0, const TrackAuxPar &trax1, const T &tr1, float maxDistXY=MaxDistXYDef)
 
template<typename T >
int set (const TrackAuxPar &trax0, const T &tr0, const TrackAuxPar &trax1, const T &tr1, float maxDistXY=MaxDistXYDef)
 
 CrossInfo ()=default
 
template<typename T >
 CrossInfo (const TrackAuxPar &trax0, const T &tr0, const TrackAuxPar &trax1, const T &tr1, float maxDistXY=MaxDistXYDef)
 
 ClassDefNV (CrossInfo, 1)
 

Public Attributes

float xDCA [2] = {}
 
float yDCA [2] = {}
 
int nDCA = 0
 
const TrackAuxPartrax1
 
const TrackAuxPar float maxDistXY = MaxDistXYDef
 
const TrackAuxPar float bool isCollinear
 
const T & tr0
 
const T const TrackAuxPartrax1
 
const T const TrackAuxPar const T & tr1
 
const T const TrackAuxPar const T float maxDistXY = MaxDistXYDef
 
const T const TrackAuxPar const T float bool isCollinear
 

Static Public Attributes

static constexpr float MaxDistXYDef = 10.
 

Detailed Description

Definition at line 56 of file HelixHelper.h.

Constructor & Destructor Documentation

◆ CrossInfo() [1/2]

o2::track::CrossInfo::CrossInfo ( )
default

◆ CrossInfo() [2/2]

template<typename T >
o2::track::CrossInfo::CrossInfo ( const TrackAuxPar trax0,
const T &  tr0,
const TrackAuxPar trax1,
const T &  tr1,
float  maxDistXY = MaxDistXYDef 
)
inline

Definition at line 272 of file HelixHelper.h.

Member Function Documentation

◆ circleLineCrossInfo()

template<typename T >
int o2::track::CrossInfo::circleLineCrossInfo ( const TrackAuxPar trax0,
const T &  tr0,
const TrackAuxPar trax1,
const T &  tr1,
float  maxDistXY = MaxDistXYDef 
)
inline

closest approach of line and circle TrackParam propagation can be parameterized in lab in a form xLab(t) = (x*cosAlp - y*sinAlp) + t*(cosAlp - sinAlp* snp/csp) = xLab0 + t*(cosAlp - sinAlp* snp/csp) yLab(t) = (x*sinAlp + y*cosAlp) + t*(sinAlp + cosAlp* snp/csp) = yLab0 + t*(sinAlp + cosAlp* snp/csp) zLab(t) = z + t * tgl / csp = zLab0 + t * tgl / csp where t is the x-step in the track alpha-frame, xLab,yLab,zLab are reference track coordinates in lab frame (filled by TrackAuxPar for straight line tracks).

Therefore, for the parametric track equation in lab 3D we have (wrt tracking-X increment t) xL(t) = xL + t Kx; Kx = (cosAlp - sinAlp* snp/csp) yL(t) = yL + t Ky; Ky = (sinAlp + cosAlp* snp/csp) zL(t) = zL + t Kz; Kz = tgl / csp Note that Kx^2 + Ky^2 = 1 / csp^2

Definition at line 195 of file HelixHelper.h.

◆ circlesCrossInfo()

int o2::track::CrossInfo::circlesCrossInfo ( const TrackAuxPar trax0,
const TrackAuxPar trax1,
float  maxDistXY = MaxDistXYDef 
)
inline

Definition at line 62 of file HelixHelper.h.

◆ ClassDefNV()

o2::track::CrossInfo::ClassDefNV ( CrossInfo  ,
 
)

◆ GPUd() [1/2]

template<typename T >
o2::track::CrossInfo::GPUd ( ) const &

◆ GPUd() [2/2]

o2::track::CrossInfo::GPUd ( ) const &

◆ linesCrossInfo()

template<typename T >
int o2::track::CrossInfo::linesCrossInfo ( const TrackAuxPar trax0,
const T &  tr0,
const TrackAuxPar trax1,
const T &  tr1,
float  maxDistXY = MaxDistXYDef 
)
inline

closest approach of 2 straight lines TrackParam propagation can be parameterized in lab in a form xLab(t) = (x*cosAlp - y*sinAlp) + t*(cosAlp - sinAlp* snp/csp) = xLab0 + t*(cosAlp - sinAlp* snp/csp) yLab(t) = (x*sinAlp + y*cosAlp) + t*(sinAlp + cosAlp* snp/csp) = yLab0 + t*(sinAlp + cosAlp* snp/csp) zLab(t) = z + t * tgl / csp = zLab0 + t * tgl / csp where t is the x-step in the track alpha-frame, xLab,yLab,zLab are reference track coordinates in lab frame (filled by TrackAuxPar for straight line tracks).

Therefore, for the parametric track equation in lab 3D we have (wrt tracking-X increment t) xL(t) = xL + t Kx; Kx = (cosAlp - sinAlp* snp/csp) yL(t) = yL + t Ky; Ky = (sinAlp + cosAlp* snp/csp) zL(t) = zL + t Kz; Kz = tgl / csp Note that Kx^2 + Ky^2 + Kz^2 = (1+tgl^2) / csp^2

Minimize |vecL1 - vecL0|^2 wrt t0 and t1: point of closest approach Leads to system A Dx = B with Dx = {dx0, dx1} with A = | kx0^2+ky0^2+kz0^2 -(kx0*kx1+ky0*ky1+kz0*kz1) | = (1+tgl0^2) / csp0^2 .... | -(kx0*kx1+ky0*ky1+kz0*kz1) kx0^2+ky0^2+kz0^2 | ..... (1+tgl1^2) / csp1^2 and B = {(dx Kx0 + dy Ky0 + dz Kz0), -(dx Kx1 + dy Ky1 + dz Kz1) }

Definition at line 134 of file HelixHelper.h.

◆ notTouchingXY()

void o2::track::CrossInfo::notTouchingXY ( float  dist,
float  xDist,
float  yDist,
const TrackAuxPar trcA,
float  rBSign 
)
inline

Definition at line 119 of file HelixHelper.h.

◆ set()

template<typename T >
int o2::track::CrossInfo::set ( const TrackAuxPar trax0,
const T &  tr0,
const TrackAuxPar trax1,
const T &  tr1,
float  maxDistXY = MaxDistXYDef 
)
inline

Definition at line 254 of file HelixHelper.h.

Member Data Documentation

◆ isCollinear [1/2]

const TrackAuxPar float bool o2::track::CrossInfo::isCollinear

Definition at line 62 of file HelixHelper.h.

◆ isCollinear [2/2]

const T const TrackAuxPar const T float bool o2::track::CrossInfo::isCollinear
Initial value:
= false)
{
}
int set(const TrackAuxPar &trax0, const T &tr0, const TrackAuxPar &trax1, const T &tr1, float maxDistXY=MaxDistXYDef)
const TrackAuxPar & trax1
Definition HelixHelper.h:62
const TrackAuxPar float bool isCollinear
Definition HelixHelper.h:62
ClassDefNV(CrossInfo, 1)
const T const TrackAuxPar const T & tr1
const TrackAuxPar float maxDistXY
Definition HelixHelper.h:62

Definition at line 292 of file HelixHelper.h.

◆ maxDistXY [1/2]

const TrackAuxPar float o2::track::CrossInfo::maxDistXY = MaxDistXYDef

Definition at line 62 of file HelixHelper.h.

◆ maxDistXY [2/2]

const T const TrackAuxPar const T float o2::track::CrossInfo::maxDistXY = MaxDistXYDef

Definition at line 292 of file HelixHelper.h.

◆ MaxDistXYDef

static constexpr float o2::track::CrossInfo::MaxDistXYDef = 10.
staticconstexpr

Definition at line 57 of file HelixHelper.h.

◆ nDCA

int o2::track::CrossInfo::nDCA = 0

Definition at line 60 of file HelixHelper.h.

◆ tr0

const T& o2::track::CrossInfo::tr0

Definition at line 292 of file HelixHelper.h.

◆ tr1

const T const TrackAuxPar const T& o2::track::CrossInfo::tr1

Definition at line 292 of file HelixHelper.h.

◆ trax1 [1/2]

const TrackAuxPar& o2::track::CrossInfo::trax1

Definition at line 62 of file HelixHelper.h.

◆ trax1 [2/2]

const T const TrackAuxPar& o2::track::CrossInfo::trax1

Definition at line 292 of file HelixHelper.h.

◆ xDCA

float o2::track::CrossInfo::xDCA = {}

Definition at line 58 of file HelixHelper.h.

◆ yDCA

float o2::track::CrossInfo::yDCA = {}

Definition at line 59 of file HelixHelper.h.


The documentation for this struct was generated from the following files: