File indexing completed on 2025-06-03 00:12:21
0001
0002 #ifndef L1Trigger_TrackFindingTracklet_interface_TrackletProcessorDisplaced_h
0003 #define L1Trigger_TrackFindingTracklet_interface_TrackletProcessorDisplaced_h
0004
0005 #include "L1Trigger/TrackFindingTracklet/interface/TrackletCalculatorBase.h"
0006 #include "L1Trigger/TrackFindingTracklet/interface/TrackletCalculatorDisplaced.h"
0007 #include "L1Trigger/TrackFindingTracklet/interface/TrackletLUT.h"
0008 #include "L1Trigger/TrackFindingTracklet/interface/CircularBuffer.h"
0009 #include "L1Trigger/TrackFindingTracklet/interface/TrackletParametersMemory.h"
0010 #include "L1Trigger/TrackFindingTracklet/interface/TrackletProjectionsMemory.h"
0011 #include "L1Trigger/TrackFindingTracklet/interface/TripletEngineUnit.h"
0012
0013 #include <vector>
0014 #include <tuple>
0015 #include <map>
0016
0017 namespace trklet {
0018
0019 class Settings;
0020 class Globals;
0021 class MemoryBase;
0022 class AllStubsMemory;
0023 class AllInnerStubsMemory;
0024 class VMStubsTEMemory;
0025 class StubPairsMemory;
0026
0027 class TrackletProcessorDisplaced : public TrackletCalculatorDisplaced {
0028 public:
0029 TrackletProcessorDisplaced(std::string name, Settings const& settings, Globals* globals);
0030
0031 ~TrackletProcessorDisplaced() override = default;
0032
0033 void addOutputProjection(TrackletProjectionsMemory*& outputProj, MemoryBase* memory);
0034
0035 void addOutput(MemoryBase* memory, std::string output) override;
0036
0037 void addInput(MemoryBase* memory, std::string input) override;
0038
0039 void execute(unsigned int iSector, double phimin, double phimax);
0040
0041 private:
0042 int iTC_;
0043 unsigned int maxStep_;
0044
0045 std::tuple<CircularBuffer<TrpEData>, unsigned int, unsigned int, unsigned int, unsigned int> trpbuffer_;
0046 std::vector<TripletEngineUnit> trpunits_;
0047
0048 unsigned int layerdisk1_;
0049 unsigned int layerdisk2_;
0050 unsigned int layerdisk3_;
0051
0052 int firstphibits_;
0053 int secondphibits_;
0054 int thirdphibits_;
0055
0056 int nbitszfinebintable_;
0057 int nbitsrfinebintable_;
0058
0059 TrackletLUT innerTable_;
0060 TrackletLUT innerThirdTable_;
0061
0062 std::vector<VMStubsTEMemory*> innervmstubs_;
0063 std::vector<VMStubsTEMemory*> outervmstubs_;
0064 };
0065
0066 };
0067 #endif