Project
Loading...
Searching...
No Matches
o2::recohelpers Namespace Reference

Classes

struct  PrimaryTrackGeometryBatchResult
 Legacy compact batch result containing only position azimuth and fractional sector coordinate. More...
 
struct  TrackParametersAtRadius
 Global track state evaluated at a requested cylindrical radius. More...
 
struct  TrackParametersAtRadiusBatchResult
 Structure-of-arrays result for batch cylindrical-radius propagation. More...
 

Enumerations

enum class  TrackParametersStatus : int32_t {
  OK = 0 , InvalidInput = 1 , UnreachableRadius = 2 , WrongDirection = 3 ,
  PropagationFailed = 4 , MomentumInvalid = 5
}
 Status returned by the cylindrical-radius track-parameter evaluators. More...
 

Functions

float statePhiPos (const TrackParametersAtRadius &state)
 Global azimuth of the propagated position, atan2(y,x), or NaN for an invalid state.
 
float statePhiMom (const TrackParametersAtRadius &state)
 Global azimuth of the propagated momentum, atan2(py,px), or NaN for an invalid state.
 
float stateTgl (const TrackParametersAtRadius &state)
 tan(lambda)=pz/pT of the propagated state, or NaN for an invalid state.
 
float dSector (float phi, int nSectors=18, float sectorPhaseRad=0.f)
 Fractional azimuthal position inside a periodic sector pattern.
 
float stateDSector (const TrackParametersAtRadius &state, int nSectors=18, float sectorPhaseRad=0.f)
 dSector() evaluated from the propagated global position azimuth.
 
o2::track::TrackPar makeTrackParFromPrimaryApproximation (float phi, float tgl, float qpt, float vx=0.f, float vy=0.f, float vz=0.f)
 Build an O2 TrackPar from a reduced primary-like state.
 
o2::track::TrackPar makePrimaryTrackPar (float phi, float tgl, float qpt, float vz=0.f)
 Backward-compatible reduced-primary constructor used by existing commissioning code.
 
bool extractGlobalState (const o2::track::TrackPar &track, o2::track::TrackPar::dim3_t &xyz, o2::track::TrackPar::dim3_t &pxyz)
 Extract finite global position and momentum from an O2 TrackPar.
 
bool directionMatches (o2::track::DirType dir, float drds)
 Check whether the radial derivative is compatible with the requested propagation direction.
 
TrackParametersAtRadius getParametersAtRadiusH (const o2::track::TrackPar &track, float radius, float bzKG, o2::track::DirType dir=o2::track::DirType::DirOutward)
 H transport: analytic helix intersection with a cylindrical radius in uniform Bz.
 
TrackParametersAtRadius getParametersAtRadiusK0 (const o2::track::TrackPar &track, float radius, float bzKG, o2::track::DirType dir=o2::track::DirType::DirOutward)
 K0 transport: O2 TrackPar propagation to a cylindrical radius in Bz, without material correction.
 
float phiAtRadius (const o2::track::TrackPar &track, float radius, float bzKG, o2::track::DirType dir=o2::track::DirType::DirOutward)
 Backward-compatible scalar wrapper returning only the propagated position azimuth using K0.
 
float dSectorAtRadius (const o2::track::TrackPar &track, float radius, float bzKG, int nSectors=18, o2::track::DirType dir=o2::track::DirType::DirOutward, float sectorPhaseRad=0.f)
 Backward-compatible scalar wrapper returning only the propagated fractional sector coordinate using K0.
 
float primaryPhiAtRadius (float phi, float tgl, float qpt, float radius, float bzKG, float vz=0.f)
 Position azimuth at radius for the reduced primary-like parameterization, evaluated with K0.
 
float primaryDSectorAtRadius (float phi, float tgl, float qpt, float radius, float bzKG, int nSectors=18, float vz=0.f, float sectorPhaseRad=0.f)
 Fractional sector coordinate at radius for the reduced primary-like parameterization, evaluated with K0.
 
template<typename Evaluator >
TrackParametersAtRadiusBatchResult primaryTrackParametersAtRadiusBatch (const float *phi, const float *tgl, const float *qpt, const float *vx, const float *vy, const float *vz, std::size_t n, float radius, float bzKG, int nSectors, float sectorPhaseRad, Evaluator &&evaluate)
 
TrackParametersAtRadiusBatchResult primaryTrackParametersAtRadiusHBatch (const float *phi, const float *tgl, const float *qpt, const float *vx, const float *vy, const float *vz, std::size_t n, float radius, float bzKG, int nSectors=18, float sectorPhaseRad=0.f)
 Batch H transport for reduced primary-like inputs.
 
