CbmRoot
L1Algo Class Reference

#include <L1Algo.h>

Collaboration diagram for L1Algo:
[legend]

Public Types

enum  { MaxNStations = 25 }
 
enum  {
  multiCoeff = 1, coeff = 64 / 4, Portion = 1024 / coeff, MaxPortionDoublets = 10000 / 5 * 64 / 2 / coeff * 1,
  MaxPortionTriplets = 10000 * 5 * 64 / 2 / coeff * 1, MaxNPortion = 40 * coeff / multiCoeff, MaxArrSize
}
 standard sizes of the arrays More...
 

Public Member Functions

 L1Algo (int nThreads=1, int TypicalSize=200000)
 
 L1Algo (const L1Algo &)=delete
 
L1Algo operator= (const L1Algo &)=delete
 
void Init (const vector< fscal > &geo, const bool UseHitErrors, const bool mCBMmode)
 
void SetData (const vector< L1StsHit > &StsHits_, const vector< L1Strip > &StsStrips_, const vector< L1Strip > &StsStripsB_, const vector< fscal > &StsZPos_, const vector< unsigned char > &SFlag_, const vector< unsigned char > &SFlagB_, const THitI *StsHitsStartIndex_, const THitI *StsHitsStopIndex_)
 
void PrintHits ()
 
void CATrackFinder ()
 The main procedure - find tracks. More...
 
void KFTrackFitter_simple ()
 Track fitting procedures. More...
 
void L1KFTrackFitter ()
 
void L1KFTrackFitterMuch ()
 
void SetNThreads (int n=1)
 --— Input data --— More...
 
const L1FieldValueGetVtxFieldValue () const
 
const L1FieldRegionGetVtxFieldRegion () const
 
void GetHitCoor (const L1StsHit &_h, fscal &_x, fscal &_y, fscal &_z, const L1Station &sta)
 --— Hit-point-strips conversion routines ---— More...
 
void dUdV_to_dY (const fvec &u, const fvec &v, fvec &_y, const L1Station &sta)
 
void dUdV_to_dX (const fvec &u, const fvec &v, fvec &_x, const L1Station &sta)
 
void dUdV_to_dXdY (const fvec &u, const fvec &v, fvec &_xy, const L1Station &sta)
 
void GetHitCoor (const L1StsHit &_h, fscal &_x, fscal &_y, char iS)
 
void StripsToCoor (const fscal &u, const fscal &v, fscal &x, fscal &y, const L1Station &sta) const
 
void StripsToCoor (const fscal &u, const fscal &v, fvec &x, fvec &y, const L1Station &sta) const
 convert strip positions to coordinates More...
 
void StripsToCoor (const fvec &u, const fvec &v, fvec &x, fvec &y, const L1Station &sta) const
 
L1HitPoint CreateHitPoint (const L1StsHit &hit, char ista)
 full the hit point by hit information: takes hit as input (2 strips) and creates hit_point with all coordinates (x,y,z,u,v, n - event number); More...
 
void CreateHitPoint (const L1StsHit &hit, char ista, L1HitPoint &point)
 hit and station number More...
 
int PackIndex (const int &a, const int &b, const int &c)
 
int UnPackIndex (const int &i, int &a, int &b, int &c)
 
 __attribute__ ((always_inline)) static unsigned char GetFStation(unsigned char flag)
 – Flags routines – More...
 
 __attribute__ ((always_inline)) static bool GetFUsed(unsigned char flag)
 

Public Attributes

L1Vector< L1TripletTripletsLocal1 [nSta][nTh]
 
L1Vector< L1BranchCandidatesTrack [nTh]
 
Tindex portionStopIndex [nSta]
 
L1Vector< Tindexn_g1
 
int SavedCand [nTh]
 
int SavedHits [nTh]
 
int numberCandidateThread [nTh]
 
int nTripletsThread [nSta][nTh]
 
L1Vector< unsigned short > FirstHit
 
L1Vector< unsigned short > LastHit
 
L1Vector< THitIFirstHitIndex
 
L1Vector< THitILastHitIndex
 
L1Vector< unsigned short > Neighbour
 
L1Vector< float > TrackChi2
 
L1Vector< THitIvRecoHitsNew
 
L1Vector< L1TrackvTracksNew
 
int NStations
 
int NMvdStations
 
int NStsStations
 
int NFStations
 
