From 9c87a88664662dc53db14cb35a673859b8f19c38 Mon Sep 17 00:00:00 2001 From: Andres Rios-Tascon Date: Thu, 11 Jul 2024 13:04:39 -0400 Subject: [PATCH 1/7] Moved some things out into a common library --- RecoTracker/LSTCore/BuildFile.xml | 1 + RecoTracker/LSTCore/interface/Constants.h | 50 +++++++++++++++++++ .../alpaka => interface}/EndcapGeometry.h | 11 ++-- .../ModuleConnectionMap.h | 14 ++---- .../{src/alpaka => interface}/PixelMap.h | 8 ++- .../alpaka => interface}/TiltedGeometry.h | 11 ++-- .../LSTCore/interface/alpaka/Constants.h | 42 +--------------- ...ndcapGeometry.dev.cc => EndcapGeometry.cc} | 10 ++-- ...ctionMap.dev.cc => ModuleConnectionMap.cc} | 18 +++---- ...iltedGeometry.dev.cc => TiltedGeometry.cc} | 10 ++-- .../LSTCore/src/alpaka/LSTESData.dev.cc | 26 +++++----- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 2 +- .../LSTCore/src/alpaka/ModuleMethods.h | 17 +++---- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 2 +- RecoTracker/LSTCore/src/alpaka/Segment.h | 2 +- 15 files changed, 108 insertions(+), 116 deletions(-) create mode 100644 RecoTracker/LSTCore/interface/Constants.h rename RecoTracker/LSTCore/{src/alpaka => interface}/EndcapGeometry.h (76%) rename RecoTracker/LSTCore/{src/alpaka => interface}/ModuleConnectionMap.h (67%) rename RecoTracker/LSTCore/{src/alpaka => interface}/PixelMap.h (78%) rename RecoTracker/LSTCore/{src/alpaka => interface}/TiltedGeometry.h (72%) rename RecoTracker/LSTCore/src/{alpaka/EndcapGeometry.dev.cc => EndcapGeometry.cc} (80%) rename RecoTracker/LSTCore/src/{alpaka/ModuleConnectionMap.dev.cc => ModuleConnectionMap.cc} (80%) rename RecoTracker/LSTCore/src/{alpaka/TiltedGeometry.dev.cc => TiltedGeometry.cc} (74%) diff --git a/RecoTracker/LSTCore/BuildFile.xml b/RecoTracker/LSTCore/BuildFile.xml index 45a3932180439..e06a5b6d684de 100644 --- a/RecoTracker/LSTCore/BuildFile.xml +++ b/RecoTracker/LSTCore/BuildFile.xml @@ -3,6 +3,7 @@ + diff --git a/RecoTracker/LSTCore/interface/Constants.h b/RecoTracker/LSTCore/interface/Constants.h new file mode 100644 index 0000000000000..b7e98ad32e1bc --- /dev/null +++ b/RecoTracker/LSTCore/interface/Constants.h @@ -0,0 +1,50 @@ +#ifndef RecoTracker_LSTCore_interface_Constants_h +#define RecoTracker_LSTCore_interface_Constants_h + + +namespace SDL { + +// If a compile time flag does not define PT_CUT, default to 0.8 (GeV) +#ifndef PT_CUT + constexpr float PT_CUT = 0.8f; +#endif + + constexpr unsigned int MAX_BLOCKS = 80; + constexpr unsigned int MAX_CONNECTED_MODULES = 40; + + constexpr unsigned int N_MAX_PIXEL_SEGMENTS_PER_MODULE = 50000; + + constexpr unsigned int N_MAX_PIXEL_MD_PER_MODULES = 2 * N_MAX_PIXEL_SEGMENTS_PER_MODULE; + + constexpr unsigned int N_MAX_PIXEL_TRIPLETS = 5000; + constexpr unsigned int N_MAX_PIXEL_QUINTUPLETS = 15000; + + constexpr unsigned int N_MAX_PIXEL_TRACK_CANDIDATES = 30000; + constexpr unsigned int N_MAX_NONPIXEL_TRACK_CANDIDATES = 1000; + + constexpr unsigned int size_superbins = 45000; + + //defining the constant host device variables right up here + // Currently pixel tracks treated as LSs with 2 double layers (IT layers 1+2 and 3+4) and 4 hits. To be potentially handled better in the future. + struct Params_pLS { + static constexpr int kLayers = 2, kHits = 4; + }; + struct Params_LS { + static constexpr int kLayers = 2, kHits = 4; + }; + struct Params_T3 { + static constexpr int kLayers = 3, kHits = 6; + }; + struct Params_pT3 { + static constexpr int kLayers = 5, kHits = 10; + }; + struct Params_T5 { + static constexpr int kLayers = 5, kHits = 10; + }; + struct Params_pT5 { + static constexpr int kLayers = 7, kHits = 14; + }; + +} //namespace SDL + +#endif diff --git a/RecoTracker/LSTCore/src/alpaka/EndcapGeometry.h b/RecoTracker/LSTCore/interface/EndcapGeometry.h similarity index 76% rename from RecoTracker/LSTCore/src/alpaka/EndcapGeometry.h rename to RecoTracker/LSTCore/interface/EndcapGeometry.h index 56b51aa8cb194..25d5315a61e7c 100644 --- a/RecoTracker/LSTCore/src/alpaka/EndcapGeometry.h +++ b/RecoTracker/LSTCore/interface/EndcapGeometry.h @@ -1,5 +1,5 @@ -#ifndef EndcapGeometry_h -#define EndcapGeometry_h +#ifndef RecoTracker_LSTCore_interface_EndcapGeometry_h +#define RecoTracker_LSTCore_interface_EndcapGeometry_h #include #include @@ -9,13 +9,8 @@ #include #include -#include "RecoTracker/LSTCore/interface/alpaka/Constants.h" - namespace SDL { - template - class EndcapGeometry; - template <> - class EndcapGeometry { + class EndcapGeometry { private: std::map dxdy_slope_; // dx/dy slope std::map centroid_phis_; // centroid phi diff --git a/RecoTracker/LSTCore/src/alpaka/ModuleConnectionMap.h b/RecoTracker/LSTCore/interface/ModuleConnectionMap.h similarity index 67% rename from RecoTracker/LSTCore/src/alpaka/ModuleConnectionMap.h rename to RecoTracker/LSTCore/interface/ModuleConnectionMap.h index aea59aa5c4ff0..3798690016c99 100644 --- a/RecoTracker/LSTCore/src/alpaka/ModuleConnectionMap.h +++ b/RecoTracker/LSTCore/interface/ModuleConnectionMap.h @@ -1,5 +1,5 @@ -#ifndef ModuleConnectionMap_h -#define ModuleConnectionMap_h +#ifndef RecoTracker_LSTCore_interface_ModuleConnectionMap_h +#define RecoTracker_LSTCore_interface_ModuleConnectionMap_h #include #include @@ -8,14 +8,8 @@ #include #include -#include "RecoTracker/LSTCore/interface/alpaka/Constants.h" - namespace SDL { - //FIXME: move to non-alpaka single arch build - template - class ModuleConnectionMap; - template <> - class ModuleConnectionMap { + class ModuleConnectionMap { private: std::map> moduleConnections_; @@ -32,7 +26,7 @@ namespace SDL { int size() const; }; - using MapPLStoLayer = std::array, 4>, 3>; + using MapPLStoLayer = std::array, 3>; } // namespace SDL #endif diff --git a/RecoTracker/LSTCore/src/alpaka/PixelMap.h b/RecoTracker/LSTCore/interface/PixelMap.h similarity index 78% rename from RecoTracker/LSTCore/src/alpaka/PixelMap.h rename to RecoTracker/LSTCore/interface/PixelMap.h index f81e58860af90..40d5bbbdfab84 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelMap.h +++ b/RecoTracker/LSTCore/interface/PixelMap.h @@ -1,14 +1,12 @@ -#ifndef PixelMap_h -#define PixelMap_h +#ifndef RecoTracker_LSTCore_interface_PixelMap_h +#define RecoTracker_LSTCore_interface_PixelMap_h #include #include -#include "RecoTracker/LSTCore/interface/alpaka/Constants.h" +#include "RecoTracker/LSTCore/interface/Constants.h" namespace SDL { - // PixelMap is never allocated on the device. - // This is also not passed to any of the kernels, so we can combine the structs. struct pixelMap { uint16_t pixelModuleIndex; diff --git a/RecoTracker/LSTCore/src/alpaka/TiltedGeometry.h b/RecoTracker/LSTCore/interface/TiltedGeometry.h similarity index 72% rename from RecoTracker/LSTCore/src/alpaka/TiltedGeometry.h rename to RecoTracker/LSTCore/interface/TiltedGeometry.h index 258e9333c17a3..5d565fe789af5 100644 --- a/RecoTracker/LSTCore/src/alpaka/TiltedGeometry.h +++ b/RecoTracker/LSTCore/interface/TiltedGeometry.h @@ -1,5 +1,5 @@ -#ifndef TiltedGeometry_h -#define TiltedGeometry_h +#ifndef RecoTracker_LSTCore_interface_TiltedGeometry_h +#define RecoTracker_LSTCore_interface_TiltedGeometry_h #include #include @@ -9,13 +9,8 @@ #include #include -#include "RecoTracker/LSTCore/interface/alpaka/Constants.h" - namespace SDL { - template - class TiltedGeometry; - template <> - class TiltedGeometry { + class TiltedGeometry { private: std::map drdzs_; // dr/dz slope std::map dxdys_; // dx/dy slope diff --git a/RecoTracker/LSTCore/interface/alpaka/Constants.h b/RecoTracker/LSTCore/interface/alpaka/Constants.h index 8ad42ce48ea7d..345cc7003831e 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Constants.h +++ b/RecoTracker/LSTCore/interface/alpaka/Constants.h @@ -3,6 +3,7 @@ #include +#include "RecoTracker/LSTCore/interface/Constants.h" #include "HeterogeneousCore/AlpakaInterface/interface/config.h" #ifdef CACHE_ALLOC @@ -99,47 +100,6 @@ namespace SDL { return WorkDiv(adjustedBlocks, adjustedThreads, elementsPerThreadArg); } -// If a compile time flag does not define PT_CUT, default to 0.8 (GeV) -#ifndef PT_CUT - constexpr float PT_CUT = 0.8f; -#endif - - constexpr unsigned int MAX_BLOCKS = 80; - constexpr unsigned int MAX_CONNECTED_MODULES = 40; - - constexpr unsigned int N_MAX_PIXEL_SEGMENTS_PER_MODULE = 50000; - - constexpr unsigned int N_MAX_PIXEL_MD_PER_MODULES = 2 * N_MAX_PIXEL_SEGMENTS_PER_MODULE; - - constexpr unsigned int N_MAX_PIXEL_TRIPLETS = 5000; - constexpr unsigned int N_MAX_PIXEL_QUINTUPLETS = 15000; - - constexpr unsigned int N_MAX_PIXEL_TRACK_CANDIDATES = 30000; - constexpr unsigned int N_MAX_NONPIXEL_TRACK_CANDIDATES = 1000; - - constexpr unsigned int size_superbins = 45000; - - //defining the constant host device variables right up here - // Currently pixel tracks treated as LSs with 2 double layers (IT layers 1+2 and 3+4) and 4 hits. To be potentially handled better in the future. - struct Params_pLS { - static constexpr int kLayers = 2, kHits = 4; - }; - struct Params_LS { - static constexpr int kLayers = 2, kHits = 4; - }; - struct Params_T3 { - static constexpr int kLayers = 3, kHits = 6; - }; - struct Params_pT3 { - static constexpr int kLayers = 5, kHits = 10; - }; - struct Params_T5 { - static constexpr int kLayers = 5, kHits = 10; - }; - struct Params_pT5 { - static constexpr int kLayers = 7, kHits = 14; - }; - // 15 MeV constant from the approximate Bethe-Bloch formula ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMulsInGeV = 0.015; ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float miniMulsPtScaleBarrel[6] = { diff --git a/RecoTracker/LSTCore/src/alpaka/EndcapGeometry.dev.cc b/RecoTracker/LSTCore/src/EndcapGeometry.cc similarity index 80% rename from RecoTracker/LSTCore/src/alpaka/EndcapGeometry.dev.cc rename to RecoTracker/LSTCore/src/EndcapGeometry.cc index 6e185abda5973..db31121267703 100644 --- a/RecoTracker/LSTCore/src/alpaka/EndcapGeometry.dev.cc +++ b/RecoTracker/LSTCore/src/EndcapGeometry.cc @@ -1,8 +1,8 @@ -#include "EndcapGeometry.h" +#include "RecoTracker/LSTCore/interface/EndcapGeometry.h" -SDL::EndcapGeometry::EndcapGeometry(std::string filename) { load(filename); } +SDL::EndcapGeometry::EndcapGeometry(std::string filename) { load(filename); } -void SDL::EndcapGeometry::load(std::string filename) { +void SDL::EndcapGeometry::load(std::string filename) { dxdy_slope_.clear(); centroid_phis_.clear(); @@ -34,7 +34,7 @@ void SDL::EndcapGeometry::load(std::string filename) { fillGeoMapArraysExplicit(); } -void SDL::EndcapGeometry::fillGeoMapArraysExplicit() { +void SDL::EndcapGeometry::fillGeoMapArraysExplicit() { nEndCapMap = centroid_phis_.size(); geoMapDetId_buf.reserve(nEndCapMap); @@ -48,7 +48,7 @@ void SDL::EndcapGeometry::fillGeoMapArraysExplicit() { } } -float SDL::EndcapGeometry::getdxdy_slope(unsigned int detid) const { +float SDL::EndcapGeometry::getdxdy_slope(unsigned int detid) const { if (dxdy_slope_.find(detid) != dxdy_slope_.end()) { return dxdy_slope_.at(detid); } else { diff --git a/RecoTracker/LSTCore/src/alpaka/ModuleConnectionMap.dev.cc b/RecoTracker/LSTCore/src/ModuleConnectionMap.cc similarity index 80% rename from RecoTracker/LSTCore/src/alpaka/ModuleConnectionMap.dev.cc rename to RecoTracker/LSTCore/src/ModuleConnectionMap.cc index 9a1ee2dedf52c..eddd87fcaa657 100644 --- a/RecoTracker/LSTCore/src/alpaka/ModuleConnectionMap.dev.cc +++ b/RecoTracker/LSTCore/src/ModuleConnectionMap.cc @@ -1,12 +1,12 @@ -#include "ModuleConnectionMap.h" +#include "RecoTracker/LSTCore/interface/ModuleConnectionMap.h" -SDL::ModuleConnectionMap::ModuleConnectionMap() {} +SDL::ModuleConnectionMap::ModuleConnectionMap() {} -SDL::ModuleConnectionMap::ModuleConnectionMap(std::string filename) { load(filename); } +SDL::ModuleConnectionMap::ModuleConnectionMap(std::string filename) { load(filename); } -SDL::ModuleConnectionMap::~ModuleConnectionMap() {} +SDL::ModuleConnectionMap::~ModuleConnectionMap() {} -void SDL::ModuleConnectionMap::load(std::string filename) { +void SDL::ModuleConnectionMap::load(std::string filename) { moduleConnections_.clear(); std::ifstream ifile(filename, std::ios::binary); @@ -49,7 +49,7 @@ void SDL::ModuleConnectionMap::load(std::string filename) { } } -void SDL::ModuleConnectionMap::add(std::string filename) { +void SDL::ModuleConnectionMap::add(std::string filename) { std::ifstream ifile; ifile.open(filename.c_str()); std::string line; @@ -81,7 +81,7 @@ void SDL::ModuleConnectionMap::add(std::string filename) { } } -void SDL::ModuleConnectionMap::print() { +void SDL::ModuleConnectionMap::print() { std::cout << "Printing ModuleConnectionMap" << std::endl; for (auto& pair : moduleConnections_) { unsigned int detid = pair.first; @@ -93,9 +93,9 @@ void SDL::ModuleConnectionMap::print() { } } -const std::vector& SDL::ModuleConnectionMap::getConnectedModuleDetIds(unsigned int detid) const { +const std::vector& SDL::ModuleConnectionMap::getConnectedModuleDetIds(unsigned int detid) const { static const std::vector dummy; auto const mList = moduleConnections_.find(detid); return mList != moduleConnections_.end() ? mList->second : dummy; } -int SDL::ModuleConnectionMap::size() const { return moduleConnections_.size(); } +int SDL::ModuleConnectionMap::size() const { return moduleConnections_.size(); } diff --git a/RecoTracker/LSTCore/src/alpaka/TiltedGeometry.dev.cc b/RecoTracker/LSTCore/src/TiltedGeometry.cc similarity index 74% rename from RecoTracker/LSTCore/src/alpaka/TiltedGeometry.dev.cc rename to RecoTracker/LSTCore/src/TiltedGeometry.cc index 862155abeba65..564f1c8befeda 100644 --- a/RecoTracker/LSTCore/src/alpaka/TiltedGeometry.dev.cc +++ b/RecoTracker/LSTCore/src/TiltedGeometry.cc @@ -1,8 +1,8 @@ -#include "TiltedGeometry.h" +#include "RecoTracker/LSTCore/interface/TiltedGeometry.h" -SDL::TiltedGeometry::TiltedGeometry(std::string filename) { load(filename); } +SDL::TiltedGeometry::TiltedGeometry(std::string filename) { load(filename); } -void SDL::TiltedGeometry::load(std::string filename) { +void SDL::TiltedGeometry::load(std::string filename) { drdzs_.clear(); dxdys_.clear(); @@ -32,7 +32,7 @@ void SDL::TiltedGeometry::load(std::string filename) { } } -float SDL::TiltedGeometry::getDrDz(unsigned int detid) const { +float SDL::TiltedGeometry::getDrDz(unsigned int detid) const { if (drdzs_.find(detid) != drdzs_.end()) { return drdzs_.at(detid); } else { @@ -40,7 +40,7 @@ float SDL::TiltedGeometry::getDrDz(unsigned int detid) const { } } -float SDL::TiltedGeometry::getDxDy(unsigned int detid) const { +float SDL::TiltedGeometry::getDxDy(unsigned int detid) const { if (dxdys_.find(detid) != dxdys_.end()) { return dxdys_.at(detid); } else { diff --git a/RecoTracker/LSTCore/src/alpaka/LSTESData.dev.cc b/RecoTracker/LSTCore/src/alpaka/LSTESData.dev.cc index 6b635673837ae..a920f8e78a073 100644 --- a/RecoTracker/LSTCore/src/alpaka/LSTESData.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LSTESData.dev.cc @@ -1,9 +1,9 @@ #include "RecoTracker/LSTCore/interface/alpaka/LSTESData.h" +#include "RecoTracker/LSTCore/interface/EndcapGeometry.h" +#include "RecoTracker/LSTCore/interface/ModuleConnectionMap.h" +#include "RecoTracker/LSTCore/interface/TiltedGeometry.h" +#include "RecoTracker/LSTCore/interface/PixelMap.h" -#include "EndcapGeometry.h" -#include "ModuleConnectionMap.h" -#include "TiltedGeometry.h" -#include "PixelMap.h" #include "ModuleMethods.h" namespace { @@ -40,9 +40,9 @@ namespace { } void loadMapsHost(SDL::MapPLStoLayer& pLStoLayer, - std::shared_ptr> endcapGeometry, - std::shared_ptr> tiltedGeometry, - std::shared_ptr> moduleConnectionMap) { + std::shared_ptr endcapGeometry, + std::shared_ptr tiltedGeometry, + std::shared_ptr moduleConnectionMap) { // Module orientation information (DrDz or phi angles) auto endcap_geom = get_absolute_path_after_check_file_exists(trackLooperDir() + "/data/OT800_IT615_pt0.8/endcap_orientation.bin"); @@ -66,13 +66,13 @@ namespace { auto connectData = connects[i].data(); path = pLSMapDir + connectData + ".bin"; - pLStoLayer[0][i] = SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); + pLStoLayer[0][i] = SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); path = pLSMapDir + "_pos" + connectData + ".bin"; - pLStoLayer[1][i] = SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); + pLStoLayer[1][i] = SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); path = pLSMapDir + "_neg" + connectData + ".bin"; - pLStoLayer[2][i] = SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); + pLStoLayer[2][i] = SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); } } } // namespace @@ -83,10 +83,10 @@ std::unique_ptr> SDL::loadAndFillESHost() { unsigned int nPixels; std::shared_ptr> modulesBuffers = nullptr; auto pLStoLayer = std::make_shared(); - auto endcapGeometry = std::make_shared>(); - auto tiltedGeometry = std::make_shared>(); + auto endcapGeometry = std::make_shared(); + auto tiltedGeometry = std::make_shared(); auto pixelMapping = std::make_shared(); - auto moduleConnectionMap = std::make_shared>(); + auto moduleConnectionMap = std::make_shared(); ::loadMapsHost(*pLStoLayer, endcapGeometry, tiltedGeometry, moduleConnectionMap); auto endcapGeometryBuffers = diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index f6d15e6216010..beb618ab95cce 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -3,8 +3,8 @@ #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/EndcapGeometry.h" -#include "EndcapGeometry.h" #include "Hit.h" namespace SDL { diff --git a/RecoTracker/LSTCore/src/alpaka/ModuleMethods.h b/RecoTracker/LSTCore/src/alpaka/ModuleMethods.h index 5d8b40bf3dda2..3a7a90f9dc706 100644 --- a/RecoTracker/LSTCore/src/alpaka/ModuleMethods.h +++ b/RecoTracker/LSTCore/src/alpaka/ModuleMethods.h @@ -6,11 +6,10 @@ #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/alpaka/Module.h" - -#include "TiltedGeometry.h" -#include "EndcapGeometry.h" -#include "ModuleConnectionMap.h" -#include "PixelMap.h" +#include "RecoTracker/LSTCore/interface/TiltedGeometry.h" +#include "RecoTracker/LSTCore/interface/EndcapGeometry.h" +#include "RecoTracker/LSTCore/interface/ModuleConnectionMap.h" +#include "RecoTracker/LSTCore/interface/PixelMap.h" #include "HeterogeneousCore/AlpakaInterface/interface/host.h" @@ -110,7 +109,7 @@ namespace SDL { unsigned int nMod, TQueue queue, struct ModuleMetaData& mmd, - const ModuleConnectionMap* moduleConnectionMap) { + const ModuleConnectionMap* moduleConnectionMap) { DevHost const& devHost = cms::alpakatools::host(); auto moduleMap_buf = allocBufWrapper(devHost, nMod * MAX_CONNECTED_MODULES); uint16_t* moduleMap = alpaka::getPtrNative(moduleMap_buf); @@ -226,9 +225,9 @@ namespace SDL { unsigned int& nPixels, std::shared_ptr>& modulesBuf, pixelMap* pixelMapping, - const EndcapGeometry* endcapGeometry, - const TiltedGeometry* tiltedGeometry, - const ModuleConnectionMap* moduleConnectionMap) { + const EndcapGeometry* endcapGeometry, + const TiltedGeometry* tiltedGeometry, + const ModuleConnectionMap* moduleConnectionMap) { ModuleMetaData mmd; loadCentroidsFromFile(moduleMetaDataFilePath, mmd, nModules); diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 99be477d167c4..0530a6635851a 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -3,9 +3,9 @@ #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/EndcapGeometry.h" #include "NeuralNetwork.h" -#include "EndcapGeometry.h" #include "Segment.h" #include "MiniDoublet.h" #include "Hit.h" diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index 0acf2623b4675..d35d93aa1c395 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -3,8 +3,8 @@ #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/EndcapGeometry.h" -#include "EndcapGeometry.h" #include "MiniDoublet.h" #include "Hit.h" From 9fd33554c447b83df09a09ac90864632e8f99ecd Mon Sep 17 00:00:00 2001 From: Andres Rios-Tascon Date: Mon, 15 Jul 2024 11:28:07 -0400 Subject: [PATCH 2/7] Use pre-defined alpaka types --- .../plugins/alpaka/LSTModulesDevESProducer.cc | 2 +- RecoTracker/LST/plugins/alpaka/LSTProducer.cc | 2 +- RecoTracker/LST/src/alpaka/ES_ModulesDev.cc | 4 +- .../LSTCore/interface/alpaka/Constants.h | 38 +- .../interface/alpaka/EndcapGeometryBuffer.h | 4 +- RecoTracker/LSTCore/interface/alpaka/LST.h | 10 +- .../LSTCore/interface/alpaka/LSTESData.h | 21 +- RecoTracker/LSTCore/interface/alpaka/Module.h | 4 +- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 476 +++++++++--------- RecoTracker/LSTCore/src/alpaka/Event.h | 78 +-- RecoTracker/LSTCore/src/alpaka/Hit.h | 2 +- RecoTracker/LSTCore/src/alpaka/Kernels.h | 82 +-- RecoTracker/LSTCore/src/alpaka/LST.dev.cc | 24 +- .../LSTCore/src/alpaka/LSTESData.dev.cc | 34 +- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 2 +- .../LSTCore/src/alpaka/ModuleMethods.h | 26 +- .../LSTCore/src/alpaka/NeuralNetwork.h | 2 +- .../LSTCore/src/alpaka/NeuralNetworkWeights.h | 2 +- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 266 +++++----- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 96 ++-- RecoTracker/LSTCore/src/alpaka/Segment.h | 6 +- .../LSTCore/src/alpaka/TrackCandidate.h | 60 +-- RecoTracker/LSTCore/src/alpaka/Triplet.h | 32 +- 23 files changed, 635 insertions(+), 638 deletions(-) diff --git a/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc b/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc index 6e7b14d4f0c88..fb2c2235bf0bb 100644 --- a/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc +++ b/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc @@ -22,7 +22,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { descriptions.addWithDefaultLabel(desc); } - std::unique_ptr> produce(TrackerRecoGeometryRecord const& iRecord) { + std::unique_ptr> produce(TrackerRecoGeometryRecord const& iRecord) { return SDL::loadAndFillESHost(); } }; diff --git a/RecoTracker/LST/plugins/alpaka/LSTProducer.cc b/RecoTracker/LST/plugins/alpaka/LSTProducer.cc index 375ab86e0b094..baa521e9cec15 100644 --- a/RecoTracker/LST/plugins/alpaka/LSTProducer.cc +++ b/RecoTracker/LST/plugins/alpaka/LSTProducer.cc @@ -91,7 +91,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { const bool verbose_, nopLSDupClean_, tcpLSTriplets_; edm::EDPutTokenT lstOutputToken_; - SDL::LST lst_; + SDL::LST lst_; }; } // namespace ALPAKA_ACCELERATOR_NAMESPACE diff --git a/RecoTracker/LST/src/alpaka/ES_ModulesDev.cc b/RecoTracker/LST/src/alpaka/ES_ModulesDev.cc index 3964d050f924b..8545fe76f4f41 100644 --- a/RecoTracker/LST/src/alpaka/ES_ModulesDev.cc +++ b/RecoTracker/LST/src/alpaka/ES_ModulesDev.cc @@ -3,5 +3,5 @@ // Temporary hack: The DevHost instantiation is needed in both CPU and GPU plugins, // whereas the (non-host-)Device instantiation only in the GPU plugin -TYPELOOKUP_DATA_REG(SDL::LSTESData); -TYPELOOKUP_ALPAKA_TEMPLATED_DATA_REG(SDL::LSTESData); +TYPELOOKUP_DATA_REG(ALPAKA_ACCELERATOR_NAMESPACE::SDL::LSTESData); +TYPELOOKUP_ALPAKA_TEMPLATED_DATA_REG(ALPAKA_ACCELERATOR_NAMESPACE::SDL::LSTESData); diff --git a/RecoTracker/LSTCore/interface/alpaka/Constants.h b/RecoTracker/LSTCore/interface/alpaka/Constants.h index 345cc7003831e..239a564584fbc 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Constants.h +++ b/RecoTracker/LSTCore/interface/alpaka/Constants.h @@ -14,7 +14,7 @@ #include #endif -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { // Half precision wrapper functions. #if defined(FP16_Base) #define __F2H __float2half @@ -26,19 +26,7 @@ namespace SDL { typedef float FPX; #endif - using Idx = alpaka_common::Idx; - using Dim = alpaka_common::Dim3D; - using Dim1d = alpaka_common::Dim1D; - using Vec = alpaka_common::Vec3D; - using Vec1d = alpaka_common::Vec1D; - using WorkDiv = alpaka_common::WorkDiv3D; - - using Acc = ALPAKA_ACCELERATOR_NAMESPACE::Acc3D; - using Dev = ALPAKA_ACCELERATOR_NAMESPACE::Device; - using DevHost = ALPAKA_ACCELERATOR_NAMESPACE::DevHost; - using QueueAcc = ALPAKA_ACCELERATOR_NAMESPACE::Queue; - - Vec const elementsPerThread(Vec::all(static_cast(1))); + alpaka_common::Vec3D const elementsPerThread(alpaka_common::Vec3D::all(static_cast(1))); // Needed for files that are compiled by g++ to not throw an error. // uint4 is defined only for CUDA, so we will have to revisit this soon when running on other backends. @@ -53,7 +41,7 @@ namespace SDL { // Buffer type for allocations where auto type can't be used. template - using Buf = alpaka::Buf; + using Buf = alpaka::Buf; // Allocation wrapper function to make integration of the caching allocator easier and reduce code boilerplate. template @@ -61,26 +49,26 @@ namespace SDL { TSize nElements, TQueue queue) { #ifdef CACHE_ALLOC - return cms::alpakatools::allocCachedBuf(devAccIn, queue, Vec1d(static_cast(nElements))); + return cms::alpakatools::allocCachedBuf(devAccIn, queue, Vec1D(static_cast(nElements))); #else - return alpaka::allocBuf(devAccIn, Vec1d(static_cast(nElements))); + return alpaka::allocBuf(devAccIn, Vec1D(static_cast(nElements))); #endif } // Second allocation wrapper function when queue is not given. Reduces code boilerplate. template ALPAKA_FN_HOST ALPAKA_FN_INLINE Buf, T> allocBufWrapper(TAcc const& devAccIn, TSize nElements) { - return alpaka::allocBuf(devAccIn, Vec1d(static_cast(nElements))); + return alpaka::allocBuf(devAccIn, Vec1D(static_cast(nElements))); } // Wrapper function to reduce code boilerplate for defining grid/block sizes. - ALPAKA_FN_HOST ALPAKA_FN_INLINE Vec createVec(int x, int y, int z) { - return Vec(static_cast(x), static_cast(y), static_cast(z)); + ALPAKA_FN_HOST ALPAKA_FN_INLINE alpaka_common::Vec3D createVec(int x, int y, int z) { + return alpaka_common::Vec3D(static_cast(x), static_cast(y), static_cast(z)); } // Adjust grid and block sizes based on backend configuration template - ALPAKA_FN_HOST ALPAKA_FN_INLINE WorkDiv createWorkDiv(const Vec& blocksPerGrid, + ALPAKA_FN_HOST ALPAKA_FN_INLINE WorkDiv3D createWorkDiv(const Vec& blocksPerGrid, const Vec& threadsPerBlock, const Vec& elementsPerThreadArg) { Vec adjustedBlocks = blocksPerGrid; @@ -97,7 +85,7 @@ namespace SDL { adjustedBlocks = Vec::all(static_cast(1)); #endif - return WorkDiv(adjustedBlocks, adjustedThreads, elementsPerThreadArg); + return WorkDiv3D(adjustedBlocks, adjustedThreads, elementsPerThreadArg); } // 15 MeV constant from the approximate Bethe-Bloch formula @@ -112,7 +100,11 @@ namespace SDL { ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float k2Rinv1GeVf = (2.99792458e-3 * 3.8) / 2; ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kR1GeVf = 1. / (2.99792458e-3 * 3.8); ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float sinAlphaMax = 0.95; +#ifdef PT_CUT ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float ptCut = PT_CUT; +#else + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float ptCut = ::SDL::PT_CUT; +#endif ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float deltaZLum = 15.0; ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float pixelPSZpitch = 0.15; ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float stripPSZpitch = 2.4; @@ -125,7 +117,7 @@ namespace SDL { ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float SDL_INF = 123456789.0; } //namespace SDL -namespace T5DNN { +namespace ALPAKA_ACCELERATOR_NAMESPACE::T5DNN { // Working points matching LST fake rate (43.9%) or signal acceptance (82.0%) ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float LSTWP1 = 0.3418833f; // 94.0% TPR, 43.9% FPR ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float LSTWP2 = 0.6177366f; // 82.0% TPR, 20.0% FPR diff --git a/RecoTracker/LSTCore/interface/alpaka/EndcapGeometryBuffer.h b/RecoTracker/LSTCore/interface/alpaka/EndcapGeometryBuffer.h index 3def25c3ccb7b..af03720bbd8d7 100644 --- a/RecoTracker/LSTCore/interface/alpaka/EndcapGeometryBuffer.h +++ b/RecoTracker/LSTCore/interface/alpaka/EndcapGeometryBuffer.h @@ -13,7 +13,7 @@ #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { struct EndcapGeometryDev { const unsigned int* geoMapDetId; @@ -49,7 +49,7 @@ namespace SDL { copyFromSrc(queue, src); } - inline SDL::EndcapGeometryDev const* data() const { return this; } + inline EndcapGeometryDev const* data() const { return this; } }; } // namespace SDL diff --git a/RecoTracker/LSTCore/interface/alpaka/LST.h b/RecoTracker/LSTCore/interface/alpaka/LST.h index 6b8ee7e23ddd3..1f7d3cca05ccb 100644 --- a/RecoTracker/LSTCore/interface/alpaka/LST.h +++ b/RecoTracker/LSTCore/interface/alpaka/LST.h @@ -9,7 +9,7 @@ #include #include -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { template class Event; @@ -17,13 +17,13 @@ namespace SDL { class LST; template <> - class LST { + class LST { public: LST() = default; - void run(QueueAcc& queue, + void run(Queue& queue, bool verbose, - const LSTESData* deviceESData, + const LSTESData* deviceESData, const std::vector see_px, const std::vector see_py, const std::vector see_pz, @@ -71,7 +71,7 @@ namespace SDL { const std::vector ph2_y, const std::vector ph2_z); - void getOutput(SDL::Event& event); + void getOutput(SDL::Event& event); std::vector getHitIdxs(const short trackCandidateType, const unsigned int TCIdx, const unsigned int* TCHitIndices, diff --git a/RecoTracker/LSTCore/interface/alpaka/LSTESData.h b/RecoTracker/LSTCore/interface/alpaka/LSTESData.h index 5bec4018daba5..8a39f646a08f7 100644 --- a/RecoTracker/LSTCore/interface/alpaka/LSTESData.h +++ b/RecoTracker/LSTCore/interface/alpaka/LSTESData.h @@ -4,15 +4,14 @@ #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/alpaka/EndcapGeometryBuffer.h" #include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/PixelMap.h" #include "HeterogeneousCore/AlpakaInterface/interface/CopyToDevice.h" #include #include -namespace SDL { - - struct pixelMap; +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { template struct LSTESData { @@ -22,7 +21,7 @@ namespace SDL { unsigned int nEndCapMap; std::shared_ptr> modulesBuffers; std::shared_ptr> endcapGeometryBuffers; - std::shared_ptr pixelMapping; + std::shared_ptr pixelMapping; LSTESData(uint16_t const& nModulesIn, uint16_t const& nLowerModulesIn, @@ -30,7 +29,7 @@ namespace SDL { unsigned int const& nEndCapMapIn, std::shared_ptr> const& modulesBuffersIn, std::shared_ptr> const& endcapGeometryBuffersIn, - std::shared_ptr const& pixelMappingIn) + std::shared_ptr const& pixelMappingIn) : nModules(nModulesIn), nLowerModules(nLowerModulesIn), nPixels(nPixelsIn), @@ -46,18 +45,18 @@ namespace SDL { namespace cms::alpakatools { template <> - struct CopyToDevice> { + struct CopyToDevice> { template - static SDL::LSTESData> copyAsync(TQueue& queue, - SDL::LSTESData const& srcData) { - auto deviceModulesBuffers = std::make_shared>>( + static ALPAKA_ACCELERATOR_NAMESPACE::SDL::LSTESData> copyAsync(TQueue& queue, + ALPAKA_ACCELERATOR_NAMESPACE::SDL::LSTESData const& srcData) { + auto deviceModulesBuffers = std::make_shared>>( alpaka::getDev(queue), srcData.nModules, srcData.nPixels); deviceModulesBuffers->copyFromSrc(queue, *srcData.modulesBuffers); auto deviceEndcapGeometryBuffers = - std::make_shared>>(alpaka::getDev(queue), srcData.nEndCapMap); + std::make_shared>>(alpaka::getDev(queue), srcData.nEndCapMap); deviceEndcapGeometryBuffers->copyFromSrc(queue, *srcData.endcapGeometryBuffers); - return SDL::LSTESData>(srcData.nModules, + return ALPAKA_ACCELERATOR_NAMESPACE::SDL::LSTESData>(srcData.nModules, srcData.nLowerModules, srcData.nPixels, srcData.nEndCapMap, diff --git a/RecoTracker/LSTCore/interface/alpaka/Module.h b/RecoTracker/LSTCore/interface/alpaka/Module.h index 323b74fa146dd..206caeaa6d6a4 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Module.h +++ b/RecoTracker/LSTCore/interface/alpaka/Module.h @@ -5,7 +5,7 @@ #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { enum SubDet { InnerPixel = 0, Barrel = 5, Endcap = 4 }; enum Side { NegZ = 1, PosZ = 2, Center = 3 }; @@ -286,7 +286,7 @@ namespace SDL { modulesBuffer(TDev const& dev, unsigned int nMod, unsigned int nPixs) : detIds_buf(allocBufWrapper(dev, nMod)), - moduleMap_buf(allocBufWrapper(dev, nMod * MAX_CONNECTED_MODULES)), + moduleMap_buf(allocBufWrapper(dev, nMod * ::SDL::MAX_CONNECTED_MODULES)), mapdetId_buf(allocBufWrapper(dev, nMod)), mapIdx_buf(allocBufWrapper(dev, nMod)), nConnectedModules_buf(allocBufWrapper(dev, nMod)), diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index 70d2ae8d69ed1..2d0d2551eeb2d 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc @@ -1,6 +1,8 @@ #include "Event.h" -void SDL::Event::init(bool verbose) { +using namespace ALPAKA_ACCELERATOR_NAMESPACE; + +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::init(bool verbose) { addObjects = verbose; hitsInGPU = nullptr; mdsInGPU = nullptr; @@ -42,7 +44,7 @@ void SDL::Event::init(bool verbose) { } } -void SDL::Event::resetEvent() { +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::resetEvent() { //reset the arrays for (int i = 0; i < 6; i++) { n_hits_by_layer_barrel_[i] = 0; @@ -148,7 +150,7 @@ void SDL::Event::resetEvent() { } } -void SDL::Event::addHitToEvent(std::vector x, +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addHitToEvent(std::vector x, std::vector y, std::vector z, std::vector detId, @@ -159,13 +161,13 @@ void SDL::Event::addHitToEvent(std::vector x, // Initialize space on device/host for next event. if (hitsInGPU == nullptr) { hitsInGPU = new SDL::hits(); - hitsBuffers = new SDL::hitsBuffer(nModules_, nHits, devAcc, queue); + hitsBuffers = new SDL::hitsBuffer(nModules_, nHits, devAcc, queue); hitsInGPU->setData(*hitsBuffers); } if (rangesInGPU == nullptr) { rangesInGPU = new SDL::objectRanges(); - rangesBuffers = new SDL::objectRangesBuffer(nModules_, nLowerModules_, devAcc, queue); + rangesBuffers = new SDL::objectRangesBuffer(nModules_, nLowerModules_, devAcc, queue); rangesInGPU->setData(*rangesBuffers); } @@ -181,12 +183,12 @@ void SDL::Event::addHitToEvent(std::vector x, alpaka::memcpy(queue, hitsBuffers->nHits_buf, nHits_view); alpaka::wait(queue); - Vec const threadsPerBlock1 = createVec(1, 1, 256); - Vec const blocksPerGrid1 = createVec(1, 1, MAX_BLOCKS); - WorkDiv const hit_loop_workdiv = createWorkDiv(blocksPerGrid1, threadsPerBlock1, elementsPerThread); + Vec3D const threadsPerBlock1 = createVec(1, 1, 256); + Vec3D const blocksPerGrid1 = createVec(1, 1, ::SDL::MAX_BLOCKS); + WorkDiv3D const hit_loop_workdiv = createWorkDiv(blocksPerGrid1, threadsPerBlock1, elementsPerThread); hitLoopKernel hit_loop_kernel; - auto const hit_loop_task(alpaka::createTaskKernel(hit_loop_workdiv, + auto const hit_loop_task(alpaka::createTaskKernel(hit_loop_workdiv, hit_loop_kernel, Endcap, TwoS, @@ -200,12 +202,12 @@ void SDL::Event::addHitToEvent(std::vector x, alpaka::enqueue(queue, hit_loop_task); - Vec const threadsPerBlock2 = createVec(1, 1, 256); - Vec const blocksPerGrid2 = createVec(1, 1, MAX_BLOCKS); - WorkDiv const module_ranges_workdiv = createWorkDiv(blocksPerGrid2, threadsPerBlock2, elementsPerThread); + Vec3D const threadsPerBlock2 = createVec(1, 1, 256); + Vec3D const blocksPerGrid2 = createVec(1, 1, ::SDL::MAX_BLOCKS); + WorkDiv3D const module_ranges_workdiv = createWorkDiv(blocksPerGrid2, threadsPerBlock2, elementsPerThread); moduleRangesKernel module_ranges_kernel; - auto const module_ranges_task(alpaka::createTaskKernel( + auto const module_ranges_task(alpaka::createTaskKernel( module_ranges_workdiv, module_ranges_kernel, *modulesBuffers_->data(), *hitsInGPU, nLowerModules_)); // Waiting isn't needed after second kernel call. Saves ~100 us. @@ -214,7 +216,7 @@ void SDL::Event::addHitToEvent(std::vector x, alpaka::enqueue(queue, module_ranges_task); } -void SDL::Event::addPixelSegmentToEvent(std::vector hitIndices0, +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addPixelSegmentToEvent(std::vector hitIndices0, std::vector hitIndices1, std::vector hitIndices2, std::vector hitIndices3, @@ -234,13 +236,13 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitI std::vector isQuad) { unsigned int size = ptIn.size(); - if (size > N_MAX_PIXEL_SEGMENTS_PER_MODULE) { + if (size > ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE) { printf( "*********************************************************\n" "* Warning: Pixel line segments will be truncated. *\n" "* You need to increase N_MAX_PIXEL_SEGMENTS_PER_MODULE. *\n" "*********************************************************\n"); - size = N_MAX_PIXEL_SEGMENTS_PER_MODULE; + size = ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE; } unsigned int mdSize = 2 * size; @@ -252,19 +254,19 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitI alpaka::createSubView(rangesBuffers->miniDoubletModuleOccupancy_buf, (Idx)1u, (Idx)nLowerModules_); // Create a source view for the value to be set - int value = N_MAX_PIXEL_MD_PER_MODULES; + int value = ::SDL::N_MAX_PIXEL_MD_PER_MODULES; auto src_view_value = alpaka::createView(devHost, &value, (Idx)1u); alpaka::memcpy(queue, dst_view_miniDoubletModuleOccupancy, src_view_value); alpaka::wait(queue); - Vec const threadsPerBlockCreateMD = createVec(1, 1, 1024); - Vec const blocksPerGridCreateMD = createVec(1, 1, 1); - WorkDiv const createMDArrayRangesGPU_workDiv = + Vec3D const threadsPerBlockCreateMD = createVec(1, 1, 1024); + Vec3D const blocksPerGridCreateMD = createVec(1, 1, 1); + WorkDiv3D const createMDArrayRangesGPU_workDiv = createWorkDiv(blocksPerGridCreateMD, threadsPerBlockCreateMD, elementsPerThread); SDL::createMDArrayRangesGPU createMDArrayRangesGPU_kernel; - auto const createMDArrayRangesGPUTask(alpaka::createTaskKernel( + auto const createMDArrayRangesGPUTask(alpaka::createTaskKernel( createMDArrayRangesGPU_workDiv, createMDArrayRangesGPU_kernel, *modulesBuffers_->data(), *rangesInGPU)); alpaka::enqueue(queue, createMDArrayRangesGPUTask); @@ -276,10 +278,10 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitI alpaka::memcpy(queue, nTotalMDs_view, rangesBuffers->device_nTotalMDs_buf); alpaka::wait(queue); - nTotalMDs += N_MAX_PIXEL_MD_PER_MODULES; + nTotalMDs += ::SDL::N_MAX_PIXEL_MD_PER_MODULES; mdsInGPU = new SDL::miniDoublets(); - miniDoubletsBuffers = new SDL::miniDoubletsBuffer(nTotalMDs, nLowerModules_, devAcc, queue); + miniDoubletsBuffers = new SDL::miniDoubletsBuffer(nTotalMDs, nLowerModules_, devAcc, queue); mdsInGPU->setData(*miniDoubletsBuffers); alpaka::memcpy(queue, miniDoubletsBuffers->nMemoryLocations_buf, nTotalMDs_view); @@ -289,13 +291,13 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitI // can be optimized here: because we didn't distinguish pixel segments and outer-tracker segments and call them both "segments", so they use the index continuously. // If we want to further study the memory footprint in detail, we can separate the two and allocate different memories to them - Vec const threadsPerBlockCreateSeg = createVec(1, 1, 1024); - Vec const blocksPerGridCreateSeg = createVec(1, 1, 1); - WorkDiv const createSegmentArrayRanges_workDiv = + Vec3D const threadsPerBlockCreateSeg = createVec(1, 1, 1024); + Vec3D const blocksPerGridCreateSeg = createVec(1, 1, 1); + WorkDiv3D const createSegmentArrayRanges_workDiv = createWorkDiv(blocksPerGridCreateSeg, threadsPerBlockCreateSeg, elementsPerThread); SDL::createSegmentArrayRanges createSegmentArrayRanges_kernel; - auto const createSegmentArrayRangesTask(alpaka::createTaskKernel(createSegmentArrayRanges_workDiv, + auto const createSegmentArrayRangesTask(alpaka::createTaskKernel(createSegmentArrayRanges_workDiv, createSegmentArrayRanges_kernel, *modulesBuffers_->data(), *rangesInGPU, @@ -309,11 +311,11 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitI alpaka::memcpy(queue, nTotalSegments_view, rangesBuffers->device_nTotalSegs_buf); alpaka::wait(queue); - nTotalSegments += N_MAX_PIXEL_SEGMENTS_PER_MODULE; + nTotalSegments += ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE; segmentsInGPU = new SDL::segments(); segmentsBuffers = - new SDL::segmentsBuffer(nTotalSegments, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); + new SDL::segmentsBuffer(nTotalSegments, nLowerModules_, ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); segmentsInGPU->setData(*segmentsBuffers); alpaka::memcpy(queue, segmentsBuffers->nMemoryLocations_buf, nTotalSegments_view); @@ -366,12 +368,12 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitI alpaka::wait(queue); - Vec const threadsPerBlock = createVec(1, 1, 256); - Vec const blocksPerGrid = createVec(1, 1, MAX_BLOCKS); - WorkDiv const addPixelSegmentToEvent_workdiv = createWorkDiv(blocksPerGrid, threadsPerBlock, elementsPerThread); + Vec3D const threadsPerBlock = createVec(1, 1, 256); + Vec3D const blocksPerGrid = createVec(1, 1, ::SDL::MAX_BLOCKS); + WorkDiv3D const addPixelSegmentToEvent_workdiv = createWorkDiv(blocksPerGrid, threadsPerBlock, elementsPerThread); addPixelSegmentToEventKernel addPixelSegmentToEvent_kernel; - auto const addPixelSegmentToEvent_task(alpaka::createTaskKernel(addPixelSegmentToEvent_workdiv, + auto const addPixelSegmentToEvent_task(alpaka::createTaskKernel(addPixelSegmentToEvent_workdiv, addPixelSegmentToEvent_kernel, *modulesBuffers_->data(), *rangesInGPU, @@ -390,25 +392,25 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitI alpaka::wait(queue); } -void SDL::Event::createMiniDoublets() { +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createMiniDoublets() { // Create a view for the element nLowerModules_ inside rangesBuffers->miniDoubletModuleOccupancy auto dst_view_miniDoubletModuleOccupancy = alpaka::createSubView(rangesBuffers->miniDoubletModuleOccupancy_buf, (Idx)1u, (Idx)nLowerModules_); // Create a source view for the value to be set - int value = N_MAX_PIXEL_MD_PER_MODULES; + int value = ::SDL::N_MAX_PIXEL_MD_PER_MODULES; auto src_view_value = alpaka::createView(devHost, &value, (Idx)1u); alpaka::memcpy(queue, dst_view_miniDoubletModuleOccupancy, src_view_value); alpaka::wait(queue); - Vec const threadsPerBlockCreateMD = createVec(1, 1, 1024); - Vec const blocksPerGridCreateMD = createVec(1, 1, 1); - WorkDiv const createMDArrayRangesGPU_workDiv = + Vec3D const threadsPerBlockCreateMD = createVec(1, 1, 1024); + Vec3D const blocksPerGridCreateMD = createVec(1, 1, 1); + WorkDiv3D const createMDArrayRangesGPU_workDiv = createWorkDiv(blocksPerGridCreateMD, threadsPerBlockCreateMD, elementsPerThread); SDL::createMDArrayRangesGPU createMDArrayRangesGPU_kernel; - auto const createMDArrayRangesGPUTask(alpaka::createTaskKernel( + auto const createMDArrayRangesGPUTask(alpaka::createTaskKernel( createMDArrayRangesGPU_workDiv, createMDArrayRangesGPU_kernel, *modulesBuffers_->data(), *rangesInGPU)); alpaka::enqueue(queue, createMDArrayRangesGPUTask); @@ -421,21 +423,21 @@ void SDL::Event::createMiniDoublets() { unsigned int nTotalMDs = *alpaka::getPtrNative(nTotalMDs_buf); - nTotalMDs += N_MAX_PIXEL_MD_PER_MODULES; + nTotalMDs += ::SDL::N_MAX_PIXEL_MD_PER_MODULES; if (mdsInGPU == nullptr) { mdsInGPU = new SDL::miniDoublets(); - miniDoubletsBuffers = new SDL::miniDoubletsBuffer(nTotalMDs, nLowerModules_, devAcc, queue); + miniDoubletsBuffers = new SDL::miniDoubletsBuffer(nTotalMDs, nLowerModules_, devAcc, queue); mdsInGPU->setData(*miniDoubletsBuffers); } - Vec const threadsPerBlockCreateMDInGPU = createVec(1, 16, 32); - Vec const blocksPerGridCreateMDInGPU = createVec(1, nLowerModules_ / threadsPerBlockCreateMDInGPU[1], 1); - WorkDiv const createMiniDoubletsInGPUv2_workDiv = + Vec3D const threadsPerBlockCreateMDInGPU = createVec(1, 16, 32); + Vec3D const blocksPerGridCreateMDInGPU = createVec(1, nLowerModules_ / threadsPerBlockCreateMDInGPU[1], 1); + WorkDiv3D const createMiniDoubletsInGPUv2_workDiv = createWorkDiv(blocksPerGridCreateMDInGPU, threadsPerBlockCreateMDInGPU, elementsPerThread); SDL::createMiniDoubletsInGPUv2 createMiniDoubletsInGPUv2_kernel; - auto const createMiniDoubletsInGPUv2Task(alpaka::createTaskKernel(createMiniDoubletsInGPUv2_workDiv, + auto const createMiniDoubletsInGPUv2Task(alpaka::createTaskKernel(createMiniDoubletsInGPUv2_workDiv, createMiniDoubletsInGPUv2_kernel, *modulesBuffers_->data(), *hitsInGPU, @@ -444,14 +446,14 @@ void SDL::Event::createMiniDoublets() { alpaka::enqueue(queue, createMiniDoubletsInGPUv2Task); - Vec const threadsPerBlockAddMD = createVec(1, 1, 1024); - Vec const blocksPerGridAddMD = createVec(1, 1, 1); - WorkDiv const addMiniDoubletRangesToEventExplicit_workDiv = + Vec3D const threadsPerBlockAddMD = createVec(1, 1, 1024); + Vec3D const blocksPerGridAddMD = createVec(1, 1, 1); + WorkDiv3D const addMiniDoubletRangesToEventExplicit_workDiv = createWorkDiv(blocksPerGridAddMD, threadsPerBlockAddMD, elementsPerThread); SDL::addMiniDoubletRangesToEventExplicit addMiniDoubletRangesToEventExplicit_kernel; auto const addMiniDoubletRangesToEventExplicitTask( - alpaka::createTaskKernel(addMiniDoubletRangesToEventExplicit_workDiv, + alpaka::createTaskKernel(addMiniDoubletRangesToEventExplicit_workDiv, addMiniDoubletRangesToEventExplicit_kernel, *modulesBuffers_->data(), *mdsInGPU, @@ -466,21 +468,21 @@ void SDL::Event::createMiniDoublets() { } } -void SDL::Event::createSegmentsWithModuleMap() { +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createSegmentsWithModuleMap() { if (segmentsInGPU == nullptr) { segmentsInGPU = new SDL::segments(); segmentsBuffers = - new SDL::segmentsBuffer(nTotalSegments, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); + new SDL::segmentsBuffer(nTotalSegments, nLowerModules_, ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); segmentsInGPU->setData(*segmentsBuffers); } - Vec const threadsPerBlockCreateSeg = createVec(1, 1, 64); - Vec const blocksPerGridCreateSeg = createVec(1, 1, nLowerModules_); - WorkDiv const createSegmentsInGPUv2_workDiv = + Vec3D const threadsPerBlockCreateSeg = createVec(1, 1, 64); + Vec3D const blocksPerGridCreateSeg = createVec(1, 1, nLowerModules_); + WorkDiv3D const createSegmentsInGPUv2_workDiv = createWorkDiv(blocksPerGridCreateSeg, threadsPerBlockCreateSeg, elementsPerThread); SDL::createSegmentsInGPUv2 createSegmentsInGPUv2_kernel; - auto const createSegmentsInGPUv2Task(alpaka::createTaskKernel(createSegmentsInGPUv2_workDiv, + auto const createSegmentsInGPUv2Task(alpaka::createTaskKernel(createSegmentsInGPUv2_workDiv, createSegmentsInGPUv2_kernel, *modulesBuffers_->data(), *mdsInGPU, @@ -489,13 +491,13 @@ void SDL::Event::createSegmentsWithModuleMap() { alpaka::enqueue(queue, createSegmentsInGPUv2Task); - Vec const threadsPerBlockAddSeg = createVec(1, 1, 1024); - Vec const blocksPerGridAddSeg = createVec(1, 1, 1); - WorkDiv const addSegmentRangesToEventExplicit_workDiv = + Vec3D const threadsPerBlockAddSeg = createVec(1, 1, 1024); + Vec3D const blocksPerGridAddSeg = createVec(1, 1, 1); + WorkDiv3D const addSegmentRangesToEventExplicit_workDiv = createWorkDiv(blocksPerGridAddSeg, threadsPerBlockAddSeg, elementsPerThread); SDL::addSegmentRangesToEventExplicit addSegmentRangesToEventExplicit_kernel; - auto const addSegmentRangesToEventExplicitTask(alpaka::createTaskKernel(addSegmentRangesToEventExplicit_workDiv, + auto const addSegmentRangesToEventExplicitTask(alpaka::createTaskKernel(addSegmentRangesToEventExplicit_workDiv, addSegmentRangesToEventExplicit_kernel, *modulesBuffers_->data(), *segmentsInGPU, @@ -509,15 +511,15 @@ void SDL::Event::createSegmentsWithModuleMap() { } } -void SDL::Event::createTriplets() { +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createTriplets() { if (tripletsInGPU == nullptr) { - Vec const threadsPerBlockCreateTrip = createVec(1, 1, 1024); - Vec const blocksPerGridCreateTrip = createVec(1, 1, 1); - WorkDiv const createTripletArrayRanges_workDiv = + Vec3D const threadsPerBlockCreateTrip = createVec(1, 1, 1024); + Vec3D const blocksPerGridCreateTrip = createVec(1, 1, 1); + WorkDiv3D const createTripletArrayRanges_workDiv = createWorkDiv(blocksPerGridCreateTrip, threadsPerBlockCreateTrip, elementsPerThread); SDL::createTripletArrayRanges createTripletArrayRanges_kernel; - auto const createTripletArrayRangesTask(alpaka::createTaskKernel(createTripletArrayRanges_workDiv, + auto const createTripletArrayRangesTask(alpaka::createTaskKernel(createTripletArrayRanges_workDiv, createTripletArrayRanges_kernel, *modulesBuffers_->data(), *rangesInGPU, @@ -534,7 +536,7 @@ void SDL::Event::createTriplets() { tripletsInGPU = new SDL::triplets(); tripletsBuffers = - new SDL::tripletsBuffer(*alpaka::getPtrNative(maxTriplets_buf), nLowerModules_, devAcc, queue); + new SDL::tripletsBuffer(*alpaka::getPtrNative(maxTriplets_buf), nLowerModules_, devAcc, queue); tripletsInGPU->setData(*tripletsBuffers); alpaka::memcpy(queue, tripletsBuffers->nMemoryLocations_buf, maxTriplets_buf); @@ -579,13 +581,13 @@ void SDL::Event::createTriplets() { alpaka::memcpy(queue, index_gpu_buf, index_buf, nonZeroModules); alpaka::wait(queue); - Vec const threadsPerBlockCreateTrip = createVec(1, 16, 16); - Vec const blocksPerGridCreateTrip = createVec(MAX_BLOCKS, 1, 1); - WorkDiv const createTripletsInGPUv2_workDiv = + Vec3D const threadsPerBlockCreateTrip = createVec(1, 16, 16); + Vec3D const blocksPerGridCreateTrip = createVec(::SDL::MAX_BLOCKS, 1, 1); + WorkDiv3D const createTripletsInGPUv2_workDiv = createWorkDiv(blocksPerGridCreateTrip, threadsPerBlockCreateTrip, elementsPerThread); SDL::createTripletsInGPUv2 createTripletsInGPUv2_kernel; - auto const createTripletsInGPUv2Task(alpaka::createTaskKernel(createTripletsInGPUv2_workDiv, + auto const createTripletsInGPUv2Task(alpaka::createTaskKernel(createTripletsInGPUv2_workDiv, createTripletsInGPUv2_kernel, *modulesBuffers_->data(), *mdsInGPU, @@ -597,13 +599,13 @@ void SDL::Event::createTriplets() { alpaka::enqueue(queue, createTripletsInGPUv2Task); - Vec const threadsPerBlockAddTrip = createVec(1, 1, 1024); - Vec const blocksPerGridAddTrip = createVec(1, 1, 1); - WorkDiv const addTripletRangesToEventExplicit_workDiv = + Vec3D const threadsPerBlockAddTrip = createVec(1, 1, 1024); + Vec3D const blocksPerGridAddTrip = createVec(1, 1, 1); + WorkDiv3D const addTripletRangesToEventExplicit_workDiv = createWorkDiv(blocksPerGridAddTrip, threadsPerBlockAddTrip, elementsPerThread); SDL::addTripletRangesToEventExplicit addTripletRangesToEventExplicit_kernel; - auto const addTripletRangesToEventExplicitTask(alpaka::createTaskKernel(addTripletRangesToEventExplicit_workDiv, + auto const addTripletRangesToEventExplicitTask(alpaka::createTaskKernel(addTripletRangesToEventExplicit_workDiv, addTripletRangesToEventExplicit_kernel, *modulesBuffers_->data(), *tripletsInGPU, @@ -617,11 +619,11 @@ void SDL::Event::createTriplets() { } } -void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_triplets) { +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_triplets) { if (trackCandidatesInGPU == nullptr) { trackCandidatesInGPU = new SDL::trackCandidates(); - trackCandidatesBuffers = new SDL::trackCandidatesBuffer( - N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devAcc, queue); + trackCandidatesBuffers = new SDL::trackCandidatesBuffer( + ::SDL::N_MAX_NONPIXEL_TRACK_CANDIDATES + ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES, devAcc, queue); trackCandidatesInGPU->setData(*trackCandidatesBuffers); } @@ -631,13 +633,13 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_p alpaka::wait(queue); uint16_t nEligibleModules = *alpaka::getPtrNative(nEligibleModules_buf); - Vec const threadsPerBlock_crossCleanpT3 = createVec(1, 16, 64); - Vec const blocksPerGrid_crossCleanpT3 = createVec(1, 4, 20); - WorkDiv const crossCleanpT3_workDiv = + Vec3D const threadsPerBlock_crossCleanpT3 = createVec(1, 16, 64); + Vec3D const blocksPerGrid_crossCleanpT3 = createVec(1, 4, 20); + WorkDiv3D const crossCleanpT3_workDiv = createWorkDiv(blocksPerGrid_crossCleanpT3, threadsPerBlock_crossCleanpT3, elementsPerThread); SDL::crossCleanpT3 crossCleanpT3_kernel; - auto const crossCleanpT3Task(alpaka::createTaskKernel(crossCleanpT3_workDiv, + auto const crossCleanpT3Task(alpaka::createTaskKernel(crossCleanpT3_workDiv, crossCleanpT3_kernel, *modulesBuffers_->data(), *rangesInGPU, @@ -647,13 +649,13 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_p alpaka::enqueue(queue, crossCleanpT3Task); - Vec const threadsPerBlock_addpT3asTrackCandidatesInGPU = createVec(1, 1, 512); - Vec const blocksPerGrid_addpT3asTrackCandidatesInGPU = createVec(1, 1, 1); - WorkDiv const addpT3asTrackCandidatesInGPU_workDiv = createWorkDiv( + Vec3D const threadsPerBlock_addpT3asTrackCandidatesInGPU = createVec(1, 1, 512); + Vec3D const blocksPerGrid_addpT3asTrackCandidatesInGPU = createVec(1, 1, 1); + WorkDiv3D const addpT3asTrackCandidatesInGPU_workDiv = createWorkDiv( blocksPerGrid_addpT3asTrackCandidatesInGPU, threadsPerBlock_addpT3asTrackCandidatesInGPU, elementsPerThread); SDL::addpT3asTrackCandidatesInGPU addpT3asTrackCandidatesInGPU_kernel; - auto const addpT3asTrackCandidatesInGPUTask(alpaka::createTaskKernel(addpT3asTrackCandidatesInGPU_workDiv, + auto const addpT3asTrackCandidatesInGPUTask(alpaka::createTaskKernel(addpT3asTrackCandidatesInGPU_workDiv, addpT3asTrackCandidatesInGPU_kernel, nLowerModules_, *pixelTripletsInGPU, @@ -663,28 +665,28 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_p alpaka::enqueue(queue, addpT3asTrackCandidatesInGPUTask); - Vec const threadsPerBlockRemoveDupQuints = createVec(1, 16, 32); - Vec const blocksPerGridRemoveDupQuints = + Vec3D const threadsPerBlockRemoveDupQuints = createVec(1, 16, 32); + Vec3D const blocksPerGridRemoveDupQuints = createVec(1, std::max(nEligibleModules / 16, 1), std::max(nEligibleModules / 32, 1)); - WorkDiv const removeDupQuintupletsInGPUBeforeTC_workDiv = + WorkDiv3D const removeDupQuintupletsInGPUBeforeTC_workDiv = createWorkDiv(blocksPerGridRemoveDupQuints, threadsPerBlockRemoveDupQuints, elementsPerThread); SDL::removeDupQuintupletsInGPUBeforeTC removeDupQuintupletsInGPUBeforeTC_kernel; auto const removeDupQuintupletsInGPUBeforeTCTask( - alpaka::createTaskKernel(removeDupQuintupletsInGPUBeforeTC_workDiv, + alpaka::createTaskKernel(removeDupQuintupletsInGPUBeforeTC_workDiv, removeDupQuintupletsInGPUBeforeTC_kernel, *quintupletsInGPU, *rangesInGPU)); alpaka::enqueue(queue, removeDupQuintupletsInGPUBeforeTCTask); - Vec const threadsPerBlock_crossCleanT5 = createVec(32, 1, 32); - Vec const blocksPerGrid_crossCleanT5 = createVec((13296 / 32) + 1, 1, MAX_BLOCKS); - WorkDiv const crossCleanT5_workDiv = + Vec3D const threadsPerBlock_crossCleanT5 = createVec(32, 1, 32); + Vec3D const blocksPerGrid_crossCleanT5 = createVec((13296 / 32) + 1, 1, ::SDL::MAX_BLOCKS); + WorkDiv3D const crossCleanT5_workDiv = createWorkDiv(blocksPerGrid_crossCleanT5, threadsPerBlock_crossCleanT5, elementsPerThread); SDL::crossCleanT5 crossCleanT5_kernel; - auto const crossCleanT5Task(alpaka::createTaskKernel(crossCleanT5_workDiv, + auto const crossCleanT5Task(alpaka::createTaskKernel(crossCleanT5_workDiv, crossCleanT5_kernel, *modulesBuffers_->data(), *quintupletsInGPU, @@ -694,13 +696,13 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_p alpaka::enqueue(queue, crossCleanT5Task); - Vec const threadsPerBlock_addT5asTrackCandidateInGPU = createVec(1, 8, 128); - Vec const blocksPerGrid_addT5asTrackCandidateInGPU = createVec(1, 8, 10); - WorkDiv const addT5asTrackCandidateInGPU_workDiv = createWorkDiv( + Vec3D const threadsPerBlock_addT5asTrackCandidateInGPU = createVec(1, 8, 128); + Vec3D const blocksPerGrid_addT5asTrackCandidateInGPU = createVec(1, 8, 10); + WorkDiv3D const addT5asTrackCandidateInGPU_workDiv = createWorkDiv( blocksPerGrid_addT5asTrackCandidateInGPU, threadsPerBlock_addT5asTrackCandidateInGPU, elementsPerThread); SDL::addT5asTrackCandidateInGPU addT5asTrackCandidateInGPU_kernel; - auto const addT5asTrackCandidateInGPUTask(alpaka::createTaskKernel(addT5asTrackCandidateInGPU_workDiv, + auto const addT5asTrackCandidateInGPUTask(alpaka::createTaskKernel(addT5asTrackCandidateInGPU_workDiv, addT5asTrackCandidateInGPU_kernel, nLowerModules_, *quintupletsInGPU, @@ -710,25 +712,25 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_p alpaka::enqueue(queue, addT5asTrackCandidateInGPUTask); if (!no_pls_dupclean) { - Vec const threadsPerBlockCheckHitspLS = createVec(1, 16, 16); - Vec const blocksPerGridCheckHitspLS = createVec(1, MAX_BLOCKS * 4, MAX_BLOCKS / 4); - WorkDiv const checkHitspLS_workDiv = + Vec3D const threadsPerBlockCheckHitspLS = createVec(1, 16, 16); + Vec3D const blocksPerGridCheckHitspLS = createVec(1, ::SDL::MAX_BLOCKS * 4, ::SDL::MAX_BLOCKS / 4); + WorkDiv3D const checkHitspLS_workDiv = createWorkDiv(blocksPerGridCheckHitspLS, threadsPerBlockCheckHitspLS, elementsPerThread); SDL::checkHitspLS checkHitspLS_kernel; - auto const checkHitspLSTask(alpaka::createTaskKernel( + auto const checkHitspLSTask(alpaka::createTaskKernel( checkHitspLS_workDiv, checkHitspLS_kernel, *modulesBuffers_->data(), *segmentsInGPU, true)); alpaka::enqueue(queue, checkHitspLSTask); } - Vec const threadsPerBlock_crossCleanpLS = createVec(1, 16, 32); - Vec const blocksPerGrid_crossCleanpLS = createVec(1, 4, 20); - WorkDiv const crossCleanpLS_workDiv = + Vec3D const threadsPerBlock_crossCleanpLS = createVec(1, 16, 32); + Vec3D const blocksPerGrid_crossCleanpLS = createVec(1, 4, 20); + WorkDiv3D const crossCleanpLS_workDiv = createWorkDiv(blocksPerGrid_crossCleanpLS, threadsPerBlock_crossCleanpLS, elementsPerThread); SDL::crossCleanpLS crossCleanpLS_kernel; - auto const crossCleanpLSTask(alpaka::createTaskKernel(crossCleanpLS_workDiv, + auto const crossCleanpLSTask(alpaka::createTaskKernel(crossCleanpLS_workDiv, crossCleanpLS_kernel, *modulesBuffers_->data(), *rangesInGPU, @@ -741,13 +743,13 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_p alpaka::enqueue(queue, crossCleanpLSTask); - Vec const threadsPerBlock_addpLSasTrackCandidateInGPU = createVec(1, 1, 384); - Vec const blocksPerGrid_addpLSasTrackCandidateInGPU = createVec(1, 1, MAX_BLOCKS); - WorkDiv const addpLSasTrackCandidateInGPU_workDiv = createWorkDiv( + Vec3D const threadsPerBlock_addpLSasTrackCandidateInGPU = createVec(1, 1, 384); + Vec3D const blocksPerGrid_addpLSasTrackCandidateInGPU = createVec(1, 1, ::SDL::MAX_BLOCKS); + WorkDiv3D const addpLSasTrackCandidateInGPU_workDiv = createWorkDiv( blocksPerGrid_addpLSasTrackCandidateInGPU, threadsPerBlock_addpLSasTrackCandidateInGPU, elementsPerThread); SDL::addpLSasTrackCandidateInGPU addpLSasTrackCandidateInGPU_kernel; - auto const addpLSasTrackCandidateInGPUTask(alpaka::createTaskKernel(addpLSasTrackCandidateInGPU_workDiv, + auto const addpLSasTrackCandidateInGPUTask(alpaka::createTaskKernel(addpLSasTrackCandidateInGPU_workDiv, addpLSasTrackCandidateInGPU_kernel, nLowerModules_, *trackCandidatesInGPU, @@ -756,7 +758,7 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_p alpaka::enqueue(queue, addpLSasTrackCandidateInGPUTask); - // Check if either N_MAX_PIXEL_TRACK_CANDIDATES or N_MAX_NONPIXEL_TRACK_CANDIDATES was reached + // Check if either ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES or ::SDL::N_MAX_NONPIXEL_TRACK_CANDIDATES was reached auto nTrackCanpT5Host_buf = allocBufWrapper(devHost, 1, queue); auto nTrackCanpT3Host_buf = allocBufWrapper(devHost, 1, queue); auto nTrackCanpLSHost_buf = allocBufWrapper(devHost, 1, queue); @@ -771,8 +773,8 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_p int nTrackCandidatespT3 = *alpaka::getPtrNative(nTrackCanpT3Host_buf); int nTrackCandidatespLS = *alpaka::getPtrNative(nTrackCanpLSHost_buf); int nTrackCandidatesT5 = *alpaka::getPtrNative(nTrackCanT5Host_buf); - if ((nTrackCandidatespT5 + nTrackCandidatespT3 + nTrackCandidatespLS == N_MAX_PIXEL_TRACK_CANDIDATES) || - (nTrackCandidatesT5 == N_MAX_NONPIXEL_TRACK_CANDIDATES)) { + if ((nTrackCandidatespT5 + nTrackCandidatespT3 + nTrackCandidatespLS == ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES) || + (nTrackCandidatesT5 == ::SDL::N_MAX_NONPIXEL_TRACK_CANDIDATES)) { printf( "****************************************************************************************************\n" "* Warning: Track candidates were possibly truncated. *\n" @@ -782,10 +784,10 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_p } } -void SDL::Event::createPixelTriplets() { +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createPixelTriplets() { if (pixelTripletsInGPU == nullptr) { pixelTripletsInGPU = new SDL::pixelTriplets(); - pixelTripletsBuffers = new SDL::pixelTripletsBuffer(N_MAX_PIXEL_TRIPLETS, devAcc, queue); + pixelTripletsBuffers = new SDL::pixelTripletsBuffer(::SDL::N_MAX_PIXEL_TRIPLETS, devAcc, queue); pixelTripletsInGPU->setData(*pixelTripletsBuffers); } @@ -797,8 +799,8 @@ void SDL::Event::createPixelTriplets() { alpaka::memcpy(queue, nInnerSegments_src_view, dev_view_nSegments); alpaka::wait(queue); - auto superbins_buf = allocBufWrapper(devHost, N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); - auto pixelTypes_buf = allocBufWrapper(devHost, N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); + auto superbins_buf = allocBufWrapper(devHost, ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); + auto pixelTypes_buf = allocBufWrapper(devHost, ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); alpaka::memcpy(queue, superbins_buf, segmentsBuffers->superbin_buf); alpaka::memcpy(queue, pixelTypes_buf, segmentsBuffers->pixelType_buf); @@ -816,16 +818,16 @@ void SDL::Event::createPixelTriplets() { alpaka::wait(queue); int pixelIndexOffsetPos = - pixelMapping_->connectedPixelsIndex[size_superbins - 1] + pixelMapping_->connectedPixelsSizes[size_superbins - 1]; - int pixelIndexOffsetNeg = pixelMapping_->connectedPixelsIndexPos[size_superbins - 1] + - pixelMapping_->connectedPixelsSizesPos[size_superbins - 1] + pixelIndexOffsetPos; + pixelMapping_->connectedPixelsIndex[::SDL::size_superbins - 1] + pixelMapping_->connectedPixelsSizes[::SDL::size_superbins - 1]; + int pixelIndexOffsetNeg = pixelMapping_->connectedPixelsIndexPos[::SDL::size_superbins - 1] + + pixelMapping_->connectedPixelsSizesPos[::SDL::size_superbins - 1] + pixelIndexOffsetPos; // TODO: check if a map/reduction to just eligible pLSs would speed up the kernel // the current selection still leaves a significant fraction of unmatchable pLSs for (unsigned int i = 0; i < nInnerSegments; i++) { // loop over # pLS int8_t pixelType = pixelTypes[i]; // Get pixel type for this pLS int superbin = superbins[i]; // Get superbin for this pixel - if ((superbin < 0) or (superbin >= (int)size_superbins) or (pixelType > 2) or (pixelType < 0)) { + if ((superbin < 0) or (superbin >= (int)::SDL::size_superbins) or (pixelType > 2) or (pixelType < 0)) { connectedPixelSize_host[i] = 0; connectedPixelIndex_host[i] = 0; continue; @@ -855,14 +857,14 @@ void SDL::Event::createPixelTriplets() { alpaka::memcpy(queue, connectedPixelIndex_dev_buf, connectedPixelIndex_host_buf, nInnerSegments); alpaka::wait(queue); - Vec const threadsPerBlock = createVec(1, 4, 32); - Vec const blocksPerGrid = createVec(16 /* above median of connected modules*/, 4096, 1); - WorkDiv const createPixelTripletsInGPUFromMapv2_workDiv = + Vec3D const threadsPerBlock = createVec(1, 4, 32); + Vec3D const blocksPerGrid = createVec(16 /* above median of connected modules*/, 4096, 1); + WorkDiv3D const createPixelTripletsInGPUFromMapv2_workDiv = createWorkDiv(blocksPerGrid, threadsPerBlock, elementsPerThread); SDL::createPixelTripletsInGPUFromMapv2 createPixelTripletsInGPUFromMapv2_kernel; auto const createPixelTripletsInGPUFromMapv2Task( - alpaka::createTaskKernel(createPixelTripletsInGPUFromMapv2_workDiv, + alpaka::createTaskKernel(createPixelTripletsInGPUFromMapv2_workDiv, createPixelTripletsInGPUFromMapv2_kernel, *modulesBuffers_->data(), *rangesInGPU, @@ -887,29 +889,29 @@ void SDL::Event::createPixelTriplets() { #endif //pT3s can be cleaned here because they're not used in making pT5s! - Vec const threadsPerBlockDupPixTrip = createVec(1, 16, 16); + Vec3D const threadsPerBlockDupPixTrip = createVec(1, 16, 16); //seems like more blocks lead to conflicting writes - Vec const blocksPerGridDupPixTrip = createVec(1, 40, 1); - WorkDiv const removeDupPixelTripletsInGPUFromMap_workDiv = + Vec3D const blocksPerGridDupPixTrip = createVec(1, 40, 1); + WorkDiv3D const removeDupPixelTripletsInGPUFromMap_workDiv = createWorkDiv(blocksPerGridDupPixTrip, threadsPerBlockDupPixTrip, elementsPerThread); SDL::removeDupPixelTripletsInGPUFromMap removeDupPixelTripletsInGPUFromMap_kernel; - auto const removeDupPixelTripletsInGPUFromMapTask(alpaka::createTaskKernel( + auto const removeDupPixelTripletsInGPUFromMapTask(alpaka::createTaskKernel( removeDupPixelTripletsInGPUFromMap_workDiv, removeDupPixelTripletsInGPUFromMap_kernel, *pixelTripletsInGPU)); alpaka::enqueue(queue, removeDupPixelTripletsInGPUFromMapTask); alpaka::wait(queue); } -void SDL::Event::createQuintuplets() { - Vec const threadsPerBlockCreateQuints = createVec(1, 1, 1024); - Vec const blocksPerGridCreateQuints = createVec(1, 1, 1); - WorkDiv const createEligibleModulesListForQuintupletsGPU_workDiv = +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createQuintuplets() { + Vec3D const threadsPerBlockCreateQuints = createVec(1, 1, 1024); + Vec3D const blocksPerGridCreateQuints = createVec(1, 1, 1); + WorkDiv3D const createEligibleModulesListForQuintupletsGPU_workDiv = createWorkDiv(blocksPerGridCreateQuints, threadsPerBlockCreateQuints, elementsPerThread); SDL::createEligibleModulesListForQuintupletsGPU createEligibleModulesListForQuintupletsGPU_kernel; auto const createEligibleModulesListForQuintupletsGPUTask( - alpaka::createTaskKernel(createEligibleModulesListForQuintupletsGPU_workDiv, + alpaka::createTaskKernel(createEligibleModulesListForQuintupletsGPU_workDiv, createEligibleModulesListForQuintupletsGPU_kernel, *modulesBuffers_->data(), *tripletsInGPU, @@ -930,20 +932,20 @@ void SDL::Event::createQuintuplets() { if (quintupletsInGPU == nullptr) { quintupletsInGPU = new SDL::quintuplets(); - quintupletsBuffers = new SDL::quintupletsBuffer(nTotalQuintuplets, nLowerModules_, devAcc, queue); + quintupletsBuffers = new SDL::quintupletsBuffer(nTotalQuintuplets, nLowerModules_, devAcc, queue); quintupletsInGPU->setData(*quintupletsBuffers); alpaka::memcpy(queue, quintupletsBuffers->nMemoryLocations_buf, nTotalQuintuplets_buf); alpaka::wait(queue); } - Vec const threadsPerBlockQuints = createVec(1, 8, 32); - Vec const blocksPerGridQuints = createVec(std::max((int)nEligibleT5Modules, 1), 1, 1); - WorkDiv const createQuintupletsInGPUv2_workDiv = + Vec3D const threadsPerBlockQuints = createVec(1, 8, 32); + Vec3D const blocksPerGridQuints = createVec(std::max((int)nEligibleT5Modules, 1), 1, 1); + WorkDiv3D const createQuintupletsInGPUv2_workDiv = createWorkDiv(blocksPerGridQuints, threadsPerBlockQuints, elementsPerThread); SDL::createQuintupletsInGPUv2 createQuintupletsInGPUv2_kernel; - auto const createQuintupletsInGPUv2Task(alpaka::createTaskKernel(createQuintupletsInGPUv2_workDiv, + auto const createQuintupletsInGPUv2Task(alpaka::createTaskKernel(createQuintupletsInGPUv2_workDiv, createQuintupletsInGPUv2_kernel, *modulesBuffers_->data(), *mdsInGPU, @@ -955,14 +957,14 @@ void SDL::Event::createQuintuplets() { alpaka::enqueue(queue, createQuintupletsInGPUv2Task); - Vec const threadsPerBlockDupQuint = createVec(1, 16, 16); - Vec const blocksPerGridDupQuint = createVec(MAX_BLOCKS, 1, 1); - WorkDiv const removeDupQuintupletsInGPUAfterBuild_workDiv = + Vec3D const threadsPerBlockDupQuint = createVec(1, 16, 16); + Vec3D const blocksPerGridDupQuint = createVec(::SDL::MAX_BLOCKS, 1, 1); + WorkDiv3D const removeDupQuintupletsInGPUAfterBuild_workDiv = createWorkDiv(blocksPerGridDupQuint, threadsPerBlockDupQuint, elementsPerThread); SDL::removeDupQuintupletsInGPUAfterBuild removeDupQuintupletsInGPUAfterBuild_kernel; auto const removeDupQuintupletsInGPUAfterBuildTask( - alpaka::createTaskKernel(removeDupQuintupletsInGPUAfterBuild_workDiv, + alpaka::createTaskKernel(removeDupQuintupletsInGPUAfterBuild_workDiv, removeDupQuintupletsInGPUAfterBuild_kernel, *modulesBuffers_->data(), *quintupletsInGPU, @@ -970,14 +972,14 @@ void SDL::Event::createQuintuplets() { alpaka::enqueue(queue, removeDupQuintupletsInGPUAfterBuildTask); - Vec const threadsPerBlockAddQuint = createVec(1, 1, 1024); - Vec const blocksPerGridAddQuint = createVec(1, 1, 1); - WorkDiv const addQuintupletRangesToEventExplicit_workDiv = + Vec3D const threadsPerBlockAddQuint = createVec(1, 1, 1024); + Vec3D const blocksPerGridAddQuint = createVec(1, 1, 1); + WorkDiv3D const addQuintupletRangesToEventExplicit_workDiv = createWorkDiv(blocksPerGridAddQuint, threadsPerBlockAddQuint, elementsPerThread); SDL::addQuintupletRangesToEventExplicit addQuintupletRangesToEventExplicit_kernel; auto const addQuintupletRangesToEventExplicitTask( - alpaka::createTaskKernel(addQuintupletRangesToEventExplicit_workDiv, + alpaka::createTaskKernel(addQuintupletRangesToEventExplicit_workDiv, addQuintupletRangesToEventExplicit_kernel, *modulesBuffers_->data(), *quintupletsInGPU, @@ -991,15 +993,15 @@ void SDL::Event::createQuintuplets() { } } -void SDL::Event::pixelLineSegmentCleaning(bool no_pls_dupclean) { +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::pixelLineSegmentCleaning(bool no_pls_dupclean) { if (!no_pls_dupclean) { - Vec const threadsPerBlockCheckHitspLS = createVec(1, 16, 16); - Vec const blocksPerGridCheckHitspLS = createVec(1, MAX_BLOCKS * 4, MAX_BLOCKS / 4); - WorkDiv const checkHitspLS_workDiv = + Vec3D const threadsPerBlockCheckHitspLS = createVec(1, 16, 16); + Vec3D const blocksPerGridCheckHitspLS = createVec(1, ::SDL::MAX_BLOCKS * 4, ::SDL::MAX_BLOCKS / 4); + WorkDiv3D const checkHitspLS_workDiv = createWorkDiv(blocksPerGridCheckHitspLS, threadsPerBlockCheckHitspLS, elementsPerThread); SDL::checkHitspLS checkHitspLS_kernel; - auto const checkHitspLSTask(alpaka::createTaskKernel( + auto const checkHitspLSTask(alpaka::createTaskKernel( checkHitspLS_workDiv, checkHitspLS_kernel, *modulesBuffers_->data(), *segmentsInGPU, false)); alpaka::enqueue(queue, checkHitspLSTask); @@ -1007,16 +1009,16 @@ void SDL::Event::pixelLineSegmentCleaning(bool no_pls_dupclean) { } } -void SDL::Event::createPixelQuintuplets() { +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createPixelQuintuplets() { if (pixelQuintupletsInGPU == nullptr) { pixelQuintupletsInGPU = new SDL::pixelQuintuplets(); - pixelQuintupletsBuffers = new SDL::pixelQuintupletsBuffer(N_MAX_PIXEL_QUINTUPLETS, devAcc, queue); + pixelQuintupletsBuffers = new SDL::pixelQuintupletsBuffer(::SDL::N_MAX_PIXEL_QUINTUPLETS, devAcc, queue); pixelQuintupletsInGPU->setData(*pixelQuintupletsBuffers); } if (trackCandidatesInGPU == nullptr) { trackCandidatesInGPU = new SDL::trackCandidates(); - trackCandidatesBuffers = new SDL::trackCandidatesBuffer( - N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devAcc, queue); + trackCandidatesBuffers = new SDL::trackCandidatesBuffer( + ::SDL::N_MAX_NONPIXEL_TRACK_CANDIDATES + ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES, devAcc, queue); trackCandidatesInGPU->setData(*trackCandidatesBuffers); } @@ -1029,8 +1031,8 @@ void SDL::Event::createPixelQuintuplets() { alpaka::memcpy(queue, nInnerSegments_src_view, dev_view_nSegments); alpaka::wait(queue); - auto superbins_buf = allocBufWrapper(devHost, N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); - auto pixelTypes_buf = allocBufWrapper(devHost, N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); + auto superbins_buf = allocBufWrapper(devHost, ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); + auto pixelTypes_buf = allocBufWrapper(devHost, ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); alpaka::memcpy(queue, superbins_buf, segmentsBuffers->superbin_buf); alpaka::memcpy(queue, pixelTypes_buf, segmentsBuffers->pixelType_buf); @@ -1048,15 +1050,15 @@ void SDL::Event::createPixelQuintuplets() { alpaka::wait(queue); int pixelIndexOffsetPos = - pixelMapping_->connectedPixelsIndex[size_superbins - 1] + pixelMapping_->connectedPixelsSizes[size_superbins - 1]; - int pixelIndexOffsetNeg = pixelMapping_->connectedPixelsIndexPos[size_superbins - 1] + - pixelMapping_->connectedPixelsSizesPos[size_superbins - 1] + pixelIndexOffsetPos; + pixelMapping_->connectedPixelsIndex[::SDL::size_superbins - 1] + pixelMapping_->connectedPixelsSizes[::SDL::size_superbins - 1]; + int pixelIndexOffsetNeg = pixelMapping_->connectedPixelsIndexPos[::SDL::size_superbins - 1] + + pixelMapping_->connectedPixelsSizesPos[::SDL::size_superbins - 1] + pixelIndexOffsetPos; // Loop over # pLS for (unsigned int i = 0; i < nInnerSegments; i++) { int8_t pixelType = pixelTypes[i]; // Get pixel type for this pLS int superbin = superbins[i]; // Get superbin for this pixel - if ((superbin < 0) or (superbin >= (int)size_superbins) or (pixelType > 2) or (pixelType < 0)) { + if ((superbin < 0) or (superbin >= (int)::SDL::size_superbins) or (pixelType > 2) or (pixelType < 0)) { connectedPixelIndex_host[i] = 0; connectedPixelSize_host[i] = 0; continue; @@ -1084,14 +1086,14 @@ void SDL::Event::createPixelQuintuplets() { alpaka::memcpy(queue, connectedPixelIndex_dev_buf, connectedPixelIndex_host_buf, nInnerSegments); alpaka::wait(queue); - Vec const threadsPerBlockCreatePixQuints = createVec(1, 16, 16); - Vec const blocksPerGridCreatePixQuints = createVec(16, MAX_BLOCKS, 1); - WorkDiv const createPixelQuintupletsInGPUFromMapv2_workDiv = + Vec3D const threadsPerBlockCreatePixQuints = createVec(1, 16, 16); + Vec3D const blocksPerGridCreatePixQuints = createVec(16, ::SDL::MAX_BLOCKS, 1); + WorkDiv3D const createPixelQuintupletsInGPUFromMapv2_workDiv = createWorkDiv(blocksPerGridCreatePixQuints, threadsPerBlockCreatePixQuints, elementsPerThread); SDL::createPixelQuintupletsInGPUFromMapv2 createPixelQuintupletsInGPUFromMapv2_kernel; auto const createPixelQuintupletsInGPUFromMapv2Task( - alpaka::createTaskKernel(createPixelQuintupletsInGPUFromMapv2_workDiv, + alpaka::createTaskKernel(createPixelQuintupletsInGPUFromMapv2_workDiv, createPixelQuintupletsInGPUFromMapv2_kernel, *modulesBuffers_->data(), *mdsInGPU, @@ -1106,26 +1108,26 @@ void SDL::Event::createPixelQuintuplets() { alpaka::enqueue(queue, createPixelQuintupletsInGPUFromMapv2Task); - Vec const threadsPerBlockDupPix = createVec(1, 16, 16); - Vec const blocksPerGridDupPix = createVec(1, MAX_BLOCKS, 1); - WorkDiv const removeDupPixelQuintupletsInGPUFromMap_workDiv = + Vec3D const threadsPerBlockDupPix = createVec(1, 16, 16); + Vec3D const blocksPerGridDupPix = createVec(1, ::SDL::MAX_BLOCKS, 1); + WorkDiv3D const removeDupPixelQuintupletsInGPUFromMap_workDiv = createWorkDiv(blocksPerGridDupPix, threadsPerBlockDupPix, elementsPerThread); SDL::removeDupPixelQuintupletsInGPUFromMap removeDupPixelQuintupletsInGPUFromMap_kernel; auto const removeDupPixelQuintupletsInGPUFromMapTask( - alpaka::createTaskKernel(removeDupPixelQuintupletsInGPUFromMap_workDiv, + alpaka::createTaskKernel(removeDupPixelQuintupletsInGPUFromMap_workDiv, removeDupPixelQuintupletsInGPUFromMap_kernel, *pixelQuintupletsInGPU)); alpaka::enqueue(queue, removeDupPixelQuintupletsInGPUFromMapTask); - Vec const threadsPerBlockAddpT5asTrackCan = createVec(1, 1, 256); - Vec const blocksPerGridAddpT5asTrackCan = createVec(1, 1, 1); - WorkDiv const addpT5asTrackCandidateInGPU_workDiv = + Vec3D const threadsPerBlockAddpT5asTrackCan = createVec(1, 1, 256); + Vec3D const blocksPerGridAddpT5asTrackCan = createVec(1, 1, 1); + WorkDiv3D const addpT5asTrackCandidateInGPU_workDiv = createWorkDiv(blocksPerGridAddpT5asTrackCan, threadsPerBlockAddpT5asTrackCan, elementsPerThread); SDL::addpT5asTrackCandidateInGPU addpT5asTrackCandidateInGPU_kernel; - auto const addpT5asTrackCandidateInGPUTask(alpaka::createTaskKernel(addpT5asTrackCandidateInGPU_workDiv, + auto const addpT5asTrackCandidateInGPUTask(alpaka::createTaskKernel(addpT5asTrackCandidateInGPU_workDiv, addpT5asTrackCandidateInGPU_kernel, nLowerModules_, *pixelQuintupletsInGPU, @@ -1146,7 +1148,7 @@ void SDL::Event::createPixelQuintuplets() { #endif } -void SDL::Event::addMiniDoubletsToEventExplicit() { +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addMiniDoubletsToEventExplicit() { auto nMDsCPU_buf = allocBufWrapper(devHost, nLowerModules_, queue); alpaka::memcpy(queue, nMDsCPU_buf, miniDoubletsBuffers->nMDs_buf, nLowerModules_); @@ -1177,7 +1179,7 @@ void SDL::Event::addMiniDoubletsToEventExplicit() { } } -void SDL::Event::addSegmentsToEventExplicit() { +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addSegmentsToEventExplicit() { auto nSegmentsCPU_buf = allocBufWrapper(devHost, nLowerModules_, queue); alpaka::memcpy(queue, nSegmentsCPU_buf, segmentsBuffers->nSegments_buf, nLowerModules_); @@ -1204,7 +1206,7 @@ void SDL::Event::addSegmentsToEventExplicit() { } } -void SDL::Event::addQuintupletsToEventExplicit() { +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addQuintupletsToEventExplicit() { auto nQuintupletsCPU_buf = allocBufWrapper(devHost, nLowerModules_, queue); alpaka::memcpy(queue, nQuintupletsCPU_buf, quintupletsBuffers->nQuintuplets_buf); @@ -1235,7 +1237,7 @@ void SDL::Event::addQuintupletsToEventExplicit() { } } -void SDL::Event::addTripletsToEventExplicit() { +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addTripletsToEventExplicit() { auto nTripletsCPU_buf = allocBufWrapper(devHost, nLowerModules_, queue); alpaka::memcpy(queue, nTripletsCPU_buf, tripletsBuffers->nTriplets_buf); @@ -1261,7 +1263,7 @@ void SDL::Event::addTripletsToEventExplicit() { } } -unsigned int SDL::Event::getNumberOfHits() { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfHits() { unsigned int hits = 0; for (auto& it : n_hits_by_layer_barrel_) { hits += it; @@ -1273,22 +1275,22 @@ unsigned int SDL::Event::getNumberOfHits() { return hits; } -unsigned int SDL::Event::getNumberOfHitsByLayer(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfHitsByLayer(unsigned int layer) { if (layer == 6) return n_hits_by_layer_barrel_[layer]; else return n_hits_by_layer_barrel_[layer] + n_hits_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfHitsByLayerBarrel(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfHitsByLayerBarrel(unsigned int layer) { return n_hits_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfHitsByLayerEndcap(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfHitsByLayerEndcap(unsigned int layer) { return n_hits_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfMiniDoublets() { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfMiniDoublets() { unsigned int miniDoublets = 0; for (auto& it : n_minidoublets_by_layer_barrel_) { miniDoublets += it; @@ -1300,22 +1302,22 @@ unsigned int SDL::Event::getNumberOfMiniDoublets() { return miniDoublets; } -unsigned int SDL::Event::getNumberOfMiniDoubletsByLayer(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfMiniDoubletsByLayer(unsigned int layer) { if (layer == 6) return n_minidoublets_by_layer_barrel_[layer]; else return n_minidoublets_by_layer_barrel_[layer] + n_minidoublets_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfMiniDoubletsByLayerBarrel(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfMiniDoubletsByLayerBarrel(unsigned int layer) { return n_minidoublets_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfMiniDoubletsByLayerEndcap(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfMiniDoubletsByLayerEndcap(unsigned int layer) { return n_minidoublets_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfSegments() { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfSegments() { unsigned int segments = 0; for (auto& it : n_segments_by_layer_barrel_) { segments += it; @@ -1327,22 +1329,22 @@ unsigned int SDL::Event::getNumberOfSegments() { return segments; } -unsigned int SDL::Event::getNumberOfSegmentsByLayer(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfSegmentsByLayer(unsigned int layer) { if (layer == 6) return n_segments_by_layer_barrel_[layer]; else return n_segments_by_layer_barrel_[layer] + n_segments_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfSegmentsByLayerBarrel(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfSegmentsByLayerBarrel(unsigned int layer) { return n_segments_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfSegmentsByLayerEndcap(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfSegmentsByLayerEndcap(unsigned int layer) { return n_segments_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfTriplets() { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfTriplets() { unsigned int triplets = 0; for (auto& it : n_triplets_by_layer_barrel_) { triplets += it; @@ -1354,22 +1356,22 @@ unsigned int SDL::Event::getNumberOfTriplets() { return triplets; } -unsigned int SDL::Event::getNumberOfTripletsByLayer(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfTripletsByLayer(unsigned int layer) { if (layer == 6) return n_triplets_by_layer_barrel_[layer]; else return n_triplets_by_layer_barrel_[layer] + n_triplets_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfTripletsByLayerBarrel(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfTripletsByLayerBarrel(unsigned int layer) { return n_triplets_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfTripletsByLayerEndcap(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfTripletsByLayerEndcap(unsigned int layer) { return n_triplets_by_layer_endcap_[layer]; } -int SDL::Event::getNumberOfPixelTriplets() { +int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPixelTriplets() { auto nPixelTriplets_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nPixelTriplets_buf, pixelTripletsBuffers->nPixelTriplets_buf); @@ -1380,7 +1382,7 @@ int SDL::Event::getNumberOfPixelTriplets() { return nPixelTriplets; } -int SDL::Event::getNumberOfPixelQuintuplets() { +int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPixelQuintuplets() { auto nPixelQuintuplets_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nPixelQuintuplets_buf, pixelQuintupletsBuffers->nPixelQuintuplets_buf); @@ -1391,7 +1393,7 @@ int SDL::Event::getNumberOfPixelQuintuplets() { return nPixelQuintuplets; } -unsigned int SDL::Event::getNumberOfQuintuplets() { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfQuintuplets() { unsigned int quintuplets = 0; for (auto& it : n_quintuplets_by_layer_barrel_) { quintuplets += it; @@ -1403,22 +1405,22 @@ unsigned int SDL::Event::getNumberOfQuintuplets() { return quintuplets; } -unsigned int SDL::Event::getNumberOfQuintupletsByLayer(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfQuintupletsByLayer(unsigned int layer) { if (layer == 6) return n_quintuplets_by_layer_barrel_[layer]; else return n_quintuplets_by_layer_barrel_[layer] + n_quintuplets_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfQuintupletsByLayerBarrel(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfQuintupletsByLayerBarrel(unsigned int layer) { return n_quintuplets_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfQuintupletsByLayerEndcap(unsigned int layer) { +unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfQuintupletsByLayerEndcap(unsigned int layer) { return n_quintuplets_by_layer_endcap_[layer]; } -int SDL::Event::getNumberOfTrackCandidates() { +int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfTrackCandidates() { auto nTrackCandidates_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidates_buf, trackCandidatesBuffers->nTrackCandidates_buf); @@ -1429,7 +1431,7 @@ int SDL::Event::getNumberOfTrackCandidates() { return nTrackCandidates; } -int SDL::Event::getNumberOfPT5TrackCandidates() { +int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPT5TrackCandidates() { auto nTrackCandidatesPT5_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidatesPT5_buf, trackCandidatesBuffers->nTrackCandidatespT5_buf); @@ -1440,7 +1442,7 @@ int SDL::Event::getNumberOfPT5TrackCandidates() { return nTrackCandidatesPT5; } -int SDL::Event::getNumberOfPT3TrackCandidates() { +int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPT3TrackCandidates() { auto nTrackCandidatesPT3_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidatesPT3_buf, trackCandidatesBuffers->nTrackCandidatespT3_buf); @@ -1451,7 +1453,7 @@ int SDL::Event::getNumberOfPT3TrackCandidates() { return nTrackCandidatesPT3; } -int SDL::Event::getNumberOfPLSTrackCandidates() { +int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPLSTrackCandidates() { auto nTrackCandidatesPLS_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidatesPLS_buf, trackCandidatesBuffers->nTrackCandidatespLS_buf); @@ -1462,7 +1464,7 @@ int SDL::Event::getNumberOfPLSTrackCandidates() { return nTrackCandidatesPLS; } -int SDL::Event::getNumberOfPixelTrackCandidates() { +int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPixelTrackCandidates() { auto nTrackCandidates_buf = allocBufWrapper(devHost, 1, queue); auto nTrackCandidatesT5_buf = allocBufWrapper(devHost, 1, queue); @@ -1476,7 +1478,7 @@ int SDL::Event::getNumberOfPixelTrackCandidates() { return nTrackCandidates - nTrackCandidatesT5; } -int SDL::Event::getNumberOfT5TrackCandidates() { +int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfT5TrackCandidates() { auto nTrackCandidatesT5_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidatesT5_buf, trackCandidatesBuffers->nTrackCandidatesT5_buf); @@ -1487,7 +1489,7 @@ int SDL::Event::getNumberOfT5TrackCandidates() { return nTrackCandidatesT5; } -SDL::hitsBuffer* SDL::Event::getHits() //std::shared_ptr should take care of garbage collection +ALPAKA_ACCELERATOR_NAMESPACE::SDL::hitsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getHits() //std::shared_ptr should take care of garbage collection { if (hitsInCPU == nullptr) { auto nHits_buf = allocBufWrapper(devHost, 1, queue); @@ -1495,7 +1497,7 @@ SDL::hitsBuffer* SDL::Event::getHits() //std::shared_ alpaka::wait(queue); unsigned int nHits = *alpaka::getPtrNative(nHits_buf); - hitsInCPU = new SDL::hitsBuffer(nModules_, nHits, devHost, queue); + hitsInCPU = new SDL::hitsBuffer(nModules_, nHits, devHost, queue); hitsInCPU->setData(*hitsInCPU); *alpaka::getPtrNative(hitsInCPU->nHits_buf) = nHits; @@ -1510,14 +1512,14 @@ SDL::hitsBuffer* SDL::Event::getHits() //std::shared_ return hitsInCPU; } -SDL::hitsBuffer* SDL::Event::getHitsInCMSSW() { +ALPAKA_ACCELERATOR_NAMESPACE::SDL::hitsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getHitsInCMSSW() { if (hitsInCPU == nullptr) { auto nHits_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nHits_buf, hitsBuffers->nHits_buf); alpaka::wait(queue); unsigned int nHits = *alpaka::getPtrNative(nHits_buf); - hitsInCPU = new SDL::hitsBuffer(nModules_, nHits, devHost, queue); + hitsInCPU = new SDL::hitsBuffer(nModules_, nHits, devHost, queue); hitsInCPU->setData(*hitsInCPU); *alpaka::getPtrNative(hitsInCPU->nHits_buf) = nHits; @@ -1527,9 +1529,9 @@ SDL::hitsBuffer* SDL::Event::getHitsInCMSSW() { return hitsInCPU; } -SDL::objectRangesBuffer* SDL::Event::getRanges() { +ALPAKA_ACCELERATOR_NAMESPACE::SDL::objectRangesBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getRanges() { if (rangesInCPU == nullptr) { - rangesInCPU = new SDL::objectRangesBuffer(nModules_, nLowerModules_, devHost, queue); + rangesInCPU = new SDL::objectRangesBuffer(nModules_, nLowerModules_, devHost, queue); rangesInCPU->setData(*rangesInCPU); alpaka::memcpy(queue, rangesInCPU->hitRanges_buf, rangesBuffers->hitRanges_buf); @@ -1542,7 +1544,7 @@ SDL::objectRangesBuffer* SDL::Event::getRanges() { return rangesInCPU; } -SDL::miniDoubletsBuffer* SDL::Event::getMiniDoublets() { +ALPAKA_ACCELERATOR_NAMESPACE::SDL::miniDoubletsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getMiniDoublets() { if (mdsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based mdsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1550,7 +1552,7 @@ SDL::miniDoubletsBuffer* SDL::Event::getMiniDoublets() alpaka::wait(queue); unsigned int nMemHost = *alpaka::getPtrNative(nMemHost_buf); - mdsInCPU = new SDL::miniDoubletsBuffer(nMemHost, nLowerModules_, devHost, queue); + mdsInCPU = new SDL::miniDoubletsBuffer(nMemHost, nLowerModules_, devHost, queue); mdsInCPU->setData(*mdsInCPU); *alpaka::getPtrNative(mdsInCPU->nMemoryLocations_buf) = nMemHost; @@ -1564,7 +1566,7 @@ SDL::miniDoubletsBuffer* SDL::Event::getMiniDoublets() return mdsInCPU; } -SDL::segmentsBuffer* SDL::Event::getSegments() { +ALPAKA_ACCELERATOR_NAMESPACE::SDL::segmentsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getSegments() { if (segmentsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based segmentsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1572,8 +1574,8 @@ SDL::segmentsBuffer* SDL::Event::getSegments() { alpaka::wait(queue); unsigned int nMemHost = *alpaka::getPtrNative(nMemHost_buf); - segmentsInCPU = new SDL::segmentsBuffer( - nMemHost, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devHost, queue); + segmentsInCPU = new SDL::segmentsBuffer( + nMemHost, nLowerModules_, ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE, devHost, queue); segmentsInCPU->setData(*segmentsInCPU); *alpaka::getPtrNative(segmentsInCPU->nMemoryLocations_buf) = nMemHost; @@ -1600,7 +1602,7 @@ SDL::segmentsBuffer* SDL::Event::getSegments() { return segmentsInCPU; } -SDL::tripletsBuffer* SDL::Event::getTriplets() { +ALPAKA_ACCELERATOR_NAMESPACE::SDL::tripletsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getTriplets() { if (tripletsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based tripletsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1608,7 +1610,7 @@ SDL::tripletsBuffer* SDL::Event::getTriplets() { alpaka::wait(queue); unsigned int nMemHost = *alpaka::getPtrNative(nMemHost_buf); - tripletsInCPU = new SDL::tripletsBuffer(nMemHost, nLowerModules_, devHost, queue); + tripletsInCPU = new SDL::tripletsBuffer(nMemHost, nLowerModules_, devHost, queue); tripletsInCPU->setData(*tripletsInCPU); *alpaka::getPtrNative(tripletsInCPU->nMemoryLocations_buf) = nMemHost; @@ -1623,9 +1625,9 @@ SDL::tripletsBuffer* SDL::Event::getTriplets() { alpaka::memcpy(queue, tripletsInCPU->rtLo_buf, tripletsBuffers->rtLo_buf, nMemHost); alpaka::memcpy(queue, tripletsInCPU->rtHi_buf, tripletsBuffers->rtHi_buf, nMemHost); #endif - alpaka::memcpy(queue, tripletsInCPU->hitIndices_buf, tripletsBuffers->hitIndices_buf, Params_T3::kHits * nMemHost); + alpaka::memcpy(queue, tripletsInCPU->hitIndices_buf, tripletsBuffers->hitIndices_buf, ::SDL::Params_T3::kHits * nMemHost); alpaka::memcpy( - queue, tripletsInCPU->logicalLayers_buf, tripletsBuffers->logicalLayers_buf, Params_T3::kLayers * nMemHost); + queue, tripletsInCPU->logicalLayers_buf, tripletsBuffers->logicalLayers_buf, ::SDL::Params_T3::kLayers * nMemHost); alpaka::memcpy(queue, tripletsInCPU->segmentIndices_buf, tripletsBuffers->segmentIndices_buf, 2 * nMemHost); alpaka::memcpy(queue, tripletsInCPU->betaIn_buf, tripletsBuffers->betaIn_buf, nMemHost); alpaka::memcpy(queue, tripletsInCPU->circleRadius_buf, tripletsBuffers->circleRadius_buf, nMemHost); @@ -1636,7 +1638,7 @@ SDL::tripletsBuffer* SDL::Event::getTriplets() { return tripletsInCPU; } -SDL::quintupletsBuffer* SDL::Event::getQuintuplets() { +ALPAKA_ACCELERATOR_NAMESPACE::SDL::quintupletsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getQuintuplets() { if (quintupletsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based quintupletsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1644,7 +1646,7 @@ SDL::quintupletsBuffer* SDL::Event::getQuintuplets() { alpaka::wait(queue); unsigned int nMemHost = *alpaka::getPtrNative(nMemHost_buf); - quintupletsInCPU = new SDL::quintupletsBuffer(nMemHost, nLowerModules_, devHost, queue); + quintupletsInCPU = new SDL::quintupletsBuffer(nMemHost, nLowerModules_, devHost, queue); quintupletsInCPU->setData(*quintupletsInCPU); *alpaka::getPtrNative(quintupletsInCPU->nMemoryLocations_buf) = nMemHost; @@ -1655,7 +1657,7 @@ SDL::quintupletsBuffer* SDL::Event::getQuintuplets() { alpaka::memcpy(queue, quintupletsInCPU->lowerModuleIndices_buf, quintupletsBuffers->lowerModuleIndices_buf, - Params_T5::kLayers * nMemHost); + ::SDL::Params_T5::kLayers * nMemHost); alpaka::memcpy(queue, quintupletsInCPU->innerRadius_buf, quintupletsBuffers->innerRadius_buf, nMemHost); alpaka::memcpy(queue, quintupletsInCPU->bridgeRadius_buf, quintupletsBuffers->bridgeRadius_buf, nMemHost); alpaka::memcpy(queue, quintupletsInCPU->outerRadius_buf, quintupletsBuffers->outerRadius_buf, nMemHost); @@ -1672,7 +1674,7 @@ SDL::quintupletsBuffer* SDL::Event::getQuintuplets() { return quintupletsInCPU; } -SDL::pixelTripletsBuffer* SDL::Event::getPixelTriplets() { +ALPAKA_ACCELERATOR_NAMESPACE::SDL::pixelTripletsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getPixelTriplets() { if (pixelTripletsInCPU == nullptr) { // Get nPixelTriplets parameter to initialize host based quintupletsInCPU auto nPixelTriplets_buf = allocBufWrapper(devHost, 1, queue); @@ -1680,7 +1682,7 @@ SDL::pixelTripletsBuffer* SDL::Event::getPixelTriplets alpaka::wait(queue); unsigned int nPixelTriplets = *alpaka::getPtrNative(nPixelTriplets_buf); - pixelTripletsInCPU = new SDL::pixelTripletsBuffer(nPixelTriplets, devHost, queue); + pixelTripletsInCPU = new SDL::pixelTripletsBuffer(nPixelTriplets, devHost, queue); pixelTripletsInCPU->setData(*pixelTripletsInCPU); *alpaka::getPtrNative(pixelTripletsInCPU->nPixelTriplets_buf) = nPixelTriplets; @@ -1711,7 +1713,7 @@ SDL::pixelTripletsBuffer* SDL::Event::getPixelTriplets return pixelTripletsInCPU; } -SDL::pixelQuintupletsBuffer* SDL::Event::getPixelQuintuplets() { +ALPAKA_ACCELERATOR_NAMESPACE::SDL::pixelQuintupletsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getPixelQuintuplets() { if (pixelQuintupletsInCPU == nullptr) { // Get nPixelQuintuplets parameter to initialize host based quintupletsInCPU auto nPixelQuintuplets_buf = allocBufWrapper(devHost, 1, queue); @@ -1719,7 +1721,7 @@ SDL::pixelQuintupletsBuffer* SDL::Event::getPixelQuint alpaka::wait(queue); unsigned int nPixelQuintuplets = *alpaka::getPtrNative(nPixelQuintuplets_buf); - pixelQuintupletsInCPU = new SDL::pixelQuintupletsBuffer(nPixelQuintuplets, devHost, queue); + pixelQuintupletsInCPU = new SDL::pixelQuintupletsBuffer(nPixelQuintuplets, devHost, queue); pixelQuintupletsInCPU->setData(*pixelQuintupletsInCPU); *alpaka::getPtrNative(pixelQuintupletsInCPU->nPixelQuintuplets_buf) = nPixelQuintuplets; @@ -1747,7 +1749,7 @@ SDL::pixelQuintupletsBuffer* SDL::Event::getPixelQuint return pixelQuintupletsInCPU; } -SDL::trackCandidatesBuffer* SDL::Event::getTrackCandidates() { +ALPAKA_ACCELERATOR_NAMESPACE::SDL::trackCandidatesBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getTrackCandidates() { if (trackCandidatesInCPU == nullptr) { // Get nTrackCanHost parameter to initialize host based trackCandidatesInCPU auto nTrackCanHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1755,21 +1757,21 @@ SDL::trackCandidatesBuffer* SDL::Event::getTrackCandid alpaka::wait(queue); unsigned int nTrackCanHost = *alpaka::getPtrNative(nTrackCanHost_buf); - trackCandidatesInCPU = new SDL::trackCandidatesBuffer( - N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devHost, queue); + trackCandidatesInCPU = new SDL::trackCandidatesBuffer( + ::SDL::N_MAX_NONPIXEL_TRACK_CANDIDATES + ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES, devHost, queue); trackCandidatesInCPU->setData(*trackCandidatesInCPU); *alpaka::getPtrNative(trackCandidatesInCPU->nTrackCandidates_buf) = nTrackCanHost; alpaka::memcpy(queue, trackCandidatesInCPU->hitIndices_buf, trackCandidatesBuffers->hitIndices_buf, - Params_pT5::kHits * nTrackCanHost); + ::SDL::Params_pT5::kHits * nTrackCanHost); alpaka::memcpy( queue, trackCandidatesInCPU->pixelSeedIndex_buf, trackCandidatesBuffers->pixelSeedIndex_buf, nTrackCanHost); alpaka::memcpy(queue, trackCandidatesInCPU->logicalLayers_buf, trackCandidatesBuffers->logicalLayers_buf, - Params_pT5::kLayers * nTrackCanHost); + ::SDL::Params_pT5::kLayers * nTrackCanHost); alpaka::memcpy(queue, trackCandidatesInCPU->directObjectIndices_buf, trackCandidatesBuffers->directObjectIndices_buf, @@ -1785,7 +1787,7 @@ SDL::trackCandidatesBuffer* SDL::Event::getTrackCandid return trackCandidatesInCPU; } -SDL::trackCandidatesBuffer* SDL::Event::getTrackCandidatesInCMSSW() { +ALPAKA_ACCELERATOR_NAMESPACE::SDL::trackCandidatesBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getTrackCandidatesInCMSSW() { if (trackCandidatesInCPU == nullptr) { // Get nTrackCanHost parameter to initialize host based trackCandidatesInCPU auto nTrackCanHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1793,15 +1795,15 @@ SDL::trackCandidatesBuffer* SDL::Event::getTrackCandid alpaka::wait(queue); unsigned int nTrackCanHost = *alpaka::getPtrNative(nTrackCanHost_buf); - trackCandidatesInCPU = new SDL::trackCandidatesBuffer( - N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devHost, queue); + trackCandidatesInCPU = new SDL::trackCandidatesBuffer( + ::SDL::N_MAX_NONPIXEL_TRACK_CANDIDATES + ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES, devHost, queue); trackCandidatesInCPU->setData(*trackCandidatesInCPU); *alpaka::getPtrNative(trackCandidatesInCPU->nTrackCandidates_buf) = nTrackCanHost; alpaka::memcpy(queue, trackCandidatesInCPU->hitIndices_buf, trackCandidatesBuffers->hitIndices_buf, - Params_pT5::kHits * nTrackCanHost); + ::SDL::Params_pT5::kHits * nTrackCanHost); alpaka::memcpy( queue, trackCandidatesInCPU->pixelSeedIndex_buf, trackCandidatesBuffers->pixelSeedIndex_buf, nTrackCanHost); alpaka::memcpy(queue, @@ -1813,10 +1815,10 @@ SDL::trackCandidatesBuffer* SDL::Event::getTrackCandid return trackCandidatesInCPU; } -SDL::modulesBuffer* SDL::Event::getModules(bool isFull) { +ALPAKA_ACCELERATOR_NAMESPACE::SDL::modulesBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getModules(bool isFull) { if (modulesInCPU == nullptr) { // The last input here is just a small placeholder for the allocation. - modulesInCPU = new SDL::modulesBuffer(devHost, nModules_, nPixels_); + modulesInCPU = new SDL::modulesBuffer(devHost, nModules_, nPixels_); modulesInCPU->copyFromSrc(queue, *modulesBuffers_, isFull); } diff --git a/RecoTracker/LSTCore/src/alpaka/Event.h b/RecoTracker/LSTCore/src/alpaka/Event.h index 53cb824fb729a..bd4d03e28c6d2 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.h +++ b/RecoTracker/LSTCore/src/alpaka/Event.h @@ -17,15 +17,15 @@ #include "HeterogeneousCore/AlpakaInterface/interface/host.h" -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { template class Event {}; template <> - class Event { + class Event { private: - QueueAcc queue; - Dev devAcc; + Queue queue; + Device devAcc; DevHost devHost; bool addObjects; @@ -45,35 +45,35 @@ namespace SDL { //Device stuff unsigned int nTotalSegments; struct objectRanges* rangesInGPU; - struct objectRangesBuffer* rangesBuffers; + struct objectRangesBuffer* rangesBuffers; struct hits* hitsInGPU; - struct hitsBuffer* hitsBuffers; + struct hitsBuffer* hitsBuffers; struct miniDoublets* mdsInGPU; - struct miniDoubletsBuffer* miniDoubletsBuffers; + struct miniDoubletsBuffer* miniDoubletsBuffers; struct segments* segmentsInGPU; - struct segmentsBuffer* segmentsBuffers; + struct segmentsBuffer* segmentsBuffers; struct triplets* tripletsInGPU; - struct tripletsBuffer* tripletsBuffers; + struct tripletsBuffer* tripletsBuffers; struct quintuplets* quintupletsInGPU; - struct quintupletsBuffer* quintupletsBuffers; + struct quintupletsBuffer* quintupletsBuffers; struct trackCandidates* trackCandidatesInGPU; - struct trackCandidatesBuffer* trackCandidatesBuffers; + struct trackCandidatesBuffer* trackCandidatesBuffers; struct pixelTriplets* pixelTripletsInGPU; - struct pixelTripletsBuffer* pixelTripletsBuffers; + struct pixelTripletsBuffer* pixelTripletsBuffers; struct pixelQuintuplets* pixelQuintupletsInGPU; - struct pixelQuintupletsBuffer* pixelQuintupletsBuffers; + struct pixelQuintupletsBuffer* pixelQuintupletsBuffers; //CPU interface stuff - objectRangesBuffer* rangesInCPU; - hitsBuffer* hitsInCPU; - miniDoubletsBuffer* mdsInCPU; - segmentsBuffer* segmentsInCPU; - tripletsBuffer* tripletsInCPU; - trackCandidatesBuffer* trackCandidatesInCPU; - modulesBuffer* modulesInCPU; - quintupletsBuffer* quintupletsInCPU; - pixelTripletsBuffer* pixelTripletsInCPU; - pixelQuintupletsBuffer* pixelQuintupletsInCPU; + objectRangesBuffer* rangesInCPU; + hitsBuffer* hitsInCPU; + miniDoubletsBuffer* mdsInCPU; + segmentsBuffer* segmentsInCPU; + tripletsBuffer* tripletsInCPU; + trackCandidatesBuffer* trackCandidatesInCPU; + modulesBuffer* modulesInCPU; + quintupletsBuffer* quintupletsInCPU; + pixelTripletsBuffer* pixelTripletsInCPU; + pixelQuintupletsBuffer* pixelQuintupletsInCPU; void init(bool verbose); @@ -85,14 +85,14 @@ namespace SDL { const uint16_t nLowerModules_; const unsigned int nPixels_; const unsigned int nEndCapMap_; - const std::shared_ptr> modulesBuffers_; - const std::shared_ptr pixelMapping_; - const std::shared_ptr> endcapGeometryBuffers_; + const std::shared_ptr> modulesBuffers_; + const std::shared_ptr pixelMapping_; + const std::shared_ptr> endcapGeometryBuffers_; public: // Constructor used for CMSSW integration. Uses an external queue. template - Event(bool verbose, TQueue const& q, const LSTESData* deviceESData) + Event(bool verbose, TQueue const& q, const LSTESData* deviceESData) : queue(q), devAcc(alpaka::getDev(q)), devHost(cms::alpakatools::host()), @@ -186,18 +186,18 @@ namespace SDL { int getNumberOfPixelTriplets(); int getNumberOfPixelQuintuplets(); - objectRangesBuffer* getRanges(); - hitsBuffer* getHits(); - hitsBuffer* getHitsInCMSSW(); - miniDoubletsBuffer* getMiniDoublets(); - segmentsBuffer* getSegments(); - tripletsBuffer* getTriplets(); - quintupletsBuffer* getQuintuplets(); - trackCandidatesBuffer* getTrackCandidates(); - trackCandidatesBuffer* getTrackCandidatesInCMSSW(); - pixelTripletsBuffer* getPixelTriplets(); - pixelQuintupletsBuffer* getPixelQuintuplets(); - modulesBuffer* getModules(bool isFull = false); + objectRangesBuffer* getRanges(); + hitsBuffer* getHits(); + hitsBuffer* getHitsInCMSSW(); + miniDoubletsBuffer* getMiniDoublets(); + segmentsBuffer* getSegments(); + tripletsBuffer* getTriplets(); + quintupletsBuffer* getQuintuplets(); + trackCandidatesBuffer* getTrackCandidates(); + trackCandidatesBuffer* getTrackCandidatesInCMSSW(); + pixelTripletsBuffer* getPixelTriplets(); + pixelQuintupletsBuffer* getPixelQuintuplets(); + modulesBuffer* getModules(bool isFull = false); }; } // namespace SDL diff --git a/RecoTracker/LSTCore/src/alpaka/Hit.h b/RecoTracker/LSTCore/src/alpaka/Hit.h index beecee9763033..a18c4788f2d15 100644 --- a/RecoTracker/LSTCore/src/alpaka/Hit.h +++ b/RecoTracker/LSTCore/src/alpaka/Hit.h @@ -4,7 +4,7 @@ #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/alpaka/Module.h" -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { struct hits { unsigned int* nHits; float* xs; diff --git a/RecoTracker/LSTCore/src/alpaka/Kernels.h b/RecoTracker/LSTCore/src/alpaka/Kernels.h index c053f9e52c1e6..6acc3ddb70bad 100644 --- a/RecoTracker/LSTCore/src/alpaka/Kernels.h +++ b/RecoTracker/LSTCore/src/alpaka/Kernels.h @@ -11,7 +11,7 @@ #include "Quintuplet.h" #include "PixelTriplet.h" -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmQuintupletFromMemory(struct SDL::quintuplets& quintupletsInGPU, unsigned int quintupletIndex, bool secondpass = false) { @@ -37,18 +37,18 @@ namespace SDL { ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitsT5(unsigned int ix, unsigned int jx, struct SDL::quintuplets& quintupletsInGPU) { - unsigned int hits1[Params_T5::kHits]; - unsigned int hits2[Params_T5::kHits]; + unsigned int hits1[::SDL::Params_T5::kHits]; + unsigned int hits2[::SDL::Params_T5::kHits]; - for (int i = 0; i < Params_T5::kHits; i++) { - hits1[i] = quintupletsInGPU.hitIndices[Params_T5::kHits * ix + i]; - hits2[i] = quintupletsInGPU.hitIndices[Params_T5::kHits * jx + i]; + for (int i = 0; i < ::SDL::Params_T5::kHits; i++) { + hits1[i] = quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * ix + i]; + hits2[i] = quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * jx + i]; } int nMatched = 0; - for (int i = 0; i < Params_T5::kHits; i++) { + for (int i = 0; i < ::SDL::Params_T5::kHits; i++) { bool matched = false; - for (int j = 0; j < Params_T5::kHits; j++) { + for (int j = 0; j < ::SDL::Params_T5::kHits; j++) { if (hits1[i] == hits2[j]) { matched = true; break; @@ -64,18 +64,18 @@ namespace SDL { ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitspT5(unsigned int ix, unsigned int jx, struct SDL::pixelQuintuplets& pixelQuintupletsInGPU) { - unsigned int hits1[Params_pT5::kHits]; - unsigned int hits2[Params_pT5::kHits]; + unsigned int hits1[::SDL::Params_pT5::kHits]; + unsigned int hits2[::SDL::Params_pT5::kHits]; - for (int i = 0; i < Params_pT5::kHits; i++) { - hits1[i] = pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * ix + i]; - hits2[i] = pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * jx + i]; + for (int i = 0; i < ::SDL::Params_pT5::kHits; i++) { + hits1[i] = pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * ix + i]; + hits2[i] = pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * jx + i]; } int nMatched = 0; - for (int i = 0; i < Params_pT5::kHits; i++) { + for (int i = 0; i < ::SDL::Params_pT5::kHits; i++) { bool matched = false; - for (int j = 0; j < Params_pT5::kHits; j++) { + for (int j = 0; j < ::SDL::Params_pT5::kHits; j++) { if (hits1[i] == hits2[j]) { matched = true; break; @@ -92,18 +92,18 @@ namespace SDL { unsigned int jx, struct SDL::pixelTriplets& pixelTripletsInGPU, int* matched) { - int phits1[Params_pLS::kHits]; - int phits2[Params_pLS::kHits]; + int phits1[::SDL::Params_pLS::kHits]; + int phits2[::SDL::Params_pLS::kHits]; - for (int i = 0; i < Params_pLS::kHits; i++) { - phits1[i] = pixelTripletsInGPU.hitIndices[Params_pT3::kHits * ix + i]; - phits2[i] = pixelTripletsInGPU.hitIndices[Params_pT3::kHits * jx + i]; + for (int i = 0; i < ::SDL::Params_pLS::kHits; i++) { + phits1[i] = pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * ix + i]; + phits2[i] = pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * jx + i]; } int npMatched = 0; - for (int i = 0; i < Params_pLS::kHits; i++) { + for (int i = 0; i < ::SDL::Params_pLS::kHits; i++) { bool pmatched = false; - for (int j = 0; j < Params_pLS::kHits; j++) { + for (int j = 0; j < ::SDL::Params_pLS::kHits; j++) { if (phits1[i] == phits2[j]) { pmatched = true; break; @@ -114,18 +114,18 @@ namespace SDL { } } - int hits1[Params_T3::kHits]; - int hits2[Params_T3::kHits]; + int hits1[::SDL::Params_T3::kHits]; + int hits2[::SDL::Params_T3::kHits]; - for (int i = 0; i < Params_pLS::kHits; i++) { - hits1[i] = pixelTripletsInGPU.hitIndices[Params_pT3::kHits * ix + i + 4]; // Omitting the pLS hits - hits2[i] = pixelTripletsInGPU.hitIndices[Params_pT3::kHits * jx + i + 4]; // Omitting the pLS hits + for (int i = 0; i < ::SDL::Params_pLS::kHits; i++) { + hits1[i] = pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * ix + i + 4]; // Omitting the pLS hits + hits2[i] = pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * jx + i + 4]; // Omitting the pLS hits } int nMatched = 0; - for (int i = 0; i < Params_T3::kHits; i++) { + for (int i = 0; i < ::SDL::Params_T3::kHits; i++) { bool tmatched = false; - for (int j = 0; j < Params_T3::kHits; j++) { + for (int j = 0; j < ::SDL::Params_T3::kHits; j++) { if (hits1[i] == hits2[j]) { tmatched = true; break; @@ -281,17 +281,17 @@ namespace SDL { const int minNHitsForDup_pT3 = 5; if ((nMatched[0] + nMatched[1]) >= minNHitsForDup_pT3) { // Check the layers - if (pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * jx + 2] < - pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * ix + 2]) { + if (pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * jx + 2] < + pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * ix + 2]) { rmPixelTripletFromMemory(pixelTripletsInGPU, ix); break; - } else if (pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * ix + 2] == - pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * jx + 2] && + } else if (pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * ix + 2] == + pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * jx + 2] && __H2F(pixelTripletsInGPU.score[ix]) > __H2F(pixelTripletsInGPU.score[jx])) { rmPixelTripletFromMemory(pixelTripletsInGPU, ix); break; - } else if (pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * ix + 2] == - pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * jx + 2] && + } else if (pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * ix + 2] == + pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * jx + 2] && (__H2F(pixelTripletsInGPU.score[ix]) == __H2F(pixelTripletsInGPU.score[jx])) && (ix < jx)) { rmPixelTripletFromMemory(pixelTripletsInGPU, ix); break; @@ -341,14 +341,14 @@ namespace SDL { int pixelModuleIndex = *modulesInGPU.nLowerModules; unsigned int nPixelSegments = segmentsInGPU.nSegments[pixelModuleIndex]; - if (nPixelSegments > N_MAX_PIXEL_SEGMENTS_PER_MODULE) - nPixelSegments = N_MAX_PIXEL_SEGMENTS_PER_MODULE; + if (nPixelSegments > ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE) + nPixelSegments = ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE; for (unsigned int ix = globalThreadIdx[1]; ix < nPixelSegments; ix += gridThreadExtent[1]) { if (secondpass && (!segmentsInGPU.isQuad[ix] || (segmentsInGPU.isDup[ix] & 1))) continue; - unsigned int phits1[Params_pLS::kHits]; + unsigned int phits1[::SDL::Params_pLS::kHits]; phits1[0] = segmentsInGPU.pLSHitsIdxs[ix].x; phits1[1] = segmentsInGPU.pLSHitsIdxs[ix].y; phits1[2] = segmentsInGPU.pLSHitsIdxs[ix].z; @@ -381,16 +381,16 @@ namespace SDL { else idxToRemove = ix; - unsigned int phits2[Params_pLS::kHits]; + unsigned int phits2[::SDL::Params_pLS::kHits]; phits2[0] = segmentsInGPU.pLSHitsIdxs[jx].x; phits2[1] = segmentsInGPU.pLSHitsIdxs[jx].y; phits2[2] = segmentsInGPU.pLSHitsIdxs[jx].z; phits2[3] = segmentsInGPU.pLSHitsIdxs[jx].w; int npMatched = 0; - for (int i = 0; i < Params_pLS::kHits; i++) { + for (int i = 0; i < ::SDL::Params_pLS::kHits; i++) { bool pmatched = false; - for (int j = 0; j < Params_pLS::kHits; j++) { + for (int j = 0; j < ::SDL::Params_pLS::kHits; j++) { if (phits1[i] == phits2[j]) { pmatched = true; break; diff --git a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc index f216352637051..d4ca300ed7302 100644 --- a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc @@ -2,12 +2,14 @@ #include "Event.h" +using namespace ALPAKA_ACCELERATOR_NAMESPACE; + #include "Math/Vector3D.h" using XYZVector = ROOT::Math::XYZVector; -void SDL::LST::run(SDL::QueueAcc& queue, +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::LST::run(Queue& queue, bool verbose, - const LSTESData* deviceESData, + const LSTESData* deviceESData, const std::vector see_px, const std::vector see_py, const std::vector see_pz, @@ -29,7 +31,7 @@ void SDL::LST::run(SDL::QueueAcc& queue, const std::vector ph2_z, bool no_pls_dupclean, bool tc_pls_triplets) { - auto event = SDL::Event(verbose, queue, deviceESData); + auto event = SDL::Event(verbose, queue, deviceESData); prepareInput(see_px, see_py, see_pz, @@ -170,7 +172,7 @@ namespace { } } // namespace -void SDL::LST::prepareInput(const std::vector see_px, +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::LST::prepareInput(const std::vector see_px, const std::vector see_py, const std::vector see_pz, const std::vector see_dxy, @@ -362,7 +364,7 @@ void SDL::LST::prepareInput(const std::vector see_px, in_isQuad_vec_ = isQuad_vec; } -void SDL::LST::getOutput(SDL::Event& event) { +void ALPAKA_ACCELERATOR_NAMESPACE::SDL::LST::getOutput(SDL::Event& event) { std::vector> tc_hitIdxs; std::vector tc_len; std::vector tc_seedIdx; @@ -389,7 +391,7 @@ void SDL::LST::getOutput(SDL::Event& event) { out_tc_trackCandidateType_ = tc_trackCandidateType; } -std::vector SDL::LST::getHitIdxs(const short trackCandidateType, +std::vector ALPAKA_ACCELERATOR_NAMESPACE::SDL::LST::getHitIdxs(const short trackCandidateType, const unsigned int TCIdx, const unsigned int* TCHitIndices, const unsigned int* hitIndices) { @@ -397,16 +399,16 @@ std::vector SDL::LST::getHitIdxs(const short trackCandid unsigned int maxNHits = 0; if (trackCandidateType == 7) - maxNHits = Params_pT5::kHits; // pT5 + maxNHits = ::SDL::Params_pT5::kHits; // pT5 else if (trackCandidateType == 5) - maxNHits = Params_pT3::kHits; // pT3 + maxNHits = ::SDL::Params_pT3::kHits; // pT3 else if (trackCandidateType == 4) - maxNHits = Params_T5::kHits; // T5 + maxNHits = ::SDL::Params_T5::kHits; // T5 else if (trackCandidateType == 8) - maxNHits = Params_pLS::kHits; // pLS + maxNHits = ::SDL::Params_pLS::kHits; // pLS for (unsigned int i = 0; i < maxNHits; i++) { - unsigned int hitIdxInGPU = TCHitIndices[Params_pT5::kHits * TCIdx + i]; + unsigned int hitIdxInGPU = TCHitIndices[::SDL::Params_pT5::kHits * TCIdx + i]; unsigned int hitIdx = (trackCandidateType == 8) ? hitIdxInGPU diff --git a/RecoTracker/LSTCore/src/alpaka/LSTESData.dev.cc b/RecoTracker/LSTCore/src/alpaka/LSTESData.dev.cc index a920f8e78a073..e22572ecf071d 100644 --- a/RecoTracker/LSTCore/src/alpaka/LSTESData.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LSTESData.dev.cc @@ -6,6 +6,8 @@ #include "ModuleMethods.h" +using namespace ALPAKA_ACCELERATOR_NAMESPACE; + namespace { std::string trackLooperDir() { const char* path_lst_base = std::getenv("LST_BASE"); @@ -39,10 +41,10 @@ namespace { return fullpath.string(); } - void loadMapsHost(SDL::MapPLStoLayer& pLStoLayer, - std::shared_ptr endcapGeometry, - std::shared_ptr tiltedGeometry, - std::shared_ptr moduleConnectionMap) { + void loadMapsHost(::SDL::MapPLStoLayer& pLStoLayer, + std::shared_ptr<::SDL::EndcapGeometry> endcapGeometry, + std::shared_ptr<::SDL::TiltedGeometry> tiltedGeometry, + std::shared_ptr<::SDL::ModuleConnectionMap> moduleConnectionMap) { // Module orientation information (DrDz or phi angles) auto endcap_geom = get_absolute_path_after_check_file_exists(trackLooperDir() + "/data/OT800_IT615_pt0.8/endcap_orientation.bin"); @@ -66,31 +68,31 @@ namespace { auto connectData = connects[i].data(); path = pLSMapDir + connectData + ".bin"; - pLStoLayer[0][i] = SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); + pLStoLayer[0][i] = ::SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); path = pLSMapDir + "_pos" + connectData + ".bin"; - pLStoLayer[1][i] = SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); + pLStoLayer[1][i] = ::SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); path = pLSMapDir + "_neg" + connectData + ".bin"; - pLStoLayer[2][i] = SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); + pLStoLayer[2][i] = ::SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); } } } // namespace -std::unique_ptr> SDL::loadAndFillESHost() { +std::unique_ptr> ALPAKA_ACCELERATOR_NAMESPACE::SDL::loadAndFillESHost() { uint16_t nModules; uint16_t nLowerModules; unsigned int nPixels; - std::shared_ptr> modulesBuffers = nullptr; - auto pLStoLayer = std::make_shared(); - auto endcapGeometry = std::make_shared(); - auto tiltedGeometry = std::make_shared(); - auto pixelMapping = std::make_shared(); - auto moduleConnectionMap = std::make_shared(); + std::shared_ptr> modulesBuffers = nullptr; + auto pLStoLayer = std::make_shared<::SDL::MapPLStoLayer>(); + auto endcapGeometry = std::make_shared<::SDL::EndcapGeometry>(); + auto tiltedGeometry = std::make_shared<::SDL::TiltedGeometry>(); + auto pixelMapping = std::make_shared<::SDL::pixelMap>(); + auto moduleConnectionMap = std::make_shared<::SDL::ModuleConnectionMap>(); ::loadMapsHost(*pLStoLayer, endcapGeometry, tiltedGeometry, moduleConnectionMap); auto endcapGeometryBuffers = - std::make_shared>(cms::alpakatools::host(), endcapGeometry->nEndCapMap); + std::make_shared>(cms::alpakatools::host(), endcapGeometry->nEndCapMap); alpaka::QueueCpuBlocking queue(cms::alpakatools::host()); alpaka::memcpy( queue, endcapGeometryBuffers->geoMapDetId_buf, endcapGeometry->geoMapDetId_buf, endcapGeometry->nEndCapMap); @@ -109,6 +111,6 @@ std::unique_ptr> SDL::loadAndFillESHost() { endcapGeometry.get(), tiltedGeometry.get(), moduleConnectionMap.get()); - return std::make_unique>( + return std::make_unique>( nModules, nLowerModules, nPixels, endcapGeometry->nEndCapMap, modulesBuffers, endcapGeometryBuffers, pixelMapping); } diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index beb618ab95cce..b9c5e85245158 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -7,7 +7,7 @@ #include "Hit.h" -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { struct miniDoublets { unsigned int* nMemoryLocations; diff --git a/RecoTracker/LSTCore/src/alpaka/ModuleMethods.h b/RecoTracker/LSTCore/src/alpaka/ModuleMethods.h index 3a7a90f9dc706..419e21a0f09b7 100644 --- a/RecoTracker/LSTCore/src/alpaka/ModuleMethods.h +++ b/RecoTracker/LSTCore/src/alpaka/ModuleMethods.h @@ -13,7 +13,7 @@ #include "HeterogeneousCore/AlpakaInterface/interface/host.h" -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { struct ModuleMetaData { std::map detIdToIndex; std::map module_x; @@ -27,9 +27,9 @@ namespace SDL { inline void fillPixelMap(std::shared_ptr>& modulesBuf, uint16_t nModules, unsigned int& nPixels, - pixelMap& pixelMapping, + ::SDL::pixelMap& pixelMapping, TQueue queue, - const MapPLStoLayer& pLStoLayer, + const ::SDL::MapPLStoLayer& pLStoLayer, struct ModuleMetaData& mmd) { pixelMapping.pixelModuleIndex = mmd.detIdToIndex[1]; @@ -40,11 +40,11 @@ namespace SDL { unsigned int totalSizes = 0; unsigned int totalSizes_pos = 0; unsigned int totalSizes_neg = 0; - for (unsigned int isuperbin = 0; isuperbin < size_superbins; isuperbin++) { + for (unsigned int isuperbin = 0; isuperbin < ::SDL::size_superbins; isuperbin++) { int sizes = 0; for (auto const& mCM_pLS : pLStoLayer[0]) { std::vector connectedModuleDetIds_pLS = - mCM_pLS.getConnectedModuleDetIds(isuperbin + size_superbins); + mCM_pLS.getConnectedModuleDetIds(isuperbin + ::SDL::size_superbins); connectedModuleDetIds.insert( connectedModuleDetIds.end(), connectedModuleDetIds_pLS.begin(), connectedModuleDetIds_pLS.end()); sizes += connectedModuleDetIds_pLS.size(); @@ -109,9 +109,9 @@ namespace SDL { unsigned int nMod, TQueue queue, struct ModuleMetaData& mmd, - const ModuleConnectionMap* moduleConnectionMap) { + const ::SDL::ModuleConnectionMap* moduleConnectionMap) { DevHost const& devHost = cms::alpakatools::host(); - auto moduleMap_buf = allocBufWrapper(devHost, nMod * MAX_CONNECTED_MODULES); + auto moduleMap_buf = allocBufWrapper(devHost, nMod * ::SDL::MAX_CONNECTED_MODULES); uint16_t* moduleMap = alpaka::getPtrNative(moduleMap_buf); auto nConnectedModules_buf = allocBufWrapper(devHost, nMod); @@ -123,7 +123,7 @@ namespace SDL { auto& connectedModules = moduleConnectionMap->getConnectedModuleDetIds(detId); nConnectedModules[index] = connectedModules.size(); for (uint16_t i = 0; i < nConnectedModules[index]; i++) { - moduleMap[index * MAX_CONNECTED_MODULES + i] = mmd.detIdToIndex[connectedModules[i]]; + moduleMap[index * ::SDL::MAX_CONNECTED_MODULES + i] = mmd.detIdToIndex[connectedModules[i]]; } } @@ -218,16 +218,16 @@ namespace SDL { nModules = counter; }; - inline void loadModulesFromFile(const MapPLStoLayer* pLStoLayer, + inline void loadModulesFromFile(const ::SDL::MapPLStoLayer* pLStoLayer, const char* moduleMetaDataFilePath, uint16_t& nModules, uint16_t& nLowerModules, unsigned int& nPixels, std::shared_ptr>& modulesBuf, - pixelMap* pixelMapping, - const EndcapGeometry* endcapGeometry, - const TiltedGeometry* tiltedGeometry, - const ModuleConnectionMap* moduleConnectionMap) { + ::SDL::pixelMap* pixelMapping, + const ::SDL::EndcapGeometry* endcapGeometry, + const ::SDL::TiltedGeometry* tiltedGeometry, + const ::SDL::ModuleConnectionMap* moduleConnectionMap) { ModuleMetaData mmd; loadCentroidsFromFile(moduleMetaDataFilePath, mmd, nModules); diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h index 03f549fd4cdac..c1711caeb4b84 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h @@ -10,7 +10,7 @@ #include "Hit.h" #include "Triplet.h" -namespace T5DNN { +namespace ALPAKA_ACCELERATOR_NAMESPACE::T5DNN { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float runInference(TAcc const& acc, diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h index 90fb6b21ac7d4..83078bb3ddd7f 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h @@ -3,7 +3,7 @@ #include -namespace T5DNN { +namespace ALPAKA_ACCELERATOR_NAMESPACE::T5DNN { ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_0[32] = { -4.5069356f, -5.8842053f, 1.0793180f, -0.1540973f, -0.4705772f, 6.4027028f, -0.6620818f, -7.0734525f, 0.6211641f, 4.9630723f, 3.4310920f, -0.8856288f, 4.5843782f, -6.0180559f, 0.0126438f, -1.5725276f, diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index d36150ffd48ff..26306b8e2a40b 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -10,7 +10,7 @@ #include "Hit.h" #include "Quintuplet.h" -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { // One pixel segment, one outer tracker triplet! struct pixelTriplets { unsigned int* pixelSegmentIndices; @@ -110,9 +110,9 @@ namespace SDL { score_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), isDup_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), partOfPT5_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), - logicalLayers_buf(allocBufWrapper(devAccIn, maxPixelTriplets * Params_pT3::kLayers, queue)), - hitIndices_buf(allocBufWrapper(devAccIn, maxPixelTriplets * Params_pT3::kHits, queue)), - lowerModuleIndices_buf(allocBufWrapper(devAccIn, maxPixelTriplets * Params_pT3::kLayers, queue)), + logicalLayers_buf(allocBufWrapper(devAccIn, maxPixelTriplets * ::SDL::Params_pT3::kLayers, queue)), + hitIndices_buf(allocBufWrapper(devAccIn, maxPixelTriplets * ::SDL::Params_pT3::kHits, queue)), + lowerModuleIndices_buf(allocBufWrapper(devAccIn, maxPixelTriplets * ::SDL::Params_pT3::kLayers, queue)), centerX_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), centerY_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), pixelRadiusError_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), @@ -161,46 +161,46 @@ namespace SDL { pixelTripletsInGPU.centerX[pixelTripletIndex] = __F2H(centerX); pixelTripletsInGPU.centerY[pixelTripletIndex] = __F2H(centerY); - pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * pixelTripletIndex] = 0; - pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * pixelTripletIndex + 1] = 0; - pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * pixelTripletIndex + 2] = - tripletsInGPU.logicalLayers[tripletIndex * Params_T3::kLayers]; - pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * pixelTripletIndex + 3] = - tripletsInGPU.logicalLayers[tripletIndex * Params_T3::kLayers + 1]; - pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * pixelTripletIndex + 4] = - tripletsInGPU.logicalLayers[tripletIndex * Params_T3::kLayers + 2]; - - pixelTripletsInGPU.lowerModuleIndices[Params_pT3::kLayers * pixelTripletIndex] = + pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * pixelTripletIndex] = 0; + pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * pixelTripletIndex + 1] = 0; + pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * pixelTripletIndex + 2] = + tripletsInGPU.logicalLayers[tripletIndex * ::SDL::Params_T3::kLayers]; + pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * pixelTripletIndex + 3] = + tripletsInGPU.logicalLayers[tripletIndex * ::SDL::Params_T3::kLayers + 1]; + pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * pixelTripletIndex + 4] = + tripletsInGPU.logicalLayers[tripletIndex * ::SDL::Params_T3::kLayers + 2]; + + pixelTripletsInGPU.lowerModuleIndices[::SDL::Params_pT3::kLayers * pixelTripletIndex] = segmentsInGPU.innerLowerModuleIndices[pixelSegmentIndex]; - pixelTripletsInGPU.lowerModuleIndices[Params_pT3::kLayers * pixelTripletIndex + 1] = + pixelTripletsInGPU.lowerModuleIndices[::SDL::Params_pT3::kLayers * pixelTripletIndex + 1] = segmentsInGPU.outerLowerModuleIndices[pixelSegmentIndex]; - pixelTripletsInGPU.lowerModuleIndices[Params_pT3::kLayers * pixelTripletIndex + 2] = - tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * tripletIndex]; - pixelTripletsInGPU.lowerModuleIndices[Params_pT3::kLayers * pixelTripletIndex + 3] = - tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * tripletIndex + 1]; - pixelTripletsInGPU.lowerModuleIndices[Params_pT3::kLayers * pixelTripletIndex + 4] = - tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * tripletIndex + 2]; + pixelTripletsInGPU.lowerModuleIndices[::SDL::Params_pT3::kLayers * pixelTripletIndex + 2] = + tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * tripletIndex]; + pixelTripletsInGPU.lowerModuleIndices[::SDL::Params_pT3::kLayers * pixelTripletIndex + 3] = + tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * tripletIndex + 1]; + pixelTripletsInGPU.lowerModuleIndices[::SDL::Params_pT3::kLayers * pixelTripletIndex + 4] = + tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * tripletIndex + 2]; unsigned int pixelInnerMD = segmentsInGPU.mdIndices[2 * pixelSegmentIndex]; unsigned int pixelOuterMD = segmentsInGPU.mdIndices[2 * pixelSegmentIndex + 1]; - pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex] = mdsInGPU.anchorHitIndices[pixelInnerMD]; - pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 1] = mdsInGPU.outerHitIndices[pixelInnerMD]; - pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 2] = mdsInGPU.anchorHitIndices[pixelOuterMD]; - pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 3] = mdsInGPU.outerHitIndices[pixelOuterMD]; - - pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 4] = - tripletsInGPU.hitIndices[Params_T3::kHits * tripletIndex]; - pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 5] = - tripletsInGPU.hitIndices[Params_T3::kHits * tripletIndex + 1]; - pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 6] = - tripletsInGPU.hitIndices[Params_T3::kHits * tripletIndex + 2]; - pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 7] = - tripletsInGPU.hitIndices[Params_T3::kHits * tripletIndex + 3]; - pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 8] = - tripletsInGPU.hitIndices[Params_T3::kHits * tripletIndex + 4]; - pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 9] = - tripletsInGPU.hitIndices[Params_T3::kHits * tripletIndex + 5]; + pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex] = mdsInGPU.anchorHitIndices[pixelInnerMD]; + pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 1] = mdsInGPU.outerHitIndices[pixelInnerMD]; + pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 2] = mdsInGPU.anchorHitIndices[pixelOuterMD]; + pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 3] = mdsInGPU.outerHitIndices[pixelOuterMD]; + + pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 4] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * tripletIndex]; + pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 5] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * tripletIndex + 1]; + pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 6] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * tripletIndex + 2]; + pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 7] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * tripletIndex + 3]; + pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 8] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * tripletIndex + 4]; + pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 9] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * tripletIndex + 5]; pixelTripletsInGPU.rPhiChiSquared[pixelTripletIndex] = rPhiChiSquared; pixelTripletsInGPU.rPhiChiSquaredInwards[pixelTripletIndex] = rPhiChiSquaredInwards; pixelTripletsInGPU.rzChiSquared[pixelTripletIndex] = rzChiSquared; @@ -247,11 +247,11 @@ namespace SDL { short outerInnerLowerModuleSubdet = modulesInGPU.subdets[outerInnerLowerModuleIndex]; short outerOuterLowerModuleSubdet = modulesInGPU.subdets[outerOuterLowerModuleIndex]; - unsigned int firstMDIndex = segmentsInGPU.mdIndices[Params_LS::kLayers * innerSegmentIndex]; - unsigned int secondMDIndex = segmentsInGPU.mdIndices[Params_LS::kLayers * innerSegmentIndex + 1]; + unsigned int firstMDIndex = segmentsInGPU.mdIndices[::SDL::Params_LS::kLayers * innerSegmentIndex]; + unsigned int secondMDIndex = segmentsInGPU.mdIndices[::SDL::Params_LS::kLayers * innerSegmentIndex + 1]; - unsigned int thirdMDIndex = segmentsInGPU.mdIndices[Params_LS::kLayers * outerSegmentIndex]; - unsigned int fourthMDIndex = segmentsInGPU.mdIndices[Params_LS::kLayers * outerSegmentIndex + 1]; + unsigned int thirdMDIndex = segmentsInGPU.mdIndices[::SDL::Params_LS::kLayers * outerSegmentIndex]; + unsigned int fourthMDIndex = segmentsInGPU.mdIndices[::SDL::Params_LS::kLayers * outerSegmentIndex + 1]; if (outerInnerLowerModuleSubdet == SDL::Barrel and (outerOuterLowerModuleSubdet == SDL::Barrel or outerOuterLowerModuleSubdet == SDL::Endcap)) { @@ -765,7 +765,7 @@ namespace SDL { float a = -2.f * k2Rinv1GeVf * 100 * charge; // multiply by 100 to make the correct length units - for (size_t i = 0; i < Params_T3::kLayers; i++) { + for (size_t i = 0; i < ::SDL::Params_T3::kLayers; i++) { float zsi = zs[i] / 100; float rtsi = rts[i] / 100; uint16_t lowerModuleIndex = lowerModuleIndices[i]; @@ -845,9 +845,9 @@ namespace SDL { //run pT4 compatibility between the pixel segment and inner segment, and between the pixel and outer segment of the triplet uint16_t pixelModuleIndex = segmentsInGPU.innerLowerModuleIndices[pixelSegmentIndex]; - uint16_t lowerModuleIndex = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * tripletIndex]; - uint16_t middleModuleIndex = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * tripletIndex + 1]; - uint16_t upperModuleIndex = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * tripletIndex + 2]; + uint16_t lowerModuleIndex = tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * tripletIndex]; + uint16_t middleModuleIndex = tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * tripletIndex + 1]; + uint16_t upperModuleIndex = tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * tripletIndex + 2]; { //placeholder @@ -864,7 +864,7 @@ namespace SDL { lowerModuleIndex, middleModuleIndex, pixelSegmentIndex, - tripletsInGPU.segmentIndices[Params_LS::kLayers * tripletIndex], + tripletsInGPU.segmentIndices[::SDL::Params_LS::kLayers * tripletIndex], zOut, rtOut, deltaPhiPos, @@ -895,7 +895,7 @@ namespace SDL { middleModuleIndex, upperModuleIndex, pixelSegmentIndex, - tripletsInGPU.segmentIndices[Params_LS::kLayers * tripletIndex + 1], + tripletsInGPU.segmentIndices[::SDL::Params_LS::kLayers * tripletIndex + 1], zOut, rtOut, deltaPhiPos, @@ -930,8 +930,8 @@ namespace SDL { float pixelF = segmentsInGPU.circleCenterY[pixelSegmentArrayIndex]; float pixelRadiusPCA = segmentsInGPU.circleRadius[pixelSegmentArrayIndex]; - unsigned int pixelInnerMDIndex = segmentsInGPU.mdIndices[Params_pLS::kLayers * pixelSegmentIndex]; - unsigned int pixelOuterMDIndex = segmentsInGPU.mdIndices[Params_pLS::kLayers * pixelSegmentIndex + 1]; + unsigned int pixelInnerMDIndex = segmentsInGPU.mdIndices[::SDL::Params_pLS::kLayers * pixelSegmentIndex]; + unsigned int pixelOuterMDIndex = segmentsInGPU.mdIndices[::SDL::Params_pLS::kLayers * pixelSegmentIndex + 1]; pixelRadius = pixelSegmentPt * kR1GeVf; pixelRadiusError = pixelSegmentPtError * kR1GeVf; @@ -942,9 +942,9 @@ namespace SDL { unsigned int secondMDIndex = segmentsInGPU.mdIndices[2 * tripletInnerSegmentIndex + 1]; unsigned int thirdMDIndex = segmentsInGPU.mdIndices[2 * tripletOuterSegmentIndex + 1]; - float xs[Params_T3::kLayers] = { + float xs[::SDL::Params_T3::kLayers] = { mdsInGPU.anchorX[firstMDIndex], mdsInGPU.anchorX[secondMDIndex], mdsInGPU.anchorX[thirdMDIndex]}; - float ys[Params_T3::kLayers] = { + float ys[::SDL::Params_T3::kLayers] = { mdsInGPU.anchorY[firstMDIndex], mdsInGPU.anchorY[secondMDIndex], mdsInGPU.anchorY[thirdMDIndex]}; float g, f; @@ -962,17 +962,17 @@ namespace SDL { upperModuleIndex)) return false; - uint16_t lowerModuleIndices[Params_T3::kLayers] = {lowerModuleIndex, middleModuleIndex, upperModuleIndex}; + uint16_t lowerModuleIndices[::SDL::Params_T3::kLayers] = {lowerModuleIndex, middleModuleIndex, upperModuleIndex}; if (runChiSquaredCuts and pixelSegmentPt < 5.0f) { - float rts[Params_T3::kLayers] = { + float rts[::SDL::Params_T3::kLayers] = { mdsInGPU.anchorRt[firstMDIndex], mdsInGPU.anchorRt[secondMDIndex], mdsInGPU.anchorRt[thirdMDIndex]}; - float zs[Params_T3::kLayers] = { + float zs[::SDL::Params_T3::kLayers] = { mdsInGPU.anchorZ[firstMDIndex], mdsInGPU.anchorZ[secondMDIndex], mdsInGPU.anchorZ[thirdMDIndex]}; - float rtPix[Params_pLS::kLayers] = {mdsInGPU.anchorRt[pixelInnerMDIndex], mdsInGPU.anchorRt[pixelOuterMDIndex]}; - float xPix[Params_pLS::kLayers] = {mdsInGPU.anchorX[pixelInnerMDIndex], mdsInGPU.anchorX[pixelOuterMDIndex]}; - float yPix[Params_pLS::kLayers] = {mdsInGPU.anchorY[pixelInnerMDIndex], mdsInGPU.anchorY[pixelOuterMDIndex]}; - float zPix[Params_pLS::kLayers] = {mdsInGPU.anchorZ[pixelInnerMDIndex], mdsInGPU.anchorZ[pixelOuterMDIndex]}; + float rtPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorRt[pixelInnerMDIndex], mdsInGPU.anchorRt[pixelOuterMDIndex]}; + float xPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorX[pixelInnerMDIndex], mdsInGPU.anchorX[pixelOuterMDIndex]}; + float yPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorY[pixelInnerMDIndex], mdsInGPU.anchorY[pixelOuterMDIndex]}; + float zPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorZ[pixelInnerMDIndex], mdsInGPU.anchorZ[pixelOuterMDIndex]}; rzChiSquared = computePT3RZChiSquared(acc, modulesInGPU, @@ -1006,8 +1006,8 @@ namespace SDL { return false; } - float xPix[Params_pLS::kLayers] = {mdsInGPU.anchorX[pixelInnerMDIndex], mdsInGPU.anchorX[pixelOuterMDIndex]}; - float yPix[Params_pLS::kLayers] = {mdsInGPU.anchorY[pixelInnerMDIndex], mdsInGPU.anchorY[pixelOuterMDIndex]}; + float xPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorX[pixelInnerMDIndex], mdsInGPU.anchorX[pixelOuterMDIndex]}; + float yPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorY[pixelInnerMDIndex], mdsInGPU.anchorY[pixelOuterMDIndex]}; rPhiChiSquaredInwards = computePT3RPhiChiSquaredInwards(modulesInGPU, g, f, tripletRadius, xPix, yPix); if (runChiSquaredCuts and pixelSegmentPt < 5.0f) { @@ -1123,7 +1123,7 @@ namespace SDL { float score = rPhiChiSquared + rPhiChiSquaredInwards; unsigned int totOccupancyPixelTriplets = alpaka::atomicOp(acc, pixelTripletsInGPU.totOccupancyPixelTriplets, 1u); - if (totOccupancyPixelTriplets >= N_MAX_PIXEL_TRIPLETS) { + if (totOccupancyPixelTriplets >= ::SDL::N_MAX_PIXEL_TRIPLETS) { #ifdef Warnings printf("Pixel Triplet excess alert!\n"); #endif @@ -1837,7 +1837,7 @@ namespace SDL { #include "Quintuplet.h" #include "PixelTriplet.h" -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { struct pixelQuintuplets { unsigned int* pixelIndices; unsigned int* T5Indices; @@ -1912,9 +1912,9 @@ namespace SDL { score_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), eta_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), phi_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), - logicalLayers_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets * Params_pT5::kLayers, queue)), - hitIndices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets * Params_pT5::kHits, queue)), - lowerModuleIndices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets * Params_pT5::kLayers, queue)), + logicalLayers_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets * ::SDL::Params_pT5::kLayers, queue)), + hitIndices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets * ::SDL::Params_pT5::kHits, queue)), + lowerModuleIndices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets * ::SDL::Params_pT5::kLayers, queue)), pixelRadius_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), quintupletRadius_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), centerX_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), @@ -1958,66 +1958,66 @@ namespace SDL { pixelQuintupletsInGPU.centerX[pixelQuintupletIndex] = __F2H(centerX); pixelQuintupletsInGPU.centerY[pixelQuintupletIndex] = __F2H(centerY); - pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex] = 0; - pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex + 1] = 0; - pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex + 2] = - quintupletsInGPU.logicalLayers[T5Index * Params_T5::kLayers]; - pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex + 3] = - quintupletsInGPU.logicalLayers[T5Index * Params_T5::kLayers + 1]; - pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex + 4] = - quintupletsInGPU.logicalLayers[T5Index * Params_T5::kLayers + 2]; - pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex + 5] = - quintupletsInGPU.logicalLayers[T5Index * Params_T5::kLayers + 3]; - pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex + 6] = - quintupletsInGPU.logicalLayers[T5Index * Params_T5::kLayers + 4]; - - pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex] = + pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex] = 0; + pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 1] = 0; + pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 2] = + quintupletsInGPU.logicalLayers[T5Index * ::SDL::Params_T5::kLayers]; + pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 3] = + quintupletsInGPU.logicalLayers[T5Index * ::SDL::Params_T5::kLayers + 1]; + pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 4] = + quintupletsInGPU.logicalLayers[T5Index * ::SDL::Params_T5::kLayers + 2]; + pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 5] = + quintupletsInGPU.logicalLayers[T5Index * ::SDL::Params_T5::kLayers + 3]; + pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 6] = + quintupletsInGPU.logicalLayers[T5Index * ::SDL::Params_T5::kLayers + 4]; + + pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex] = segmentsInGPU.innerLowerModuleIndices[pixelIndex]; - pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex + 1] = + pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 1] = segmentsInGPU.outerLowerModuleIndices[pixelIndex]; - pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex + 2] = - quintupletsInGPU.lowerModuleIndices[T5Index * Params_T5::kLayers]; - pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex + 3] = - quintupletsInGPU.lowerModuleIndices[T5Index * Params_T5::kLayers + 1]; - pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex + 4] = - quintupletsInGPU.lowerModuleIndices[T5Index * Params_T5::kLayers + 2]; - pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex + 5] = - quintupletsInGPU.lowerModuleIndices[T5Index * Params_T5::kLayers + 3]; - pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex + 6] = - quintupletsInGPU.lowerModuleIndices[T5Index * Params_T5::kLayers + 4]; - - unsigned int pixelInnerMD = segmentsInGPU.mdIndices[Params_pLS::kLayers * pixelIndex]; - unsigned int pixelOuterMD = segmentsInGPU.mdIndices[Params_pLS::kLayers * pixelIndex + 1]; - - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex] = + pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 2] = + quintupletsInGPU.lowerModuleIndices[T5Index * ::SDL::Params_T5::kLayers]; + pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 3] = + quintupletsInGPU.lowerModuleIndices[T5Index * ::SDL::Params_T5::kLayers + 1]; + pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 4] = + quintupletsInGPU.lowerModuleIndices[T5Index * ::SDL::Params_T5::kLayers + 2]; + pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 5] = + quintupletsInGPU.lowerModuleIndices[T5Index * ::SDL::Params_T5::kLayers + 3]; + pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 6] = + quintupletsInGPU.lowerModuleIndices[T5Index * ::SDL::Params_T5::kLayers + 4]; + + unsigned int pixelInnerMD = segmentsInGPU.mdIndices[::SDL::Params_pLS::kLayers * pixelIndex]; + unsigned int pixelOuterMD = segmentsInGPU.mdIndices[::SDL::Params_pLS::kLayers * pixelIndex + 1]; + + pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex] = mdsInGPU.anchorHitIndices[pixelInnerMD]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 1] = + pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 1] = mdsInGPU.outerHitIndices[pixelInnerMD]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 2] = + pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 2] = mdsInGPU.anchorHitIndices[pixelOuterMD]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 3] = + pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 3] = mdsInGPU.outerHitIndices[pixelOuterMD]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 4] = - quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 5] = - quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 1]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 6] = - quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 2]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 7] = - quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 3]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 8] = - quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 4]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 9] = - quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 5]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 10] = - quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 6]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 11] = - quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 7]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 12] = - quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 8]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 13] = - quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 9]; + pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 4] = + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index]; + pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 5] = + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 1]; + pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 6] = + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 2]; + pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 7] = + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 3]; + pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 8] = + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 4]; + pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 9] = + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 5]; + pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 10] = + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 6]; + pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 11] = + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 7]; + pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 12] = + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 8]; + pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 13] = + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 9]; pixelQuintupletsInGPU.rzChiSquared[pixelQuintupletIndex] = rzChiSquared; pixelQuintupletsInGPU.rPhiChiSquared[pixelQuintupletIndex] = rPhiChiSquared; @@ -2520,23 +2520,23 @@ namespace SDL { unsigned int fourthMDIndex = segmentsInGPU.mdIndices[2 * thirdSegmentIndex + 1]; unsigned int fifthMDIndex = segmentsInGPU.mdIndices[2 * fourthSegmentIndex + 1]; - uint16_t lowerModuleIndex1 = quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex]; - uint16_t lowerModuleIndex2 = quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 1]; - uint16_t lowerModuleIndex3 = quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 2]; - uint16_t lowerModuleIndex4 = quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 3]; - uint16_t lowerModuleIndex5 = quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 4]; + uint16_t lowerModuleIndex1 = quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex]; + uint16_t lowerModuleIndex2 = quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 1]; + uint16_t lowerModuleIndex3 = quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 2]; + uint16_t lowerModuleIndex4 = quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 3]; + uint16_t lowerModuleIndex5 = quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 4]; - uint16_t lowerModuleIndices[Params_T5::kLayers] = { + uint16_t lowerModuleIndices[::SDL::Params_T5::kLayers] = { lowerModuleIndex1, lowerModuleIndex2, lowerModuleIndex3, lowerModuleIndex4, lowerModuleIndex5}; - float zPix[Params_pLS::kLayers] = {mdsInGPU.anchorZ[pixelInnerMDIndex], mdsInGPU.anchorZ[pixelOuterMDIndex]}; - float rtPix[Params_pLS::kLayers] = {mdsInGPU.anchorRt[pixelInnerMDIndex], mdsInGPU.anchorRt[pixelOuterMDIndex]}; - float zs[Params_T5::kLayers] = {mdsInGPU.anchorZ[firstMDIndex], + float zPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorZ[pixelInnerMDIndex], mdsInGPU.anchorZ[pixelOuterMDIndex]}; + float rtPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorRt[pixelInnerMDIndex], mdsInGPU.anchorRt[pixelOuterMDIndex]}; + float zs[::SDL::Params_T5::kLayers] = {mdsInGPU.anchorZ[firstMDIndex], mdsInGPU.anchorZ[secondMDIndex], mdsInGPU.anchorZ[thirdMDIndex], mdsInGPU.anchorZ[fourthMDIndex], mdsInGPU.anchorZ[fifthMDIndex]}; - float rts[Params_T5::kLayers] = {mdsInGPU.anchorRt[firstMDIndex], + float rts[::SDL::Params_T5::kLayers] = {mdsInGPU.anchorRt[firstMDIndex], mdsInGPU.anchorRt[secondMDIndex], mdsInGPU.anchorRt[thirdMDIndex], mdsInGPU.anchorRt[fourthMDIndex], @@ -2556,12 +2556,12 @@ namespace SDL { } //outer T5 - float xs[Params_T5::kLayers] = {mdsInGPU.anchorX[firstMDIndex], + float xs[::SDL::Params_T5::kLayers] = {mdsInGPU.anchorX[firstMDIndex], mdsInGPU.anchorX[secondMDIndex], mdsInGPU.anchorX[thirdMDIndex], mdsInGPU.anchorX[fourthMDIndex], mdsInGPU.anchorX[fifthMDIndex]}; - float ys[Params_T5::kLayers] = {mdsInGPU.anchorY[firstMDIndex], + float ys[::SDL::Params_T5::kLayers] = {mdsInGPU.anchorY[firstMDIndex], mdsInGPU.anchorY[secondMDIndex], mdsInGPU.anchorY[thirdMDIndex], mdsInGPU.anchorY[fourthMDIndex], @@ -2628,7 +2628,7 @@ namespace SDL { float error2 = 0; //hardcoded array indices!!! float RMSE = 0; - for (size_t i = 0; i < Params_T5::kLayers; i++) { + for (size_t i = 0; i < ::SDL::Params_T5::kLayers; i++) { uint16_t& lowerModuleIndex = lowerModuleIndices[i]; const int moduleType = modulesInGPU.moduleType[lowerModuleIndex]; const int moduleSide = modulesInGPU.sides[lowerModuleIndex]; @@ -2726,7 +2726,7 @@ namespace SDL { if (success) { unsigned int totOccupancyPixelQuintuplets = alpaka::atomicOp(acc, pixelQuintupletsInGPU.totOccupancyPixelQuintuplets, 1u); - if (totOccupancyPixelQuintuplets >= N_MAX_PIXEL_QUINTUPLETS) { + if (totOccupancyPixelQuintuplets >= ::SDL::N_MAX_PIXEL_QUINTUPLETS) { #ifdef Warnings printf("Pixel Quintuplet excess alert!\n"); #endif diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 0530a6635851a..7b99879c583ce 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -11,7 +11,7 @@ #include "Hit.h" #include "Triplet.h" -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { struct quintuplets { unsigned int* tripletIndices; uint16_t* lowerModuleIndices; @@ -103,7 +103,7 @@ namespace SDL { template quintupletsBuffer(unsigned int nTotalQuintuplets, unsigned int nLowerModules, TDevAcc const& devAccIn, TQueue& queue) : tripletIndices_buf(allocBufWrapper(devAccIn, 2 * nTotalQuintuplets, queue)), - lowerModuleIndices_buf(allocBufWrapper(devAccIn, Params_T5::kLayers * nTotalQuintuplets, queue)), + lowerModuleIndices_buf(allocBufWrapper(devAccIn, ::SDL::Params_T5::kLayers * nTotalQuintuplets, queue)), nQuintuplets_buf(allocBufWrapper(devAccIn, nLowerModules, queue)), totOccupancyQuintuplets_buf(allocBufWrapper(devAccIn, nLowerModules, queue)), nMemoryLocations_buf(allocBufWrapper(devAccIn, 1, queue)), @@ -121,8 +121,8 @@ namespace SDL { regressionRadius_buf(allocBufWrapper(devAccIn, nTotalQuintuplets, queue)), regressionG_buf(allocBufWrapper(devAccIn, nTotalQuintuplets, queue)), regressionF_buf(allocBufWrapper(devAccIn, nTotalQuintuplets, queue)), - logicalLayers_buf(allocBufWrapper(devAccIn, Params_T5::kLayers * nTotalQuintuplets, queue)), - hitIndices_buf(allocBufWrapper(devAccIn, Params_T5::kHits * nTotalQuintuplets, queue)), + logicalLayers_buf(allocBufWrapper(devAccIn, ::SDL::Params_T5::kLayers * nTotalQuintuplets, queue)), + hitIndices_buf(allocBufWrapper(devAccIn, ::SDL::Params_T5::kHits * nTotalQuintuplets, queue)), rzChiSquared_buf(allocBufWrapper(devAccIn, nTotalQuintuplets, queue)), chiSquared_buf(allocBufWrapper(devAccIn, nTotalQuintuplets, queue)), nonAnchorChiSquared_buf(allocBufWrapper(devAccIn, nTotalQuintuplets, queue)) { @@ -170,11 +170,11 @@ namespace SDL { quintupletsInGPU.tripletIndices[2 * quintupletIndex] = innerTripletIndex; quintupletsInGPU.tripletIndices[2 * quintupletIndex + 1] = outerTripletIndex; - quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex] = lowerModule1; - quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 1] = lowerModule2; - quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 2] = lowerModule3; - quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 3] = lowerModule4; - quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 4] = lowerModule5; + quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex] = lowerModule1; + quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 1] = lowerModule2; + quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 2] = lowerModule3; + quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 3] = lowerModule4; + quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 4] = lowerModule5; quintupletsInGPU.innerRadius[quintupletIndex] = __F2H(innerRadius); quintupletsInGPU.outerRadius[quintupletIndex] = __F2H(outerRadius); quintupletsInGPU.pt[quintupletIndex] = __F2H(pt); @@ -187,37 +187,37 @@ namespace SDL { quintupletsInGPU.regressionRadius[quintupletIndex] = regressionRadius; quintupletsInGPU.regressionG[quintupletIndex] = regressionG; quintupletsInGPU.regressionF[quintupletIndex] = regressionF; - quintupletsInGPU.logicalLayers[Params_T5::kLayers * quintupletIndex] = - tripletsInGPU.logicalLayers[Params_T3::kLayers * innerTripletIndex]; - quintupletsInGPU.logicalLayers[Params_T5::kLayers * quintupletIndex + 1] = - tripletsInGPU.logicalLayers[Params_T3::kLayers * innerTripletIndex + 1]; - quintupletsInGPU.logicalLayers[Params_T5::kLayers * quintupletIndex + 2] = - tripletsInGPU.logicalLayers[Params_T3::kLayers * innerTripletIndex + 2]; - quintupletsInGPU.logicalLayers[Params_T5::kLayers * quintupletIndex + 3] = - tripletsInGPU.logicalLayers[Params_T3::kLayers * outerTripletIndex + 1]; - quintupletsInGPU.logicalLayers[Params_T5::kLayers * quintupletIndex + 4] = - tripletsInGPU.logicalLayers[Params_T3::kLayers * outerTripletIndex + 2]; - - quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex] = - tripletsInGPU.hitIndices[Params_T3::kHits * innerTripletIndex]; - quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 1] = - tripletsInGPU.hitIndices[Params_T3::kHits * innerTripletIndex + 1]; - quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 2] = - tripletsInGPU.hitIndices[Params_T3::kHits * innerTripletIndex + 2]; - quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 3] = - tripletsInGPU.hitIndices[Params_T3::kHits * innerTripletIndex + 3]; - quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 4] = - tripletsInGPU.hitIndices[Params_T3::kHits * innerTripletIndex + 4]; - quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 5] = - tripletsInGPU.hitIndices[Params_T3::kHits * innerTripletIndex + 5]; - quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 6] = - tripletsInGPU.hitIndices[Params_T3::kHits * outerTripletIndex + 2]; - quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 7] = - tripletsInGPU.hitIndices[Params_T3::kHits * outerTripletIndex + 3]; - quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 8] = - tripletsInGPU.hitIndices[Params_T3::kHits * outerTripletIndex + 4]; - quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 9] = - tripletsInGPU.hitIndices[Params_T3::kHits * outerTripletIndex + 5]; + quintupletsInGPU.logicalLayers[::SDL::Params_T5::kLayers * quintupletIndex] = + tripletsInGPU.logicalLayers[::SDL::Params_T3::kLayers * innerTripletIndex]; + quintupletsInGPU.logicalLayers[::SDL::Params_T5::kLayers * quintupletIndex + 1] = + tripletsInGPU.logicalLayers[::SDL::Params_T3::kLayers * innerTripletIndex + 1]; + quintupletsInGPU.logicalLayers[::SDL::Params_T5::kLayers * quintupletIndex + 2] = + tripletsInGPU.logicalLayers[::SDL::Params_T3::kLayers * innerTripletIndex + 2]; + quintupletsInGPU.logicalLayers[::SDL::Params_T5::kLayers * quintupletIndex + 3] = + tripletsInGPU.logicalLayers[::SDL::Params_T3::kLayers * outerTripletIndex + 1]; + quintupletsInGPU.logicalLayers[::SDL::Params_T5::kLayers * quintupletIndex + 4] = + tripletsInGPU.logicalLayers[::SDL::Params_T3::kLayers * outerTripletIndex + 2]; + + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * innerTripletIndex]; + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 1] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * innerTripletIndex + 1]; + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 2] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * innerTripletIndex + 2]; + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 3] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * innerTripletIndex + 3]; + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 4] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * innerTripletIndex + 4]; + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 5] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * innerTripletIndex + 5]; + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 6] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * outerTripletIndex + 2]; + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 7] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * outerTripletIndex + 3]; + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 8] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * outerTripletIndex + 4]; + quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 9] = + tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * outerTripletIndex + 5]; quintupletsInGPU.bridgeRadius[quintupletIndex] = bridgeRadius; quintupletsInGPU.rzChiSquared[quintupletIndex] = rzChiSquared; quintupletsInGPU.chiSquared[quintupletIndex] = rPhiChiSquared; @@ -2878,7 +2878,7 @@ namespace SDL { computeSigmasForRegression(acc, modulesInGPU, lowerModuleIndices, delta1, delta2, slopes, isFlat); regressionRadius = computeRadiusUsingRegression(acc, - Params_T5::kLayers, + ::SDL::Params_T5::kLayers, xVec, yVec, delta1, @@ -2927,7 +2927,7 @@ namespace SDL { //compute the other chisquared //non anchor is always shifted for tilted and endcap! - float nonAnchorDelta1[Params_T5::kLayers], nonAnchorDelta2[Params_T5::kLayers], nonAnchorSlopes[Params_T5::kLayers]; + float nonAnchorDelta1[::SDL::Params_T5::kLayers], nonAnchorDelta2[::SDL::Params_T5::kLayers], nonAnchorSlopes[::SDL::Params_T5::kLayers]; float nonAnchorxs[] = {mdsInGPU.outerX[firstMDIndex], mdsInGPU.outerX[secondMDIndex], mdsInGPU.outerX[thirdMDIndex], @@ -2946,10 +2946,10 @@ namespace SDL { nonAnchorDelta2, nonAnchorSlopes, isFlat, - Params_T5::kLayers, + ::SDL::Params_T5::kLayers, false); nonAnchorChiSquared = computeChiSquared(acc, - Params_T5::kLayers, + ::SDL::Params_T5::kLayers, nonAnchorxs, nonAnchorys, nonAnchorDelta1, @@ -2992,14 +2992,14 @@ namespace SDL { for (unsigned int innerTripletArrayIndex = globalThreadIdx[1]; innerTripletArrayIndex < nInnerTriplets; innerTripletArrayIndex += gridThreadExtent[1]) { unsigned int innerTripletIndex = rangesInGPU.tripletModuleIndices[lowerModule1] + innerTripletArrayIndex; - uint16_t lowerModule2 = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * innerTripletIndex + 1]; - uint16_t lowerModule3 = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * innerTripletIndex + 2]; + uint16_t lowerModule2 = tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * innerTripletIndex + 1]; + uint16_t lowerModule3 = tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * innerTripletIndex + 2]; unsigned int nOuterTriplets = tripletsInGPU.nTriplets[lowerModule3]; for (unsigned int outerTripletArrayIndex = globalThreadIdx[2]; outerTripletArrayIndex < nOuterTriplets; outerTripletArrayIndex += gridThreadExtent[2]) { unsigned int outerTripletIndex = rangesInGPU.tripletModuleIndices[lowerModule3] + outerTripletArrayIndex; - uint16_t lowerModule4 = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * outerTripletIndex + 1]; - uint16_t lowerModule5 = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * outerTripletIndex + 2]; + uint16_t lowerModule4 = tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * outerTripletIndex + 1]; + uint16_t lowerModule5 = tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * outerTripletIndex + 2]; float innerRadius, outerRadius, bridgeRadius, regressionG, regressionF, regressionRadius, rzChiSquared, chiSquared, nonAnchorChiSquared; //required for making distributions diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index d35d93aa1c395..583bf7b1df4f0 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -8,7 +8,7 @@ #include "MiniDoublet.h" #include "Hit.h" -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { struct segments { FPX* dPhis; FPX* dPhiMins; @@ -794,7 +794,7 @@ namespace SDL { for (uint16_t outerLowerModuleArrayIdx = blockThreadIdx[1]; outerLowerModuleArrayIdx < nConnectedModules; outerLowerModuleArrayIdx += blockThreadExtent[1]) { uint16_t outerLowerModuleIndex = - modulesInGPU.moduleMap[innerLowerModuleIndex * MAX_CONNECTED_MODULES + outerLowerModuleArrayIdx]; + modulesInGPU.moduleMap[innerLowerModuleIndex * ::SDL::MAX_CONNECTED_MODULES + outerLowerModuleArrayIdx]; unsigned int nOuterMDs = mdsInGPU.nMDs[outerLowerModuleIndex]; @@ -1068,7 +1068,7 @@ namespace SDL { (hitsInGPU.zs[mdsInGPU.anchorHitIndices[outerMDIndex]]); score_lsq = score_lsq * score_lsq; - unsigned int hits1[Params_pLS::kHits]; + unsigned int hits1[::SDL::Params_pLS::kHits]; hits1[0] = hitsInGPU.idxs[mdsInGPU.anchorHitIndices[innerMDIndex]]; hits1[1] = hitsInGPU.idxs[mdsInGPU.anchorHitIndices[outerMDIndex]]; hits1[2] = hitsInGPU.idxs[mdsInGPU.outerHitIndices[innerMDIndex]]; diff --git a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h index 69f2396003000..dc522b72f200b 100644 --- a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h +++ b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h @@ -11,7 +11,7 @@ #include "Quintuplet.h" #include "Hit.h" -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { struct trackCandidates { short* trackCandidateType; // 4-T5 5-pT3 7-pT5 8-pLS unsigned int* directObjectIndices; // Will hold direct indices to each type containers @@ -83,10 +83,10 @@ namespace SDL { nTrackCandidatespT5_buf(allocBufWrapper(devAccIn, 1, queue)), nTrackCandidatespLS_buf(allocBufWrapper(devAccIn, 1, queue)), nTrackCandidatesT5_buf(allocBufWrapper(devAccIn, 1, queue)), - logicalLayers_buf(allocBufWrapper(devAccIn, Params_pT5::kLayers * maxTrackCandidates, queue)), - hitIndices_buf(allocBufWrapper(devAccIn, Params_pT5::kHits * maxTrackCandidates, queue)), + logicalLayers_buf(allocBufWrapper(devAccIn, ::SDL::Params_pT5::kLayers * maxTrackCandidates, queue)), + hitIndices_buf(allocBufWrapper(devAccIn, ::SDL::Params_pT5::kHits * maxTrackCandidates, queue)), pixelSeedIndex_buf(allocBufWrapper(devAccIn, maxTrackCandidates, queue)), - lowerModuleIndices_buf(allocBufWrapper(devAccIn, Params_pT5::kLayers * maxTrackCandidates, queue)), + lowerModuleIndices_buf(allocBufWrapper(devAccIn, ::SDL::Params_pT5::kLayers * maxTrackCandidates, queue)), centerX_buf(allocBufWrapper(devAccIn, maxTrackCandidates, queue)), centerY_buf(allocBufWrapper(devAccIn, maxTrackCandidates, queue)), radius_buf(allocBufWrapper(devAccIn, maxTrackCandidates, queue)) { @@ -115,11 +115,11 @@ namespace SDL { trackCandidatesInGPU.objectIndices[2 * trackCandidateIndex] = trackletIndex; trackCandidatesInGPU.objectIndices[2 * trackCandidateIndex + 1] = trackletIndex; - trackCandidatesInGPU.hitIndices[Params_pT5::kHits * trackCandidateIndex + 0] = + trackCandidatesInGPU.hitIndices[::SDL::Params_pT5::kHits * trackCandidateIndex + 0] = hitIndices.x; // Order explanation in https://github.com/SegmentLinking/TrackLooper/issues/267 - trackCandidatesInGPU.hitIndices[Params_pT5::kHits * trackCandidateIndex + 1] = hitIndices.z; - trackCandidatesInGPU.hitIndices[Params_pT5::kHits * trackCandidateIndex + 2] = hitIndices.y; - trackCandidatesInGPU.hitIndices[Params_pT5::kHits * trackCandidateIndex + 3] = hitIndices.w; + trackCandidatesInGPU.hitIndices[::SDL::Params_pT5::kHits * trackCandidateIndex + 1] = hitIndices.z; + trackCandidatesInGPU.hitIndices[::SDL::Params_pT5::kHits * trackCandidateIndex + 2] = hitIndices.y; + trackCandidatesInGPU.hitIndices[::SDL::Params_pT5::kHits * trackCandidateIndex + 3] = hitIndices.w; }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTrackCandidateToMemory(struct SDL::trackCandidates& trackCandidatesInGPU, @@ -143,16 +143,16 @@ namespace SDL { trackCandidatesInGPU.objectIndices[2 * trackCandidateIndex + 1] = outerTrackletIndex; size_t limits = trackCandidateType == 7 - ? Params_pT5::kLayers - : Params_pT3::kLayers; // 7 means pT5, Params_pT3::kLayers = Params_T5::kLayers = 5 + ? ::SDL::Params_pT5::kLayers + : ::SDL::Params_pT3::kLayers; // 7 means pT5, ::SDL::Params_pT3::kLayers = ::SDL::Params_T5::kLayers = 5 //send the starting pointer to the logicalLayer and hitIndices for (size_t i = 0; i < limits; i++) { - trackCandidatesInGPU.logicalLayers[Params_pT5::kLayers * trackCandidateIndex + i] = logicalLayerIndices[i]; - trackCandidatesInGPU.lowerModuleIndices[Params_pT5::kLayers * trackCandidateIndex + i] = lowerModuleIndices[i]; + trackCandidatesInGPU.logicalLayers[::SDL::Params_pT5::kLayers * trackCandidateIndex + i] = logicalLayerIndices[i]; + trackCandidatesInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * trackCandidateIndex + i] = lowerModuleIndices[i]; } for (size_t i = 0; i < 2 * limits; i++) { - trackCandidatesInGPU.hitIndices[Params_pT5::kHits * trackCandidateIndex + i] = hitIndices[i]; + trackCandidatesInGPU.hitIndices[::SDL::Params_pT5::kHits * trackCandidateIndex + i] = hitIndices[i]; } trackCandidatesInGPU.centerX[trackCandidateIndex] = __F2H(centerX); trackCandidatesInGPU.centerY[trackCandidateIndex] = __F2H(centerY); @@ -164,8 +164,8 @@ namespace SDL { struct SDL::miniDoublets& mdsInGPU, struct SDL::segments& segmentsInGPU, struct SDL::hits& hitsInGPU) { - int phits1[Params_pLS::kHits]; - int phits2[Params_pLS::kHits]; + int phits1[::SDL::Params_pLS::kHits]; + int phits2[::SDL::Params_pLS::kHits]; phits1[0] = hitsInGPU.idxs[mdsInGPU.anchorHitIndices[segmentsInGPU.mdIndices[2 * ix]]]; phits1[1] = hitsInGPU.idxs[mdsInGPU.anchorHitIndices[segmentsInGPU.mdIndices[2 * ix + 1]]]; @@ -179,12 +179,12 @@ namespace SDL { int npMatched = 0; - for (int i = 0; i < Params_pLS::kHits; i++) { + for (int i = 0; i < ::SDL::Params_pLS::kHits; i++) { bool pmatched = false; if (phits1[i] == -1) continue; - for (int j = 0; j < Params_pLS::kHits; j++) { + for (int j = 0; j < ::SDL::Params_pLS::kHits; j++) { if (phits2[j] == -1) continue; @@ -398,7 +398,7 @@ namespace SDL { unsigned int trackCandidateIdx = alpaka::atomicOp(acc, trackCandidatesInGPU.nTrackCandidates, 1u); - if (trackCandidateIdx >= N_MAX_PIXEL_TRACK_CANDIDATES) // This is done before any non-pixel TCs are added + if (trackCandidateIdx >= ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES) // This is done before any non-pixel TCs are added { #ifdef Warnings printf("Track Candidate excess alert! Type = pT3"); @@ -416,9 +416,9 @@ namespace SDL { 5 /*track candidate type pT3=5*/, pixelTripletIndex, pixelTripletIndex, - &pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * pixelTripletIndex], - &pixelTripletsInGPU.lowerModuleIndices[Params_pT3::kLayers * pixelTripletIndex], - &pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex], + &pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * pixelTripletIndex], + &pixelTripletsInGPU.lowerModuleIndices[::SDL::Params_pT3::kLayers * pixelTripletIndex], + &pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex], segmentsInGPU.seedIdx[pT3PixelIndex - pLS_offset], __H2F(pixelTripletsInGPU.centerX[pixelTripletIndex]), __H2F(pixelTripletsInGPU.centerY[pixelTripletIndex]), @@ -456,7 +456,7 @@ namespace SDL { alpaka::atomicOp(acc, trackCandidatesInGPU.nTrackCandidates, 1u); if (trackCandidateIdx - *trackCandidatesInGPU.nTrackCandidatespT5 - *trackCandidatesInGPU.nTrackCandidatespT3 >= - N_MAX_NONPIXEL_TRACK_CANDIDATES) // pT5 and pT3 TCs have been added, but not pLS TCs + ::SDL::N_MAX_NONPIXEL_TRACK_CANDIDATES) // pT5 and pT3 TCs have been added, but not pLS TCs { #ifdef Warnings printf("Track Candidate excess alert! Type = T5"); @@ -469,9 +469,9 @@ namespace SDL { 4 /*track candidate type T5=4*/, quintupletIndex, quintupletIndex, - &quintupletsInGPU.logicalLayers[Params_T5::kLayers * quintupletIndex], - &quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex], - &quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex], + &quintupletsInGPU.logicalLayers[::SDL::Params_T5::kLayers * quintupletIndex], + &quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex], + &quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex], -1 /*no pixel seed index for T5s*/, quintupletsInGPU.regressionG[quintupletIndex], quintupletsInGPU.regressionF[quintupletIndex], @@ -503,7 +503,7 @@ namespace SDL { unsigned int trackCandidateIdx = alpaka::atomicOp(acc, trackCandidatesInGPU.nTrackCandidates, 1u); if (trackCandidateIdx - *trackCandidatesInGPU.nTrackCandidatesT5 >= - N_MAX_PIXEL_TRACK_CANDIDATES) // T5 TCs have already been added + ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES) // T5 TCs have already been added { #ifdef Warnings printf("Track Candidate excess alert! Type = pLS"); @@ -543,7 +543,7 @@ namespace SDL { unsigned int trackCandidateIdx = alpaka::atomicOp(acc, trackCandidatesInGPU.nTrackCandidates, 1u); - if (trackCandidateIdx >= N_MAX_PIXEL_TRACK_CANDIDATES) // No other TCs have been added yet + if (trackCandidateIdx >= ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES) // No other TCs have been added yet { #ifdef Warnings printf("Track Candidate excess alert! Type = pT5"); @@ -562,9 +562,9 @@ namespace SDL { 7 /*track candidate type pT5=7*/, pT5PixelIndex, pixelQuintupletsInGPU.T5Indices[pixelQuintupletIndex], - &pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex], - &pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex], - &pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex], + &pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex], + &pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex], + &pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex], segmentsInGPU.seedIdx[pT5PixelIndex - pLS_offset], __H2F(pixelQuintupletsInGPU.centerX[pixelQuintupletIndex]), __H2F(pixelQuintupletsInGPU.centerY[pixelQuintupletIndex]), diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index 08309b1f50443..9d5e16df41756 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -8,7 +8,7 @@ #include "MiniDoublet.h" #include "Hit.h" -namespace SDL { +namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { struct triplets { unsigned int* segmentIndices; uint16_t* lowerModuleIndices; //3 of them now @@ -108,12 +108,12 @@ namespace SDL { template tripletsBuffer(unsigned int maxTriplets, unsigned int nLowerModules, TDevAcc const& devAccIn, TQueue& queue) : segmentIndices_buf(allocBufWrapper(devAccIn, 2 * maxTriplets, queue)), - lowerModuleIndices_buf(allocBufWrapper(devAccIn, Params_T3::kLayers * maxTriplets, queue)), + lowerModuleIndices_buf(allocBufWrapper(devAccIn, ::SDL::Params_T3::kLayers * maxTriplets, queue)), nTriplets_buf(allocBufWrapper(devAccIn, nLowerModules, queue)), totOccupancyTriplets_buf(allocBufWrapper(devAccIn, nLowerModules, queue)), nMemoryLocations_buf(allocBufWrapper(devAccIn, 1, queue)), - logicalLayers_buf(allocBufWrapper(devAccIn, maxTriplets * Params_T3::kLayers, queue)), - hitIndices_buf(allocBufWrapper(devAccIn, maxTriplets * Params_T3::kHits, queue)), + logicalLayers_buf(allocBufWrapper(devAccIn, maxTriplets * ::SDL::Params_T3::kLayers, queue)), + hitIndices_buf(allocBufWrapper(devAccIn, maxTriplets * ::SDL::Params_T3::kHits, queue)), betaIn_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), circleRadius_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), circleCenterX_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), @@ -191,31 +191,31 @@ namespace SDL { { tripletsInGPU.segmentIndices[tripletIndex * 2] = innerSegmentIndex; tripletsInGPU.segmentIndices[tripletIndex * 2 + 1] = outerSegmentIndex; - tripletsInGPU.lowerModuleIndices[tripletIndex * Params_T3::kLayers] = innerInnerLowerModuleIndex; - tripletsInGPU.lowerModuleIndices[tripletIndex * Params_T3::kLayers + 1] = middleLowerModuleIndex; - tripletsInGPU.lowerModuleIndices[tripletIndex * Params_T3::kLayers + 2] = outerOuterLowerModuleIndex; + tripletsInGPU.lowerModuleIndices[tripletIndex * ::SDL::Params_T3::kLayers] = innerInnerLowerModuleIndex; + tripletsInGPU.lowerModuleIndices[tripletIndex * ::SDL::Params_T3::kLayers + 1] = middleLowerModuleIndex; + tripletsInGPU.lowerModuleIndices[tripletIndex * ::SDL::Params_T3::kLayers + 2] = outerOuterLowerModuleIndex; tripletsInGPU.betaIn[tripletIndex] = __F2H(betaIn); tripletsInGPU.circleRadius[tripletIndex] = circleRadius; tripletsInGPU.circleCenterX[tripletIndex] = circleCenterX; tripletsInGPU.circleCenterY[tripletIndex] = circleCenterY; - tripletsInGPU.logicalLayers[tripletIndex * Params_T3::kLayers] = + tripletsInGPU.logicalLayers[tripletIndex * ::SDL::Params_T3::kLayers] = modulesInGPU.layers[innerInnerLowerModuleIndex] + (modulesInGPU.subdets[innerInnerLowerModuleIndex] == 4) * 6; - tripletsInGPU.logicalLayers[tripletIndex * Params_T3::kLayers + 1] = + tripletsInGPU.logicalLayers[tripletIndex * ::SDL::Params_T3::kLayers + 1] = modulesInGPU.layers[middleLowerModuleIndex] + (modulesInGPU.subdets[middleLowerModuleIndex] == 4) * 6; - tripletsInGPU.logicalLayers[tripletIndex * Params_T3::kLayers + 2] = + tripletsInGPU.logicalLayers[tripletIndex * ::SDL::Params_T3::kLayers + 2] = modulesInGPU.layers[outerOuterLowerModuleIndex] + (modulesInGPU.subdets[outerOuterLowerModuleIndex] == 4) * 6; //get the hits unsigned int firstMDIndex = segmentsInGPU.mdIndices[2 * innerSegmentIndex]; unsigned int secondMDIndex = segmentsInGPU.mdIndices[2 * innerSegmentIndex + 1]; unsigned int thirdMDIndex = segmentsInGPU.mdIndices[2 * outerSegmentIndex + 1]; - tripletsInGPU.hitIndices[tripletIndex * Params_T3::kHits] = mdsInGPU.anchorHitIndices[firstMDIndex]; - tripletsInGPU.hitIndices[tripletIndex * Params_T3::kHits + 1] = mdsInGPU.outerHitIndices[firstMDIndex]; - tripletsInGPU.hitIndices[tripletIndex * Params_T3::kHits + 2] = mdsInGPU.anchorHitIndices[secondMDIndex]; - tripletsInGPU.hitIndices[tripletIndex * Params_T3::kHits + 3] = mdsInGPU.outerHitIndices[secondMDIndex]; - tripletsInGPU.hitIndices[tripletIndex * Params_T3::kHits + 4] = mdsInGPU.anchorHitIndices[thirdMDIndex]; - tripletsInGPU.hitIndices[tripletIndex * Params_T3::kHits + 5] = mdsInGPU.outerHitIndices[thirdMDIndex]; + tripletsInGPU.hitIndices[tripletIndex * ::SDL::Params_T3::kHits] = mdsInGPU.anchorHitIndices[firstMDIndex]; + tripletsInGPU.hitIndices[tripletIndex * ::SDL::Params_T3::kHits + 1] = mdsInGPU.outerHitIndices[firstMDIndex]; + tripletsInGPU.hitIndices[tripletIndex * ::SDL::Params_T3::kHits + 2] = mdsInGPU.anchorHitIndices[secondMDIndex]; + tripletsInGPU.hitIndices[tripletIndex * ::SDL::Params_T3::kHits + 3] = mdsInGPU.outerHitIndices[secondMDIndex]; + tripletsInGPU.hitIndices[tripletIndex * ::SDL::Params_T3::kHits + 4] = mdsInGPU.anchorHitIndices[thirdMDIndex]; + tripletsInGPU.hitIndices[tripletIndex * ::SDL::Params_T3::kHits + 5] = mdsInGPU.outerHitIndices[thirdMDIndex]; #ifdef CUT_VALUE_DEBUG tripletsInGPU.zOut[tripletIndex] = zOut; tripletsInGPU.rtOut[tripletIndex] = rtOut; From 64a7bf13bcb0c0a1cf2ea57c30386061d5de088d Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Wed, 17 Jul 2024 10:41:54 -0700 Subject: [PATCH 3/7] Moved more things out of the alpaka directory --- .../plugins/alpaka/LSTModulesDevESProducer.cc | 4 +- RecoTracker/LST/plugins/alpaka/LSTProducer.cc | 4 +- RecoTracker/LST/src/ES_ModulesDev.cc | 5 + RecoTracker/LST/src/alpaka/ES_ModulesDev.cc | 7 +- RecoTracker/LSTCore/interface/Constants.h | 27 ++ .../{alpaka => }/EndcapGeometryBuffer.h | 10 +- .../LSTCore/interface/{alpaka => }/LST.h | 21 +- .../interface/{alpaka => }/LSTESData.h | 28 +- .../LSTCore/interface/{alpaka => }/Module.h | 12 +- .../LSTCore/interface/alpaka/Constants.h | 51 +-- .../{alpaka/LSTESData.dev.cc => LSTESData.cc} | 36 +- .../LSTCore/src/{alpaka => }/ModuleMethods.h | 48 +-- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 208 +++++----- RecoTracker/LSTCore/src/alpaka/Event.h | 94 ++--- RecoTracker/LSTCore/src/alpaka/Hit.h | 4 +- RecoTracker/LSTCore/src/alpaka/Kernels.h | 84 ++-- RecoTracker/LSTCore/src/alpaka/LST.dev.cc | 373 +++++++++--------- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 4 +- .../LSTCore/src/alpaka/NeuralNetwork.h | 4 +- .../LSTCore/src/alpaka/NeuralNetworkWeights.h | 2 +- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 270 ++++++------- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 98 ++--- RecoTracker/LSTCore/src/alpaka/Segment.h | 8 +- .../LSTCore/src/alpaka/TrackCandidate.h | 62 +-- RecoTracker/LSTCore/src/alpaka/Triplet.h | 34 +- 25 files changed, 747 insertions(+), 751 deletions(-) create mode 100644 RecoTracker/LST/src/ES_ModulesDev.cc rename RecoTracker/LSTCore/interface/{alpaka => }/EndcapGeometryBuffer.h (82%) rename RecoTracker/LSTCore/interface/{alpaka => }/LST.h (90%) rename RecoTracker/LSTCore/interface/{alpaka => }/LSTESData.h (63%) rename RecoTracker/LSTCore/interface/{alpaka => }/Module.h (97%) rename RecoTracker/LSTCore/src/{alpaka/LSTESData.dev.cc => LSTESData.cc} (73%) rename RecoTracker/LSTCore/src/{alpaka => }/ModuleMethods.h (91%) diff --git a/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc b/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc index fb2c2235bf0bb..e4c4e7d01d629 100644 --- a/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc +++ b/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc @@ -8,8 +8,8 @@ #include "RecoTracker/Record/interface/TrackerRecoGeometryRecord.h" // LST includes -#include "RecoTracker/LSTCore/interface/alpaka/Module.h" -#include "RecoTracker/LSTCore/interface/alpaka/LST.h" +#include "RecoTracker/LSTCore/interface/Module.h" +#include "RecoTracker/LSTCore/interface/LST.h" namespace ALPAKA_ACCELERATOR_NAMESPACE { diff --git a/RecoTracker/LST/plugins/alpaka/LSTProducer.cc b/RecoTracker/LST/plugins/alpaka/LSTProducer.cc index baa521e9cec15..b93580b0a9fa9 100644 --- a/RecoTracker/LST/plugins/alpaka/LSTProducer.cc +++ b/RecoTracker/LST/plugins/alpaka/LSTProducer.cc @@ -19,7 +19,7 @@ #include "RecoTracker/Record/interface/TrackerRecoGeometryRecord.h" -#include "RecoTracker/LSTCore/interface/alpaka/LST.h" +#include "RecoTracker/LSTCore/interface/LST.h" namespace ALPAKA_ACCELERATOR_NAMESPACE { @@ -91,7 +91,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { const bool verbose_, nopLSDupClean_, tcpLSTriplets_; edm::EDPutTokenT lstOutputToken_; - SDL::LST lst_; + SDL::LST lst_; }; } // namespace ALPAKA_ACCELERATOR_NAMESPACE diff --git a/RecoTracker/LST/src/ES_ModulesDev.cc b/RecoTracker/LST/src/ES_ModulesDev.cc new file mode 100644 index 0000000000000..1c341f798246e --- /dev/null +++ b/RecoTracker/LST/src/ES_ModulesDev.cc @@ -0,0 +1,5 @@ +#include "RecoTracker/LSTCore/interface/LSTESData.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" +#include "FWCore/Utilities/interface/typelookup.h" + +TYPELOOKUP_DATA_REG(SDL::LSTESData); diff --git a/RecoTracker/LST/src/alpaka/ES_ModulesDev.cc b/RecoTracker/LST/src/alpaka/ES_ModulesDev.cc index 8545fe76f4f41..a6736c698103b 100644 --- a/RecoTracker/LST/src/alpaka/ES_ModulesDev.cc +++ b/RecoTracker/LST/src/alpaka/ES_ModulesDev.cc @@ -1,7 +1,4 @@ -#include "RecoTracker/LSTCore/interface/alpaka/LST.h" +#include "RecoTracker/LSTCore/interface/LSTESData.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/typelookup.h" -// Temporary hack: The DevHost instantiation is needed in both CPU and GPU plugins, -// whereas the (non-host-)Device instantiation only in the GPU plugin -TYPELOOKUP_DATA_REG(ALPAKA_ACCELERATOR_NAMESPACE::SDL::LSTESData); -TYPELOOKUP_ALPAKA_TEMPLATED_DATA_REG(ALPAKA_ACCELERATOR_NAMESPACE::SDL::LSTESData); +TYPELOOKUP_ALPAKA_TEMPLATED_DATA_REG(SDL::LSTESData); diff --git a/RecoTracker/LSTCore/interface/Constants.h b/RecoTracker/LSTCore/interface/Constants.h index b7e98ad32e1bc..3632297c3f9c2 100644 --- a/RecoTracker/LSTCore/interface/Constants.h +++ b/RecoTracker/LSTCore/interface/Constants.h @@ -1,9 +1,36 @@ #ifndef RecoTracker_LSTCore_interface_Constants_h #define RecoTracker_LSTCore_interface_Constants_h +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" + +#ifdef CACHE_ALLOC +#include "HeterogeneousCore/AlpakaInterface/interface/CachedBufAlloc.h" +#endif namespace SDL { + // Buffer type for allocations where auto type can't be used. + template + using Buf = alpaka::Buf; + + // Allocation wrapper function to make integration of the caching allocator easier and reduce code boilerplate. + template + ALPAKA_FN_HOST ALPAKA_FN_INLINE Buf, T> allocBufWrapper(TAcc const& devAccIn, + TSize nElements, + TQueue queue) { +#ifdef CACHE_ALLOC + return cms::alpakatools::allocCachedBuf(devAccIn, queue, alpaka_common::Vec1D(static_cast(nElements))); +#else + return alpaka::allocBuf(devAccIn, alpaka_common::Vec1D(static_cast(nElements))); +#endif + } + + // Second allocation wrapper function when queue is not given. Reduces code boilerplate. + template + ALPAKA_FN_HOST ALPAKA_FN_INLINE Buf, T> allocBufWrapper(TAcc const& devAccIn, TSize nElements) { + return alpaka::allocBuf(devAccIn, alpaka_common::Vec1D(static_cast(nElements))); + } + // If a compile time flag does not define PT_CUT, default to 0.8 (GeV) #ifndef PT_CUT constexpr float PT_CUT = 0.8f; diff --git a/RecoTracker/LSTCore/interface/alpaka/EndcapGeometryBuffer.h b/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h similarity index 82% rename from RecoTracker/LSTCore/interface/alpaka/EndcapGeometryBuffer.h rename to RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h index af03720bbd8d7..005d2a7a32d75 100644 --- a/RecoTracker/LSTCore/interface/alpaka/EndcapGeometryBuffer.h +++ b/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h @@ -1,5 +1,5 @@ -#ifndef RecoTracker_LSTCore_interface_alpaka_EndcapGeometryBuffers_h -#define RecoTracker_LSTCore_interface_alpaka_EndcapGeometryBuffers_h +#ifndef RecoTracker_LSTCore_interface_EndcapGeometryBuffers_h +#define RecoTracker_LSTCore_interface_EndcapGeometryBuffers_h #include #include @@ -9,11 +9,9 @@ #include #include -#include "HeterogeneousCore/AlpakaInterface/interface/host.h" +#include "RecoTracker/LSTCore/interface/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/Constants.h" - -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { struct EndcapGeometryDev { const unsigned int* geoMapDetId; diff --git a/RecoTracker/LSTCore/interface/alpaka/LST.h b/RecoTracker/LSTCore/interface/LST.h similarity index 90% rename from RecoTracker/LSTCore/interface/alpaka/LST.h rename to RecoTracker/LSTCore/interface/LST.h index 1f7d3cca05ccb..13aa2ec9896aa 100644 --- a/RecoTracker/LSTCore/interface/alpaka/LST.h +++ b/RecoTracker/LSTCore/interface/LST.h @@ -1,29 +1,30 @@ -#ifndef RecoTracker_LSTCore_interface_alpaka_LST_h -#define RecoTracker_LSTCore_interface_alpaka_LST_h +#ifndef RecoTracker_LSTCore_interface_LST_h +#define RecoTracker_LSTCore_interface_LST_h -#include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/LSTESData.h" +#include "RecoTracker/LSTCore/interface/Constants.h" +#include "RecoTracker/LSTCore/interface/LSTESData.h" #include #include #include #include -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { template class Event; template class LST; - template <> - class LST { + template + class LST { public: LST() = default; - void run(Queue& queue, + template + void run(TQueue& queue, bool verbose, - const LSTESData* deviceESData, + const LSTESData* deviceESData, const std::vector see_px, const std::vector see_py, const std::vector see_pz, @@ -71,7 +72,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { const std::vector ph2_y, const std::vector ph2_z); - void getOutput(SDL::Event& event); + void getOutput(SDL::Event& event); std::vector getHitIdxs(const short trackCandidateType, const unsigned int TCIdx, const unsigned int* TCHitIndices, diff --git a/RecoTracker/LSTCore/interface/alpaka/LSTESData.h b/RecoTracker/LSTCore/interface/LSTESData.h similarity index 63% rename from RecoTracker/LSTCore/interface/alpaka/LSTESData.h rename to RecoTracker/LSTCore/interface/LSTESData.h index 8a39f646a08f7..c2a0a92bb668a 100644 --- a/RecoTracker/LSTCore/interface/alpaka/LSTESData.h +++ b/RecoTracker/LSTCore/interface/LSTESData.h @@ -1,9 +1,9 @@ -#ifndef RecoTracker_LSTCore_interface_alpaka_LSTESData_h -#define RecoTracker_LSTCore_interface_alpaka_LSTESData_h +#ifndef RecoTracker_LSTCore_interface_LSTESData_h +#define RecoTracker_LSTCore_interface_LSTESData_h -#include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/EndcapGeometryBuffer.h" -#include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/Constants.h" +#include "RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h" +#include "RecoTracker/LSTCore/interface/Module.h" #include "RecoTracker/LSTCore/interface/PixelMap.h" #include "HeterogeneousCore/AlpakaInterface/interface/CopyToDevice.h" @@ -11,7 +11,7 @@ #include #include -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { template struct LSTESData { @@ -21,7 +21,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { unsigned int nEndCapMap; std::shared_ptr> modulesBuffers; std::shared_ptr> endcapGeometryBuffers; - std::shared_ptr pixelMapping; + std::shared_ptr pixelMapping; LSTESData(uint16_t const& nModulesIn, uint16_t const& nLowerModulesIn, @@ -29,7 +29,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { unsigned int const& nEndCapMapIn, std::shared_ptr> const& modulesBuffersIn, std::shared_ptr> const& endcapGeometryBuffersIn, - std::shared_ptr const& pixelMappingIn) + std::shared_ptr const& pixelMappingIn) : nModules(nModulesIn), nLowerModules(nLowerModulesIn), nPixels(nPixelsIn), @@ -45,18 +45,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { namespace cms::alpakatools { template <> - struct CopyToDevice> { + struct CopyToDevice> { template - static ALPAKA_ACCELERATOR_NAMESPACE::SDL::LSTESData> copyAsync(TQueue& queue, - ALPAKA_ACCELERATOR_NAMESPACE::SDL::LSTESData const& srcData) { - auto deviceModulesBuffers = std::make_shared>>( + static SDL::LSTESData> copyAsync(TQueue& queue, + SDL::LSTESData const& srcData) { + auto deviceModulesBuffers = std::make_shared>>( alpaka::getDev(queue), srcData.nModules, srcData.nPixels); deviceModulesBuffers->copyFromSrc(queue, *srcData.modulesBuffers); auto deviceEndcapGeometryBuffers = - std::make_shared>>(alpaka::getDev(queue), srcData.nEndCapMap); + std::make_shared>>(alpaka::getDev(queue), srcData.nEndCapMap); deviceEndcapGeometryBuffers->copyFromSrc(queue, *srcData.endcapGeometryBuffers); - return ALPAKA_ACCELERATOR_NAMESPACE::SDL::LSTESData>(srcData.nModules, + return SDL::LSTESData>(srcData.nModules, srcData.nLowerModules, srcData.nPixels, srcData.nEndCapMap, diff --git a/RecoTracker/LSTCore/interface/alpaka/Module.h b/RecoTracker/LSTCore/interface/Module.h similarity index 97% rename from RecoTracker/LSTCore/interface/alpaka/Module.h rename to RecoTracker/LSTCore/interface/Module.h index 206caeaa6d6a4..62ef8a630400a 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Module.h +++ b/RecoTracker/LSTCore/interface/Module.h @@ -1,11 +1,9 @@ -#ifndef RecoTracker_LSTCore_interface_alpaka_Module_h -#define RecoTracker_LSTCore_interface_alpaka_Module_h +#ifndef RecoTracker_LSTCore_interface_Module_h +#define RecoTracker_LSTCore_interface_Module_h -#include +#include "RecoTracker/LSTCore/interface/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/Constants.h" - -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { enum SubDet { InnerPixel = 0, Barrel = 5, Endcap = 4 }; enum Side { NegZ = 1, PosZ = 2, Center = 3 }; @@ -286,7 +284,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { modulesBuffer(TDev const& dev, unsigned int nMod, unsigned int nPixs) : detIds_buf(allocBufWrapper(dev, nMod)), - moduleMap_buf(allocBufWrapper(dev, nMod * ::SDL::MAX_CONNECTED_MODULES)), + moduleMap_buf(allocBufWrapper(dev, nMod * MAX_CONNECTED_MODULES)), mapdetId_buf(allocBufWrapper(dev, nMod)), mapIdx_buf(allocBufWrapper(dev, nMod)), nConnectedModules_buf(allocBufWrapper(dev, nMod)), diff --git a/RecoTracker/LSTCore/interface/alpaka/Constants.h b/RecoTracker/LSTCore/interface/alpaka/Constants.h index 239a564584fbc..e5189914d4c4d 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Constants.h +++ b/RecoTracker/LSTCore/interface/alpaka/Constants.h @@ -1,20 +1,13 @@ #ifndef RecoTracker_LSTCore_interface_alpaka_Constants_h #define RecoTracker_LSTCore_interface_alpaka_Constants_h -#include - #include "RecoTracker/LSTCore/interface/Constants.h" -#include "HeterogeneousCore/AlpakaInterface/interface/config.h" - -#ifdef CACHE_ALLOC -#include "HeterogeneousCore/AlpakaInterface/interface/CachedBufAlloc.h" -#endif #ifdef ALPAKA_ACC_GPU_CUDA_ENABLED #include #endif -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { // Half precision wrapper functions. #if defined(FP16_Base) #define __F2H __float2half @@ -26,7 +19,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { typedef float FPX; #endif - alpaka_common::Vec3D const elementsPerThread(alpaka_common::Vec3D::all(static_cast(1))); + alpaka_common::Vec3D const elementsPerThread(alpaka_common::Vec3D::all(static_cast(1))); // Needed for files that are compiled by g++ to not throw an error. // uint4 is defined only for CUDA, so we will have to revisit this soon when running on other backends. @@ -39,36 +32,14 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { }; #endif - // Buffer type for allocations where auto type can't be used. - template - using Buf = alpaka::Buf; - - // Allocation wrapper function to make integration of the caching allocator easier and reduce code boilerplate. - template - ALPAKA_FN_HOST ALPAKA_FN_INLINE Buf, T> allocBufWrapper(TAcc const& devAccIn, - TSize nElements, - TQueue queue) { -#ifdef CACHE_ALLOC - return cms::alpakatools::allocCachedBuf(devAccIn, queue, Vec1D(static_cast(nElements))); -#else - return alpaka::allocBuf(devAccIn, Vec1D(static_cast(nElements))); -#endif - } - - // Second allocation wrapper function when queue is not given. Reduces code boilerplate. - template - ALPAKA_FN_HOST ALPAKA_FN_INLINE Buf, T> allocBufWrapper(TAcc const& devAccIn, TSize nElements) { - return alpaka::allocBuf(devAccIn, Vec1D(static_cast(nElements))); - } - // Wrapper function to reduce code boilerplate for defining grid/block sizes. ALPAKA_FN_HOST ALPAKA_FN_INLINE alpaka_common::Vec3D createVec(int x, int y, int z) { - return alpaka_common::Vec3D(static_cast(x), static_cast(y), static_cast(z)); + return alpaka_common::Vec3D(static_cast(x), static_cast(y), static_cast(z)); } // Adjust grid and block sizes based on backend configuration template - ALPAKA_FN_HOST ALPAKA_FN_INLINE WorkDiv3D createWorkDiv(const Vec& blocksPerGrid, + ALPAKA_FN_HOST ALPAKA_FN_INLINE alpaka_common::WorkDiv3D createWorkDiv(const Vec& blocksPerGrid, const Vec& threadsPerBlock, const Vec& elementsPerThreadArg) { Vec adjustedBlocks = blocksPerGrid; @@ -76,16 +47,16 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { // Serial execution, so all launch parameters set to 1. #if defined(ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLED) - adjustedBlocks = Vec::all(static_cast(1)); - adjustedThreads = Vec::all(static_cast(1)); + adjustedBlocks = Vec::all(static_cast(1)); + adjustedThreads = Vec::all(static_cast(1)); #endif // Threads enabled, set number of blocks to 1. #if defined(ALPAKA_ACC_CPU_B_SEQ_T_THREADS_ENABLED) - adjustedBlocks = Vec::all(static_cast(1)); + adjustedBlocks = Vec::all(static_cast(1)); #endif - return WorkDiv3D(adjustedBlocks, adjustedThreads, elementsPerThreadArg); + return alpaka_common::WorkDiv3D(adjustedBlocks, adjustedThreads, elementsPerThreadArg); } // 15 MeV constant from the approximate Bethe-Bloch formula @@ -100,11 +71,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float k2Rinv1GeVf = (2.99792458e-3 * 3.8) / 2; ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kR1GeVf = 1. / (2.99792458e-3 * 3.8); ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float sinAlphaMax = 0.95; -#ifdef PT_CUT ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float ptCut = PT_CUT; -#else - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float ptCut = ::SDL::PT_CUT; -#endif ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float deltaZLum = 15.0; ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float pixelPSZpitch = 0.15; ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float stripPSZpitch = 2.4; @@ -117,7 +84,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float SDL_INF = 123456789.0; } //namespace SDL -namespace ALPAKA_ACCELERATOR_NAMESPACE::T5DNN { +namespace T5DNN { // Working points matching LST fake rate (43.9%) or signal acceptance (82.0%) ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float LSTWP1 = 0.3418833f; // 94.0% TPR, 43.9% FPR ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float LSTWP2 = 0.6177366f; // 82.0% TPR, 20.0% FPR diff --git a/RecoTracker/LSTCore/src/alpaka/LSTESData.dev.cc b/RecoTracker/LSTCore/src/LSTESData.cc similarity index 73% rename from RecoTracker/LSTCore/src/alpaka/LSTESData.dev.cc rename to RecoTracker/LSTCore/src/LSTESData.cc index e22572ecf071d..1950b43259a64 100644 --- a/RecoTracker/LSTCore/src/alpaka/LSTESData.dev.cc +++ b/RecoTracker/LSTCore/src/LSTESData.cc @@ -1,4 +1,4 @@ -#include "RecoTracker/LSTCore/interface/alpaka/LSTESData.h" +#include "RecoTracker/LSTCore/interface/LSTESData.h" #include "RecoTracker/LSTCore/interface/EndcapGeometry.h" #include "RecoTracker/LSTCore/interface/ModuleConnectionMap.h" #include "RecoTracker/LSTCore/interface/TiltedGeometry.h" @@ -6,8 +6,6 @@ #include "ModuleMethods.h" -using namespace ALPAKA_ACCELERATOR_NAMESPACE; - namespace { std::string trackLooperDir() { const char* path_lst_base = std::getenv("LST_BASE"); @@ -41,10 +39,10 @@ namespace { return fullpath.string(); } - void loadMapsHost(::SDL::MapPLStoLayer& pLStoLayer, - std::shared_ptr<::SDL::EndcapGeometry> endcapGeometry, - std::shared_ptr<::SDL::TiltedGeometry> tiltedGeometry, - std::shared_ptr<::SDL::ModuleConnectionMap> moduleConnectionMap) { + void loadMapsHost(SDL::MapPLStoLayer& pLStoLayer, + std::shared_ptr endcapGeometry, + std::shared_ptr tiltedGeometry, + std::shared_ptr moduleConnectionMap) { // Module orientation information (DrDz or phi angles) auto endcap_geom = get_absolute_path_after_check_file_exists(trackLooperDir() + "/data/OT800_IT615_pt0.8/endcap_orientation.bin"); @@ -68,31 +66,31 @@ namespace { auto connectData = connects[i].data(); path = pLSMapDir + connectData + ".bin"; - pLStoLayer[0][i] = ::SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); + pLStoLayer[0][i] = SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); path = pLSMapDir + "_pos" + connectData + ".bin"; - pLStoLayer[1][i] = ::SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); + pLStoLayer[1][i] = SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); path = pLSMapDir + "_neg" + connectData + ".bin"; - pLStoLayer[2][i] = ::SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); + pLStoLayer[2][i] = SDL::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); } } } // namespace -std::unique_ptr> ALPAKA_ACCELERATOR_NAMESPACE::SDL::loadAndFillESHost() { +std::unique_ptr> SDL::loadAndFillESHost() { uint16_t nModules; uint16_t nLowerModules; unsigned int nPixels; - std::shared_ptr> modulesBuffers = nullptr; - auto pLStoLayer = std::make_shared<::SDL::MapPLStoLayer>(); - auto endcapGeometry = std::make_shared<::SDL::EndcapGeometry>(); - auto tiltedGeometry = std::make_shared<::SDL::TiltedGeometry>(); - auto pixelMapping = std::make_shared<::SDL::pixelMap>(); - auto moduleConnectionMap = std::make_shared<::SDL::ModuleConnectionMap>(); + std::shared_ptr> modulesBuffers = nullptr; + auto pLStoLayer = std::make_shared(); + auto endcapGeometry = std::make_shared(); + auto tiltedGeometry = std::make_shared(); + auto pixelMapping = std::make_shared(); + auto moduleConnectionMap = std::make_shared(); ::loadMapsHost(*pLStoLayer, endcapGeometry, tiltedGeometry, moduleConnectionMap); auto endcapGeometryBuffers = - std::make_shared>(cms::alpakatools::host(), endcapGeometry->nEndCapMap); + std::make_shared>(cms::alpakatools::host(), endcapGeometry->nEndCapMap); alpaka::QueueCpuBlocking queue(cms::alpakatools::host()); alpaka::memcpy( queue, endcapGeometryBuffers->geoMapDetId_buf, endcapGeometry->geoMapDetId_buf, endcapGeometry->nEndCapMap); @@ -111,6 +109,6 @@ std::unique_ptr> ALPAKA_AC endcapGeometry.get(), tiltedGeometry.get(), moduleConnectionMap.get()); - return std::make_unique>( + return std::make_unique>( nModules, nLowerModules, nPixels, endcapGeometry->nEndCapMap, modulesBuffers, endcapGeometryBuffers, pixelMapping); } diff --git a/RecoTracker/LSTCore/src/alpaka/ModuleMethods.h b/RecoTracker/LSTCore/src/ModuleMethods.h similarity index 91% rename from RecoTracker/LSTCore/src/alpaka/ModuleMethods.h rename to RecoTracker/LSTCore/src/ModuleMethods.h index 419e21a0f09b7..fe333e7598a8e 100644 --- a/RecoTracker/LSTCore/src/alpaka/ModuleMethods.h +++ b/RecoTracker/LSTCore/src/ModuleMethods.h @@ -4,8 +4,8 @@ #include #include -#include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/Constants.h" +#include "RecoTracker/LSTCore/interface/Module.h" #include "RecoTracker/LSTCore/interface/TiltedGeometry.h" #include "RecoTracker/LSTCore/interface/EndcapGeometry.h" #include "RecoTracker/LSTCore/interface/ModuleConnectionMap.h" @@ -13,7 +13,7 @@ #include "HeterogeneousCore/AlpakaInterface/interface/host.h" -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { struct ModuleMetaData { std::map detIdToIndex; std::map module_x; @@ -24,12 +24,12 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { }; template - inline void fillPixelMap(std::shared_ptr>& modulesBuf, + inline void fillPixelMap(std::shared_ptr>& modulesBuf, uint16_t nModules, unsigned int& nPixels, - ::SDL::pixelMap& pixelMapping, + pixelMap& pixelMapping, TQueue queue, - const ::SDL::MapPLStoLayer& pLStoLayer, + const MapPLStoLayer& pLStoLayer, struct ModuleMetaData& mmd) { pixelMapping.pixelModuleIndex = mmd.detIdToIndex[1]; @@ -40,11 +40,11 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { unsigned int totalSizes = 0; unsigned int totalSizes_pos = 0; unsigned int totalSizes_neg = 0; - for (unsigned int isuperbin = 0; isuperbin < ::SDL::size_superbins; isuperbin++) { + for (unsigned int isuperbin = 0; isuperbin < size_superbins; isuperbin++) { int sizes = 0; for (auto const& mCM_pLS : pLStoLayer[0]) { std::vector connectedModuleDetIds_pLS = - mCM_pLS.getConnectedModuleDetIds(isuperbin + ::SDL::size_superbins); + mCM_pLS.getConnectedModuleDetIds(isuperbin + size_superbins); connectedModuleDetIds.insert( connectedModuleDetIds.end(), connectedModuleDetIds_pLS.begin(), connectedModuleDetIds_pLS.end()); sizes += connectedModuleDetIds_pLS.size(); @@ -82,9 +82,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { nPixels = connectedPix_size; // Now we can initialize modulesBuf - DevHost const& devHost = cms::alpakatools::host(); + alpaka_common::DevHost const& devHost = cms::alpakatools::host(); if (modulesBuf == nullptr) { - modulesBuf = std::make_shared>(devHost, nModules, nPixels); + modulesBuf = std::make_shared>(devHost, nModules, nPixels); } auto connectedPixels_buf = allocBufWrapper(devHost, connectedPix_size); @@ -109,9 +109,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { unsigned int nMod, TQueue queue, struct ModuleMetaData& mmd, - const ::SDL::ModuleConnectionMap* moduleConnectionMap) { - DevHost const& devHost = cms::alpakatools::host(); - auto moduleMap_buf = allocBufWrapper(devHost, nMod * ::SDL::MAX_CONNECTED_MODULES); + const ModuleConnectionMap* moduleConnectionMap) { + alpaka_common::DevHost const& devHost = cms::alpakatools::host(); + auto moduleMap_buf = allocBufWrapper(devHost, nMod * MAX_CONNECTED_MODULES); uint16_t* moduleMap = alpaka::getPtrNative(moduleMap_buf); auto nConnectedModules_buf = allocBufWrapper(devHost, nMod); @@ -123,7 +123,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { auto& connectedModules = moduleConnectionMap->getConnectedModuleDetIds(detId); nConnectedModules[index] = connectedModules.size(); for (uint16_t i = 0; i < nConnectedModules[index]; i++) { - moduleMap[index * ::SDL::MAX_CONNECTED_MODULES + i] = mmd.detIdToIndex[connectedModules[i]]; + moduleMap[index * MAX_CONNECTED_MODULES + i] = mmd.detIdToIndex[connectedModules[i]]; } } @@ -137,7 +137,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { unsigned int nMod, TQueue queue, struct ModuleMetaData& mmd) { - DevHost const& devHost = cms::alpakatools::host(); + alpaka_common::DevHost const& devHost = cms::alpakatools::host(); auto mapIdx_buf = allocBufWrapper(devHost, nMod); uint16_t* mapIdx = alpaka::getPtrNative(mapIdx_buf); @@ -218,21 +218,21 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { nModules = counter; }; - inline void loadModulesFromFile(const ::SDL::MapPLStoLayer* pLStoLayer, + inline void loadModulesFromFile(const MapPLStoLayer* pLStoLayer, const char* moduleMetaDataFilePath, uint16_t& nModules, uint16_t& nLowerModules, unsigned int& nPixels, - std::shared_ptr>& modulesBuf, - ::SDL::pixelMap* pixelMapping, - const ::SDL::EndcapGeometry* endcapGeometry, - const ::SDL::TiltedGeometry* tiltedGeometry, - const ::SDL::ModuleConnectionMap* moduleConnectionMap) { + std::shared_ptr>& modulesBuf, + pixelMap* pixelMapping, + const EndcapGeometry* endcapGeometry, + const TiltedGeometry* tiltedGeometry, + const ModuleConnectionMap* moduleConnectionMap) { ModuleMetaData mmd; loadCentroidsFromFile(moduleMetaDataFilePath, mmd, nModules); - DevHost const& devHost = cms::alpakatools::host(); + alpaka_common::DevHost const& devHost = cms::alpakatools::host(); auto detIds_buf = allocBufWrapper(devHost, nModules); auto layers_buf = allocBufWrapper(devHost, nModules); auto rings_buf = allocBufWrapper(devHost, nModules); @@ -378,10 +378,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { // modulesBuf is initialized in fillPixelMap since both nModules and nPix will be known fillPixelMap(modulesBuf, nModules, nPixels, *pixelMapping, queue, *pLStoLayer, mmd); - auto src_view_nModules = alpaka::createView(devHost, &nModules, (Idx)1u); + auto src_view_nModules = alpaka::createView(devHost, &nModules, (alpaka_common::Idx)1u); alpaka::memcpy(queue, modulesBuf->nModules_buf, src_view_nModules); - auto src_view_nLowerModules = alpaka::createView(devHost, &nLowerModules, (Idx)1u); + auto src_view_nLowerModules = alpaka::createView(devHost, &nLowerModules, (alpaka_common::Idx)1u); alpaka::memcpy(queue, modulesBuf->nLowerModules_buf, src_view_nLowerModules); alpaka::memcpy(queue, modulesBuf->moduleType_buf, moduleType_buf); diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index 2d0d2551eeb2d..462b7ea85f54e 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc @@ -2,7 +2,7 @@ using namespace ALPAKA_ACCELERATOR_NAMESPACE; -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::init(bool verbose) { +void SDL::Event::init(bool verbose) { addObjects = verbose; hitsInGPU = nullptr; mdsInGPU = nullptr; @@ -44,7 +44,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::init(bool verbose) { } } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::resetEvent() { +void SDL::Event::resetEvent() { //reset the arrays for (int i = 0; i < 6; i++) { n_hits_by_layer_barrel_[i] = 0; @@ -150,7 +150,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::resetEvent() { } } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addHitToEvent(std::vector x, +void SDL::Event::addHitToEvent(std::vector x, std::vector y, std::vector z, std::vector detId, @@ -184,7 +184,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addHitToEvent(std::vector< alpaka::wait(queue); Vec3D const threadsPerBlock1 = createVec(1, 1, 256); - Vec3D const blocksPerGrid1 = createVec(1, 1, ::SDL::MAX_BLOCKS); + Vec3D const blocksPerGrid1 = createVec(1, 1, MAX_BLOCKS); WorkDiv3D const hit_loop_workdiv = createWorkDiv(blocksPerGrid1, threadsPerBlock1, elementsPerThread); hitLoopKernel hit_loop_kernel; @@ -203,7 +203,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addHitToEvent(std::vector< alpaka::enqueue(queue, hit_loop_task); Vec3D const threadsPerBlock2 = createVec(1, 1, 256); - Vec3D const blocksPerGrid2 = createVec(1, 1, ::SDL::MAX_BLOCKS); + Vec3D const blocksPerGrid2 = createVec(1, 1, MAX_BLOCKS); WorkDiv3D const module_ranges_workdiv = createWorkDiv(blocksPerGrid2, threadsPerBlock2, elementsPerThread); moduleRangesKernel module_ranges_kernel; @@ -216,7 +216,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addHitToEvent(std::vector< alpaka::enqueue(queue, module_ranges_task); } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addPixelSegmentToEvent(std::vector hitIndices0, +void SDL::Event::addPixelSegmentToEvent(std::vector hitIndices0, std::vector hitIndices1, std::vector hitIndices2, std::vector hitIndices3, @@ -236,13 +236,13 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addPixelSegmentToEvent(std std::vector isQuad) { unsigned int size = ptIn.size(); - if (size > ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE) { + if (size > N_MAX_PIXEL_SEGMENTS_PER_MODULE) { printf( "*********************************************************\n" "* Warning: Pixel line segments will be truncated. *\n" "* You need to increase N_MAX_PIXEL_SEGMENTS_PER_MODULE. *\n" "*********************************************************\n"); - size = ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE; + size = N_MAX_PIXEL_SEGMENTS_PER_MODULE; } unsigned int mdSize = 2 * size; @@ -254,7 +254,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addPixelSegmentToEvent(std alpaka::createSubView(rangesBuffers->miniDoubletModuleOccupancy_buf, (Idx)1u, (Idx)nLowerModules_); // Create a source view for the value to be set - int value = ::SDL::N_MAX_PIXEL_MD_PER_MODULES; + int value = N_MAX_PIXEL_MD_PER_MODULES; auto src_view_value = alpaka::createView(devHost, &value, (Idx)1u); alpaka::memcpy(queue, dst_view_miniDoubletModuleOccupancy, src_view_value); @@ -278,7 +278,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addPixelSegmentToEvent(std alpaka::memcpy(queue, nTotalMDs_view, rangesBuffers->device_nTotalMDs_buf); alpaka::wait(queue); - nTotalMDs += ::SDL::N_MAX_PIXEL_MD_PER_MODULES; + nTotalMDs += N_MAX_PIXEL_MD_PER_MODULES; mdsInGPU = new SDL::miniDoublets(); miniDoubletsBuffers = new SDL::miniDoubletsBuffer(nTotalMDs, nLowerModules_, devAcc, queue); @@ -311,11 +311,11 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addPixelSegmentToEvent(std alpaka::memcpy(queue, nTotalSegments_view, rangesBuffers->device_nTotalSegs_buf); alpaka::wait(queue); - nTotalSegments += ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE; + nTotalSegments += N_MAX_PIXEL_SEGMENTS_PER_MODULE; segmentsInGPU = new SDL::segments(); segmentsBuffers = - new SDL::segmentsBuffer(nTotalSegments, nLowerModules_, ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); + new SDL::segmentsBuffer(nTotalSegments, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); segmentsInGPU->setData(*segmentsBuffers); alpaka::memcpy(queue, segmentsBuffers->nMemoryLocations_buf, nTotalSegments_view); @@ -369,7 +369,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addPixelSegmentToEvent(std alpaka::wait(queue); Vec3D const threadsPerBlock = createVec(1, 1, 256); - Vec3D const blocksPerGrid = createVec(1, 1, ::SDL::MAX_BLOCKS); + Vec3D const blocksPerGrid = createVec(1, 1, MAX_BLOCKS); WorkDiv3D const addPixelSegmentToEvent_workdiv = createWorkDiv(blocksPerGrid, threadsPerBlock, elementsPerThread); addPixelSegmentToEventKernel addPixelSegmentToEvent_kernel; @@ -392,13 +392,13 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addPixelSegmentToEvent(std alpaka::wait(queue); } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createMiniDoublets() { +void SDL::Event::createMiniDoublets() { // Create a view for the element nLowerModules_ inside rangesBuffers->miniDoubletModuleOccupancy auto dst_view_miniDoubletModuleOccupancy = alpaka::createSubView(rangesBuffers->miniDoubletModuleOccupancy_buf, (Idx)1u, (Idx)nLowerModules_); // Create a source view for the value to be set - int value = ::SDL::N_MAX_PIXEL_MD_PER_MODULES; + int value = N_MAX_PIXEL_MD_PER_MODULES; auto src_view_value = alpaka::createView(devHost, &value, (Idx)1u); alpaka::memcpy(queue, dst_view_miniDoubletModuleOccupancy, src_view_value); @@ -423,7 +423,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createMiniDoublets() { unsigned int nTotalMDs = *alpaka::getPtrNative(nTotalMDs_buf); - nTotalMDs += ::SDL::N_MAX_PIXEL_MD_PER_MODULES; + nTotalMDs += N_MAX_PIXEL_MD_PER_MODULES; if (mdsInGPU == nullptr) { mdsInGPU = new SDL::miniDoublets(); @@ -468,11 +468,11 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createMiniDoublets() { } } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createSegmentsWithModuleMap() { +void SDL::Event::createSegmentsWithModuleMap() { if (segmentsInGPU == nullptr) { segmentsInGPU = new SDL::segments(); segmentsBuffers = - new SDL::segmentsBuffer(nTotalSegments, nLowerModules_, ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); + new SDL::segmentsBuffer(nTotalSegments, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); segmentsInGPU->setData(*segmentsBuffers); } @@ -511,7 +511,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createSegmentsWithModuleMa } } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createTriplets() { +void SDL::Event::createTriplets() { if (tripletsInGPU == nullptr) { Vec3D const threadsPerBlockCreateTrip = createVec(1, 1, 1024); Vec3D const blocksPerGridCreateTrip = createVec(1, 1, 1); @@ -582,7 +582,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createTriplets() { alpaka::wait(queue); Vec3D const threadsPerBlockCreateTrip = createVec(1, 16, 16); - Vec3D const blocksPerGridCreateTrip = createVec(::SDL::MAX_BLOCKS, 1, 1); + Vec3D const blocksPerGridCreateTrip = createVec(MAX_BLOCKS, 1, 1); WorkDiv3D const createTripletsInGPUv2_workDiv = createWorkDiv(blocksPerGridCreateTrip, threadsPerBlockCreateTrip, elementsPerThread); @@ -619,11 +619,11 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createTriplets() { } } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_triplets) { +void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_triplets) { if (trackCandidatesInGPU == nullptr) { trackCandidatesInGPU = new SDL::trackCandidates(); trackCandidatesBuffers = new SDL::trackCandidatesBuffer( - ::SDL::N_MAX_NONPIXEL_TRACK_CANDIDATES + ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES, devAcc, queue); + N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devAcc, queue); trackCandidatesInGPU->setData(*trackCandidatesBuffers); } @@ -681,7 +681,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createTrackCandidates(bool alpaka::enqueue(queue, removeDupQuintupletsInGPUBeforeTCTask); Vec3D const threadsPerBlock_crossCleanT5 = createVec(32, 1, 32); - Vec3D const blocksPerGrid_crossCleanT5 = createVec((13296 / 32) + 1, 1, ::SDL::MAX_BLOCKS); + Vec3D const blocksPerGrid_crossCleanT5 = createVec((13296 / 32) + 1, 1, MAX_BLOCKS); WorkDiv3D const crossCleanT5_workDiv = createWorkDiv(blocksPerGrid_crossCleanT5, threadsPerBlock_crossCleanT5, elementsPerThread); @@ -713,7 +713,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createTrackCandidates(bool if (!no_pls_dupclean) { Vec3D const threadsPerBlockCheckHitspLS = createVec(1, 16, 16); - Vec3D const blocksPerGridCheckHitspLS = createVec(1, ::SDL::MAX_BLOCKS * 4, ::SDL::MAX_BLOCKS / 4); + Vec3D const blocksPerGridCheckHitspLS = createVec(1, MAX_BLOCKS * 4, MAX_BLOCKS / 4); WorkDiv3D const checkHitspLS_workDiv = createWorkDiv(blocksPerGridCheckHitspLS, threadsPerBlockCheckHitspLS, elementsPerThread); @@ -744,7 +744,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createTrackCandidates(bool alpaka::enqueue(queue, crossCleanpLSTask); Vec3D const threadsPerBlock_addpLSasTrackCandidateInGPU = createVec(1, 1, 384); - Vec3D const blocksPerGrid_addpLSasTrackCandidateInGPU = createVec(1, 1, ::SDL::MAX_BLOCKS); + Vec3D const blocksPerGrid_addpLSasTrackCandidateInGPU = createVec(1, 1, MAX_BLOCKS); WorkDiv3D const addpLSasTrackCandidateInGPU_workDiv = createWorkDiv( blocksPerGrid_addpLSasTrackCandidateInGPU, threadsPerBlock_addpLSasTrackCandidateInGPU, elementsPerThread); @@ -758,7 +758,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createTrackCandidates(bool alpaka::enqueue(queue, addpLSasTrackCandidateInGPUTask); - // Check if either ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES or ::SDL::N_MAX_NONPIXEL_TRACK_CANDIDATES was reached + // Check if either N_MAX_PIXEL_TRACK_CANDIDATES or N_MAX_NONPIXEL_TRACK_CANDIDATES was reached auto nTrackCanpT5Host_buf = allocBufWrapper(devHost, 1, queue); auto nTrackCanpT3Host_buf = allocBufWrapper(devHost, 1, queue); auto nTrackCanpLSHost_buf = allocBufWrapper(devHost, 1, queue); @@ -773,8 +773,8 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createTrackCandidates(bool int nTrackCandidatespT3 = *alpaka::getPtrNative(nTrackCanpT3Host_buf); int nTrackCandidatespLS = *alpaka::getPtrNative(nTrackCanpLSHost_buf); int nTrackCandidatesT5 = *alpaka::getPtrNative(nTrackCanT5Host_buf); - if ((nTrackCandidatespT5 + nTrackCandidatespT3 + nTrackCandidatespLS == ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES) || - (nTrackCandidatesT5 == ::SDL::N_MAX_NONPIXEL_TRACK_CANDIDATES)) { + if ((nTrackCandidatespT5 + nTrackCandidatespT3 + nTrackCandidatespLS == N_MAX_PIXEL_TRACK_CANDIDATES) || + (nTrackCandidatesT5 == N_MAX_NONPIXEL_TRACK_CANDIDATES)) { printf( "****************************************************************************************************\n" "* Warning: Track candidates were possibly truncated. *\n" @@ -784,10 +784,10 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createTrackCandidates(bool } } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createPixelTriplets() { +void SDL::Event::createPixelTriplets() { if (pixelTripletsInGPU == nullptr) { pixelTripletsInGPU = new SDL::pixelTriplets(); - pixelTripletsBuffers = new SDL::pixelTripletsBuffer(::SDL::N_MAX_PIXEL_TRIPLETS, devAcc, queue); + pixelTripletsBuffers = new SDL::pixelTripletsBuffer(N_MAX_PIXEL_TRIPLETS, devAcc, queue); pixelTripletsInGPU->setData(*pixelTripletsBuffers); } @@ -799,8 +799,8 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createPixelTriplets() { alpaka::memcpy(queue, nInnerSegments_src_view, dev_view_nSegments); alpaka::wait(queue); - auto superbins_buf = allocBufWrapper(devHost, ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); - auto pixelTypes_buf = allocBufWrapper(devHost, ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); + auto superbins_buf = allocBufWrapper(devHost, N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); + auto pixelTypes_buf = allocBufWrapper(devHost, N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); alpaka::memcpy(queue, superbins_buf, segmentsBuffers->superbin_buf); alpaka::memcpy(queue, pixelTypes_buf, segmentsBuffers->pixelType_buf); @@ -818,16 +818,16 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createPixelTriplets() { alpaka::wait(queue); int pixelIndexOffsetPos = - pixelMapping_->connectedPixelsIndex[::SDL::size_superbins - 1] + pixelMapping_->connectedPixelsSizes[::SDL::size_superbins - 1]; - int pixelIndexOffsetNeg = pixelMapping_->connectedPixelsIndexPos[::SDL::size_superbins - 1] + - pixelMapping_->connectedPixelsSizesPos[::SDL::size_superbins - 1] + pixelIndexOffsetPos; + pixelMapping_->connectedPixelsIndex[size_superbins - 1] + pixelMapping_->connectedPixelsSizes[size_superbins - 1]; + int pixelIndexOffsetNeg = pixelMapping_->connectedPixelsIndexPos[size_superbins - 1] + + pixelMapping_->connectedPixelsSizesPos[size_superbins - 1] + pixelIndexOffsetPos; // TODO: check if a map/reduction to just eligible pLSs would speed up the kernel // the current selection still leaves a significant fraction of unmatchable pLSs for (unsigned int i = 0; i < nInnerSegments; i++) { // loop over # pLS int8_t pixelType = pixelTypes[i]; // Get pixel type for this pLS int superbin = superbins[i]; // Get superbin for this pixel - if ((superbin < 0) or (superbin >= (int)::SDL::size_superbins) or (pixelType > 2) or (pixelType < 0)) { + if ((superbin < 0) or (superbin >= (int)size_superbins) or (pixelType > 2) or (pixelType < 0)) { connectedPixelSize_host[i] = 0; connectedPixelIndex_host[i] = 0; continue; @@ -903,7 +903,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createPixelTriplets() { alpaka::wait(queue); } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createQuintuplets() { +void SDL::Event::createQuintuplets() { Vec3D const threadsPerBlockCreateQuints = createVec(1, 1, 1024); Vec3D const blocksPerGridCreateQuints = createVec(1, 1, 1); WorkDiv3D const createEligibleModulesListForQuintupletsGPU_workDiv = @@ -958,7 +958,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createQuintuplets() { alpaka::enqueue(queue, createQuintupletsInGPUv2Task); Vec3D const threadsPerBlockDupQuint = createVec(1, 16, 16); - Vec3D const blocksPerGridDupQuint = createVec(::SDL::MAX_BLOCKS, 1, 1); + Vec3D const blocksPerGridDupQuint = createVec(MAX_BLOCKS, 1, 1); WorkDiv3D const removeDupQuintupletsInGPUAfterBuild_workDiv = createWorkDiv(blocksPerGridDupQuint, threadsPerBlockDupQuint, elementsPerThread); @@ -993,10 +993,10 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createQuintuplets() { } } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::pixelLineSegmentCleaning(bool no_pls_dupclean) { +void SDL::Event::pixelLineSegmentCleaning(bool no_pls_dupclean) { if (!no_pls_dupclean) { Vec3D const threadsPerBlockCheckHitspLS = createVec(1, 16, 16); - Vec3D const blocksPerGridCheckHitspLS = createVec(1, ::SDL::MAX_BLOCKS * 4, ::SDL::MAX_BLOCKS / 4); + Vec3D const blocksPerGridCheckHitspLS = createVec(1, MAX_BLOCKS * 4, MAX_BLOCKS / 4); WorkDiv3D const checkHitspLS_workDiv = createWorkDiv(blocksPerGridCheckHitspLS, threadsPerBlockCheckHitspLS, elementsPerThread); @@ -1009,16 +1009,16 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::pixelLineSegmentCleaning(b } } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createPixelQuintuplets() { +void SDL::Event::createPixelQuintuplets() { if (pixelQuintupletsInGPU == nullptr) { pixelQuintupletsInGPU = new SDL::pixelQuintuplets(); - pixelQuintupletsBuffers = new SDL::pixelQuintupletsBuffer(::SDL::N_MAX_PIXEL_QUINTUPLETS, devAcc, queue); + pixelQuintupletsBuffers = new SDL::pixelQuintupletsBuffer(N_MAX_PIXEL_QUINTUPLETS, devAcc, queue); pixelQuintupletsInGPU->setData(*pixelQuintupletsBuffers); } if (trackCandidatesInGPU == nullptr) { trackCandidatesInGPU = new SDL::trackCandidates(); trackCandidatesBuffers = new SDL::trackCandidatesBuffer( - ::SDL::N_MAX_NONPIXEL_TRACK_CANDIDATES + ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES, devAcc, queue); + N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devAcc, queue); trackCandidatesInGPU->setData(*trackCandidatesBuffers); } @@ -1031,8 +1031,8 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createPixelQuintuplets() { alpaka::memcpy(queue, nInnerSegments_src_view, dev_view_nSegments); alpaka::wait(queue); - auto superbins_buf = allocBufWrapper(devHost, ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); - auto pixelTypes_buf = allocBufWrapper(devHost, ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); + auto superbins_buf = allocBufWrapper(devHost, N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); + auto pixelTypes_buf = allocBufWrapper(devHost, N_MAX_PIXEL_SEGMENTS_PER_MODULE, queue); alpaka::memcpy(queue, superbins_buf, segmentsBuffers->superbin_buf); alpaka::memcpy(queue, pixelTypes_buf, segmentsBuffers->pixelType_buf); @@ -1050,15 +1050,15 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createPixelQuintuplets() { alpaka::wait(queue); int pixelIndexOffsetPos = - pixelMapping_->connectedPixelsIndex[::SDL::size_superbins - 1] + pixelMapping_->connectedPixelsSizes[::SDL::size_superbins - 1]; - int pixelIndexOffsetNeg = pixelMapping_->connectedPixelsIndexPos[::SDL::size_superbins - 1] + - pixelMapping_->connectedPixelsSizesPos[::SDL::size_superbins - 1] + pixelIndexOffsetPos; + pixelMapping_->connectedPixelsIndex[size_superbins - 1] + pixelMapping_->connectedPixelsSizes[size_superbins - 1]; + int pixelIndexOffsetNeg = pixelMapping_->connectedPixelsIndexPos[size_superbins - 1] + + pixelMapping_->connectedPixelsSizesPos[size_superbins - 1] + pixelIndexOffsetPos; // Loop over # pLS for (unsigned int i = 0; i < nInnerSegments; i++) { int8_t pixelType = pixelTypes[i]; // Get pixel type for this pLS int superbin = superbins[i]; // Get superbin for this pixel - if ((superbin < 0) or (superbin >= (int)::SDL::size_superbins) or (pixelType > 2) or (pixelType < 0)) { + if ((superbin < 0) or (superbin >= (int)size_superbins) or (pixelType > 2) or (pixelType < 0)) { connectedPixelIndex_host[i] = 0; connectedPixelSize_host[i] = 0; continue; @@ -1087,7 +1087,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createPixelQuintuplets() { alpaka::wait(queue); Vec3D const threadsPerBlockCreatePixQuints = createVec(1, 16, 16); - Vec3D const blocksPerGridCreatePixQuints = createVec(16, ::SDL::MAX_BLOCKS, 1); + Vec3D const blocksPerGridCreatePixQuints = createVec(16, MAX_BLOCKS, 1); WorkDiv3D const createPixelQuintupletsInGPUFromMapv2_workDiv = createWorkDiv(blocksPerGridCreatePixQuints, threadsPerBlockCreatePixQuints, elementsPerThread); @@ -1109,7 +1109,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createPixelQuintuplets() { alpaka::enqueue(queue, createPixelQuintupletsInGPUFromMapv2Task); Vec3D const threadsPerBlockDupPix = createVec(1, 16, 16); - Vec3D const blocksPerGridDupPix = createVec(1, ::SDL::MAX_BLOCKS, 1); + Vec3D const blocksPerGridDupPix = createVec(1, MAX_BLOCKS, 1); WorkDiv3D const removeDupPixelQuintupletsInGPUFromMap_workDiv = createWorkDiv(blocksPerGridDupPix, threadsPerBlockDupPix, elementsPerThread); @@ -1148,7 +1148,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::createPixelQuintuplets() { #endif } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addMiniDoubletsToEventExplicit() { +void SDL::Event::addMiniDoubletsToEventExplicit() { auto nMDsCPU_buf = allocBufWrapper(devHost, nLowerModules_, queue); alpaka::memcpy(queue, nMDsCPU_buf, miniDoubletsBuffers->nMDs_buf, nLowerModules_); @@ -1179,7 +1179,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addMiniDoubletsToEventExpl } } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addSegmentsToEventExplicit() { +void SDL::Event::addSegmentsToEventExplicit() { auto nSegmentsCPU_buf = allocBufWrapper(devHost, nLowerModules_, queue); alpaka::memcpy(queue, nSegmentsCPU_buf, segmentsBuffers->nSegments_buf, nLowerModules_); @@ -1206,7 +1206,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addSegmentsToEventExplicit } } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addQuintupletsToEventExplicit() { +void SDL::Event::addQuintupletsToEventExplicit() { auto nQuintupletsCPU_buf = allocBufWrapper(devHost, nLowerModules_, queue); alpaka::memcpy(queue, nQuintupletsCPU_buf, quintupletsBuffers->nQuintuplets_buf); @@ -1237,7 +1237,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addQuintupletsToEventExpli } } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addTripletsToEventExplicit() { +void SDL::Event::addTripletsToEventExplicit() { auto nTripletsCPU_buf = allocBufWrapper(devHost, nLowerModules_, queue); alpaka::memcpy(queue, nTripletsCPU_buf, tripletsBuffers->nTriplets_buf); @@ -1263,7 +1263,7 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::addTripletsToEventExplicit } } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfHits() { +unsigned int SDL::Event::getNumberOfHits() { unsigned int hits = 0; for (auto& it : n_hits_by_layer_barrel_) { hits += it; @@ -1275,22 +1275,22 @@ unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfHits() return hits; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfHitsByLayer(unsigned int layer) { +unsigned int SDL::Event::getNumberOfHitsByLayer(unsigned int layer) { if (layer == 6) return n_hits_by_layer_barrel_[layer]; else return n_hits_by_layer_barrel_[layer] + n_hits_by_layer_endcap_[layer]; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfHitsByLayerBarrel(unsigned int layer) { +unsigned int SDL::Event::getNumberOfHitsByLayerBarrel(unsigned int layer) { return n_hits_by_layer_barrel_[layer]; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfHitsByLayerEndcap(unsigned int layer) { +unsigned int SDL::Event::getNumberOfHitsByLayerEndcap(unsigned int layer) { return n_hits_by_layer_endcap_[layer]; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfMiniDoublets() { +unsigned int SDL::Event::getNumberOfMiniDoublets() { unsigned int miniDoublets = 0; for (auto& it : n_minidoublets_by_layer_barrel_) { miniDoublets += it; @@ -1302,22 +1302,22 @@ unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfMiniDou return miniDoublets; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfMiniDoubletsByLayer(unsigned int layer) { +unsigned int SDL::Event::getNumberOfMiniDoubletsByLayer(unsigned int layer) { if (layer == 6) return n_minidoublets_by_layer_barrel_[layer]; else return n_minidoublets_by_layer_barrel_[layer] + n_minidoublets_by_layer_endcap_[layer]; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfMiniDoubletsByLayerBarrel(unsigned int layer) { +unsigned int SDL::Event::getNumberOfMiniDoubletsByLayerBarrel(unsigned int layer) { return n_minidoublets_by_layer_barrel_[layer]; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfMiniDoubletsByLayerEndcap(unsigned int layer) { +unsigned int SDL::Event::getNumberOfMiniDoubletsByLayerEndcap(unsigned int layer) { return n_minidoublets_by_layer_endcap_[layer]; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfSegments() { +unsigned int SDL::Event::getNumberOfSegments() { unsigned int segments = 0; for (auto& it : n_segments_by_layer_barrel_) { segments += it; @@ -1329,22 +1329,22 @@ unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfSegment return segments; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfSegmentsByLayer(unsigned int layer) { +unsigned int SDL::Event::getNumberOfSegmentsByLayer(unsigned int layer) { if (layer == 6) return n_segments_by_layer_barrel_[layer]; else return n_segments_by_layer_barrel_[layer] + n_segments_by_layer_endcap_[layer]; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfSegmentsByLayerBarrel(unsigned int layer) { +unsigned int SDL::Event::getNumberOfSegmentsByLayerBarrel(unsigned int layer) { return n_segments_by_layer_barrel_[layer]; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfSegmentsByLayerEndcap(unsigned int layer) { +unsigned int SDL::Event::getNumberOfSegmentsByLayerEndcap(unsigned int layer) { return n_segments_by_layer_endcap_[layer]; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfTriplets() { +unsigned int SDL::Event::getNumberOfTriplets() { unsigned int triplets = 0; for (auto& it : n_triplets_by_layer_barrel_) { triplets += it; @@ -1356,22 +1356,22 @@ unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfTriplet return triplets; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfTripletsByLayer(unsigned int layer) { +unsigned int SDL::Event::getNumberOfTripletsByLayer(unsigned int layer) { if (layer == 6) return n_triplets_by_layer_barrel_[layer]; else return n_triplets_by_layer_barrel_[layer] + n_triplets_by_layer_endcap_[layer]; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfTripletsByLayerBarrel(unsigned int layer) { +unsigned int SDL::Event::getNumberOfTripletsByLayerBarrel(unsigned int layer) { return n_triplets_by_layer_barrel_[layer]; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfTripletsByLayerEndcap(unsigned int layer) { +unsigned int SDL::Event::getNumberOfTripletsByLayerEndcap(unsigned int layer) { return n_triplets_by_layer_endcap_[layer]; } -int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPixelTriplets() { +int SDL::Event::getNumberOfPixelTriplets() { auto nPixelTriplets_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nPixelTriplets_buf, pixelTripletsBuffers->nPixelTriplets_buf); @@ -1382,7 +1382,7 @@ int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPixelTriplets() return nPixelTriplets; } -int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPixelQuintuplets() { +int SDL::Event::getNumberOfPixelQuintuplets() { auto nPixelQuintuplets_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nPixelQuintuplets_buf, pixelQuintupletsBuffers->nPixelQuintuplets_buf); @@ -1393,7 +1393,7 @@ int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPixelQuintuplets return nPixelQuintuplets; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfQuintuplets() { +unsigned int SDL::Event::getNumberOfQuintuplets() { unsigned int quintuplets = 0; for (auto& it : n_quintuplets_by_layer_barrel_) { quintuplets += it; @@ -1405,22 +1405,22 @@ unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfQuintup return quintuplets; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfQuintupletsByLayer(unsigned int layer) { +unsigned int SDL::Event::getNumberOfQuintupletsByLayer(unsigned int layer) { if (layer == 6) return n_quintuplets_by_layer_barrel_[layer]; else return n_quintuplets_by_layer_barrel_[layer] + n_quintuplets_by_layer_endcap_[layer]; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfQuintupletsByLayerBarrel(unsigned int layer) { +unsigned int SDL::Event::getNumberOfQuintupletsByLayerBarrel(unsigned int layer) { return n_quintuplets_by_layer_barrel_[layer]; } -unsigned int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfQuintupletsByLayerEndcap(unsigned int layer) { +unsigned int SDL::Event::getNumberOfQuintupletsByLayerEndcap(unsigned int layer) { return n_quintuplets_by_layer_endcap_[layer]; } -int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfTrackCandidates() { +int SDL::Event::getNumberOfTrackCandidates() { auto nTrackCandidates_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidates_buf, trackCandidatesBuffers->nTrackCandidates_buf); @@ -1431,7 +1431,7 @@ int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfTrackCandidates( return nTrackCandidates; } -int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPT5TrackCandidates() { +int SDL::Event::getNumberOfPT5TrackCandidates() { auto nTrackCandidatesPT5_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidatesPT5_buf, trackCandidatesBuffers->nTrackCandidatespT5_buf); @@ -1442,7 +1442,7 @@ int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPT5TrackCandidat return nTrackCandidatesPT5; } -int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPT3TrackCandidates() { +int SDL::Event::getNumberOfPT3TrackCandidates() { auto nTrackCandidatesPT3_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidatesPT3_buf, trackCandidatesBuffers->nTrackCandidatespT3_buf); @@ -1453,7 +1453,7 @@ int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPT3TrackCandidat return nTrackCandidatesPT3; } -int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPLSTrackCandidates() { +int SDL::Event::getNumberOfPLSTrackCandidates() { auto nTrackCandidatesPLS_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidatesPLS_buf, trackCandidatesBuffers->nTrackCandidatespLS_buf); @@ -1464,7 +1464,7 @@ int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPLSTrackCandidat return nTrackCandidatesPLS; } -int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPixelTrackCandidates() { +int SDL::Event::getNumberOfPixelTrackCandidates() { auto nTrackCandidates_buf = allocBufWrapper(devHost, 1, queue); auto nTrackCandidatesT5_buf = allocBufWrapper(devHost, 1, queue); @@ -1478,7 +1478,7 @@ int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfPixelTrackCandid return nTrackCandidates - nTrackCandidatesT5; } -int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfT5TrackCandidates() { +int SDL::Event::getNumberOfT5TrackCandidates() { auto nTrackCandidatesT5_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidatesT5_buf, trackCandidatesBuffers->nTrackCandidatesT5_buf); @@ -1489,7 +1489,7 @@ int ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getNumberOfT5TrackCandidate return nTrackCandidatesT5; } -ALPAKA_ACCELERATOR_NAMESPACE::SDL::hitsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getHits() //std::shared_ptr should take care of garbage collection +SDL::hitsBuffer* SDL::Event::getHits() //std::shared_ptr should take care of garbage collection { if (hitsInCPU == nullptr) { auto nHits_buf = allocBufWrapper(devHost, 1, queue); @@ -1512,7 +1512,7 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::hitsBuffer* ALPAKA_ACCELERATOR_NAMES return hitsInCPU; } -ALPAKA_ACCELERATOR_NAMESPACE::SDL::hitsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getHitsInCMSSW() { +SDL::hitsBuffer* SDL::Event::getHitsInCMSSW() { if (hitsInCPU == nullptr) { auto nHits_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nHits_buf, hitsBuffers->nHits_buf); @@ -1529,7 +1529,7 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::hitsBuffer* ALPAKA_ACCELERATOR_NAMES return hitsInCPU; } -ALPAKA_ACCELERATOR_NAMESPACE::SDL::objectRangesBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getRanges() { +SDL::objectRangesBuffer* SDL::Event::getRanges() { if (rangesInCPU == nullptr) { rangesInCPU = new SDL::objectRangesBuffer(nModules_, nLowerModules_, devHost, queue); rangesInCPU->setData(*rangesInCPU); @@ -1544,7 +1544,7 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::objectRangesBuffer* ALPAKA_ACCELERAT return rangesInCPU; } -ALPAKA_ACCELERATOR_NAMESPACE::SDL::miniDoubletsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getMiniDoublets() { +SDL::miniDoubletsBuffer* SDL::Event::getMiniDoublets() { if (mdsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based mdsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1566,7 +1566,7 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::miniDoubletsBuffer* ALPAKA_ACCELERAT return mdsInCPU; } -ALPAKA_ACCELERATOR_NAMESPACE::SDL::segmentsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getSegments() { +SDL::segmentsBuffer* SDL::Event::getSegments() { if (segmentsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based segmentsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1575,7 +1575,7 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::segmentsBuffer* ALPAKA_ACCELERATOR_N unsigned int nMemHost = *alpaka::getPtrNative(nMemHost_buf); segmentsInCPU = new SDL::segmentsBuffer( - nMemHost, nLowerModules_, ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE, devHost, queue); + nMemHost, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devHost, queue); segmentsInCPU->setData(*segmentsInCPU); *alpaka::getPtrNative(segmentsInCPU->nMemoryLocations_buf) = nMemHost; @@ -1602,7 +1602,7 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::segmentsBuffer* ALPAKA_ACCELERATOR_N return segmentsInCPU; } -ALPAKA_ACCELERATOR_NAMESPACE::SDL::tripletsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getTriplets() { +SDL::tripletsBuffer* SDL::Event::getTriplets() { if (tripletsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based tripletsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1625,9 +1625,9 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::tripletsBuffer* ALPAKA_ACCELERATOR_N alpaka::memcpy(queue, tripletsInCPU->rtLo_buf, tripletsBuffers->rtLo_buf, nMemHost); alpaka::memcpy(queue, tripletsInCPU->rtHi_buf, tripletsBuffers->rtHi_buf, nMemHost); #endif - alpaka::memcpy(queue, tripletsInCPU->hitIndices_buf, tripletsBuffers->hitIndices_buf, ::SDL::Params_T3::kHits * nMemHost); + alpaka::memcpy(queue, tripletsInCPU->hitIndices_buf, tripletsBuffers->hitIndices_buf, Params_T3::kHits * nMemHost); alpaka::memcpy( - queue, tripletsInCPU->logicalLayers_buf, tripletsBuffers->logicalLayers_buf, ::SDL::Params_T3::kLayers * nMemHost); + queue, tripletsInCPU->logicalLayers_buf, tripletsBuffers->logicalLayers_buf, Params_T3::kLayers * nMemHost); alpaka::memcpy(queue, tripletsInCPU->segmentIndices_buf, tripletsBuffers->segmentIndices_buf, 2 * nMemHost); alpaka::memcpy(queue, tripletsInCPU->betaIn_buf, tripletsBuffers->betaIn_buf, nMemHost); alpaka::memcpy(queue, tripletsInCPU->circleRadius_buf, tripletsBuffers->circleRadius_buf, nMemHost); @@ -1638,7 +1638,7 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::tripletsBuffer* ALPAKA_ACCELERATOR_N return tripletsInCPU; } -ALPAKA_ACCELERATOR_NAMESPACE::SDL::quintupletsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getQuintuplets() { +SDL::quintupletsBuffer* SDL::Event::getQuintuplets() { if (quintupletsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based quintupletsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1657,7 +1657,7 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::quintupletsBuffer* ALPAKA_ACCELERATO alpaka::memcpy(queue, quintupletsInCPU->lowerModuleIndices_buf, quintupletsBuffers->lowerModuleIndices_buf, - ::SDL::Params_T5::kLayers * nMemHost); + Params_T5::kLayers * nMemHost); alpaka::memcpy(queue, quintupletsInCPU->innerRadius_buf, quintupletsBuffers->innerRadius_buf, nMemHost); alpaka::memcpy(queue, quintupletsInCPU->bridgeRadius_buf, quintupletsBuffers->bridgeRadius_buf, nMemHost); alpaka::memcpy(queue, quintupletsInCPU->outerRadius_buf, quintupletsBuffers->outerRadius_buf, nMemHost); @@ -1674,7 +1674,7 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::quintupletsBuffer* ALPAKA_ACCELERATO return quintupletsInCPU; } -ALPAKA_ACCELERATOR_NAMESPACE::SDL::pixelTripletsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getPixelTriplets() { +SDL::pixelTripletsBuffer* SDL::Event::getPixelTriplets() { if (pixelTripletsInCPU == nullptr) { // Get nPixelTriplets parameter to initialize host based quintupletsInCPU auto nPixelTriplets_buf = allocBufWrapper(devHost, 1, queue); @@ -1713,7 +1713,7 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::pixelTripletsBuffer* ALPAKA_ACCELERA return pixelTripletsInCPU; } -ALPAKA_ACCELERATOR_NAMESPACE::SDL::pixelQuintupletsBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getPixelQuintuplets() { +SDL::pixelQuintupletsBuffer* SDL::Event::getPixelQuintuplets() { if (pixelQuintupletsInCPU == nullptr) { // Get nPixelQuintuplets parameter to initialize host based quintupletsInCPU auto nPixelQuintuplets_buf = allocBufWrapper(devHost, 1, queue); @@ -1749,7 +1749,7 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::pixelQuintupletsBuffer* ALPAKA_ACCEL return pixelQuintupletsInCPU; } -ALPAKA_ACCELERATOR_NAMESPACE::SDL::trackCandidatesBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getTrackCandidates() { +SDL::trackCandidatesBuffer* SDL::Event::getTrackCandidates() { if (trackCandidatesInCPU == nullptr) { // Get nTrackCanHost parameter to initialize host based trackCandidatesInCPU auto nTrackCanHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1758,20 +1758,20 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::trackCandidatesBuffer* ALPAKA_ACCELE unsigned int nTrackCanHost = *alpaka::getPtrNative(nTrackCanHost_buf); trackCandidatesInCPU = new SDL::trackCandidatesBuffer( - ::SDL::N_MAX_NONPIXEL_TRACK_CANDIDATES + ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES, devHost, queue); + N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devHost, queue); trackCandidatesInCPU->setData(*trackCandidatesInCPU); *alpaka::getPtrNative(trackCandidatesInCPU->nTrackCandidates_buf) = nTrackCanHost; alpaka::memcpy(queue, trackCandidatesInCPU->hitIndices_buf, trackCandidatesBuffers->hitIndices_buf, - ::SDL::Params_pT5::kHits * nTrackCanHost); + Params_pT5::kHits * nTrackCanHost); alpaka::memcpy( queue, trackCandidatesInCPU->pixelSeedIndex_buf, trackCandidatesBuffers->pixelSeedIndex_buf, nTrackCanHost); alpaka::memcpy(queue, trackCandidatesInCPU->logicalLayers_buf, trackCandidatesBuffers->logicalLayers_buf, - ::SDL::Params_pT5::kLayers * nTrackCanHost); + Params_pT5::kLayers * nTrackCanHost); alpaka::memcpy(queue, trackCandidatesInCPU->directObjectIndices_buf, trackCandidatesBuffers->directObjectIndices_buf, @@ -1787,7 +1787,7 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::trackCandidatesBuffer* ALPAKA_ACCELE return trackCandidatesInCPU; } -ALPAKA_ACCELERATOR_NAMESPACE::SDL::trackCandidatesBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getTrackCandidatesInCMSSW() { +SDL::trackCandidatesBuffer* SDL::Event::getTrackCandidatesInCMSSW() { if (trackCandidatesInCPU == nullptr) { // Get nTrackCanHost parameter to initialize host based trackCandidatesInCPU auto nTrackCanHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1796,14 +1796,14 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::trackCandidatesBuffer* ALPAKA_ACCELE unsigned int nTrackCanHost = *alpaka::getPtrNative(nTrackCanHost_buf); trackCandidatesInCPU = new SDL::trackCandidatesBuffer( - ::SDL::N_MAX_NONPIXEL_TRACK_CANDIDATES + ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES, devHost, queue); + N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devHost, queue); trackCandidatesInCPU->setData(*trackCandidatesInCPU); *alpaka::getPtrNative(trackCandidatesInCPU->nTrackCandidates_buf) = nTrackCanHost; alpaka::memcpy(queue, trackCandidatesInCPU->hitIndices_buf, trackCandidatesBuffers->hitIndices_buf, - ::SDL::Params_pT5::kHits * nTrackCanHost); + Params_pT5::kHits * nTrackCanHost); alpaka::memcpy( queue, trackCandidatesInCPU->pixelSeedIndex_buf, trackCandidatesBuffers->pixelSeedIndex_buf, nTrackCanHost); alpaka::memcpy(queue, @@ -1815,7 +1815,7 @@ ALPAKA_ACCELERATOR_NAMESPACE::SDL::trackCandidatesBuffer* ALPAKA_ACCELE return trackCandidatesInCPU; } -ALPAKA_ACCELERATOR_NAMESPACE::SDL::modulesBuffer* ALPAKA_ACCELERATOR_NAMESPACE::SDL::Event::getModules(bool isFull) { +SDL::modulesBuffer* SDL::Event::getModules(bool isFull) { if (modulesInCPU == nullptr) { // The last input here is just a small placeholder for the allocation. modulesInCPU = new SDL::modulesBuffer(devHost, nModules_, nPixels_); diff --git a/RecoTracker/LSTCore/src/alpaka/Event.h b/RecoTracker/LSTCore/src/alpaka/Event.h index bd4d03e28c6d2..cb81cabeed0c0 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.h +++ b/RecoTracker/LSTCore/src/alpaka/Event.h @@ -1,12 +1,11 @@ -#ifndef Event_cuh -#define Event_cuh +#ifndef RecoTracker_LSTCore_src_Event_h +#define RecoTracker_LSTCore_src_Event_h #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/Module.h" -#include "RecoTracker/LSTCore/interface/alpaka/LST.h" +#include "RecoTracker/LSTCore/interface/Module.h" +#include "RecoTracker/LSTCore/interface/LST.h" #include "Hit.h" -#include "ModuleMethods.h" #include "Segment.h" #include "Triplet.h" #include "Kernels.h" @@ -17,16 +16,17 @@ #include "HeterogeneousCore/AlpakaInterface/interface/host.h" -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { - template - class Event {}; +namespace SDL { + + template + class Event; template <> - class Event { + class Event { private: - Queue queue; - Device devAcc; - DevHost devHost; + ALPAKA_ACCELERATOR_NAMESPACE::Queue queue; + ALPAKA_ACCELERATOR_NAMESPACE::Device devAcc; + alpaka_common::DevHost devHost; bool addObjects; std::array n_hits_by_layer_barrel_; @@ -45,35 +45,35 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { //Device stuff unsigned int nTotalSegments; struct objectRanges* rangesInGPU; - struct objectRangesBuffer* rangesBuffers; + struct objectRangesBuffer* rangesBuffers; struct hits* hitsInGPU; - struct hitsBuffer* hitsBuffers; + struct hitsBuffer* hitsBuffers; struct miniDoublets* mdsInGPU; - struct miniDoubletsBuffer* miniDoubletsBuffers; + struct miniDoubletsBuffer* miniDoubletsBuffers; struct segments* segmentsInGPU; - struct segmentsBuffer* segmentsBuffers; + struct segmentsBuffer* segmentsBuffers; struct triplets* tripletsInGPU; - struct tripletsBuffer* tripletsBuffers; + struct tripletsBuffer* tripletsBuffers; struct quintuplets* quintupletsInGPU; - struct quintupletsBuffer* quintupletsBuffers; + struct quintupletsBuffer* quintupletsBuffers; struct trackCandidates* trackCandidatesInGPU; - struct trackCandidatesBuffer* trackCandidatesBuffers; + struct trackCandidatesBuffer* trackCandidatesBuffers; struct pixelTriplets* pixelTripletsInGPU; - struct pixelTripletsBuffer* pixelTripletsBuffers; + struct pixelTripletsBuffer* pixelTripletsBuffers; struct pixelQuintuplets* pixelQuintupletsInGPU; - struct pixelQuintupletsBuffer* pixelQuintupletsBuffers; + struct pixelQuintupletsBuffer* pixelQuintupletsBuffers; //CPU interface stuff - objectRangesBuffer* rangesInCPU; - hitsBuffer* hitsInCPU; - miniDoubletsBuffer* mdsInCPU; - segmentsBuffer* segmentsInCPU; - tripletsBuffer* tripletsInCPU; - trackCandidatesBuffer* trackCandidatesInCPU; - modulesBuffer* modulesInCPU; - quintupletsBuffer* quintupletsInCPU; - pixelTripletsBuffer* pixelTripletsInCPU; - pixelQuintupletsBuffer* pixelQuintupletsInCPU; + objectRangesBuffer* rangesInCPU; + hitsBuffer* hitsInCPU; + miniDoubletsBuffer* mdsInCPU; + segmentsBuffer* segmentsInCPU; + tripletsBuffer* tripletsInCPU; + trackCandidatesBuffer* trackCandidatesInCPU; + modulesBuffer* modulesInCPU; + quintupletsBuffer* quintupletsInCPU; + pixelTripletsBuffer* pixelTripletsInCPU; + pixelQuintupletsBuffer* pixelQuintupletsInCPU; void init(bool verbose); @@ -85,14 +85,14 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { const uint16_t nLowerModules_; const unsigned int nPixels_; const unsigned int nEndCapMap_; - const std::shared_ptr> modulesBuffers_; - const std::shared_ptr pixelMapping_; - const std::shared_ptr> endcapGeometryBuffers_; + const std::shared_ptr> modulesBuffers_; + const std::shared_ptr pixelMapping_; + const std::shared_ptr> endcapGeometryBuffers_; public: // Constructor used for CMSSW integration. Uses an external queue. template - Event(bool verbose, TQueue const& q, const LSTESData* deviceESData) + Event(bool verbose, TQueue const& q, const LSTESData* deviceESData) : queue(q), devAcc(alpaka::getDev(q)), devHost(cms::alpakatools::host()), @@ -186,18 +186,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { int getNumberOfPixelTriplets(); int getNumberOfPixelQuintuplets(); - objectRangesBuffer* getRanges(); - hitsBuffer* getHits(); - hitsBuffer* getHitsInCMSSW(); - miniDoubletsBuffer* getMiniDoublets(); - segmentsBuffer* getSegments(); - tripletsBuffer* getTriplets(); - quintupletsBuffer* getQuintuplets(); - trackCandidatesBuffer* getTrackCandidates(); - trackCandidatesBuffer* getTrackCandidatesInCMSSW(); - pixelTripletsBuffer* getPixelTriplets(); - pixelQuintupletsBuffer* getPixelQuintuplets(); - modulesBuffer* getModules(bool isFull = false); + objectRangesBuffer* getRanges(); + hitsBuffer* getHits(); + hitsBuffer* getHitsInCMSSW(); + miniDoubletsBuffer* getMiniDoublets(); + segmentsBuffer* getSegments(); + tripletsBuffer* getTriplets(); + quintupletsBuffer* getQuintuplets(); + trackCandidatesBuffer* getTrackCandidates(); + trackCandidatesBuffer* getTrackCandidatesInCMSSW(); + pixelTripletsBuffer* getPixelTriplets(); + pixelQuintupletsBuffer* getPixelQuintuplets(); + modulesBuffer* getModules(bool isFull = false); }; } // namespace SDL diff --git a/RecoTracker/LSTCore/src/alpaka/Hit.h b/RecoTracker/LSTCore/src/alpaka/Hit.h index a18c4788f2d15..d524dd93d3e8d 100644 --- a/RecoTracker/LSTCore/src/alpaka/Hit.h +++ b/RecoTracker/LSTCore/src/alpaka/Hit.h @@ -2,9 +2,9 @@ #define Hit_cuh #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/Module.h" -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { struct hits { unsigned int* nHits; float* xs; diff --git a/RecoTracker/LSTCore/src/alpaka/Kernels.h b/RecoTracker/LSTCore/src/alpaka/Kernels.h index 6acc3ddb70bad..96cc6ecf89a79 100644 --- a/RecoTracker/LSTCore/src/alpaka/Kernels.h +++ b/RecoTracker/LSTCore/src/alpaka/Kernels.h @@ -2,7 +2,7 @@ #define Kernels_cuh #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/Module.h" #include "Hit.h" #include "MiniDoublet.h" @@ -11,7 +11,7 @@ #include "Quintuplet.h" #include "PixelTriplet.h" -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmQuintupletFromMemory(struct SDL::quintuplets& quintupletsInGPU, unsigned int quintupletIndex, bool secondpass = false) { @@ -37,18 +37,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitsT5(unsigned int ix, unsigned int jx, struct SDL::quintuplets& quintupletsInGPU) { - unsigned int hits1[::SDL::Params_T5::kHits]; - unsigned int hits2[::SDL::Params_T5::kHits]; + unsigned int hits1[Params_T5::kHits]; + unsigned int hits2[Params_T5::kHits]; - for (int i = 0; i < ::SDL::Params_T5::kHits; i++) { - hits1[i] = quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * ix + i]; - hits2[i] = quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * jx + i]; + for (int i = 0; i < Params_T5::kHits; i++) { + hits1[i] = quintupletsInGPU.hitIndices[Params_T5::kHits * ix + i]; + hits2[i] = quintupletsInGPU.hitIndices[Params_T5::kHits * jx + i]; } int nMatched = 0; - for (int i = 0; i < ::SDL::Params_T5::kHits; i++) { + for (int i = 0; i < Params_T5::kHits; i++) { bool matched = false; - for (int j = 0; j < ::SDL::Params_T5::kHits; j++) { + for (int j = 0; j < Params_T5::kHits; j++) { if (hits1[i] == hits2[j]) { matched = true; break; @@ -64,18 +64,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitspT5(unsigned int ix, unsigned int jx, struct SDL::pixelQuintuplets& pixelQuintupletsInGPU) { - unsigned int hits1[::SDL::Params_pT5::kHits]; - unsigned int hits2[::SDL::Params_pT5::kHits]; + unsigned int hits1[Params_pT5::kHits]; + unsigned int hits2[Params_pT5::kHits]; - for (int i = 0; i < ::SDL::Params_pT5::kHits; i++) { - hits1[i] = pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * ix + i]; - hits2[i] = pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * jx + i]; + for (int i = 0; i < Params_pT5::kHits; i++) { + hits1[i] = pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * ix + i]; + hits2[i] = pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * jx + i]; } int nMatched = 0; - for (int i = 0; i < ::SDL::Params_pT5::kHits; i++) { + for (int i = 0; i < Params_pT5::kHits; i++) { bool matched = false; - for (int j = 0; j < ::SDL::Params_pT5::kHits; j++) { + for (int j = 0; j < Params_pT5::kHits; j++) { if (hits1[i] == hits2[j]) { matched = true; break; @@ -92,18 +92,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { unsigned int jx, struct SDL::pixelTriplets& pixelTripletsInGPU, int* matched) { - int phits1[::SDL::Params_pLS::kHits]; - int phits2[::SDL::Params_pLS::kHits]; + int phits1[Params_pLS::kHits]; + int phits2[Params_pLS::kHits]; - for (int i = 0; i < ::SDL::Params_pLS::kHits; i++) { - phits1[i] = pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * ix + i]; - phits2[i] = pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * jx + i]; + for (int i = 0; i < Params_pLS::kHits; i++) { + phits1[i] = pixelTripletsInGPU.hitIndices[Params_pT3::kHits * ix + i]; + phits2[i] = pixelTripletsInGPU.hitIndices[Params_pT3::kHits * jx + i]; } int npMatched = 0; - for (int i = 0; i < ::SDL::Params_pLS::kHits; i++) { + for (int i = 0; i < Params_pLS::kHits; i++) { bool pmatched = false; - for (int j = 0; j < ::SDL::Params_pLS::kHits; j++) { + for (int j = 0; j < Params_pLS::kHits; j++) { if (phits1[i] == phits2[j]) { pmatched = true; break; @@ -114,18 +114,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { } } - int hits1[::SDL::Params_T3::kHits]; - int hits2[::SDL::Params_T3::kHits]; + int hits1[Params_T3::kHits]; + int hits2[Params_T3::kHits]; - for (int i = 0; i < ::SDL::Params_pLS::kHits; i++) { - hits1[i] = pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * ix + i + 4]; // Omitting the pLS hits - hits2[i] = pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * jx + i + 4]; // Omitting the pLS hits + for (int i = 0; i < Params_pLS::kHits; i++) { + hits1[i] = pixelTripletsInGPU.hitIndices[Params_pT3::kHits * ix + i + 4]; // Omitting the pLS hits + hits2[i] = pixelTripletsInGPU.hitIndices[Params_pT3::kHits * jx + i + 4]; // Omitting the pLS hits } int nMatched = 0; - for (int i = 0; i < ::SDL::Params_T3::kHits; i++) { + for (int i = 0; i < Params_T3::kHits; i++) { bool tmatched = false; - for (int j = 0; j < ::SDL::Params_T3::kHits; j++) { + for (int j = 0; j < Params_T3::kHits; j++) { if (hits1[i] == hits2[j]) { tmatched = true; break; @@ -281,17 +281,17 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { const int minNHitsForDup_pT3 = 5; if ((nMatched[0] + nMatched[1]) >= minNHitsForDup_pT3) { // Check the layers - if (pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * jx + 2] < - pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * ix + 2]) { + if (pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * jx + 2] < + pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * ix + 2]) { rmPixelTripletFromMemory(pixelTripletsInGPU, ix); break; - } else if (pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * ix + 2] == - pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * jx + 2] && + } else if (pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * ix + 2] == + pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * jx + 2] && __H2F(pixelTripletsInGPU.score[ix]) > __H2F(pixelTripletsInGPU.score[jx])) { rmPixelTripletFromMemory(pixelTripletsInGPU, ix); break; - } else if (pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * ix + 2] == - pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * jx + 2] && + } else if (pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * ix + 2] == + pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * jx + 2] && (__H2F(pixelTripletsInGPU.score[ix]) == __H2F(pixelTripletsInGPU.score[jx])) && (ix < jx)) { rmPixelTripletFromMemory(pixelTripletsInGPU, ix); break; @@ -341,14 +341,14 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { int pixelModuleIndex = *modulesInGPU.nLowerModules; unsigned int nPixelSegments = segmentsInGPU.nSegments[pixelModuleIndex]; - if (nPixelSegments > ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE) - nPixelSegments = ::SDL::N_MAX_PIXEL_SEGMENTS_PER_MODULE; + if (nPixelSegments > N_MAX_PIXEL_SEGMENTS_PER_MODULE) + nPixelSegments = N_MAX_PIXEL_SEGMENTS_PER_MODULE; for (unsigned int ix = globalThreadIdx[1]; ix < nPixelSegments; ix += gridThreadExtent[1]) { if (secondpass && (!segmentsInGPU.isQuad[ix] || (segmentsInGPU.isDup[ix] & 1))) continue; - unsigned int phits1[::SDL::Params_pLS::kHits]; + unsigned int phits1[Params_pLS::kHits]; phits1[0] = segmentsInGPU.pLSHitsIdxs[ix].x; phits1[1] = segmentsInGPU.pLSHitsIdxs[ix].y; phits1[2] = segmentsInGPU.pLSHitsIdxs[ix].z; @@ -381,16 +381,16 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { else idxToRemove = ix; - unsigned int phits2[::SDL::Params_pLS::kHits]; + unsigned int phits2[Params_pLS::kHits]; phits2[0] = segmentsInGPU.pLSHitsIdxs[jx].x; phits2[1] = segmentsInGPU.pLSHitsIdxs[jx].y; phits2[2] = segmentsInGPU.pLSHitsIdxs[jx].z; phits2[3] = segmentsInGPU.pLSHitsIdxs[jx].w; int npMatched = 0; - for (int i = 0; i < ::SDL::Params_pLS::kHits; i++) { + for (int i = 0; i < Params_pLS::kHits; i++) { bool pmatched = false; - for (int j = 0; j < ::SDL::Params_pLS::kHits; j++) { + for (int j = 0; j < Params_pLS::kHits; j++) { if (phits1[i] == phits2[j]) { pmatched = true; break; diff --git a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc index d4ca300ed7302..ef028e5a2bca0 100644 --- a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc @@ -1,4 +1,4 @@ -#include "RecoTracker/LSTCore/interface/alpaka/LST.h" +#include "RecoTracker/LSTCore/interface/LST.h" #include "Event.h" @@ -7,159 +7,6 @@ using namespace ALPAKA_ACCELERATOR_NAMESPACE; #include "Math/Vector3D.h" using XYZVector = ROOT::Math::XYZVector; -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::LST::run(Queue& queue, - bool verbose, - const LSTESData* deviceESData, - const std::vector see_px, - const std::vector see_py, - const std::vector see_pz, - const std::vector see_dxy, - const std::vector see_dz, - const std::vector see_ptErr, - const std::vector see_etaErr, - const std::vector see_stateTrajGlbX, - const std::vector see_stateTrajGlbY, - const std::vector see_stateTrajGlbZ, - const std::vector see_stateTrajGlbPx, - const std::vector see_stateTrajGlbPy, - const std::vector see_stateTrajGlbPz, - const std::vector see_q, - const std::vector> see_hitIdx, - const std::vector ph2_detId, - const std::vector ph2_x, - const std::vector ph2_y, - const std::vector ph2_z, - bool no_pls_dupclean, - bool tc_pls_triplets) { - auto event = SDL::Event(verbose, queue, deviceESData); - prepareInput(see_px, - see_py, - see_pz, - see_dxy, - see_dz, - see_ptErr, - see_etaErr, - see_stateTrajGlbX, - see_stateTrajGlbY, - see_stateTrajGlbZ, - see_stateTrajGlbPx, - see_stateTrajGlbPy, - see_stateTrajGlbPz, - see_q, - see_hitIdx, - ph2_detId, - ph2_x, - ph2_y, - ph2_z); - - event.addHitToEvent(in_trkX_, in_trkY_, in_trkZ_, in_hitId_, in_hitIdxs_); - event.addPixelSegmentToEvent(in_hitIndices_vec0_, - in_hitIndices_vec1_, - in_hitIndices_vec2_, - in_hitIndices_vec3_, - in_deltaPhi_vec_, - in_ptIn_vec_, - in_ptErr_vec_, - in_px_vec_, - in_py_vec_, - in_pz_vec_, - in_eta_vec_, - in_etaErr_vec_, - in_phi_vec_, - in_charge_vec_, - in_seedIdx_vec_, - in_superbin_vec_, - in_pixelType_vec_, - in_isQuad_vec_); - event.createMiniDoublets(); - if (verbose) { - printf("# of Mini-doublets produced: %d\n", event.getNumberOfMiniDoublets()); - printf("# of Mini-doublets produced barrel layer 1: %d\n", event.getNumberOfMiniDoubletsByLayerBarrel(0)); - printf("# of Mini-doublets produced barrel layer 2: %d\n", event.getNumberOfMiniDoubletsByLayerBarrel(1)); - printf("# of Mini-doublets produced barrel layer 3: %d\n", event.getNumberOfMiniDoubletsByLayerBarrel(2)); - printf("# of Mini-doublets produced barrel layer 4: %d\n", event.getNumberOfMiniDoubletsByLayerBarrel(3)); - printf("# of Mini-doublets produced barrel layer 5: %d\n", event.getNumberOfMiniDoubletsByLayerBarrel(4)); - printf("# of Mini-doublets produced barrel layer 6: %d\n", event.getNumberOfMiniDoubletsByLayerBarrel(5)); - printf("# of Mini-doublets produced endcap layer 1: %d\n", event.getNumberOfMiniDoubletsByLayerEndcap(0)); - printf("# of Mini-doublets produced endcap layer 2: %d\n", event.getNumberOfMiniDoubletsByLayerEndcap(1)); - printf("# of Mini-doublets produced endcap layer 3: %d\n", event.getNumberOfMiniDoubletsByLayerEndcap(2)); - printf("# of Mini-doublets produced endcap layer 4: %d\n", event.getNumberOfMiniDoubletsByLayerEndcap(3)); - printf("# of Mini-doublets produced endcap layer 5: %d\n", event.getNumberOfMiniDoubletsByLayerEndcap(4)); - } - - event.createSegmentsWithModuleMap(); - if (verbose) { - printf("# of Segments produced: %d\n", event.getNumberOfSegments()); - printf("# of Segments produced layer 1-2: %d\n", event.getNumberOfSegmentsByLayerBarrel(0)); - printf("# of Segments produced layer 2-3: %d\n", event.getNumberOfSegmentsByLayerBarrel(1)); - printf("# of Segments produced layer 3-4: %d\n", event.getNumberOfSegmentsByLayerBarrel(2)); - printf("# of Segments produced layer 4-5: %d\n", event.getNumberOfSegmentsByLayerBarrel(3)); - printf("# of Segments produced layer 5-6: %d\n", event.getNumberOfSegmentsByLayerBarrel(4)); - printf("# of Segments produced endcap layer 1: %d\n", event.getNumberOfSegmentsByLayerEndcap(0)); - printf("# of Segments produced endcap layer 2: %d\n", event.getNumberOfSegmentsByLayerEndcap(1)); - printf("# of Segments produced endcap layer 3: %d\n", event.getNumberOfSegmentsByLayerEndcap(2)); - printf("# of Segments produced endcap layer 4: %d\n", event.getNumberOfSegmentsByLayerEndcap(3)); - printf("# of Segments produced endcap layer 5: %d\n", event.getNumberOfSegmentsByLayerEndcap(4)); - } - - event.createTriplets(); - if (verbose) { - printf("# of T3s produced: %d\n", event.getNumberOfTriplets()); - printf("# of T3s produced layer 1-2-3: %d\n", event.getNumberOfTripletsByLayerBarrel(0)); - printf("# of T3s produced layer 2-3-4: %d\n", event.getNumberOfTripletsByLayerBarrel(1)); - printf("# of T3s produced layer 3-4-5: %d\n", event.getNumberOfTripletsByLayerBarrel(2)); - printf("# of T3s produced layer 4-5-6: %d\n", event.getNumberOfTripletsByLayerBarrel(3)); - printf("# of T3s produced endcap layer 1-2-3: %d\n", event.getNumberOfTripletsByLayerEndcap(0)); - printf("# of T3s produced endcap layer 2-3-4: %d\n", event.getNumberOfTripletsByLayerEndcap(1)); - printf("# of T3s produced endcap layer 3-4-5: %d\n", event.getNumberOfTripletsByLayerEndcap(2)); - printf("# of T3s produced endcap layer 1: %d\n", event.getNumberOfTripletsByLayerEndcap(0)); - printf("# of T3s produced endcap layer 2: %d\n", event.getNumberOfTripletsByLayerEndcap(1)); - printf("# of T3s produced endcap layer 3: %d\n", event.getNumberOfTripletsByLayerEndcap(2)); - printf("# of T3s produced endcap layer 4: %d\n", event.getNumberOfTripletsByLayerEndcap(3)); - printf("# of T3s produced endcap layer 5: %d\n", event.getNumberOfTripletsByLayerEndcap(4)); - } - - event.createQuintuplets(); - if (verbose) { - printf("# of Quintuplets produced: %d\n", event.getNumberOfQuintuplets()); - printf("# of Quintuplets produced layer 1-2-3-4-5-6: %d\n", event.getNumberOfQuintupletsByLayerBarrel(0)); - printf("# of Quintuplets produced layer 2: %d\n", event.getNumberOfQuintupletsByLayerBarrel(1)); - printf("# of Quintuplets produced layer 3: %d\n", event.getNumberOfQuintupletsByLayerBarrel(2)); - printf("# of Quintuplets produced layer 4: %d\n", event.getNumberOfQuintupletsByLayerBarrel(3)); - printf("# of Quintuplets produced layer 5: %d\n", event.getNumberOfQuintupletsByLayerBarrel(4)); - printf("# of Quintuplets produced layer 6: %d\n", event.getNumberOfQuintupletsByLayerBarrel(5)); - printf("# of Quintuplets produced endcap layer 1: %d\n", event.getNumberOfQuintupletsByLayerEndcap(0)); - printf("# of Quintuplets produced endcap layer 2: %d\n", event.getNumberOfQuintupletsByLayerEndcap(1)); - printf("# of Quintuplets produced endcap layer 3: %d\n", event.getNumberOfQuintupletsByLayerEndcap(2)); - printf("# of Quintuplets produced endcap layer 4: %d\n", event.getNumberOfQuintupletsByLayerEndcap(3)); - printf("# of Quintuplets produced endcap layer 5: %d\n", event.getNumberOfQuintupletsByLayerEndcap(4)); - } - - event.pixelLineSegmentCleaning(no_pls_dupclean); - - event.createPixelQuintuplets(); - if (verbose) - printf("# of Pixel Quintuplets produced: %d\n", event.getNumberOfPixelQuintuplets()); - - event.createPixelTriplets(); - if (verbose) - printf("# of Pixel T3s produced: %d\n", event.getNumberOfPixelTriplets()); - - event.createTrackCandidates(no_pls_dupclean, tc_pls_triplets); - if (verbose) { - printf("# of TrackCandidates produced: %d\n", event.getNumberOfTrackCandidates()); - printf(" # of Pixel TrackCandidates produced: %d\n", event.getNumberOfPixelTrackCandidates()); - printf(" # of pT5 TrackCandidates produced: %d\n", event.getNumberOfPT5TrackCandidates()); - printf(" # of pT3 TrackCandidates produced: %d\n", event.getNumberOfPT3TrackCandidates()); - printf(" # of pLS TrackCandidates produced: %d\n", event.getNumberOfPLSTrackCandidates()); - printf(" # of T5 TrackCandidates produced: %d\n", event.getNumberOfT5TrackCandidates()); - } - - getOutput(event); - - event.resetEvent(); -} - namespace { XYZVector calculateR3FromPCA(const XYZVector& p3, const float dxy, const float dz) { const float pt = p3.rho(); @@ -172,7 +19,8 @@ namespace { } } // namespace -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::LST::prepareInput(const std::vector see_px, +template <> +void SDL::LST::prepareInput(const std::vector see_px, const std::vector see_py, const std::vector see_pz, const std::vector see_dxy, @@ -364,7 +212,44 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::LST::prepareInput(const std::vect in_isQuad_vec_ = isQuad_vec; } -void ALPAKA_ACCELERATOR_NAMESPACE::SDL::LST::getOutput(SDL::Event& event) { +template<> +std::vector SDL::LST::getHitIdxs(const short trackCandidateType, + const unsigned int TCIdx, + const unsigned int* TCHitIndices, + const unsigned int* hitIndices) { + std::vector hits; + + unsigned int maxNHits = 0; + if (trackCandidateType == 7) + maxNHits = Params_pT5::kHits; // pT5 + else if (trackCandidateType == 5) + maxNHits = Params_pT3::kHits; // pT3 + else if (trackCandidateType == 4) + maxNHits = Params_T5::kHits; // T5 + else if (trackCandidateType == 8) + maxNHits = Params_pLS::kHits; // pLS + + for (unsigned int i = 0; i < maxNHits; i++) { + unsigned int hitIdxInGPU = TCHitIndices[Params_pT5::kHits * TCIdx + i]; + unsigned int hitIdx = + (trackCandidateType == 8) + ? hitIdxInGPU + : hitIndices[hitIdxInGPU]; // Hit indices are stored differently in the standalone for pLS. + + // For p objects, the 3rd and 4th hit maybe the same, + // due to the way pLS hits are stored in the standalone. + // This is because pixel seeds can be either triplets or quadruplets. + if (trackCandidateType != 4 && hits.size() == 3 && hits.back() == hitIdx) // Remove duplicate 4th hits. + continue; + + hits.push_back(hitIdx); + } + + return hits; +} + +template <> +void SDL::LST::getOutput(SDL::Event& event) { std::vector> tc_hitIdxs; std::vector tc_len; std::vector tc_seedIdx; @@ -391,37 +276,157 @@ void ALPAKA_ACCELERATOR_NAMESPACE::SDL::LST::getOutput(SDL::Event& out_tc_trackCandidateType_ = tc_trackCandidateType; } -std::vector ALPAKA_ACCELERATOR_NAMESPACE::SDL::LST::getHitIdxs(const short trackCandidateType, - const unsigned int TCIdx, - const unsigned int* TCHitIndices, - const unsigned int* hitIndices) { - std::vector hits; +template <> +template <> +void SDL::LST::run(Queue& queue, + bool verbose, + const LSTESData* deviceESData, + const std::vector see_px, + const std::vector see_py, + const std::vector see_pz, + const std::vector see_dxy, + const std::vector see_dz, + const std::vector see_ptErr, + const std::vector see_etaErr, + const std::vector see_stateTrajGlbX, + const std::vector see_stateTrajGlbY, + const std::vector see_stateTrajGlbZ, + const std::vector see_stateTrajGlbPx, + const std::vector see_stateTrajGlbPy, + const std::vector see_stateTrajGlbPz, + const std::vector see_q, + const std::vector> see_hitIdx, + const std::vector ph2_detId, + const std::vector ph2_x, + const std::vector ph2_y, + const std::vector ph2_z, + bool no_pls_dupclean, + bool tc_pls_triplets) { + auto event = SDL::Event(verbose, queue, deviceESData); + prepareInput(see_px, + see_py, + see_pz, + see_dxy, + see_dz, + see_ptErr, + see_etaErr, + see_stateTrajGlbX, + see_stateTrajGlbY, + see_stateTrajGlbZ, + see_stateTrajGlbPx, + see_stateTrajGlbPy, + see_stateTrajGlbPz, + see_q, + see_hitIdx, + ph2_detId, + ph2_x, + ph2_y, + ph2_z); - unsigned int maxNHits = 0; - if (trackCandidateType == 7) - maxNHits = ::SDL::Params_pT5::kHits; // pT5 - else if (trackCandidateType == 5) - maxNHits = ::SDL::Params_pT3::kHits; // pT3 - else if (trackCandidateType == 4) - maxNHits = ::SDL::Params_T5::kHits; // T5 - else if (trackCandidateType == 8) - maxNHits = ::SDL::Params_pLS::kHits; // pLS + event.addHitToEvent(in_trkX_, in_trkY_, in_trkZ_, in_hitId_, in_hitIdxs_); + event.addPixelSegmentToEvent(in_hitIndices_vec0_, + in_hitIndices_vec1_, + in_hitIndices_vec2_, + in_hitIndices_vec3_, + in_deltaPhi_vec_, + in_ptIn_vec_, + in_ptErr_vec_, + in_px_vec_, + in_py_vec_, + in_pz_vec_, + in_eta_vec_, + in_etaErr_vec_, + in_phi_vec_, + in_charge_vec_, + in_seedIdx_vec_, + in_superbin_vec_, + in_pixelType_vec_, + in_isQuad_vec_); + event.createMiniDoublets(); + if (verbose) { + printf("# of Mini-doublets produced: %d\n", event.getNumberOfMiniDoublets()); + printf("# of Mini-doublets produced barrel layer 1: %d\n", event.getNumberOfMiniDoubletsByLayerBarrel(0)); + printf("# of Mini-doublets produced barrel layer 2: %d\n", event.getNumberOfMiniDoubletsByLayerBarrel(1)); + printf("# of Mini-doublets produced barrel layer 3: %d\n", event.getNumberOfMiniDoubletsByLayerBarrel(2)); + printf("# of Mini-doublets produced barrel layer 4: %d\n", event.getNumberOfMiniDoubletsByLayerBarrel(3)); + printf("# of Mini-doublets produced barrel layer 5: %d\n", event.getNumberOfMiniDoubletsByLayerBarrel(4)); + printf("# of Mini-doublets produced barrel layer 6: %d\n", event.getNumberOfMiniDoubletsByLayerBarrel(5)); + printf("# of Mini-doublets produced endcap layer 1: %d\n", event.getNumberOfMiniDoubletsByLayerEndcap(0)); + printf("# of Mini-doublets produced endcap layer 2: %d\n", event.getNumberOfMiniDoubletsByLayerEndcap(1)); + printf("# of Mini-doublets produced endcap layer 3: %d\n", event.getNumberOfMiniDoubletsByLayerEndcap(2)); + printf("# of Mini-doublets produced endcap layer 4: %d\n", event.getNumberOfMiniDoubletsByLayerEndcap(3)); + printf("# of Mini-doublets produced endcap layer 5: %d\n", event.getNumberOfMiniDoubletsByLayerEndcap(4)); + } - for (unsigned int i = 0; i < maxNHits; i++) { - unsigned int hitIdxInGPU = TCHitIndices[::SDL::Params_pT5::kHits * TCIdx + i]; - unsigned int hitIdx = - (trackCandidateType == 8) - ? hitIdxInGPU - : hitIndices[hitIdxInGPU]; // Hit indices are stored differently in the standalone for pLS. + event.createSegmentsWithModuleMap(); + if (verbose) { + printf("# of Segments produced: %d\n", event.getNumberOfSegments()); + printf("# of Segments produced layer 1-2: %d\n", event.getNumberOfSegmentsByLayerBarrel(0)); + printf("# of Segments produced layer 2-3: %d\n", event.getNumberOfSegmentsByLayerBarrel(1)); + printf("# of Segments produced layer 3-4: %d\n", event.getNumberOfSegmentsByLayerBarrel(2)); + printf("# of Segments produced layer 4-5: %d\n", event.getNumberOfSegmentsByLayerBarrel(3)); + printf("# of Segments produced layer 5-6: %d\n", event.getNumberOfSegmentsByLayerBarrel(4)); + printf("# of Segments produced endcap layer 1: %d\n", event.getNumberOfSegmentsByLayerEndcap(0)); + printf("# of Segments produced endcap layer 2: %d\n", event.getNumberOfSegmentsByLayerEndcap(1)); + printf("# of Segments produced endcap layer 3: %d\n", event.getNumberOfSegmentsByLayerEndcap(2)); + printf("# of Segments produced endcap layer 4: %d\n", event.getNumberOfSegmentsByLayerEndcap(3)); + printf("# of Segments produced endcap layer 5: %d\n", event.getNumberOfSegmentsByLayerEndcap(4)); + } - // For p objects, the 3rd and 4th hit maybe the same, - // due to the way pLS hits are stored in the standalone. - // This is because pixel seeds can be either triplets or quadruplets. - if (trackCandidateType != 4 && hits.size() == 3 && hits.back() == hitIdx) // Remove duplicate 4th hits. - continue; + event.createTriplets(); + if (verbose) { + printf("# of T3s produced: %d\n", event.getNumberOfTriplets()); + printf("# of T3s produced layer 1-2-3: %d\n", event.getNumberOfTripletsByLayerBarrel(0)); + printf("# of T3s produced layer 2-3-4: %d\n", event.getNumberOfTripletsByLayerBarrel(1)); + printf("# of T3s produced layer 3-4-5: %d\n", event.getNumberOfTripletsByLayerBarrel(2)); + printf("# of T3s produced layer 4-5-6: %d\n", event.getNumberOfTripletsByLayerBarrel(3)); + printf("# of T3s produced endcap layer 1-2-3: %d\n", event.getNumberOfTripletsByLayerEndcap(0)); + printf("# of T3s produced endcap layer 2-3-4: %d\n", event.getNumberOfTripletsByLayerEndcap(1)); + printf("# of T3s produced endcap layer 3-4-5: %d\n", event.getNumberOfTripletsByLayerEndcap(2)); + printf("# of T3s produced endcap layer 1: %d\n", event.getNumberOfTripletsByLayerEndcap(0)); + printf("# of T3s produced endcap layer 2: %d\n", event.getNumberOfTripletsByLayerEndcap(1)); + printf("# of T3s produced endcap layer 3: %d\n", event.getNumberOfTripletsByLayerEndcap(2)); + printf("# of T3s produced endcap layer 4: %d\n", event.getNumberOfTripletsByLayerEndcap(3)); + printf("# of T3s produced endcap layer 5: %d\n", event.getNumberOfTripletsByLayerEndcap(4)); + } - hits.push_back(hitIdx); + event.createQuintuplets(); + if (verbose) { + printf("# of Quintuplets produced: %d\n", event.getNumberOfQuintuplets()); + printf("# of Quintuplets produced layer 1-2-3-4-5-6: %d\n", event.getNumberOfQuintupletsByLayerBarrel(0)); + printf("# of Quintuplets produced layer 2: %d\n", event.getNumberOfQuintupletsByLayerBarrel(1)); + printf("# of Quintuplets produced layer 3: %d\n", event.getNumberOfQuintupletsByLayerBarrel(2)); + printf("# of Quintuplets produced layer 4: %d\n", event.getNumberOfQuintupletsByLayerBarrel(3)); + printf("# of Quintuplets produced layer 5: %d\n", event.getNumberOfQuintupletsByLayerBarrel(4)); + printf("# of Quintuplets produced layer 6: %d\n", event.getNumberOfQuintupletsByLayerBarrel(5)); + printf("# of Quintuplets produced endcap layer 1: %d\n", event.getNumberOfQuintupletsByLayerEndcap(0)); + printf("# of Quintuplets produced endcap layer 2: %d\n", event.getNumberOfQuintupletsByLayerEndcap(1)); + printf("# of Quintuplets produced endcap layer 3: %d\n", event.getNumberOfQuintupletsByLayerEndcap(2)); + printf("# of Quintuplets produced endcap layer 4: %d\n", event.getNumberOfQuintupletsByLayerEndcap(3)); + printf("# of Quintuplets produced endcap layer 5: %d\n", event.getNumberOfQuintupletsByLayerEndcap(4)); } - return hits; -} + event.pixelLineSegmentCleaning(no_pls_dupclean); + + event.createPixelQuintuplets(); + if (verbose) + printf("# of Pixel Quintuplets produced: %d\n", event.getNumberOfPixelQuintuplets()); + + event.createPixelTriplets(); + if (verbose) + printf("# of Pixel T3s produced: %d\n", event.getNumberOfPixelTriplets()); + + event.createTrackCandidates(no_pls_dupclean, tc_pls_triplets); + if (verbose) { + printf("# of TrackCandidates produced: %d\n", event.getNumberOfTrackCandidates()); + printf(" # of Pixel TrackCandidates produced: %d\n", event.getNumberOfPixelTrackCandidates()); + printf(" # of pT5 TrackCandidates produced: %d\n", event.getNumberOfPT5TrackCandidates()); + printf(" # of pT3 TrackCandidates produced: %d\n", event.getNumberOfPT3TrackCandidates()); + printf(" # of pLS TrackCandidates produced: %d\n", event.getNumberOfPLSTrackCandidates()); + printf(" # of T5 TrackCandidates produced: %d\n", event.getNumberOfT5TrackCandidates()); + } + + getOutput(event); + + event.resetEvent(); +} \ No newline at end of file diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index b9c5e85245158..1f65d69cd535f 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -2,12 +2,12 @@ #define MiniDoublet_cuh #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/Module.h" #include "RecoTracker/LSTCore/interface/EndcapGeometry.h" #include "Hit.h" -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { struct miniDoublets { unsigned int* nMemoryLocations; diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h index c1711caeb4b84..d04260ec2deb1 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h @@ -2,7 +2,7 @@ #define NeuralNetwork_cuh #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/Module.h" #include "NeuralNetworkWeights.h" #include "Segment.h" @@ -10,7 +10,7 @@ #include "Hit.h" #include "Triplet.h" -namespace ALPAKA_ACCELERATOR_NAMESPACE::T5DNN { +namespace T5DNN { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float runInference(TAcc const& acc, diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h index 83078bb3ddd7f..90fb6b21ac7d4 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h @@ -3,7 +3,7 @@ #include -namespace ALPAKA_ACCELERATOR_NAMESPACE::T5DNN { +namespace T5DNN { ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_0[32] = { -4.5069356f, -5.8842053f, 1.0793180f, -0.1540973f, -0.4705772f, 6.4027028f, -0.6620818f, -7.0734525f, 0.6211641f, 4.9630723f, 3.4310920f, -0.8856288f, 4.5843782f, -6.0180559f, 0.0126438f, -1.5725276f, diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index 26306b8e2a40b..06b73403011ac 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -2,7 +2,7 @@ #define PixelTriplet_cuh #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/Module.h" #include "Triplet.h" #include "Segment.h" @@ -10,7 +10,7 @@ #include "Hit.h" #include "Quintuplet.h" -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { // One pixel segment, one outer tracker triplet! struct pixelTriplets { unsigned int* pixelSegmentIndices; @@ -110,9 +110,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { score_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), isDup_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), partOfPT5_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), - logicalLayers_buf(allocBufWrapper(devAccIn, maxPixelTriplets * ::SDL::Params_pT3::kLayers, queue)), - hitIndices_buf(allocBufWrapper(devAccIn, maxPixelTriplets * ::SDL::Params_pT3::kHits, queue)), - lowerModuleIndices_buf(allocBufWrapper(devAccIn, maxPixelTriplets * ::SDL::Params_pT3::kLayers, queue)), + logicalLayers_buf(allocBufWrapper(devAccIn, maxPixelTriplets * Params_pT3::kLayers, queue)), + hitIndices_buf(allocBufWrapper(devAccIn, maxPixelTriplets * Params_pT3::kHits, queue)), + lowerModuleIndices_buf(allocBufWrapper(devAccIn, maxPixelTriplets * Params_pT3::kLayers, queue)), centerX_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), centerY_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), pixelRadiusError_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), @@ -161,46 +161,46 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { pixelTripletsInGPU.centerX[pixelTripletIndex] = __F2H(centerX); pixelTripletsInGPU.centerY[pixelTripletIndex] = __F2H(centerY); - pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * pixelTripletIndex] = 0; - pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * pixelTripletIndex + 1] = 0; - pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * pixelTripletIndex + 2] = - tripletsInGPU.logicalLayers[tripletIndex * ::SDL::Params_T3::kLayers]; - pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * pixelTripletIndex + 3] = - tripletsInGPU.logicalLayers[tripletIndex * ::SDL::Params_T3::kLayers + 1]; - pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * pixelTripletIndex + 4] = - tripletsInGPU.logicalLayers[tripletIndex * ::SDL::Params_T3::kLayers + 2]; - - pixelTripletsInGPU.lowerModuleIndices[::SDL::Params_pT3::kLayers * pixelTripletIndex] = + pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * pixelTripletIndex] = 0; + pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * pixelTripletIndex + 1] = 0; + pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * pixelTripletIndex + 2] = + tripletsInGPU.logicalLayers[tripletIndex * Params_T3::kLayers]; + pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * pixelTripletIndex + 3] = + tripletsInGPU.logicalLayers[tripletIndex * Params_T3::kLayers + 1]; + pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * pixelTripletIndex + 4] = + tripletsInGPU.logicalLayers[tripletIndex * Params_T3::kLayers + 2]; + + pixelTripletsInGPU.lowerModuleIndices[Params_pT3::kLayers * pixelTripletIndex] = segmentsInGPU.innerLowerModuleIndices[pixelSegmentIndex]; - pixelTripletsInGPU.lowerModuleIndices[::SDL::Params_pT3::kLayers * pixelTripletIndex + 1] = + pixelTripletsInGPU.lowerModuleIndices[Params_pT3::kLayers * pixelTripletIndex + 1] = segmentsInGPU.outerLowerModuleIndices[pixelSegmentIndex]; - pixelTripletsInGPU.lowerModuleIndices[::SDL::Params_pT3::kLayers * pixelTripletIndex + 2] = - tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * tripletIndex]; - pixelTripletsInGPU.lowerModuleIndices[::SDL::Params_pT3::kLayers * pixelTripletIndex + 3] = - tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * tripletIndex + 1]; - pixelTripletsInGPU.lowerModuleIndices[::SDL::Params_pT3::kLayers * pixelTripletIndex + 4] = - tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * tripletIndex + 2]; + pixelTripletsInGPU.lowerModuleIndices[Params_pT3::kLayers * pixelTripletIndex + 2] = + tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * tripletIndex]; + pixelTripletsInGPU.lowerModuleIndices[Params_pT3::kLayers * pixelTripletIndex + 3] = + tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * tripletIndex + 1]; + pixelTripletsInGPU.lowerModuleIndices[Params_pT3::kLayers * pixelTripletIndex + 4] = + tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * tripletIndex + 2]; unsigned int pixelInnerMD = segmentsInGPU.mdIndices[2 * pixelSegmentIndex]; unsigned int pixelOuterMD = segmentsInGPU.mdIndices[2 * pixelSegmentIndex + 1]; - pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex] = mdsInGPU.anchorHitIndices[pixelInnerMD]; - pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 1] = mdsInGPU.outerHitIndices[pixelInnerMD]; - pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 2] = mdsInGPU.anchorHitIndices[pixelOuterMD]; - pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 3] = mdsInGPU.outerHitIndices[pixelOuterMD]; - - pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 4] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * tripletIndex]; - pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 5] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * tripletIndex + 1]; - pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 6] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * tripletIndex + 2]; - pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 7] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * tripletIndex + 3]; - pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 8] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * tripletIndex + 4]; - pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex + 9] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * tripletIndex + 5]; + pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex] = mdsInGPU.anchorHitIndices[pixelInnerMD]; + pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 1] = mdsInGPU.outerHitIndices[pixelInnerMD]; + pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 2] = mdsInGPU.anchorHitIndices[pixelOuterMD]; + pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 3] = mdsInGPU.outerHitIndices[pixelOuterMD]; + + pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 4] = + tripletsInGPU.hitIndices[Params_T3::kHits * tripletIndex]; + pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 5] = + tripletsInGPU.hitIndices[Params_T3::kHits * tripletIndex + 1]; + pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 6] = + tripletsInGPU.hitIndices[Params_T3::kHits * tripletIndex + 2]; + pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 7] = + tripletsInGPU.hitIndices[Params_T3::kHits * tripletIndex + 3]; + pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 8] = + tripletsInGPU.hitIndices[Params_T3::kHits * tripletIndex + 4]; + pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex + 9] = + tripletsInGPU.hitIndices[Params_T3::kHits * tripletIndex + 5]; pixelTripletsInGPU.rPhiChiSquared[pixelTripletIndex] = rPhiChiSquared; pixelTripletsInGPU.rPhiChiSquaredInwards[pixelTripletIndex] = rPhiChiSquaredInwards; pixelTripletsInGPU.rzChiSquared[pixelTripletIndex] = rzChiSquared; @@ -247,11 +247,11 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { short outerInnerLowerModuleSubdet = modulesInGPU.subdets[outerInnerLowerModuleIndex]; short outerOuterLowerModuleSubdet = modulesInGPU.subdets[outerOuterLowerModuleIndex]; - unsigned int firstMDIndex = segmentsInGPU.mdIndices[::SDL::Params_LS::kLayers * innerSegmentIndex]; - unsigned int secondMDIndex = segmentsInGPU.mdIndices[::SDL::Params_LS::kLayers * innerSegmentIndex + 1]; + unsigned int firstMDIndex = segmentsInGPU.mdIndices[Params_LS::kLayers * innerSegmentIndex]; + unsigned int secondMDIndex = segmentsInGPU.mdIndices[Params_LS::kLayers * innerSegmentIndex + 1]; - unsigned int thirdMDIndex = segmentsInGPU.mdIndices[::SDL::Params_LS::kLayers * outerSegmentIndex]; - unsigned int fourthMDIndex = segmentsInGPU.mdIndices[::SDL::Params_LS::kLayers * outerSegmentIndex + 1]; + unsigned int thirdMDIndex = segmentsInGPU.mdIndices[Params_LS::kLayers * outerSegmentIndex]; + unsigned int fourthMDIndex = segmentsInGPU.mdIndices[Params_LS::kLayers * outerSegmentIndex + 1]; if (outerInnerLowerModuleSubdet == SDL::Barrel and (outerOuterLowerModuleSubdet == SDL::Barrel or outerOuterLowerModuleSubdet == SDL::Endcap)) { @@ -765,7 +765,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { float a = -2.f * k2Rinv1GeVf * 100 * charge; // multiply by 100 to make the correct length units - for (size_t i = 0; i < ::SDL::Params_T3::kLayers; i++) { + for (size_t i = 0; i < Params_T3::kLayers; i++) { float zsi = zs[i] / 100; float rtsi = rts[i] / 100; uint16_t lowerModuleIndex = lowerModuleIndices[i]; @@ -845,9 +845,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { //run pT4 compatibility between the pixel segment and inner segment, and between the pixel and outer segment of the triplet uint16_t pixelModuleIndex = segmentsInGPU.innerLowerModuleIndices[pixelSegmentIndex]; - uint16_t lowerModuleIndex = tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * tripletIndex]; - uint16_t middleModuleIndex = tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * tripletIndex + 1]; - uint16_t upperModuleIndex = tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * tripletIndex + 2]; + uint16_t lowerModuleIndex = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * tripletIndex]; + uint16_t middleModuleIndex = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * tripletIndex + 1]; + uint16_t upperModuleIndex = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * tripletIndex + 2]; { //placeholder @@ -864,7 +864,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { lowerModuleIndex, middleModuleIndex, pixelSegmentIndex, - tripletsInGPU.segmentIndices[::SDL::Params_LS::kLayers * tripletIndex], + tripletsInGPU.segmentIndices[Params_LS::kLayers * tripletIndex], zOut, rtOut, deltaPhiPos, @@ -895,7 +895,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { middleModuleIndex, upperModuleIndex, pixelSegmentIndex, - tripletsInGPU.segmentIndices[::SDL::Params_LS::kLayers * tripletIndex + 1], + tripletsInGPU.segmentIndices[Params_LS::kLayers * tripletIndex + 1], zOut, rtOut, deltaPhiPos, @@ -930,8 +930,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { float pixelF = segmentsInGPU.circleCenterY[pixelSegmentArrayIndex]; float pixelRadiusPCA = segmentsInGPU.circleRadius[pixelSegmentArrayIndex]; - unsigned int pixelInnerMDIndex = segmentsInGPU.mdIndices[::SDL::Params_pLS::kLayers * pixelSegmentIndex]; - unsigned int pixelOuterMDIndex = segmentsInGPU.mdIndices[::SDL::Params_pLS::kLayers * pixelSegmentIndex + 1]; + unsigned int pixelInnerMDIndex = segmentsInGPU.mdIndices[Params_pLS::kLayers * pixelSegmentIndex]; + unsigned int pixelOuterMDIndex = segmentsInGPU.mdIndices[Params_pLS::kLayers * pixelSegmentIndex + 1]; pixelRadius = pixelSegmentPt * kR1GeVf; pixelRadiusError = pixelSegmentPtError * kR1GeVf; @@ -942,9 +942,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { unsigned int secondMDIndex = segmentsInGPU.mdIndices[2 * tripletInnerSegmentIndex + 1]; unsigned int thirdMDIndex = segmentsInGPU.mdIndices[2 * tripletOuterSegmentIndex + 1]; - float xs[::SDL::Params_T3::kLayers] = { + float xs[Params_T3::kLayers] = { mdsInGPU.anchorX[firstMDIndex], mdsInGPU.anchorX[secondMDIndex], mdsInGPU.anchorX[thirdMDIndex]}; - float ys[::SDL::Params_T3::kLayers] = { + float ys[Params_T3::kLayers] = { mdsInGPU.anchorY[firstMDIndex], mdsInGPU.anchorY[secondMDIndex], mdsInGPU.anchorY[thirdMDIndex]}; float g, f; @@ -962,17 +962,17 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { upperModuleIndex)) return false; - uint16_t lowerModuleIndices[::SDL::Params_T3::kLayers] = {lowerModuleIndex, middleModuleIndex, upperModuleIndex}; + uint16_t lowerModuleIndices[Params_T3::kLayers] = {lowerModuleIndex, middleModuleIndex, upperModuleIndex}; if (runChiSquaredCuts and pixelSegmentPt < 5.0f) { - float rts[::SDL::Params_T3::kLayers] = { + float rts[Params_T3::kLayers] = { mdsInGPU.anchorRt[firstMDIndex], mdsInGPU.anchorRt[secondMDIndex], mdsInGPU.anchorRt[thirdMDIndex]}; - float zs[::SDL::Params_T3::kLayers] = { + float zs[Params_T3::kLayers] = { mdsInGPU.anchorZ[firstMDIndex], mdsInGPU.anchorZ[secondMDIndex], mdsInGPU.anchorZ[thirdMDIndex]}; - float rtPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorRt[pixelInnerMDIndex], mdsInGPU.anchorRt[pixelOuterMDIndex]}; - float xPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorX[pixelInnerMDIndex], mdsInGPU.anchorX[pixelOuterMDIndex]}; - float yPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorY[pixelInnerMDIndex], mdsInGPU.anchorY[pixelOuterMDIndex]}; - float zPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorZ[pixelInnerMDIndex], mdsInGPU.anchorZ[pixelOuterMDIndex]}; + float rtPix[Params_pLS::kLayers] = {mdsInGPU.anchorRt[pixelInnerMDIndex], mdsInGPU.anchorRt[pixelOuterMDIndex]}; + float xPix[Params_pLS::kLayers] = {mdsInGPU.anchorX[pixelInnerMDIndex], mdsInGPU.anchorX[pixelOuterMDIndex]}; + float yPix[Params_pLS::kLayers] = {mdsInGPU.anchorY[pixelInnerMDIndex], mdsInGPU.anchorY[pixelOuterMDIndex]}; + float zPix[Params_pLS::kLayers] = {mdsInGPU.anchorZ[pixelInnerMDIndex], mdsInGPU.anchorZ[pixelOuterMDIndex]}; rzChiSquared = computePT3RZChiSquared(acc, modulesInGPU, @@ -1006,8 +1006,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { return false; } - float xPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorX[pixelInnerMDIndex], mdsInGPU.anchorX[pixelOuterMDIndex]}; - float yPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorY[pixelInnerMDIndex], mdsInGPU.anchorY[pixelOuterMDIndex]}; + float xPix[Params_pLS::kLayers] = {mdsInGPU.anchorX[pixelInnerMDIndex], mdsInGPU.anchorX[pixelOuterMDIndex]}; + float yPix[Params_pLS::kLayers] = {mdsInGPU.anchorY[pixelInnerMDIndex], mdsInGPU.anchorY[pixelOuterMDIndex]}; rPhiChiSquaredInwards = computePT3RPhiChiSquaredInwards(modulesInGPU, g, f, tripletRadius, xPix, yPix); if (runChiSquaredCuts and pixelSegmentPt < 5.0f) { @@ -1123,7 +1123,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { float score = rPhiChiSquared + rPhiChiSquaredInwards; unsigned int totOccupancyPixelTriplets = alpaka::atomicOp(acc, pixelTripletsInGPU.totOccupancyPixelTriplets, 1u); - if (totOccupancyPixelTriplets >= ::SDL::N_MAX_PIXEL_TRIPLETS) { + if (totOccupancyPixelTriplets >= N_MAX_PIXEL_TRIPLETS) { #ifdef Warnings printf("Pixel Triplet excess alert!\n"); #endif @@ -1828,7 +1828,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { #define PixelQuintuplet_cuh #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/Module.h" #include "Segment.h" #include "MiniDoublet.h" @@ -1837,7 +1837,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { #include "Quintuplet.h" #include "PixelTriplet.h" -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { struct pixelQuintuplets { unsigned int* pixelIndices; unsigned int* T5Indices; @@ -1912,9 +1912,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { score_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), eta_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), phi_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), - logicalLayers_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets * ::SDL::Params_pT5::kLayers, queue)), - hitIndices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets * ::SDL::Params_pT5::kHits, queue)), - lowerModuleIndices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets * ::SDL::Params_pT5::kLayers, queue)), + logicalLayers_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets * Params_pT5::kLayers, queue)), + hitIndices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets * Params_pT5::kHits, queue)), + lowerModuleIndices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets * Params_pT5::kLayers, queue)), pixelRadius_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), quintupletRadius_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), centerX_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), @@ -1958,66 +1958,66 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { pixelQuintupletsInGPU.centerX[pixelQuintupletIndex] = __F2H(centerX); pixelQuintupletsInGPU.centerY[pixelQuintupletIndex] = __F2H(centerY); - pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex] = 0; - pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 1] = 0; - pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 2] = - quintupletsInGPU.logicalLayers[T5Index * ::SDL::Params_T5::kLayers]; - pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 3] = - quintupletsInGPU.logicalLayers[T5Index * ::SDL::Params_T5::kLayers + 1]; - pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 4] = - quintupletsInGPU.logicalLayers[T5Index * ::SDL::Params_T5::kLayers + 2]; - pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 5] = - quintupletsInGPU.logicalLayers[T5Index * ::SDL::Params_T5::kLayers + 3]; - pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 6] = - quintupletsInGPU.logicalLayers[T5Index * ::SDL::Params_T5::kLayers + 4]; - - pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex] = + pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex] = 0; + pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex + 1] = 0; + pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex + 2] = + quintupletsInGPU.logicalLayers[T5Index * Params_T5::kLayers]; + pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex + 3] = + quintupletsInGPU.logicalLayers[T5Index * Params_T5::kLayers + 1]; + pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex + 4] = + quintupletsInGPU.logicalLayers[T5Index * Params_T5::kLayers + 2]; + pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex + 5] = + quintupletsInGPU.logicalLayers[T5Index * Params_T5::kLayers + 3]; + pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex + 6] = + quintupletsInGPU.logicalLayers[T5Index * Params_T5::kLayers + 4]; + + pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex] = segmentsInGPU.innerLowerModuleIndices[pixelIndex]; - pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 1] = + pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex + 1] = segmentsInGPU.outerLowerModuleIndices[pixelIndex]; - pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 2] = - quintupletsInGPU.lowerModuleIndices[T5Index * ::SDL::Params_T5::kLayers]; - pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 3] = - quintupletsInGPU.lowerModuleIndices[T5Index * ::SDL::Params_T5::kLayers + 1]; - pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 4] = - quintupletsInGPU.lowerModuleIndices[T5Index * ::SDL::Params_T5::kLayers + 2]; - pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 5] = - quintupletsInGPU.lowerModuleIndices[T5Index * ::SDL::Params_T5::kLayers + 3]; - pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex + 6] = - quintupletsInGPU.lowerModuleIndices[T5Index * ::SDL::Params_T5::kLayers + 4]; - - unsigned int pixelInnerMD = segmentsInGPU.mdIndices[::SDL::Params_pLS::kLayers * pixelIndex]; - unsigned int pixelOuterMD = segmentsInGPU.mdIndices[::SDL::Params_pLS::kLayers * pixelIndex + 1]; - - pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex] = + pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex + 2] = + quintupletsInGPU.lowerModuleIndices[T5Index * Params_T5::kLayers]; + pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex + 3] = + quintupletsInGPU.lowerModuleIndices[T5Index * Params_T5::kLayers + 1]; + pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex + 4] = + quintupletsInGPU.lowerModuleIndices[T5Index * Params_T5::kLayers + 2]; + pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex + 5] = + quintupletsInGPU.lowerModuleIndices[T5Index * Params_T5::kLayers + 3]; + pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex + 6] = + quintupletsInGPU.lowerModuleIndices[T5Index * Params_T5::kLayers + 4]; + + unsigned int pixelInnerMD = segmentsInGPU.mdIndices[Params_pLS::kLayers * pixelIndex]; + unsigned int pixelOuterMD = segmentsInGPU.mdIndices[Params_pLS::kLayers * pixelIndex + 1]; + + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex] = mdsInGPU.anchorHitIndices[pixelInnerMD]; - pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 1] = + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 1] = mdsInGPU.outerHitIndices[pixelInnerMD]; - pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 2] = + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 2] = mdsInGPU.anchorHitIndices[pixelOuterMD]; - pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 3] = + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 3] = mdsInGPU.outerHitIndices[pixelOuterMD]; - pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 4] = - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index]; - pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 5] = - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 1]; - pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 6] = - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 2]; - pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 7] = - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 3]; - pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 8] = - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 4]; - pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 9] = - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 5]; - pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 10] = - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 6]; - pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 11] = - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 7]; - pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 12] = - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 8]; - pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex + 13] = - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * T5Index + 9]; + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 4] = + quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index]; + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 5] = + quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 1]; + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 6] = + quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 2]; + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 7] = + quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 3]; + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 8] = + quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 4]; + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 9] = + quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 5]; + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 10] = + quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 6]; + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 11] = + quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 7]; + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 12] = + quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 8]; + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 13] = + quintupletsInGPU.hitIndices[Params_T5::kHits * T5Index + 9]; pixelQuintupletsInGPU.rzChiSquared[pixelQuintupletIndex] = rzChiSquared; pixelQuintupletsInGPU.rPhiChiSquared[pixelQuintupletIndex] = rPhiChiSquared; @@ -2520,23 +2520,23 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { unsigned int fourthMDIndex = segmentsInGPU.mdIndices[2 * thirdSegmentIndex + 1]; unsigned int fifthMDIndex = segmentsInGPU.mdIndices[2 * fourthSegmentIndex + 1]; - uint16_t lowerModuleIndex1 = quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex]; - uint16_t lowerModuleIndex2 = quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 1]; - uint16_t lowerModuleIndex3 = quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 2]; - uint16_t lowerModuleIndex4 = quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 3]; - uint16_t lowerModuleIndex5 = quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 4]; + uint16_t lowerModuleIndex1 = quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex]; + uint16_t lowerModuleIndex2 = quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 1]; + uint16_t lowerModuleIndex3 = quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 2]; + uint16_t lowerModuleIndex4 = quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 3]; + uint16_t lowerModuleIndex5 = quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 4]; - uint16_t lowerModuleIndices[::SDL::Params_T5::kLayers] = { + uint16_t lowerModuleIndices[Params_T5::kLayers] = { lowerModuleIndex1, lowerModuleIndex2, lowerModuleIndex3, lowerModuleIndex4, lowerModuleIndex5}; - float zPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorZ[pixelInnerMDIndex], mdsInGPU.anchorZ[pixelOuterMDIndex]}; - float rtPix[::SDL::Params_pLS::kLayers] = {mdsInGPU.anchorRt[pixelInnerMDIndex], mdsInGPU.anchorRt[pixelOuterMDIndex]}; - float zs[::SDL::Params_T5::kLayers] = {mdsInGPU.anchorZ[firstMDIndex], + float zPix[Params_pLS::kLayers] = {mdsInGPU.anchorZ[pixelInnerMDIndex], mdsInGPU.anchorZ[pixelOuterMDIndex]}; + float rtPix[Params_pLS::kLayers] = {mdsInGPU.anchorRt[pixelInnerMDIndex], mdsInGPU.anchorRt[pixelOuterMDIndex]}; + float zs[Params_T5::kLayers] = {mdsInGPU.anchorZ[firstMDIndex], mdsInGPU.anchorZ[secondMDIndex], mdsInGPU.anchorZ[thirdMDIndex], mdsInGPU.anchorZ[fourthMDIndex], mdsInGPU.anchorZ[fifthMDIndex]}; - float rts[::SDL::Params_T5::kLayers] = {mdsInGPU.anchorRt[firstMDIndex], + float rts[Params_T5::kLayers] = {mdsInGPU.anchorRt[firstMDIndex], mdsInGPU.anchorRt[secondMDIndex], mdsInGPU.anchorRt[thirdMDIndex], mdsInGPU.anchorRt[fourthMDIndex], @@ -2556,12 +2556,12 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { } //outer T5 - float xs[::SDL::Params_T5::kLayers] = {mdsInGPU.anchorX[firstMDIndex], + float xs[Params_T5::kLayers] = {mdsInGPU.anchorX[firstMDIndex], mdsInGPU.anchorX[secondMDIndex], mdsInGPU.anchorX[thirdMDIndex], mdsInGPU.anchorX[fourthMDIndex], mdsInGPU.anchorX[fifthMDIndex]}; - float ys[::SDL::Params_T5::kLayers] = {mdsInGPU.anchorY[firstMDIndex], + float ys[Params_T5::kLayers] = {mdsInGPU.anchorY[firstMDIndex], mdsInGPU.anchorY[secondMDIndex], mdsInGPU.anchorY[thirdMDIndex], mdsInGPU.anchorY[fourthMDIndex], @@ -2628,7 +2628,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { float error2 = 0; //hardcoded array indices!!! float RMSE = 0; - for (size_t i = 0; i < ::SDL::Params_T5::kLayers; i++) { + for (size_t i = 0; i < Params_T5::kLayers; i++) { uint16_t& lowerModuleIndex = lowerModuleIndices[i]; const int moduleType = modulesInGPU.moduleType[lowerModuleIndex]; const int moduleSide = modulesInGPU.sides[lowerModuleIndex]; @@ -2726,7 +2726,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { if (success) { unsigned int totOccupancyPixelQuintuplets = alpaka::atomicOp(acc, pixelQuintupletsInGPU.totOccupancyPixelQuintuplets, 1u); - if (totOccupancyPixelQuintuplets >= ::SDL::N_MAX_PIXEL_QUINTUPLETS) { + if (totOccupancyPixelQuintuplets >= N_MAX_PIXEL_QUINTUPLETS) { #ifdef Warnings printf("Pixel Quintuplet excess alert!\n"); #endif diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 7b99879c583ce..f4368bac18d8f 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -2,7 +2,7 @@ #define Quintuplet_cuh #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/Module.h" #include "RecoTracker/LSTCore/interface/EndcapGeometry.h" #include "NeuralNetwork.h" @@ -11,7 +11,7 @@ #include "Hit.h" #include "Triplet.h" -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { struct quintuplets { unsigned int* tripletIndices; uint16_t* lowerModuleIndices; @@ -103,7 +103,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { template quintupletsBuffer(unsigned int nTotalQuintuplets, unsigned int nLowerModules, TDevAcc const& devAccIn, TQueue& queue) : tripletIndices_buf(allocBufWrapper(devAccIn, 2 * nTotalQuintuplets, queue)), - lowerModuleIndices_buf(allocBufWrapper(devAccIn, ::SDL::Params_T5::kLayers * nTotalQuintuplets, queue)), + lowerModuleIndices_buf(allocBufWrapper(devAccIn, Params_T5::kLayers * nTotalQuintuplets, queue)), nQuintuplets_buf(allocBufWrapper(devAccIn, nLowerModules, queue)), totOccupancyQuintuplets_buf(allocBufWrapper(devAccIn, nLowerModules, queue)), nMemoryLocations_buf(allocBufWrapper(devAccIn, 1, queue)), @@ -121,8 +121,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { regressionRadius_buf(allocBufWrapper(devAccIn, nTotalQuintuplets, queue)), regressionG_buf(allocBufWrapper(devAccIn, nTotalQuintuplets, queue)), regressionF_buf(allocBufWrapper(devAccIn, nTotalQuintuplets, queue)), - logicalLayers_buf(allocBufWrapper(devAccIn, ::SDL::Params_T5::kLayers * nTotalQuintuplets, queue)), - hitIndices_buf(allocBufWrapper(devAccIn, ::SDL::Params_T5::kHits * nTotalQuintuplets, queue)), + logicalLayers_buf(allocBufWrapper(devAccIn, Params_T5::kLayers * nTotalQuintuplets, queue)), + hitIndices_buf(allocBufWrapper(devAccIn, Params_T5::kHits * nTotalQuintuplets, queue)), rzChiSquared_buf(allocBufWrapper(devAccIn, nTotalQuintuplets, queue)), chiSquared_buf(allocBufWrapper(devAccIn, nTotalQuintuplets, queue)), nonAnchorChiSquared_buf(allocBufWrapper(devAccIn, nTotalQuintuplets, queue)) { @@ -170,11 +170,11 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { quintupletsInGPU.tripletIndices[2 * quintupletIndex] = innerTripletIndex; quintupletsInGPU.tripletIndices[2 * quintupletIndex + 1] = outerTripletIndex; - quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex] = lowerModule1; - quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 1] = lowerModule2; - quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 2] = lowerModule3; - quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 3] = lowerModule4; - quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex + 4] = lowerModule5; + quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex] = lowerModule1; + quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 1] = lowerModule2; + quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 2] = lowerModule3; + quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 3] = lowerModule4; + quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex + 4] = lowerModule5; quintupletsInGPU.innerRadius[quintupletIndex] = __F2H(innerRadius); quintupletsInGPU.outerRadius[quintupletIndex] = __F2H(outerRadius); quintupletsInGPU.pt[quintupletIndex] = __F2H(pt); @@ -187,37 +187,37 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { quintupletsInGPU.regressionRadius[quintupletIndex] = regressionRadius; quintupletsInGPU.regressionG[quintupletIndex] = regressionG; quintupletsInGPU.regressionF[quintupletIndex] = regressionF; - quintupletsInGPU.logicalLayers[::SDL::Params_T5::kLayers * quintupletIndex] = - tripletsInGPU.logicalLayers[::SDL::Params_T3::kLayers * innerTripletIndex]; - quintupletsInGPU.logicalLayers[::SDL::Params_T5::kLayers * quintupletIndex + 1] = - tripletsInGPU.logicalLayers[::SDL::Params_T3::kLayers * innerTripletIndex + 1]; - quintupletsInGPU.logicalLayers[::SDL::Params_T5::kLayers * quintupletIndex + 2] = - tripletsInGPU.logicalLayers[::SDL::Params_T3::kLayers * innerTripletIndex + 2]; - quintupletsInGPU.logicalLayers[::SDL::Params_T5::kLayers * quintupletIndex + 3] = - tripletsInGPU.logicalLayers[::SDL::Params_T3::kLayers * outerTripletIndex + 1]; - quintupletsInGPU.logicalLayers[::SDL::Params_T5::kLayers * quintupletIndex + 4] = - tripletsInGPU.logicalLayers[::SDL::Params_T3::kLayers * outerTripletIndex + 2]; - - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * innerTripletIndex]; - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 1] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * innerTripletIndex + 1]; - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 2] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * innerTripletIndex + 2]; - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 3] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * innerTripletIndex + 3]; - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 4] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * innerTripletIndex + 4]; - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 5] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * innerTripletIndex + 5]; - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 6] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * outerTripletIndex + 2]; - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 7] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * outerTripletIndex + 3]; - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 8] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * outerTripletIndex + 4]; - quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex + 9] = - tripletsInGPU.hitIndices[::SDL::Params_T3::kHits * outerTripletIndex + 5]; + quintupletsInGPU.logicalLayers[Params_T5::kLayers * quintupletIndex] = + tripletsInGPU.logicalLayers[Params_T3::kLayers * innerTripletIndex]; + quintupletsInGPU.logicalLayers[Params_T5::kLayers * quintupletIndex + 1] = + tripletsInGPU.logicalLayers[Params_T3::kLayers * innerTripletIndex + 1]; + quintupletsInGPU.logicalLayers[Params_T5::kLayers * quintupletIndex + 2] = + tripletsInGPU.logicalLayers[Params_T3::kLayers * innerTripletIndex + 2]; + quintupletsInGPU.logicalLayers[Params_T5::kLayers * quintupletIndex + 3] = + tripletsInGPU.logicalLayers[Params_T3::kLayers * outerTripletIndex + 1]; + quintupletsInGPU.logicalLayers[Params_T5::kLayers * quintupletIndex + 4] = + tripletsInGPU.logicalLayers[Params_T3::kLayers * outerTripletIndex + 2]; + + quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex] = + tripletsInGPU.hitIndices[Params_T3::kHits * innerTripletIndex]; + quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 1] = + tripletsInGPU.hitIndices[Params_T3::kHits * innerTripletIndex + 1]; + quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 2] = + tripletsInGPU.hitIndices[Params_T3::kHits * innerTripletIndex + 2]; + quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 3] = + tripletsInGPU.hitIndices[Params_T3::kHits * innerTripletIndex + 3]; + quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 4] = + tripletsInGPU.hitIndices[Params_T3::kHits * innerTripletIndex + 4]; + quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 5] = + tripletsInGPU.hitIndices[Params_T3::kHits * innerTripletIndex + 5]; + quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 6] = + tripletsInGPU.hitIndices[Params_T3::kHits * outerTripletIndex + 2]; + quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 7] = + tripletsInGPU.hitIndices[Params_T3::kHits * outerTripletIndex + 3]; + quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 8] = + tripletsInGPU.hitIndices[Params_T3::kHits * outerTripletIndex + 4]; + quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex + 9] = + tripletsInGPU.hitIndices[Params_T3::kHits * outerTripletIndex + 5]; quintupletsInGPU.bridgeRadius[quintupletIndex] = bridgeRadius; quintupletsInGPU.rzChiSquared[quintupletIndex] = rzChiSquared; quintupletsInGPU.chiSquared[quintupletIndex] = rPhiChiSquared; @@ -2878,7 +2878,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { computeSigmasForRegression(acc, modulesInGPU, lowerModuleIndices, delta1, delta2, slopes, isFlat); regressionRadius = computeRadiusUsingRegression(acc, - ::SDL::Params_T5::kLayers, + Params_T5::kLayers, xVec, yVec, delta1, @@ -2927,7 +2927,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { //compute the other chisquared //non anchor is always shifted for tilted and endcap! - float nonAnchorDelta1[::SDL::Params_T5::kLayers], nonAnchorDelta2[::SDL::Params_T5::kLayers], nonAnchorSlopes[::SDL::Params_T5::kLayers]; + float nonAnchorDelta1[Params_T5::kLayers], nonAnchorDelta2[Params_T5::kLayers], nonAnchorSlopes[Params_T5::kLayers]; float nonAnchorxs[] = {mdsInGPU.outerX[firstMDIndex], mdsInGPU.outerX[secondMDIndex], mdsInGPU.outerX[thirdMDIndex], @@ -2946,10 +2946,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { nonAnchorDelta2, nonAnchorSlopes, isFlat, - ::SDL::Params_T5::kLayers, + Params_T5::kLayers, false); nonAnchorChiSquared = computeChiSquared(acc, - ::SDL::Params_T5::kLayers, + Params_T5::kLayers, nonAnchorxs, nonAnchorys, nonAnchorDelta1, @@ -2992,14 +2992,14 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { for (unsigned int innerTripletArrayIndex = globalThreadIdx[1]; innerTripletArrayIndex < nInnerTriplets; innerTripletArrayIndex += gridThreadExtent[1]) { unsigned int innerTripletIndex = rangesInGPU.tripletModuleIndices[lowerModule1] + innerTripletArrayIndex; - uint16_t lowerModule2 = tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * innerTripletIndex + 1]; - uint16_t lowerModule3 = tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * innerTripletIndex + 2]; + uint16_t lowerModule2 = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * innerTripletIndex + 1]; + uint16_t lowerModule3 = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * innerTripletIndex + 2]; unsigned int nOuterTriplets = tripletsInGPU.nTriplets[lowerModule3]; for (unsigned int outerTripletArrayIndex = globalThreadIdx[2]; outerTripletArrayIndex < nOuterTriplets; outerTripletArrayIndex += gridThreadExtent[2]) { unsigned int outerTripletIndex = rangesInGPU.tripletModuleIndices[lowerModule3] + outerTripletArrayIndex; - uint16_t lowerModule4 = tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * outerTripletIndex + 1]; - uint16_t lowerModule5 = tripletsInGPU.lowerModuleIndices[::SDL::Params_T3::kLayers * outerTripletIndex + 2]; + uint16_t lowerModule4 = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * outerTripletIndex + 1]; + uint16_t lowerModule5 = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * outerTripletIndex + 2]; float innerRadius, outerRadius, bridgeRadius, regressionG, regressionF, regressionRadius, rzChiSquared, chiSquared, nonAnchorChiSquared; //required for making distributions diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index 583bf7b1df4f0..3216afa7092e3 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -2,13 +2,13 @@ #define Segment_cuh #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/Module.h" #include "RecoTracker/LSTCore/interface/EndcapGeometry.h" #include "MiniDoublet.h" #include "Hit.h" -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { struct segments { FPX* dPhis; FPX* dPhiMins; @@ -794,7 +794,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { for (uint16_t outerLowerModuleArrayIdx = blockThreadIdx[1]; outerLowerModuleArrayIdx < nConnectedModules; outerLowerModuleArrayIdx += blockThreadExtent[1]) { uint16_t outerLowerModuleIndex = - modulesInGPU.moduleMap[innerLowerModuleIndex * ::SDL::MAX_CONNECTED_MODULES + outerLowerModuleArrayIdx]; + modulesInGPU.moduleMap[innerLowerModuleIndex * MAX_CONNECTED_MODULES + outerLowerModuleArrayIdx]; unsigned int nOuterMDs = mdsInGPU.nMDs[outerLowerModuleIndex]; @@ -1068,7 +1068,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { (hitsInGPU.zs[mdsInGPU.anchorHitIndices[outerMDIndex]]); score_lsq = score_lsq * score_lsq; - unsigned int hits1[::SDL::Params_pLS::kHits]; + unsigned int hits1[Params_pLS::kHits]; hits1[0] = hitsInGPU.idxs[mdsInGPU.anchorHitIndices[innerMDIndex]]; hits1[1] = hitsInGPU.idxs[mdsInGPU.anchorHitIndices[outerMDIndex]]; hits1[2] = hitsInGPU.idxs[mdsInGPU.outerHitIndices[innerMDIndex]]; diff --git a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h index dc522b72f200b..fbf97c97c3c17 100644 --- a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h +++ b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h @@ -2,7 +2,7 @@ #define TrackCandidate_cuh #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/Module.h" #include "Triplet.h" #include "Segment.h" @@ -11,7 +11,7 @@ #include "Quintuplet.h" #include "Hit.h" -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { struct trackCandidates { short* trackCandidateType; // 4-T5 5-pT3 7-pT5 8-pLS unsigned int* directObjectIndices; // Will hold direct indices to each type containers @@ -83,10 +83,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { nTrackCandidatespT5_buf(allocBufWrapper(devAccIn, 1, queue)), nTrackCandidatespLS_buf(allocBufWrapper(devAccIn, 1, queue)), nTrackCandidatesT5_buf(allocBufWrapper(devAccIn, 1, queue)), - logicalLayers_buf(allocBufWrapper(devAccIn, ::SDL::Params_pT5::kLayers * maxTrackCandidates, queue)), - hitIndices_buf(allocBufWrapper(devAccIn, ::SDL::Params_pT5::kHits * maxTrackCandidates, queue)), + logicalLayers_buf(allocBufWrapper(devAccIn, Params_pT5::kLayers * maxTrackCandidates, queue)), + hitIndices_buf(allocBufWrapper(devAccIn, Params_pT5::kHits * maxTrackCandidates, queue)), pixelSeedIndex_buf(allocBufWrapper(devAccIn, maxTrackCandidates, queue)), - lowerModuleIndices_buf(allocBufWrapper(devAccIn, ::SDL::Params_pT5::kLayers * maxTrackCandidates, queue)), + lowerModuleIndices_buf(allocBufWrapper(devAccIn, Params_pT5::kLayers * maxTrackCandidates, queue)), centerX_buf(allocBufWrapper(devAccIn, maxTrackCandidates, queue)), centerY_buf(allocBufWrapper(devAccIn, maxTrackCandidates, queue)), radius_buf(allocBufWrapper(devAccIn, maxTrackCandidates, queue)) { @@ -115,11 +115,11 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { trackCandidatesInGPU.objectIndices[2 * trackCandidateIndex] = trackletIndex; trackCandidatesInGPU.objectIndices[2 * trackCandidateIndex + 1] = trackletIndex; - trackCandidatesInGPU.hitIndices[::SDL::Params_pT5::kHits * trackCandidateIndex + 0] = + trackCandidatesInGPU.hitIndices[Params_pT5::kHits * trackCandidateIndex + 0] = hitIndices.x; // Order explanation in https://github.com/SegmentLinking/TrackLooper/issues/267 - trackCandidatesInGPU.hitIndices[::SDL::Params_pT5::kHits * trackCandidateIndex + 1] = hitIndices.z; - trackCandidatesInGPU.hitIndices[::SDL::Params_pT5::kHits * trackCandidateIndex + 2] = hitIndices.y; - trackCandidatesInGPU.hitIndices[::SDL::Params_pT5::kHits * trackCandidateIndex + 3] = hitIndices.w; + trackCandidatesInGPU.hitIndices[Params_pT5::kHits * trackCandidateIndex + 1] = hitIndices.z; + trackCandidatesInGPU.hitIndices[Params_pT5::kHits * trackCandidateIndex + 2] = hitIndices.y; + trackCandidatesInGPU.hitIndices[Params_pT5::kHits * trackCandidateIndex + 3] = hitIndices.w; }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTrackCandidateToMemory(struct SDL::trackCandidates& trackCandidatesInGPU, @@ -143,16 +143,16 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { trackCandidatesInGPU.objectIndices[2 * trackCandidateIndex + 1] = outerTrackletIndex; size_t limits = trackCandidateType == 7 - ? ::SDL::Params_pT5::kLayers - : ::SDL::Params_pT3::kLayers; // 7 means pT5, ::SDL::Params_pT3::kLayers = ::SDL::Params_T5::kLayers = 5 + ? Params_pT5::kLayers + : Params_pT3::kLayers; // 7 means pT5, Params_pT3::kLayers = Params_T5::kLayers = 5 //send the starting pointer to the logicalLayer and hitIndices for (size_t i = 0; i < limits; i++) { - trackCandidatesInGPU.logicalLayers[::SDL::Params_pT5::kLayers * trackCandidateIndex + i] = logicalLayerIndices[i]; - trackCandidatesInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * trackCandidateIndex + i] = lowerModuleIndices[i]; + trackCandidatesInGPU.logicalLayers[Params_pT5::kLayers * trackCandidateIndex + i] = logicalLayerIndices[i]; + trackCandidatesInGPU.lowerModuleIndices[Params_pT5::kLayers * trackCandidateIndex + i] = lowerModuleIndices[i]; } for (size_t i = 0; i < 2 * limits; i++) { - trackCandidatesInGPU.hitIndices[::SDL::Params_pT5::kHits * trackCandidateIndex + i] = hitIndices[i]; + trackCandidatesInGPU.hitIndices[Params_pT5::kHits * trackCandidateIndex + i] = hitIndices[i]; } trackCandidatesInGPU.centerX[trackCandidateIndex] = __F2H(centerX); trackCandidatesInGPU.centerY[trackCandidateIndex] = __F2H(centerY); @@ -164,8 +164,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { struct SDL::miniDoublets& mdsInGPU, struct SDL::segments& segmentsInGPU, struct SDL::hits& hitsInGPU) { - int phits1[::SDL::Params_pLS::kHits]; - int phits2[::SDL::Params_pLS::kHits]; + int phits1[Params_pLS::kHits]; + int phits2[Params_pLS::kHits]; phits1[0] = hitsInGPU.idxs[mdsInGPU.anchorHitIndices[segmentsInGPU.mdIndices[2 * ix]]]; phits1[1] = hitsInGPU.idxs[mdsInGPU.anchorHitIndices[segmentsInGPU.mdIndices[2 * ix + 1]]]; @@ -179,12 +179,12 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { int npMatched = 0; - for (int i = 0; i < ::SDL::Params_pLS::kHits; i++) { + for (int i = 0; i < Params_pLS::kHits; i++) { bool pmatched = false; if (phits1[i] == -1) continue; - for (int j = 0; j < ::SDL::Params_pLS::kHits; j++) { + for (int j = 0; j < Params_pLS::kHits; j++) { if (phits2[j] == -1) continue; @@ -398,7 +398,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { unsigned int trackCandidateIdx = alpaka::atomicOp(acc, trackCandidatesInGPU.nTrackCandidates, 1u); - if (trackCandidateIdx >= ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES) // This is done before any non-pixel TCs are added + if (trackCandidateIdx >= N_MAX_PIXEL_TRACK_CANDIDATES) // This is done before any non-pixel TCs are added { #ifdef Warnings printf("Track Candidate excess alert! Type = pT3"); @@ -416,9 +416,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { 5 /*track candidate type pT3=5*/, pixelTripletIndex, pixelTripletIndex, - &pixelTripletsInGPU.logicalLayers[::SDL::Params_pT3::kLayers * pixelTripletIndex], - &pixelTripletsInGPU.lowerModuleIndices[::SDL::Params_pT3::kLayers * pixelTripletIndex], - &pixelTripletsInGPU.hitIndices[::SDL::Params_pT3::kHits * pixelTripletIndex], + &pixelTripletsInGPU.logicalLayers[Params_pT3::kLayers * pixelTripletIndex], + &pixelTripletsInGPU.lowerModuleIndices[Params_pT3::kLayers * pixelTripletIndex], + &pixelTripletsInGPU.hitIndices[Params_pT3::kHits * pixelTripletIndex], segmentsInGPU.seedIdx[pT3PixelIndex - pLS_offset], __H2F(pixelTripletsInGPU.centerX[pixelTripletIndex]), __H2F(pixelTripletsInGPU.centerY[pixelTripletIndex]), @@ -456,7 +456,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { alpaka::atomicOp(acc, trackCandidatesInGPU.nTrackCandidates, 1u); if (trackCandidateIdx - *trackCandidatesInGPU.nTrackCandidatespT5 - *trackCandidatesInGPU.nTrackCandidatespT3 >= - ::SDL::N_MAX_NONPIXEL_TRACK_CANDIDATES) // pT5 and pT3 TCs have been added, but not pLS TCs + N_MAX_NONPIXEL_TRACK_CANDIDATES) // pT5 and pT3 TCs have been added, but not pLS TCs { #ifdef Warnings printf("Track Candidate excess alert! Type = T5"); @@ -469,9 +469,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { 4 /*track candidate type T5=4*/, quintupletIndex, quintupletIndex, - &quintupletsInGPU.logicalLayers[::SDL::Params_T5::kLayers * quintupletIndex], - &quintupletsInGPU.lowerModuleIndices[::SDL::Params_T5::kLayers * quintupletIndex], - &quintupletsInGPU.hitIndices[::SDL::Params_T5::kHits * quintupletIndex], + &quintupletsInGPU.logicalLayers[Params_T5::kLayers * quintupletIndex], + &quintupletsInGPU.lowerModuleIndices[Params_T5::kLayers * quintupletIndex], + &quintupletsInGPU.hitIndices[Params_T5::kHits * quintupletIndex], -1 /*no pixel seed index for T5s*/, quintupletsInGPU.regressionG[quintupletIndex], quintupletsInGPU.regressionF[quintupletIndex], @@ -503,7 +503,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { unsigned int trackCandidateIdx = alpaka::atomicOp(acc, trackCandidatesInGPU.nTrackCandidates, 1u); if (trackCandidateIdx - *trackCandidatesInGPU.nTrackCandidatesT5 >= - ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES) // T5 TCs have already been added + N_MAX_PIXEL_TRACK_CANDIDATES) // T5 TCs have already been added { #ifdef Warnings printf("Track Candidate excess alert! Type = pLS"); @@ -543,7 +543,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { unsigned int trackCandidateIdx = alpaka::atomicOp(acc, trackCandidatesInGPU.nTrackCandidates, 1u); - if (trackCandidateIdx >= ::SDL::N_MAX_PIXEL_TRACK_CANDIDATES) // No other TCs have been added yet + if (trackCandidateIdx >= N_MAX_PIXEL_TRACK_CANDIDATES) // No other TCs have been added yet { #ifdef Warnings printf("Track Candidate excess alert! Type = pT5"); @@ -562,9 +562,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { 7 /*track candidate type pT5=7*/, pT5PixelIndex, pixelQuintupletsInGPU.T5Indices[pixelQuintupletIndex], - &pixelQuintupletsInGPU.logicalLayers[::SDL::Params_pT5::kLayers * pixelQuintupletIndex], - &pixelQuintupletsInGPU.lowerModuleIndices[::SDL::Params_pT5::kLayers * pixelQuintupletIndex], - &pixelQuintupletsInGPU.hitIndices[::SDL::Params_pT5::kHits * pixelQuintupletIndex], + &pixelQuintupletsInGPU.logicalLayers[Params_pT5::kLayers * pixelQuintupletIndex], + &pixelQuintupletsInGPU.lowerModuleIndices[Params_pT5::kLayers * pixelQuintupletIndex], + &pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex], segmentsInGPU.seedIdx[pT5PixelIndex - pLS_offset], __H2F(pixelQuintupletsInGPU.centerX[pixelQuintupletIndex]), __H2F(pixelQuintupletsInGPU.centerY[pixelQuintupletIndex]), diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index 9d5e16df41756..793a3186174b1 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -2,13 +2,13 @@ #define Triplet_cuh #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" -#include "RecoTracker/LSTCore/interface/alpaka/Module.h" +#include "RecoTracker/LSTCore/interface/Module.h" #include "Segment.h" #include "MiniDoublet.h" #include "Hit.h" -namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { +namespace SDL { struct triplets { unsigned int* segmentIndices; uint16_t* lowerModuleIndices; //3 of them now @@ -108,12 +108,12 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { template tripletsBuffer(unsigned int maxTriplets, unsigned int nLowerModules, TDevAcc const& devAccIn, TQueue& queue) : segmentIndices_buf(allocBufWrapper(devAccIn, 2 * maxTriplets, queue)), - lowerModuleIndices_buf(allocBufWrapper(devAccIn, ::SDL::Params_T3::kLayers * maxTriplets, queue)), + lowerModuleIndices_buf(allocBufWrapper(devAccIn, Params_T3::kLayers * maxTriplets, queue)), nTriplets_buf(allocBufWrapper(devAccIn, nLowerModules, queue)), totOccupancyTriplets_buf(allocBufWrapper(devAccIn, nLowerModules, queue)), nMemoryLocations_buf(allocBufWrapper(devAccIn, 1, queue)), - logicalLayers_buf(allocBufWrapper(devAccIn, maxTriplets * ::SDL::Params_T3::kLayers, queue)), - hitIndices_buf(allocBufWrapper(devAccIn, maxTriplets * ::SDL::Params_T3::kHits, queue)), + logicalLayers_buf(allocBufWrapper(devAccIn, maxTriplets * Params_T3::kLayers, queue)), + hitIndices_buf(allocBufWrapper(devAccIn, maxTriplets * Params_T3::kHits, queue)), betaIn_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), circleRadius_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), circleCenterX_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), @@ -191,31 +191,31 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::SDL { { tripletsInGPU.segmentIndices[tripletIndex * 2] = innerSegmentIndex; tripletsInGPU.segmentIndices[tripletIndex * 2 + 1] = outerSegmentIndex; - tripletsInGPU.lowerModuleIndices[tripletIndex * ::SDL::Params_T3::kLayers] = innerInnerLowerModuleIndex; - tripletsInGPU.lowerModuleIndices[tripletIndex * ::SDL::Params_T3::kLayers + 1] = middleLowerModuleIndex; - tripletsInGPU.lowerModuleIndices[tripletIndex * ::SDL::Params_T3::kLayers + 2] = outerOuterLowerModuleIndex; + tripletsInGPU.lowerModuleIndices[tripletIndex * Params_T3::kLayers] = innerInnerLowerModuleIndex; + tripletsInGPU.lowerModuleIndices[tripletIndex * Params_T3::kLayers + 1] = middleLowerModuleIndex; + tripletsInGPU.lowerModuleIndices[tripletIndex * Params_T3::kLayers + 2] = outerOuterLowerModuleIndex; tripletsInGPU.betaIn[tripletIndex] = __F2H(betaIn); tripletsInGPU.circleRadius[tripletIndex] = circleRadius; tripletsInGPU.circleCenterX[tripletIndex] = circleCenterX; tripletsInGPU.circleCenterY[tripletIndex] = circleCenterY; - tripletsInGPU.logicalLayers[tripletIndex * ::SDL::Params_T3::kLayers] = + tripletsInGPU.logicalLayers[tripletIndex * Params_T3::kLayers] = modulesInGPU.layers[innerInnerLowerModuleIndex] + (modulesInGPU.subdets[innerInnerLowerModuleIndex] == 4) * 6; - tripletsInGPU.logicalLayers[tripletIndex * ::SDL::Params_T3::kLayers + 1] = + tripletsInGPU.logicalLayers[tripletIndex * Params_T3::kLayers + 1] = modulesInGPU.layers[middleLowerModuleIndex] + (modulesInGPU.subdets[middleLowerModuleIndex] == 4) * 6; - tripletsInGPU.logicalLayers[tripletIndex * ::SDL::Params_T3::kLayers + 2] = + tripletsInGPU.logicalLayers[tripletIndex * Params_T3::kLayers + 2] = modulesInGPU.layers[outerOuterLowerModuleIndex] + (modulesInGPU.subdets[outerOuterLowerModuleIndex] == 4) * 6; //get the hits unsigned int firstMDIndex = segmentsInGPU.mdIndices[2 * innerSegmentIndex]; unsigned int secondMDIndex = segmentsInGPU.mdIndices[2 * innerSegmentIndex + 1]; unsigned int thirdMDIndex = segmentsInGPU.mdIndices[2 * outerSegmentIndex + 1]; - tripletsInGPU.hitIndices[tripletIndex * ::SDL::Params_T3::kHits] = mdsInGPU.anchorHitIndices[firstMDIndex]; - tripletsInGPU.hitIndices[tripletIndex * ::SDL::Params_T3::kHits + 1] = mdsInGPU.outerHitIndices[firstMDIndex]; - tripletsInGPU.hitIndices[tripletIndex * ::SDL::Params_T3::kHits + 2] = mdsInGPU.anchorHitIndices[secondMDIndex]; - tripletsInGPU.hitIndices[tripletIndex * ::SDL::Params_T3::kHits + 3] = mdsInGPU.outerHitIndices[secondMDIndex]; - tripletsInGPU.hitIndices[tripletIndex * ::SDL::Params_T3::kHits + 4] = mdsInGPU.anchorHitIndices[thirdMDIndex]; - tripletsInGPU.hitIndices[tripletIndex * ::SDL::Params_T3::kHits + 5] = mdsInGPU.outerHitIndices[thirdMDIndex]; + tripletsInGPU.hitIndices[tripletIndex * Params_T3::kHits] = mdsInGPU.anchorHitIndices[firstMDIndex]; + tripletsInGPU.hitIndices[tripletIndex * Params_T3::kHits + 1] = mdsInGPU.outerHitIndices[firstMDIndex]; + tripletsInGPU.hitIndices[tripletIndex * Params_T3::kHits + 2] = mdsInGPU.anchorHitIndices[secondMDIndex]; + tripletsInGPU.hitIndices[tripletIndex * Params_T3::kHits + 3] = mdsInGPU.outerHitIndices[secondMDIndex]; + tripletsInGPU.hitIndices[tripletIndex * Params_T3::kHits + 4] = mdsInGPU.anchorHitIndices[thirdMDIndex]; + tripletsInGPU.hitIndices[tripletIndex * Params_T3::kHits + 5] = mdsInGPU.outerHitIndices[thirdMDIndex]; #ifdef CUT_VALUE_DEBUG tripletsInGPU.zOut[tripletIndex] = zOut; tripletsInGPU.rtOut[tripletIndex] = rtOut; From c4ac510a038f0107a917099ea0d08de58d03a0c2 Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Wed, 17 Jul 2024 11:10:51 -0700 Subject: [PATCH 4/7] Fixed standalone compilation --- RecoTracker/LSTCore/standalone/Makefile | 2 +- RecoTracker/LSTCore/standalone/SDL/Makefile | 18 +++- RecoTracker/LSTCore/standalone/bin/sdl.cc | 16 ++-- .../standalone/code/core/AccessHelper.cc | 96 ++++++++++--------- .../standalone/code/core/AccessHelper.h | 96 +++++++++---------- .../standalone/code/core/AnalysisConfig.h | 2 +- .../LSTCore/standalone/code/core/trkCore.cc | 24 ++--- .../LSTCore/standalone/code/core/trkCore.h | 28 +++--- .../standalone/code/core/write_sdl_ntuple.cc | 44 +++++---- .../standalone/code/core/write_sdl_ntuple.h | 50 +++++----- 10 files changed, 197 insertions(+), 179 deletions(-) diff --git a/RecoTracker/LSTCore/standalone/Makefile b/RecoTracker/LSTCore/standalone/Makefile index 4e8071b3e7a80..bd33806a3c059 100644 --- a/RecoTracker/LSTCore/standalone/Makefile +++ b/RecoTracker/LSTCore/standalone/Makefile @@ -10,7 +10,7 @@ OBJECTS=$(OBJECTS_CPU) $(OBJECTS_CUDA) $(OBJECTS_ROCM) CXX = g++ CXXFLAGS = -g -O2 -Wall -fPIC -Wshadow -Woverloaded-virtual -Wno-unused-function -fno-var-tracking -std=c++17 -INCLUDEFLAGS= -ISDL -I$(shell pwd) -Icode -Icode/core -I${ALPAKA_ROOT}/include -I/${BOOST_ROOT}/include $(shell rooutil-config --include) -I$(shell root-config --incdir) -I${TRACKLOOPERDIR}/../../../ -I${CMSSW_BASE}/src -I../interface/alpaka/ -I../src/alpaka/ +INCLUDEFLAGS= -ISDL -I$(shell pwd) -Icode -Icode/core -I${ALPAKA_ROOT}/include -I/${BOOST_ROOT}/include $(shell rooutil-config --include) -I$(shell root-config --incdir) -I${TRACKLOOPERDIR}/../../../ -I${CMSSW_BASE}/src -I../interface/ -I../interface/alpaka/ -I../src/ -I../src/alpaka/ ifdef CMSSW_RELEASE_BASE INCLUDEFLAGS:= ${INCLUDEFLAGS} -I${CMSSW_RELEASE_BASE}/src endif diff --git a/RecoTracker/LSTCore/standalone/SDL/Makefile b/RecoTracker/LSTCore/standalone/SDL/Makefile index df2fbb6d9f8af..4a90bd4c1301c 100644 --- a/RecoTracker/LSTCore/standalone/SDL/Makefile +++ b/RecoTracker/LSTCore/standalone/SDL/Makefile @@ -2,10 +2,11 @@ # stuff to make # -CCSOURCES=$(filter-out ../../src.alpaka/LST.dev.cc, $(wildcard ../../src/alpaka/*.dev.cc)) -CCOBJECTS_CPU=$(patsubst ../../src/alpaka/%.dev.cc, %_cpu.o, $(CCSOURCES)) -CCOBJECTS_CUDA=$(patsubst ../../src/alpaka/%.dev.cc, %_cuda.o, $(CCSOURCES)) -CCOBJECTS_ROCM=$(patsubst ../../src/alpaka/%.dev.cc, %_rocm.o, $(CCSOURCES)) +CCSOURCES=$(wildcard ../../src/*.cc) +ALPAKACCSOURCES=$(filter-out ../../src.alpaka/LST.dev.cc, $(wildcard ../../src/alpaka/*.dev.cc)) +CCOBJECTS_CPU=$(patsubst ../../src/alpaka/%.dev.cc, %_cpu.o, $(ALPAKACCSOURCES)) $(patsubst ../../src/%.cc, %_cpu.o, $(CCSOURCES)) +CCOBJECTS_CUDA=$(patsubst ../../src/alpaka/%.dev.cc, %_cuda.o, $(ALPAKACCSOURCES)) $(patsubst ../../src/%.cc, %_cuda.o, $(CCSOURCES)) +CCOBJECTS_ROCM=$(patsubst ../../src/alpaka/%.dev.cc, %_rocm.o, $(ALPAKACCSOURCES)) $(patsubst ../../src/%.cc, %_rocm.o, $(CCSOURCES)) LSTSOURCES=../../src/alpaka/LST.dev.cc LSTOBJECTS_CPU=$(patsubst ../../src/alpaka/%.dev.cc, %_cpu.o, $(LSTSOURCES)) @@ -99,6 +100,15 @@ CUTVALUEFLAG_FLAGS = -DCUT_VALUE_DEBUG %_rocm.o: ../../src/alpaka/%.dev.cc $(COMPILE_CMD_ROCM) $(CXXFLAGS_ROCM) $(ROOTINCLUDE) $(PRINTFLAG) $(CACHEFLAG) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_ROCM) $(T5CUTFLAGS) $(PTCUTFLAG) $(DUPLICATES) $(ALPAKAINCLUDE) $(ALPAKABACKEND_ROCM) $< -o $@ +%_cpu.o: ../../src/%.cc + $(COMPILE_CMD_CPU) $(CXXFLAGS_CPU) $(ROOTINCLUDE) $(PRINTFLAG) $(CACHEFLAG) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_CPU) $(T5CUTFLAGS) $(PTCUTFLAG) $(DUPLICATES) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CPU) $< -o $@ + +%_cuda.o: ../../src/%.cc + $(COMPILE_CMD_CUDA) $(CXXFLAGS_CUDA) $(ROOTINCLUDE) $(PRINTFLAG) $(CACHEFLAG) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_CUDA) $(T5CUTFLAGS) $(PTCUTFLAG) $(DUPLICATES) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CUDA) $< -o $@ + +%_rocm.o: ../../src/%.cc + $(COMPILE_CMD_ROCM) $(CXXFLAGS_ROCM) $(ROOTINCLUDE) $(PRINTFLAG) $(CACHEFLAG) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_ROCM) $(T5CUTFLAGS) $(PTCUTFLAG) $(DUPLICATES) $(ALPAKAINCLUDE) $(ALPAKABACKEND_ROCM) $< -o $@ + $(LIB_CPU): $(CCOBJECTS_CPU) $(LSTOBJECTS_CPU) $(LD_CPU) $(SOFLAGS_CPU) $^ -o $@ diff --git a/RecoTracker/LSTCore/standalone/bin/sdl.cc b/RecoTracker/LSTCore/standalone/bin/sdl.cc index b6bba324801dd..61639b73068d0 100644 --- a/RecoTracker/LSTCore/standalone/bin/sdl.cc +++ b/RecoTracker/LSTCore/standalone/bin/sdl.cc @@ -2,6 +2,8 @@ #include +using namespace ALPAKA_ACCELERATOR_NAMESPACE; + //___________________________________________________________________________________________________________________________________________________________________________________________ int main(int argc, char **argv) { //******************************************************************************** @@ -253,7 +255,7 @@ int main(int argc, char **argv) { // Printing out the option settings overview std::cout << "=========================================================" << std::endl; - std::cout << " Running for Acc = " << alpaka::getAccName() << std::endl; + std::cout << " Running for Acc = " << alpaka::getAccName() << std::endl; std::cout << " Setting of the analysis job based on provided arguments " << std::endl; std::cout << "---------------------------------------------------------" << std::endl; std::cout << " ana.input_file_list_tstring: " << ana.input_file_list_tstring << std::endl; @@ -296,10 +298,10 @@ int main(int argc, char **argv) { //___________________________________________________________________________________________________________________________________________________________________________________________ void run_sdl() { - SDL::Dev devAcc = alpaka::getDevByIdx(ALPAKA_ACCELERATOR_NAMESPACE::Platform{}, 0u); - std::vector queues; + Device devAcc = alpaka::getDevByIdx(ALPAKA_ACCELERATOR_NAMESPACE::Platform{}, 0u); + std::vector queues; for (int s = 0; s < ana.streams; s++) { - queues.push_back(SDL::QueueAcc(devAcc)); + queues.push_back(Queue(devAcc)); } // Load various maps used in the SDL reconstruction @@ -307,7 +309,7 @@ void run_sdl() { full_timer.Start(); auto hostESData = SDL::loadAndFillESHost(); auto deviceESData = - cms::alpakatools::CopyToDevice>::copyAsync(queues[0], *hostESData.get()); + cms::alpakatools::CopyToDevice>::copyAsync(queues[0], *hostESData.get()); float timeForMapLoading = full_timer.RealTime() * 1000; if (ana.do_write_ntuple) { @@ -383,9 +385,9 @@ void run_sdl() { full_timer.Reset(); full_timer.Start(); - std::vector *> events; + std::vector *> events; for (int s = 0; s < ana.streams; s++) { - SDL::Event *event = new SDL::Event(ana.verbose >= 2, queues[s], &deviceESData); + SDL::Event *event = new SDL::Event(ana.verbose >= 2, queues[s], &deviceESData); events.push_back(event); } float timeForEventCreation = full_timer.RealTime() * 1000; diff --git a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc index dfae0e4925024..1429957d4626f 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc +++ b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc @@ -1,12 +1,14 @@ #include "AccessHelper.h" +using namespace ALPAKA_ACCELERATOR_NAMESPACE; + // =============== // ----* Hit *---- // =============== //____________________________________________________________________________________________ std::tuple, std::vector> convertHitsToHitIdxsAndHitTypes( - SDL::Event* event, std::vector hits) { + SDL::Event* event, std::vector hits) { SDL::hitsBuffer& hitsInGPU = *(event->getHits()); std::vector hitidxs; std::vector hittypes; @@ -25,7 +27,7 @@ std::tuple, std::vector> convertHitsToHi // =============== //____________________________________________________________________________________________ -std::vector getPixelHitsFrompLS(SDL::Event* event, unsigned int pLS) { +std::vector getPixelHitsFrompLS(SDL::Event* event, unsigned int pLS) { SDL::segmentsBuffer& segments_ = *(event->getSegments()); SDL::miniDoubletsBuffer& miniDoublets_ = *(event->getMiniDoublets()); SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); @@ -44,7 +46,7 @@ std::vector getPixelHitsFrompLS(SDL::Event* event, unsig } //____________________________________________________________________________________________ -std::vector getPixelHitIdxsFrompLS(SDL::Event* event, unsigned int pLS) { +std::vector getPixelHitIdxsFrompLS(SDL::Event* event, unsigned int pLS) { SDL::hitsBuffer& hitsInGPU = *(event->getHits()); std::vector hits = getPixelHitsFrompLS(event, pLS); std::vector hitidxs; @@ -54,7 +56,7 @@ std::vector getPixelHitIdxsFrompLS(SDL::Event* event, un } //____________________________________________________________________________________________ -std::vector getPixelHitTypesFrompLS(SDL::Event* event, unsigned int pLS) { +std::vector getPixelHitTypesFrompLS(SDL::Event* event, unsigned int pLS) { std::vector hits = getPixelHitsFrompLS(event, pLS); std::vector hittypes(hits.size(), 0); return hittypes; @@ -62,7 +64,7 @@ std::vector getPixelHitTypesFrompLS(SDL::Event* event, u //____________________________________________________________________________________________ std::tuple, std::vector> getHitIdxsAndHitTypesFrompLS( - SDL::Event* event, unsigned pLS) { + SDL::Event* event, unsigned pLS) { return convertHitsToHitIdxsAndHitTypes(event, getPixelHitsFrompLS(event, pLS)); } @@ -71,7 +73,7 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getHitsFromMD(SDL::Event* event, unsigned int MD) { +std::vector getHitsFromMD(SDL::Event* event, unsigned int MD) { SDL::miniDoubletsBuffer& miniDoublets_ = *(event->getMiniDoublets()); unsigned int hit_1 = miniDoublets_.anchorHitIndices[MD]; unsigned int hit_2 = miniDoublets_.outerHitIndices[MD]; @@ -80,7 +82,7 @@ std::vector getHitsFromMD(SDL::Event* event, unsigned in //____________________________________________________________________________________________ std::tuple, std::vector> getHitIdxsAndHitTypesFromMD( - SDL::Event* event, unsigned MD) { + SDL::Event* event, unsigned MD) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromMD(event, MD)); } @@ -89,7 +91,7 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getMDsFromLS(SDL::Event* event, unsigned int LS) { +std::vector getMDsFromLS(SDL::Event* event, unsigned int LS) { SDL::segmentsBuffer& segments_ = *(event->getSegments()); unsigned int MD_1 = segments_.mdIndices[2 * LS]; unsigned int MD_2 = segments_.mdIndices[2 * LS + 1]; @@ -97,7 +99,7 @@ std::vector getMDsFromLS(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::vector getHitsFromLS(SDL::Event* event, unsigned int LS) { +std::vector getHitsFromLS(SDL::Event* event, unsigned int LS) { std::vector MDs = getMDsFromLS(event, LS); std::vector hits_0 = getHitsFromMD(event, MDs[0]); std::vector hits_1 = getHitsFromMD(event, MDs[1]); @@ -106,7 +108,7 @@ std::vector getHitsFromLS(SDL::Event* event, unsigned in //____________________________________________________________________________________________ std::tuple, std::vector> getHitIdxsAndHitTypesFromLS( - SDL::Event* event, unsigned LS) { + SDL::Event* event, unsigned LS) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromLS(event, LS)); } @@ -115,7 +117,7 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getLSsFromT3(SDL::Event* event, unsigned int T3) { +std::vector getLSsFromT3(SDL::Event* event, unsigned int T3) { SDL::tripletsBuffer& triplets_ = *(event->getTriplets()); unsigned int LS_1 = triplets_.segmentIndices[2 * T3]; unsigned int LS_2 = triplets_.segmentIndices[2 * T3 + 1]; @@ -123,7 +125,7 @@ std::vector getLSsFromT3(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::vector getMDsFromT3(SDL::Event* event, unsigned int T3) { +std::vector getMDsFromT3(SDL::Event* event, unsigned int T3) { std::vector LSs = getLSsFromT3(event, T3); std::vector MDs_0 = getMDsFromLS(event, LSs[0]); std::vector MDs_1 = getMDsFromLS(event, LSs[1]); @@ -131,7 +133,7 @@ std::vector getMDsFromT3(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::vector getHitsFromT3(SDL::Event* event, unsigned int T3) { +std::vector getHitsFromT3(SDL::Event* event, unsigned int T3) { std::vector MDs = getMDsFromT3(event, T3); std::vector hits_0 = getHitsFromMD(event, MDs[0]); std::vector hits_1 = getHitsFromMD(event, MDs[1]); @@ -141,7 +143,7 @@ std::vector getHitsFromT3(SDL::Event* event, unsigned in //____________________________________________________________________________________________ std::tuple, std::vector> getHitIdxsAndHitTypesFromT3( - SDL::Event* event, unsigned T3) { + SDL::Event* event, unsigned T3) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromT3(event, T3)); } @@ -150,7 +152,7 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getT3sFromT5(SDL::Event* event, unsigned int T5) { +std::vector getT3sFromT5(SDL::Event* event, unsigned int T5) { SDL::quintupletsBuffer& quintuplets_ = *(event->getQuintuplets()); unsigned int T3_1 = quintuplets_.tripletIndices[2 * T5]; unsigned int T3_2 = quintuplets_.tripletIndices[2 * T5 + 1]; @@ -158,7 +160,7 @@ std::vector getT3sFromT5(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::vector getLSsFromT5(SDL::Event* event, unsigned int T5) { +std::vector getLSsFromT5(SDL::Event* event, unsigned int T5) { std::vector T3s = getT3sFromT5(event, T5); std::vector LSs_0 = getLSsFromT3(event, T3s[0]); std::vector LSs_1 = getLSsFromT3(event, T3s[1]); @@ -166,7 +168,7 @@ std::vector getLSsFromT5(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::vector getMDsFromT5(SDL::Event* event, unsigned int T5) { +std::vector getMDsFromT5(SDL::Event* event, unsigned int T5) { std::vector LSs = getLSsFromT5(event, T5); std::vector MDs_0 = getMDsFromLS(event, LSs[0]); std::vector MDs_1 = getMDsFromLS(event, LSs[1]); @@ -176,7 +178,7 @@ std::vector getMDsFromT5(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::vector getHitsFromT5(SDL::Event* event, unsigned int T5) { +std::vector getHitsFromT5(SDL::Event* event, unsigned int T5) { std::vector MDs = getMDsFromT5(event, T5); std::vector hits_0 = getHitsFromMD(event, MDs[0]); std::vector hits_1 = getHitsFromMD(event, MDs[1]); @@ -187,7 +189,7 @@ std::vector getHitsFromT5(SDL::Event* event, unsigned in } //____________________________________________________________________________________________ -std::vector getHitIdxsFromT5(SDL::Event* event, unsigned int T5) { +std::vector getHitIdxsFromT5(SDL::Event* event, unsigned int T5) { SDL::hitsBuffer& hitsInGPU = *(event->getHits()); std::vector hits = getHitsFromT5(event, T5); std::vector hitidxs; @@ -196,7 +198,7 @@ std::vector getHitIdxsFromT5(SDL::Event* event, unsigned return hitidxs; } //____________________________________________________________________________________________ -std::vector getModuleIdxsFromT5(SDL::Event* event, unsigned int T5) { +std::vector getModuleIdxsFromT5(SDL::Event* event, unsigned int T5) { std::vector hits = getHitsFromT5(event, T5); std::vector module_idxs; SDL::hitsBuffer& hitsInGPU = *(event->getHits()); @@ -206,14 +208,14 @@ std::vector getModuleIdxsFromT5(SDL::Event* event, unsig return module_idxs; } //____________________________________________________________________________________________ -std::vector getHitTypesFromT5(SDL::Event* event, unsigned int T5) { +std::vector getHitTypesFromT5(SDL::Event* event, unsigned int T5) { return {4, 4, 4, 4, 4, 4, 4, 4, 4, 4}; ; } //____________________________________________________________________________________________ std::tuple, std::vector> getHitIdxsAndHitTypesFromT5( - SDL::Event* event, unsigned T5) { + SDL::Event* event, unsigned T5) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromT5(event, T5)); } @@ -222,7 +224,7 @@ std::tuple, std::vector> getHitIdxsAndHi // =============== //____________________________________________________________________________________________ -unsigned int getPixelLSFrompT3(SDL::Event* event, unsigned int pT3) { +unsigned int getPixelLSFrompT3(SDL::Event* event, unsigned int pT3) { SDL::pixelTripletsBuffer& pixelTriplets_ = *(event->getPixelTriplets()); SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); SDL::modulesBuffer& modulesInGPU = (*event->getModules()); @@ -231,37 +233,37 @@ unsigned int getPixelLSFrompT3(SDL::Event* event, unsigned int pT3) { } //____________________________________________________________________________________________ -unsigned int getT3FrompT3(SDL::Event* event, unsigned int pT3) { +unsigned int getT3FrompT3(SDL::Event* event, unsigned int pT3) { SDL::pixelTriplets& pixelTriplets_ = *(event->getPixelTriplets()); return pixelTriplets_.tripletIndices[pT3]; } //____________________________________________________________________________________________ -std::vector getLSsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getLSsFrompT3(SDL::Event* event, unsigned int pT3) { unsigned int T3 = getT3FrompT3(event, pT3); return getLSsFromT3(event, T3); } //____________________________________________________________________________________________ -std::vector getMDsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getMDsFrompT3(SDL::Event* event, unsigned int pT3) { unsigned int T3 = getT3FrompT3(event, pT3); return getMDsFromT3(event, T3); } //____________________________________________________________________________________________ -std::vector getOuterTrackerHitsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getOuterTrackerHitsFrompT3(SDL::Event* event, unsigned int pT3) { unsigned int T3 = getT3FrompT3(event, pT3); return getHitsFromT3(event, T3); } //____________________________________________________________________________________________ -std::vector getPixelHitsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getPixelHitsFrompT3(SDL::Event* event, unsigned int pT3) { unsigned int pLS = getPixelLSFrompT3(event, pT3); return getPixelHitsFrompLS(event, pLS); } //____________________________________________________________________________________________ -std::vector getHitsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getHitsFrompT3(SDL::Event* event, unsigned int pT3) { unsigned int pLS = getPixelLSFrompT3(event, pT3); unsigned int T3 = getT3FrompT3(event, pT3); std::vector pixelHits = getPixelHitsFrompLS(event, pLS); @@ -271,7 +273,7 @@ std::vector getHitsFrompT3(SDL::Event* event, unsigned i } //____________________________________________________________________________________________ -std::vector getHitIdxsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getHitIdxsFrompT3(SDL::Event* event, unsigned int pT3) { SDL::hitsBuffer& hitsInGPU = *(event->getHits()); std::vector hits = getHitsFrompT3(event, pT3); std::vector hitidxs; @@ -280,7 +282,7 @@ std::vector getHitIdxsFrompT3(SDL::Event* event, unsigne return hitidxs; } //____________________________________________________________________________________________ -std::vector getModuleIdxsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getModuleIdxsFrompT3(SDL::Event* event, unsigned int pT3) { std::vector hits = getOuterTrackerHitsFrompT3(event, pT3); std::vector module_idxs; SDL::hitsBuffer& hitsInGPU = *(event->getHits()); @@ -290,7 +292,7 @@ std::vector getModuleIdxsFrompT3(SDL::Event* event, unsi return module_idxs; } //____________________________________________________________________________________________ -std::vector getHitTypesFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getHitTypesFrompT3(SDL::Event* event, unsigned int pT3) { unsigned int pLS = getPixelLSFrompT3(event, pT3); std::vector pixelHits = getPixelHitsFrompLS(event, pLS); // pixel Hits list will be either 3 or 4 and depending on it return accordingly @@ -302,7 +304,7 @@ std::vector getHitTypesFrompT3(SDL::Event* event, unsign //____________________________________________________________________________________________ std::tuple, std::vector> getHitIdxsAndHitTypesFrompT3( - SDL::Event* event, unsigned pT3) { + SDL::Event* event, unsigned pT3) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFrompT3(event, pT3)); } @@ -311,7 +313,7 @@ std::tuple, std::vector> getHitIdxsAndHi // =============== //____________________________________________________________________________________________ -unsigned int getPixelLSFrompT5(SDL::Event* event, unsigned int pT5) { +unsigned int getPixelLSFrompT5(SDL::Event* event, unsigned int pT5) { SDL::pixelQuintupletsBuffer& pixelQuintuplets_ = *(event->getPixelQuintuplets()); SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); SDL::modulesBuffer& modulesInGPU = (*event->getModules()); @@ -320,43 +322,43 @@ unsigned int getPixelLSFrompT5(SDL::Event* event, unsigned int pT5) { } //____________________________________________________________________________________________ -unsigned int getT5FrompT5(SDL::Event* event, unsigned int pT5) { +unsigned int getT5FrompT5(SDL::Event* event, unsigned int pT5) { SDL::pixelQuintupletsBuffer& pixelQuintuplets_ = *(event->getPixelQuintuplets()); return pixelQuintuplets_.T5Indices[pT5]; } //____________________________________________________________________________________________ -std::vector getT3sFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getT3sFrompT5(SDL::Event* event, unsigned int pT5) { unsigned int T5 = getT5FrompT5(event, pT5); return getT3sFromT5(event, T5); } //____________________________________________________________________________________________ -std::vector getLSsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getLSsFrompT5(SDL::Event* event, unsigned int pT5) { unsigned int T5 = getT5FrompT5(event, pT5); return getLSsFromT5(event, T5); } //____________________________________________________________________________________________ -std::vector getMDsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getMDsFrompT5(SDL::Event* event, unsigned int pT5) { unsigned int T5 = getT5FrompT5(event, pT5); return getMDsFromT5(event, T5); } //____________________________________________________________________________________________ -std::vector getOuterTrackerHitsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getOuterTrackerHitsFrompT5(SDL::Event* event, unsigned int pT5) { unsigned int T5 = getT5FrompT5(event, pT5); return getHitsFromT5(event, T5); } //____________________________________________________________________________________________ -std::vector getPixelHitsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getPixelHitsFrompT5(SDL::Event* event, unsigned int pT5) { unsigned int pLS = getPixelLSFrompT5(event, pT5); return getPixelHitsFrompLS(event, pLS); } //____________________________________________________________________________________________ -std::vector getHitsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getHitsFrompT5(SDL::Event* event, unsigned int pT5) { unsigned int pLS = getPixelLSFrompT5(event, pT5); unsigned int T5 = getT5FrompT5(event, pT5); std::vector pixelHits = getPixelHitsFrompLS(event, pLS); @@ -366,7 +368,7 @@ std::vector getHitsFrompT5(SDL::Event* event, unsigned i } //____________________________________________________________________________________________ -std::vector getHitIdxsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getHitIdxsFrompT5(SDL::Event* event, unsigned int pT5) { SDL::hitsBuffer& hitsInGPU = *(event->getHits()); std::vector hits = getHitsFrompT5(event, pT5); std::vector hitidxs; @@ -376,7 +378,7 @@ std::vector getHitIdxsFrompT5(SDL::Event* event, unsigne } //____________________________________________________________________________________________ -std::vector getModuleIdxsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getModuleIdxsFrompT5(SDL::Event* event, unsigned int pT5) { std::vector hits = getOuterTrackerHitsFrompT5(event, pT5); std::vector module_idxs; SDL::hitsBuffer& hitsInGPU = *(event->getHits()); @@ -387,7 +389,7 @@ std::vector getModuleIdxsFrompT5(SDL::Event* event, unsi } //____________________________________________________________________________________________ -std::vector getHitTypesFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getHitTypesFrompT5(SDL::Event* event, unsigned int pT5) { unsigned int pLS = getPixelLSFrompT5(event, pT5); std::vector pixelHits = getPixelHitsFrompLS(event, pLS); // pixel Hits list will be either 3 or 4 and depending on it return accordingly @@ -399,7 +401,7 @@ std::vector getHitTypesFrompT5(SDL::Event* event, unsign //____________________________________________________________________________________________ std::tuple, std::vector> getHitIdxsAndHitTypesFrompT5( - SDL::Event* event, unsigned pT5) { + SDL::Event* event, unsigned pT5) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFrompT5(event, pT5)); } @@ -408,7 +410,7 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getLSsFromTC(SDL::Event* event, unsigned int TC) { +std::vector getLSsFromTC(SDL::Event* event, unsigned int TC) { // Get the type of the track candidate SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); short type = trackCandidatesInGPU.trackCandidateType[TC]; @@ -431,7 +433,7 @@ std::vector getLSsFromTC(SDL::Event* event, unsigned int //____________________________________________________________________________________________ std::tuple, std::vector> getHitIdxsAndHitTypesFromTC( - SDL::Event* event, unsigned TC) { + SDL::Event* event, unsigned TC) { // Get the type of the track candidate SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); short type = trackCandidatesInGPU.trackCandidateType[TC]; diff --git a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h index 589f1e2d59cd2..efe1cdb68f585 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h +++ b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h @@ -9,77 +9,77 @@ enum { kpT5 = 7, kpT3 = 5, kT5 = 4, kpLS = 8 }; // ----* Hit *---- std::tuple, std::vector> convertHitsToHitIdxsAndHitTypes( - SDL::Event* event, std::vector hits); + SDL::Event* event, std::vector hits); // ----* pLS *---- -std::vector getPixelHitsFrompLS(SDL::Event* event, unsigned int pLS); -std::vector getPixelHitIdxsFrompLS(SDL::Event* event, unsigned int pLS); -std::vector getPixelHitTypesFrompLS(SDL::Event* event, unsigned int pLS); +std::vector getPixelHitsFrompLS(SDL::Event* event, unsigned int pLS); +std::vector getPixelHitIdxsFrompLS(SDL::Event* event, unsigned int pLS); +std::vector getPixelHitTypesFrompLS(SDL::Event* event, unsigned int pLS); std::tuple, std::vector> getHitIdxsAndHitTypesFrompLS( - SDL::Event* event, unsigned pLS); + SDL::Event* event, unsigned pLS); // ----* MD *---- -std::vector getHitsFromMD(SDL::Event* event, unsigned int MD); +std::vector getHitsFromMD(SDL::Event* event, unsigned int MD); std::tuple, std::vector> getHitIdxsAndHitTypesFromMD( - SDL::Event* event, unsigned MD); + SDL::Event* event, unsigned MD); // ----* LS *---- -std::vector getMDsFromLS(SDL::Event* event, unsigned int LS); -std::vector getHitsFromLS(SDL::Event* event, unsigned int LS); +std::vector getMDsFromLS(SDL::Event* event, unsigned int LS); +std::vector getHitsFromLS(SDL::Event* event, unsigned int LS); std::tuple, std::vector> getHitIdxsAndHitTypesFromLS( - SDL::Event* event, unsigned LS); + SDL::Event* event, unsigned LS); // ----* T3 *---- -std::vector getLSsFromT3(SDL::Event* event, unsigned int T3); -std::vector getMDsFromT3(SDL::Event* event, unsigned int T3); -std::vector getHitsFromT3(SDL::Event* event, unsigned int T3); +std::vector getLSsFromT3(SDL::Event* event, unsigned int T3); +std::vector getMDsFromT3(SDL::Event* event, unsigned int T3); +std::vector getHitsFromT3(SDL::Event* event, unsigned int T3); std::tuple, std::vector> getHitIdxsAndHitTypesFromT3( - SDL::Event* event, unsigned T3); + SDL::Event* event, unsigned T3); // ----* T5 *---- -std::vector getT3sFromT5(SDL::Event* event, unsigned int T5); -std::vector getLSsFromT5(SDL::Event* event, unsigned int T5); -std::vector getMDsFromT5(SDL::Event* event, unsigned int T5); -std::vector getHitsFromT5(SDL::Event* event, unsigned int T5); -std::vector getHitIdxsFromT5(SDL::Event* event, unsigned int T5); -std::vector getHitTypesFromT5(SDL::Event* event, unsigned int T5); -std::vector getModuleIdxsFromT5(SDL::Event* event, unsigned int T5); +std::vector getT3sFromT5(SDL::Event* event, unsigned int T5); +std::vector getLSsFromT5(SDL::Event* event, unsigned int T5); +std::vector getMDsFromT5(SDL::Event* event, unsigned int T5); +std::vector getHitsFromT5(SDL::Event* event, unsigned int T5); +std::vector getHitIdxsFromT5(SDL::Event* event, unsigned int T5); +std::vector getHitTypesFromT5(SDL::Event* event, unsigned int T5); +std::vector getModuleIdxsFromT5(SDL::Event* event, unsigned int T5); std::tuple, std::vector> getHitIdxsAndHitTypesFromT5( - SDL::Event* event, unsigned T5); + SDL::Event* event, unsigned T5); // ----* pT3 *---- -unsigned int getPixelLSFrompT3(SDL::Event* event, unsigned int pT3); -unsigned int getT3FrompT3(SDL::Event* event, unsigned int pT3); -std::vector getLSsFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getMDsFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getOuterTrackerHitsFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getPixelHitsFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getHitsFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getHitIdxsFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getHitTypesFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getModuleIdxsFrompT3(SDL::Event* event, unsigned int pT3); +unsigned int getPixelLSFrompT3(SDL::Event* event, unsigned int pT3); +unsigned int getT3FrompT3(SDL::Event* event, unsigned int pT3); +std::vector getLSsFrompT3(SDL::Event* event, unsigned int pT3); +std::vector getMDsFrompT3(SDL::Event* event, unsigned int pT3); +std::vector getOuterTrackerHitsFrompT3(SDL::Event* event, unsigned int pT3); +std::vector getPixelHitsFrompT3(SDL::Event* event, unsigned int pT3); +std::vector getHitsFrompT3(SDL::Event* event, unsigned int pT3); +std::vector getHitIdxsFrompT3(SDL::Event* event, unsigned int pT3); +std::vector getHitTypesFrompT3(SDL::Event* event, unsigned int pT3); +std::vector getModuleIdxsFrompT3(SDL::Event* event, unsigned int pT3); std::tuple, std::vector> getHitIdxsAndHitTypesFrompT3( - SDL::Event* event, unsigned pT3); + SDL::Event* event, unsigned pT3); // ----* pT5 *---- -unsigned int getPixelLSFrompT5(SDL::Event* event, unsigned int pT5); -unsigned int getT5FrompT5(SDL::Event* event, unsigned int pT5); -std::vector getT3sFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getLSsFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getMDsFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getOuterTrackerHitsFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getPixelHitsFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getHitsFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getHitIdxsFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getHitTypesFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getModuleIdxsFrompT5(SDL::Event* event, unsigned int pT5); +unsigned int getPixelLSFrompT5(SDL::Event* event, unsigned int pT5); +unsigned int getT5FrompT5(SDL::Event* event, unsigned int pT5); +std::vector getT3sFrompT5(SDL::Event* event, unsigned int pT5); +std::vector getLSsFrompT5(SDL::Event* event, unsigned int pT5); +std::vector getMDsFrompT5(SDL::Event* event, unsigned int pT5); +std::vector getOuterTrackerHitsFrompT5(SDL::Event* event, unsigned int pT5); +std::vector getPixelHitsFrompT5(SDL::Event* event, unsigned int pT5); +std::vector getHitsFrompT5(SDL::Event* event, unsigned int pT5); +std::vector getHitIdxsFrompT5(SDL::Event* event, unsigned int pT5); +std::vector getHitTypesFrompT5(SDL::Event* event, unsigned int pT5); +std::vector getModuleIdxsFrompT5(SDL::Event* event, unsigned int pT5); std::tuple, std::vector> getHitIdxsAndHitTypesFrompT5( - SDL::Event* event, unsigned pT5); + SDL::Event* event, unsigned pT5); // ----* TC *---- -std::vector getLSsFromTC(SDL::Event* event, unsigned int TC); -std::vector getHitsFromTC(SDL::Event* event, unsigned int TC); +std::vector getLSsFromTC(SDL::Event* event, unsigned int TC); +std::vector getHitsFromTC(SDL::Event* event, unsigned int TC); std::tuple, std::vector> getHitIdxsAndHitTypesFromTC( - SDL::Event* event, unsigned int TC); + SDL::Event* event, unsigned int TC); #endif diff --git a/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h b/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h index 14b3df631c6c8..e1404b7f8f9bc 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h +++ b/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h @@ -100,7 +100,7 @@ class AnalysisConfig { std::map>> moduleSimHits; std::map modulePopulation; - SDL::ModuleConnectionMap moduleConnectiongMapLoose; + SDL::ModuleConnectionMap moduleConnectiongMapLoose; // Boolean to trigger whether to run cut_value_ntupling bool do_cut_value_ntuple; diff --git a/RecoTracker/LSTCore/standalone/code/core/trkCore.cc b/RecoTracker/LSTCore/standalone/code/core/trkCore.cc index 4233ec8c5e3e2..cff1ef733e1f6 100644 --- a/RecoTracker/LSTCore/standalone/code/core/trkCore.cc +++ b/RecoTracker/LSTCore/standalone/code/core/trkCore.cc @@ -1,5 +1,7 @@ #include "trkCore.h" +using namespace ALPAKA_ACCELERATOR_NAMESPACE; + //___________________________________________________________________________________________________________________________________________________________________________________________ bool goodEvent() { if (ana.specific_event_index >= 0) { @@ -20,7 +22,7 @@ bool goodEvent() { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runMiniDoublet(SDL::Event *event, int evt) { +float runMiniDoublet(SDL::Event *event, int evt) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco Mini-Doublet start " << evt << std::endl; @@ -72,7 +74,7 @@ float runMiniDoublet(SDL::Event *event, int evt) { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runSegment(SDL::Event *event) { +float runSegment(SDL::Event *event) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco Segment start" << std::endl; @@ -109,7 +111,7 @@ float runSegment(SDL::Event *event) { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runT3(SDL::Event *event) { +float runT3(SDL::Event *event) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco T3 start" << std::endl; @@ -150,7 +152,7 @@ float runT3(SDL::Event *event) { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runpT3(SDL::Event *event) { +float runpT3(SDL::Event *event) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco Pixel Triplet pT3 start" << std::endl; @@ -166,7 +168,7 @@ float runpT3(SDL::Event *event) { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runQuintuplet(SDL::Event *event) { +float runQuintuplet(SDL::Event *event) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco Quintuplet start" << std::endl; @@ -211,7 +213,7 @@ float runQuintuplet(SDL::Event *event) { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runPixelLineSegment(SDL::Event *event, bool no_pls_dupclean) { +float runPixelLineSegment(SDL::Event *event, bool no_pls_dupclean) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco Pixel Line Segment start" << std::endl; @@ -225,7 +227,7 @@ float runPixelLineSegment(SDL::Event *event, bool no_pls_dupclean) { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runPixelQuintuplet(SDL::Event *event) { +float runPixelQuintuplet(SDL::Event *event) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco Pixel Quintuplet start" << std::endl; @@ -241,7 +243,7 @@ float runPixelQuintuplet(SDL::Event *event) { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runTrackCandidate(SDL::Event *event, bool no_pls_dupclean, bool tc_pls_triplets) { +float runTrackCandidate(SDL::Event *event, bool no_pls_dupclean, bool tc_pls_triplets) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco TrackCandidate start" << std::endl; @@ -837,7 +839,7 @@ void addInputsToLineSegmentTrackingPreLoad(std::vector> &out_ } //___________________________________________________________________________________________________________________________________________________________________________________________ -float addInputsToEventPreLoad(SDL::Event *event, +float addInputsToEventPreLoad(SDL::Event *event, bool useOMP, std::vector trkX, std::vector trkY, @@ -1141,7 +1143,7 @@ void writeMetaData() { // DEPRECATED FUNCTIONS //__________________________________________________________________________________________ -[[deprecated]] float addInputsToLineSegmentTracking(SDL::Event &event, bool useOMP) { +[[deprecated]] float addInputsToLineSegmentTracking(SDL::Event &event, bool useOMP) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Loading Inputs (i.e. outer tracker hits, and pixel line segements) to the Line Segment Tracking.... " @@ -1336,6 +1338,6 @@ void writeMetaData() { } //__________________________________________________________________________________________ -[[deprecated]] float addInputsToLineSegmentTrackingUsingExplicitMemory(SDL::Event &event) { +[[deprecated]] float addInputsToLineSegmentTrackingUsingExplicitMemory(SDL::Event &event) { return addInputsToLineSegmentTracking(event, true); } diff --git a/RecoTracker/LSTCore/standalone/code/core/trkCore.h b/RecoTracker/LSTCore/standalone/code/core/trkCore.h index a407f303cf1a6..237f7670da738 100644 --- a/RecoTracker/LSTCore/standalone/code/core/trkCore.h +++ b/RecoTracker/LSTCore/standalone/code/core/trkCore.h @@ -14,17 +14,17 @@ // --------------------- ======================== --------------------- bool goodEvent(); -float runMiniDoublet(SDL::Event *event, int evt); -float runSegment(SDL::Event *event); -float runT4(SDL::Event *event); -float runT4x(SDL::Event *event); -float runpT4(SDL::Event *event); -float runT3(SDL::Event *event); -float runTrackCandidate(SDL::Event *event, bool no_pls_dupclean, bool tc_pls_triplets); -float runQuintuplet(SDL::Event *event); -float runPixelQuintuplet(SDL::Event *event); -float runPixelLineSegment(SDL::Event *event, bool no_pls_dupclean); -float runpT3(SDL::Event *event); +float runMiniDoublet(SDL::Event *event, int evt); +float runSegment(SDL::Event *event); +float runT4(SDL::Event *event); +float runT4x(SDL::Event *event); +float runpT4(SDL::Event *event); +float runT3(SDL::Event *event); +float runTrackCandidate(SDL::Event *event, bool no_pls_dupclean, bool tc_pls_triplets); +float runQuintuplet(SDL::Event *event); +float runPixelQuintuplet(SDL::Event *event); +float runPixelLineSegment(SDL::Event *event, bool no_pls_dupclean); +float runpT3(SDL::Event *event); // --------------------- ======================== --------------------- @@ -69,7 +69,7 @@ void addInputsToLineSegmentTrackingPreLoad(std::vector> &out_ std::vector> &out_pixelType_vec, std::vector> &out_isQuad_vec); -float addInputsToEventPreLoad(SDL::Event *event, +float addInputsToEventPreLoad(SDL::Event *event, bool useOMP, std::vector trkX, std::vector trkY, @@ -105,7 +105,7 @@ void writeMetaData(); // --------------------- ======================== --------------------- // DEPRECATED FUNCTION -float addInputsToLineSegmentTrackingUsingExplicitMemory(SDL::Event &event); -float addInputsToLineSegmentTracking(SDL::Event &event, bool useOMP); +float addInputsToLineSegmentTrackingUsingExplicitMemory(SDL::Event &event); +float addInputsToLineSegmentTracking(SDL::Event &event, bool useOMP); #endif diff --git a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc index 4ed069536ec39..2529586907d08 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc +++ b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc @@ -1,5 +1,7 @@ #include "write_sdl_ntuple.h" +using namespace ALPAKA_ACCELERATOR_NAMESPACE; + //________________________________________________________________________________________________________________________________ void createOutputBranches() { createRequiredOutputBranches(); @@ -7,7 +9,7 @@ void createOutputBranches() { } //________________________________________________________________________________________________________________________________ -void fillOutputBranches(SDL::Event* event) { +void fillOutputBranches(SDL::Event* event) { setOutputBranches(event); setOptionalOutputBranches(event); if (ana.gnn_ntuple) @@ -181,7 +183,7 @@ void createGnnNtupleBranches() { } //________________________________________________________________________________________________________________________________ -void setOutputBranches(SDL::Event* event) { +void setOutputBranches(SDL::Event* event) { // ============ Sim tracks ============= int n_accepted_simtrk = 0; for (unsigned int isimtrk = 0; isimtrk < trk.sim_pt().size(); ++isimtrk) { @@ -276,7 +278,7 @@ void setOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setOptionalOutputBranches(SDL::Event* event) { +void setOptionalOutputBranches(SDL::Event* event) { #ifdef CUT_VALUE_DEBUG setPixelQuintupletOutputBranches(event); @@ -287,7 +289,7 @@ void setOptionalOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setPixelQuintupletOutputBranches(SDL::Event* event) { +void setPixelQuintupletOutputBranches(SDL::Event* event) { // ============ pT5 ============= SDL::pixelQuintupletsBuffer& pixelQuintupletsInGPU = (*event->getPixelQuintuplets()); SDL::quintupletsBuffer& quintupletsInGPU = (*event->getQuintuplets()); @@ -363,7 +365,7 @@ void setPixelQuintupletOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setQuintupletOutputBranches(SDL::Event* event) { +void setQuintupletOutputBranches(SDL::Event* event) { SDL::quintupletsBuffer& quintupletsInGPU = (*event->getQuintuplets()); SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); SDL::modulesBuffer& modulesInGPU = (*event->getModules()); @@ -434,7 +436,7 @@ void setQuintupletOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setPixelTripletOutputBranches(SDL::Event* event) { +void setPixelTripletOutputBranches(SDL::Event* event) { SDL::pixelTripletsBuffer& pixelTripletsInGPU = (*event->getPixelTriplets()); SDL::tripletsBuffer& tripletsInGPU = *(event->getTriplets()); SDL::modulesBuffer& modulesInGPU = *(event->getModules()); @@ -499,7 +501,7 @@ void setPixelTripletOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setGnnNtupleBranches(SDL::Event* event) { +void setGnnNtupleBranches(SDL::Event* event) { // Get relevant information SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); @@ -640,7 +642,7 @@ void setGnnNtupleBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD) { +void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD) { // Get relevant information SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); SDL::hitsBuffer& hitsInGPU = (*event->getHits()); @@ -708,7 +710,7 @@ void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD) { } //________________________________________________________________________________________________________________________________ -std::tuple> parseTrackCandidate(SDL::Event* event, +std::tuple> parseTrackCandidate(SDL::Event* event, unsigned int idx) { // Get the type of the track candidate SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); @@ -743,7 +745,7 @@ std::tuple> parseTrackCandidate( //________________________________________________________________________________________________________________________________ std::tuple, std::vector> parsepT5( - SDL::Event* event, unsigned int idx) { + SDL::Event* event, unsigned int idx) { // Get relevant information SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); SDL::quintupletsBuffer& quintupletsInGPU = (*event->getQuintuplets()); @@ -855,7 +857,7 @@ std::tuple, std::vector, std::vector> parsepT3( - SDL::Event* event, unsigned int idx) { + SDL::Event* event, unsigned int idx) { // Get relevant information SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); SDL::tripletsBuffer& tripletsInGPU = (*event->getTriplets()); @@ -890,7 +892,7 @@ std::tuple, std::vector, std::vector> parseT5( - SDL::Event* event, unsigned int idx) { + SDL::Event* event, unsigned int idx) { SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); SDL::quintupletsBuffer& quintupletsInGPU = (*event->getQuintuplets()); unsigned int T5 = trackCandidatesInGPU.directObjectIndices[idx]; @@ -924,7 +926,7 @@ std::tuple, std::vector, std::vector> parsepLS( - SDL::Event* event, unsigned int idx) { + SDL::Event* event, unsigned int idx) { SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); @@ -944,7 +946,7 @@ std::tuple, std::vector* event) { +void printHitMultiplicities(SDL::Event* event) { SDL::modulesBuffer& modulesInGPU = (*event->getModules()); SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); @@ -959,7 +961,7 @@ void printHitMultiplicities(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printMiniDoubletMultiplicities(SDL::Event* event) { +void printMiniDoubletMultiplicities(SDL::Event* event) { SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); SDL::modulesBuffer& modulesInGPU = (*event->getModules()); @@ -978,7 +980,7 @@ void printMiniDoubletMultiplicities(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printAllObjects(SDL::Event* event) { +void printAllObjects(SDL::Event* event) { printMDs(event); printLSs(event); printpLSs(event); @@ -986,7 +988,7 @@ void printAllObjects(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printMDs(SDL::Event* event) { +void printMDs(SDL::Event* event) { SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); SDL::hitsBuffer& hitsInGPU = (*event->getHits()); SDL::modulesBuffer& modulesInGPU = (*event->getModules()); @@ -1008,7 +1010,7 @@ void printMDs(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printLSs(SDL::Event* event) { +void printLSs(SDL::Event* event) { SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); SDL::hitsBuffer& hitsInGPU = (*event->getHits()); @@ -1040,7 +1042,7 @@ void printLSs(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printpLSs(SDL::Event* event) { +void printpLSs(SDL::Event* event) { SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); SDL::hitsBuffer& hitsInGPU = (*event->getHits()); @@ -1070,7 +1072,7 @@ void printpLSs(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printT3s(SDL::Event* event) { +void printT3s(SDL::Event* event) { SDL::tripletsBuffer& tripletsInGPU = (*event->getTriplets()); SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); @@ -1112,7 +1114,7 @@ void printT3s(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void debugPrintOutlierMultiplicities(SDL::Event* event) { +void debugPrintOutlierMultiplicities(SDL::Event* event) { SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); SDL::tripletsBuffer& tripletsInGPU = (*event->getTriplets()); SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); diff --git a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h index 811aedd58f809..e61250f196ae4 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h +++ b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h @@ -17,41 +17,41 @@ void createRequiredOutputBranches(); void createOptionalOutputBranches(); void createGnnNtupleBranches(); -void fillOutputBranches(SDL::Event* event); -void setOutputBranches(SDL::Event* event); -void setOptionalOutputBranches(SDL::Event* event); -void setPixelQuintupletOutputBranches(SDL::Event* event); -void setQuintupletOutputBranches(SDL::Event* event); -void setPixelTripletOutputBranches(SDL::Event* event); -void setGnnNtupleBranches(SDL::Event* event); -void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD); - -std::tuple> parseTrackCandidate(SDL::Event* event, +void fillOutputBranches(SDL::Event* event); +void setOutputBranches(SDL::Event* event); +void setOptionalOutputBranches(SDL::Event* event); +void setPixelQuintupletOutputBranches(SDL::Event* event); +void setQuintupletOutputBranches(SDL::Event* event); +void setPixelTripletOutputBranches(SDL::Event* event); +void setGnnNtupleBranches(SDL::Event* event); +void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD); + +std::tuple> parseTrackCandidate(SDL::Event* event, unsigned int); std::tuple, std::vector> parsepT5( - SDL::Event* event, unsigned int); + SDL::Event* event, unsigned int); std::tuple, std::vector> parsepT3( - SDL::Event* event, unsigned int); + SDL::Event* event, unsigned int); std::tuple, std::vector> parseT5( - SDL::Event* event, unsigned int); + SDL::Event* event, unsigned int); std::tuple, std::vector> parsepLS( - SDL::Event* event, unsigned int); + SDL::Event* event, unsigned int); // Print multiplicities -void printMiniDoubletMultiplicities(SDL::Event* event); -void printHitMultiplicities(SDL::Event* event); +void printMiniDoubletMultiplicities(SDL::Event* event); +void printHitMultiplicities(SDL::Event* event); // Print objects (GPU) -void printAllObjects(SDL::Event* event); -void printpT4s(SDL::Event* event); -void printMDs(SDL::Event* event); -void printLSs(SDL::Event* event); -void printpLSs(SDL::Event* event); -void printT3s(SDL::Event* event); -void printT4s(SDL::Event* event); -void printTCs(SDL::Event* event); +void printAllObjects(SDL::Event* event); +void printpT4s(SDL::Event* event); +void printMDs(SDL::Event* event); +void printLSs(SDL::Event* event); +void printpLSs(SDL::Event* event); +void printT3s(SDL::Event* event); +void printT4s(SDL::Event* event); +void printTCs(SDL::Event* event); // Print anomalous multiplicities -void debugPrintOutlierMultiplicities(SDL::Event* event); +void debugPrintOutlierMultiplicities(SDL::Event* event); #endif From ccd29f4e497ce905a2b99a385d67c8146e561684 Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Wed, 17 Jul 2024 11:17:35 -0700 Subject: [PATCH 5/7] Format and cleanup --- RecoTracker/LSTCore/interface/Constants.h | 9 +- .../LSTCore/interface/alpaka/Constants.h | 7 +- RecoTracker/LSTCore/src/LSTESData.cc | 4 +- RecoTracker/LSTCore/src/ModuleMethods.h | 4 +- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 357 +++++++++--------- RecoTracker/LSTCore/src/alpaka/Event.h | 4 +- RecoTracker/LSTCore/src/alpaka/Hit.h | 4 +- RecoTracker/LSTCore/src/alpaka/Kernels.h | 4 +- RecoTracker/LSTCore/src/alpaka/LST.dev.cc | 90 ++--- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 4 +- .../LSTCore/src/alpaka/NeuralNetwork.h | 4 +- .../LSTCore/src/alpaka/NeuralNetworkWeights.h | 4 +- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 8 +- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 4 +- RecoTracker/LSTCore/src/alpaka/Segment.h | 4 +- .../LSTCore/src/alpaka/TrackCandidate.h | 4 +- RecoTracker/LSTCore/src/alpaka/Triplet.h | 4 +- RecoTracker/LSTCore/standalone/bin/sdl.cc | 3 +- .../standalone/code/core/AccessHelper.cc | 32 +- .../standalone/code/core/AccessHelper.h | 27 +- .../LSTCore/standalone/code/core/trkCore.h | 4 +- .../standalone/code/core/write_sdl_ntuple.cc | 4 +- .../standalone/code/core/write_sdl_ntuple.h | 4 +- 23 files changed, 305 insertions(+), 288 deletions(-) diff --git a/RecoTracker/LSTCore/interface/Constants.h b/RecoTracker/LSTCore/interface/Constants.h index 3632297c3f9c2..8a26c3a2a6471 100644 --- a/RecoTracker/LSTCore/interface/Constants.h +++ b/RecoTracker/LSTCore/interface/Constants.h @@ -19,16 +19,19 @@ namespace SDL { TSize nElements, TQueue queue) { #ifdef CACHE_ALLOC - return cms::alpakatools::allocCachedBuf(devAccIn, queue, alpaka_common::Vec1D(static_cast(nElements))); + return cms::alpakatools::allocCachedBuf( + devAccIn, queue, alpaka_common::Vec1D(static_cast(nElements))); #else - return alpaka::allocBuf(devAccIn, alpaka_common::Vec1D(static_cast(nElements))); + return alpaka::allocBuf(devAccIn, + alpaka_common::Vec1D(static_cast(nElements))); #endif } // Second allocation wrapper function when queue is not given. Reduces code boilerplate. template ALPAKA_FN_HOST ALPAKA_FN_INLINE Buf, T> allocBufWrapper(TAcc const& devAccIn, TSize nElements) { - return alpaka::allocBuf(devAccIn, alpaka_common::Vec1D(static_cast(nElements))); + return alpaka::allocBuf(devAccIn, + alpaka_common::Vec1D(static_cast(nElements))); } // If a compile time flag does not define PT_CUT, default to 0.8 (GeV) diff --git a/RecoTracker/LSTCore/interface/alpaka/Constants.h b/RecoTracker/LSTCore/interface/alpaka/Constants.h index e5189914d4c4d..b0a5d0e556760 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Constants.h +++ b/RecoTracker/LSTCore/interface/alpaka/Constants.h @@ -34,14 +34,15 @@ namespace SDL { // Wrapper function to reduce code boilerplate for defining grid/block sizes. ALPAKA_FN_HOST ALPAKA_FN_INLINE alpaka_common::Vec3D createVec(int x, int y, int z) { - return alpaka_common::Vec3D(static_cast(x), static_cast(y), static_cast(z)); + return alpaka_common::Vec3D( + static_cast(x), static_cast(y), static_cast(z)); } // Adjust grid and block sizes based on backend configuration template ALPAKA_FN_HOST ALPAKA_FN_INLINE alpaka_common::WorkDiv3D createWorkDiv(const Vec& blocksPerGrid, - const Vec& threadsPerBlock, - const Vec& elementsPerThreadArg) { + const Vec& threadsPerBlock, + const Vec& elementsPerThreadArg) { Vec adjustedBlocks = blocksPerGrid; Vec adjustedThreads = threadsPerBlock; diff --git a/RecoTracker/LSTCore/src/LSTESData.cc b/RecoTracker/LSTCore/src/LSTESData.cc index 1950b43259a64..cb64bf928a5bc 100644 --- a/RecoTracker/LSTCore/src/LSTESData.cc +++ b/RecoTracker/LSTCore/src/LSTESData.cc @@ -89,8 +89,8 @@ std::unique_ptr> SDL::loadAndFillESHost() auto moduleConnectionMap = std::make_shared(); ::loadMapsHost(*pLStoLayer, endcapGeometry, tiltedGeometry, moduleConnectionMap); - auto endcapGeometryBuffers = - std::make_shared>(cms::alpakatools::host(), endcapGeometry->nEndCapMap); + auto endcapGeometryBuffers = std::make_shared>( + cms::alpakatools::host(), endcapGeometry->nEndCapMap); alpaka::QueueCpuBlocking queue(cms::alpakatools::host()); alpaka::memcpy( queue, endcapGeometryBuffers->geoMapDetId_buf, endcapGeometry->geoMapDetId_buf, endcapGeometry->nEndCapMap); diff --git a/RecoTracker/LSTCore/src/ModuleMethods.h b/RecoTracker/LSTCore/src/ModuleMethods.h index fe333e7598a8e..5d91f1bd59b7a 100644 --- a/RecoTracker/LSTCore/src/ModuleMethods.h +++ b/RecoTracker/LSTCore/src/ModuleMethods.h @@ -1,5 +1,5 @@ -#ifndef ModuleMethods_cuh -#define ModuleMethods_cuh +#ifndef RecoTracker_LSTCore_src_ModuleMethods_h +#define RecoTracker_LSTCore_src_ModuleMethods_h #include #include diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index 462b7ea85f54e..37fb4ca02fc0a 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc @@ -151,10 +151,10 @@ void SDL::Event::resetEvent() { } void SDL::Event::addHitToEvent(std::vector x, - std::vector y, - std::vector z, - std::vector detId, - std::vector idxInNtuple) { + std::vector y, + std::vector z, + std::vector detId, + std::vector idxInNtuple) { // Use the actual number of hits instead of a max. unsigned int nHits = x.size(); @@ -188,17 +188,18 @@ void SDL::Event::addHitToEvent(std::vector x, WorkDiv3D const hit_loop_workdiv = createWorkDiv(blocksPerGrid1, threadsPerBlock1, elementsPerThread); hitLoopKernel hit_loop_kernel; - auto const hit_loop_task(alpaka::createTaskKernel(hit_loop_workdiv, - hit_loop_kernel, - Endcap, - TwoS, - nModules_, - nEndCapMap_, - alpaka::getPtrNative(endcapGeometryBuffers_->geoMapDetId_buf), - alpaka::getPtrNative(endcapGeometryBuffers_->geoMapPhi_buf), - *modulesBuffers_->data(), - *hitsInGPU, - nHits)); + auto const hit_loop_task( + alpaka::createTaskKernel(hit_loop_workdiv, + hit_loop_kernel, + Endcap, + TwoS, + nModules_, + nEndCapMap_, + alpaka::getPtrNative(endcapGeometryBuffers_->geoMapDetId_buf), + alpaka::getPtrNative(endcapGeometryBuffers_->geoMapPhi_buf), + *modulesBuffers_->data(), + *hitsInGPU, + nHits)); alpaka::enqueue(queue, hit_loop_task); @@ -217,23 +218,23 @@ void SDL::Event::addHitToEvent(std::vector x, } void SDL::Event::addPixelSegmentToEvent(std::vector hitIndices0, - std::vector hitIndices1, - std::vector hitIndices2, - std::vector hitIndices3, - std::vector dPhiChange, - std::vector ptIn, - std::vector ptErr, - std::vector px, - std::vector py, - std::vector pz, - std::vector eta, - std::vector etaErr, - std::vector phi, - std::vector charge, - std::vector seedIdx, - std::vector superbin, - std::vector pixelType, - std::vector isQuad) { + std::vector hitIndices1, + std::vector hitIndices2, + std::vector hitIndices3, + std::vector dPhiChange, + std::vector ptIn, + std::vector ptErr, + std::vector px, + std::vector py, + std::vector pz, + std::vector eta, + std::vector etaErr, + std::vector phi, + std::vector charge, + std::vector seedIdx, + std::vector superbin, + std::vector pixelType, + std::vector isQuad) { unsigned int size = ptIn.size(); if (size > N_MAX_PIXEL_SEGMENTS_PER_MODULE) { @@ -298,10 +299,10 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitInd SDL::createSegmentArrayRanges createSegmentArrayRanges_kernel; auto const createSegmentArrayRangesTask(alpaka::createTaskKernel(createSegmentArrayRanges_workDiv, - createSegmentArrayRanges_kernel, - *modulesBuffers_->data(), - *rangesInGPU, - *mdsInGPU)); + createSegmentArrayRanges_kernel, + *modulesBuffers_->data(), + *rangesInGPU, + *mdsInGPU)); alpaka::enqueue(queue, createSegmentArrayRangesTask); alpaka::wait(queue); @@ -374,19 +375,19 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitInd addPixelSegmentToEventKernel addPixelSegmentToEvent_kernel; auto const addPixelSegmentToEvent_task(alpaka::createTaskKernel(addPixelSegmentToEvent_workdiv, - addPixelSegmentToEvent_kernel, - *modulesBuffers_->data(), - *rangesInGPU, - *hitsInGPU, - *mdsInGPU, - *segmentsInGPU, - alpaka::getPtrNative(hitIndices0_dev), - alpaka::getPtrNative(hitIndices1_dev), - alpaka::getPtrNative(hitIndices2_dev), - alpaka::getPtrNative(hitIndices3_dev), - alpaka::getPtrNative(dPhiChange_dev), - pixelModuleIndex, - size)); + addPixelSegmentToEvent_kernel, + *modulesBuffers_->data(), + *rangesInGPU, + *hitsInGPU, + *mdsInGPU, + *segmentsInGPU, + alpaka::getPtrNative(hitIndices0_dev), + alpaka::getPtrNative(hitIndices1_dev), + alpaka::getPtrNative(hitIndices2_dev), + alpaka::getPtrNative(hitIndices3_dev), + alpaka::getPtrNative(dPhiChange_dev), + pixelModuleIndex, + size)); alpaka::enqueue(queue, addPixelSegmentToEvent_task); alpaka::wait(queue); @@ -438,11 +439,11 @@ void SDL::Event::createMiniDoublets() { SDL::createMiniDoubletsInGPUv2 createMiniDoubletsInGPUv2_kernel; auto const createMiniDoubletsInGPUv2Task(alpaka::createTaskKernel(createMiniDoubletsInGPUv2_workDiv, - createMiniDoubletsInGPUv2_kernel, - *modulesBuffers_->data(), - *hitsInGPU, - *mdsInGPU, - *rangesInGPU)); + createMiniDoubletsInGPUv2_kernel, + *modulesBuffers_->data(), + *hitsInGPU, + *mdsInGPU, + *rangesInGPU)); alpaka::enqueue(queue, createMiniDoubletsInGPUv2Task); @@ -454,11 +455,11 @@ void SDL::Event::createMiniDoublets() { SDL::addMiniDoubletRangesToEventExplicit addMiniDoubletRangesToEventExplicit_kernel; auto const addMiniDoubletRangesToEventExplicitTask( alpaka::createTaskKernel(addMiniDoubletRangesToEventExplicit_workDiv, - addMiniDoubletRangesToEventExplicit_kernel, - *modulesBuffers_->data(), - *mdsInGPU, - *rangesInGPU, - *hitsInGPU)); + addMiniDoubletRangesToEventExplicit_kernel, + *modulesBuffers_->data(), + *mdsInGPU, + *rangesInGPU, + *hitsInGPU)); alpaka::enqueue(queue, addMiniDoubletRangesToEventExplicitTask); alpaka::wait(queue); @@ -483,11 +484,11 @@ void SDL::Event::createSegmentsWithModuleMap() { SDL::createSegmentsInGPUv2 createSegmentsInGPUv2_kernel; auto const createSegmentsInGPUv2Task(alpaka::createTaskKernel(createSegmentsInGPUv2_workDiv, - createSegmentsInGPUv2_kernel, - *modulesBuffers_->data(), - *mdsInGPU, - *segmentsInGPU, - *rangesInGPU)); + createSegmentsInGPUv2_kernel, + *modulesBuffers_->data(), + *mdsInGPU, + *segmentsInGPU, + *rangesInGPU)); alpaka::enqueue(queue, createSegmentsInGPUv2Task); @@ -497,11 +498,12 @@ void SDL::Event::createSegmentsWithModuleMap() { createWorkDiv(blocksPerGridAddSeg, threadsPerBlockAddSeg, elementsPerThread); SDL::addSegmentRangesToEventExplicit addSegmentRangesToEventExplicit_kernel; - auto const addSegmentRangesToEventExplicitTask(alpaka::createTaskKernel(addSegmentRangesToEventExplicit_workDiv, - addSegmentRangesToEventExplicit_kernel, - *modulesBuffers_->data(), - *segmentsInGPU, - *rangesInGPU)); + auto const addSegmentRangesToEventExplicitTask( + alpaka::createTaskKernel(addSegmentRangesToEventExplicit_workDiv, + addSegmentRangesToEventExplicit_kernel, + *modulesBuffers_->data(), + *segmentsInGPU, + *rangesInGPU)); alpaka::enqueue(queue, addSegmentRangesToEventExplicitTask); alpaka::wait(queue); @@ -520,10 +522,10 @@ void SDL::Event::createTriplets() { SDL::createTripletArrayRanges createTripletArrayRanges_kernel; auto const createTripletArrayRangesTask(alpaka::createTaskKernel(createTripletArrayRanges_workDiv, - createTripletArrayRanges_kernel, - *modulesBuffers_->data(), - *rangesInGPU, - *segmentsInGPU)); + createTripletArrayRanges_kernel, + *modulesBuffers_->data(), + *rangesInGPU, + *segmentsInGPU)); alpaka::enqueue(queue, createTripletArrayRangesTask); alpaka::wait(queue); @@ -588,14 +590,14 @@ void SDL::Event::createTriplets() { SDL::createTripletsInGPUv2 createTripletsInGPUv2_kernel; auto const createTripletsInGPUv2Task(alpaka::createTaskKernel(createTripletsInGPUv2_workDiv, - createTripletsInGPUv2_kernel, - *modulesBuffers_->data(), - *mdsInGPU, - *segmentsInGPU, - *tripletsInGPU, - *rangesInGPU, - alpaka::getPtrNative(index_gpu_buf), - nonZeroModules)); + createTripletsInGPUv2_kernel, + *modulesBuffers_->data(), + *mdsInGPU, + *segmentsInGPU, + *tripletsInGPU, + *rangesInGPU, + alpaka::getPtrNative(index_gpu_buf), + nonZeroModules)); alpaka::enqueue(queue, createTripletsInGPUv2Task); @@ -605,11 +607,12 @@ void SDL::Event::createTriplets() { createWorkDiv(blocksPerGridAddTrip, threadsPerBlockAddTrip, elementsPerThread); SDL::addTripletRangesToEventExplicit addTripletRangesToEventExplicit_kernel; - auto const addTripletRangesToEventExplicitTask(alpaka::createTaskKernel(addTripletRangesToEventExplicit_workDiv, - addTripletRangesToEventExplicit_kernel, - *modulesBuffers_->data(), - *tripletsInGPU, - *rangesInGPU)); + auto const addTripletRangesToEventExplicitTask( + alpaka::createTaskKernel(addTripletRangesToEventExplicit_workDiv, + addTripletRangesToEventExplicit_kernel, + *modulesBuffers_->data(), + *tripletsInGPU, + *rangesInGPU)); alpaka::enqueue(queue, addTripletRangesToEventExplicitTask); alpaka::wait(queue); @@ -640,12 +643,12 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls SDL::crossCleanpT3 crossCleanpT3_kernel; auto const crossCleanpT3Task(alpaka::createTaskKernel(crossCleanpT3_workDiv, - crossCleanpT3_kernel, - *modulesBuffers_->data(), - *rangesInGPU, - *pixelTripletsInGPU, - *segmentsInGPU, - *pixelQuintupletsInGPU)); + crossCleanpT3_kernel, + *modulesBuffers_->data(), + *rangesInGPU, + *pixelTripletsInGPU, + *segmentsInGPU, + *pixelQuintupletsInGPU)); alpaka::enqueue(queue, crossCleanpT3Task); @@ -656,12 +659,12 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls SDL::addpT3asTrackCandidatesInGPU addpT3asTrackCandidatesInGPU_kernel; auto const addpT3asTrackCandidatesInGPUTask(alpaka::createTaskKernel(addpT3asTrackCandidatesInGPU_workDiv, - addpT3asTrackCandidatesInGPU_kernel, - nLowerModules_, - *pixelTripletsInGPU, - *trackCandidatesInGPU, - *segmentsInGPU, - *rangesInGPU)); + addpT3asTrackCandidatesInGPU_kernel, + nLowerModules_, + *pixelTripletsInGPU, + *trackCandidatesInGPU, + *segmentsInGPU, + *rangesInGPU)); alpaka::enqueue(queue, addpT3asTrackCandidatesInGPUTask); @@ -674,9 +677,9 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls SDL::removeDupQuintupletsInGPUBeforeTC removeDupQuintupletsInGPUBeforeTC_kernel; auto const removeDupQuintupletsInGPUBeforeTCTask( alpaka::createTaskKernel(removeDupQuintupletsInGPUBeforeTC_workDiv, - removeDupQuintupletsInGPUBeforeTC_kernel, - *quintupletsInGPU, - *rangesInGPU)); + removeDupQuintupletsInGPUBeforeTC_kernel, + *quintupletsInGPU, + *rangesInGPU)); alpaka::enqueue(queue, removeDupQuintupletsInGPUBeforeTCTask); @@ -687,12 +690,12 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls SDL::crossCleanT5 crossCleanT5_kernel; auto const crossCleanT5Task(alpaka::createTaskKernel(crossCleanT5_workDiv, - crossCleanT5_kernel, - *modulesBuffers_->data(), - *quintupletsInGPU, - *pixelQuintupletsInGPU, - *pixelTripletsInGPU, - *rangesInGPU)); + crossCleanT5_kernel, + *modulesBuffers_->data(), + *quintupletsInGPU, + *pixelQuintupletsInGPU, + *pixelTripletsInGPU, + *rangesInGPU)); alpaka::enqueue(queue, crossCleanT5Task); @@ -703,11 +706,11 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls SDL::addT5asTrackCandidateInGPU addT5asTrackCandidateInGPU_kernel; auto const addT5asTrackCandidateInGPUTask(alpaka::createTaskKernel(addT5asTrackCandidateInGPU_workDiv, - addT5asTrackCandidateInGPU_kernel, - nLowerModules_, - *quintupletsInGPU, - *trackCandidatesInGPU, - *rangesInGPU)); + addT5asTrackCandidateInGPU_kernel, + nLowerModules_, + *quintupletsInGPU, + *trackCandidatesInGPU, + *rangesInGPU)); alpaka::enqueue(queue, addT5asTrackCandidateInGPUTask); @@ -731,15 +734,15 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls SDL::crossCleanpLS crossCleanpLS_kernel; auto const crossCleanpLSTask(alpaka::createTaskKernel(crossCleanpLS_workDiv, - crossCleanpLS_kernel, - *modulesBuffers_->data(), - *rangesInGPU, - *pixelTripletsInGPU, - *trackCandidatesInGPU, - *segmentsInGPU, - *mdsInGPU, - *hitsInGPU, - *quintupletsInGPU)); + crossCleanpLS_kernel, + *modulesBuffers_->data(), + *rangesInGPU, + *pixelTripletsInGPU, + *trackCandidatesInGPU, + *segmentsInGPU, + *mdsInGPU, + *hitsInGPU, + *quintupletsInGPU)); alpaka::enqueue(queue, crossCleanpLSTask); @@ -750,11 +753,11 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls SDL::addpLSasTrackCandidateInGPU addpLSasTrackCandidateInGPU_kernel; auto const addpLSasTrackCandidateInGPUTask(alpaka::createTaskKernel(addpLSasTrackCandidateInGPU_workDiv, - addpLSasTrackCandidateInGPU_kernel, - nLowerModules_, - *trackCandidatesInGPU, - *segmentsInGPU, - tc_pls_triplets)); + addpLSasTrackCandidateInGPU_kernel, + nLowerModules_, + *trackCandidatesInGPU, + *segmentsInGPU, + tc_pls_triplets)); alpaka::enqueue(queue, addpLSasTrackCandidateInGPUTask); @@ -865,16 +868,16 @@ void SDL::Event::createPixelTriplets() { SDL::createPixelTripletsInGPUFromMapv2 createPixelTripletsInGPUFromMapv2_kernel; auto const createPixelTripletsInGPUFromMapv2Task( alpaka::createTaskKernel(createPixelTripletsInGPUFromMapv2_workDiv, - createPixelTripletsInGPUFromMapv2_kernel, - *modulesBuffers_->data(), - *rangesInGPU, - *mdsInGPU, - *segmentsInGPU, - *tripletsInGPU, - *pixelTripletsInGPU, - alpaka::getPtrNative(connectedPixelSize_dev_buf), - alpaka::getPtrNative(connectedPixelIndex_dev_buf), - nInnerSegments)); + createPixelTripletsInGPUFromMapv2_kernel, + *modulesBuffers_->data(), + *rangesInGPU, + *mdsInGPU, + *segmentsInGPU, + *tripletsInGPU, + *pixelTripletsInGPU, + alpaka::getPtrNative(connectedPixelSize_dev_buf), + alpaka::getPtrNative(connectedPixelIndex_dev_buf), + nInnerSegments)); alpaka::enqueue(queue, createPixelTripletsInGPUFromMapv2Task); alpaka::wait(queue); @@ -912,10 +915,10 @@ void SDL::Event::createQuintuplets() { SDL::createEligibleModulesListForQuintupletsGPU createEligibleModulesListForQuintupletsGPU_kernel; auto const createEligibleModulesListForQuintupletsGPUTask( alpaka::createTaskKernel(createEligibleModulesListForQuintupletsGPU_workDiv, - createEligibleModulesListForQuintupletsGPU_kernel, - *modulesBuffers_->data(), - *tripletsInGPU, - *rangesInGPU)); + createEligibleModulesListForQuintupletsGPU_kernel, + *modulesBuffers_->data(), + *tripletsInGPU, + *rangesInGPU)); alpaka::enqueue(queue, createEligibleModulesListForQuintupletsGPUTask); alpaka::wait(queue); @@ -946,14 +949,14 @@ void SDL::Event::createQuintuplets() { SDL::createQuintupletsInGPUv2 createQuintupletsInGPUv2_kernel; auto const createQuintupletsInGPUv2Task(alpaka::createTaskKernel(createQuintupletsInGPUv2_workDiv, - createQuintupletsInGPUv2_kernel, - *modulesBuffers_->data(), - *mdsInGPU, - *segmentsInGPU, - *tripletsInGPU, - *quintupletsInGPU, - *rangesInGPU, - nEligibleT5Modules)); + createQuintupletsInGPUv2_kernel, + *modulesBuffers_->data(), + *mdsInGPU, + *segmentsInGPU, + *tripletsInGPU, + *quintupletsInGPU, + *rangesInGPU, + nEligibleT5Modules)); alpaka::enqueue(queue, createQuintupletsInGPUv2Task); @@ -965,10 +968,10 @@ void SDL::Event::createQuintuplets() { SDL::removeDupQuintupletsInGPUAfterBuild removeDupQuintupletsInGPUAfterBuild_kernel; auto const removeDupQuintupletsInGPUAfterBuildTask( alpaka::createTaskKernel(removeDupQuintupletsInGPUAfterBuild_workDiv, - removeDupQuintupletsInGPUAfterBuild_kernel, - *modulesBuffers_->data(), - *quintupletsInGPU, - *rangesInGPU)); + removeDupQuintupletsInGPUAfterBuild_kernel, + *modulesBuffers_->data(), + *quintupletsInGPU, + *rangesInGPU)); alpaka::enqueue(queue, removeDupQuintupletsInGPUAfterBuildTask); @@ -980,10 +983,10 @@ void SDL::Event::createQuintuplets() { SDL::addQuintupletRangesToEventExplicit addQuintupletRangesToEventExplicit_kernel; auto const addQuintupletRangesToEventExplicitTask( alpaka::createTaskKernel(addQuintupletRangesToEventExplicit_workDiv, - addQuintupletRangesToEventExplicit_kernel, - *modulesBuffers_->data(), - *quintupletsInGPU, - *rangesInGPU)); + addQuintupletRangesToEventExplicit_kernel, + *modulesBuffers_->data(), + *quintupletsInGPU, + *rangesInGPU)); alpaka::enqueue(queue, addQuintupletRangesToEventExplicitTask); alpaka::wait(queue); @@ -1094,17 +1097,17 @@ void SDL::Event::createPixelQuintuplets() { SDL::createPixelQuintupletsInGPUFromMapv2 createPixelQuintupletsInGPUFromMapv2_kernel; auto const createPixelQuintupletsInGPUFromMapv2Task( alpaka::createTaskKernel(createPixelQuintupletsInGPUFromMapv2_workDiv, - createPixelQuintupletsInGPUFromMapv2_kernel, - *modulesBuffers_->data(), - *mdsInGPU, - *segmentsInGPU, - *tripletsInGPU, - *quintupletsInGPU, - *pixelQuintupletsInGPU, - alpaka::getPtrNative(connectedPixelSize_dev_buf), - alpaka::getPtrNative(connectedPixelIndex_dev_buf), - nInnerSegments, - *rangesInGPU)); + createPixelQuintupletsInGPUFromMapv2_kernel, + *modulesBuffers_->data(), + *mdsInGPU, + *segmentsInGPU, + *tripletsInGPU, + *quintupletsInGPU, + *pixelQuintupletsInGPU, + alpaka::getPtrNative(connectedPixelSize_dev_buf), + alpaka::getPtrNative(connectedPixelIndex_dev_buf), + nInnerSegments, + *rangesInGPU)); alpaka::enqueue(queue, createPixelQuintupletsInGPUFromMapv2Task); @@ -1116,8 +1119,8 @@ void SDL::Event::createPixelQuintuplets() { SDL::removeDupPixelQuintupletsInGPUFromMap removeDupPixelQuintupletsInGPUFromMap_kernel; auto const removeDupPixelQuintupletsInGPUFromMapTask( alpaka::createTaskKernel(removeDupPixelQuintupletsInGPUFromMap_workDiv, - removeDupPixelQuintupletsInGPUFromMap_kernel, - *pixelQuintupletsInGPU)); + removeDupPixelQuintupletsInGPUFromMap_kernel, + *pixelQuintupletsInGPU)); alpaka::enqueue(queue, removeDupPixelQuintupletsInGPUFromMapTask); @@ -1128,12 +1131,12 @@ void SDL::Event::createPixelQuintuplets() { SDL::addpT5asTrackCandidateInGPU addpT5asTrackCandidateInGPU_kernel; auto const addpT5asTrackCandidateInGPUTask(alpaka::createTaskKernel(addpT5asTrackCandidateInGPU_workDiv, - addpT5asTrackCandidateInGPU_kernel, - nLowerModules_, - *pixelQuintupletsInGPU, - *trackCandidatesInGPU, - *segmentsInGPU, - *rangesInGPU)); + addpT5asTrackCandidateInGPU_kernel, + nLowerModules_, + *pixelQuintupletsInGPU, + *trackCandidatesInGPU, + *segmentsInGPU, + *rangesInGPU)); alpaka::enqueue(queue, addpT5asTrackCandidateInGPUTask); alpaka::wait(queue); @@ -1574,8 +1577,8 @@ SDL::segmentsBuffer* SDL::Event::getSegments() { alpaka::wait(queue); unsigned int nMemHost = *alpaka::getPtrNative(nMemHost_buf); - segmentsInCPU = new SDL::segmentsBuffer( - nMemHost, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devHost, queue); + segmentsInCPU = + new SDL::segmentsBuffer(nMemHost, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devHost, queue); segmentsInCPU->setData(*segmentsInCPU); *alpaka::getPtrNative(segmentsInCPU->nMemoryLocations_buf) = nMemHost; diff --git a/RecoTracker/LSTCore/src/alpaka/Event.h b/RecoTracker/LSTCore/src/alpaka/Event.h index cb81cabeed0c0..eeba434b503c0 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.h +++ b/RecoTracker/LSTCore/src/alpaka/Event.h @@ -1,5 +1,5 @@ -#ifndef RecoTracker_LSTCore_src_Event_h -#define RecoTracker_LSTCore_src_Event_h +#ifndef RecoTracker_LSTCore_src_alpaka_Event_h +#define RecoTracker_LSTCore_src_alpaka_Event_h #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" diff --git a/RecoTracker/LSTCore/src/alpaka/Hit.h b/RecoTracker/LSTCore/src/alpaka/Hit.h index d524dd93d3e8d..70c0976cd7480 100644 --- a/RecoTracker/LSTCore/src/alpaka/Hit.h +++ b/RecoTracker/LSTCore/src/alpaka/Hit.h @@ -1,5 +1,5 @@ -#ifndef Hit_cuh -#define Hit_cuh +#ifndef RecoTracker_LSTCore_src_alpaka_Hit_h +#define RecoTracker_LSTCore_src_alpaka_Hit_h #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" diff --git a/RecoTracker/LSTCore/src/alpaka/Kernels.h b/RecoTracker/LSTCore/src/alpaka/Kernels.h index 96cc6ecf89a79..cd62fc5b8a268 100644 --- a/RecoTracker/LSTCore/src/alpaka/Kernels.h +++ b/RecoTracker/LSTCore/src/alpaka/Kernels.h @@ -1,5 +1,5 @@ -#ifndef Kernels_cuh -#define Kernels_cuh +#ifndef RecoTracker_LSTCore_src_alpaka_Kernels_h +#define RecoTracker_LSTCore_src_alpaka_Kernels_h #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" diff --git a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc index ef028e5a2bca0..27b0fb49e1cd9 100644 --- a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc @@ -21,24 +21,24 @@ namespace { template <> void SDL::LST::prepareInput(const std::vector see_px, - const std::vector see_py, - const std::vector see_pz, - const std::vector see_dxy, - const std::vector see_dz, - const std::vector see_ptErr, - const std::vector see_etaErr, - const std::vector see_stateTrajGlbX, - const std::vector see_stateTrajGlbY, - const std::vector see_stateTrajGlbZ, - const std::vector see_stateTrajGlbPx, - const std::vector see_stateTrajGlbPy, - const std::vector see_stateTrajGlbPz, - const std::vector see_q, - const std::vector> see_hitIdx, - const std::vector ph2_detId, - const std::vector ph2_x, - const std::vector ph2_y, - const std::vector ph2_z) { + const std::vector see_py, + const std::vector see_pz, + const std::vector see_dxy, + const std::vector see_dz, + const std::vector see_ptErr, + const std::vector see_etaErr, + const std::vector see_stateTrajGlbX, + const std::vector see_stateTrajGlbY, + const std::vector see_stateTrajGlbZ, + const std::vector see_stateTrajGlbPx, + const std::vector see_stateTrajGlbPy, + const std::vector see_stateTrajGlbPz, + const std::vector see_q, + const std::vector> see_hitIdx, + const std::vector ph2_detId, + const std::vector ph2_x, + const std::vector ph2_y, + const std::vector ph2_z) { unsigned int count = 0; auto n_see = see_stateTrajGlbPx.size(); std::vector px_vec; @@ -212,11 +212,11 @@ void SDL::LST::prepareInput(const std::vector see_px, in_isQuad_vec_ = isQuad_vec; } -template<> +template <> std::vector SDL::LST::getHitIdxs(const short trackCandidateType, - const unsigned int TCIdx, - const unsigned int* TCHitIndices, - const unsigned int* hitIndices) { + const unsigned int TCIdx, + const unsigned int* TCHitIndices, + const unsigned int* hitIndices) { std::vector hits; unsigned int maxNHits = 0; @@ -279,29 +279,29 @@ void SDL::LST::getOutput(SDL::Event& event) { template <> template <> void SDL::LST::run(Queue& queue, - bool verbose, - const LSTESData* deviceESData, - const std::vector see_px, - const std::vector see_py, - const std::vector see_pz, - const std::vector see_dxy, - const std::vector see_dz, - const std::vector see_ptErr, - const std::vector see_etaErr, - const std::vector see_stateTrajGlbX, - const std::vector see_stateTrajGlbY, - const std::vector see_stateTrajGlbZ, - const std::vector see_stateTrajGlbPx, - const std::vector see_stateTrajGlbPy, - const std::vector see_stateTrajGlbPz, - const std::vector see_q, - const std::vector> see_hitIdx, - const std::vector ph2_detId, - const std::vector ph2_x, - const std::vector ph2_y, - const std::vector ph2_z, - bool no_pls_dupclean, - bool tc_pls_triplets) { + bool verbose, + const LSTESData* deviceESData, + const std::vector see_px, + const std::vector see_py, + const std::vector see_pz, + const std::vector see_dxy, + const std::vector see_dz, + const std::vector see_ptErr, + const std::vector see_etaErr, + const std::vector see_stateTrajGlbX, + const std::vector see_stateTrajGlbY, + const std::vector see_stateTrajGlbZ, + const std::vector see_stateTrajGlbPx, + const std::vector see_stateTrajGlbPy, + const std::vector see_stateTrajGlbPz, + const std::vector see_q, + const std::vector> see_hitIdx, + const std::vector ph2_detId, + const std::vector ph2_x, + const std::vector ph2_y, + const std::vector ph2_z, + bool no_pls_dupclean, + bool tc_pls_triplets) { auto event = SDL::Event(verbose, queue, deviceESData); prepareInput(see_px, see_py, diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index 1f65d69cd535f..a0f5998f643b6 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -1,5 +1,5 @@ -#ifndef MiniDoublet_cuh -#define MiniDoublet_cuh +#ifndef RecoTracker_LSTCore_src_alpaka_MiniDoublet_h +#define RecoTracker_LSTCore_src_alpaka_MiniDoublet_h #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h index d04260ec2deb1..cc86d60b54af0 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h @@ -1,5 +1,5 @@ -#ifndef NeuralNetwork_cuh -#define NeuralNetwork_cuh +#ifndef RecoTracker_LSTCore_src_alpaka_NeuralNetwork_h +#define RecoTracker_LSTCore_src_alpaka_NeuralNetwork_h #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h index 90fb6b21ac7d4..959ebb56e8b68 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h @@ -1,5 +1,5 @@ -#ifndef NeuralNetworkWeights_cuh -#define NeuralNetworkWeights_cuh +#ifndef RecoTracker_LSTCore_src_alpaka_NeuralNetworkWeights_h +#define RecoTracker_LSTCore_src_alpaka_NeuralNetworkWeights_h #include diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index 06b73403011ac..3f73fb53f717b 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -1,5 +1,5 @@ -#ifndef PixelTriplet_cuh -#define PixelTriplet_cuh +#ifndef RecoTracker_LSTCore_src_alpaka_PixelTriplet_h +#define RecoTracker_LSTCore_src_alpaka_PixelTriplet_h #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" @@ -1824,8 +1824,8 @@ namespace SDL { } // namespace SDL #endif -#ifndef PixelQuintuplet_cuh -#define PixelQuintuplet_cuh +#ifndef RecoTracker_LSTCore_src_alpaka_PixelQuintuplet_h +#define RecoTracker_LSTCore_src_alpaka_PixelQuintuplet_h #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index f4368bac18d8f..b5b21a52c8ae7 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -1,5 +1,5 @@ -#ifndef Quintuplet_cuh -#define Quintuplet_cuh +#ifndef RecoTracker_LSTCore_src_alpaka_Quintuplet_h +#define RecoTracker_LSTCore_src_alpaka_Quintuplet_h #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index 3216afa7092e3..114d29df698fa 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -1,5 +1,5 @@ -#ifndef Segment_cuh -#define Segment_cuh +#ifndef RecoTracker_LSTCore_src_alpaka_Segment_h +#define RecoTracker_LSTCore_src_alpaka_Segment_h #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" diff --git a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h index fbf97c97c3c17..080abee755f96 100644 --- a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h +++ b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h @@ -1,5 +1,5 @@ -#ifndef TrackCandidate_cuh -#define TrackCandidate_cuh +#ifndef RecoTracker_LSTCore_src_alpaka_TrackCandidate_h +#define RecoTracker_LSTCore_src_alpaka_TrackCandidate_h #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index 793a3186174b1..4b1308dbc9067 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -1,5 +1,5 @@ -#ifndef Triplet_cuh -#define Triplet_cuh +#ifndef RecoTracker_LSTCore_src_alpaka_Triplet_h +#define RecoTracker_LSTCore_src_alpaka_Triplet_h #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" diff --git a/RecoTracker/LSTCore/standalone/bin/sdl.cc b/RecoTracker/LSTCore/standalone/bin/sdl.cc index 61639b73068d0..eab52b42645dd 100644 --- a/RecoTracker/LSTCore/standalone/bin/sdl.cc +++ b/RecoTracker/LSTCore/standalone/bin/sdl.cc @@ -308,8 +308,7 @@ void run_sdl() { TStopwatch full_timer; full_timer.Start(); auto hostESData = SDL::loadAndFillESHost(); - auto deviceESData = - cms::alpakatools::CopyToDevice>::copyAsync(queues[0], *hostESData.get()); + auto deviceESData = cms::alpakatools::CopyToDevice>::copyAsync(queues[0], *hostESData.get()); float timeForMapLoading = full_timer.RealTime() * 1000; if (ana.do_write_ntuple) { diff --git a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc index 1429957d4626f..debebfb128859 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc +++ b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc @@ -63,8 +63,8 @@ std::vector getPixelHitTypesFrompLS(SDL::Event* event, uns } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFrompLS( - SDL::Event* event, unsigned pLS) { +std::tuple, std::vector> getHitIdxsAndHitTypesFrompLS(SDL::Event* event, + unsigned pLS) { return convertHitsToHitIdxsAndHitTypes(event, getPixelHitsFrompLS(event, pLS)); } @@ -81,8 +81,8 @@ std::vector getHitsFromMD(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFromMD( - SDL::Event* event, unsigned MD) { +std::tuple, std::vector> getHitIdxsAndHitTypesFromMD(SDL::Event* event, + unsigned MD) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromMD(event, MD)); } @@ -107,8 +107,8 @@ std::vector getHitsFromLS(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFromLS( - SDL::Event* event, unsigned LS) { +std::tuple, std::vector> getHitIdxsAndHitTypesFromLS(SDL::Event* event, + unsigned LS) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromLS(event, LS)); } @@ -142,8 +142,8 @@ std::vector getHitsFromT3(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFromT3( - SDL::Event* event, unsigned T3) { +std::tuple, std::vector> getHitIdxsAndHitTypesFromT3(SDL::Event* event, + unsigned T3) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromT3(event, T3)); } @@ -214,8 +214,8 @@ std::vector getHitTypesFromT5(SDL::Event* event, unsigned } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFromT5( - SDL::Event* event, unsigned T5) { +std::tuple, std::vector> getHitIdxsAndHitTypesFromT5(SDL::Event* event, + unsigned T5) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromT5(event, T5)); } @@ -303,8 +303,8 @@ std::vector getHitTypesFrompT3(SDL::Event* event, unsigned } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFrompT3( - SDL::Event* event, unsigned pT3) { +std::tuple, std::vector> getHitIdxsAndHitTypesFrompT3(SDL::Event* event, + unsigned pT3) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFrompT3(event, pT3)); } @@ -400,8 +400,8 @@ std::vector getHitTypesFrompT5(SDL::Event* event, unsigned } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFrompT5( - SDL::Event* event, unsigned pT5) { +std::tuple, std::vector> getHitIdxsAndHitTypesFrompT5(SDL::Event* event, + unsigned pT5) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFrompT5(event, pT5)); } @@ -432,8 +432,8 @@ std::vector getLSsFromTC(SDL::Event* event, unsigned int T } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFromTC( - SDL::Event* event, unsigned TC) { +std::tuple, std::vector> getHitIdxsAndHitTypesFromTC(SDL::Event* event, + unsigned TC) { // Get the type of the track candidate SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); short type = trackCandidatesInGPU.trackCandidateType[TC]; diff --git a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h index efe1cdb68f585..d72edd669fb51 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h +++ b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h @@ -12,9 +12,12 @@ std::tuple, std::vector> convertHitsToHi SDL::Event* event, std::vector hits); // ----* pLS *---- -std::vector getPixelHitsFrompLS(SDL::Event* event, unsigned int pLS); -std::vector getPixelHitIdxsFrompLS(SDL::Event* event, unsigned int pLS); -std::vector getPixelHitTypesFrompLS(SDL::Event* event, unsigned int pLS); +std::vector getPixelHitsFrompLS(SDL::Event* event, + unsigned int pLS); +std::vector getPixelHitIdxsFrompLS(SDL::Event* event, + unsigned int pLS); +std::vector getPixelHitTypesFrompLS(SDL::Event* event, + unsigned int pLS); std::tuple, std::vector> getHitIdxsAndHitTypesFrompLS( SDL::Event* event, unsigned pLS); @@ -52,12 +55,15 @@ unsigned int getPixelLSFrompT3(SDL::Event* unsigned int getT3FrompT3(SDL::Event* event, unsigned int pT3); std::vector getLSsFrompT3(SDL::Event* event, unsigned int pT3); std::vector getMDsFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getOuterTrackerHitsFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getPixelHitsFrompT3(SDL::Event* event, unsigned int pT3); +std::vector getOuterTrackerHitsFrompT3(SDL::Event* event, + unsigned int pT3); +std::vector getPixelHitsFrompT3(SDL::Event* event, + unsigned int pT3); std::vector getHitsFrompT3(SDL::Event* event, unsigned int pT3); std::vector getHitIdxsFrompT3(SDL::Event* event, unsigned int pT3); std::vector getHitTypesFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getModuleIdxsFrompT3(SDL::Event* event, unsigned int pT3); +std::vector getModuleIdxsFrompT3(SDL::Event* event, + unsigned int pT3); std::tuple, std::vector> getHitIdxsAndHitTypesFrompT3( SDL::Event* event, unsigned pT3); @@ -67,12 +73,15 @@ unsigned int getT5FrompT5(SDL::Event* even std::vector getT3sFrompT5(SDL::Event* event, unsigned int pT5); std::vector getLSsFrompT5(SDL::Event* event, unsigned int pT5); std::vector getMDsFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getOuterTrackerHitsFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getPixelHitsFrompT5(SDL::Event* event, unsigned int pT5); +std::vector getOuterTrackerHitsFrompT5(SDL::Event* event, + unsigned int pT5); +std::vector getPixelHitsFrompT5(SDL::Event* event, + unsigned int pT5); std::vector getHitsFrompT5(SDL::Event* event, unsigned int pT5); std::vector getHitIdxsFrompT5(SDL::Event* event, unsigned int pT5); std::vector getHitTypesFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getModuleIdxsFrompT5(SDL::Event* event, unsigned int pT5); +std::vector getModuleIdxsFrompT5(SDL::Event* event, + unsigned int pT5); std::tuple, std::vector> getHitIdxsAndHitTypesFrompT5( SDL::Event* event, unsigned pT5); diff --git a/RecoTracker/LSTCore/standalone/code/core/trkCore.h b/RecoTracker/LSTCore/standalone/code/core/trkCore.h index 237f7670da738..e32bc5153e04a 100644 --- a/RecoTracker/LSTCore/standalone/code/core/trkCore.h +++ b/RecoTracker/LSTCore/standalone/code/core/trkCore.h @@ -20,7 +20,9 @@ float runT4(SDL::Event *event); float runT4x(SDL::Event *event); float runpT4(SDL::Event *event); float runT3(SDL::Event *event); -float runTrackCandidate(SDL::Event *event, bool no_pls_dupclean, bool tc_pls_triplets); +float runTrackCandidate(SDL::Event *event, + bool no_pls_dupclean, + bool tc_pls_triplets); float runQuintuplet(SDL::Event *event); float runPixelQuintuplet(SDL::Event *event); float runPixelLineSegment(SDL::Event *event, bool no_pls_dupclean); diff --git a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc index 2529586907d08..d361cdd165705 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc +++ b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc @@ -891,8 +891,8 @@ std::tuple, std::vector, std::vector> parseT5( - SDL::Event* event, unsigned int idx) { +std::tuple, std::vector> parseT5(SDL::Event* event, + unsigned int idx) { SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); SDL::quintupletsBuffer& quintupletsInGPU = (*event->getQuintuplets()); unsigned int T5 = trackCandidatesInGPU.directObjectIndices[idx]; diff --git a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h index e61250f196ae4..ec3afb2e1944c 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h +++ b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h @@ -26,8 +26,8 @@ void setPixelTripletOutputBranches(SDL::Event* event); void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD); -std::tuple> parseTrackCandidate(SDL::Event* event, - unsigned int); +std::tuple> parseTrackCandidate( + SDL::Event* event, unsigned int); std::tuple, std::vector> parsepT5( SDL::Event* event, unsigned int); std::tuple, std::vector> parsepT3( From d33ac3204e4db76e080894042510adbbf1ab87ec Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Thu, 18 Jul 2024 07:28:52 -0700 Subject: [PATCH 6/7] A bit more cleanup --- RecoTracker/LST/plugins/alpaka/LSTProducer.cc | 2 +- RecoTracker/LSTCore/interface/LST.h | 6 +- .../LSTCore/interface/alpaka/Constants.h | 21 ++-- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 112 +++++++++--------- RecoTracker/LSTCore/src/alpaka/Event.h | 80 +++++++------ RecoTracker/LSTCore/src/alpaka/LST.dev.cc | 10 +- RecoTracker/LSTCore/standalone/bin/sdl.cc | 4 +- .../standalone/code/core/AccessHelper.cc | 94 +++++++-------- .../standalone/code/core/AccessHelper.h | 98 +++++++-------- .../LSTCore/standalone/code/core/trkCore.cc | 22 ++-- .../LSTCore/standalone/code/core/trkCore.h | 30 ++--- .../standalone/code/core/write_sdl_ntuple.cc | 42 +++---- .../standalone/code/core/write_sdl_ntuple.h | 50 ++++---- 13 files changed, 291 insertions(+), 280 deletions(-) diff --git a/RecoTracker/LST/plugins/alpaka/LSTProducer.cc b/RecoTracker/LST/plugins/alpaka/LSTProducer.cc index b93580b0a9fa9..1b34b949c64e5 100644 --- a/RecoTracker/LST/plugins/alpaka/LSTProducer.cc +++ b/RecoTracker/LST/plugins/alpaka/LSTProducer.cc @@ -91,7 +91,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { const bool verbose_, nopLSDupClean_, tcpLSTriplets_; edm::EDPutTokenT lstOutputToken_; - SDL::LST lst_; + SDL::LST lst_; }; } // namespace ALPAKA_ACCELERATOR_NAMESPACE diff --git a/RecoTracker/LSTCore/interface/LST.h b/RecoTracker/LSTCore/interface/LST.h index 13aa2ec9896aa..7b44d07e0bb6c 100644 --- a/RecoTracker/LSTCore/interface/LST.h +++ b/RecoTracker/LSTCore/interface/LST.h @@ -16,7 +16,7 @@ namespace SDL { template class LST; - template + template class LST { public: LST() = default; @@ -24,7 +24,7 @@ namespace SDL { template void run(TQueue& queue, bool verbose, - const LSTESData* deviceESData, + const LSTESData>* deviceESData, const std::vector see_px, const std::vector see_py, const std::vector see_pz, @@ -72,7 +72,7 @@ namespace SDL { const std::vector ph2_y, const std::vector ph2_z); - void getOutput(SDL::Event& event); + void getOutput(SDL::Event& event); std::vector getHitIdxs(const short trackCandidateType, const unsigned int TCIdx, const unsigned int* TCHitIndices, diff --git a/RecoTracker/LSTCore/interface/alpaka/Constants.h b/RecoTracker/LSTCore/interface/alpaka/Constants.h index b0a5d0e556760..e8a890fbb9ff4 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Constants.h +++ b/RecoTracker/LSTCore/interface/alpaka/Constants.h @@ -8,6 +8,9 @@ #endif namespace SDL { + + using namespace ALPAKA_ACCELERATOR_NAMESPACE; + // Half precision wrapper functions. #if defined(FP16_Base) #define __F2H __float2half @@ -19,7 +22,7 @@ namespace SDL { typedef float FPX; #endif - alpaka_common::Vec3D const elementsPerThread(alpaka_common::Vec3D::all(static_cast(1))); + Vec3D constexpr elementsPerThread(Vec3D::all(static_cast(1))); // Needed for files that are compiled by g++ to not throw an error. // uint4 is defined only for CUDA, so we will have to revisit this soon when running on other backends. @@ -33,14 +36,14 @@ namespace SDL { #endif // Wrapper function to reduce code boilerplate for defining grid/block sizes. - ALPAKA_FN_HOST ALPAKA_FN_INLINE alpaka_common::Vec3D createVec(int x, int y, int z) { - return alpaka_common::Vec3D( - static_cast(x), static_cast(y), static_cast(z)); + ALPAKA_FN_HOST ALPAKA_FN_INLINE Vec3D createVec(int x, int y, int z) { + return Vec3D( + static_cast(x), static_cast(y), static_cast(z)); } // Adjust grid and block sizes based on backend configuration template - ALPAKA_FN_HOST ALPAKA_FN_INLINE alpaka_common::WorkDiv3D createWorkDiv(const Vec& blocksPerGrid, + ALPAKA_FN_HOST ALPAKA_FN_INLINE WorkDiv3D createWorkDiv(const Vec& blocksPerGrid, const Vec& threadsPerBlock, const Vec& elementsPerThreadArg) { Vec adjustedBlocks = blocksPerGrid; @@ -48,16 +51,16 @@ namespace SDL { // Serial execution, so all launch parameters set to 1. #if defined(ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLED) - adjustedBlocks = Vec::all(static_cast(1)); - adjustedThreads = Vec::all(static_cast(1)); + adjustedBlocks = Vec::all(static_cast(1)); + adjustedThreads = Vec::all(static_cast(1)); #endif // Threads enabled, set number of blocks to 1. #if defined(ALPAKA_ACC_CPU_B_SEQ_T_THREADS_ENABLED) - adjustedBlocks = Vec::all(static_cast(1)); + adjustedBlocks = Vec::all(static_cast(1)); #endif - return alpaka_common::WorkDiv3D(adjustedBlocks, adjustedThreads, elementsPerThreadArg); + return WorkDiv3D(adjustedBlocks, adjustedThreads, elementsPerThreadArg); } // 15 MeV constant from the approximate Bethe-Bloch formula diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index 37fb4ca02fc0a..230b10d3904bc 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc @@ -2,7 +2,7 @@ using namespace ALPAKA_ACCELERATOR_NAMESPACE; -void SDL::Event::init(bool verbose) { +void SDL::Event::init(bool verbose) { addObjects = verbose; hitsInGPU = nullptr; mdsInGPU = nullptr; @@ -44,7 +44,7 @@ void SDL::Event::init(bool verbose) { } } -void SDL::Event::resetEvent() { +void SDL::Event::resetEvent() { //reset the arrays for (int i = 0; i < 6; i++) { n_hits_by_layer_barrel_[i] = 0; @@ -150,7 +150,7 @@ void SDL::Event::resetEvent() { } } -void SDL::Event::addHitToEvent(std::vector x, +void SDL::Event::addHitToEvent(std::vector x, std::vector y, std::vector z, std::vector detId, @@ -217,7 +217,7 @@ void SDL::Event::addHitToEvent(std::vector x, alpaka::enqueue(queue, module_ranges_task); } -void SDL::Event::addPixelSegmentToEvent(std::vector hitIndices0, +void SDL::Event::addPixelSegmentToEvent(std::vector hitIndices0, std::vector hitIndices1, std::vector hitIndices2, std::vector hitIndices3, @@ -393,7 +393,7 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitInd alpaka::wait(queue); } -void SDL::Event::createMiniDoublets() { +void SDL::Event::createMiniDoublets() { // Create a view for the element nLowerModules_ inside rangesBuffers->miniDoubletModuleOccupancy auto dst_view_miniDoubletModuleOccupancy = alpaka::createSubView(rangesBuffers->miniDoubletModuleOccupancy_buf, (Idx)1u, (Idx)nLowerModules_); @@ -469,7 +469,7 @@ void SDL::Event::createMiniDoublets() { } } -void SDL::Event::createSegmentsWithModuleMap() { +void SDL::Event::createSegmentsWithModuleMap() { if (segmentsInGPU == nullptr) { segmentsInGPU = new SDL::segments(); segmentsBuffers = @@ -513,7 +513,7 @@ void SDL::Event::createSegmentsWithModuleMap() { } } -void SDL::Event::createTriplets() { +void SDL::Event::createTriplets() { if (tripletsInGPU == nullptr) { Vec3D const threadsPerBlockCreateTrip = createVec(1, 1, 1024); Vec3D const blocksPerGridCreateTrip = createVec(1, 1, 1); @@ -622,7 +622,7 @@ void SDL::Event::createTriplets() { } } -void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_triplets) { +void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_triplets) { if (trackCandidatesInGPU == nullptr) { trackCandidatesInGPU = new SDL::trackCandidates(); trackCandidatesBuffers = new SDL::trackCandidatesBuffer( @@ -787,7 +787,7 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls } } -void SDL::Event::createPixelTriplets() { +void SDL::Event::createPixelTriplets() { if (pixelTripletsInGPU == nullptr) { pixelTripletsInGPU = new SDL::pixelTriplets(); pixelTripletsBuffers = new SDL::pixelTripletsBuffer(N_MAX_PIXEL_TRIPLETS, devAcc, queue); @@ -906,7 +906,7 @@ void SDL::Event::createPixelTriplets() { alpaka::wait(queue); } -void SDL::Event::createQuintuplets() { +void SDL::Event::createQuintuplets() { Vec3D const threadsPerBlockCreateQuints = createVec(1, 1, 1024); Vec3D const blocksPerGridCreateQuints = createVec(1, 1, 1); WorkDiv3D const createEligibleModulesListForQuintupletsGPU_workDiv = @@ -996,7 +996,7 @@ void SDL::Event::createQuintuplets() { } } -void SDL::Event::pixelLineSegmentCleaning(bool no_pls_dupclean) { +void SDL::Event::pixelLineSegmentCleaning(bool no_pls_dupclean) { if (!no_pls_dupclean) { Vec3D const threadsPerBlockCheckHitspLS = createVec(1, 16, 16); Vec3D const blocksPerGridCheckHitspLS = createVec(1, MAX_BLOCKS * 4, MAX_BLOCKS / 4); @@ -1012,7 +1012,7 @@ void SDL::Event::pixelLineSegmentCleaning(bool no_pls_dupclean) { } } -void SDL::Event::createPixelQuintuplets() { +void SDL::Event::createPixelQuintuplets() { if (pixelQuintupletsInGPU == nullptr) { pixelQuintupletsInGPU = new SDL::pixelQuintuplets(); pixelQuintupletsBuffers = new SDL::pixelQuintupletsBuffer(N_MAX_PIXEL_QUINTUPLETS, devAcc, queue); @@ -1151,7 +1151,7 @@ void SDL::Event::createPixelQuintuplets() { #endif } -void SDL::Event::addMiniDoubletsToEventExplicit() { +void SDL::Event::addMiniDoubletsToEventExplicit() { auto nMDsCPU_buf = allocBufWrapper(devHost, nLowerModules_, queue); alpaka::memcpy(queue, nMDsCPU_buf, miniDoubletsBuffers->nMDs_buf, nLowerModules_); @@ -1182,7 +1182,7 @@ void SDL::Event::addMiniDoubletsToEventExplicit() { } } -void SDL::Event::addSegmentsToEventExplicit() { +void SDL::Event::addSegmentsToEventExplicit() { auto nSegmentsCPU_buf = allocBufWrapper(devHost, nLowerModules_, queue); alpaka::memcpy(queue, nSegmentsCPU_buf, segmentsBuffers->nSegments_buf, nLowerModules_); @@ -1209,7 +1209,7 @@ void SDL::Event::addSegmentsToEventExplicit() { } } -void SDL::Event::addQuintupletsToEventExplicit() { +void SDL::Event::addQuintupletsToEventExplicit() { auto nQuintupletsCPU_buf = allocBufWrapper(devHost, nLowerModules_, queue); alpaka::memcpy(queue, nQuintupletsCPU_buf, quintupletsBuffers->nQuintuplets_buf); @@ -1240,7 +1240,7 @@ void SDL::Event::addQuintupletsToEventExplicit() { } } -void SDL::Event::addTripletsToEventExplicit() { +void SDL::Event::addTripletsToEventExplicit() { auto nTripletsCPU_buf = allocBufWrapper(devHost, nLowerModules_, queue); alpaka::memcpy(queue, nTripletsCPU_buf, tripletsBuffers->nTriplets_buf); @@ -1266,7 +1266,7 @@ void SDL::Event::addTripletsToEventExplicit() { } } -unsigned int SDL::Event::getNumberOfHits() { +unsigned int SDL::Event::getNumberOfHits() { unsigned int hits = 0; for (auto& it : n_hits_by_layer_barrel_) { hits += it; @@ -1278,22 +1278,22 @@ unsigned int SDL::Event::getNumberOfHits() { return hits; } -unsigned int SDL::Event::getNumberOfHitsByLayer(unsigned int layer) { +unsigned int SDL::Event::getNumberOfHitsByLayer(unsigned int layer) { if (layer == 6) return n_hits_by_layer_barrel_[layer]; else return n_hits_by_layer_barrel_[layer] + n_hits_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfHitsByLayerBarrel(unsigned int layer) { +unsigned int SDL::Event::getNumberOfHitsByLayerBarrel(unsigned int layer) { return n_hits_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfHitsByLayerEndcap(unsigned int layer) { +unsigned int SDL::Event::getNumberOfHitsByLayerEndcap(unsigned int layer) { return n_hits_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfMiniDoublets() { +unsigned int SDL::Event::getNumberOfMiniDoublets() { unsigned int miniDoublets = 0; for (auto& it : n_minidoublets_by_layer_barrel_) { miniDoublets += it; @@ -1305,22 +1305,22 @@ unsigned int SDL::Event::getNumberOfMiniDoublets() { return miniDoublets; } -unsigned int SDL::Event::getNumberOfMiniDoubletsByLayer(unsigned int layer) { +unsigned int SDL::Event::getNumberOfMiniDoubletsByLayer(unsigned int layer) { if (layer == 6) return n_minidoublets_by_layer_barrel_[layer]; else return n_minidoublets_by_layer_barrel_[layer] + n_minidoublets_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfMiniDoubletsByLayerBarrel(unsigned int layer) { +unsigned int SDL::Event::getNumberOfMiniDoubletsByLayerBarrel(unsigned int layer) { return n_minidoublets_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfMiniDoubletsByLayerEndcap(unsigned int layer) { +unsigned int SDL::Event::getNumberOfMiniDoubletsByLayerEndcap(unsigned int layer) { return n_minidoublets_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfSegments() { +unsigned int SDL::Event::getNumberOfSegments() { unsigned int segments = 0; for (auto& it : n_segments_by_layer_barrel_) { segments += it; @@ -1332,22 +1332,22 @@ unsigned int SDL::Event::getNumberOfSegments() { return segments; } -unsigned int SDL::Event::getNumberOfSegmentsByLayer(unsigned int layer) { +unsigned int SDL::Event::getNumberOfSegmentsByLayer(unsigned int layer) { if (layer == 6) return n_segments_by_layer_barrel_[layer]; else return n_segments_by_layer_barrel_[layer] + n_segments_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfSegmentsByLayerBarrel(unsigned int layer) { +unsigned int SDL::Event::getNumberOfSegmentsByLayerBarrel(unsigned int layer) { return n_segments_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfSegmentsByLayerEndcap(unsigned int layer) { +unsigned int SDL::Event::getNumberOfSegmentsByLayerEndcap(unsigned int layer) { return n_segments_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfTriplets() { +unsigned int SDL::Event::getNumberOfTriplets() { unsigned int triplets = 0; for (auto& it : n_triplets_by_layer_barrel_) { triplets += it; @@ -1359,22 +1359,22 @@ unsigned int SDL::Event::getNumberOfTriplets() { return triplets; } -unsigned int SDL::Event::getNumberOfTripletsByLayer(unsigned int layer) { +unsigned int SDL::Event::getNumberOfTripletsByLayer(unsigned int layer) { if (layer == 6) return n_triplets_by_layer_barrel_[layer]; else return n_triplets_by_layer_barrel_[layer] + n_triplets_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfTripletsByLayerBarrel(unsigned int layer) { +unsigned int SDL::Event::getNumberOfTripletsByLayerBarrel(unsigned int layer) { return n_triplets_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfTripletsByLayerEndcap(unsigned int layer) { +unsigned int SDL::Event::getNumberOfTripletsByLayerEndcap(unsigned int layer) { return n_triplets_by_layer_endcap_[layer]; } -int SDL::Event::getNumberOfPixelTriplets() { +int SDL::Event::getNumberOfPixelTriplets() { auto nPixelTriplets_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nPixelTriplets_buf, pixelTripletsBuffers->nPixelTriplets_buf); @@ -1385,7 +1385,7 @@ int SDL::Event::getNumberOfPixelTriplets() { return nPixelTriplets; } -int SDL::Event::getNumberOfPixelQuintuplets() { +int SDL::Event::getNumberOfPixelQuintuplets() { auto nPixelQuintuplets_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nPixelQuintuplets_buf, pixelQuintupletsBuffers->nPixelQuintuplets_buf); @@ -1396,7 +1396,7 @@ int SDL::Event::getNumberOfPixelQuintuplets() { return nPixelQuintuplets; } -unsigned int SDL::Event::getNumberOfQuintuplets() { +unsigned int SDL::Event::getNumberOfQuintuplets() { unsigned int quintuplets = 0; for (auto& it : n_quintuplets_by_layer_barrel_) { quintuplets += it; @@ -1408,22 +1408,22 @@ unsigned int SDL::Event::getNumberOfQuintuplets() { return quintuplets; } -unsigned int SDL::Event::getNumberOfQuintupletsByLayer(unsigned int layer) { +unsigned int SDL::Event::getNumberOfQuintupletsByLayer(unsigned int layer) { if (layer == 6) return n_quintuplets_by_layer_barrel_[layer]; else return n_quintuplets_by_layer_barrel_[layer] + n_quintuplets_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfQuintupletsByLayerBarrel(unsigned int layer) { +unsigned int SDL::Event::getNumberOfQuintupletsByLayerBarrel(unsigned int layer) { return n_quintuplets_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfQuintupletsByLayerEndcap(unsigned int layer) { +unsigned int SDL::Event::getNumberOfQuintupletsByLayerEndcap(unsigned int layer) { return n_quintuplets_by_layer_endcap_[layer]; } -int SDL::Event::getNumberOfTrackCandidates() { +int SDL::Event::getNumberOfTrackCandidates() { auto nTrackCandidates_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidates_buf, trackCandidatesBuffers->nTrackCandidates_buf); @@ -1434,7 +1434,7 @@ int SDL::Event::getNumberOfTrackCandidates() { return nTrackCandidates; } -int SDL::Event::getNumberOfPT5TrackCandidates() { +int SDL::Event::getNumberOfPT5TrackCandidates() { auto nTrackCandidatesPT5_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidatesPT5_buf, trackCandidatesBuffers->nTrackCandidatespT5_buf); @@ -1445,7 +1445,7 @@ int SDL::Event::getNumberOfPT5TrackCandidates() { return nTrackCandidatesPT5; } -int SDL::Event::getNumberOfPT3TrackCandidates() { +int SDL::Event::getNumberOfPT3TrackCandidates() { auto nTrackCandidatesPT3_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidatesPT3_buf, trackCandidatesBuffers->nTrackCandidatespT3_buf); @@ -1456,7 +1456,7 @@ int SDL::Event::getNumberOfPT3TrackCandidates() { return nTrackCandidatesPT3; } -int SDL::Event::getNumberOfPLSTrackCandidates() { +int SDL::Event::getNumberOfPLSTrackCandidates() { auto nTrackCandidatesPLS_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidatesPLS_buf, trackCandidatesBuffers->nTrackCandidatespLS_buf); @@ -1467,7 +1467,7 @@ int SDL::Event::getNumberOfPLSTrackCandidates() { return nTrackCandidatesPLS; } -int SDL::Event::getNumberOfPixelTrackCandidates() { +int SDL::Event::getNumberOfPixelTrackCandidates() { auto nTrackCandidates_buf = allocBufWrapper(devHost, 1, queue); auto nTrackCandidatesT5_buf = allocBufWrapper(devHost, 1, queue); @@ -1481,7 +1481,7 @@ int SDL::Event::getNumberOfPixelTrackCandidates() { return nTrackCandidates - nTrackCandidatesT5; } -int SDL::Event::getNumberOfT5TrackCandidates() { +int SDL::Event::getNumberOfT5TrackCandidates() { auto nTrackCandidatesT5_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nTrackCandidatesT5_buf, trackCandidatesBuffers->nTrackCandidatesT5_buf); @@ -1492,7 +1492,7 @@ int SDL::Event::getNumberOfT5TrackCandidates() { return nTrackCandidatesT5; } -SDL::hitsBuffer* SDL::Event::getHits() //std::shared_ptr should take care of garbage collection +SDL::hitsBuffer* SDL::Event::getHits() //std::shared_ptr should take care of garbage collection { if (hitsInCPU == nullptr) { auto nHits_buf = allocBufWrapper(devHost, 1, queue); @@ -1515,7 +1515,7 @@ SDL::hitsBuffer* SDL::Event::getHits() //std::shared_ptr shoul return hitsInCPU; } -SDL::hitsBuffer* SDL::Event::getHitsInCMSSW() { +SDL::hitsBuffer* SDL::Event::getHitsInCMSSW() { if (hitsInCPU == nullptr) { auto nHits_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nHits_buf, hitsBuffers->nHits_buf); @@ -1532,7 +1532,7 @@ SDL::hitsBuffer* SDL::Event::getHitsInCMSSW() { return hitsInCPU; } -SDL::objectRangesBuffer* SDL::Event::getRanges() { +SDL::objectRangesBuffer* SDL::Event::getRanges() { if (rangesInCPU == nullptr) { rangesInCPU = new SDL::objectRangesBuffer(nModules_, nLowerModules_, devHost, queue); rangesInCPU->setData(*rangesInCPU); @@ -1547,7 +1547,7 @@ SDL::objectRangesBuffer* SDL::Event::getRanges() { return rangesInCPU; } -SDL::miniDoubletsBuffer* SDL::Event::getMiniDoublets() { +SDL::miniDoubletsBuffer* SDL::Event::getMiniDoublets() { if (mdsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based mdsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1569,7 +1569,7 @@ SDL::miniDoubletsBuffer* SDL::Event::getMiniDoublets() { return mdsInCPU; } -SDL::segmentsBuffer* SDL::Event::getSegments() { +SDL::segmentsBuffer* SDL::Event::getSegments() { if (segmentsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based segmentsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1605,7 +1605,7 @@ SDL::segmentsBuffer* SDL::Event::getSegments() { return segmentsInCPU; } -SDL::tripletsBuffer* SDL::Event::getTriplets() { +SDL::tripletsBuffer* SDL::Event::getTriplets() { if (tripletsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based tripletsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1641,7 +1641,7 @@ SDL::tripletsBuffer* SDL::Event::getTriplets() { return tripletsInCPU; } -SDL::quintupletsBuffer* SDL::Event::getQuintuplets() { +SDL::quintupletsBuffer* SDL::Event::getQuintuplets() { if (quintupletsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based quintupletsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1677,7 +1677,7 @@ SDL::quintupletsBuffer* SDL::Event::getQuintuplets() { return quintupletsInCPU; } -SDL::pixelTripletsBuffer* SDL::Event::getPixelTriplets() { +SDL::pixelTripletsBuffer* SDL::Event::getPixelTriplets() { if (pixelTripletsInCPU == nullptr) { // Get nPixelTriplets parameter to initialize host based quintupletsInCPU auto nPixelTriplets_buf = allocBufWrapper(devHost, 1, queue); @@ -1716,7 +1716,7 @@ SDL::pixelTripletsBuffer* SDL::Event::getPixelTriplets() { return pixelTripletsInCPU; } -SDL::pixelQuintupletsBuffer* SDL::Event::getPixelQuintuplets() { +SDL::pixelQuintupletsBuffer* SDL::Event::getPixelQuintuplets() { if (pixelQuintupletsInCPU == nullptr) { // Get nPixelQuintuplets parameter to initialize host based quintupletsInCPU auto nPixelQuintuplets_buf = allocBufWrapper(devHost, 1, queue); @@ -1752,7 +1752,7 @@ SDL::pixelQuintupletsBuffer* SDL::Event::getPixelQuintuplets() return pixelQuintupletsInCPU; } -SDL::trackCandidatesBuffer* SDL::Event::getTrackCandidates() { +SDL::trackCandidatesBuffer* SDL::Event::getTrackCandidates() { if (trackCandidatesInCPU == nullptr) { // Get nTrackCanHost parameter to initialize host based trackCandidatesInCPU auto nTrackCanHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1790,7 +1790,7 @@ SDL::trackCandidatesBuffer* SDL::Event::getTrackCandidates() { return trackCandidatesInCPU; } -SDL::trackCandidatesBuffer* SDL::Event::getTrackCandidatesInCMSSW() { +SDL::trackCandidatesBuffer* SDL::Event::getTrackCandidatesInCMSSW() { if (trackCandidatesInCPU == nullptr) { // Get nTrackCanHost parameter to initialize host based trackCandidatesInCPU auto nTrackCanHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1818,7 +1818,7 @@ SDL::trackCandidatesBuffer* SDL::Event::getTrackCandidatesInCMS return trackCandidatesInCPU; } -SDL::modulesBuffer* SDL::Event::getModules(bool isFull) { +SDL::modulesBuffer* SDL::Event::getModules(bool isFull) { if (modulesInCPU == nullptr) { // The last input here is just a small placeholder for the allocation. modulesInCPU = new SDL::modulesBuffer(devHost, nModules_, nPixels_); diff --git a/RecoTracker/LSTCore/src/alpaka/Event.h b/RecoTracker/LSTCore/src/alpaka/Event.h index eeba434b503c0..3c8dea32612af 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.h +++ b/RecoTracker/LSTCore/src/alpaka/Event.h @@ -18,15 +18,17 @@ namespace SDL { - template + using namespace ALPAKA_ACCELERATOR_NAMESPACE; + + template class Event; template <> - class Event { + class Event { private: - ALPAKA_ACCELERATOR_NAMESPACE::Queue queue; - ALPAKA_ACCELERATOR_NAMESPACE::Device devAcc; - alpaka_common::DevHost devHost; + Queue queue; + Device devAcc; + DevHost devHost; bool addObjects; std::array n_hits_by_layer_barrel_; @@ -45,35 +47,35 @@ namespace SDL { //Device stuff unsigned int nTotalSegments; struct objectRanges* rangesInGPU; - struct objectRangesBuffer* rangesBuffers; + struct objectRangesBuffer* rangesBuffers; struct hits* hitsInGPU; - struct hitsBuffer* hitsBuffers; + struct hitsBuffer* hitsBuffers; struct miniDoublets* mdsInGPU; - struct miniDoubletsBuffer* miniDoubletsBuffers; + struct miniDoubletsBuffer* miniDoubletsBuffers; struct segments* segmentsInGPU; - struct segmentsBuffer* segmentsBuffers; + struct segmentsBuffer* segmentsBuffers; struct triplets* tripletsInGPU; - struct tripletsBuffer* tripletsBuffers; + struct tripletsBuffer* tripletsBuffers; struct quintuplets* quintupletsInGPU; - struct quintupletsBuffer* quintupletsBuffers; + struct quintupletsBuffer* quintupletsBuffers; struct trackCandidates* trackCandidatesInGPU; - struct trackCandidatesBuffer* trackCandidatesBuffers; + struct trackCandidatesBuffer* trackCandidatesBuffers; struct pixelTriplets* pixelTripletsInGPU; - struct pixelTripletsBuffer* pixelTripletsBuffers; + struct pixelTripletsBuffer* pixelTripletsBuffers; struct pixelQuintuplets* pixelQuintupletsInGPU; - struct pixelQuintupletsBuffer* pixelQuintupletsBuffers; + struct pixelQuintupletsBuffer* pixelQuintupletsBuffers; //CPU interface stuff - objectRangesBuffer* rangesInCPU; - hitsBuffer* hitsInCPU; - miniDoubletsBuffer* mdsInCPU; - segmentsBuffer* segmentsInCPU; - tripletsBuffer* tripletsInCPU; - trackCandidatesBuffer* trackCandidatesInCPU; - modulesBuffer* modulesInCPU; - quintupletsBuffer* quintupletsInCPU; - pixelTripletsBuffer* pixelTripletsInCPU; - pixelQuintupletsBuffer* pixelQuintupletsInCPU; + objectRangesBuffer* rangesInCPU; + hitsBuffer* hitsInCPU; + miniDoubletsBuffer* mdsInCPU; + segmentsBuffer* segmentsInCPU; + tripletsBuffer* tripletsInCPU; + trackCandidatesBuffer* trackCandidatesInCPU; + modulesBuffer* modulesInCPU; + quintupletsBuffer* quintupletsInCPU; + pixelTripletsBuffer* pixelTripletsInCPU; + pixelQuintupletsBuffer* pixelQuintupletsInCPU; void init(bool verbose); @@ -85,14 +87,14 @@ namespace SDL { const uint16_t nLowerModules_; const unsigned int nPixels_; const unsigned int nEndCapMap_; - const std::shared_ptr> modulesBuffers_; + const std::shared_ptr> modulesBuffers_; const std::shared_ptr pixelMapping_; - const std::shared_ptr> endcapGeometryBuffers_; + const std::shared_ptr> endcapGeometryBuffers_; public: // Constructor used for CMSSW integration. Uses an external queue. template - Event(bool verbose, TQueue const& q, const LSTESData* deviceESData) + Event(bool verbose, TQueue const& q, const LSTESData* deviceESData) : queue(q), devAcc(alpaka::getDev(q)), devHost(cms::alpakatools::host()), @@ -186,18 +188,18 @@ namespace SDL { int getNumberOfPixelTriplets(); int getNumberOfPixelQuintuplets(); - objectRangesBuffer* getRanges(); - hitsBuffer* getHits(); - hitsBuffer* getHitsInCMSSW(); - miniDoubletsBuffer* getMiniDoublets(); - segmentsBuffer* getSegments(); - tripletsBuffer* getTriplets(); - quintupletsBuffer* getQuintuplets(); - trackCandidatesBuffer* getTrackCandidates(); - trackCandidatesBuffer* getTrackCandidatesInCMSSW(); - pixelTripletsBuffer* getPixelTriplets(); - pixelQuintupletsBuffer* getPixelQuintuplets(); - modulesBuffer* getModules(bool isFull = false); + objectRangesBuffer* getRanges(); + hitsBuffer* getHits(); + hitsBuffer* getHitsInCMSSW(); + miniDoubletsBuffer* getMiniDoublets(); + segmentsBuffer* getSegments(); + tripletsBuffer* getTriplets(); + quintupletsBuffer* getQuintuplets(); + trackCandidatesBuffer* getTrackCandidates(); + trackCandidatesBuffer* getTrackCandidatesInCMSSW(); + pixelTripletsBuffer* getPixelTriplets(); + pixelQuintupletsBuffer* getPixelQuintuplets(); + modulesBuffer* getModules(bool isFull = false); }; } // namespace SDL diff --git a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc index 27b0fb49e1cd9..1d8700ce7be9e 100644 --- a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc @@ -20,7 +20,7 @@ namespace { } // namespace template <> -void SDL::LST::prepareInput(const std::vector see_px, +void SDL::LST::prepareInput(const std::vector see_px, const std::vector see_py, const std::vector see_pz, const std::vector see_dxy, @@ -213,7 +213,7 @@ void SDL::LST::prepareInput(const std::vector see_px, } template <> -std::vector SDL::LST::getHitIdxs(const short trackCandidateType, +std::vector SDL::LST::getHitIdxs(const short trackCandidateType, const unsigned int TCIdx, const unsigned int* TCHitIndices, const unsigned int* hitIndices) { @@ -249,7 +249,7 @@ std::vector SDL::LST::getHitIdxs(const short trackCandidat } template <> -void SDL::LST::getOutput(SDL::Event& event) { +void SDL::LST::getOutput(SDL::Event& event) { std::vector> tc_hitIdxs; std::vector tc_len; std::vector tc_seedIdx; @@ -278,7 +278,7 @@ void SDL::LST::getOutput(SDL::Event& event) { template <> template <> -void SDL::LST::run(Queue& queue, +void SDL::LST::run(Queue& queue, bool verbose, const LSTESData* deviceESData, const std::vector see_px, @@ -302,7 +302,7 @@ void SDL::LST::run(Queue& queue, const std::vector ph2_z, bool no_pls_dupclean, bool tc_pls_triplets) { - auto event = SDL::Event(verbose, queue, deviceESData); + auto event = SDL::Event(verbose, queue, deviceESData); prepareInput(see_px, see_py, see_pz, diff --git a/RecoTracker/LSTCore/standalone/bin/sdl.cc b/RecoTracker/LSTCore/standalone/bin/sdl.cc index eab52b42645dd..498b58ea8731a 100644 --- a/RecoTracker/LSTCore/standalone/bin/sdl.cc +++ b/RecoTracker/LSTCore/standalone/bin/sdl.cc @@ -384,9 +384,9 @@ void run_sdl() { full_timer.Reset(); full_timer.Start(); - std::vector *> events; + std::vector *> events; for (int s = 0; s < ana.streams; s++) { - SDL::Event *event = new SDL::Event(ana.verbose >= 2, queues[s], &deviceESData); + SDL::Event *event = new SDL::Event(ana.verbose >= 2, queues[s], &deviceESData); events.push_back(event); } float timeForEventCreation = full_timer.RealTime() * 1000; diff --git a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc index debebfb128859..55080b6857d37 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc +++ b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc @@ -8,7 +8,7 @@ using namespace ALPAKA_ACCELERATOR_NAMESPACE; //____________________________________________________________________________________________ std::tuple, std::vector> convertHitsToHitIdxsAndHitTypes( - SDL::Event* event, std::vector hits) { + SDL::Event* event, std::vector hits) { SDL::hitsBuffer& hitsInGPU = *(event->getHits()); std::vector hitidxs; std::vector hittypes; @@ -27,7 +27,7 @@ std::tuple, std::vector> convertHitsToHi // =============== //____________________________________________________________________________________________ -std::vector getPixelHitsFrompLS(SDL::Event* event, unsigned int pLS) { +std::vector getPixelHitsFrompLS(SDL::Event* event, unsigned int pLS) { SDL::segmentsBuffer& segments_ = *(event->getSegments()); SDL::miniDoubletsBuffer& miniDoublets_ = *(event->getMiniDoublets()); SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); @@ -46,7 +46,7 @@ std::vector getPixelHitsFrompLS(SDL::Event* event, unsigne } //____________________________________________________________________________________________ -std::vector getPixelHitIdxsFrompLS(SDL::Event* event, unsigned int pLS) { +std::vector getPixelHitIdxsFrompLS(SDL::Event* event, unsigned int pLS) { SDL::hitsBuffer& hitsInGPU = *(event->getHits()); std::vector hits = getPixelHitsFrompLS(event, pLS); std::vector hitidxs; @@ -56,14 +56,14 @@ std::vector getPixelHitIdxsFrompLS(SDL::Event* event, unsi } //____________________________________________________________________________________________ -std::vector getPixelHitTypesFrompLS(SDL::Event* event, unsigned int pLS) { +std::vector getPixelHitTypesFrompLS(SDL::Event* event, unsigned int pLS) { std::vector hits = getPixelHitsFrompLS(event, pLS); std::vector hittypes(hits.size(), 0); return hittypes; } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFrompLS(SDL::Event* event, +std::tuple, std::vector> getHitIdxsAndHitTypesFrompLS(SDL::Event* event, unsigned pLS) { return convertHitsToHitIdxsAndHitTypes(event, getPixelHitsFrompLS(event, pLS)); } @@ -73,7 +73,7 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getHitsFromMD(SDL::Event* event, unsigned int MD) { +std::vector getHitsFromMD(SDL::Event* event, unsigned int MD) { SDL::miniDoubletsBuffer& miniDoublets_ = *(event->getMiniDoublets()); unsigned int hit_1 = miniDoublets_.anchorHitIndices[MD]; unsigned int hit_2 = miniDoublets_.outerHitIndices[MD]; @@ -81,7 +81,7 @@ std::vector getHitsFromMD(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFromMD(SDL::Event* event, +std::tuple, std::vector> getHitIdxsAndHitTypesFromMD(SDL::Event* event, unsigned MD) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromMD(event, MD)); } @@ -91,7 +91,7 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getMDsFromLS(SDL::Event* event, unsigned int LS) { +std::vector getMDsFromLS(SDL::Event* event, unsigned int LS) { SDL::segmentsBuffer& segments_ = *(event->getSegments()); unsigned int MD_1 = segments_.mdIndices[2 * LS]; unsigned int MD_2 = segments_.mdIndices[2 * LS + 1]; @@ -99,7 +99,7 @@ std::vector getMDsFromLS(SDL::Event* event, unsigned int L } //____________________________________________________________________________________________ -std::vector getHitsFromLS(SDL::Event* event, unsigned int LS) { +std::vector getHitsFromLS(SDL::Event* event, unsigned int LS) { std::vector MDs = getMDsFromLS(event, LS); std::vector hits_0 = getHitsFromMD(event, MDs[0]); std::vector hits_1 = getHitsFromMD(event, MDs[1]); @@ -107,7 +107,7 @@ std::vector getHitsFromLS(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFromLS(SDL::Event* event, +std::tuple, std::vector> getHitIdxsAndHitTypesFromLS(SDL::Event* event, unsigned LS) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromLS(event, LS)); } @@ -117,7 +117,7 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getLSsFromT3(SDL::Event* event, unsigned int T3) { +std::vector getLSsFromT3(SDL::Event* event, unsigned int T3) { SDL::tripletsBuffer& triplets_ = *(event->getTriplets()); unsigned int LS_1 = triplets_.segmentIndices[2 * T3]; unsigned int LS_2 = triplets_.segmentIndices[2 * T3 + 1]; @@ -125,7 +125,7 @@ std::vector getLSsFromT3(SDL::Event* event, unsigned int T } //____________________________________________________________________________________________ -std::vector getMDsFromT3(SDL::Event* event, unsigned int T3) { +std::vector getMDsFromT3(SDL::Event* event, unsigned int T3) { std::vector LSs = getLSsFromT3(event, T3); std::vector MDs_0 = getMDsFromLS(event, LSs[0]); std::vector MDs_1 = getMDsFromLS(event, LSs[1]); @@ -133,7 +133,7 @@ std::vector getMDsFromT3(SDL::Event* event, unsigned int T } //____________________________________________________________________________________________ -std::vector getHitsFromT3(SDL::Event* event, unsigned int T3) { +std::vector getHitsFromT3(SDL::Event* event, unsigned int T3) { std::vector MDs = getMDsFromT3(event, T3); std::vector hits_0 = getHitsFromMD(event, MDs[0]); std::vector hits_1 = getHitsFromMD(event, MDs[1]); @@ -142,7 +142,7 @@ std::vector getHitsFromT3(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFromT3(SDL::Event* event, +std::tuple, std::vector> getHitIdxsAndHitTypesFromT3(SDL::Event* event, unsigned T3) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromT3(event, T3)); } @@ -152,7 +152,7 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getT3sFromT5(SDL::Event* event, unsigned int T5) { +std::vector getT3sFromT5(SDL::Event* event, unsigned int T5) { SDL::quintupletsBuffer& quintuplets_ = *(event->getQuintuplets()); unsigned int T3_1 = quintuplets_.tripletIndices[2 * T5]; unsigned int T3_2 = quintuplets_.tripletIndices[2 * T5 + 1]; @@ -160,7 +160,7 @@ std::vector getT3sFromT5(SDL::Event* event, unsigned int T } //____________________________________________________________________________________________ -std::vector getLSsFromT5(SDL::Event* event, unsigned int T5) { +std::vector getLSsFromT5(SDL::Event* event, unsigned int T5) { std::vector T3s = getT3sFromT5(event, T5); std::vector LSs_0 = getLSsFromT3(event, T3s[0]); std::vector LSs_1 = getLSsFromT3(event, T3s[1]); @@ -168,7 +168,7 @@ std::vector getLSsFromT5(SDL::Event* event, unsigned int T } //____________________________________________________________________________________________ -std::vector getMDsFromT5(SDL::Event* event, unsigned int T5) { +std::vector getMDsFromT5(SDL::Event* event, unsigned int T5) { std::vector LSs = getLSsFromT5(event, T5); std::vector MDs_0 = getMDsFromLS(event, LSs[0]); std::vector MDs_1 = getMDsFromLS(event, LSs[1]); @@ -178,7 +178,7 @@ std::vector getMDsFromT5(SDL::Event* event, unsigned int T } //____________________________________________________________________________________________ -std::vector getHitsFromT5(SDL::Event* event, unsigned int T5) { +std::vector getHitsFromT5(SDL::Event* event, unsigned int T5) { std::vector MDs = getMDsFromT5(event, T5); std::vector hits_0 = getHitsFromMD(event, MDs[0]); std::vector hits_1 = getHitsFromMD(event, MDs[1]); @@ -189,7 +189,7 @@ std::vector getHitsFromT5(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::vector getHitIdxsFromT5(SDL::Event* event, unsigned int T5) { +std::vector getHitIdxsFromT5(SDL::Event* event, unsigned int T5) { SDL::hitsBuffer& hitsInGPU = *(event->getHits()); std::vector hits = getHitsFromT5(event, T5); std::vector hitidxs; @@ -198,7 +198,7 @@ std::vector getHitIdxsFromT5(SDL::Event* event, unsigned i return hitidxs; } //____________________________________________________________________________________________ -std::vector getModuleIdxsFromT5(SDL::Event* event, unsigned int T5) { +std::vector getModuleIdxsFromT5(SDL::Event* event, unsigned int T5) { std::vector hits = getHitsFromT5(event, T5); std::vector module_idxs; SDL::hitsBuffer& hitsInGPU = *(event->getHits()); @@ -208,13 +208,13 @@ std::vector getModuleIdxsFromT5(SDL::Event* event, unsigne return module_idxs; } //____________________________________________________________________________________________ -std::vector getHitTypesFromT5(SDL::Event* event, unsigned int T5) { +std::vector getHitTypesFromT5(SDL::Event* event, unsigned int T5) { return {4, 4, 4, 4, 4, 4, 4, 4, 4, 4}; ; } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFromT5(SDL::Event* event, +std::tuple, std::vector> getHitIdxsAndHitTypesFromT5(SDL::Event* event, unsigned T5) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromT5(event, T5)); } @@ -224,7 +224,7 @@ std::tuple, std::vector> getHitIdxsAndHi // =============== //____________________________________________________________________________________________ -unsigned int getPixelLSFrompT3(SDL::Event* event, unsigned int pT3) { +unsigned int getPixelLSFrompT3(SDL::Event* event, unsigned int pT3) { SDL::pixelTripletsBuffer& pixelTriplets_ = *(event->getPixelTriplets()); SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); SDL::modulesBuffer& modulesInGPU = (*event->getModules()); @@ -233,37 +233,37 @@ unsigned int getPixelLSFrompT3(SDL::Event* event, unsigned int pT3) { } //____________________________________________________________________________________________ -unsigned int getT3FrompT3(SDL::Event* event, unsigned int pT3) { +unsigned int getT3FrompT3(SDL::Event* event, unsigned int pT3) { SDL::pixelTriplets& pixelTriplets_ = *(event->getPixelTriplets()); return pixelTriplets_.tripletIndices[pT3]; } //____________________________________________________________________________________________ -std::vector getLSsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getLSsFrompT3(SDL::Event* event, unsigned int pT3) { unsigned int T3 = getT3FrompT3(event, pT3); return getLSsFromT3(event, T3); } //____________________________________________________________________________________________ -std::vector getMDsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getMDsFrompT3(SDL::Event* event, unsigned int pT3) { unsigned int T3 = getT3FrompT3(event, pT3); return getMDsFromT3(event, T3); } //____________________________________________________________________________________________ -std::vector getOuterTrackerHitsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getOuterTrackerHitsFrompT3(SDL::Event* event, unsigned int pT3) { unsigned int T3 = getT3FrompT3(event, pT3); return getHitsFromT3(event, T3); } //____________________________________________________________________________________________ -std::vector getPixelHitsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getPixelHitsFrompT3(SDL::Event* event, unsigned int pT3) { unsigned int pLS = getPixelLSFrompT3(event, pT3); return getPixelHitsFrompLS(event, pLS); } //____________________________________________________________________________________________ -std::vector getHitsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getHitsFrompT3(SDL::Event* event, unsigned int pT3) { unsigned int pLS = getPixelLSFrompT3(event, pT3); unsigned int T3 = getT3FrompT3(event, pT3); std::vector pixelHits = getPixelHitsFrompLS(event, pLS); @@ -273,7 +273,7 @@ std::vector getHitsFrompT3(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::vector getHitIdxsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getHitIdxsFrompT3(SDL::Event* event, unsigned int pT3) { SDL::hitsBuffer& hitsInGPU = *(event->getHits()); std::vector hits = getHitsFrompT3(event, pT3); std::vector hitidxs; @@ -282,7 +282,7 @@ std::vector getHitIdxsFrompT3(SDL::Event* event, unsigned return hitidxs; } //____________________________________________________________________________________________ -std::vector getModuleIdxsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getModuleIdxsFrompT3(SDL::Event* event, unsigned int pT3) { std::vector hits = getOuterTrackerHitsFrompT3(event, pT3); std::vector module_idxs; SDL::hitsBuffer& hitsInGPU = *(event->getHits()); @@ -292,7 +292,7 @@ std::vector getModuleIdxsFrompT3(SDL::Event* event, unsign return module_idxs; } //____________________________________________________________________________________________ -std::vector getHitTypesFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getHitTypesFrompT3(SDL::Event* event, unsigned int pT3) { unsigned int pLS = getPixelLSFrompT3(event, pT3); std::vector pixelHits = getPixelHitsFrompLS(event, pLS); // pixel Hits list will be either 3 or 4 and depending on it return accordingly @@ -303,7 +303,7 @@ std::vector getHitTypesFrompT3(SDL::Event* event, unsigned } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFrompT3(SDL::Event* event, +std::tuple, std::vector> getHitIdxsAndHitTypesFrompT3(SDL::Event* event, unsigned pT3) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFrompT3(event, pT3)); } @@ -313,7 +313,7 @@ std::tuple, std::vector> getHitIdxsAndHi // =============== //____________________________________________________________________________________________ -unsigned int getPixelLSFrompT5(SDL::Event* event, unsigned int pT5) { +unsigned int getPixelLSFrompT5(SDL::Event* event, unsigned int pT5) { SDL::pixelQuintupletsBuffer& pixelQuintuplets_ = *(event->getPixelQuintuplets()); SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); SDL::modulesBuffer& modulesInGPU = (*event->getModules()); @@ -322,43 +322,43 @@ unsigned int getPixelLSFrompT5(SDL::Event* event, unsigned int pT5) { } //____________________________________________________________________________________________ -unsigned int getT5FrompT5(SDL::Event* event, unsigned int pT5) { +unsigned int getT5FrompT5(SDL::Event* event, unsigned int pT5) { SDL::pixelQuintupletsBuffer& pixelQuintuplets_ = *(event->getPixelQuintuplets()); return pixelQuintuplets_.T5Indices[pT5]; } //____________________________________________________________________________________________ -std::vector getT3sFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getT3sFrompT5(SDL::Event* event, unsigned int pT5) { unsigned int T5 = getT5FrompT5(event, pT5); return getT3sFromT5(event, T5); } //____________________________________________________________________________________________ -std::vector getLSsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getLSsFrompT5(SDL::Event* event, unsigned int pT5) { unsigned int T5 = getT5FrompT5(event, pT5); return getLSsFromT5(event, T5); } //____________________________________________________________________________________________ -std::vector getMDsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getMDsFrompT5(SDL::Event* event, unsigned int pT5) { unsigned int T5 = getT5FrompT5(event, pT5); return getMDsFromT5(event, T5); } //____________________________________________________________________________________________ -std::vector getOuterTrackerHitsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getOuterTrackerHitsFrompT5(SDL::Event* event, unsigned int pT5) { unsigned int T5 = getT5FrompT5(event, pT5); return getHitsFromT5(event, T5); } //____________________________________________________________________________________________ -std::vector getPixelHitsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getPixelHitsFrompT5(SDL::Event* event, unsigned int pT5) { unsigned int pLS = getPixelLSFrompT5(event, pT5); return getPixelHitsFrompLS(event, pLS); } //____________________________________________________________________________________________ -std::vector getHitsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getHitsFrompT5(SDL::Event* event, unsigned int pT5) { unsigned int pLS = getPixelLSFrompT5(event, pT5); unsigned int T5 = getT5FrompT5(event, pT5); std::vector pixelHits = getPixelHitsFrompLS(event, pLS); @@ -368,7 +368,7 @@ std::vector getHitsFrompT5(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::vector getHitIdxsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getHitIdxsFrompT5(SDL::Event* event, unsigned int pT5) { SDL::hitsBuffer& hitsInGPU = *(event->getHits()); std::vector hits = getHitsFrompT5(event, pT5); std::vector hitidxs; @@ -378,7 +378,7 @@ std::vector getHitIdxsFrompT5(SDL::Event* event, unsigned } //____________________________________________________________________________________________ -std::vector getModuleIdxsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getModuleIdxsFrompT5(SDL::Event* event, unsigned int pT5) { std::vector hits = getOuterTrackerHitsFrompT5(event, pT5); std::vector module_idxs; SDL::hitsBuffer& hitsInGPU = *(event->getHits()); @@ -389,7 +389,7 @@ std::vector getModuleIdxsFrompT5(SDL::Event* event, unsign } //____________________________________________________________________________________________ -std::vector getHitTypesFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getHitTypesFrompT5(SDL::Event* event, unsigned int pT5) { unsigned int pLS = getPixelLSFrompT5(event, pT5); std::vector pixelHits = getPixelHitsFrompLS(event, pLS); // pixel Hits list will be either 3 or 4 and depending on it return accordingly @@ -400,7 +400,7 @@ std::vector getHitTypesFrompT5(SDL::Event* event, unsigned } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFrompT5(SDL::Event* event, +std::tuple, std::vector> getHitIdxsAndHitTypesFrompT5(SDL::Event* event, unsigned pT5) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFrompT5(event, pT5)); } @@ -410,7 +410,7 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getLSsFromTC(SDL::Event* event, unsigned int TC) { +std::vector getLSsFromTC(SDL::Event* event, unsigned int TC) { // Get the type of the track candidate SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); short type = trackCandidatesInGPU.trackCandidateType[TC]; @@ -432,7 +432,7 @@ std::vector getLSsFromTC(SDL::Event* event, unsigned int T } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFromTC(SDL::Event* event, +std::tuple, std::vector> getHitIdxsAndHitTypesFromTC(SDL::Event* event, unsigned TC) { // Get the type of the track candidate SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); diff --git a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h index d72edd669fb51..e970462872218 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h +++ b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h @@ -5,90 +5,92 @@ #include #include "Event.h" +using SDLEvent = SDL::Event; + enum { kpT5 = 7, kpT3 = 5, kT5 = 4, kpLS = 8 }; // ----* Hit *---- std::tuple, std::vector> convertHitsToHitIdxsAndHitTypes( - SDL::Event* event, std::vector hits); + SDLEvent* event, std::vector hits); // ----* pLS *---- -std::vector getPixelHitsFrompLS(SDL::Event* event, +std::vector getPixelHitsFrompLS(SDLEvent* event, unsigned int pLS); -std::vector getPixelHitIdxsFrompLS(SDL::Event* event, +std::vector getPixelHitIdxsFrompLS(SDLEvent* event, unsigned int pLS); -std::vector getPixelHitTypesFrompLS(SDL::Event* event, +std::vector getPixelHitTypesFrompLS(SDLEvent* event, unsigned int pLS); std::tuple, std::vector> getHitIdxsAndHitTypesFrompLS( - SDL::Event* event, unsigned pLS); + SDLEvent* event, unsigned pLS); // ----* MD *---- -std::vector getHitsFromMD(SDL::Event* event, unsigned int MD); +std::vector getHitsFromMD(SDLEvent* event, unsigned int MD); std::tuple, std::vector> getHitIdxsAndHitTypesFromMD( - SDL::Event* event, unsigned MD); + SDLEvent* event, unsigned MD); // ----* LS *---- -std::vector getMDsFromLS(SDL::Event* event, unsigned int LS); -std::vector getHitsFromLS(SDL::Event* event, unsigned int LS); +std::vector getMDsFromLS(SDLEvent* event, unsigned int LS); +std::vector getHitsFromLS(SDLEvent* event, unsigned int LS); std::tuple, std::vector> getHitIdxsAndHitTypesFromLS( - SDL::Event* event, unsigned LS); + SDLEvent* event, unsigned LS); // ----* T3 *---- -std::vector getLSsFromT3(SDL::Event* event, unsigned int T3); -std::vector getMDsFromT3(SDL::Event* event, unsigned int T3); -std::vector getHitsFromT3(SDL::Event* event, unsigned int T3); +std::vector getLSsFromT3(SDLEvent* event, unsigned int T3); +std::vector getMDsFromT3(SDLEvent* event, unsigned int T3); +std::vector getHitsFromT3(SDLEvent* event, unsigned int T3); std::tuple, std::vector> getHitIdxsAndHitTypesFromT3( - SDL::Event* event, unsigned T3); + SDLEvent* event, unsigned T3); // ----* T5 *---- -std::vector getT3sFromT5(SDL::Event* event, unsigned int T5); -std::vector getLSsFromT5(SDL::Event* event, unsigned int T5); -std::vector getMDsFromT5(SDL::Event* event, unsigned int T5); -std::vector getHitsFromT5(SDL::Event* event, unsigned int T5); -std::vector getHitIdxsFromT5(SDL::Event* event, unsigned int T5); -std::vector getHitTypesFromT5(SDL::Event* event, unsigned int T5); -std::vector getModuleIdxsFromT5(SDL::Event* event, unsigned int T5); +std::vector getT3sFromT5(SDLEvent* event, unsigned int T5); +std::vector getLSsFromT5(SDLEvent* event, unsigned int T5); +std::vector getMDsFromT5(SDLEvent* event, unsigned int T5); +std::vector getHitsFromT5(SDLEvent* event, unsigned int T5); +std::vector getHitIdxsFromT5(SDLEvent* event, unsigned int T5); +std::vector getHitTypesFromT5(SDLEvent* event, unsigned int T5); +std::vector getModuleIdxsFromT5(SDLEvent* event, unsigned int T5); std::tuple, std::vector> getHitIdxsAndHitTypesFromT5( - SDL::Event* event, unsigned T5); + SDLEvent* event, unsigned T5); // ----* pT3 *---- -unsigned int getPixelLSFrompT3(SDL::Event* event, unsigned int pT3); -unsigned int getT3FrompT3(SDL::Event* event, unsigned int pT3); -std::vector getLSsFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getMDsFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getOuterTrackerHitsFrompT3(SDL::Event* event, +unsigned int getPixelLSFrompT3(SDLEvent* event, unsigned int pT3); +unsigned int getT3FrompT3(SDLEvent* event, unsigned int pT3); +std::vector getLSsFrompT3(SDLEvent* event, unsigned int pT3); +std::vector getMDsFrompT3(SDLEvent* event, unsigned int pT3); +std::vector getOuterTrackerHitsFrompT3(SDLEvent* event, unsigned int pT3); -std::vector getPixelHitsFrompT3(SDL::Event* event, +std::vector getPixelHitsFrompT3(SDLEvent* event, unsigned int pT3); -std::vector getHitsFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getHitIdxsFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getHitTypesFrompT3(SDL::Event* event, unsigned int pT3); -std::vector getModuleIdxsFrompT3(SDL::Event* event, +std::vector getHitsFrompT3(SDLEvent* event, unsigned int pT3); +std::vector getHitIdxsFrompT3(SDLEvent* event, unsigned int pT3); +std::vector getHitTypesFrompT3(SDLEvent* event, unsigned int pT3); +std::vector getModuleIdxsFrompT3(SDLEvent* event, unsigned int pT3); std::tuple, std::vector> getHitIdxsAndHitTypesFrompT3( - SDL::Event* event, unsigned pT3); + SDLEvent* event, unsigned pT3); // ----* pT5 *---- -unsigned int getPixelLSFrompT5(SDL::Event* event, unsigned int pT5); -unsigned int getT5FrompT5(SDL::Event* event, unsigned int pT5); -std::vector getT3sFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getLSsFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getMDsFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getOuterTrackerHitsFrompT5(SDL::Event* event, +unsigned int getPixelLSFrompT5(SDLEvent* event, unsigned int pT5); +unsigned int getT5FrompT5(SDLEvent* event, unsigned int pT5); +std::vector getT3sFrompT5(SDLEvent* event, unsigned int pT5); +std::vector getLSsFrompT5(SDLEvent* event, unsigned int pT5); +std::vector getMDsFrompT5(SDLEvent* event, unsigned int pT5); +std::vector getOuterTrackerHitsFrompT5(SDLEvent* event, unsigned int pT5); -std::vector getPixelHitsFrompT5(SDL::Event* event, +std::vector getPixelHitsFrompT5(SDLEvent* event, unsigned int pT5); -std::vector getHitsFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getHitIdxsFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getHitTypesFrompT5(SDL::Event* event, unsigned int pT5); -std::vector getModuleIdxsFrompT5(SDL::Event* event, +std::vector getHitsFrompT5(SDLEvent* event, unsigned int pT5); +std::vector getHitIdxsFrompT5(SDLEvent* event, unsigned int pT5); +std::vector getHitTypesFrompT5(SDLEvent* event, unsigned int pT5); +std::vector getModuleIdxsFrompT5(SDLEvent* event, unsigned int pT5); std::tuple, std::vector> getHitIdxsAndHitTypesFrompT5( - SDL::Event* event, unsigned pT5); + SDLEvent* event, unsigned pT5); // ----* TC *---- -std::vector getLSsFromTC(SDL::Event* event, unsigned int TC); -std::vector getHitsFromTC(SDL::Event* event, unsigned int TC); +std::vector getLSsFromTC(SDLEvent* event, unsigned int TC); +std::vector getHitsFromTC(SDLEvent* event, unsigned int TC); std::tuple, std::vector> getHitIdxsAndHitTypesFromTC( - SDL::Event* event, unsigned int TC); + SDLEvent* event, unsigned int TC); #endif diff --git a/RecoTracker/LSTCore/standalone/code/core/trkCore.cc b/RecoTracker/LSTCore/standalone/code/core/trkCore.cc index cff1ef733e1f6..db8b2f6ac142d 100644 --- a/RecoTracker/LSTCore/standalone/code/core/trkCore.cc +++ b/RecoTracker/LSTCore/standalone/code/core/trkCore.cc @@ -22,7 +22,7 @@ bool goodEvent() { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runMiniDoublet(SDL::Event *event, int evt) { +float runMiniDoublet(SDL::Event *event, int evt) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco Mini-Doublet start " << evt << std::endl; @@ -74,7 +74,7 @@ float runMiniDoublet(SDL::Event *event, int evt) { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runSegment(SDL::Event *event) { +float runSegment(SDL::Event *event) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco Segment start" << std::endl; @@ -111,7 +111,7 @@ float runSegment(SDL::Event *event) { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runT3(SDL::Event *event) { +float runT3(SDL::Event *event) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco T3 start" << std::endl; @@ -152,7 +152,7 @@ float runT3(SDL::Event *event) { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runpT3(SDL::Event *event) { +float runpT3(SDL::Event *event) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco Pixel Triplet pT3 start" << std::endl; @@ -168,7 +168,7 @@ float runpT3(SDL::Event *event) { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runQuintuplet(SDL::Event *event) { +float runQuintuplet(SDL::Event *event) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco Quintuplet start" << std::endl; @@ -213,7 +213,7 @@ float runQuintuplet(SDL::Event *event) { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runPixelLineSegment(SDL::Event *event, bool no_pls_dupclean) { +float runPixelLineSegment(SDL::Event *event, bool no_pls_dupclean) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco Pixel Line Segment start" << std::endl; @@ -227,7 +227,7 @@ float runPixelLineSegment(SDL::Event *event, bool no_pls_dupclean) { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runPixelQuintuplet(SDL::Event *event) { +float runPixelQuintuplet(SDL::Event *event) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco Pixel Quintuplet start" << std::endl; @@ -243,7 +243,7 @@ float runPixelQuintuplet(SDL::Event *event) { } //___________________________________________________________________________________________________________________________________________________________________________________________ -float runTrackCandidate(SDL::Event *event, bool no_pls_dupclean, bool tc_pls_triplets) { +float runTrackCandidate(SDL::Event *event, bool no_pls_dupclean, bool tc_pls_triplets) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco TrackCandidate start" << std::endl; @@ -839,7 +839,7 @@ void addInputsToLineSegmentTrackingPreLoad(std::vector> &out_ } //___________________________________________________________________________________________________________________________________________________________________________________________ -float addInputsToEventPreLoad(SDL::Event *event, +float addInputsToEventPreLoad(SDL::Event *event, bool useOMP, std::vector trkX, std::vector trkY, @@ -1143,7 +1143,7 @@ void writeMetaData() { // DEPRECATED FUNCTIONS //__________________________________________________________________________________________ -[[deprecated]] float addInputsToLineSegmentTracking(SDL::Event &event, bool useOMP) { +[[deprecated]] float addInputsToLineSegmentTracking(SDL::Event &event, bool useOMP) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Loading Inputs (i.e. outer tracker hits, and pixel line segements) to the Line Segment Tracking.... " @@ -1338,6 +1338,6 @@ void writeMetaData() { } //__________________________________________________________________________________________ -[[deprecated]] float addInputsToLineSegmentTrackingUsingExplicitMemory(SDL::Event &event) { +[[deprecated]] float addInputsToLineSegmentTrackingUsingExplicitMemory(SDL::Event &event) { return addInputsToLineSegmentTracking(event, true); } diff --git a/RecoTracker/LSTCore/standalone/code/core/trkCore.h b/RecoTracker/LSTCore/standalone/code/core/trkCore.h index e32bc5153e04a..6a3d926658890 100644 --- a/RecoTracker/LSTCore/standalone/code/core/trkCore.h +++ b/RecoTracker/LSTCore/standalone/code/core/trkCore.h @@ -11,22 +11,24 @@ #include #include +using SDLEvent = SDL::Event; + // --------------------- ======================== --------------------- bool goodEvent(); -float runMiniDoublet(SDL::Event *event, int evt); -float runSegment(SDL::Event *event); -float runT4(SDL::Event *event); -float runT4x(SDL::Event *event); -float runpT4(SDL::Event *event); -float runT3(SDL::Event *event); -float runTrackCandidate(SDL::Event *event, +float runMiniDoublet(SDLEvent *event, int evt); +float runSegment(SDLEvent *event); +float runT4(SDLEvent *event); +float runT4x(SDLEvent *event); +float runpT4(SDLEvent *event); +float runT3(SDLEvent *event); +float runTrackCandidate(SDLEvent *event, bool no_pls_dupclean, bool tc_pls_triplets); -float runQuintuplet(SDL::Event *event); -float runPixelQuintuplet(SDL::Event *event); -float runPixelLineSegment(SDL::Event *event, bool no_pls_dupclean); -float runpT3(SDL::Event *event); +float runQuintuplet(SDLEvent *event); +float runPixelQuintuplet(SDLEvent *event); +float runPixelLineSegment(SDLEvent *event, bool no_pls_dupclean); +float runpT3(SDLEvent *event); // --------------------- ======================== --------------------- @@ -71,7 +73,7 @@ void addInputsToLineSegmentTrackingPreLoad(std::vector> &out_ std::vector> &out_pixelType_vec, std::vector> &out_isQuad_vec); -float addInputsToEventPreLoad(SDL::Event *event, +float addInputsToEventPreLoad(SDLEvent *event, bool useOMP, std::vector trkX, std::vector trkY, @@ -107,7 +109,7 @@ void writeMetaData(); // --------------------- ======================== --------------------- // DEPRECATED FUNCTION -float addInputsToLineSegmentTrackingUsingExplicitMemory(SDL::Event &event); -float addInputsToLineSegmentTracking(SDL::Event &event, bool useOMP); +float addInputsToLineSegmentTrackingUsingExplicitMemory(SDLEvent &event); +float addInputsToLineSegmentTracking(SDLEvent &event, bool useOMP); #endif diff --git a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc index d361cdd165705..a610c40c6188d 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc +++ b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc @@ -9,7 +9,7 @@ void createOutputBranches() { } //________________________________________________________________________________________________________________________________ -void fillOutputBranches(SDL::Event* event) { +void fillOutputBranches(SDL::Event* event) { setOutputBranches(event); setOptionalOutputBranches(event); if (ana.gnn_ntuple) @@ -183,7 +183,7 @@ void createGnnNtupleBranches() { } //________________________________________________________________________________________________________________________________ -void setOutputBranches(SDL::Event* event) { +void setOutputBranches(SDL::Event* event) { // ============ Sim tracks ============= int n_accepted_simtrk = 0; for (unsigned int isimtrk = 0; isimtrk < trk.sim_pt().size(); ++isimtrk) { @@ -278,7 +278,7 @@ void setOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setOptionalOutputBranches(SDL::Event* event) { +void setOptionalOutputBranches(SDL::Event* event) { #ifdef CUT_VALUE_DEBUG setPixelQuintupletOutputBranches(event); @@ -289,7 +289,7 @@ void setOptionalOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setPixelQuintupletOutputBranches(SDL::Event* event) { +void setPixelQuintupletOutputBranches(SDL::Event* event) { // ============ pT5 ============= SDL::pixelQuintupletsBuffer& pixelQuintupletsInGPU = (*event->getPixelQuintuplets()); SDL::quintupletsBuffer& quintupletsInGPU = (*event->getQuintuplets()); @@ -365,7 +365,7 @@ void setPixelQuintupletOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setQuintupletOutputBranches(SDL::Event* event) { +void setQuintupletOutputBranches(SDL::Event* event) { SDL::quintupletsBuffer& quintupletsInGPU = (*event->getQuintuplets()); SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); SDL::modulesBuffer& modulesInGPU = (*event->getModules()); @@ -436,7 +436,7 @@ void setQuintupletOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setPixelTripletOutputBranches(SDL::Event* event) { +void setPixelTripletOutputBranches(SDL::Event* event) { SDL::pixelTripletsBuffer& pixelTripletsInGPU = (*event->getPixelTriplets()); SDL::tripletsBuffer& tripletsInGPU = *(event->getTriplets()); SDL::modulesBuffer& modulesInGPU = *(event->getModules()); @@ -501,7 +501,7 @@ void setPixelTripletOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setGnnNtupleBranches(SDL::Event* event) { +void setGnnNtupleBranches(SDL::Event* event) { // Get relevant information SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); @@ -642,7 +642,7 @@ void setGnnNtupleBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD) { +void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD) { // Get relevant information SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); SDL::hitsBuffer& hitsInGPU = (*event->getHits()); @@ -710,7 +710,7 @@ void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD) { } //________________________________________________________________________________________________________________________________ -std::tuple> parseTrackCandidate(SDL::Event* event, +std::tuple> parseTrackCandidate(SDL::Event* event, unsigned int idx) { // Get the type of the track candidate SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); @@ -745,7 +745,7 @@ std::tuple> parseTrackCandidate( //________________________________________________________________________________________________________________________________ std::tuple, std::vector> parsepT5( - SDL::Event* event, unsigned int idx) { + SDL::Event* event, unsigned int idx) { // Get relevant information SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); SDL::quintupletsBuffer& quintupletsInGPU = (*event->getQuintuplets()); @@ -857,7 +857,7 @@ std::tuple, std::vector, std::vector> parsepT3( - SDL::Event* event, unsigned int idx) { + SDL::Event* event, unsigned int idx) { // Get relevant information SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); SDL::tripletsBuffer& tripletsInGPU = (*event->getTriplets()); @@ -891,7 +891,7 @@ std::tuple, std::vector, std::vector> parseT5(SDL::Event* event, +std::tuple, std::vector> parseT5(SDL::Event* event, unsigned int idx) { SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); SDL::quintupletsBuffer& quintupletsInGPU = (*event->getQuintuplets()); @@ -926,7 +926,7 @@ std::tuple, std::vector, std::vector> parsepLS( - SDL::Event* event, unsigned int idx) { + SDL::Event* event, unsigned int idx) { SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); @@ -946,7 +946,7 @@ std::tuple, std::vector* event) { +void printHitMultiplicities(SDL::Event* event) { SDL::modulesBuffer& modulesInGPU = (*event->getModules()); SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); @@ -961,7 +961,7 @@ void printHitMultiplicities(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printMiniDoubletMultiplicities(SDL::Event* event) { +void printMiniDoubletMultiplicities(SDL::Event* event) { SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); SDL::modulesBuffer& modulesInGPU = (*event->getModules()); @@ -980,7 +980,7 @@ void printMiniDoubletMultiplicities(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printAllObjects(SDL::Event* event) { +void printAllObjects(SDL::Event* event) { printMDs(event); printLSs(event); printpLSs(event); @@ -988,7 +988,7 @@ void printAllObjects(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printMDs(SDL::Event* event) { +void printMDs(SDL::Event* event) { SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); SDL::hitsBuffer& hitsInGPU = (*event->getHits()); SDL::modulesBuffer& modulesInGPU = (*event->getModules()); @@ -1010,7 +1010,7 @@ void printMDs(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printLSs(SDL::Event* event) { +void printLSs(SDL::Event* event) { SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); SDL::hitsBuffer& hitsInGPU = (*event->getHits()); @@ -1042,7 +1042,7 @@ void printLSs(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printpLSs(SDL::Event* event) { +void printpLSs(SDL::Event* event) { SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); SDL::hitsBuffer& hitsInGPU = (*event->getHits()); @@ -1072,7 +1072,7 @@ void printpLSs(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printT3s(SDL::Event* event) { +void printT3s(SDL::Event* event) { SDL::tripletsBuffer& tripletsInGPU = (*event->getTriplets()); SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); @@ -1114,7 +1114,7 @@ void printT3s(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void debugPrintOutlierMultiplicities(SDL::Event* event) { +void debugPrintOutlierMultiplicities(SDL::Event* event) { SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); SDL::tripletsBuffer& tripletsInGPU = (*event->getTriplets()); SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); diff --git a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h index ec3afb2e1944c..a5f325f986ab7 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h +++ b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h @@ -11,47 +11,49 @@ #include "trkCore.h" #include "AccessHelper.h" +using SDLEvent = SDL::Event; + // Common void createOutputBranches(); void createRequiredOutputBranches(); void createOptionalOutputBranches(); void createGnnNtupleBranches(); -void fillOutputBranches(SDL::Event* event); -void setOutputBranches(SDL::Event* event); -void setOptionalOutputBranches(SDL::Event* event); -void setPixelQuintupletOutputBranches(SDL::Event* event); -void setQuintupletOutputBranches(SDL::Event* event); -void setPixelTripletOutputBranches(SDL::Event* event); -void setGnnNtupleBranches(SDL::Event* event); -void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD); +void fillOutputBranches(SDLEvent* event); +void setOutputBranches(SDLEvent* event); +void setOptionalOutputBranches(SDLEvent* event); +void setPixelQuintupletOutputBranches(SDLEvent* event); +void setQuintupletOutputBranches(SDLEvent* event); +void setPixelTripletOutputBranches(SDLEvent* event); +void setGnnNtupleBranches(SDLEvent* event); +void setGnnNtupleMiniDoublet(SDLEvent* event, unsigned int MD); std::tuple> parseTrackCandidate( - SDL::Event* event, unsigned int); + SDLEvent* event, unsigned int); std::tuple, std::vector> parsepT5( - SDL::Event* event, unsigned int); + SDLEvent* event, unsigned int); std::tuple, std::vector> parsepT3( - SDL::Event* event, unsigned int); + SDLEvent* event, unsigned int); std::tuple, std::vector> parseT5( - SDL::Event* event, unsigned int); + SDLEvent* event, unsigned int); std::tuple, std::vector> parsepLS( - SDL::Event* event, unsigned int); + SDLEvent* event, unsigned int); // Print multiplicities -void printMiniDoubletMultiplicities(SDL::Event* event); -void printHitMultiplicities(SDL::Event* event); +void printMiniDoubletMultiplicities(SDLEvent* event); +void printHitMultiplicities(SDLEvent* event); // Print objects (GPU) -void printAllObjects(SDL::Event* event); -void printpT4s(SDL::Event* event); -void printMDs(SDL::Event* event); -void printLSs(SDL::Event* event); -void printpLSs(SDL::Event* event); -void printT3s(SDL::Event* event); -void printT4s(SDL::Event* event); -void printTCs(SDL::Event* event); +void printAllObjects(SDLEvent* event); +void printpT4s(SDLEvent* event); +void printMDs(SDLEvent* event); +void printLSs(SDLEvent* event); +void printpLSs(SDLEvent* event); +void printT3s(SDLEvent* event); +void printT4s(SDLEvent* event); +void printTCs(SDLEvent* event); // Print anomalous multiplicities -void debugPrintOutlierMultiplicities(SDL::Event* event); +void debugPrintOutlierMultiplicities(SDLEvent* event); #endif From fb12af04e4f9df57e6a8be760da1d8ce807b1fd0 Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Thu, 18 Jul 2024 07:44:57 -0700 Subject: [PATCH 7/7] Format code --- .../LSTCore/interface/alpaka/Constants.h | 7 +- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 42 ++++----- RecoTracker/LSTCore/src/alpaka/LST.dev.cc | 88 +++++++++---------- .../standalone/code/core/AccessHelper.h | 59 ++++++------- .../LSTCore/standalone/code/core/trkCore.h | 4 +- .../standalone/code/core/write_sdl_ntuple.cc | 12 +-- .../standalone/code/core/write_sdl_ntuple.h | 19 ++-- 7 files changed, 109 insertions(+), 122 deletions(-) diff --git a/RecoTracker/LSTCore/interface/alpaka/Constants.h b/RecoTracker/LSTCore/interface/alpaka/Constants.h index e8a890fbb9ff4..7c8aaff322aab 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Constants.h +++ b/RecoTracker/LSTCore/interface/alpaka/Constants.h @@ -37,15 +37,14 @@ namespace SDL { // Wrapper function to reduce code boilerplate for defining grid/block sizes. ALPAKA_FN_HOST ALPAKA_FN_INLINE Vec3D createVec(int x, int y, int z) { - return Vec3D( - static_cast(x), static_cast(y), static_cast(z)); + return Vec3D(static_cast(x), static_cast(y), static_cast(z)); } // Adjust grid and block sizes based on backend configuration template ALPAKA_FN_HOST ALPAKA_FN_INLINE WorkDiv3D createWorkDiv(const Vec& blocksPerGrid, - const Vec& threadsPerBlock, - const Vec& elementsPerThreadArg) { + const Vec& threadsPerBlock, + const Vec& elementsPerThreadArg) { Vec adjustedBlocks = blocksPerGrid; Vec adjustedThreads = threadsPerBlock; diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index 230b10d3904bc..9c8228fc9a266 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc @@ -151,10 +151,10 @@ void SDL::Event::resetEvent() { } void SDL::Event::addHitToEvent(std::vector x, - std::vector y, - std::vector z, - std::vector detId, - std::vector idxInNtuple) { + std::vector y, + std::vector z, + std::vector detId, + std::vector idxInNtuple) { // Use the actual number of hits instead of a max. unsigned int nHits = x.size(); @@ -218,23 +218,23 @@ void SDL::Event::addHitToEvent(std::vector x, } void SDL::Event::addPixelSegmentToEvent(std::vector hitIndices0, - std::vector hitIndices1, - std::vector hitIndices2, - std::vector hitIndices3, - std::vector dPhiChange, - std::vector ptIn, - std::vector ptErr, - std::vector px, - std::vector py, - std::vector pz, - std::vector eta, - std::vector etaErr, - std::vector phi, - std::vector charge, - std::vector seedIdx, - std::vector superbin, - std::vector pixelType, - std::vector isQuad) { + std::vector hitIndices1, + std::vector hitIndices2, + std::vector hitIndices3, + std::vector dPhiChange, + std::vector ptIn, + std::vector ptErr, + std::vector px, + std::vector py, + std::vector pz, + std::vector eta, + std::vector etaErr, + std::vector phi, + std::vector charge, + std::vector seedIdx, + std::vector superbin, + std::vector pixelType, + std::vector isQuad) { unsigned int size = ptIn.size(); if (size > N_MAX_PIXEL_SEGMENTS_PER_MODULE) { diff --git a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc index 1d8700ce7be9e..11efa869b12f3 100644 --- a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc @@ -21,24 +21,24 @@ namespace { template <> void SDL::LST::prepareInput(const std::vector see_px, - const std::vector see_py, - const std::vector see_pz, - const std::vector see_dxy, - const std::vector see_dz, - const std::vector see_ptErr, - const std::vector see_etaErr, - const std::vector see_stateTrajGlbX, - const std::vector see_stateTrajGlbY, - const std::vector see_stateTrajGlbZ, - const std::vector see_stateTrajGlbPx, - const std::vector see_stateTrajGlbPy, - const std::vector see_stateTrajGlbPz, - const std::vector see_q, - const std::vector> see_hitIdx, - const std::vector ph2_detId, - const std::vector ph2_x, - const std::vector ph2_y, - const std::vector ph2_z) { + const std::vector see_py, + const std::vector see_pz, + const std::vector see_dxy, + const std::vector see_dz, + const std::vector see_ptErr, + const std::vector see_etaErr, + const std::vector see_stateTrajGlbX, + const std::vector see_stateTrajGlbY, + const std::vector see_stateTrajGlbZ, + const std::vector see_stateTrajGlbPx, + const std::vector see_stateTrajGlbPy, + const std::vector see_stateTrajGlbPz, + const std::vector see_q, + const std::vector> see_hitIdx, + const std::vector ph2_detId, + const std::vector ph2_x, + const std::vector ph2_y, + const std::vector ph2_z) { unsigned int count = 0; auto n_see = see_stateTrajGlbPx.size(); std::vector px_vec; @@ -214,9 +214,9 @@ void SDL::LST::prepareInput(const std::vector see_px, template <> std::vector SDL::LST::getHitIdxs(const short trackCandidateType, - const unsigned int TCIdx, - const unsigned int* TCHitIndices, - const unsigned int* hitIndices) { + const unsigned int TCIdx, + const unsigned int* TCHitIndices, + const unsigned int* hitIndices) { std::vector hits; unsigned int maxNHits = 0; @@ -279,29 +279,29 @@ void SDL::LST::getOutput(SDL::Event& event) { template <> template <> void SDL::LST::run(Queue& queue, - bool verbose, - const LSTESData* deviceESData, - const std::vector see_px, - const std::vector see_py, - const std::vector see_pz, - const std::vector see_dxy, - const std::vector see_dz, - const std::vector see_ptErr, - const std::vector see_etaErr, - const std::vector see_stateTrajGlbX, - const std::vector see_stateTrajGlbY, - const std::vector see_stateTrajGlbZ, - const std::vector see_stateTrajGlbPx, - const std::vector see_stateTrajGlbPy, - const std::vector see_stateTrajGlbPz, - const std::vector see_q, - const std::vector> see_hitIdx, - const std::vector ph2_detId, - const std::vector ph2_x, - const std::vector ph2_y, - const std::vector ph2_z, - bool no_pls_dupclean, - bool tc_pls_triplets) { + bool verbose, + const LSTESData* deviceESData, + const std::vector see_px, + const std::vector see_py, + const std::vector see_pz, + const std::vector see_dxy, + const std::vector see_dz, + const std::vector see_ptErr, + const std::vector see_etaErr, + const std::vector see_stateTrajGlbX, + const std::vector see_stateTrajGlbY, + const std::vector see_stateTrajGlbZ, + const std::vector see_stateTrajGlbPx, + const std::vector see_stateTrajGlbPy, + const std::vector see_stateTrajGlbPz, + const std::vector see_q, + const std::vector> see_hitIdx, + const std::vector ph2_detId, + const std::vector ph2_x, + const std::vector ph2_y, + const std::vector ph2_z, + bool no_pls_dupclean, + bool tc_pls_triplets) { auto event = SDL::Event(verbose, queue, deviceESData); prepareInput(see_px, see_py, diff --git a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h index e970462872218..ecdb83bd3fce7 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h +++ b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h @@ -14,32 +14,29 @@ std::tuple, std::vector> convertHitsToHi SDLEvent* event, std::vector hits); // ----* pLS *---- -std::vector getPixelHitsFrompLS(SDLEvent* event, - unsigned int pLS); -std::vector getPixelHitIdxsFrompLS(SDLEvent* event, - unsigned int pLS); -std::vector getPixelHitTypesFrompLS(SDLEvent* event, - unsigned int pLS); -std::tuple, std::vector> getHitIdxsAndHitTypesFrompLS( - SDLEvent* event, unsigned pLS); +std::vector getPixelHitsFrompLS(SDLEvent* event, unsigned int pLS); +std::vector getPixelHitIdxsFrompLS(SDLEvent* event, unsigned int pLS); +std::vector getPixelHitTypesFrompLS(SDLEvent* event, unsigned int pLS); +std::tuple, std::vector> getHitIdxsAndHitTypesFrompLS(SDLEvent* event, + unsigned pLS); // ----* MD *---- std::vector getHitsFromMD(SDLEvent* event, unsigned int MD); -std::tuple, std::vector> getHitIdxsAndHitTypesFromMD( - SDLEvent* event, unsigned MD); +std::tuple, std::vector> getHitIdxsAndHitTypesFromMD(SDLEvent* event, + unsigned MD); // ----* LS *---- std::vector getMDsFromLS(SDLEvent* event, unsigned int LS); std::vector getHitsFromLS(SDLEvent* event, unsigned int LS); -std::tuple, std::vector> getHitIdxsAndHitTypesFromLS( - SDLEvent* event, unsigned LS); +std::tuple, std::vector> getHitIdxsAndHitTypesFromLS(SDLEvent* event, + unsigned LS); // ----* T3 *---- std::vector getLSsFromT3(SDLEvent* event, unsigned int T3); std::vector getMDsFromT3(SDLEvent* event, unsigned int T3); std::vector getHitsFromT3(SDLEvent* event, unsigned int T3); -std::tuple, std::vector> getHitIdxsAndHitTypesFromT3( - SDLEvent* event, unsigned T3); +std::tuple, std::vector> getHitIdxsAndHitTypesFromT3(SDLEvent* event, + unsigned T3); // ----* T5 *---- std::vector getT3sFromT5(SDLEvent* event, unsigned int T5); @@ -49,25 +46,22 @@ std::vector getHitsFromT5(SDLEvent* event, unsigned int T5); std::vector getHitIdxsFromT5(SDLEvent* event, unsigned int T5); std::vector getHitTypesFromT5(SDLEvent* event, unsigned int T5); std::vector getModuleIdxsFromT5(SDLEvent* event, unsigned int T5); -std::tuple, std::vector> getHitIdxsAndHitTypesFromT5( - SDLEvent* event, unsigned T5); +std::tuple, std::vector> getHitIdxsAndHitTypesFromT5(SDLEvent* event, + unsigned T5); // ----* pT3 *---- unsigned int getPixelLSFrompT3(SDLEvent* event, unsigned int pT3); unsigned int getT3FrompT3(SDLEvent* event, unsigned int pT3); std::vector getLSsFrompT3(SDLEvent* event, unsigned int pT3); std::vector getMDsFrompT3(SDLEvent* event, unsigned int pT3); -std::vector getOuterTrackerHitsFrompT3(SDLEvent* event, - unsigned int pT3); -std::vector getPixelHitsFrompT3(SDLEvent* event, - unsigned int pT3); +std::vector getOuterTrackerHitsFrompT3(SDLEvent* event, unsigned int pT3); +std::vector getPixelHitsFrompT3(SDLEvent* event, unsigned int pT3); std::vector getHitsFrompT3(SDLEvent* event, unsigned int pT3); std::vector getHitIdxsFrompT3(SDLEvent* event, unsigned int pT3); std::vector getHitTypesFrompT3(SDLEvent* event, unsigned int pT3); -std::vector getModuleIdxsFrompT3(SDLEvent* event, - unsigned int pT3); -std::tuple, std::vector> getHitIdxsAndHitTypesFrompT3( - SDLEvent* event, unsigned pT3); +std::vector getModuleIdxsFrompT3(SDLEvent* event, unsigned int pT3); +std::tuple, std::vector> getHitIdxsAndHitTypesFrompT3(SDLEvent* event, + unsigned pT3); // ----* pT5 *---- unsigned int getPixelLSFrompT5(SDLEvent* event, unsigned int pT5); @@ -75,22 +69,19 @@ unsigned int getT5FrompT5(SDLEvent* event, unsigned int pT5); std::vector getT3sFrompT5(SDLEvent* event, unsigned int pT5); std::vector getLSsFrompT5(SDLEvent* event, unsigned int pT5); std::vector getMDsFrompT5(SDLEvent* event, unsigned int pT5); -std::vector getOuterTrackerHitsFrompT5(SDLEvent* event, - unsigned int pT5); -std::vector getPixelHitsFrompT5(SDLEvent* event, - unsigned int pT5); +std::vector getOuterTrackerHitsFrompT5(SDLEvent* event, unsigned int pT5); +std::vector getPixelHitsFrompT5(SDLEvent* event, unsigned int pT5); std::vector getHitsFrompT5(SDLEvent* event, unsigned int pT5); std::vector getHitIdxsFrompT5(SDLEvent* event, unsigned int pT5); std::vector getHitTypesFrompT5(SDLEvent* event, unsigned int pT5); -std::vector getModuleIdxsFrompT5(SDLEvent* event, - unsigned int pT5); -std::tuple, std::vector> getHitIdxsAndHitTypesFrompT5( - SDLEvent* event, unsigned pT5); +std::vector getModuleIdxsFrompT5(SDLEvent* event, unsigned int pT5); +std::tuple, std::vector> getHitIdxsAndHitTypesFrompT5(SDLEvent* event, + unsigned pT5); // ----* TC *---- std::vector getLSsFromTC(SDLEvent* event, unsigned int TC); std::vector getHitsFromTC(SDLEvent* event, unsigned int TC); -std::tuple, std::vector> getHitIdxsAndHitTypesFromTC( - SDLEvent* event, unsigned int TC); +std::tuple, std::vector> getHitIdxsAndHitTypesFromTC(SDLEvent* event, + unsigned int TC); #endif diff --git a/RecoTracker/LSTCore/standalone/code/core/trkCore.h b/RecoTracker/LSTCore/standalone/code/core/trkCore.h index 6a3d926658890..b1900f068c5d5 100644 --- a/RecoTracker/LSTCore/standalone/code/core/trkCore.h +++ b/RecoTracker/LSTCore/standalone/code/core/trkCore.h @@ -22,9 +22,7 @@ float runT4(SDLEvent *event); float runT4x(SDLEvent *event); float runpT4(SDLEvent *event); float runT3(SDLEvent *event); -float runTrackCandidate(SDLEvent *event, - bool no_pls_dupclean, - bool tc_pls_triplets); +float runTrackCandidate(SDLEvent *event, bool no_pls_dupclean, bool tc_pls_triplets); float runQuintuplet(SDLEvent *event); float runPixelQuintuplet(SDLEvent *event); float runPixelLineSegment(SDLEvent *event, bool no_pls_dupclean); diff --git a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc index a610c40c6188d..987fdfa7c5a70 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc +++ b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc @@ -744,8 +744,8 @@ std::tuple> parseTrackCandidate( } //________________________________________________________________________________________________________________________________ -std::tuple, std::vector> parsepT5( - SDL::Event* event, unsigned int idx) { +std::tuple, std::vector> parsepT5(SDL::Event* event, + unsigned int idx) { // Get relevant information SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); SDL::quintupletsBuffer& quintupletsInGPU = (*event->getQuintuplets()); @@ -856,8 +856,8 @@ std::tuple, std::vector, std::vector> parsepT3( - SDL::Event* event, unsigned int idx) { +std::tuple, std::vector> parsepT3(SDL::Event* event, + unsigned int idx) { // Get relevant information SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); SDL::tripletsBuffer& tripletsInGPU = (*event->getTriplets()); @@ -925,8 +925,8 @@ std::tuple, std::vector, std::vector> parsepLS( - SDL::Event* event, unsigned int idx) { +std::tuple, std::vector> parsepLS(SDL::Event* event, + unsigned int idx) { SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); diff --git a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h index a5f325f986ab7..26b07c90a2641 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h +++ b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h @@ -28,16 +28,15 @@ void setPixelTripletOutputBranches(SDLEvent* event); void setGnnNtupleBranches(SDLEvent* event); void setGnnNtupleMiniDoublet(SDLEvent* event, unsigned int MD); -std::tuple> parseTrackCandidate( - SDLEvent* event, unsigned int); -std::tuple, std::vector> parsepT5( - SDLEvent* event, unsigned int); -std::tuple, std::vector> parsepT3( - SDLEvent* event, unsigned int); -std::tuple, std::vector> parseT5( - SDLEvent* event, unsigned int); -std::tuple, std::vector> parsepLS( - SDLEvent* event, unsigned int); +std::tuple> parseTrackCandidate(SDLEvent* event, unsigned int); +std::tuple, std::vector> parsepT5(SDLEvent* event, + unsigned int); +std::tuple, std::vector> parsepT3(SDLEvent* event, + unsigned int); +std::tuple, std::vector> parseT5(SDLEvent* event, + unsigned int); +std::tuple, std::vector> parsepLS(SDLEvent* event, + unsigned int); // Print multiplicities void printMiniDoubletMultiplicities(SDLEvent* event);