File indexing completed on 2022-10-14 01:44:00
0001 #ifndef L1Trigger_TrackFindingTracklet_interface_PurgeDuplicate_h
0002 #define L1Trigger_TrackFindingTracklet_interface_PurgeDuplicate_h
0003
0004 #include "L1Trigger/TrackFindingTracklet/interface/TrackFitMemory.h"
0005 #include "L1Trigger/TrackFindingTracklet/interface/CleanTrackMemory.h"
0006 #include "L1Trigger/TrackFindingTracklet/interface/ProcessBase.h"
0007
0008 #include <vector>
0009
0010
0011
0012
0013
0014
0015
0016
0017 namespace trklet {
0018
0019 class Settings;
0020 class Globals;
0021 class MemoryBase;
0022 class Stub;
0023 class L1TStub;
0024 class Track;
0025 class Tracklet;
0026
0027 class PurgeDuplicate : public ProcessBase {
0028 public:
0029 PurgeDuplicate(std::string name, Settings const& settings, Globals* global);
0030
0031 ~PurgeDuplicate() override = default;
0032
0033 void addOutput(MemoryBase* memory, std::string output) override;
0034 void addInput(MemoryBase* memory, std::string input) override;
0035
0036 void execute(std::vector<Track>& outputtracks_, unsigned int iSector);
0037
0038 private:
0039 double getPhiRes(Tracklet* curTracklet, const Stub* curStub);
0040
0041 std::vector<Track*> inputtracks_;
0042 std::vector<std::vector<const Stub*>> inputstublists_;
0043 std::vector<std::vector<std::pair<int, int>>> inputstubidslists_;
0044 std::vector<std::vector<std::pair<int, int>>> mergedstubidslists_;
0045 std::vector<TrackFitMemory*> inputtrackfits_;
0046 std::vector<Tracklet*> inputtracklets_;
0047 std::vector<CleanTrackMemory*> outputtracklets_;
0048 };
0049
0050 };
0051 #endif