PandaRoot
PndFtsReconMerge.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 //
14 // Created by Bartosz Sobol on 30.03.2021.
15 //
16 
17 #pragma once
18 
19 #include "tool/PndFtsMath.h"
20 #include "tool/PndFtsTrack.h"
21 #include "tool/PndFtsContext.h"
22 #include <optional>
23 
24 namespace PndFtsTrackFinder {
25 
27  public:
28  PndFtsReconMerge() = delete;
29 
30  explicit PndFtsReconMerge(const PndFtsContext &context);
31 
32  PndFtsReconMerge(const PndFtsContext &&context) = delete;
33 
34  [[nodiscard]] FullTrackVector Exec(const LineTrackVector &ft12Tracks, const CircleTrackVector &ft34Tracks, const LineTrackVector &ft56Tracks) const;
35 
36  private:
37  void ExecItem(const LineTrackVector &ft12Tracks, const LineTrackVector &ft56Tracks, const CircleTrackVector &ft34Tracks, const std::vector<TrackRange> &track56Ranges,
38  const std::vector<TrackRange> &track1234Ranges, std::vector<std::optional<std::size_t>> &foundMatches) const;
39 
40  const PndFtsContext &fContext;
41 };
42 
43 } // namespace PndFtsTrackFinder
std::vector< CircleTrack > CircleTrackVector
Definition: PndFtsTrack.h:95
std::vector< LineTrack > LineTrackVector
Definition: PndFtsTrack.h:61
std::vector< PndFtsFullTrack > FullTrackVector
Definition: PndFtsTrack.h:144
FullTrackVector Exec(const LineTrackVector &ft12Tracks, const CircleTrackVector &ft34Tracks, const LineTrackVector &ft56Tracks) const