CbmRoot
lit::parallel Namespace Reference

Classes

class  CompareLitScalTrackChiSqOverNdfLess
 Comparator class used in STL algorithms for LitScalTrack class. More...
 
class  CompareLitScalTrackLastStationIdMore
 Comparator class used in STL algorithms for LitScalTrack class. More...
 
class  CompareLitScalTrackNofHitsMore
 Comparator class used in STL algorithms for LitScalTrack class. More...
 
class  DeleteObject
 Functor class for convenient memory release. More...
 
class  LitAbsorber
 Absorber in muon detector layout. More...
 
class  LitDetectorLayout
 Represents detector layout. More...
 
class  LitDetectorLayoutMuon
 Muon detector layout. More...
 
class  LitFieldGrid
 Class stores a grid of magnetic field values in XY slice at Z position. More...
 
class  LitFieldRegion
 Storage for field approximation along Z. More...
 
class  LitFieldSlice
 Approximated magnetic field slice in XY plane perpendicular to Z. More...
 
class  LitFieldValue
 Magnetic field value at a certain point in the space. More...
 
class  LitHitData
 Class for accessing hits in track reconstruction. More...
 
class  LitHitDataMuon
 
class  LitMaterialGrid
 Class stores a grid of material thickness in silicon equivalent. More...
 
class  LitPixelHit
 Base class for pixel hits. More...
 
class  LitScalPixelHit
 Base class for scalar pixel hits. More...
 
class  LitScalTrack
 Scalar track data class. More...
 
class  LitStation
 Detector station. More...
 
class  LitStationGroupMuon
 
class  LitStationMuon
 Station in muon detector layout. More...
 
class  LitSubstationMuon
 Substation in muon detector layout. More...
 
class  LitTrack
 Base track data class. More...
 
class  LitTrackFinderNN
 
class  LitTrackFinderNNVecElectron
 Parallel SIMDized implementation of TRD tracking. More...
 
class  LitTrackFinderNNVecMuon
 
class  LitTrackParam
 Track parameters data class. More...
 
class  LitVirtualStation
 Virtual detector station which stores information needed for track propagation. More...
 

Typedefs

typedef LitDetectorLayout< fvecLitDetectorLayoutVec
 Vector version of LitDetectorLayout. More...
 
typedef LitDetectorLayout< fscalLitDetectorLayoutScal
 Scalar version of LitDetectorLayout. More...
 
typedef LitFieldSlice< fscalLitFieldSliceScal
 Scalar version of LitFieldSlice. More...
 
typedef LitFieldSlice< fvecLitFieldSliceVec
 Vector version of LitFieldSlice. More...
 
typedef LitFieldValue< fscalLitFieldValueScal
 Scalar version of LitFieldValue. More...
 
typedef LitFieldValue< fvecLitFieldValueVec
 Vector version of LitFieldValue. More...
 
typedef LitPixelHit< fscalLitPixelHitScal
 Scalar version of LitPixelHit. More...
 
typedef LitPixelHit< fvecLitPixelHitVec
 Vector version of LitPixelHit. More...
 
typedef LitStation< fvecLitStationVec
 Vector version of LitStation. More...
 
typedef LitStation< fscalLitStationScal
 Scalar version of LitStation. More...
 
typedef LitTrack< fvecLitTrackVec
 Vector version of the LitTrack class. More...
 
typedef LitTrack< fscalLitTrackScal
 Scalar version of the LitTrack class. More...
 
typedef LitTrackParam< fvecLitTrackParamVec
 Vector version of LitTrackParam. More...
 
typedef LitTrackParam< fscalLitTrackParamScal
 Scalar version of LitTrackParam. More...
 
typedef LitVirtualStation< fvecLitVirtualStationVec
 Vector version of LitVirtualStation. More...
 
typedef LitVirtualStation< fscalLitVirtualStationScal
 Scalar version of LitVirtualStation. More...
 
typedef LitAbsorber< fvecLitAbsorberVec
 
typedef LitAbsorber< fscalLitAbsorberScal
 
typedef LitDetectorLayoutMuon< fvecLitDetectorLayoutMuonVec
 
typedef LitDetectorLayoutMuon< fscalLitDetectorLayoutMuonScal
 
