File indexing completed on 2025-06-03 00:12:20
0001 #ifndef L1Trigger_TrackFindingTracklet_DuplicateRemoval_h
0002 #define L1Trigger_TrackFindingTracklet_DuplicateRemoval_h
0003
0004 #include "L1Trigger/TrackTrigger/interface/Setup.h"
0005 #include "L1Trigger/TrackerTFP/interface/LayerEncoding.h"
0006 #include "L1Trigger/TrackFindingTracklet/interface/DataFormats.h"
0007 #include "L1Trigger/TrackFindingTracklet/interface/ChannelAssignment.h"
0008
0009 #include <vector>
0010
0011 namespace trklet {
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 class DuplicateRemoval {
0022 public:
0023 DuplicateRemoval(const tt::Setup* setup_,
0024 const trackerTFP::LayerEncoding* layerEncoding,
0025 const DataFormats* dataFormats,
0026 const ChannelAssignment* channelAssignment,
0027 int region);
0028 ~DuplicateRemoval() = default;
0029
0030 void consume(const tt::StreamsTrack& streamsTrack, const tt::StreamsStub& streamsStub);
0031
0032 void produce(tt::StreamsTrack& acceptedTracks, tt::StreamsStub& accpetedStubs);
0033
0034 private:
0035 struct Stub {
0036 Stub(const tt::FrameStub& frame, int stubId, int layer) : frame_(frame), stubId_(stubId), layer_(layer) {}
0037
0038 tt::FrameStub frame_;
0039
0040 int stubId_;
0041
0042 int layer_;
0043 };
0044 struct Track {
0045
0046 static constexpr int max_ = 11;
0047 Track() { stubs_.reserve(max_); }
0048 Track(const tt::FrameTrack& frame, const std::vector<Stub*>& stubs) : frame_(frame), stubs_(stubs) {}
0049 tt::FrameTrack frame_;
0050 std::vector<Stub*> stubs_;
0051 };
0052
0053 bool equalEnough(Track* t0, Track* t1) const;
0054
0055 bool enableTruncation_;
0056
0057 const tt::Setup* setup_;
0058
0059 const trackerTFP::LayerEncoding* layerEncoding_;
0060
0061 const DataFormats* dataFormats_;
0062
0063 const ChannelAssignment* channelAssignment_;
0064
0065 const int region_;
0066
0067 std::vector<Track> tracks_;
0068
0069 std::vector<Stub> stubs_;
0070
0071 std::vector<Track*> input_;
0072
0073 DataFormat r_;
0074
0075 int tmNumLayers_;
0076
0077 DataFormat phi_;
0078 };
0079
0080 }
0081
0082 #endif