File indexing completed on 2024-04-06 12:21:56
0001 #ifndef L1Trigger_TrackFindingTracklet_interface_TrackletCalculator_h
0002 #define L1Trigger_TrackFindingTracklet_interface_TrackletCalculator_h
0003
0004 #include "L1Trigger/TrackFindingTracklet/interface/TrackletCalculatorBase.h"
0005
0006 #include <string>
0007 #include <vector>
0008
0009 namespace trklet {
0010
0011 class Settings;
0012 class Globals;
0013 class TrackletProjectionsMemory;
0014 class MemoryBase;
0015 class AllStubsMemory;
0016 class StubPairsMemory;
0017 class VarInv;
0018 class VarBase;
0019
0020 class TrackletCalculator : public TrackletCalculatorBase {
0021 public:
0022 TrackletCalculator(std::string name, Settings const& settings, Globals* globals);
0023
0024 ~TrackletCalculator() override = default;
0025
0026 void addOutputProjection(TrackletProjectionsMemory*& outputProj, MemoryBase* memory);
0027 void addOutput(MemoryBase* memory, std::string output) override;
0028 void addInput(MemoryBase* memory, std::string input) override;
0029
0030 void execute(unsigned int iSector, double phimin, double phimax);
0031
0032 private:
0033 int iTC_;
0034
0035 std::vector<AllStubsMemory*> innerallstubs_;
0036 std::vector<AllStubsMemory*> outerallstubs_;
0037 std::vector<StubPairsMemory*> stubpairs_;
0038
0039 void writeInvTable(void (*writeLUT)(const VarInv&, const std::string&));
0040 void writeFirmwareDesign(void (*writeDesign)(const std::vector<VarBase*>&, const std::string&));
0041 };
0042 };
0043 #endif