CbmRoot
Loading...
Searching...
No Matches
CaTrackFinder.h
Go to the documentation of this file.
1/* Copyright (C) 2022 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Sergei Zharko [committer], Maksym Zyzak */
4
6
7#pragma once // include this header only once per compilation unit
8
9#include "CaSimd.h"
10#include "CaTimesliceHeader.h"
11#include "CaTrackExtender.h"
12#include "CaTrackFinderWindow.h"
13#include "CaTrackFitter.h"
14#include "CaVector.h"
15#include "KfTrackParam.h"
16
17#include <vector>
18
19namespace cbm::algo::ca
20{
21
22 class Track;
23 class Triplet;
24 class Framework;
25
29 public:
30 typedef std::pair<Vector<Track>, Vector<ca::HitIndex_t>> Output_t;
31
33 TrackFinder(const ca::Parameters<fvec>& pars, const fscal mass, const ca::TrackingMode& mode,
34 TrackingMonitorData& monitorData, int nThreads, double& recoTime);
36 ~TrackFinder() = default;
37
39 TrackFinder(const TrackFinder&) = delete;
40
43
46
49
50 Output_t FindTracks(const InputData& input, TimesliceHeader& tsHeader);
51
52 const auto& GetRecoTracksContainer(int iThread) const { return fvRecoTracks[iThread]; }
53 const auto& GetRecoHitIndicesContainer(int iThread) const { return fvRecoHitIndices[iThread]; }
55 const std::vector<ca::WindowData>& GetWData() const { return fvWData; }
56
57 private:
58 // -------------------------------
59 // Private methods
60 void FindTracksThread(const InputData& input, int iThread, std::pair<fscal, fscal>& windowRange, int& statNwindows,
61 int& statNhitsProcessed);
62 // bool checkTripletMatch(const ca::Triplet& l, const ca::Triplet& r, fscal& dchi2) const;
63
64 // -------------------------------
65 // Data members
66
68
72
74 std::vector<TrackingMonitorData> fvMonitorDataThread;
75
76 std::vector<ca::WindowData> fvWData;
77
79 double& fCaRecoTime; // time of the track finder + fitter
80
81 std::vector<Vector<Track>> fvRecoTracks;
82 std::vector<Vector<HitIndex_t>> fvRecoHitIndices;
83
88 };
89
90} // namespace cbm::algo::ca
A structure to keep all the common information on the timeslice coming from tracking.
A class wrapper over clones merger algorithm for the CA track finder (declaration)
A container for all external parameters of the CA tracking algorithm.
Structure for keeping the current information on the timeslice.
const Parameters< fvec > & fParameters
Object of Framework parameters class.
TrackFinder & operator=(const TrackFinder &)=delete
Copy assignment operator.
TrackingMode GetTrackingMode() const
ca::TrackingMode fTrackingMode
std::vector< ca::WindowData > fvWData
Intrnal data processed in a time-window.
Vector< CaHitTimeInfo > fHitTimeInfo
~TrackFinder()=default
Destructor.
const auto & GetRecoTracksContainer(int iThread) const
int fNofThreads
Number of threads to execute the track-finder.
TrackFinder(const TrackFinder &)=delete
Copy constructor.
const auto & GetRecoHitIndicesContainer(int iThread) const
const std::vector< ca::WindowData > & GetWData() const
void FindTracksThread(const InputData &input, int iThread, std::pair< fscal, fscal > &windowRange, int &statNwindows, int &statNhitsProcessed)
std::vector< TrackingMonitorData > fvMonitorDataThread
Tracking monitor data per thread.
std::pair< Vector< Track >, Vector< ca::HitIndex_t > > Output_t
fscal fWindowLength
Time window length [ns].
TrackFinder(const ca::Parameters< fvec > &pars, const fscal mass, const ca::TrackingMode &mode, TrackingMonitorData &monitorData, int nThreads, double &recoTime)
Default constructora.
TrackFinder & operator=(TrackFinder &&)=delete
Move assignment operator.
TrackFinder(TrackFinder &&)=delete
Move constructor.
TrackingMonitorData & fMonitorData
Tracking monitor data (statistics per call)
fscal fDefaultMass
mass of the propagated particle [GeV/c2]
std::vector< Vector< Track > > fvRecoTracks
reconstructed tracks
std::vector< Vector< HitIndex_t > > fvRecoHitIndices
packed hits of reconstructed tracks
constexpr fscal MuonMass
Particle masses etc used for the track fit, fscal precision.
Definition CaDefs.h:83
TODO: SZh 8.11.2022: add selection of parameterisation.
Definition CaBranch.h:14
@ Triplet
number of triplets
kf::fscal fscal
Definition CaSimd.h:14