TrackParametersAtRadiusBatchResult primaryTrackParametersAtRadiusK0Batch (const float *phi, const float *tgl, const float *qpt, const float *vx, const float *vy, const float *vz, std::size_t n, float radius, float bzKG, int nSectors=18, float sectorPhaseRad=0.f)
 Batch K0 transport for reduced primary-like inputs.
 
o2::track::TrackPar makeTrackParFromLocalParameters (float x, float alpha, float y, float z, float snp, float tgl, float qpt, int absCharge=1)
 Build an O2 TrackPar from the standard local O2 track parameterization.
 
template<typename Evaluator >
TrackParametersAtRadiusBatchResult localTrackParametersAtRadiusBatch (const float *x, const float *alpha, const float *y, const float *z, const float *snp, const float *tgl, const float *qpt, std::size_t n, float radius, float bzKG, int nSectors, float sectorPhaseRad, Evaluator &&evaluate)
 
TrackParametersAtRadiusBatchResult localTrackParametersAtRadiusHBatch (const float *x, const float *alpha, const float *y, const float *z, const float *snp, const float *tgl, const float *qpt, std::size_t n, float radius, float bzKG, int nSectors=18, float sectorPhaseRad=0.f)
 Batch H transport for tracks supplied in local O2 parameterization.
 
TrackParametersAtRadiusBatchResult localTrackParametersAtRadiusK0Batch (const float *x, const float *alpha, const float *y, const float *z, const float *snp, const float *tgl, const float *qpt, std::size_t n, float radius, float bzKG, int nSectors=18, float sectorPhaseRad=0.f)
 Batch K0 transport for tracks supplied in local O2 parameterization.
 
std::vector< float > primaryPhiAtRadiusBatch (const float *phi, const float *tgl, const float *qpt, const float *vz, std::size_t n, float radius, float bzKG)
 Backward-compatible batch wrappers retained for existing commissioning notebooks/tests.
 
std::vector< float > primaryDSectorAtRadiusBatch (const float *phi, const float *tgl, const float *qpt, const float *vz, std::size_t n, float radius, float bzKG, int nSectors=18, float sectorPhaseRad=0.f)
 
PrimaryTrackGeometryBatchResult primaryTrackGeometryAtRadiusBatch (const float *phi, const float *tgl, const float *qpt, const float *vz, std::size_t n, float radius, float bzKG, int nSectors=18, float sectorPhaseRad=0.f)
 

Enumeration Type Documentation

◆ TrackParametersStatus

enum class o2::recohelpers::TrackParametersStatus : int32_t
strong

Status returned by the cylindrical-radius track-parameter evaluators.

Enumerator
OK 
InvalidInput 
UnreachableRadius 
WrongDirection 
PropagationFailed 
MomentumInvalid 

Definition at line 90 of file TrackGeometry.h.

Function Documentation

◆ directionMatches()

bool o2::recohelpers::directionMatches ( o2::track::DirType  dir,
float  drds 
)
inline

Check whether the radial derivative is compatible with the requested propagation direction.

Definition at line 205 of file TrackGeometry.h.

◆ dSector()

float o2::recohelpers::dSector ( float  phi,
int  nSectors = 18,
float  sectorPhaseRad = 0.f 
)
inline

Fractional azimuthal position inside a periodic sector pattern.

Parameters
phiGlobal azimuth [rad].
nSectorsNumber of equal azimuthal sectors.
sectorPhaseRadAzimuth corresponding to fractional sector coordinate 0.
Returns
Fractional sector coordinate in [0,1), or NaN for invalid input.

This is a periodic coordinate, not a metric distance to the physical active-pad edge.

Definition at line 146 of file TrackGeometry.h.

◆ dSectorAtRadius()

float o2::recohelpers::dSectorAtRadius ( const o2::track::TrackPar &  track,
float  radius,
float  bzKG,
int  nSectors = 18,
o2::track::DirType  dir = o2::track::DirType::DirOutward,
float  sectorPhaseRad = 0.f 
)
inline

Backward-compatible scalar wrapper returning only the propagated fractional sector coordinate using K0.

Definition at line 451 of file TrackGeometry.h.

◆ extractGlobalState()

bool o2::recohelpers::extractGlobalState ( const o2::track::TrackPar &  track,
o2::track::TrackPar::dim3_t &  xyz,
o2::track::TrackPar::dim3_t &  pxyz 
)
inline

Extract finite global position and momentum from an O2 TrackPar.

Definition at line 188 of file TrackGeometry.h.

◆ getParametersAtRadiusH()

TrackParametersAtRadius o2::recohelpers::getParametersAtRadiusH ( const o2::track::TrackPar &  track,
float  radius,
float  bzKG,
o2::track::DirType  dir = o2::track::DirType::DirOutward 
)
inline

H transport: analytic helix intersection with a cylindrical radius in uniform Bz.

The implementation solves the transverse circle/circle intersection analytically, selects the first solution compatible with the requested direction, and transports z with the constant input tan(lambda). Double precision is used internally for the geometric construction, while the public state remains float.

