File indexing completed on 2024-04-06 12:19:38
0001 #ifndef L1Trigger_DemonstratorTools_GTTInterface_h
0002 #define L1Trigger_DemonstratorTools_GTTInterface_h
0003
0004 #include <cstddef>
0005
0006 #include "L1Trigger/DemonstratorTools/interface/LinkId.h"
0007 #include "L1Trigger/DemonstratorTools/interface/ChannelSpec.h"
0008 #include "L1Trigger/DemonstratorTools/interface/EventData.h"
0009 #include "L1Trigger/DemonstratorTools/interface/FileFormat.h"
0010 #include "L1Trigger/DemonstratorTools/interface/Frame.h"
0011
0012 namespace l1t::demo::gtt {
0013
0014 typedef std::map<LinkId, std::pair<ChannelSpec, std::vector<size_t>>> ChannelMap_t;
0015
0016 static constexpr size_t kFramesPerTMUXPeriod = 9;
0017 static constexpr size_t kGapLengthInput = 6;
0018 static constexpr size_t kGapLengthOutputToCorrelator = 44;
0019 static constexpr size_t kGapLengthOutputToGlobalTriggerSums = 3;
0020 static constexpr size_t kGapLengthOutputToGlobalTriggerTaus = 36;
0021 static constexpr size_t kGapLengthOutputToGlobalTriggerMesons = 15;
0022 static constexpr size_t kGapLengthOutputToGlobalTriggerVertices = 6;
0023 static constexpr size_t kTrackTMUX = 18;
0024 static constexpr size_t kGTTBoardTMUX =
0025 6;
0026 static constexpr size_t kMaxLinesPerFile = 1024;
0027
0028 static constexpr size_t kVertexChanIndex = 0;
0029
0030
0031 static const std::map<l1t::demo::LinkId, std::vector<size_t>> kChannelIdsInput = {
0032
0033
0034 {{"tracks", 0}, {0, 18, 36}},
0035 {{"tracks", 1}, {1, 19, 37}},
0036 {{"tracks", 2}, {2, 20, 38}},
0037 {{"tracks", 3}, {3, 21, 39}},
0038 {{"tracks", 4}, {4, 22, 40}},
0039 {{"tracks", 5}, {5, 23, 41}},
0040 {{"tracks", 6}, {6, 24, 42}},
0041 {{"tracks", 7}, {7, 25, 43}},
0042 {{"tracks", 8}, {8, 26, 44}},
0043 {{"tracks", 9}, {9, 27, 45}},
0044 {{"tracks", 10}, {10, 28, 46}},
0045 {{"tracks", 11}, {11, 29, 47}},
0046 {{"tracks", 12}, {12, 30, 48}},
0047 {{"tracks", 13}, {13, 31, 49}},
0048 {{"tracks", 14}, {14, 32, 50}},
0049 {{"tracks", 15}, {15, 33, 51}},
0050 {{"tracks", 16}, {16, 34, 52}},
0051 {{"tracks", 17}, {17, 35, 53}}};
0052
0053 static const ChannelMap_t kChannelMapInput = {
0054
0055 {{"tracks", 0}, {{kTrackTMUX, kGapLengthInput}, {0, 18, 36}}},
0056 {{"tracks", 1}, {{kTrackTMUX, kGapLengthInput}, {1, 19, 37}}},
0057 {{"tracks", 2}, {{kTrackTMUX, kGapLengthInput}, {2, 20, 38}}},
0058 {{"tracks", 3}, {{kTrackTMUX, kGapLengthInput}, {3, 21, 39}}},
0059 {{"tracks", 4}, {{kTrackTMUX, kGapLengthInput}, {4, 22, 40}}},
0060 {{"tracks", 5}, {{kTrackTMUX, kGapLengthInput}, {5, 23, 41}}},
0061 {{"tracks", 6}, {{kTrackTMUX, kGapLengthInput}, {6, 24, 42}}},
0062 {{"tracks", 7}, {{kTrackTMUX, kGapLengthInput}, {7, 25, 43}}},
0063 {{"tracks", 8}, {{kTrackTMUX, kGapLengthInput}, {8, 26, 44}}},
0064 {{"tracks", 9}, {{kTrackTMUX, kGapLengthInput}, {9, 27, 45}}},
0065 {{"tracks", 10}, {{kTrackTMUX, kGapLengthInput}, {10, 28, 46}}},
0066 {{"tracks", 11}, {{kTrackTMUX, kGapLengthInput}, {11, 29, 47}}},
0067 {{"tracks", 12}, {{kTrackTMUX, kGapLengthInput}, {12, 30, 48}}},
0068 {{"tracks", 13}, {{kTrackTMUX, kGapLengthInput}, {13, 31, 49}}},
0069 {{"tracks", 14}, {{kTrackTMUX, kGapLengthInput}, {14, 32, 50}}},
0070 {{"tracks", 15}, {{kTrackTMUX, kGapLengthInput}, {15, 33, 51}}},
0071 {{"tracks", 16}, {{kTrackTMUX, kGapLengthInput}, {16, 34, 52}}},
0072 {{"tracks", 17}, {{kTrackTMUX, kGapLengthInput}, {17, 35, 53}}}};
0073
0074 static const std::map<std::string, l1t::demo::ChannelSpec> kChannelSpecsInput = {
0075
0076 {"tracks", {kTrackTMUX, kGapLengthInput}}};
0077
0078
0079 static const ChannelMap_t kChannelMapOutputToCorrelator = {
0080
0081 {{"vertices", 0}, {{kGTTBoardTMUX, kGapLengthOutputToCorrelator}, {0}}}};
0082
0083 static const std::map<l1t::demo::LinkId, std::vector<size_t>> kChannelIdsOutputToCorrelator = {
0084
0085 {{"vertices", 0}, {0}}};
0086
0087 static const std::map<std::string, l1t::demo::ChannelSpec> kChannelSpecsOutputToCorrelator = {
0088
0089 {"vertices", {kGTTBoardTMUX, kGapLengthOutputToCorrelator}}};
0090
0091
0092 static const std::map<l1t::demo::LinkId, std::vector<size_t>> kChannelIdsOutputToGlobalTrigger = {
0093
0094 {{"sums", 0}, {0}},
0095 {{"taus", 1}, {1}},
0096 {{"mesons", 2}, {2}},
0097 {{"vertices", 3}, {3}}};
0098
0099 static const std::map<std::string, l1t::demo::ChannelSpec> kChannelSpecsOutputToGlobalTrigger = {
0100
0101 {"sums", {kGTTBoardTMUX, kGapLengthOutputToGlobalTriggerSums}},
0102 {"taus", {kGTTBoardTMUX, kGapLengthOutputToGlobalTriggerTaus}},
0103 {"mesons", {kGTTBoardTMUX, kGapLengthOutputToGlobalTriggerMesons}},
0104 {"vertices", {kGTTBoardTMUX, kGapLengthOutputToGlobalTriggerVertices}}};
0105
0106 }
0107
0108 #endif