Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-07-07 22:33:29

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 <string>
0011 
0012 namespace trklet {
0013 
0014   class Settings;
0015   class SLHCEvent;
0016   class Globals;
0017   class Sector;
0018   class HistBase;
0019   class Track;
0020 
0021   class TrackletEventProcessor {
0022   public:
0023     TrackletEventProcessor();
0024 
0025     ~TrackletEventProcessor();
0026 
0027     void init(Settings const& theSettings);
0028 
0029     void event(SLHCEvent& ev);
0030 
0031     void printSummary();
0032 
0033     const std::vector<Track>& tracks() const { return tracks_; }
0034 
0035   private:
0036     void configure(std::istream& inwire, std::istream& inmem, std::istream& inproc);
0037 
0038     const Settings* settings_{nullptr};
0039 
0040     std::unique_ptr<Globals> globals_;
0041 
0042     std::unique_ptr<Sector> sector_;
0043 
0044     HistBase* histbase_{};
0045 
0046     int eventnum_ = {0};
0047 
0048     Timer cleanTimer_;
0049     Timer addStubTimer_;
0050     Timer InputRouterTimer_;
0051     Timer VMRouterTimer_;
0052     Timer TETimer_;
0053     Timer TEDTimer_;
0054     Timer TRETimer_;
0055     Timer TPTimer_;
0056     Timer TCTimer_;
0057     Timer TCDTimer_;
0058     Timer PRTimer_;
0059     Timer METimer_;
0060     Timer MCTimer_;
0061     Timer MPTimer_;
0062     Timer FTTimer_;
0063     Timer PDTimer_;
0064 
0065     std::vector<Track> tracks_;
0066   };
0067 
0068 };  // namespace trklet
0069 #endif