File indexing completed on 2025-03-05 03:16:36
0001 #ifndef L1Trigger_L1TGEM_ME0StubAlgoPatUnit_H
0002 #define L1Trigger_L1TGEM_ME0StubAlgoPatUnit_H
0003
0004 #include "L1Trigger/L1TGEM/interface/ME0StubAlgoSubfunction.h"
0005 #include "L1Trigger/L1TGEM/interface/ME0StubAlgoMask.h"
0006 #include <cmath>
0007 #include <vector>
0008 #include <cstdint>
0009 #include <algorithm>
0010
0011 namespace l1t {
0012 namespace me0 {
0013 std::vector<uint64_t> maskLayerData(const std::vector<uint64_t>& data, const Mask& mask);
0014 std::pair<std::vector<double>, double> calculateCentroids(const std::vector<uint64_t>& maskedData,
0015 const std::vector<std::vector<int>>& partitionBxData);
0016 int calculateHitCount(const std::vector<uint64_t>& maskedData, bool light = false);
0017 int calculateLayerCount(const std::vector<uint64_t>& maskedData);
0018 std::vector<int> calculateClusterSize(const std::vector<uint64_t>& data);
0019 std::vector<int> calculateHits(const std::vector<uint64_t>& data);
0020
0021 ME0StubPrimitive patUnit(
0022 const std::vector<uint64_t>& data,
0023 const std::vector<std::vector<int>>& bxData,
0024 int strip = 0,
0025 int partition = -1,
0026 const std::vector<int>& layerThresholdPatternId = {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 4, 4, 4, 4, 4},
0027
0028 const std::vector<int>& layerThresholdEta = {4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4},
0029
0030 int inputMaxSpan = 37,
0031 bool skipCentroids = true,
0032 int numOr = 2,
0033 bool lightHitCount = true,
0034 bool verbose = false);
0035 }
0036 }
0037 #endif