typedef LitStationGroupMuon< fvecLitStationGroupMuonVec
 
typedef LitStationGroupMuon< fscalLitStationGroupMuonScal
 
typedef LitStationMuon< fvecLitStationMuonVec
 
typedef LitStationMuon< fscalLitStationMuonScal
 
typedef LitSubstationMuon< fvecLitSubstationMuonVec
 
typedef LitSubstationMuon< fscalLitSubstationMuonScal
 

Enumerations

enum  LitHitType { kLITSTRIPHIT = 0, kLITPIXELHIT = 1, kLITMIXHIT }
 Type of the hit and station. More...
 

Functions

template<class T >
void LitAddMaterial (LitTrackParam< T > &par, T siliconThickness)
 
template<class T >
void LitAddMaterialElectron (LitTrackParam< T > &par, T siliconThickness)
 
template<class T >
void LitLineExtrapolation (LitTrackParam< T > &par, T zOut)
 Line track extrapolation for the field free regions. More...
 
template<class T >
void LitRK4Extrapolation (LitTrackParam< T > &par, T zOut, const LitFieldGrid &field1, const LitFieldGrid &field2, const LitFieldGrid &field3)
 
template<class T >
void LitRK4Extrapolation (LitTrackParam< T > &par, T zOut, const LitFieldValue< T > &field1, const LitFieldValue< T > &field2, const LitFieldValue< T > &field3)
 Runge-Kutta track extrapolation in the magnetic field. More...
 
template<class T >
void LitRK4Extrapolation (LitTrackParam< T > &par, T zOut, const LitFieldRegion< T > &field)
 Runge-Kutta track extrapolation in the magnetic field. Interface with LitFieldRegion instead of LitFieldValue. More...
 
template<class T >
void LitFiltration (LitTrackParam< T > &par, const LitPixelHit< T > &hit, T &chiSq)
 Function implements Kalman filter update step for pixel hit. More...
 
template<class T >
void LitFiltration (LitTrackParam< T > &par, const LitStripHit< T > &hit, T &chiSq)
 Function implements Kalman filter update step for strip hit. More...
 
void LitFiltration (LitTrackParamScal &par, const LitScalPixelHit &hit, fscal &chiSq)
 
fscal rcp (const fscal &a)
 Returns reciprocal. More...
 
fscal sgn (const fscal &a)
 Returns sign of the input number. More...
 
unsigned short NDF (const LitScalTrack &track)
 Returns number of degrees of freedom for the track. More...
 
void LitTrackFitter (LitScalTrack &track, const LitDetectorLayoutScal &layout)
 Fast scalar track fit. More...
 
void DoSortNofHits (vector< LitScalTrack * > &tracks)
 
void DoSortLastStation (vector< LitScalTrack * > &tracks)
 
void DoSortChiSqOverNDF (vector< LitScalTrack * > &tracks)
 
void DoSelectSharedHits (vector< LitScalTrack * > &tracks)
 
template<class T >
std::string ToString (const T &value)
 Function converts object into a std::string. More...
 
void PackFieldValue (const LitFieldValue< fscal > value[], LitFieldValue< fvec > &lvalue)
 Packs LitFieldValue. More...
 
void PackTrackParam (const LitTrackParam< fscal > par[], LitTrackParam< fvec > &lpar)
 Packs LitTrackParam. More...
 
void UnpackTrackParam (const LitTrackParam< fvec > &lpar, LitTrackParam< fscal > par[])
 Unpacks LitTrackParam. More...
 
void UnpackTrackParam (unsigned int i, const LitTrackParam< fvec > &lpar, LitTrackParam< fscal > &par)
 Unpacks LitTrackParam. More...
 
void PackPixelHit (const LitScalPixelHit hit[], LitPixelHit< fvec > &lhit)
 Packs LitPixelHit. More...
 
void UnpackPixelHit (const LitPixelHit< fvec > &lhit, LitScalPixelHit hit[])
 Unpacks LitPixelHit. More...
 
void PackTrack (const LitTrack< fscal > *track[], LitTrack< fvec > &ltrack)
 Packs LitTrack. More...
 
void UnpackTrack (const LitTrack< fvec > &ltrack, LitTrack< fscal > track[])
 Unpacks LitTrack. More...
 
