File indexing completed on 2024-04-06 12:21:56
0001
0002
0003 #ifndef L1Trigger_TrackFindingTracklet_interface_TrackletProcessor_h
0004 #define L1Trigger_TrackFindingTracklet_interface_TrackletProcessor_h
0005
0006 #include "L1Trigger/TrackFindingTracklet/interface/TrackletCalculatorBase.h"
0007 #include "L1Trigger/TrackFindingTracklet/interface/TrackletLUT.h"
0008 #include "L1Trigger/TrackFindingTracklet/interface/CircularBuffer.h"
0009 #include "L1Trigger/TrackFindingTracklet/interface/TrackletEngineUnit.h"
0010
0011 #include <vector>
0012 #include <tuple>
0013 #include <map>
0014
0015 namespace trklet {
0016
0017 class Settings;
0018 class Globals;
0019 class MemoryBase;
0020 class AllStubsMemory;
0021 class AllInnerStubsMemory;
0022 class VMStubsTEMemory;
0023
0024 class TrackletProcessor : public TrackletCalculatorBase {
0025 public:
0026 TrackletProcessor(std::string name, Settings const& settings, Globals* globals);
0027
0028 ~TrackletProcessor() override = default;
0029
0030 void addOutputProjection(TrackletProjectionsMemory*& outputProj, MemoryBase* memory);
0031
0032 void addOutput(MemoryBase* memory, std::string output) override;
0033
0034 void addInput(MemoryBase* memory, std::string input) override;
0035
0036 void execute(unsigned int iSector, double phimin, double phimax);
0037
0038 private:
0039 int iTC_;
0040 int iAllStub_;
0041
0042 unsigned int maxStep_;
0043
0044 VMStubsTEMemory* outervmstubs_;
0045
0046
0047 std::tuple<CircularBuffer<TEData>, unsigned int, unsigned int, unsigned int, unsigned int> tebuffer_;
0048
0049 std::vector<TrackletEngineUnit> teunits_;
0050
0051 std::vector<AllInnerStubsMemory*> innerallstubs_;
0052 std::vector<AllStubsMemory*> outerallstubs_;
0053
0054 TrackletLUT pttableinner_;
0055 TrackletLUT pttableouter_;
0056 TrackletLUT useregiontable_;
0057
0058 int nbitsfinephi_;
0059 int nbitsfinephidiff_;
0060
0061 int innerphibits_;
0062 int outerphibits_;
0063
0064 unsigned int nbitszfinebintable_;
0065 unsigned int nbitsrfinebintable_;
0066
0067 unsigned int nbitsrzbin_;
0068
0069 TrackletLUT innerTable_;
0070 TrackletLUT innerOverlapTable_;
0071 };
0072
0073 };
0074 #endif