|
BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
|
#include <L1Algo.h>
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< L1Material > | fRadThick |
| vector< L1Strip > | vStsStrips |
| vector< L1Strip > | vStsStripsB |
| vector< fscal > | vStsZPos |
| vector< L1StsHit > | vStsHits |
| 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 |
| THitI * | RealIHit |
| THitI | StsHitsUnusedStartIndex [MaxNStations+1] |
| THitI | StsHitsUnusedStopIndex [MaxNStations+1] |
| vector< int > | vStsHits2Unus |
| vector< L1HitPoint > | vAllHitPoints |
| vector< L1Track > | vTracks |
| --— Output data --— | |
| vector< THitI > | vRecoHits |
| double | CATime |
Private Types | |
| enum | { kFastPrimIter , kAllPrimIter , kAllPrimJumpIter , kAllSecIter , kAllPrimEIter , kAllSecEIter , kFastPrimJumpIter , kFastPrimIter2 , kAllSecJumpIter } |
| enum | { fNFindIterations = LAST_ITERATION + 1 } |
| 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... | |
Private Member Functions | |
| const L1FieldValue & | GetVtxFieldValue () const |
| ================================= FUNCTIONAL PART ================================= | |
| const L1FieldRegion & | GetVtxFieldRegion () const |
| void | GetHitCoor (const L1StsHit &_h, fscal &_x, fscal &_y, fscal &_z, const L1Station &sta) |
| --— Hit-point-strips conversion routines ---— | |
| void | StripsToCoor (const fscal &u, const fscal &v, fscal &x, fscal &y, const L1Station &sta) const |
| convert strip positions to coordinates | |
| 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. | |
| 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, int &NCalls) |
| --— Subroutines used by L1Algo::CATrackFinder() ---— | |
| void | CleanTriplets (bool isClean=0) |
| void | BranchFitterFast (const L1Branch &t, L1TrackPar &T, const bool dir, const fvec qp0=0., const bool initParams=true) |
| Fit track t - track with hits T - track params dir - 0 - forward, 1 - backward qp0 - momentum for extrapolation initialize - should be params ititialized. | |
| void | BranchFitter (const L1Branch &t, L1TrackPar &T, const bool dir, const fvec qp0=0., const bool initParams=true) |
| Fit track. more precise than FitterFast. | |
| void | FindMoreHits (L1Branch &t, L1TrackPar &T, const bool dir, const fvec qp0=0.0) |
| Find additional hits for existing track t - track with hits T - track params dir - 0 - forward, 1 - backward qp0 - momentum for extrapolation. | |
| fscal | BranchExtender (L1Branch &t) |
| Find additional hits for existing track return chi2. | |
| void | InvertCholetsky (fvec a[15]) |
| --— Subroutines used by L1Algo::CAMergeClones() ---— | |
| 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 () |
| unsigned char | GetFStation (unsigned char flag) |
| – Flags routines – | |
| bool | GetFUsed (unsigned char flag) |
| void | SetFStation (unsigned char &flag, unsigned int iStation) |
| void | SetFUsed (unsigned char &flag) |
| void | SetFUnUsed (unsigned char &flag) |
| void | f10 (int start_lh, int n1, L1HitPoint *vStsHits_l, fvec *u_front, fvec *u_back, fvec *zPos, THitI *hitsl_1, fvec *du_front=0, fvec *du_back=0) |
| Prepare the portion of left hits data. | |
| void | f11 (int istal, int istam, int n1_V, fvec *u_front, fvec *u_back, fvec *zPos, L1TrackPar *T_1, L1FieldRegion *fld_1, fvec *du_front=0, fvec *du_back=0) |
| Get the field approximation. Add the target to parameters estimation. Propagate to middle station. | |
| void | f20 (int n1, L1Station &stam, L1HitPoint *vStsHits_l, L1HitPoint *vStsHits_m, int NHits_m, L1TrackPar *T_1, THitI *hitsl_1, int &n2, vector< THitI > &i1_2, int &start_mhit, vector< THitI > &hitsm_2, vector< bool > &lmDuplets) |
| Find the doublets. Reformat data in the portion of doublets. | |
| 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, int n2, vector< THitI > &hitsm_2, vector< THitI > &i1_2, const vector< bool > &mrDuplets, int &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_front_3=0, nsL1::vector< fvec >::TSimd *du_back_3=0) |
| Add the middle hits to parameters estimation. | |
| void | f31 (int 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< L1TrackPar >::TSimd &T_3, nsL1::vector< fvec >::TSimd *du_front=0, nsL1::vector< fvec >::TSimd *du_back=0) |
| Add the right hits to parameters estimation. | |
| void | f32 (int 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. | |
| void | f4 (int 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, unsigned int &nstaltriplets, vector< L1Triplet > &vTriplets_part, unsigned int *TripStartIndexH, unsigned int *TripStopIndexH) |
| Select triplets. Save them into vTriplets. | |
| void | f5 (unsigned int *TripStartIndexH, unsigned int *TripStopIndexH, int *nlevel) |
| Find neighbours of triplets. Calculate level of triplets. | |
| void | DupletsStaPort (int istal, int istam, unsigned int ip, vector< int > &n_g1, unsigned int *portionStopIndex, L1TrackPar *T_1, L1FieldRegion *fld_1, THitI *hitsl_1, vector< bool > &lmDuplets, int &n_2, vector< THitI > &i1_2, vector< THitI > &hitsm_2) |
| Find doublets on station. | |
| void | TripletsStaPort (int istal, int istam, int istar, unsigned int &nstaltriplets, L1TrackPar *T_1, L1FieldRegion *fld_1, THitI *hitsl_1, int &n_2, unsigned int *portionStopIndex, vector< THitI > &i1_2, vector< THitI > &hitsm_2, const vector< bool > &mrDuplets, vector< L1Triplet > *vTriplets_part, unsigned int *TripStartIndexH, unsigned int *TripStopIndexH) |
| Find triplets on station. | |
| void | GuessVec (L1TrackPar &t, fvec *xV, fvec *yV, fvec *zV, fvec *Sy, fvec *wV, int NHits, fvec *zCur=0) |
| ---— Subroutines used by L1Algo::KFTrackFitter() ---— | |
| void | FilterFirst (L1TrackPar &track, fvec &x, fvec &y, L1Station &st) |
| L1Algo (const L1Algo &) | |
| --— Debug features --— | |
| void | operator= (const L1Algo &) |
Private Attributes | |
| int | FIRSTCASTATION |
| ================================= DATA PART ================================= | |
| const float | TRACK_CHI2_CUT |
| float | TRIPLET_CHI2_CUT |
| float | DOUBLET_CHI2_CUT |
| fvec | MaxDZ |
| fvec | Pick_gather |
| parameters which are different for different iterations. Set in the begin of CAL1TrackFinder | |
| float | PickNeighbour |
| fvec | MaxInvMom |
| fvec | MaxSlope |
| fvec | targX |
| fvec | targY |
| fvec | targZ |
| L1FieldValue targB | _fvecalignment |
| L1XYMeasurementInfo TargetXYInfo | _fvecalignment |
| L1FieldRegion vtxFieldRegion | _fvecalignment |
| L1FieldValue vtxFieldValue | _fvecalignment |
| vector< L1Triplet > | vTriplets |
| int | TripStartIndex [MaxNStations - 2] |
| int | TripStopIndex [MaxNStations - 2] |
| int | fTrackingLevel |
| int | fGhostSuppression |
| float | fMomentumCutOff |
Friends | |
| class | CbmL1 |
|
private |
|
private |
|
private |
|
inline |
Definition at line 63 of file L1Algo.h.
References CATime, DOUBLET_CHI2_CUT, fGhostSuppression, FIRSTCASTATION, fMomentumCutOff, fRadThick, fTrackingLevel, isec, MaxDZ, MaxInvMom, MaxSlope, NMvdStations, NStations, Pick_gather, PickNeighbour, RealIHit, targX, targY, targZ, TRACK_CHI2_CUT, TRIPLET_CHI2_CUT, vRecoHits, vSFlag, vSFlagB, vStsHitPointsUnused, vStsHits, vStsHitsUnused, vStsStrips, vStsStripsB, vStsZPos, vTracks, and vTriplets.
Referenced by L1Algo(), and operator=().
|
private |
Try to extrapolate and find additional hits on other stations.
Definition at line 401 of file L1TrackExtender.cxx.
References BranchFitter(), BranchFitterFast(), and FindMoreHits().
Referenced by CATrackFinder().
|
private |
like BranchFitterFast but more precise
Definition at line 181 of file L1TrackExtender.cxx.
References BranchFitterFast(), and i.
Referenced by BranchExtender().
|
private |
1 - yes.
Definition at line 24 of file L1TrackExtender.cxx.
References _fvecalignment, L1StsHit::b, L1Station::backInfo, L1XYMeasurementInfo::C00, L1XYMeasurementInfo::C10, L1XYMeasurementInfo::C11, L1HitPoint::DU(), L1HitPoint::DV(), L1StsHit::f, L1Station::fieldSlice, L1Station::frontInfo, L1FieldSlice::GetFieldValue(), GetFStation(), i, L1StsHit::iz, L1_assert, L1AddMaterial(), L1AddPipeMaterial(), L1Extrapolate(), L1Filter(), L1Station::materialInfo, NMvdStations, StripsToCoor(), L1Branch::StsHits, L1HitPoint::U(), L1HitPoint::V(), v, vSFlag, vStsHits, vStsHits2Unus, vStsStrips, vStsStripsB, vStsZPos, L1HitPoint::X(), x, L1Station::XYInfo, L1HitPoint::Y(), y, L1Station::z, and z0.
Referenced by BranchExtender(), and BranchFitter().
|
private |
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 2443 of file L1CATrackFinder.cxx.
References CAFindTrack(), L1Triplet::Cqp, f, fabs(), GetFUsed(), L1Triplet::GetLevel(), L1Triplet::GetLHit(), L1Triplet::GetLSta(), L1Triplet::GetMHit(), L1Triplet::GetMSta(), L1Triplet::GetQp(), L1Triplet::GetRHit(), L1Triplet::neighbours, PickNeighbour, RealIHit, L1Branch::StsHits, TRACK_CHI2_CUT, TripStartIndex, vSFlag, vSFlagB, vStsHitsUnused, and vTriplets.
Referenced by CAFindTrack(), and CATrackFinder().
|
private |
Definition at line 205 of file L1CAMergeClones.cxx.
References _fvecalignment, L1TrackPar::C00, L1TrackPar::C10, L1TrackPar::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, dist(), FilterTracks(), L1Extrapolate(), L1KFTrackFitter(), L1TrackPar::qp, L1TrackPar::tx, L1TrackPar::ty, vRecoHits, vSFlag, vStsHits, vTracks, L1TrackPar::x, L1TrackPar::y, and L1TrackPar::z.
Referenced by CATrackFinder().
| void L1Algo::CATrackFinder | ( | ) |
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 1348 of file L1CATrackFinder.cxx.
References L1CATFIterTimerInfo::Add(), L1CATFTimerInfo::Add(), L1StsHit::b, BranchExtender(), CAFindTrack(), L1CATFTimerInfo::Calc(), CAMergeClones(), CATime, L1Track::CFirst, L1Branch::chi2, L1Track::chi2, L1Track::CLast, L1AlgoDraw::ClearVeiw(), L1Branch::comparePChi2(), L1Grid::Create(), CreateHitPoint(), DOUBLET_CHI2_CUT, L1AlgoDraw::DrawAsk(), L1AlgoDraw::DrawInputHits(), L1AlgoDraw::DrawMCTracks(), L1AlgoDraw::DrawRecoTracks(), L1AlgoDraw::DrawTarget(), DupletsStaPort(), L1StsHit::f, f5(), fGhostSuppression, L1Station::fieldSlice, L1Grid::Fill(), FIRSTCASTATION, fNFindIterations, fvecLen, L1Triplet::GetChi2(), L1FieldSlice::GetFieldValue(), GetFStation(), GetFUsed(), L1Triplet::GetLevel(), L1Triplet::GetLHit(), L1Triplet::GetMHit(), L1Triplet::GetQpOrig(), L1Triplet::GetRHit(), i, L1AlgoEfficiencyPerformance< NHits >::Init(), L1AlgoPulls::Init(), L1AlgoDraw::InitL1Draw(), isec, kAllPrimEIter, kAllPrimIter, kAllPrimJumpIter, kAllSecEIter, kAllSecIter, kAllSecJumpIter, kFastPrimIter, kFastPrimIter2, kFastPrimJumpIter, L1_ASSERT, MaxDZ, MaxInvMom, MaxNPortion, MaxNStations, MaxPortionDoublets, MaxSlope, L1Branch::Momentum, L1Track::Momentum, nb, L1Track::NDF, L1Track::NHits, NStations, Pick_gather, PickNeighbour, Portion, L1CATFIterTimerInfo::PrintReal(), L1CATFTimerInfo::PrintReal(), RealIHit, TStopwatch::RealTime(), L1AlgoDraw::SaveCanvas(), L1Branch::Set(), SetFUnUsed(), SetFUsed(), L1CATFTimerInfo::SetNIter(), L1HitsSortHelper::Sort(), TStopwatch::Start(), TStopwatch::Stop(), L1Branch::StsHits, StsHitsStartIndex, StsHitsStopIndex, StsHitsUnusedStartIndex, StsHitsUnusedStopIndex, targX, targY, targZ, L1Track::TFirst, L1Track::TLast, TRIPLET_CHI2_CUT, TripletsStaPort(), TripStartIndex, TripStopIndex, vAllHitPoints, vGrid, vRecoHits, vSFlag, vSFlagB, vStsHitPointsUnused, vStsHits, vStsHits2Unus, vStsHitsUnused, vStsStrips, vStsStripsB, vTracks, and vTriplets.
|
private |
|
private |
Definition at line 209 of file L1Algo.cxx.
References L1StsHit::b, L1Strip::errf(), L1StsHit::f, L1StsHit::iz, L1StsHit::n, StripsToCoor(), v, vStsStrips, vStsStripsB, vStsZPos, x, y, and z.
Referenced by CATrackFinder().
|
inlineprivate |
----------------— 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.
| istal | creates duplets: input: @istal - start station number, @istam - last station number, @ip - index of portion, &n_g1 - number of elements in portion, *portionStopIndex |
| 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 1112 of file L1CATrackFinder.cxx.
References f10(), f11(), f20(), fvecLen, i, L1_ASSERT, NStations, Portion, RealIHit, StsHitsUnusedStartIndex, and StsHitsUnusedStopIndex.
Referenced by CATrackFinder().
|
inlineprivate |
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 63 of file L1CATrackFinder.cxx.
References L1HitPoint::DU(), L1HitPoint::DV(), fvecLen, L1HitPoint::U(), L1HitPoint::V(), and L1HitPoint::Z().
Referenced by DupletsStaPort().
|
inlineprivate |
Get the field approximation. Add the target to parameters estimation. Propagaete to the middle station of a triplet.
| istal | input 1st stage of singlet search |
| n1_V | indexes of left and middle stations of a triplet |
Definition at line 94 of file L1CATrackFinder.cxx.
References _fvecalignment, L1Station::backInfo, L1XYMeasurementInfo::C00, L1XYMeasurementInfo::C10, L1XYMeasurementInfo::C11, L1UMeasurementInfo::cos_phi, L1Station::fieldSlice, fRadThick, L1Station::frontInfo, L1FieldSlice::GetFieldValue(), isec, kAllPrimEIter, kAllSecEIter, kAllSecIter, kAllSecJumpIter, L1AddMaterial(), L1AddPipeMaterial(), L1Extrapolate0(), L1ExtrapolateJXY0(), L1Filter(), L1FilterVtx(), L1Station::materialInfo, MaxInvMom, MaxSlope, NMvdStations, L1FieldRegion::Set(), L1UMeasurementInfo::sin_phi, StripsToCoor(), targX, targY, targZ, v, L1Station::XYInfo, and L1Station::z.
Referenced by DupletsStaPort().
|
inlineprivate |
Definition at line 288 of file L1CATrackFinder.cxx.
References L1Station::backInfo, L1TrackPar::C00, L1XYMeasurementInfo::C00, L1TrackPar::C11, L1XYMeasurementInfo::C11, L1TrackPar::chi2, DOUBLET_CHI2_CUT, L1HitPoint::DU(), L1HitPoint::DV(), fabs(), L1Station::frontInfo, fvecLen, L1HitArea::GetNext(), isec, L1ExtrapolateC10Line(), L1ExtrapolateXC00Line(), L1ExtrapolateYC11Line(), L1FilterChi2(), L1FilterChi2XYC00C10C11(), MaxDZ, L1HitPoint::N(), L1TrackPar::tx, L1TrackPar::ty, L1HitPoint::U(), L1HitPoint::V(), vGrid, L1HitPoint::X(), L1TrackPar::x, x, L1Station::XYInfo, L1HitPoint::Y(), L1TrackPar::y, y, L1HitPoint::Z(), and L1TrackPar::z.
Referenced by DupletsStaPort().
|
inlineprivate |
Propagate to right station. Find the triplets (right hit). Reformat data in the portion of triplets.
Propagate to right station. Find the triplets(right hit). Reformat data in the portion of triplets.
Definition at line 396 of file L1CATrackFinder.cxx.
References L1Station::backInfo, L1TrackPar::C00, L1XYMeasurementInfo::C00, L1TrackPar::C11, L1XYMeasurementInfo::C11, L1TrackPar::C22, L1TrackPar::C33, L1TrackPar::C44, L1TrackPar::chi2, L1HitPoint::DU(), L1HitPoint::DV(), fabs(), fRadThick, L1Station::frontInfo, fvecLen, L1HitArea::GetNext(), isec, kAllPrimEIter, kAllSecEIter, L1AddMaterial(), L1AddPipeMaterial(), L1Extrapolate(), L1ExtrapolateC10Line(), L1ExtrapolateLine(), L1ExtrapolateXC00Line(), L1ExtrapolateYC11Line(), L1Filter(), L1FilterChi2(), L1FilterChi2XYC00C10C11(), L1Station::materialInfo, MaxDZ, NMvdStations, NStations, L1TrackPar::qp, L1FieldRegion::SetOneEntry(), L1TrackPar::SetOneEntry(), TRIPLET_CHI2_CUT, L1TrackPar::tx, L1TrackPar::ty, L1HitPoint::U(), L1HitPoint::V(), vGrid, L1HitPoint::X(), L1TrackPar::x, x, L1Station::XYInfo, L1HitPoint::Y(), L1TrackPar::y, y, L1HitPoint::Z(), L1Station::z, and L1TrackPar::z.
Referenced by TripletsStaPort().
|
inlineprivate |
Definition at line 631 of file L1CATrackFinder.cxx.
References L1Station::backInfo, L1Station::frontInfo, L1ExtrapolateLine(), and L1Filter().
Referenced by TripletsStaPort().
|
inlineprivate |
Definition at line 659 of file L1CATrackFinder.cxx.
References _fvecalignment, L1StsHit::b, L1Station::backInfo, L1XYMeasurementInfo::C00, L1XYMeasurementInfo::C10, L1XYMeasurementInfo::C11, L1UMeasurementInfo::cos_phi, L1StsHit::f, L1Station::fieldSlice, fRadThick, L1Station::frontInfo, fvecLen, L1FieldSlice::GetFieldValue(), isec, L1StsHit::iz, kAllPrimEIter, kAllSecEIter, L1AddMaterial(), L1AddPipeMaterial(), L1Extrapolate(), L1Filter(), NMvdStations, L1TrackPar::qp, RealIHit, L1TrackPar::SetOneEntry(), L1UMeasurementInfo::sin_phi, StripsToCoor(), StsHitsUnusedStartIndex, v, vStsHits, vStsStrips, vStsStripsB, vStsZPos, x, L1Station::XYInfo, y, L1Station::z, and z.
|
inlineprivate |
Definition at line 902 of file L1CATrackFinder.cxx.
References L1TrackPar::C44, L1TrackPar::chi2, L1Triplet::Cqp, fabs(), fvecLen, isec, L1_ASSERT, MaxInvMom, L1TrackPar::qp, L1Triplet::Set(), StsHitsUnusedStartIndex, StsHitsUnusedStopIndex, and TRIPLET_CHI2_CUT.
Referenced by TripletsStaPort().
|
inlineprivate |
Definition at line 987 of file L1CATrackFinder.cxx.
References L1Triplet::Cqp, fabs(), FIRSTCASTATION, L1Triplet::GetChi2(), L1Triplet::GetLevel(), L1Triplet::GetLHit(), L1Triplet::GetMHit(), L1Triplet::GetMSta(), L1Triplet::GetQp(), L1Triplet::GetRHit(), L1Triplet::GetRSta(), isec, kAllPrimJumpIter, kAllSecJumpIter, kFastPrimJumpIter, L1_ASSERT, L1Triplet::neighbours, NStations, PickNeighbour, L1Triplet::Set(), StsHitsUnusedStopIndex, TripStartIndex, TripStopIndex, and vTriplets.
Referenced by CATrackFinder().
|
private |
Definition at line 727 of file L1TrackFitter.cxx.
References 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::chi2, L1TrackPar::NDF, NS_L1TrackFitter::ONE, NS_L1TrackFitter::vINF, L1TrackPar::x, x, L1Station::XYInfo, L1TrackPar::y, y, and NS_L1TrackFitter::ZERO.
Referenced by L1KFTrackFitter().
|
private |
Definition at line 155 of file L1CAMergeClones.cxx.
References i, InvertCholetsky(), m, MultiplyMS(), MultiplySR(), MultiplySS(), and W().
Referenced by CAMergeClones().
|
private |
Find additional hits for existing track t - track with hits T - track params dir - 0 - forward, 1 - backward qp0 - momentum for extrapolation initialize - should be params ititialized.
1 - yes.
Definition at line 198 of file L1TrackExtender.cxx.
References _fvecalignment, L1StsHit::b, L1Station::backInfo, L1XYMeasurementInfo::C00, L1XYMeasurementInfo::C11, L1HitPoint::DU(), L1HitPoint::DV(), L1StsHit::f, fabs(), L1Station::fieldSlice, FIRSTCASTATION, L1Station::frontInfo, L1FieldSlice::GetFieldValue(), GetFStation(), GetFUsed(), GetHitCoor(), L1HitArea::GetNext(), i, L1StsHit::iz, L1AddMaterial(), L1Extrapolate(), L1ExtrapolateLine(), L1ExtrapolateXC00Line(), L1ExtrapolateYC11Line(), L1Filter(), L1Station::materialInfo, MaxDZ, NStations, Pick_gather, RealIHit, StripsToCoor(), L1Branch::StsHits, StsHitsUnusedStartIndex, L1HitPoint::U(), L1HitPoint::V(), v, vGrid, vSFlag, vSFlagB, vStsHits, vStsHits2Unus, vStsStrips, vStsStripsB, vStsZPos, L1HitPoint::X(), x, L1Station::XYInfo, L1HitPoint::Y(), y, L1HitPoint::Z(), L1Station::z, and z.
Referenced by BranchExtender().
|
inlineprivate |
Definition at line 271 of file L1Algo.h.
Referenced by BranchFitterFast(), CATrackFinder(), FindMoreHits(), and KFTrackFitter_simple().
|
inlineprivate |
Definition at line 272 of file L1Algo.h.
Referenced by CAFindTrack(), CATrackFinder(), and FindMoreHits().
|
private |
Definition at line 173 of file L1Algo.cxx.
References L1StsHit::b, L1StsHit::f, L1StsHit::iz, StripsToCoor(), v, vStsStrips, vStsStripsB, vStsZPos, x, and y.
Referenced by FindMoreHits().
|
inlineprivate |
|
inlineprivate |
|
inline |
|
private |
Definition at line 656 of file L1TrackFitter.cxx.
References NS_L1TrackFitter::c_light_i, i, L1, L1TrackPar::qp, rcp(), rsqrt(), L1TrackPar::tx, L1TrackPar::ty, L1TrackPar::x, x, L1TrackPar::y, y, L1TrackPar::z, z, z0, and NS_L1TrackFitter::ZERO.
Referenced by L1KFTrackFitter().
| void L1Algo::Init | ( | const fscal | geo[] | ) |
Definition at line 3 of file L1Algo.cxx.
References L1Station::backInfo, L1XYMeasurementInfo::C00, L1XYMeasurementInfo::C10, L1XYMeasurementInfo::C11, L1UMeasurementInfo::cos_phi, L1FieldSlice::cx, L1FieldSlice::cy, L1FieldSlice::cz, fabs(), fGhostSuppression, L1Station::fieldSlice, fMomentumCutOff, L1Station::frontInfo, fTrackingLevel, i, L1MaterialInfo::logRadThick, L1Station::materialInfo, NMvdStations, NStations, L1MaterialInfo::RadThick, L1MaterialInfo::RL, L1Station::Rmax, L1Station::Rmin, L1UMeasurementInfo::sigma2, L1UMeasurementInfo::sin_phi, L1Station::Sy, L1MaterialInfo::thick, L1FieldValue::x, L1Station::xInfo, L1Station::XYInfo, L1FieldValue::y, L1Station::yInfo, L1FieldValue::z, L1Station::z, z, and z0.
|
private |
Definition at line 26 of file L1CAMergeClones.cxx.
Referenced by FilterTracks().
| void L1Algo::KFTrackFitter_simple | ( | ) |
Fit reconstracted track like it fitted during the reconstruction.
Definition at line 39 of file L1TrackFitter.cxx.
References _fvecalignment, L1StsHit::b, L1Station::backInfo, L1XYMeasurementInfo::C00, L1XYMeasurementInfo::C10, L1XYMeasurementInfo::C11, L1Track::CFirst, L1Track::chi2, L1Track::CLast, L1StsHit::f, L1Station::fieldSlice, L1Station::frontInfo, L1FieldSlice::GetFieldValue(), GetFStation(), i, L1StsHit::iz, L1AddMaterial(), L1Extrapolate(), L1Filter(), L1Station::materialInfo, L1Track::NDF, L1Track::NHits, StripsToCoor(), L1Track::TFirst, L1Track::TLast, v, NS_L1TrackFitter::vINF, vRecoHits, vSFlag, vStsHits, vStsStrips, vStsStripsB, vStsZPos, vTracks, x, L1Station::XYInfo, y, L1Station::z, and z0.
| void L1Algo::L1KFTrackFitter | ( | bool | extrapolateToTheEndOfSTS = false | ) |
Definition at line 325 of file L1TrackFitter.cxx.
References _fvecalignment, L1StsHit::b, L1TrackPar::C00, L1TrackPar::C10, L1TrackPar::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, L1Track::CFirst, L1Track::chi2, L1TrackPar::chi2, L1Track::CLast, L1FieldValue::Combine(), L1FieldSlice::cy, L1HitPoint::DU(), L1HitPoint::DV(), L1StsHit::f, L1Station::fieldSlice, FilterFirst(), fRadThick, fvecLen, L1FieldSlice::GetFieldValue(), GuessVec(), i, L1StsHit::iz, L1AddMaterial(), L1AddPipeMaterial(), L1Extrapolate(), L1Filter(), MaxNStations, L1Track::NDF, L1TrackPar::NDF, L1Track::NHits, NMvdStations, NStations, NS_L1TrackFitter::ONE, L1TrackPar::qp, StripsToCoor(), L1Station::Sy, L1Track::TFirst, L1Track::TLast, L1TrackPar::tx, L1TrackPar::ty, L1HitPoint::U(), L1HitPoint::V(), v, vAllHitPoints, vRecoHits, vSFlag, vStsHits, vStsStrips, vStsStripsB, vStsZPos, vTracks, L1HitPoint::X(), L1FieldValue::x, L1TrackPar::x, x, L1HitPoint::Y(), L1FieldValue::y, L1TrackPar::y, y, L1FieldValue::z, L1Station::z, L1TrackPar::z, z, and NS_L1TrackFitter::ZERO.
Referenced by CAMergeClones().
Definition at line 123 of file L1CAMergeClones.cxx.
Referenced by FilterTracks().
Definition at line 146 of file L1CAMergeClones.cxx.
Referenced by FilterTracks().
Definition at line 90 of file L1CAMergeClones.cxx.
Referenced by FilterTracks().
|
private |
|
inlineprivate |
|
inlineprivate |
Definition at line 278 of file L1Algo.h.
Referenced by CATrackFinder().
|
inlineprivate |
Definition at line 276 of file L1Algo.h.
Referenced by CATrackFinder().
|
private |
Definition at line 185 of file L1Algo.cxx.
References StripsToCoor(), v, x, and y.
Referenced by BranchFitterFast(), CreateHitPoint(), f11(), f32(), FindMoreHits(), GetHitCoor(), KFTrackFitter_simple(), L1KFTrackFitter(), and StripsToCoor().
|
private |
Definition at line 194 of file L1Algo.cxx.
|
inlineprivate |
----------------— 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.
Definition at line 1209 of file L1CATrackFinder.cxx.
References f30(), f31(), f4(), fvecLen, i, L1_assert, MaxPortionTriplets, NStations, RealIHit, StsHitsUnusedStartIndex, StsHitsUnusedStopIndex, and TRIPLET_CHI2_CUT.
Referenced by CATrackFinder().
|
friend |
|
private |
|
private |
|
private |
|
private |
| L1Station vStations [MaxNStations] L1Algo::_fvecalignment |
Definition at line 155 of file L1Algo.h.
Referenced by BranchFitterFast(), CAMergeClones(), f11(), f32(), FindMoreHits(), KFTrackFitter_simple(), and L1KFTrackFitter().
| double L1Algo::CATime |
Definition at line 185 of file L1Algo.h.
Referenced by L1Algo(), and CATrackFinder().
|
private |
Definition at line 524 of file L1Algo.h.
Referenced by L1Algo(), CATrackFinder(), and f20().
|
private |
Definition at line 564 of file L1Algo.h.
Referenced by L1Algo(), CATrackFinder(), and Init().
|
private |
--— Different parameters of CATrackFinder --—
Definition at line 476 of file L1Algo.h.
Referenced by L1Algo(), CATrackFinder(), f5(), and FindMoreHits().
|
private |
| vector<L1Material> L1Algo::fRadThick |
|
private |
| int L1Algo::isec |
|
private |
Definition at line 526 of file L1Algo.h.
Referenced by L1Algo(), CATrackFinder(), f20(), f30(), and FindMoreHits().
|
private |
|
private |
Definition at line 533 of file L1Algo.h.
Referenced by L1Algo(), CATrackFinder(), and f11().
| int L1Algo::NMvdStations |
Definition at line 154 of file L1Algo.h.
Referenced by L1Algo(), BranchFitterFast(), f11(), f30(), f32(), Init(), and L1KFTrackFitter().
| int L1Algo::NStations |
Definition at line 153 of file L1Algo.h.
Referenced by L1Algo(), CATrackFinder(), DupletsStaPort(), f30(), f5(), FindMoreHits(), Init(), InitL1Histo(), L1KFTrackFitter(), and TripletsStaPort().
|
private |
Definition at line 530 of file L1Algo.h.
Referenced by L1Algo(), CATrackFinder(), and FindMoreHits().
|
private |
Definition at line 531 of file L1Algo.h.
Referenced by L1Algo(), CAFindTrack(), CATrackFinder(), and f5().
| THitI* L1Algo::RealIHit |
Definition at line 174 of file L1Algo.h.
Referenced by L1Algo(), CAFindTrack(), CATrackFinder(), DupletsStaPort(), f32(), FindMoreHits(), and TripletsStaPort().
| THitI L1Algo::StsHitsStartIndex[MaxNStations+1] |
Definition at line 166 of file L1Algo.h.
Referenced by CATrackFinder().
| THitI L1Algo::StsHitsStopIndex[MaxNStations+1] |
Definition at line 167 of file L1Algo.h.
Referenced by CATrackFinder().
| THitI L1Algo::StsHitsUnusedStartIndex[MaxNStations+1] |
Definition at line 175 of file L1Algo.h.
Referenced by CATrackFinder(), DupletsStaPort(), f32(), f4(), FindMoreHits(), and TripletsStaPort().
| THitI L1Algo::StsHitsUnusedStopIndex[MaxNStations+1] |
Definition at line 175 of file L1Algo.h.
Referenced by CATrackFinder(), DupletsStaPort(), f4(), f5(), and TripletsStaPort().
|
private |
Definition at line 534 of file L1Algo.h.
Referenced by L1Algo(), CATrackFinder(), and f11().
|
private |
Definition at line 534 of file L1Algo.h.
Referenced by L1Algo(), CATrackFinder(), and f11().
|
private |
Definition at line 534 of file L1Algo.h.
Referenced by L1Algo(), CATrackFinder(), and f11().
|
private |
Definition at line 522 of file L1Algo.h.
Referenced by L1Algo(), and CAFindTrack().
|
private |
Definition at line 523 of file L1Algo.h.
Referenced by L1Algo(), CATrackFinder(), f30(), f4(), and TripletsStaPort().
|
private |
Definition at line 560 of file L1Algo.h.
Referenced by CAFindTrack(), CATrackFinder(), and f5().
|
private |
Definition at line 561 of file L1Algo.h.
Referenced by CATrackFinder(), and f5().
| vector<L1HitPoint> L1Algo::vAllHitPoints |
Definition at line 178 of file L1Algo.h.
Referenced by CATrackFinder(), and L1KFTrackFitter().
| L1Grid L1Algo::vGrid[MaxNStations] |
Definition at line 163 of file L1Algo.h.
Referenced by CATrackFinder(), f20(), f30(), and FindMoreHits().
| vector<THitI> L1Algo::vRecoHits |
Definition at line 183 of file L1Algo.h.
Referenced by L1Algo(), CAMergeClones(), CATrackFinder(), KFTrackFitter_simple(), and L1KFTrackFitter().
| vector<unsigned char> L1Algo::vSFlag |
Definition at line 164 of file L1Algo.h.
Referenced by L1Algo(), BranchFitterFast(), CAFindTrack(), CbmL1MCTrack::CalculateHitCont(), CAMergeClones(), CATrackFinder(), FindMoreHits(), KFTrackFitter_simple(), and L1KFTrackFitter().
| vector<unsigned char> L1Algo::vSFlagB |
Definition at line 165 of file L1Algo.h.
Referenced by L1Algo(), CAFindTrack(), CATrackFinder(), and FindMoreHits().
| std::vector<L1HitPoint>* L1Algo::vStsHitPointsUnused |
Definition at line 173 of file L1Algo.h.
Referenced by L1Algo(), and CATrackFinder().
| vector<L1StsHit> L1Algo::vStsHits |
Definition at line 162 of file L1Algo.h.
Referenced by L1Algo(), BranchFitterFast(), CbmL1MCTrack::CalculateHitCont(), CAMergeClones(), CATrackFinder(), f32(), FindMoreHits(), KFTrackFitter_simple(), and L1KFTrackFitter().
| vector<int> L1Algo::vStsHits2Unus |
Definition at line 177 of file L1Algo.h.
Referenced by BranchFitterFast(), CATrackFinder(), and FindMoreHits().
| vector<L1StsHit>* L1Algo::vStsHitsUnused |
Definition at line 172 of file L1Algo.h.
Referenced by L1Algo(), CAFindTrack(), and CATrackFinder().
| vector<L1Strip> L1Algo::vStsStrips |
Definition at line 159 of file L1Algo.h.
Referenced by L1Algo(), BranchFitterFast(), CATrackFinder(), CreateHitPoint(), f32(), FindMoreHits(), GetHitCoor(), KFTrackFitter_simple(), and L1KFTrackFitter().
| vector<L1Strip> L1Algo::vStsStripsB |
Definition at line 160 of file L1Algo.h.
Referenced by L1Algo(), BranchFitterFast(), CATrackFinder(), CreateHitPoint(), f32(), FindMoreHits(), GetHitCoor(), KFTrackFitter_simple(), and L1KFTrackFitter().
| vector<fscal> L1Algo::vStsZPos |
Definition at line 161 of file L1Algo.h.
Referenced by L1Algo(), BranchFitterFast(), CreateHitPoint(), f32(), FindMoreHits(), GetHitCoor(), KFTrackFitter_simple(), and L1KFTrackFitter().
| vector<L1Track> L1Algo::vTracks |
Definition at line 182 of file L1Algo.h.
Referenced by L1Algo(), CAMergeClones(), CATrackFinder(), KFTrackFitter_simple(), and L1KFTrackFitter().
|
private |
Definition at line 559 of file L1Algo.h.
Referenced by L1Algo(), CAFindTrack(), CATrackFinder(), and f5().