template<class T >
void LitTrackFitterMuon (LitTrack< T > &track, const LitDetectorLayoutMuon< T > &layout)
 

Variables

class lit::parallel::LitDetectorLayout _fvecalignment
 

Typedef Documentation

◆ LitAbsorberScal

Definition at line 142 of file LitAbsorber.h.

◆ LitAbsorberVec

Definition at line 141 of file LitAbsorber.h.

◆ LitDetectorLayoutMuonScal

◆ LitDetectorLayoutMuonVec

◆ LitDetectorLayoutScal

◆ LitDetectorLayoutVec

◆ LitFieldSliceScal

Scalar version of LitFieldSlice.

Definition at line 389 of file LitFieldSlice.h.

◆ LitFieldSliceVec

Vector version of LitFieldSlice.

Definition at line 395 of file LitFieldSlice.h.

◆ LitFieldValueScal

Scalar version of LitFieldValue.

Definition at line 64 of file LitFieldValue.h.

◆ LitFieldValueVec

Vector version of LitFieldValue.

Definition at line 70 of file LitFieldValue.h.

◆ LitPixelHitScal

Scalar version of LitPixelHit.

Definition at line 71 of file LitPixelHit.h.

◆ LitPixelHitVec

Vector version of LitPixelHit.

Definition at line 77 of file LitPixelHit.h.

◆ LitStationGroupMuonScal

◆ LitStationGroupMuonVec

◆ LitStationMuonScal

◆ LitStationMuonVec

◆ LitStationScal

Scalar version of LitStation.

Definition at line 108 of file LitStation.h.

◆ LitStationVec

Vector version of LitStation.

Definition at line 102 of file LitStation.h.

◆ LitSubstationMuonScal

◆ LitSubstationMuonVec

◆ LitTrackParamScal

Scalar version of LitTrackParam.

Definition at line 113 of file LitTrackParam.h.

◆ LitTrackParamVec

Vector version of LitTrackParam.

Definition at line 107 of file LitTrackParam.h.

◆ LitTrackScal

Scalar version of the LitTrack class.

Definition at line 91 of file LitTrack.h.

◆ LitTrackVec

Vector version of the LitTrack class.

Definition at line 85 of file LitTrack.h.

◆ LitVirtualStationScal

◆ LitVirtualStationVec

Enumeration Type Documentation

◆ LitHitType

Type of the hit and station.

Enumerator
kLITSTRIPHIT 

Strip like hit (u, phi).

kLITPIXELHIT 

Pixel like hit (x, y).

kLITMIXHIT 

Used for stations which produce both strip and pixel hits

Definition at line 21 of file LitEnums.h.

Function Documentation

◆ DoSelectSharedHits()

◆ DoSortChiSqOverNDF()

void lit::parallel::DoSortChiSqOverNDF ( vector< LitScalTrack * > &  tracks)

Definition at line 81 of file LitTrackSelection.h.

References tracks.

◆ DoSortLastStation()

void lit::parallel::DoSortLastStation ( vector< LitScalTrack * > &  tracks)

Definition at line 55 of file LitTrackSelection.h.

References lit::parallel::LitScalTrack::SetLastStationId(), and tracks.

◆ DoSortNofHits()

void lit::parallel::DoSortNofHits ( vector< LitScalTrack * > &  tracks)

Definition at line 30 of file LitTrackSelection.h.

References lit::parallel::LitScalTrack::SetNofHits(), and tracks.

Referenced by DoSelectSharedHits().

◆ LitAddMaterial()

◆ LitAddMaterialElectron()

◆ LitFiltration() [1/3]

template<class T >
template< class T > inline void lit::parallel::LitFiltration ( LitTrackParam< T > &  par,
const LitPixelHit< T > &  hit,
T &  chiSq 
)
inline

Function implements Kalman filter update step for pixel hit.

It updates track parameters and covariance matrix and calculates contribution to chi-square from this hit.

Parameters
[in,out]parReference to track parameters.
[in]hitReference to pixel hit.
[out]chiSqContribution to chi-square.

Definition at line 34 of file LitFiltration.h.

