|
BmnRoot
|
#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 |
Friends | |
| class | CbmL1 |
| 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().
|
inline |
Definition at line 158 of file L1Algo.h.
Referenced by CbmL1PFFitter::CalculateFieldRegion(), CbmL1PFFitter::CalculateFieldRegion(), and CbmL1PFFitter::GetChiToVertex().
| void L1Algo::Init | ( | const fscal | geo[] | ) |
Definition at line 3 of file L1Algo.cxx.
References L1Station::backInfo, L1XYMeasurementInfo::C00, L1XYMeasurementInfo::C10, L1XYMeasurementInfo::C11, cos(), L1UMeasurementInfo::cos_phi, L1FieldSlice::cx, L1FieldSlice::cy, L1FieldSlice::cz, fabs(), L1Station::fieldSlice, L1Station::frontInfo, i, log(), L1MaterialInfo::logRadThick, L1Station::materialInfo, NMvdStations, NStations, L1MaterialInfo::RadThick, L1MaterialInfo::RL, L1Station::Rmax, L1Station::Rmin, L1UMeasurementInfo::sigma2, sin(), L1UMeasurementInfo::sin_phi, L1Station::Sy, L1MaterialInfo::thick, L1FieldValue::x, L1Station::xInfo, L1Station::XYInfo, L1FieldValue::y, L1Station::yInfo, L1FieldValue::z, L1Station::z, and z0.
Referenced by CbmL1::Init().
| void L1Algo::KFTrackFitter_simple | ( | ) |
Track fitting procedures.
Fit reconstracted track like it fitted during the reconstruction.
Definition at line 41 of file L1TrackFitter.cxx.
References _fvecalignment, L1StsHit::b, 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, L1Track::CFirst, L1Track::chi2, L1TrackPar::chi2, L1Track::CLast, L1StsHit::f, L1Station::fieldSlice, L1Station::frontInfo, L1FieldSlice::GetFieldValue(), i, L1StsHit::iz, L1AddMaterial(), L1Extrapolate(), L1Filter(), L1Station::materialInfo, L1Track::NDF, L1TrackPar::NDF, L1Track::NHits, L1TrackPar::qp, L1Track::TFirst, L1Track::TLast, L1TrackPar::tx, L1TrackPar::ty, v, NS_L1TrackFitter::vINF, vRecoHits, vSFlag, vStsHits, vStsStrips, vStsStripsB, vStsZPos, vTracks, L1TrackPar::x, L1Station::XYInfo, L1TrackPar::y, L1Station::z, L1TrackPar::z, and z0.
| void L1Algo::L1KFTrackFitter | ( | bool | extrapolateToTheEndOfSTS = false | ) |
Definition at line 329 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, fRadThick, fvecLen, L1FieldSlice::GetFieldValue(), i, L1StsHit::iz, L1AddMaterial(), L1AddPipeMaterial(), L1Extrapolate(), L1Filter(), MaxNStations, L1Track::NDF, L1TrackPar::NDF, L1Track::NHits, NMvdStations, NStations, NS_L1TrackFitter::ONE, L1TrackPar::qp, L1Station::Sy, L1Track::TFirst, L1Track::TLast, L1TrackPar::tx, L1TrackPar::ty, L1HitPoint::U(), L1HitPoint::V(), v, vAllHitPoints, vRecoHits, vSFlag, vStsHits, vStsStrips, vStsStripsB, vStsZPos, vTracks, L1FieldValue::x, L1HitPoint::X(), L1TrackPar::x, L1FieldValue::y, L1HitPoint::Y(), L1TrackPar::y, L1FieldValue::z, L1Station::z, L1TrackPar::z, and NS_L1TrackFitter::ZERO.
Referenced by CbmL1::Reconstruct().
| L1Station vStations [MaxNStations] L1Algo::_fvecalignment |
Definition at line 125 of file L1Algo.h.
Referenced by KFTrackFitter_simple(), and L1KFTrackFitter().
| double L1Algo::CATime |
Definition at line 154 of file L1Algo.h.
Referenced by CATrackFinder().
| vector<L1Material> L1Algo::fRadThick |
Definition at line 127 of file L1Algo.h.
Referenced by CbmL1::Init(), and L1KFTrackFitter().
| int L1Algo::isec |
— data used during finding iterations
Definition at line 140 of file L1Algo.h.
Referenced by CATrackFinder().
| int L1Algo::NMvdStations |
Definition at line 124 of file L1Algo.h.
Referenced by CbmL1PFFitter::CalculateFieldRegion(), CbmL1PFFitter::CalculateFieldRegion(), CbmL1PFFitter::Fit(), CbmL1PFFitter::Fit(), CbmL1PFFitter::GetChiToVertex(), CbmL1PFFitter::GetChiToVertex(), CbmL1::Init(), Init(), and L1KFTrackFitter().
| int L1Algo::NStations |
Definition at line 123 of file L1Algo.h.
Referenced by CATrackFinder(), CbmL1PFFitter::Fit(), CbmL1PFFitter::Fit(), CbmL1PFFitter::GetChiToVertex(), CbmL1PFFitter::GetChiToVertex(), CbmL1::Init(), Init(), L1AlgoDraw::InitL1Draw(), InitL1Histo(), and L1KFTrackFitter().
| THitI* L1Algo::RealIHit |
Definition at line 143 of file L1Algo.h.
Referenced by CATrackFinder().
| THitI L1Algo::StsHitsStartIndex[MaxNStations+1] |
Definition at line 136 of file L1Algo.h.
Referenced by CATrackFinder(), and L1AlgoDraw::InitL1Draw().
| THitI L1Algo::StsHitsStopIndex[MaxNStations+1] |
Definition at line 136 of file L1Algo.h.
Referenced by CATrackFinder(), and L1AlgoDraw::InitL1Draw().
| THitI L1Algo::StsHitsUnusedStartIndex[MaxNStations+1] |
Definition at line 144 of file L1Algo.h.
Referenced by CATrackFinder().
| THitI L1Algo::StsHitsUnusedStopIndex[MaxNStations+1] |
Definition at line 144 of file L1Algo.h.
Referenced by CATrackFinder().
| vector<L1HitPoint> L1Algo::vAllHitPoints |
Definition at line 147 of file L1Algo.h.
Referenced by CATrackFinder(), and L1KFTrackFitter().
| L1Grid L1Algo::vGrid[MaxNStations] |
Definition at line 133 of file L1Algo.h.
Referenced by CATrackFinder().
| vector< THitI > L1Algo::vRecoHits |
Definition at line 152 of file L1Algo.h.
Referenced by CATrackFinder(), L1AlgoDraw::DrawInfo(), L1AlgoDraw::DrawRecoTracks(), KFTrackFitter_simple(), L1KFTrackFitter(), and CbmL1::Reconstruct().
| vector< unsigned char > L1Algo::vSFlag |
Definition at line 134 of file L1Algo.h.
Referenced by CATrackFinder(), KFTrackFitter_simple(), L1KFTrackFitter(), and CbmL1::Reconstruct().
| vector< unsigned char > L1Algo::vSFlagB |
Definition at line 135 of file L1Algo.h.
Referenced by CATrackFinder(), and CbmL1::Reconstruct().
| std::vector< L1HitPoint >* L1Algo::vStsHitPointsUnused |
Definition at line 142 of file L1Algo.h.
Referenced by CATrackFinder().
| vector< L1StsHit > L1Algo::vStsHits |
Definition at line 132 of file L1Algo.h.
Referenced by CATrackFinder(), L1AlgoDraw::DrawInfo(), L1AlgoDraw::InitL1Draw(), KFTrackFitter_simple(), L1KFTrackFitter(), and CbmL1::Reconstruct().
| vector<int> L1Algo::vStsHits2Unus |
Definition at line 146 of file L1Algo.h.
Referenced by CATrackFinder().
| vector< L1StsHit >* L1Algo::vStsHitsUnused |
Definition at line 141 of file L1Algo.h.
Referenced by CATrackFinder().
| vector< L1Strip > L1Algo::vStsStrips |
Definition at line 129 of file L1Algo.h.
Referenced by CATrackFinder(), L1AlgoDraw::InitL1Draw(), KFTrackFitter_simple(), L1KFTrackFitter(), and CbmL1::Reconstruct().
| vector< L1Strip > L1Algo::vStsStripsB |
Definition at line 130 of file L1Algo.h.
Referenced by CATrackFinder(), L1AlgoDraw::InitL1Draw(), KFTrackFitter_simple(), L1KFTrackFitter(), and CbmL1::Reconstruct().
| vector< fscal > L1Algo::vStsZPos |
Definition at line 131 of file L1Algo.h.
Referenced by KFTrackFitter_simple(), L1KFTrackFitter(), and CbmL1::Reconstruct().
| vector< L1Track > L1Algo::vTracks |
--— Output data --—
Definition at line 151 of file L1Algo.h.
Referenced by CATrackFinder(), L1AlgoDraw::DrawInfo(), L1AlgoDraw::DrawRecoTracks(), KFTrackFitter_simple(), L1KFTrackFitter(), and CbmL1::Reconstruct().