Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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 };  // namespace trklet
0043 #endif