References lit::parallel::LitTrackParam< T >::C0, lit::parallel::LitTrackParam< T >::C1, lit::parallel::LitTrackParam< T >::C10, lit::parallel::LitTrackParam< T >::C11, lit::parallel::LitTrackParam< T >::C12, lit::parallel::LitTrackParam< T >::C13, lit::parallel::LitTrackParam< T >::C14, lit::parallel::LitTrackParam< T >::C2, lit::parallel::LitTrackParam< T >::C3, lit::parallel::LitTrackParam< T >::C4, lit::parallel::LitTrackParam< T >::C5, lit::parallel::LitTrackParam< T >::C6, lit::parallel::LitTrackParam< T >::C7, lit::parallel::LitTrackParam< T >::C8, lit::parallel::LitTrackParam< T >::C9, lit::parallel::LitPixelHit< T >::Dx, lit::parallel::LitPixelHit< T >::Dxy, lit::parallel::LitPixelHit< T >::Dy, NS_L1TrackFitter::ONE, lit::parallel::LitTrackParam< T >::Qp, lit::parallel::LitTrackParam< T >::Tx, lit::parallel::LitTrackParam< T >::Ty, lit::parallel::LitPixelHit< T >::X, lit::parallel::LitTrackParam< T >::X, lit::parallel::LitPixelHit< T >::Y, and lit::parallel::LitTrackParam< T >::Y.

Referenced by lit::parallel::LitTrackFinderNNVecElectron::AddNearestHit(), lit::parallel::LitTrackFinderNNVecMuon::AddNearestHit(), lit::parallel::LitTrackFinderNN::FollowTracks(), LitTrackFitter(), and LitTrackFitterMuon().

◆ LitFiltration() [2/3]

◆ LitFiltration() [3/3]

◆ LitLineExtrapolation()

◆ LitRK4Extrapolation() [1/3]

template<class T >
void lit::parallel::LitRK4Extrapolation ( LitTrackParam< T > &  par,
zOut,
const LitFieldGrid field1,
const LitFieldGrid field2,
const LitFieldGrid field3 
)
inline

◆ LitRK4Extrapolation() [2/3]

template<class T >
template< class T > inline void lit::parallel::LitRK4Extrapolation ( LitTrackParam< T > &  par,
zOut,
const LitFieldRegion< T > &  field 
)
inline

Runge-Kutta track extrapolation in the magnetic field. Interface with LitFieldRegion instead of LitFieldValue.

Parameters
[in,out]parReference to track parameters.
[in]zOutZ position to extrapolate to.
[in]fieldReference to field region.

Definition at line 694 of file LitExtrapolation.h.

References lit::parallel::LitFieldRegion< T >::GetFieldValue(), LitRK4Extrapolation(), and lit::parallel::LitTrackParam< T >::Z.

◆ LitRK4Extrapolation() [3/3]

template<class T >
template< class T > inline void lit::parallel::LitRK4Extrapolation ( LitTrackParam< T > &  par,
zOut,
const LitFieldValue< T > &  field1,
const LitFieldValue< T > &  field2,
const LitFieldValue< T > &  field3 
)
inline

Runge-Kutta track extrapolation in the magnetic field.

This function uses LitFieldValues instead of LitFieldGrid. This is not very accurate solution. Implemented temporary for tests.

Parameters
[in,out]parReference to track parameters.
[in]zOutZ position to extrapolate to.
[in]field1Field grid at starting point of extrapolation.
[in]field2Field grid in the middle point of extrapolation.
[in]field3Field grid at the end point of extrapolation.

Definition at line 382 of file LitExtrapolation.h.

References lit::parallel::LitFieldValue< T >::Bx, lit::parallel::LitFieldValue< T >::By, lit::parallel::LitFieldValue< T >::Bz, lit::parallel::LitTrackParam< T >::C0, lit::parallel::LitTrackParam< T >::C1, lit::parallel::LitTrackParam< T >::C10, lit::parallel::LitTrackParam< T >::C11, lit::parallel::LitTrackParam< T >::C12, lit::parallel::LitTrackParam< T >::C13, lit::parallel::LitTrackParam< T >::C14, lit::parallel::LitTrackParam< T >::C2, lit::parallel::LitTrackParam< T >::C3, lit::parallel::LitTrackParam< T >::C4, lit::parallel::LitTrackParam< T >::C5, lit::parallel::LitTrackParam< T >::C6, lit::parallel::LitTrackParam< T >::C7, lit::parallel::LitTrackParam< T >::C8, lit::parallel::LitTrackParam< T >::C9, NS_L1TrackFitter::ONE, lit::parallel::LitTrackParam< T >::Qp, rcp(), sqrt(), lit::parallel::LitTrackParam< T >::Tx, lit::parallel::LitTrackParam< T >::Ty, x, lit::parallel::LitTrackParam< T >::X, lit::parallel::LitTrackParam< T >::Y, lit::parallel::LitTrackParam< T >::Z, and NS_L1TrackFitter::ZERO.

