File indexing completed on 2024-04-06 12:21:53
0001 #ifndef L1Trigger_TrackFindingTracklet_interface_FullMatchMemory_h
0002 #define L1Trigger_TrackFindingTracklet_interface_FullMatchMemory_h
0003
0004 #include "L1Trigger/TrackFindingTracklet/interface/MemoryBase.h"
0005
0006 #include <vector>
0007 #include <string>
0008 #include <utility>
0009
0010 namespace trklet {
0011
0012 class Settings;
0013 class Stub;
0014 class L1TStub;
0015 class Tracklet;
0016
0017 class FullMatchMemory : public MemoryBase {
0018 public:
0019 FullMatchMemory(std::string name, Settings const& settings);
0020
0021 ~FullMatchMemory() override = default;
0022
0023 void addMatch(Tracklet* tracklet, const Stub* stub);
0024
0025 unsigned int nMatches() const { return matches_.size(); }
0026
0027 Tracklet* getTracklet(unsigned int i) { return matches_[i].first; }
0028
0029 std::pair<Tracklet*, const Stub*> getMatch(unsigned int i) { return matches_[i]; }
0030
0031 void clean() override { matches_.clear(); }
0032
0033 void writeMC(bool first, unsigned int iSector);
0034
0035 int layer() const { return layer_; }
0036 int disk() const { return disk_; }
0037
0038 private:
0039 std::vector<std::pair<Tracklet*, const Stub*> > matches_;
0040
0041 int layer_;
0042 int disk_;
0043 };
0044
0045 };
0046 #endif