File indexing completed on 2023-03-17 11:13:47
0001
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 };
0078 #endif