File indexing completed on 2024-09-07 04:37:07
0001
0002 #ifndef L1Trigger_TrackFindingTracklet_interface_VMRouter_h
0003 #define L1Trigger_TrackFindingTracklet_interface_VMRouter_h
0004
0005 #include "L1Trigger/TrackFindingTracklet/interface/ProcessBase.h"
0006 #include "L1Trigger/TrackFindingTracklet/interface/FPGAWord.h"
0007 #include "L1Trigger/TrackFindingTracklet/interface/TrackletLUT.h"
0008
0009 #include <string>
0010 #include <vector>
0011 #include <utility>
0012
0013 namespace trklet {
0014
0015 class Settings;
0016 class Globals;
0017 class MemoryBase;
0018 class InputLinkMemory;
0019 class AllStubsMemory;
0020 class VMStubsMEMemory;
0021 class VMStubsTEMemory;
0022
0023 struct VMStubsTEPHI {
0024 VMStubsTEPHI(unsigned int seednumber_,
0025 unsigned int stubposition_,
0026 std::vector<std::vector<VMStubsTEMemory*> > vmstubmem_)
0027 : seednumber(seednumber_), stubposition(stubposition_), vmstubmem(vmstubmem_) {}
0028
0029 unsigned int seednumber;
0030 unsigned int stubposition;
0031 std::vector<std::vector<VMStubsTEMemory*> >
0032 vmstubmem;
0033 };
0034
0035 class VMRouter : public ProcessBase {
0036 public:
0037 VMRouter(std::string name, Settings const& settings, Globals* global);
0038
0039 ~VMRouter() override = default;
0040
0041 void addOutput(MemoryBase* memory, std::string output) override;
0042 void addInput(MemoryBase* memory, std::string input) override;
0043
0044 void execute();
0045
0046 private:
0047
0048 unsigned int layerdisk_;
0049
0050
0051
0052 unsigned int overlapbits_;
0053 unsigned int nextrabits_;
0054
0055 int nbitszfinebintable_;
0056 int nbitsrfinebintable_;
0057
0058 TrackletLUT meTable_;
0059 TrackletLUT diskTable_;
0060 TrackletLUT innerTable_;
0061 TrackletLUT innerOverlapTable_;
0062 TrackletLUT innerThirdTable_;
0063
0064
0065 std::vector<InputLinkMemory*> stubinputs_, stubinputtmp_, stubinputdisk2stmp_;
0066
0067
0068 std::vector<AllStubsMemory*> allstubs_;
0069
0070
0071 std::vector<VMStubsMEMemory*> vmstubsMEPHI_;
0072
0073
0074 std::vector<VMStubsTEPHI> vmstubsTEPHI_;
0075 };
0076 };
0077 #endif