Parameters
trackInput O2 track parameters.
radiusTarget cylindrical radius [cm].
bzKGUniform Bz field in O2 kG convention.
dirRequired radial propagation direction.
Returns
Global state and status at the requested radius.

Definition at line 229 of file TrackGeometry.h.

◆ getParametersAtRadiusK0()

TrackParametersAtRadius o2::recohelpers::getParametersAtRadiusK0 ( const o2::track::TrackPar &  track,
float  radius,
float  bzKG,
o2::track::DirType  dir = o2::track::DirType::DirOutward 
)
inline

K0 transport: O2 TrackPar propagation to a cylindrical radius in Bz, without material correction.

getXatLabR() locates the local-x target corresponding to the requested laboratory radius and propagateParamTo() performs the O2 parameter transport. A state is reported as OK only when its final global radius agrees with the requested cylinder within 2e-3 cm; an off-radius one-step result is PropagationFailed. This path is used as an independent O2 transport reference for the fast analytic H implementation.

Parameters
trackInput O2 track parameters.
radiusTarget cylindrical radius [cm].
bzKGBz field in O2 kG convention.
dirRequired radial propagation direction.
Returns
Global state and status at the requested radius.

Definition at line 397 of file TrackGeometry.h.

◆ localTrackParametersAtRadiusBatch()

template<typename Evaluator >
TrackParametersAtRadiusBatchResult o2::recohelpers::localTrackParametersAtRadiusBatch ( const float *  x,
const float *  alpha,
const float *  y,
const float *  z,
const float *  snp,
const float *  tgl,
const float *  qpt,
std::size_t  n,
float  radius,
float  bzKG,
int  nSectors,
float  sectorPhaseRad,
Evaluator &&  evaluate 
)
inline

Definition at line 574 of file TrackGeometry.h.

◆ localTrackParametersAtRadiusHBatch()

TrackParametersAtRadiusBatchResult o2::recohelpers::localTrackParametersAtRadiusHBatch ( const float *  x,
const float *  alpha,
const float *  y,
const float *  z,
const float *  snp,
const float *  tgl,
const float *  qpt,
std::size_t  n,
float  radius,
float  bzKG,
int  nSectors = 18,
float  sectorPhaseRad = 0.f 
)
inline

Batch H transport for tracks supplied in local O2 parameterization.

Definition at line 595 of file TrackGeometry.h.

◆ localTrackParametersAtRadiusK0Batch()

TrackParametersAtRadiusBatchResult o2::recohelpers::localTrackParametersAtRadiusK0Batch ( const float *  x,
const float *  alpha,
const float *  y,
const float *  z,
const float *  snp,
const float *  tgl,
const float *  qpt,
std::size_t  n,
float  radius,
float  bzKG,
int  nSectors = 18,
float  sectorPhaseRad = 0.f 
)
inline

Batch K0 transport for tracks supplied in local O2 parameterization.

Definition at line 608 of file TrackGeometry.h.

◆ makePrimaryTrackPar()

o2::track::TrackPar o2::recohelpers::makePrimaryTrackPar ( float  phi,
float  tgl,
float  qpt,
float  vz = 0.f 
)
inline

Backward-compatible reduced-primary constructor used by existing commissioning code.

Definition at line 182 of file TrackGeometry.h.

◆ makeTrackParFromLocalParameters()

o2::track::TrackPar o2::recohelpers::makeTrackParFromLocalParameters ( float  x,
float  alpha,
float  y,
float  z,
float  snp,
float  tgl,
float  qpt,
int  absCharge = 1 
)
inline

Build an O2 TrackPar from the standard local O2 track parameterization.

Definition at line 566 of file TrackGeometry.h.

◆ makeTrackParFromPrimaryApproximation()

o2::track::TrackPar o2::recohelpers::makeTrackParFromPrimaryApproximation ( float  phi,
float  tgl,
float  qpt,
float  vx = 0.f,
float  vy = 0.f,
float  vz = 0.f 
)
inline

Build an O2 TrackPar from a reduced primary-like state.

Parameters
phiMomentum azimuth at the supplied vertex [rad].
tgltan(lambda).
qptSigned q/pT [(GeV/c)^-1].
vx,vy,vzVertex coordinates [cm].

The transverse momentum magnitude is reconstructed as 1/|qpt| and the charge sign from qpt.

Definition at line 171 of file TrackGeometry.h.

◆ phiAtRadius()

float o2::recohelpers::phiAtRadius ( const o2::track::TrackPar &  track,
float  radius,
float  bzKG,
o2::track::DirType  dir = o2::track::DirType::DirOutward 
)
inline

Backward-compatible scalar wrapper returning only the propagated position azimuth using K0.

Definition at line 444 of file TrackGeometry.h.

