Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:21:56

0001 // TrackletEventProcessor: Class responsible for the main event processing for the tracklet algorithm
0002 #ifndef L1Trigger_TrackFindingTracklet_interface_TrackletEventProcessor_h
0003 #define L1Trigger_TrackFindingTracklet_interface_TrackletEventProcessor_h
0004 
0005 #include "L1Trigger/TrackFindingTracklet/interface/Timer.h"
0006 
0007 #include <map>
0008 #include <memory>
0009 #include <vector>
0010 #include <deque>
0011 #include <string>
0012 
0013 namespace tt {
0014   class Setup;
0015 }
0016 
0017 namespace trklet {
0018 
0019   class Settings;
0020   class SLHCEvent;
0021   class Globals;
0022   class Sector;
0023   class HistBase;
0024   class Track;
0025   class StubStreamData;
0026 
0027   class TrackletEventProcessor {
0028   public:
0029     TrackletEventProcessor();
0030 
0031     ~TrackletEventProcessor();
0032 
0033     void init(Settings const& theSettings, const tt::Setup* setup = nullptr);
0034 
0035     void event(SLHCEvent& ev,
0036                std::vector<std::vector<std::string>>& streamsTrackRaw,
0037                std::vector<std::vector<StubStreamData>>& streamsStubRaw);
0038 
0039     void printSummary();
0040 
0041     const std::vector<Track>& tracks() const { return tracks_; }
0042 
0043   private:
0044     void configure(std::istream& inwire, std::istream& inmem, std::istream& inproc);
0045 
0046     const Settings* settings_{nullptr};
0047 
0048     std::unique_ptr<Globals> globals_;
0049 
0050     std::unique_ptr<Sector> sector_;
0051 
0052     HistBase* histbase_{};
0053 
0054     int eventnum_ = {0};
0055 
0056     Timer cleanTimer_;
0057     Timer addStubTimer_;
0058     Timer InputRouterTimer_;
0059     Timer VMRouterTimer_;
0060     Timer TETimer_;
0061     Timer TEDTimer_;
0062     Timer TRETimer_;
0063     Timer TPTimer_;
0064     Timer TPDTimer_;
0065     Timer TCTimer_;
0066     Timer TCDTimer_;
0067     Timer PRTimer_;
0068     Timer METimer_;
0069     Timer MCTimer_;
0070     Timer MPTimer_;
0071     Timer FTTimer_;
0072     Timer PDTimer_;
0073 
0074     std::vector<Track> tracks_;
0075   };
0076 
0077 };  // namespace trklet
0078 #endif