Back to home page

Project CMSSW displayed by LXR

 
 

    


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         // layer count threshold for 17 pattern ids
0028         const std::vector<int>& layerThresholdEta = {4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4},
0029         // layer count threshold for 8 eta partitions + 7 "virtual" eta partitions
0030         int inputMaxSpan = 37,
0031         bool skipCentroids = true,
0032         int numOr = 2,
0033         bool lightHitCount = true,
0034         bool verbose = false);
0035   }  // namespace me0
0036 }  // namespace l1t
0037 #endif