Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:13:47

0001 #ifndef L1Trigger_TrackFindingTracklet_interface_TrackFitMemory_h
0002 #define L1Trigger_TrackFindingTracklet_interface_TrackFitMemory_h
0003 
0004 #include "L1Trigger/TrackFindingTracklet/interface/MemoryBase.h"
0005 
0006 #include <vector>
0007 
0008 namespace trklet {
0009 
0010   class Settings;
0011   class Stub;
0012   class L1TStub;
0013   class Tracklet;
0014 
0015   class TrackFitMemory : public MemoryBase {
0016   public:
0017     TrackFitMemory(std::string name, Settings const& settings, double phimin, double phimax);
0018 
0019     ~TrackFitMemory() override = default;
0020 
0021     void addTrack(Tracklet* tracklet) { tracks_.push_back(tracklet); }
0022     void addStubList(std::vector<const Stub*> stublist) { stublists_.push_back(stublist); }
0023     void addStubidsList(std::vector<std::pair<int, int>> stubidslist) { stubidslists_.push_back(stubidslist); }
0024 
0025     unsigned int nTracks() const { return tracks_.size(); }
0026     unsigned int nStublists() const { return stublists_.size(); }
0027     unsigned int nStubidslists() const { return stubidslists_.size(); }
0028 
0029     Tracklet* getTrack(unsigned int i) { return tracks_[i]; }
0030     std::vector<const Stub*> getStublist(unsigned int i) const { return stublists_[i]; }
0031     std::vector<std::pair<int, int>> getStubidslist(unsigned int i) const { return stubidslists_[i]; }
0032 
0033     void clean() override {
0034       tracks_.clear();
0035       stublists_.clear();
0036       stubidslists_.clear();
0037     }
0038 
0039     void writeTF(bool first, unsigned int iSector);
0040 
0041   private:
0042     double phimin_;
0043     double phimax_;
0044     std::vector<Tracklet*> tracks_;
0045     std::vector<std::vector<const Stub*>> stublists_;
0046     std::vector<std::vector<std::pair<int, int>>> stubidslists_;
0047   };
0048 
0049 };  // namespace trklet
0050 #endif