File indexing completed on 2024-04-06 12:21:53
0001 #ifndef L1Trigger_TrackFindingTracklet_interface_FitTrack_H
0002 #define L1Trigger_TrackFindingTracklet_interface_FitTrack_H
0003
0004 #include "L1Trigger/TrackFindingTracklet/interface/ProcessBase.h"
0005 #include "L1Trigger/TrackFindingTracklet/interface/TrackletParametersMemory.h"
0006 #include "L1Trigger/TrackFindingTracklet/interface/FullMatchMemory.h"
0007 #include "L1Trigger/TrackFindingTracklet/interface/TrackFitMemory.h"
0008 #include "L1Trigger/TrackFindingTracklet/interface/StubStreamData.h"
0009
0010 #include <vector>
0011 #include <deque>
0012
0013 namespace trklet {
0014
0015 class Settings;
0016 class Globals;
0017 class Stub;
0018
0019 class FitTrack : public ProcessBase {
0020 public:
0021 FitTrack(std::string name, Settings const& settings, Globals* global);
0022
0023 ~FitTrack() override = default;
0024
0025 void addOutput(MemoryBase* memory, std::string output) override;
0026
0027 void addInput(MemoryBase* memory, std::string input) override;
0028
0029
0030 void trackFitChisq(Tracklet* tracklet, std::vector<const Stub*>&, std::vector<std::pair<int, int>>&);
0031
0032
0033
0034
0035
0036 void trackFitKF(Tracklet* tracklet,
0037 std::vector<const Stub*>& trackstublist,
0038 std::vector<std::pair<int, int>>& stubidslist);
0039
0040
0041 void trackFitFake(Tracklet* tracklet, std::vector<const Stub*>&, std::vector<std::pair<int, int>>&);
0042
0043 std::vector<Tracklet*> orderedMatches(std::vector<FullMatchMemory*>& fullmatch);
0044
0045 void execute(std::deque<std::string>& streamTrackRaw,
0046 std::vector<std::deque<StubStreamData>>& stubStream,
0047 unsigned int iSector);
0048
0049 private:
0050 std::vector<TrackletParametersMemory*> seedtracklet_;
0051 std::vector<FullMatchMemory*> fullmatch1_;
0052 std::vector<FullMatchMemory*> fullmatch2_;
0053 std::vector<FullMatchMemory*> fullmatch3_;
0054 std::vector<FullMatchMemory*> fullmatch4_;
0055
0056 unsigned int iSector_;
0057
0058 TrackFitMemory* trackfit_;
0059 };
0060
0061 };
0062 #endif