BmnRoot
Loading...
Searching...
No Matches
L1Algo Class Reference

#include <L1Algo.h>

Collaboration diagram for L1Algo:
[legend]

Public Types

enum  { MaxNStations = 12 }
 --— Input data --— More...
 

Public Member Functions

 L1Algo ()
 
void Init (const fscal geo[])
 
void CATrackFinder ()
 The main procedure - find tracks.
 
void KFTrackFitter_simple ()
 Track fitting procedures.
 
void L1KFTrackFitter (bool extrapolateToTheEndOfSTS=false)
 
L1FieldValue GetvtxFieldValue ()
 

Public Attributes

int NStations
 
int NMvdStations
 
L1Station vStations[MaxNStations_fvecalignment
 
vector< L1MaterialfRadThick
 
vector< L1StripvStsStrips
 
vector< L1StripvStsStripsB
 
vector< fscalvStsZPos
 
vector< L1StsHitvStsHits
 
L1Grid vGrid [MaxNStations]
 
vector< unsigned char > vSFlag
 
vector< unsigned char > vSFlagB
 
THitI StsHitsStartIndex [MaxNStations+1]
 
THitI StsHitsStopIndex [MaxNStations+1]
 
int isec
 — data used during finding iterations
 
vector< L1StsHit > * vStsHitsUnused
 
std::vector< L1HitPoint > * vStsHitPointsUnused
 
THitIRealIHit
 
THitI StsHitsUnusedStartIndex [MaxNStations+1]
 
THitI StsHitsUnusedStopIndex [MaxNStations+1]
 
vector< int > vStsHits2Unus
 
vector< L1HitPointvAllHitPoints
 
vector< L1TrackvTracks
 --— Output data --—
 
vector< THitIvRecoHits
 
double CATime
 

Friends

class CbmL1
 

Detailed Description

Definition at line 60 of file L1Algo.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

--— Input data --—

Enumerator
MaxNStations 

Definition at line 122 of file L1Algo.h.

Constructor & Destructor Documentation

◆ L1Algo()

L1Algo::L1Algo ( )
inline

Definition at line 62 of file L1Algo.h.

Member Function Documentation

◆ CATrackFinder()

void L1Algo::CATrackFinder ( )

The main procedure - find tracks.

arrays for copy from vStsHits only hits, which aren't used in created tracks

arrays for contain prepared information

array of hits uses on current iteration

buffer for copy

array of info for hits uses on current iteration

index of hit in vStsHits indexed by index of hit in vStsHitsUnused;

fill the arrays for the first iteration

hitDensity - square root of number of hits, helps to keep the number of hits per bin (sell of grid) the same

sort hits by grid and y/z

input: array of unused hits, unused points, RealIHit_v - array of initial hit indexes, grid, StsHitsUnusedStartIndex, StsHitsUnusedStopIndex - indexes of 1st and last hits on station, NStations - number of stations

input: 1st hit on station, number of hits on station

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

CREATE doublets

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

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

number of doublets in portion

save triplets in vTriplets

save triplets in vTriplets with gaps

save triplets in vTriplets with gaps

Find neighbours of triplets.

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

= =

Definition at line 1332 of file L1CATrackFinder.cxx.

References L1CATFIterTimerInfo::Add(), L1CATFTimerInfo::Add(), L1StsHit::b, L1CATFTimerInfo::Calc(), CATime, L1Track::CFirst, L1Branch::chi2, L1Track::chi2, L1Track::CLast, L1AlgoDraw::ClearVeiw(), L1Branch::comparePChi2(), L1Triplet::Cqp, L1Grid::Create(), L1AlgoDraw::DrawAsk(), L1AlgoDraw::DrawInputHits(), L1AlgoDraw::DrawMCTracks(), L1AlgoDraw::DrawRecoTracks(), L1AlgoDraw::DrawTarget(), L1StsHit::f, f, fabs(), L1Station::fieldSlice, L1Grid::Fill(), fvecLen, L1Triplet::GetChi2(), L1FieldSlice::GetFieldValue(), L1Triplet::GetLevel(), L1Triplet::GetLHit(), L1Triplet::GetLSta(), L1Triplet::GetMHit(), L1Triplet::GetMSta(), L1Triplet::GetQp(), L1Triplet::GetQpOrig(), L1Triplet::GetRHit(), i, L1AlgoEfficiencyPerformance< NHits >::Init(), L1AlgoPulls::Init(), L1AlgoDraw::InitL1Draw(), isec, L1_ASSERT, MaxNStations, L1Branch::Momentum, L1Track::Momentum, L1Track::NDF, L1Triplet::neighbours, L1Track::NHits, NStations, L1CATFTimerInfo::PrintReal(), L1CATFIterTimerInfo::PrintReal(), RealIHit, L1AlgoDraw::SaveCanvas(), L1Branch::Set(), L1CATFTimerInfo::SetNIter(), L1HitsSortHelper::Sort(), sqrt(), L1Branch::StsHits, StsHitsStartIndex, StsHitsStopIndex, StsHitsUnusedStartIndex, StsHitsUnusedStopIndex, L1Track::TFirst, L1Track::TLast, vAllHitPoints, vGrid, vRecoHits, vSFlag, vSFlagB, vStsHitPointsUnused, vStsHits, vStsHits2Unus, vStsHitsUnused, vStsStrips, vStsStripsB, and vTracks.

Referenced by CbmL1::Reconstruct().

◆ GetvtxFieldValue()

L1FieldValue L1Algo::GetvtxFieldValue ( )
inline

◆ Init()

◆ KFTrackFitter_simple()

◆ L1KFTrackFitter()

Friends And Related Symbol Documentation

◆ CbmL1

friend class CbmL1
friend

Definition at line 156 of file L1Algo.h.

Member Data Documentation

◆ _fvecalignment

L1Station vStations [MaxNStations] L1Algo::_fvecalignment

Definition at line 125 of file L1Algo.h.

Referenced by KFTrackFitter_simple(), and L1KFTrackFitter().

◆ CATime

double L1Algo::CATime

Definition at line 154 of file L1Algo.h.

Referenced by CATrackFinder().

◆ fRadThick

vector<L1Material> L1Algo::fRadThick

Definition at line 127 of file L1Algo.h.

Referenced by CbmL1::Init(), and L1KFTrackFitter().

◆ isec

int L1Algo::isec

— data used during finding iterations

Definition at line 140 of file L1Algo.h.

Referenced by CATrackFinder().

◆ NMvdStations

◆ NStations

◆ RealIHit

THitI* L1Algo::RealIHit

Definition at line 143 of file L1Algo.h.

Referenced by CATrackFinder().

◆ StsHitsStartIndex

THitI L1Algo::StsHitsStartIndex[MaxNStations+1]

Definition at line 136 of file L1Algo.h.

Referenced by CATrackFinder(), and L1AlgoDraw::InitL1Draw().

◆ StsHitsStopIndex

THitI L1Algo::StsHitsStopIndex[MaxNStations+1]

Definition at line 136 of file L1Algo.h.

Referenced by CATrackFinder(), and L1AlgoDraw::InitL1Draw().

◆ StsHitsUnusedStartIndex

THitI L1Algo::StsHitsUnusedStartIndex[MaxNStations+1]

Definition at line 144 of file L1Algo.h.

Referenced by CATrackFinder().

◆ StsHitsUnusedStopIndex

THitI L1Algo::StsHitsUnusedStopIndex[MaxNStations+1]

Definition at line 144 of file L1Algo.h.

Referenced by CATrackFinder().

◆ vAllHitPoints

vector<L1HitPoint> L1Algo::vAllHitPoints

Definition at line 147 of file L1Algo.h.

Referenced by CATrackFinder(), and L1KFTrackFitter().

◆ vGrid

L1Grid L1Algo::vGrid[MaxNStations]

Definition at line 133 of file L1Algo.h.

Referenced by CATrackFinder().

◆ vRecoHits

◆ vSFlag

vector< unsigned char > L1Algo::vSFlag

Definition at line 134 of file L1Algo.h.

Referenced by CATrackFinder(), KFTrackFitter_simple(), L1KFTrackFitter(), and CbmL1::Reconstruct().

◆ vSFlagB

vector< unsigned char > L1Algo::vSFlagB

Definition at line 135 of file L1Algo.h.

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

◆ vStsHitPointsUnused

std::vector< L1HitPoint >* L1Algo::vStsHitPointsUnused

Definition at line 142 of file L1Algo.h.

Referenced by CATrackFinder().

◆ vStsHits

◆ vStsHits2Unus

vector<int> L1Algo::vStsHits2Unus

Definition at line 146 of file L1Algo.h.

Referenced by CATrackFinder().

◆ vStsHitsUnused

vector< L1StsHit >* L1Algo::vStsHitsUnused

Definition at line 141 of file L1Algo.h.

Referenced by CATrackFinder().

◆ vStsStrips

vector< L1Strip > L1Algo::vStsStrips

◆ vStsStripsB

vector< L1Strip > L1Algo::vStsStripsB

◆ vStsZPos

vector< fscal > L1Algo::vStsZPos

Definition at line 131 of file L1Algo.h.

Referenced by KFTrackFitter_simple(), L1KFTrackFitter(), and CbmL1::Reconstruct().

◆ vTracks

vector< L1Track > L1Algo::vTracks

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