◆ LitTrackFitter()

◆ LitTrackFitterMuon()

◆ NDF()

unsigned short lit::parallel::NDF ( const LitScalTrack track)
inline

Returns number of degrees of freedom for the track.

Note currently this function works only for pixel hits. TODO This has to be corrected later.

Parameters
[in]trackReference to track.
Returns
Number of degrees of freedom for track.

Definition at line 50 of file LitMath.h.

References lit::parallel::LitScalTrack::GetNofHits().

Referenced by lit::parallel::LitTrackFinderNNVecElectron::AddNearestHit(), lit::parallel::LitTrackFinderNNVecMuon::AddNearestHit(), ClassImp(), lit::parallel::LitTrackFinderNN::FollowTracks(), and lit::parallel::LitScalTrack::SetNDF().

◆ PackFieldValue()

void inline void lit::parallel::PackFieldValue ( const LitFieldValue< fscal value[],
LitFieldValue< fvec > &  lvalue 
)
inline

Packs LitFieldValue.

Parameters
[in]valueArray of fvecLen length of LitFieldValue<fscal> objects to be packed into a vector.
[out]lvaluePacked LitFieldValue.

Definition at line 27 of file LitVecPack.h.

References lit::parallel::LitFieldValue< T >::Bx, lit::parallel::LitFieldValue< T >::By, lit::parallel::LitFieldValue< T >::Bz, fvecLen, and i.

◆ PackPixelHit()

◆ PackTrack()

◆ PackTrackParam()

void lit::parallel::PackTrackParam ( const LitTrackParam< fscal par[],
LitTrackParam< fvec > &  lpar 
)
inline

◆ rcp()

fscal lit::parallel::rcp ( const fscal a)
inline

Returns reciprocal.

Parameters
[in]aInput number.
Returns
Reciprocal of a.

Definition at line 26 of file LitMath.h.

Referenced by LitAddMaterial(), LitAddMaterialElectron(), LitFiltration(), LitRK4Extrapolation(), and lit::parallel::LitFieldRegion< T >::Set().

◆ sgn()

fscal lit::parallel::sgn ( const fscal a)
inline

Returns sign of the input number.

If input number is negative return -1, if positive return 1 and if 0 return 0.

Parameters
[in]aInput number.
Returns
Sign of the input number.

Definition at line 38 of file LitMath.h.

Referenced by LitAddMaterial(), and LitAddMaterialElectron().

◆ ToString()

template<class T >
template< class T > std::string lit::parallel::ToString ( const T &  value)

Function converts object into a std::string.

Note that operator << has to be defined for the class/type in order to be able to convert to a string.

Parameters
[in,out]parReference to track parameters.
[in]matReference to material

Definition at line 31 of file LitUtils.h.

◆ UnpackPixelHit()

◆ UnpackTrack()

void lit::parallel::UnpackTrack ( const LitTrack< fvec > &  ltrack,
LitTrack< fscal track[] 
)
inline

Unpacks LitTrack.

NOTE: Currently not implemented!

Parameters
[in]lparPacked LitTrack to be unpacked.
[out]parArray of fvecLen length to store unpacked scalar objects.

Definition at line 265 of file LitVecPack.h.

◆ UnpackTrackParam() [1/2]

void lit::parallel::UnpackTrackParam ( const LitTrackParam< fvec > &  lpar,
LitTrackParam< fscal par[] 
)
inline

◆ UnpackTrackParam() [2/2]

Variable Documentation

◆ _fvecalignment

class lit::parallel::LitSubstationMuon lit::parallel::_fvecalignment