◆ primaryDSectorAtRadius()

float o2::recohelpers::primaryDSectorAtRadius ( float  phi,
float  tgl,
float  qpt,
float  radius,
float  bzKG,
int  nSectors = 18,
float  vz = 0.f,
float  sectorPhaseRad = 0.f 
)
inline

Fractional sector coordinate at radius for the reduced primary-like parameterization, evaluated with K0.

Definition at line 467 of file TrackGeometry.h.

◆ primaryDSectorAtRadiusBatch()

std::vector< float > o2::recohelpers::primaryDSectorAtRadiusBatch ( const float *  phi,
const float *  tgl,
const float *  qpt,
const float *  vz,
std::size_t  n,
float  radius,
float  bzKG,
int  nSectors = 18,
float  sectorPhaseRad = 0.f 
)
inline

Definition at line 628 of file TrackGeometry.h.

◆ primaryPhiAtRadius()

float o2::recohelpers::primaryPhiAtRadius ( float  phi,
float  tgl,
float  qpt,
float  radius,
float  bzKG,
float  vz = 0.f 
)
inline

Position azimuth at radius for the reduced primary-like parameterization, evaluated with K0.

Definition at line 458 of file TrackGeometry.h.

◆ primaryPhiAtRadiusBatch()

std::vector< float > o2::recohelpers::primaryPhiAtRadiusBatch ( const float *  phi,
const float *  tgl,
const float *  qpt,
const float *  vz,
std::size_t  n,
float  radius,
float  bzKG 
)
inline

Backward-compatible batch wrappers retained for existing commissioning notebooks/tests.

Definition at line 621 of file TrackGeometry.h.

◆ primaryTrackGeometryAtRadiusBatch()

PrimaryTrackGeometryBatchResult o2::recohelpers::primaryTrackGeometryAtRadiusBatch ( const float *  phi,
const float *  tgl,
const float *  qpt,
const float *  vz,
std::size_t  n,
float  radius,
float  bzKG,
int  nSectors = 18,
float  sectorPhaseRad = 0.f 
)
inline

Definition at line 643 of file TrackGeometry.h.

◆ primaryTrackParametersAtRadiusBatch()

template<typename Evaluator >
TrackParametersAtRadiusBatchResult o2::recohelpers::primaryTrackParametersAtRadiusBatch ( const float *  phi,
const float *  tgl,
const float *  qpt,
const float *  vx,
const float *  vy,
const float *  vz,
std::size_t  n,
float  radius,
float  bzKG,
int  nSectors,
float  sectorPhaseRad,
Evaluator &&  evaluate 
)
inline

Definition at line 516 of file TrackGeometry.h.

◆ primaryTrackParametersAtRadiusHBatch()

TrackParametersAtRadiusBatchResult o2::recohelpers::primaryTrackParametersAtRadiusHBatch ( const float *  phi,
const float *  tgl,
const float *  qpt,
const float *  vx,
const float *  vy,
const float *  vz,
std::size_t  n,
float  radius,
float  bzKG,
int  nSectors = 18,
float  sectorPhaseRad = 0.f 
)
inline

Batch H transport for reduced primary-like inputs.

Definition at line 540 of file TrackGeometry.h.

◆ primaryTrackParametersAtRadiusK0Batch()

TrackParametersAtRadiusBatchResult o2::recohelpers::primaryTrackParametersAtRadiusK0Batch ( const float *  phi,
const float *  tgl,
const float *  qpt,
const float *  vx,
const float *  vy,
const float *  vz,
std::size_t  n,
float  radius,
float  bzKG,
int  nSectors = 18,
float  sectorPhaseRad = 0.f 
)
inline

Batch K0 transport for reduced primary-like inputs.

Definition at line 553 of file TrackGeometry.h.

◆ stateDSector()

float o2::recohelpers::stateDSector ( const TrackParametersAtRadius &  state,
int  nSectors = 18,
float  sectorPhaseRad = 0.f 
)
inline

dSector() evaluated from the propagated global position azimuth.

Definition at line 157 of file TrackGeometry.h.

◆ statePhiMom()

float o2::recohelpers::statePhiMom ( const TrackParametersAtRadius &  state)
inline

Global azimuth of the propagated momentum, atan2(py,px), or NaN for an invalid state.

Definition at line 122 of file TrackGeometry.h.

◆ statePhiPos()

float o2::recohelpers::statePhiPos ( const TrackParametersAtRadius &  state)
inline

Global azimuth of the propagated position, atan2(y,x), or NaN for an invalid state.

Definition at line 116 of file TrackGeometry.h.

◆ stateTgl()

float o2::recohelpers::stateTgl ( const TrackParametersAtRadius &  state)
inline

tan(lambda)=pz/pT of the propagated state, or NaN for an invalid state.

Definition at line 128 of file TrackGeometry.h.