CbmRoot
Loading...
Searching...
No Matches
CbmL1PFFitter.h
Go to the documentation of this file.
1/* Copyright (C) 2011-2025 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Maksym Zyzak [committer] */
4
5/*
6 *=====================================================
7 *
8 * CBM Level 1 Reconstruction
9 *
10 * Authors: M.Zyzak
11 *
12 * e-mail :
13 *
14 *=====================================================
15 *
16 * Finds Particles: Lambdas, K0
17 *
18 */
19
20#ifndef _CbmL1PFFitter_h_
21#define _CbmL1PFFitter_h_
22
23#include "CaSimd.h"
24#include "KfFieldRegion.h"
25
26#include <vector>
27
28// FIXME: This class is to be fully refactored
29
30class CbmMvdHit;
31class CbmStsHit;
32class CbmStsTrack;
33class CbmKFVertex;
34class TClonesArray;
35
37 public:
38 // A container for parameters of kf::FieldRegion
47
48 CbmL1PFFitter() = default;
49 ~CbmL1PFFitter() = default;
50
51 //functions for fitting CbmStsTrack
52 void Fit(std::vector<CbmStsTrack>& Tracks, const std::vector<CbmMvdHit>& vMvdHits,
53 const std::vector<CbmStsHit>& vStsHits, const std::vector<int>& pidHypo);
54 void Fit(std::vector<CbmStsTrack>& Tracks, const std::vector<int>& pidHypo);
55 void CalculateFieldRegion(std::vector<CbmStsTrack>& Tracks, std::vector<PFFieldRegion>& Field);
56 void CalculateFieldRegionAtLastPoint(std::vector<CbmStsTrack>& Tracks, std::vector<PFFieldRegion>& field);
57 void GetChiToVertex(std::vector<CbmStsTrack>& Tracks, std::vector<PFFieldRegion>& field, std::vector<float>& chiToVtx,
58 CbmKFVertex& primVtx, float chiPrim = -1);
59
60 private:
61 void Initialize();
62 int GetMvdStationIndex(const CbmMvdHit* h);
63 int GetStsStationIndex(const CbmStsHit* h);
64
65 private:
66 bool fIsInitialised = {false}; // is the fitter initialised
67 int fNmvdStationsActive = {0}; // n MVD stations
68 int fNstsStationsActive = {0}; // n STS stations
69 TClonesArray* fMvdHitArray{nullptr}; // pointer to MVD hits
70 TClonesArray* fStsHitArray{nullptr}; // pointer to STS hits
71};
72#endif
Magnetic flux density interpolation along the track vs. z-coordinate (header)
int GetMvdStationIndex(const CbmMvdHit *h)
TClonesArray * fStsHitArray
TClonesArray * fMvdHitArray
void GetChiToVertex(std::vector< CbmStsTrack > &Tracks, std::vector< PFFieldRegion > &field, std::vector< float > &chiToVtx, CbmKFVertex &primVtx, float chiPrim=-1)
void Fit(std::vector< CbmStsTrack > &Tracks, const std::vector< CbmMvdHit > &vMvdHits, const std::vector< CbmStsHit > &vStsHits, const std::vector< int > &pidHypo)
int GetStsStationIndex(const CbmStsHit *h)
void CalculateFieldRegion(std::vector< CbmStsTrack > &Tracks, std::vector< PFFieldRegion > &Field)
~CbmL1PFFitter()=default
void CalculateFieldRegionAtLastPoint(std::vector< CbmStsTrack > &Tracks, std::vector< PFFieldRegion > &field)
CbmL1PFFitter()=default
data class for a reconstructed 3-d hit in the STS
Definition CbmStsHit.h:35
Data class with information on a STS local track.
Magnetic field manager class.
Definition KfField.h:272
Magnetic field region, corresponding to a hit triplet.
void getL1FieldRegion(cbm::algo::kf::FieldRegion< cbm::algo::kf::fvec > &, int i)
void setFromL1FieldRegion(const cbm::algo::kf::FieldRegion< cbm::algo::kf::fvec > &, int i)