L1Station vStations[MaxNStations_fvecalignment
 
vector< L1MaterialfRadThick
 
const vector< L1Strip > * vStsStrips
 
const vector< L1Strip > * vStsStripsB
 
const vector< fscal > * vStsZPos
 
const vector< L1StsHit > * vStsHits
 
L1Grid vGrid [MaxNStations]
 
L1Grid vGridTime [MaxNStations]
 
const vector< unsigned char > * vSFlag
 
const vector< unsigned char > * vSFlagB
 
double CATime
 
L1Vector< L1TrackvTracks
 
L1Vector< THitIvRecoHits
 
const THitIStsHitsStartIndex
 
const THitIStsHitsStopIndex
 
unsigned int NHitsIsecAll
 
unsigned int NTracksIsecAll
 
vector< L1StsHitvStsDontUsedHits_A
 
vector< L1StsHitvStsDontUsedHits_B
 
vector< L1StsHitvStsDontUsedHits_Buf
 
vector< L1HitPointvStsDontUsedHitsxy_A
 
vector< L1HitPointvStsDontUsedHitsxy_buf
 
vector< L1HitPointvStsDontUsedHitsxy_B
 
L1Vector< L1TrackvTracks_local [nTh]
 
L1Vector< THitIvRecoHits_local [nTh]
 
vector< THitIRealIHit_v
 
vector< THitIRealIHit_v_buf
 
vector< THitIRealIHit_v_buf2
 
L1Vector< int > vStripToTrack
 
L1Vector< int > vStripToTrackB
 
int fNThreads
 
bool fUseHitErrors
 
bool fmCBMmode
 
bool fGlobal
 
fvec EventTime [nTh][nTh]
 
fvec Err [nTh][nTh]
 
int isec
 — data used during finding iterations More...
 
vector< L1StsHit > * vStsHitsUnused
 
vector< THitI > * RealIHitP
 
vector< THitI > * RealIHitPBuf
 
vector< L1HitPoint > * vStsHitPointsUnused
 
THitIRealIHit
 
THitI StsHitsUnusedStartIndex [MaxNStations+1]
 
THitI StsHitsUnusedStopIndex [MaxNStations+1]
 
THitI StsHitsUnusedStartIndexEnd [MaxNStations+1]
 
THitI StsHitsUnusedStopIndexEnd [MaxNStations+1]
 
vector< int > TripForHit [2]
 
nsL1::vector< L1TrackPar >::TSimd fT_3 [nTh]
 
vector< THitIfhitsl_3 [nTh]
 
vector< THitIfhitsm_3 [nTh]
 
vector< THitIfhitsr_3 [nTh]
 
nsL1::vector< fvec >::TSimd fu_front3 [nTh]
 
nsL1::vector< fvec >::TSimd fu_back3 [nTh]
 
nsL1::vector< fvec >::TSimd fz_pos3 [nTh]
 
nsL1::vector< fvec >::TSimd fTimeR [nTh]
 
nsL1::vector< fvec >::TSimd fTimeER [nTh]
 
nsL1::vector< fvec >::TSimd dx [nTh]
 
nsL1::vector< fvec >::TSimd dy [nTh]
 
nsL1::vector< fvec >::TSimd du [nTh]
 
nsL1::vector< fvec >::TSimd dv [nTh]
 

Static Public Attributes

static const int nTh = 1
 
static const int nSta = 25
 

Private Types

enum  {
  kFastPrimIter, kAllPrimIter, kAllPrimJumpIter, kAllSecIter,
  kAllPrimEIter, kAllSecEIter, kFastPrimJumpIter, kFastPrimIter2,
  kAllSecJumpIter
}
 
enum  { fNFindIterations = 4 }
 

Private Member Functions

void CAFindTrack (int ista, L1Branch &best_tr, unsigned char &best_L, fscal &best_chi2, const L1Triplet *curr_trip, L1Branch &curr_tr, unsigned char &curr_L, fscal &curr_chi2, unsigned char min_best_l, L1Branch *new_tr)
 ================================= FUNCTIONAL PART ================================= More...
 
void BranchFitterFast (const L1Branch &t, L1TrackPar &T, const bool dir, const fvec qp0=0., const bool initParams=true)
 
void BranchFitter (const L1Branch &t, L1TrackPar &T, const bool dir, const fvec qp0=0., const bool initParams=true)
 Fit track. more precise than FitterFast. More...
 
void FindMoreHits (L1Branch &t, L1TrackPar &T, const bool dir, const fvec qp0=0.0)
 
fscal BranchExtender (L1Branch &t)
 Try to extrapolate and find additional hits on other stations. More...
 
void InvertCholetsky (fvec a[15])
 --— Subroutines used by L1Algo::CAMergeClones() ---— More...
 
void MultiplySS (fvec const C[15], fvec const V[15], fvec K[5][5])
 
void MultiplyMS (fvec const C[5][5], fvec const V[15], fvec K[15])
 
void MultiplySR (fvec const C[15], fvec const r_in[5], fvec r_out[5])
 
void FilterTracks (fvec const r[5], fvec const C[15], fvec const m[5], fvec const V[15], fvec R[5], fvec W[15], fvec *chi2)
 
void CAMergeClones ()
 
 __attribute__ ((always_inline)) void PackLocation(unsigned int &location
 
 __attribute__ ((always_inline)) void UnPackStation(unsigned int &location
 
 __attribute__ ((always_inline)) void UnPackThread(unsigned int &location
 
 __attribute__ ((always_inline)) void UnPackTriplet(unsigned int &location
 
 __attribute__ ((always_inline)) void SetFStation(unsigned char &flag
 
 __attribute__ ((always_inline)) void SetFUsed(unsigned char &flag)
 
 __attribute__ ((always_inline)) void SetFUnUsed(unsigned char &flag)
 
void f10 (Tindex start_lh, Tindex n1_l, L1HitPoint *StsHits_l, fvec *u_front_l, fvec *u_back_l, fvec *zPos_l, THitI *hitsl, fvec *HitTime_l, fvec *HitTimeEr, fvec *Event_l, fvec *d_x, fvec *d_y, fvec *d_xy, fvec *d_u, fvec *d_v)
 Prepare the portion of left hits data. More...
 
void f11 (int istal, int istam, Tindex n1_V, fvec *u_front_l, fvec *u_back_l, fvec *zPos_l, fvec *HitTime_l, fvec *HitTimeEr, L1TrackPar *T_1, L1FieldRegion *fld_1, fvec *d_x, fvec *d_y, fvec *d_xy, fvec *d_u, fvec *d_v)
 Get the field approximation. Add the target to parameters estimation. Propagate to middle station. More...
 
void f20 (Tindex n1, L1Station &stam, L1HitPoint *vStsHits_m, L1TrackPar *T_1, THitI *hitsl_1, Tindex &n2, vector< THitI > &i1_2, vector< THitI > &hitsm_2, fvec *Event, vector< bool > &lmDuplets)
 Find the doublets. Reformat data in the portion of doublets. More...
 
void f30 (L1HitPoint *vStsHits_r, L1Station &stam, L1Station &star, int istam, int istar, L1HitPoint *vStsHits_m, L1TrackPar *T_1, L1FieldRegion *fld_1, THitI *hitsl_1, Tindex n2, vector< THitI > &hitsm_2, vector< THitI > &i1_2, const vector< bool > &mrDuplets, Tindex &n3, nsL1::vector< L1TrackPar >::TSimd &T_3, vector< THitI > &hitsl_3, vector< THitI > &hitsm_3, vector< THitI > &hitsr_3, nsL1::vector< fvec >::TSimd &u_front_3, nsL1::vector< fvec >::TSimd &u_back_3, nsL1::vector< fvec >::TSimd &z_Pos_3, nsL1::vector< fvec >::TSimd &du_, nsL1::vector< fvec >::TSimd &dv_, nsL1::vector< fvec >::TSimd &timeR, nsL1::vector< fvec >::TSimd &timeER)
 
void f31 (Tindex n3_V, L1Station &star, nsL1::vector< fvec >::TSimd &u_front_3, nsL1::vector< fvec >::TSimd &u_back_3, nsL1::vector< fvec >::TSimd &z_Pos_3, nsL1::vector< fvec >::TSimd &du_, nsL1::vector< fvec >::TSimd &dv_, nsL1::vector< fvec >::TSimd &timeR, nsL1::vector< fvec >::TSimd &timeER, nsL1::vector< L1TrackPar >::TSimd &T_3)
 Add the right hits to parameters estimation. More...
 
void f32 (Tindex n3, int istal, nsL1::vector< L1TrackPar >::TSimd &T_3, vector< THitI > &hitsl_3, vector< THitI > &hitsm_3, vector< THitI > &hitsr_3, int nIterations=0)
 Refit Triplets. More...
 
void f4 (Tindex n3, int istal, int istam, int istar, nsL1::vector< L1TrackPar >::TSimd &T_3, vector< THitI > &hitsl_3, vector< THitI > &hitsm_3, vector< THitI > &hitsr_3, Tindex &nstaltriplets, vector< THitI > *hitsn_3=0, vector< THitI > *hitsr_5=0)
 Select triplets. Save them into vTriplets. More...
 
void f5 (int *nlevel)
 Find neighbours of triplets. Calculate level of triplets. More...
 
void DupletsStaPort (int istal, int istam, Tindex ip, vector< Tindex > &n_g, Tindex *portionStopIndex_, L1TrackPar *T_1, L1FieldRegion *fld_1, THitI *hitsl_1, vector< bool > &lmDuplets, Tindex &n_2, vector< THitI > &i1_2, vector< THitI > &hitsm_2)
 Find doublets on station. More...
 
void TripletsStaPort (int istal, int istam, int istar, Tindex &nstaltriplets, L1TrackPar *T_1, L1FieldRegion *fld_1, THitI *hitsl_1, Tindex &n_2, vector< THitI > &i1_2, vector< THitI > &hitsm_2, const vector< bool > &mrDuplets)
 Find triplets on station. More...
 
void GuessVec (L1TrackPar &t, fvec *xV, fvec *yV, fvec *zV, fvec *Sy, fvec *wV, int NHits, fvec *zCur=0)
 ---— Subroutines used by L1Algo::KFTrackFitter() ---— More...
 
void GuessVec (L1TrackParFit &t, fvec *xV, fvec *yV, fvec *zV, fvec *Sy, fvec *wV, int NHits, fvec *zCur=0, fvec *timeV=0, fvec *w_time=0)
 
void FilterFirst (L1TrackPar &track, fvec &x, fvec &y, L1Station &st)
 
void FilterFirst (L1TrackParFit &track, fvec &x, fvec &y, fvec &t, L1Station &st)
 
void FilterFirst (L1TrackParFit &track, fvec &x, fvec &y, fvec &t, fvec &t_er, L1Station &st)
 
void FilterFirst (L1TrackParFit &track, fvec &x, fvec &y, fvec &t, fvec &t_er, L1Station &st, fvec &dx, fvec &dy, fvec &dxy)
 
void FilterFirstL (L1TrackParFit &track, fvec &x, fvec &y, fvec &t, fvec &t_er, L1Station &st, fvec &dx, fvec &dy, fvec &dxy)
 

Private Attributes

unsigned int & triplet
 
unsigned int unsigned int iStation
 
unsigned int unsigned int unsigned int & thread
 
unsigned int & iStation
 
unsigned int & thread
 
unsigned int iStation
 
Tindex FIRSTCASTATION
 ================================= DATA PART ================================= More...
 
map< int, int > threadNumberToCpuMap
 
float TRACK_CHI2_CUT
 
float TRIPLET_CHI2_CUT
 
float DOUBLET_CHI2_CUT
 
float TIME_CUT1
 
float TIME_CUT2
 
fvec MaxDZ
 
float Pick_gather
 parameters which are different for different iterations. Set in the begin of CAL1TrackFinder More...
 
float PickNeighbour
 
fvec MaxInvMom
 
fvec MaxSlope
 
fvec targX
 
fvec targY
 
fvec targZ
 
L1FieldValue targB _fvecalignment
 
L1XYMeasurementInfo TargetXYInfo _fvecalignment
 
L1FieldRegion vtxFieldRegion _fvecalignment
 
L1FieldValue vtxFieldValue _fvecalignment
 
int numPortions [12]
 
vector< L1Triplet * > * TripletsLocal [MaxNStations - 2]
 
int fTrackingLevel
 
int fGhostSuppression
 
float fMomentumCutOff
 

Friends

class CbmL1
 --— Output data --— More...
 

Detailed Description

Definition at line 79 of file L1Algo.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
MaxNStations 

Definition at line 331 of file L1Algo.h.

◆ anonymous enum

anonymous enum

standard sizes of the arrays

Enumerator
multiCoeff 
coeff 
Portion 
MaxPortionDoublets 
MaxPortionTriplets 
MaxNPortion 
MaxArrSize 

Definition at line 399 of file L1Algo.h.

◆ anonymous enum

anonymous enum
private
Enumerator
kFastPrimIter 
kAllPrimIter 
kAllPrimJumpIter 
kAllSecIter 
kAllPrimEIter 
kAllSecEIter 
kFastPrimJumpIter 
kFastPrimIter2 
kAllSecJumpIter 

Definition at line 870 of file L1Algo.h.

◆ anonymous enum

anonymous enum
private
Enumerator
fNFindIterations 

Definition at line 888 of file L1Algo.h.

Constructor & Destructor Documentation

◆ L1Algo() [1/2]

◆ L1Algo() [2/2]

L1Algo::L1Algo ( const L1Algo )
delete

Member Function Documentation

◆ __attribute__() [1/9]

L1Algo::__attribute__ ( (always_inline)  )
inline

Definition at line 501 of file L1Algo.h.

◆ __attribute__() [2/9]

L1Algo::__attribute__ ( (always_inline)  )
inline

– Flags routines –

Definition at line 497 of file L1Algo.h.

◆ __attribute__() [3/9]

L1Algo::__attribute__ ( (always_inline)  ) &
inlineprivate

◆ __attribute__() [4/9]

L1Algo::__attribute__ ( (always_inline)  ) &
inlineprivate

◆ __attribute__() [5/9]

L1Algo::__attribute__ ( (always_inline)  ) &
inlineprivate

Definition at line 603 of file L1Algo.h.

◆ __attribute__() [6/9]

L1Algo::__attribute__ ( (always_inline)  ) &
inlineprivate

Definition at line 599 of file L1Algo.h.

◆ __attribute__() [7/9]

L1Algo::__attribute__ ( (always_inline)  ) &
inlineprivate

◆ __attribute__() [8/9]

L1Algo::__attribute__ ( (always_inline)  ) &
inlineprivate

◆ __attribute__() [9/9]

L1Algo::__attribute__ ( (always_inline)  ) &
inlineprivate

References triplet.

◆ BranchExtender()

fscal L1Algo::BranchExtender ( L1Branch t)
private

Try to extrapolate and find additional hits on other stations.

Find additional hits for existing track return chi2

Definition at line 396 of file L1TrackExtender.cxx.

References BranchFitter(), BranchFitterFast(), L1TrackPar::chi2, FindMoreHits(), and L1TrackPar::qp.

Referenced by CATrackFinder().

◆ BranchFitter()

void L1Algo::BranchFitter ( const L1Branch t,
L1TrackPar T,
const bool  dir,
const fvec  qp0 = 0.,
const bool  initParams = true 
)
private

Fit track. more precise than FitterFast.

like BranchFitterFast but more precise

Definition at line 181 of file L1TrackExtender.cxx.

References BranchFitterFast(), i, and L1TrackPar::qp.

Referenced by BranchExtender().

◆ BranchFitterFast()

void L1Algo::BranchFitterFast ( const L1Branch t,
L1TrackPar T,
const bool  dir,
const fvec  qp0 = 0.,
const bool  initParams = true 
)
private

◆ CAFindTrack()

void L1Algo::CAFindTrack ( int  ista,
L1Branch best_tr,
unsigned char &  best_L,
fscal best_chi2,
const L1Triplet curr_trip,
L1Branch curr_tr,
unsigned char &  curr_L,
fscal curr_chi2,
unsigned char  min_best_l,
L1Branch new_tr 
)
inlineprivate

================================= FUNCTIONAL PART =================================

--— Subroutines used by L1Algo::CATrackFinder() ---—


  • The routine performs recursive search for tracks *
  • I. Kisel 06.03.05 * I.Kulakov 2012 *
  • recursive search for tracks input: @ista - station index, &best_tr - best track for the privious call, &best_L - output: &NCalls - number of function calls

Definition at line 2902 of file L1CATrackFinder.cxx.

References L1Triplet::Cqp, L1Triplet::Ctx, L1Triplet::Cty, f, fabs(), fGlobal, fmCBMmode, L1Triplet::GetFNeighbour(), L1Triplet::GetLevel(), L1Triplet::GetLHit(), L1Triplet::GetLSta(), L1Triplet::GetMHit(), L1Triplet::GetMSta(), L1Triplet::GetNNeighbours(), L1Triplet::GetQp(), L1Triplet::GetRHit(), L1Branch::NHits, PickNeighbour, L1Branch::StsHits, TRACK_CHI2_CUT, TripletsLocal1, L1Triplet::tx, L1Triplet::ty, vSFlag, vSFlagB, and vStsHitsUnused.

Referenced by CATrackFinder().

◆ CAMergeClones()

◆ CATrackFinder()

void L1Algo::CATrackFinder ( )

The main procedure - find tracks.

array of hits used on current iteration

buffer for copy

array of info for hits used on current iteration

isec - number of current iterations, fNFindIterations - number of all iterations

coefficient for size of region for attach new hits to the created track

Set correction in order to take into account overlaping and iff z. The reason is that low momentum tracks are too curved and goes not from target direction. That's why sort by hit_y/hit_z is not work idealy If sort by y then it is max diff between same station's modules (~0.4cm)

possible left hits of triplets are splited in portions of 16 (4 SIMDs) to use memory faster

stage for triplets creation

middle hits indexed by number of doublets in portion(i2)

index in portion of singlets(i1) indexed by index in portion of doublets(i2)

middle hits indexed by number of doublets in portion(i2)

index in portion of singlets(i1) indexed by index in portion of doublets(i2)

number of doublets in portion

==================================================================== = = = Collect track candidates. CREATE TRACKS =

= =

reqursive func to build a tree of possible track-candidates and choose the best

used strips are marked

used strips are marked

used strips are marked

Definition at line 1786 of file L1CATrackFinder.cxx.

References L1CATFIterTimerInfo::Add(), L1CATFTimerInfo::Add(), BranchExtender(), L1Grid::BuildBins(), CAFindTrack(), L1CATFTimerInfo::Calc(), CAMergeClones(), CandidatesTrack, L1Branch::CandIndex, CATime, L1Branch::chi2, L1Branch::compareCand(), CreateHitPoint(), DOUBLET_CHI2_CUT, DupletsStaPort(), fGhostSuppression, L1Station::fieldSlice, FIRSTCASTATION, fmCBMmode, fNFindIterations, fNThreads, L1Track::fTrackTime, fvecLen, L1Triplet::GetChi2(), L1FieldSlice::GetFieldValue(), L1Triplet::GetLevel(), L1Triplet::GetLHit(), L1Triplet::GetQpOrig(), L1CATFTimerInfo::GetTimerAll(), i, L1AlgoPulls::Init(), L1AlgoEfficiencyPerformance< NHits >::Init(), L1AlgoDraw::InitL1Draw(), isec, L1Branch::ista, kAllPrimEIter, kAllPrimIter, kAllPrimJumpIter, kAllSecEIter, kAllSecIter, kAllSecJumpIter, kFastPrimIter, kFastPrimIter2, kFastPrimJumpIter, L1_ASSERT, MaxDZ, MaxInvMom, MaxNStations, MaxSlope, n_g1, L1Track::NHits, L1Branch::NHits, NHitsIsecAll, NMvdStations, NStations, nTh, NTracksIsecAll, nTripletsThread, numberCandidateThread, Pick_gather, PickNeighbour, Portion, portionStopIndex, L1CATFIterTimerInfo::PrintReal(), L1CATFTimerInfo::PrintReal(), RealIHit_v, RealIHit_v_buf, RealIHitP, RealIHitPBuf, SavedCand, SavedHits, L1Branch::Set(), L1CATFTimerInfo::SetNIter(), sqrt(), L1Grid::StoreHits(), StripsToCoor(), L1Branch::StsHits, StsHitsStartIndex, StsHitsStopIndex, StsHitsUnusedStartIndex, StsHitsUnusedStopIndex, L1StsHit::t_reco, targX, targY, targZ, thread, TRIPLET_CHI2_CUT, TripletsLocal1, TripletsStaPort(), L1HitPoint::U(), L1Grid::UpdateIterGrid(), L1HitPoint::V(), vGridTime, vRecoHits, vRecoHits_local, vSFlag, vSFlagB, vStripToTrack, vStripToTrackB, vStsDontUsedHits_A, vStsDontUsedHits_B, vStsDontUsedHits_Buf, vStsDontUsedHitsxy_A, vStsDontUsedHitsxy_B, vStsHitPointsUnused, vStsHits, vStsHitsUnused, vStsStrips, vStsStripsB, vTracks, vTracks_local, and L1HitPoint::Z().

Referenced by CbmL1::Reconstruct().

◆ CreateHitPoint() [1/2]

L1HitPoint L1Algo::CreateHitPoint ( const L1StsHit hit,
char  ista 
)

full the hit point by hit information: takes hit as input (2 strips) and creates hit_point with all coordinates (x,y,z,u,v, n - event number);

hit and station number

Definition at line 318 of file L1Algo.cxx.

References L1StsHit::b, L1StsHit::du, L1StsHit::dv, L1StsHit::f, L1StsHit::iz, L1StsHit::t_er, L1StsHit::t_reco, and v.

Referenced by CATrackFinder().

◆ CreateHitPoint() [2/2]

void L1Algo::CreateHitPoint ( const L1StsHit hit,
char  ista,
L1HitPoint point 
)

hit and station number

Definition at line 329 of file L1Algo.cxx.

References L1StsHit::b, L1StsHit::du, L1StsHit::dv, L1StsHit::f, L1Strip::f, L1StsHit::iz, L1HitPoint::Set(), L1StsHit::t_er, L1StsHit::t_reco, and v.

◆ dUdV_to_dX()

void L1Algo::dUdV_to_dX ( const fvec u,
const fvec v,
fvec _x,
const L1Station sta 
)

Definition at line 287 of file L1Algo.cxx.

References L1UMeasurementInfo::cos_phi, L1UMeasurementInfo::sin_phi, sqrt(), v, and L1Station::xInfo.

Referenced by f11(), f20(), and f30().

◆ dUdV_to_dXdY()

void L1Algo::dUdV_to_dXdY ( const fvec u,
const fvec v,
fvec _xy,
const L1Station sta 
)

Definition at line 295 of file L1Algo.cxx.

References L1UMeasurementInfo::cos_phi, L1UMeasurementInfo::sin_phi, v, L1Station::xInfo, and L1Station::yInfo.

Referenced by f11().

◆ dUdV_to_dY()

void L1Algo::dUdV_to_dY ( const fvec u,
const fvec v,
fvec _y,
const L1Station sta 
)

Definition at line 279 of file L1Algo.cxx.

References L1UMeasurementInfo::cos_phi, L1UMeasurementInfo::sin_phi, sqrt(), v, and L1Station::yInfo.

Referenced by f11(), f20(), and f30().

◆ DupletsStaPort()

void L1Algo::DupletsStaPort ( int  istal,
int  istam,
Tindex  ip,
vector< Tindex > &  n_g,
Tindex portionStopIndex_,
L1TrackPar T_1,
L1FieldRegion fld_1,
THitI hitsl_1,
vector< bool > &  lmDuplets,
Tindex n_2,
vector< THitI > &  i1_2,
vector< THitI > &  hitsm_2 
)
inlineprivate

Find doublets on station.

----------------— doublets on station -------------------—

prepare the portion of left hits data

Get the field approximation. Add the target to parameters estimation. Propagaete to middle station.

Find the doublets. Reformat data in the portion of doublets.

Parameters
istalcreates duplets: input: @istal - start station number, @istam - last station number, @ip - index of portion, &n_g - number of elements in portion, @*portionStopIndex
T_1output:
fld_1@*T_1 - singlets perameters, @*fld_1 - field aproximation, @*hitsl_1- left hits of triplets, &lmDuplets - existance of a doublet starting from the left hit,
hitsl_1&n_2 - number of douplets,&i1_2 - index of 1st hit in portion indexed by doublet index, &hitsm_2 - index of middle hit in hits array indexed by doublet index

Definition at line 1445 of file L1CATrackFinder.cxx.

References f10(), f11(), f20(), fvecLen, i, L1_ASSERT, NStations, Portion, StsHitsUnusedStartIndex, and StsHitsUnusedStopIndex.

Referenced by CATrackFinder().

◆ f10()

void L1Algo::f10 ( Tindex  start_lh,
Tindex  n1_l,
L1HitPoint StsHits_l,
fvec u_front_l,
fvec u_back_l,
fvec zPos_l,
THitI hitsl,
fvec HitTime_l,
fvec HitTimeEr,
fvec Event_l,
fvec d_x,
fvec d_y,
fvec d_xy,
fvec d_u,
fvec d_v 
)
inlineprivate

Prepare the portion of left hits data.

Prepare the portion of data of left hits of a triplet: all hits except the last and the second last station will be procesesed in the algorythm, the data is orginesed in order to be used by SIMD

Definition at line 73 of file L1CATrackFinder.cxx.

References L1HitPoint::dU(), L1HitPoint::dV(), fUseHitErrors, fvecLen, L1HitPoint::time, L1HitPoint::timeEr, L1HitPoint::U(), L1HitPoint::V(), and L1HitPoint::Z().

Referenced by DupletsStaPort().

◆ f11()

void L1Algo::f11 ( int  istal,
int  istam,
Tindex  n1_V,
fvec u_front_l,
fvec u_back_l,
fvec zPos_l,
fvec HitTime_l,
fvec HitTimeEr,
L1TrackPar T_1,
L1FieldRegion fld_1,
fvec d_x,
fvec d_y,
fvec d_xy,
fvec d_u,
fvec d_v 
)
inlineprivate

Get the field approximation. Add the target to parameters estimation. Propagate to middle station.

Get the field approximation. Add the target to parameters estimation. Propagaete to the middle station of a triplet.

Parameters
istalinput 1st stage of singlet search
n1_Vindexes of left and middle stations of a triplet

Definition at line 124 of file L1CATrackFinder.cxx.

References _fvecalignment, L1Station::backInfo, L1TrackPar::C00, L1XYMeasurementInfo::C00, L1TrackPar::C10, L1XYMeasurementInfo::C10, L1TrackPar::C11, L1XYMeasurementInfo::C11, L1TrackPar::C20, L1TrackPar::C21, L1TrackPar::C22, L1TrackPar::C30, L1TrackPar::C31, L1TrackPar::C32, L1TrackPar::C33, L1TrackPar::C40, L1TrackPar::C41, L1TrackPar::C42, L1TrackPar::C43, L1TrackPar::C44, L1TrackPar::C50, L1TrackPar::C51, L1TrackPar::C52, L1TrackPar::C53, L1TrackPar::C54, L1TrackPar::C55, L1TrackPar::chi2, dUdV_to_dX(), dUdV_to_dXdY(), dUdV_to_dY(), f, fGlobal, L1Station::fieldSlice, FilterTime(), fmCBMmode, fRadThick, L1Station::frontInfo, fUseHitErrors, L1FieldSlice::GetFieldValue(), isec, kAllPrimEIter, kAllSecEIter, kAllSecIter, kAllSecJumpIter, L1AddMaterial(), L1AddPipeMaterial(), L1Extrapolate0(), L1ExtrapolateJXY0(), L1ExtrapolateLine(), L1ExtrapolateTime(), L1Filter(), L1FilterNoField(), L1FilterVtx(), L1FilterXY(), L1Station::materialInfo, MaxInvMom, MaxSlope, L1TrackPar::NDF, NFStations, NMvdStations, L1TrackPar::qp, L1FieldRegion::Set(), L1UMeasurementInfo::sigma2, StripsToCoor(), L1TrackPar::t, targX, targY, targZ, L1TrackPar::tx, L1TrackPar::ty, v, L1TrackPar::x, L1Station::XYInfo, L1TrackPar::y, L1TrackPar::z, and L1Station::z.

Referenced by DupletsStaPort().

◆ f20()

◆ f30()

void L1Algo::f30 ( L1HitPoint vStsHits_r,
L1Station stam,
L1Station star,
int  istam,
int  istar,
L1HitPoint vStsHits_m,
L1TrackPar T_1,
L1FieldRegion fld_1,
THitI hitsl_1,
Tindex  n2,
vector< THitI > &  hitsm_2,
vector< THitI > &  i1_2,
const vector< bool > &  mrDuplets,
Tindex n3,
nsL1::vector< L1TrackPar >::TSimd &  T_3,
vector< THitI > &  hitsl_3,
vector< THitI > &  hitsm_3,
vector< THitI > &  hitsr_3,
nsL1::vector< fvec >::TSimd &  u_front_3,
nsL1::vector< fvec >::TSimd &  u_back_3,
nsL1::vector< fvec >::TSimd &  z_Pos_3,
nsL1::vector< fvec >::TSimd &  dv_,
nsL1::vector< fvec >::TSimd &  du_,
nsL1::vector< fvec >::TSimd &  timeR,
nsL1::vector< fvec >::TSimd &  timeER 
)
inlineprivate

◆ f31()

void L1Algo::f31 ( Tindex  n3_V,
L1Station star,
nsL1::vector< fvec >::TSimd &  u_front_3,
nsL1::vector< fvec >::TSimd &  u_back_3,
nsL1::vector< fvec >::TSimd &  z_Pos_3,
nsL1::vector< fvec >::TSimd &  du_,
nsL1::vector< fvec >::TSimd &  dv_,
nsL1::vector< fvec >::TSimd &  timeR,
nsL1::vector< fvec >::TSimd &  timeER,
nsL1::vector< L1TrackPar >::TSimd &  T_3 
)
inlineprivate

◆ f32()

◆ f4()

void L1Algo::f4 ( Tindex  n3,
int  istal,
int  istam,
int  istar,
nsL1::vector< L1TrackPar >::TSimd &  T_3,
vector< THitI > &  hitsl_3,
vector< THitI > &  hitsm_3,
vector< THitI > &  hitsr_3,
Tindex nstaltriplets,
vector< THitI > *  hitsn_3 = 0,
vector< THitI > *  hitsr_5 = 0 
)
inlineprivate

◆ f5()

◆ FilterFirst() [1/4]

◆ FilterFirst() [2/4]

◆ FilterFirst() [3/4]

◆ FilterFirst() [4/4]

◆ FilterFirstL()

◆ FilterTracks()

void L1Algo::FilterTracks ( fvec const  r[5],
fvec const  C[15],
fvec const  m[5],
fvec const  V[15],
fvec  R[5],
fvec  W[15],
fvec chi2 
)
private

Definition at line 206 of file L1CAMergeClones.cxx.

References i, InvertCholetsky(), m, MultiplyMS(), MultiplySR(), and MultiplySS().

Referenced by CAMergeClones().

◆ FindMoreHits()

void L1Algo::FindMoreHits ( L1Branch t,
L1TrackPar T,
const bool  dir,
const fvec  qp0 = 0.0 
)
private

◆ GetHitCoor() [1/2]

void L1Algo::GetHitCoor ( const L1StsHit _h,
fscal _x,
fscal _y,
char  iS 
)

◆ GetHitCoor() [2/2]

void L1Algo::GetHitCoor ( const L1StsHit _h,
fscal _x,
fscal _y,
fscal _z,
const L1Station sta 
)

--— Hit-point-strips conversion routines ---—

Definition at line 235 of file L1Algo.cxx.

References L1StsHit::b, L1StsHit::f, L1StsHit::iz, StripsToCoor(), v, x, and y.

Referenced by L1AlgoDraw::DrawInputHits(), L1AlgoDraw::DrawRestHits(), FindMoreHits(), L1AlgoDraw::GetHitCoor(), L1Grid::StoreHits(), and L1Grid::UpdateIterGrid().

◆ GetVtxFieldRegion()

const L1FieldRegion& L1Algo::GetVtxFieldRegion ( ) const
inline

Definition at line 454 of file L1Algo.h.

◆ GetVtxFieldValue()

const L1FieldValue& L1Algo::GetVtxFieldValue ( ) const
inline

◆ GuessVec() [1/2]

void L1Algo::GuessVec ( L1TrackPar t,
fvec xV,
fvec yV,
fvec zV,
fvec Sy,
fvec wV,
int  NHits,
fvec zCur = 0 
)
private

---— Subroutines used by L1Algo::KFTrackFitter() ---—

Definition at line 1447 of file L1TrackFitter.cxx.

References NS_L1TrackFitter::c_light_i, i, L1TrackPar::qp, rcp(), rsqrt(), L1TrackPar::tx, L1TrackPar::ty, L1TrackPar::x, x, L1TrackPar::y, y, L1TrackPar::z, and NS_L1TrackFitter::ZERO.

◆ GuessVec() [2/2]

void L1Algo::GuessVec ( L1TrackParFit t,
fvec xV,
fvec yV,
fvec zV,
fvec Sy,
fvec wV,
int  NHits,
fvec zCur = 0,
fvec timeV = 0,
fvec w_time = 0 
)
private

◆ Init()

◆ InvertCholetsky()

void L1Algo::InvertCholetsky ( fvec  a[15])
private

--— Subroutines used by L1Algo::CAMergeClones() ---—

Definition at line 26 of file L1CAMergeClones.cxx.

References d, f, fabs(), i, and sqrt().

Referenced by FilterTracks().

◆ KFTrackFitter_simple()

◆ L1KFTrackFitter()

void L1Algo::L1KFTrackFitter ( )

Definition at line 335 of file L1TrackFitter.cxx.

References _fvecalignment, L1StsHit::b, L1Station::backInfo, L1XYMeasurementInfo::C00, L1TrackParFit::C00, L1XYMeasurementInfo::C10, L1TrackParFit::C10, L1XYMeasurementInfo::C11, L1TrackParFit::C11, L1TrackParFit::C20, L1TrackParFit::C21, L1TrackParFit::C22, L1TrackParFit::C30, L1TrackParFit::C31, L1TrackParFit::C32, L1TrackParFit::C33, L1TrackParFit::C40, L1TrackParFit::C41, L1TrackParFit::C42, L1TrackParFit::C43, L1TrackParFit::C44, L1TrackParFit::C50, L1TrackParFit::C51, L1TrackParFit::C52, L1TrackParFit::C53, L1TrackParFit::C54, L1TrackParFit::C55, L1Track::CFirst, L1TrackParFit::chi2, L1Track::chi2, L1Track::CLast, L1FieldValue::Combine(), L1Track::Cpv, L1FieldSlice::cy, L1StsHit::du, L1StsHit::dv, L1TrackParFit::EnergyLossCorrection(), EnergyLossCorrection(), L1TrackParFit::Extrapolate(), L1StsHit::f, f, L1Station::fieldSlice, L1TrackParFit::Filter(), L1TrackParFit::fqp, L1Station::frontInfo, L1TrackParFit::ft, L1TrackParFit::ftx, L1TrackParFit::fty, fvecLen, L1TrackParFit::fx, L1TrackParFit::fy, L1TrackParFit::fz, L1FieldSlice::GetFieldValue(), i, L1StsHit::iz, L1TrackParFit::L1AddMaterial(), L1AddMaterial(), L1TrackParFit::L1AddPipeMaterial(), L1AddPipeMaterial(), L1Extrapolate(), L1Filter(), MaxNStations, L1TrackParFit::NDF, L1Track::NDF, L1Track::NHits, NStations, NS_L1TrackFitter::ONE, PipeRadThick, L1TrackPar::qp, L1UMeasurementInfo::sigma2, L1StsHit::t_er, L1StsHit::t_reco, L1Track::TFirst, L1Track::TLast, L1Track::Tpv, L1TrackPar::tx, L1TrackPar::ty, v, L1TrackPar::x, L1FieldValue::x, x, L1Station::XYInfo, L1TrackPar::y, L1FieldValue::y, y, L1FieldValue::z, L1Station::z, and NS_L1TrackFitter::ZERO.

Referenced by CAMergeClones(), and CbmL1::Reconstruct().

◆ L1KFTrackFitterMuch()

void L1Algo::L1KFTrackFitterMuch ( )

Definition at line 775 of file L1TrackFitter.cxx.

References _fvecalignment, L1StsHit::b, L1Station::backInfo, L1XYMeasurementInfo::C00, L1TrackParFit::C00, L1XYMeasurementInfo::C10, L1TrackParFit::C10, L1XYMeasurementInfo::C11, L1TrackParFit::C11, L1TrackParFit::C20, L1TrackParFit::C21, L1TrackParFit::C22, L1TrackParFit::C30, L1TrackParFit::C31, L1TrackParFit::C32, L1TrackParFit::C33, L1TrackParFit::C40, L1TrackParFit::C41, L1TrackParFit::C42, L1TrackParFit::C43, L1TrackParFit::C44, L1TrackParFit::C50, L1TrackParFit::C51, L1TrackParFit::C52, L1TrackParFit::C53, L1TrackParFit::C54, L1TrackParFit::C55, L1Track::CFirst, L1TrackParFit::chi2, L1Track::chi2, L1Track::CLast, L1FieldValue::Combine(), L1Track::Cpv, L1FieldSlice::cy, L1StsHit::du, L1StsHit::dv, L1TrackParFit::EnergyLossCorrection(), EnergyLossCorrection(), L1TrackParFit::EnergyLossCorrectionAl(), L1TrackParFit::EnergyLossCorrectionCarbon(), L1TrackParFit::EnergyLossCorrectionIron(), L1TrackParFit::Extrapolate(), L1TrackParFit::ExtrapolateLine(), L1StsHit::f, f, fabs(), L1Station::fieldSlice, L1TrackParFit::Filter(), L1TrackParFit::fqp, L1Station::frontInfo, L1TrackParFit::ft, L1TrackParFit::ftx, L1TrackParFit::fty, fvecLen, L1TrackParFit::fx, L1TrackParFit::fy, L1TrackParFit::fz, L1FieldSlice::GetFieldValue(), i, L1StsHit::iz, L1AddMaterial(), L1TrackParFit::L1AddPipeMaterial(), L1AddPipeMaterial(), L1TrackParFit::L1AddThickMaterial(), L1Extrapolate(), L1ExtrapolateLine(), L1Filter(), L1Station::materialInfo, MaxNStations, L1TrackParFit::NDF, L1Track::NDF, L1Track::NHits, NStations, NS_L1TrackFitter::ONE, PipeRadThick, L1TrackPar::qp, L1UMeasurementInfo::sigma2, L1StsHit::t_er, L1StsHit::t_reco, L1Track::TFirst, L1MaterialInfo::thick, L1Track::TLast, L1Track::Tpv, L1TrackPar::tx, L1TrackPar::ty, v, L1TrackPar::x, L1FieldValue::x, x, L1Station::XYInfo, L1TrackPar::y, L1FieldValue::y, y, L1FieldValue::z, L1Station::z, and NS_L1TrackFitter::ZERO.

Referenced by CbmL1::Reconstruct().

◆ MultiplyMS()

void L1Algo::MultiplyMS ( fvec const  C[5][5],
fvec const  V[15],
fvec  K[15] 
)
private

Definition at line 156 of file L1CAMergeClones.cxx.

Referenced by FilterTracks().

◆ MultiplySR()

void L1Algo::MultiplySR ( fvec const  C[15],
fvec const  r_in[5],
fvec  r_out[5] 
)
private

Definition at line 193 of file L1CAMergeClones.cxx.

Referenced by FilterTracks().

◆ MultiplySS()

void L1Algo::MultiplySS ( fvec const  C[15],
fvec const  V[15],
fvec  K[5][5] 
)
private

Definition at line 99 of file L1CAMergeClones.cxx.

Referenced by FilterTracks().

◆ operator=()

L1Algo L1Algo::operator= ( const L1Algo )
delete

◆ PackIndex()

int L1Algo::PackIndex ( const int &  a,
const int &  b,
const int &  c 
)
inline

◆ PrintHits()

void L1Algo::PrintHits ( )

◆ SetData()

void L1Algo::SetData ( const vector< L1StsHit > &  StsHits_,
const vector< L1Strip > &  StsStrips_,
const vector< L1Strip > &  StsStripsB_,
const vector< fscal > &  StsZPos_,
const vector< unsigned char > &  SFlag_,
const vector< unsigned char > &  SFlagB_,
const THitI StsHitsStartIndex_,
const THitI StsHitsStopIndex_ 
)

◆ SetNThreads()

void L1Algo::SetNThreads ( int  n = 1)
inline

--— Input data --—

Definition at line 329 of file L1Algo.h.

References fNThreads.

◆ StripsToCoor() [1/3]

void L1Algo::StripsToCoor ( const fscal u,
const fscal v,
fscal x,
fscal y,
const L1Station sta 
) const

Definition at line 249 of file L1Algo.cxx.

References v.

Referenced by BranchFitterFast(), CATrackFinder(), f11(), f20(), f30(), f32(), FindMoreHits(), and GetHitCoor().

◆ StripsToCoor() [2/3]

void L1Algo::StripsToCoor ( const fscal u,
const fscal v,
fvec x,
fvec y,
const L1Station sta 
) const

convert strip positions to coordinates

Definition at line 264 of file L1Algo.cxx.

References v.

◆ StripsToCoor() [3/3]

void L1Algo::StripsToCoor ( const fvec u,
const fvec v,
fvec x,
fvec y,
const L1Station sta 
) const

Definition at line 303 of file L1Algo.cxx.

References v, x, and y.

◆ TripletsStaPort()

void L1Algo::TripletsStaPort ( int  istal,
int  istam,
int  istar,
Tindex nstaltriplets,
L1TrackPar T_1,
L1FieldRegion fld_1,
THitI hitsl_1,
Tindex n_2,
vector< THitI > &  i1_2,
vector< THitI > &  hitsm_2,
const vector< bool > &  mrDuplets 
)
inlineprivate

Find triplets on station.

----------------— Triplets on station -------------------—

Add the middle hits to parameters estimation. Propagate to right station.

Find the triplets(right hit). Reformat data in the portion of triplets.

Add the right hits to parameters estimation.

refit

Fill Triplets.

Parameters
istalcreates triplets: input: @istal - start station number, @istam - middle station number, @istar - last station number, @ip - index of portion, &n_g - numer of elements in portion, @*portionStopIndex
nstaltriplets@nstaltriplets - , @*portionStopIndex, @*T_1 - track parameters for singlets, @*fld_1 - field approximation for singlets, &n_2 - number of doublets in portion &n_2 - number of douplets,&i1_2 - index of 1st hit in portion indexed by doublet index, &hitsm_2 - index of middle hit in hits array indexed by doublet index
mrDupletsoutput: @*vTriplets_part - array of triplets, @*TripStartIndexH, @*TripStopIndexH - start/stop index of a triplet in the array

Definition at line 1576 of file L1CATrackFinder.cxx.

References du, dv, f30(), f31(), f4(), fhitsl_3, fhitsm_3, fhitsr_3, fT_3, fTimeER, fTimeR, fu_back3, fu_front3, fvecLen, fz_pos3, i, L1_assert, NStations, StsHitsUnusedStartIndex, StsHitsUnusedStopIndex, and TRIPLET_CHI2_CUT.

Referenced by CATrackFinder().

◆ UnPackIndex()

int L1Algo::UnPackIndex ( const int &  i,
int &  a,
int &  b,
int &  c 
)
inline

Friends And Related Function Documentation

◆ CbmL1

friend class CbmL1
friend

--— Output data --—

Definition at line 451 of file L1Algo.h.

Member Data Documentation

◆ _fvecalignment [1/5]

L1Station vStations [MaxNStations] L1Algo::_fvecalignment

Definition at line 336 of file L1Algo.h.

Referenced by BranchFitterFast(), CAMergeClones(), f11(), f32(), and FindMoreHits().

◆ _fvecalignment [2/5]

L1FieldValue targB L1Algo::_fvecalignment
private

Definition at line 928 of file L1Algo.h.

◆ _fvecalignment [3/5]

L1XYMeasurementInfo TargetXYInfo L1Algo::_fvecalignment
private

Definition at line 929 of file L1Algo.h.

◆ _fvecalignment [4/5]

L1FieldRegion vtxFieldRegion L1Algo::_fvecalignment
private

Definition at line 932 of file L1Algo.h.

◆ _fvecalignment [5/5]

L1FieldValue vtxFieldValue L1Algo::_fvecalignment
private

Definition at line 933 of file L1Algo.h.

◆ CandidatesTrack

L1Vector<L1Branch> L1Algo::CandidatesTrack[nTh]

Definition at line 260 of file L1Algo.h.

Referenced by CATrackFinder(), and L1Algo().

◆ CATime

double L1Algo::CATime

◆ DOUBLET_CHI2_CUT

float L1Algo::DOUBLET_CHI2_CUT
private

Definition at line 914 of file L1Algo.h.

Referenced by CATrackFinder(), and f20().

◆ du

nsL1::vector<fvec>::TSimd L1Algo::du[nTh]

Definition at line 444 of file L1Algo.h.

Referenced by L1Algo(), and TripletsStaPort().

◆ dv

nsL1::vector<fvec>::TSimd L1Algo::dv[nTh]

Definition at line 444 of file L1Algo.h.

Referenced by L1Algo(), and TripletsStaPort().

◆ dx

nsL1::vector<fvec>::TSimd L1Algo::dx[nTh]

Definition at line 444 of file L1Algo.h.

Referenced by L1Algo().

◆ dy

nsL1::vector<fvec>::TSimd L1Algo::dy[nTh]

Definition at line 444 of file L1Algo.h.

Referenced by L1Algo().

◆ Err

fvec L1Algo::Err[nTh][nTh]

Definition at line 395 of file L1Algo.h.

◆ EventTime

fvec L1Algo::EventTime[nTh][nTh]

Definition at line 394 of file L1Algo.h.

◆ fGhostSuppression

int L1Algo::fGhostSuppression
private

Definition at line 943 of file L1Algo.h.

Referenced by CATrackFinder(), and Init().

◆ fGlobal

bool L1Algo::fGlobal

Definition at line 392 of file L1Algo.h.

Referenced by CAFindTrack(), f11(), f30(), and f31().

◆ fhitsl_3

vector<THitI> L1Algo::fhitsl_3[nTh]

Definition at line 441 of file L1Algo.h.

Referenced by L1Algo(), and TripletsStaPort().

◆ fhitsm_3

vector<THitI> L1Algo::fhitsm_3[nTh]

Definition at line 441 of file L1Algo.h.

Referenced by L1Algo(), and TripletsStaPort().

◆ fhitsr_3

vector<THitI> L1Algo::fhitsr_3[nTh]

Definition at line 441 of file L1Algo.h.

Referenced by L1Algo(), and TripletsStaPort().

◆ FIRSTCASTATION

Tindex L1Algo::FIRSTCASTATION
private

================================= DATA PART =================================

--— Different parameters of CATrackFinder --—

Definition at line 865 of file L1Algo.h.

Referenced by CATrackFinder(), f5(), and FindMoreHits().

◆ FirstHit

L1Vector<unsigned short> L1Algo::FirstHit

Definition at line 274 of file L1Algo.h.

Referenced by CAMergeClones(), and L1Algo().

◆ FirstHitIndex

L1Vector<THitI> L1Algo::FirstHitIndex

Definition at line 276 of file L1Algo.h.

Referenced by CAMergeClones(), and L1Algo().

◆ fmCBMmode

bool L1Algo::fmCBMmode

Definition at line 391 of file L1Algo.h.

Referenced by CAFindTrack(), CATrackFinder(), f11(), f30(), f31(), and Init().

◆ fMomentumCutOff

float L1Algo::fMomentumCutOff
private

Definition at line 944 of file L1Algo.h.

Referenced by Init().

◆ fNThreads

int L1Algo::fNThreads

Definition at line 389 of file L1Algo.h.

Referenced by CATrackFinder(), f5(), L1Algo(), and SetNThreads().

◆ fRadThick

vector<L1Material> L1Algo::fRadThick

Definition at line 337 of file L1Algo.h.

Referenced by f11(), f30(), f32(), CbmL1::Init(), and CbmL1::TrackFitPerformance().

◆ fT_3

nsL1::vector<L1TrackPar>::TSimd L1Algo::fT_3[nTh]

Definition at line 439 of file L1Algo.h.

Referenced by L1Algo(), and TripletsStaPort().

◆ fTimeER

nsL1::vector<fvec>::TSimd L1Algo::fTimeER[nTh]

Definition at line 444 of file L1Algo.h.

Referenced by L1Algo(), and TripletsStaPort().

◆ fTimeR

nsL1::vector<fvec>::TSimd L1Algo::fTimeR[nTh]

Definition at line 444 of file L1Algo.h.

Referenced by L1Algo(), and TripletsStaPort().

◆ fTrackingLevel

int L1Algo::fTrackingLevel
private

Definition at line 943 of file L1Algo.h.

Referenced by Init().

◆ fu_back3

nsL1::vector<fvec>::TSimd L1Algo::fu_back3[nTh]

Definition at line 443 of file L1Algo.h.

Referenced by L1Algo(), and TripletsStaPort().

◆ fu_front3

nsL1::vector<fvec>::TSimd L1Algo::fu_front3[nTh]

Definition at line 443 of file L1Algo.h.

Referenced by L1Algo(), and TripletsStaPort().

◆ fUseHitErrors

bool L1Algo::fUseHitErrors

Definition at line 390 of file L1Algo.h.

Referenced by f10(), f11(), f20(), f30(), f31(), and Init().

◆ fz_pos3

nsL1::vector<fvec>::TSimd L1Algo::fz_pos3[nTh]

Definition at line 443 of file L1Algo.h.

Referenced by L1Algo(), and TripletsStaPort().

◆ isec

int L1Algo::isec

— data used during finding iterations

Definition at line 420 of file L1Algo.h.

Referenced by CATrackFinder(), f11(), f20(), f30(), f4(), and f5().

◆ iStation [1/3]

unsigned int unsigned int L1Algo::iStation
private

Definition at line 575 of file L1Algo.h.

◆ iStation [2/3]

unsigned int& L1Algo::iStation
private
Initial value:
{
iStation = location & 0x7

Definition at line 581 of file L1Algo.h.

◆ iStation [3/3]

unsigned int L1Algo::iStation
private
Initial value:
{
flag = iStation * 4 + (flag % 4)

Definition at line 596 of file L1Algo.h.

◆ LastHit

L1Vector<unsigned short> L1Algo::LastHit

Definition at line 275 of file L1Algo.h.

Referenced by CAMergeClones(), and L1Algo().

◆ LastHitIndex

L1Vector<THitI> L1Algo::LastHitIndex

Definition at line 277 of file L1Algo.h.

Referenced by CAMergeClones(), and L1Algo().

◆ MaxDZ

fvec L1Algo::MaxDZ
private

Definition at line 918 of file L1Algo.h.

Referenced by CATrackFinder(), f20(), f30(), and FindMoreHits().

◆ MaxInvMom

fvec L1Algo::MaxInvMom
private

Definition at line 925 of file L1Algo.h.

Referenced by CATrackFinder(), f11(), and f4().

◆ MaxSlope

fvec L1Algo::MaxSlope
private

Definition at line 926 of file L1Algo.h.

Referenced by CATrackFinder(), and f11().

◆ n_g1

L1Vector<Tindex> L1Algo::n_g1

Definition at line 263 of file L1Algo.h.

Referenced by CATrackFinder(), and L1Algo().

◆ Neighbour

L1Vector<unsigned short> L1Algo::Neighbour

Definition at line 278 of file L1Algo.h.

Referenced by CAMergeClones(), and L1Algo().

◆ NFStations

int L1Algo::NFStations

Definition at line 335 of file L1Algo.h.

Referenced by f11(), f30(), f31(), and Init().

◆ NHitsIsecAll

unsigned int L1Algo::NHitsIsecAll

Definition at line 363 of file L1Algo.h.

Referenced by CAMergeClones(), CATrackFinder(), and L1Algo().

◆ NMvdStations

◆ nSta

const int L1Algo::nSta = 25
static

Definition at line 257 of file L1Algo.h.

◆ NStations

◆ NStsStations

int L1Algo::NStsStations

Definition at line 335 of file L1Algo.h.

Referenced by Init().

◆ nTh

const int L1Algo::nTh = 1
static

Definition at line 256 of file L1Algo.h.

Referenced by CATrackFinder().

◆ NTracksIsecAll

unsigned int L1Algo::NTracksIsecAll

◆ nTripletsThread

int L1Algo::nTripletsThread[nSta][nTh]

Definition at line 271 of file L1Algo.h.

Referenced by CATrackFinder(), f4(), f5(), and L1Algo().

◆ numberCandidateThread

int L1Algo::numberCandidateThread[nTh]

Definition at line 269 of file L1Algo.h.

Referenced by CATrackFinder(), and L1Algo().

◆ numPortions

int L1Algo::numPortions[12]
private

Definition at line 937 of file L1Algo.h.

◆ Pick_gather

float L1Algo::Pick_gather
private

parameters which are different for different iterations. Set in the begin of CAL1TrackFinder

Definition at line 922 of file L1Algo.h.

Referenced by CATrackFinder(), and FindMoreHits().

◆ PickNeighbour

float L1Algo::PickNeighbour
private

Definition at line 924 of file L1Algo.h.

Referenced by CAFindTrack(), CATrackFinder(), and f5().

◆ portionStopIndex

Tindex L1Algo::portionStopIndex[nSta]

Definition at line 262 of file L1Algo.h.

Referenced by CATrackFinder().

◆ RealIHit

THitI* L1Algo::RealIHit

Definition at line 425 of file L1Algo.h.

◆ RealIHit_v

vector<THitI> L1Algo::RealIHit_v

Definition at line 375 of file L1Algo.h.

Referenced by CATrackFinder().

◆ RealIHit_v_buf

vector<THitI> L1Algo::RealIHit_v_buf

Definition at line 376 of file L1Algo.h.

Referenced by CATrackFinder().

◆ RealIHit_v_buf2

vector<THitI> L1Algo::RealIHit_v_buf2

Definition at line 377 of file L1Algo.h.

◆ RealIHitP

vector<THitI>* L1Algo::RealIHitP

Definition at line 422 of file L1Algo.h.

Referenced by CATrackFinder(), and FindMoreHits().

◆ RealIHitPBuf

vector<THitI>* L1Algo::RealIHitPBuf

Definition at line 423 of file L1Algo.h.

Referenced by CATrackFinder().

◆ SavedCand

int L1Algo::SavedCand[nTh]

Definition at line 266 of file L1Algo.h.

Referenced by CATrackFinder(), and L1Algo().

◆ SavedHits

int L1Algo::SavedHits[nTh]

Definition at line 267 of file L1Algo.h.

Referenced by CATrackFinder(), and L1Algo().

◆ StsHitsStartIndex

const THitI* L1Algo::StsHitsStartIndex

◆ StsHitsStopIndex

const THitI * L1Algo::StsHitsStopIndex

◆ StsHitsUnusedStartIndex

THitI L1Algo::StsHitsUnusedStartIndex[MaxNStations+1]

Definition at line 426 of file L1Algo.h.

Referenced by CATrackFinder(), DupletsStaPort(), f20(), f32(), f4(), FindMoreHits(), and TripletsStaPort().

◆ StsHitsUnusedStartIndexEnd

THitI L1Algo::StsHitsUnusedStartIndexEnd[MaxNStations+1]

Definition at line 428 of file L1Algo.h.

◆ StsHitsUnusedStopIndex

THitI L1Algo::StsHitsUnusedStopIndex[MaxNStations+1]

Definition at line 427 of file L1Algo.h.

Referenced by CATrackFinder(), DupletsStaPort(), f4(), f5(), and TripletsStaPort().

◆ StsHitsUnusedStopIndexEnd

THitI L1Algo::StsHitsUnusedStopIndexEnd[MaxNStations+1]

Definition at line 429 of file L1Algo.h.

◆ targX

fvec L1Algo::targX
private

Definition at line 927 of file L1Algo.h.

Referenced by CATrackFinder(), and f11().

◆ targY

fvec L1Algo::targY
private

Definition at line 927 of file L1Algo.h.

Referenced by CATrackFinder(), and f11().

◆ targZ

fvec L1Algo::targZ
private

Definition at line 927 of file L1Algo.h.

Referenced by CATrackFinder(), and f11().

◆ thread [1/2]

unsigned int unsigned int unsigned int& L1Algo::thread
private
Initial value:
{
location = (triplet << 11) | (thread << 3) | iStation

Definition at line 576 of file L1Algo.h.

Referenced by CATrackFinder().

◆ thread [2/2]

unsigned int& L1Algo::thread
private
Initial value:
{
thread = (location >> 3) & 0xFF

Definition at line 586 of file L1Algo.h.

◆ threadNumberToCpuMap

map<int, int> L1Algo::threadNumberToCpuMap
private

Definition at line 908 of file L1Algo.h.

Referenced by Init().

◆ TIME_CUT1

float L1Algo::TIME_CUT1
private

Definition at line 915 of file L1Algo.h.

◆ TIME_CUT2

float L1Algo::TIME_CUT2
private

Definition at line 915 of file L1Algo.h.

◆ TRACK_CHI2_CUT

float L1Algo::TRACK_CHI2_CUT
private

Definition at line 911 of file L1Algo.h.

Referenced by CAFindTrack().

◆ TrackChi2

L1Vector<float> L1Algo::TrackChi2

Definition at line 279 of file L1Algo.h.

Referenced by CAMergeClones(), and L1Algo().

◆ TripForHit

vector<int> L1Algo::TripForHit[2]

Definition at line 432 of file L1Algo.h.

Referenced by f20(), f4(), f5(), and L1Algo().

◆ triplet

unsigned int & L1Algo::triplet
private
Initial value:
{
triplet = (location >> 11)

Definition at line 574 of file L1Algo.h.

Referenced by __attribute__(), and f5().

◆ TRIPLET_CHI2_CUT

float L1Algo::TRIPLET_CHI2_CUT
private

Definition at line 913 of file L1Algo.h.

Referenced by CATrackFinder(), f30(), f4(), and TripletsStaPort().

◆ TripletsLocal

vector<L1Triplet*>* L1Algo::TripletsLocal[MaxNStations - 2]
private

Definition at line 938 of file L1Algo.h.

◆ TripletsLocal1

L1Vector<L1Triplet> L1Algo::TripletsLocal1[nSta][nTh]

Definition at line 259 of file L1Algo.h.

Referenced by CAFindTrack(), CATrackFinder(), f4(), f5(), and L1Algo().

◆ vGrid

L1Grid L1Algo::vGrid[MaxNStations]

Definition at line 345 of file L1Algo.h.

◆ vGridTime

L1Grid L1Algo::vGridTime[MaxNStations]

Definition at line 347 of file L1Algo.h.

Referenced by CATrackFinder(), f20(), f30(), FindMoreHits(), and L1Algo().

◆ vRecoHits

◆ vRecoHits_local

L1Vector<THitI> L1Algo::vRecoHits_local[nTh]

Definition at line 373 of file L1Algo.h.

Referenced by CATrackFinder(), and L1Algo().

◆ vRecoHitsNew

L1Vector<THitI> L1Algo::vRecoHitsNew

Definition at line 282 of file L1Algo.h.

Referenced by CAMergeClones().

◆ vSFlag

◆ vSFlagB

const vector<unsigned char> * L1Algo::vSFlagB

◆ vStripToTrack

L1Vector<int> L1Algo::vStripToTrack

Definition at line 386 of file L1Algo.h.

Referenced by CATrackFinder().

◆ vStripToTrackB

L1Vector<int> L1Algo::vStripToTrackB

Definition at line 387 of file L1Algo.h.

Referenced by CATrackFinder().

◆ vStsDontUsedHits_A

vector<L1StsHit> L1Algo::vStsDontUsedHits_A

Definition at line 366 of file L1Algo.h.

Referenced by CATrackFinder().

◆ vStsDontUsedHits_B

vector<L1StsHit> L1Algo::vStsDontUsedHits_B

Definition at line 367 of file L1Algo.h.

Referenced by CATrackFinder().

◆ vStsDontUsedHits_Buf

vector<L1StsHit> L1Algo::vStsDontUsedHits_Buf

Definition at line 368 of file L1Algo.h.

Referenced by CATrackFinder().

◆ vStsDontUsedHitsxy_A

vector<L1HitPoint> L1Algo::vStsDontUsedHitsxy_A

Definition at line 369 of file L1Algo.h.

Referenced by CATrackFinder().

◆ vStsDontUsedHitsxy_B

vector<L1HitPoint> L1Algo::vStsDontUsedHitsxy_B

Definition at line 371 of file L1Algo.h.

Referenced by CATrackFinder().

◆ vStsDontUsedHitsxy_buf

vector<L1HitPoint> L1Algo::vStsDontUsedHitsxy_buf

Definition at line 370 of file L1Algo.h.

◆ vStsHitPointsUnused

vector<L1HitPoint>* L1Algo::vStsHitPointsUnused

Definition at line 424 of file L1Algo.h.

Referenced by CATrackFinder().

◆ vStsHits

◆ vStsHitsUnused

vector<L1StsHit>* L1Algo::vStsHitsUnused

Definition at line 421 of file L1Algo.h.

Referenced by CAFindTrack(), and CATrackFinder().

◆ vStsStrips

const vector<L1Strip>* L1Algo::vStsStrips

◆ vStsStripsB

const vector<L1Strip> * L1Algo::vStsStripsB

◆ vStsZPos

const vector<fscal>* L1Algo::vStsZPos

◆ vTracks

◆ vTracks_local

L1Vector<L1Track> L1Algo::vTracks_local[nTh]

Definition at line 372 of file L1Algo.h.

Referenced by CATrackFinder(), and L1Algo().

◆ vTracksNew

L1Vector<L1Track> L1Algo::vTracksNew

Definition at line 283 of file L1Algo.h.

Referenced by CAMergeClones().


The documentation for this class was generated from the following files:
L1Algo::triplet
unsigned int & triplet
Definition: L1Algo.h:574
L1Algo::iStation
unsigned int unsigned int iStation
Definition: L1Algo.h:575
L1Algo::thread
unsigned int unsigned int unsigned int & thread
Definition: L1Algo.h:576