File indexing completed on 2024-04-06 12:21:56
0001
0002 #ifndef L1Trigger_TrackFindingTracklet_interface_TripletEngine_h
0003 #define L1Trigger_TrackFindingTracklet_interface_TripletEngine_h
0004
0005 #include "L1Trigger/TrackFindingTracklet/interface/ProcessBase.h"
0006 #include "L1Trigger/TrackFindingTracklet/interface/StubTripletsMemory.h"
0007 #include "L1Trigger/TrackFindingTracklet/interface/VMStubsTEMemory.h"
0008 #include "L1Trigger/TrackFindingTracklet/interface/StubPairsMemory.h"
0009
0010 #include <vector>
0011 #include <map>
0012
0013 namespace trklet {
0014
0015 class Settings;
0016 class Globals;
0017
0018 class TripletEngine : public ProcessBase {
0019 public:
0020 TripletEngine(std::string name, Settings const& settings, Globals* global);
0021
0022 ~TripletEngine() override;
0023
0024 void addOutput(MemoryBase* memory, std::string output) override;
0025 void addInput(MemoryBase* memory, std::string input) override;
0026
0027 void execute();
0028
0029 void readTables();
0030 void writeTables();
0031
0032 private:
0033 int count_;
0034
0035 int layer1_;
0036 int layer2_;
0037 int layer3_;
0038 int disk1_;
0039 int disk2_;
0040 int disk3_;
0041 int dct1_;
0042 int dct2_;
0043 int dct3_;
0044 int phi1_;
0045 int phi2_;
0046 int phi3_;
0047 int z1_;
0048 int z2_;
0049 int z3_;
0050 int r1_;
0051 int r2_;
0052 int r3_;
0053
0054 std::vector<VMStubsTEMemory*> thirdvmstubs_;
0055 std::vector<StubPairsMemory*> stubpairs_;
0056
0057 StubTripletsMemory* stubtriplets_;
0058
0059 std::map<std::string, std::vector<std::vector<std::string> > > tmpSPTable_;
0060 std::map<std::string, std::vector<std::map<std::string, unsigned> > > spTable_;
0061 std::vector<bool> table_;
0062
0063 int secondphibits_;
0064 int thirdphibits_;
0065
0066 int iSeed_;
0067 };
0068
0069 };
0070 #endif