From 9c87a88664662dc53db14cb35a673859b8f19c38 Mon Sep 17 00:00:00 2001 From: Andres Rios-Tascon Date: Thu, 11 Jul 2024 13:04:39 -0400 Subject: [PATCH 01/35] 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 02/35] 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 03/35] 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 04/35] 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 05/35] 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 06/35] 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 07/35] 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); From 1fb0489e012102c3ca544316859d3a3b1f9a20ac Mon Sep 17 00:00:00 2001 From: Slava Krutelyov Date: Fri, 19 Jul 2024 08:55:13 -0700 Subject: [PATCH 08/35] split ranges from modules --- RecoTracker/LSTCore/src/alpaka/ObjectRanges.h | 155 ++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 RecoTracker/LSTCore/src/alpaka/ObjectRanges.h diff --git a/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h b/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h new file mode 100644 index 0000000000000..e8cb17a301fab --- /dev/null +++ b/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h @@ -0,0 +1,155 @@ +#ifndef RecoTracker_LSTCore_interface_ObjectRanges_h +#define RecoTracker_LSTCore_interface_ObjectRanges_h + +#include "RecoTracker/LSTCore/interface/Constants.h" + +namespace SDL { + + struct ObjectRanges { + int* hitRanges; + int* hitRangesLower; + int* hitRangesUpper; + int8_t* hitRangesnLower; + int8_t* hitRangesnUpper; + int* mdRanges; + int* segmentRanges; + int* trackletRanges; + int* tripletRanges; + int* trackCandidateRanges; + // Others will be added later + int* quintupletRanges; + + // This number is just nEligibleModules - 1, but still we want this to be independent of the TC kernel + uint16_t* nEligibleT5Modules; + // Will be allocated in createQuintuplets kernel! + uint16_t* indicesOfEligibleT5Modules; + // To store different starting points for variable occupancy stuff + int* quintupletModuleIndices; + int* quintupletModuleOccupancy; + int* miniDoubletModuleIndices; + int* miniDoubletModuleOccupancy; + int* segmentModuleIndices; + int* segmentModuleOccupancy; + int* tripletModuleIndices; + int* tripletModuleOccupancy; + + unsigned int* device_nTotalMDs; + unsigned int* device_nTotalSegs; + unsigned int* device_nTotalTrips; + unsigned int* device_nTotalQuints; + + template + void setData(TBuff& buf) { + hitRanges = alpaka::getPtrNative(buf.hitRanges_buf); + hitRangesLower = alpaka::getPtrNative(buf.hitRangesLower_buf); + hitRangesUpper = alpaka::getPtrNative(buf.hitRangesUpper_buf); + hitRangesnLower = alpaka::getPtrNative(buf.hitRangesnLower_buf); + hitRangesnUpper = alpaka::getPtrNative(buf.hitRangesnUpper_buf); + mdRanges = alpaka::getPtrNative(buf.mdRanges_buf); + segmentRanges = alpaka::getPtrNative(buf.segmentRanges_buf); + trackletRanges = alpaka::getPtrNative(buf.trackletRanges_buf); + tripletRanges = alpaka::getPtrNative(buf.tripletRanges_buf); + trackCandidateRanges = alpaka::getPtrNative(buf.trackCandidateRanges_buf); + quintupletRanges = alpaka::getPtrNative(buf.quintupletRanges_buf); + + nEligibleT5Modules = alpaka::getPtrNative(buf.nEligibleT5Modules_buf); + indicesOfEligibleT5Modules = alpaka::getPtrNative(buf.indicesOfEligibleT5Modules_buf); + + quintupletModuleIndices = alpaka::getPtrNative(buf.quintupletModuleIndices_buf); + quintupletModuleOccupancy = alpaka::getPtrNative(buf.quintupletModuleOccupancy_buf); + miniDoubletModuleIndices = alpaka::getPtrNative(buf.miniDoubletModuleIndices_buf); + miniDoubletModuleOccupancy = alpaka::getPtrNative(buf.miniDoubletModuleOccupancy_buf); + segmentModuleIndices = alpaka::getPtrNative(buf.segmentModuleIndices_buf); + segmentModuleOccupancy = alpaka::getPtrNative(buf.segmentModuleOccupancy_buf); + tripletModuleIndices = alpaka::getPtrNative(buf.tripletModuleIndices_buf); + tripletModuleOccupancy = alpaka::getPtrNative(buf.tripletModuleOccupancy_buf); + + device_nTotalMDs = alpaka::getPtrNative(buf.device_nTotalMDs_buf); + device_nTotalSegs = alpaka::getPtrNative(buf.device_nTotalSegs_buf); + device_nTotalTrips = alpaka::getPtrNative(buf.device_nTotalTrips_buf); + device_nTotalQuints = alpaka::getPtrNative(buf.device_nTotalQuints_buf); + } + }; + + template + struct ObjectRangesBuffer { + Buf hitRanges_buf; + Buf hitRangesLower_buf; + Buf hitRangesUpper_buf; + Buf hitRangesnLower_buf; + Buf hitRangesnUpper_buf; + Buf mdRanges_buf; + Buf segmentRanges_buf; + Buf trackletRanges_buf; + Buf tripletRanges_buf; + Buf trackCandidateRanges_buf; + Buf quintupletRanges_buf; + + Buf nEligibleT5Modules_buf; + Buf indicesOfEligibleT5Modules_buf; + + Buf quintupletModuleIndices_buf; + Buf quintupletModuleOccupancy_buf; + Buf miniDoubletModuleIndices_buf; + Buf miniDoubletModuleOccupancy_buf; + Buf segmentModuleIndices_buf; + Buf segmentModuleOccupancy_buf; + Buf tripletModuleIndices_buf; + Buf tripletModuleOccupancy_buf; + + Buf device_nTotalMDs_buf; + Buf device_nTotalSegs_buf; + Buf device_nTotalTrips_buf; + Buf device_nTotalQuints_buf; + + ObjectRanges data_; + + template + ObjectRangesBuffer(unsigned int nMod, unsigned int nLowerMod, TDevAcc const& devAccIn, TQueue& queue) + : hitRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), + hitRangesLower_buf(allocBufWrapper(devAccIn, nMod, queue)), + hitRangesUpper_buf(allocBufWrapper(devAccIn, nMod, queue)), + hitRangesnLower_buf(allocBufWrapper(devAccIn, nMod, queue)), + hitRangesnUpper_buf(allocBufWrapper(devAccIn, nMod, queue)), + mdRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), + segmentRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), + trackletRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), + tripletRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), + trackCandidateRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), + quintupletRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), + nEligibleT5Modules_buf(allocBufWrapper(devAccIn, 1, queue)), + indicesOfEligibleT5Modules_buf(allocBufWrapper(devAccIn, nLowerMod, queue)), + quintupletModuleIndices_buf(allocBufWrapper(devAccIn, nLowerMod, queue)), + quintupletModuleOccupancy_buf(allocBufWrapper(devAccIn, nLowerMod, queue)), + miniDoubletModuleIndices_buf(allocBufWrapper(devAccIn, nLowerMod + 1, queue)), + miniDoubletModuleOccupancy_buf(allocBufWrapper(devAccIn, nLowerMod + 1, queue)), + segmentModuleIndices_buf(allocBufWrapper(devAccIn, nLowerMod + 1, queue)), + segmentModuleOccupancy_buf(allocBufWrapper(devAccIn, nLowerMod + 1, queue)), + tripletModuleIndices_buf(allocBufWrapper(devAccIn, nLowerMod, queue)), + tripletModuleOccupancy_buf(allocBufWrapper(devAccIn, nLowerMod, queue)), + device_nTotalMDs_buf(allocBufWrapper(devAccIn, 1, queue)), + device_nTotalSegs_buf(allocBufWrapper(devAccIn, 1, queue)), + device_nTotalTrips_buf(allocBufWrapper(devAccIn, 1, queue)), + device_nTotalQuints_buf(allocBufWrapper(devAccIn, 1, queue)) { + alpaka::memset(queue, hitRanges_buf, 0xff); + alpaka::memset(queue, hitRangesLower_buf, 0xff); + alpaka::memset(queue, hitRangesUpper_buf, 0xff); + alpaka::memset(queue, hitRangesnLower_buf, 0xff); + alpaka::memset(queue, hitRangesnUpper_buf, 0xff); + alpaka::memset(queue, mdRanges_buf, 0xff); + alpaka::memset(queue, segmentRanges_buf, 0xff); + alpaka::memset(queue, trackletRanges_buf, 0xff); + alpaka::memset(queue, tripletRanges_buf, 0xff); + alpaka::memset(queue, trackCandidateRanges_buf, 0xff); + alpaka::memset(queue, quintupletRanges_buf, 0xff); + alpaka::memset(queue, quintupletModuleIndices_buf, 0xff); + alpaka::wait(queue); + data_.setData(*this); + } + + inline ObjectRanges const* data() const { return &data_; } + void setData(ObjectRangesBuffer& buf) { data_.setData(buf); } + }; + +} // namespace SDL +#endif From d0e320a22b274cb9e531ab6196dba796035522d2 Mon Sep 17 00:00:00 2001 From: Slava Krutelyov Date: Fri, 19 Jul 2024 08:56:04 -0700 Subject: [PATCH 09/35] remove inheritance of buffers on underlying SoAs --- .../LSTCore/interface/EndcapGeometryBuffer.h | 13 +- RecoTracker/LSTCore/interface/LSTESData.h | 6 +- RecoTracker/LSTCore/interface/Module.h | 212 ++------- RecoTracker/LSTCore/src/LSTESData.cc | 2 +- RecoTracker/LSTCore/src/ModuleMethods.h | 16 +- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 96 ++-- RecoTracker/LSTCore/src/alpaka/Event.h | 82 ++-- RecoTracker/LSTCore/src/alpaka/Hit.h | 59 +-- RecoTracker/LSTCore/src/alpaka/Kernels.h | 33 +- RecoTracker/LSTCore/src/alpaka/LST.dev.cc | 14 +- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 128 +++--- .../LSTCore/src/alpaka/NeuralNetwork.h | 8 +- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 229 +++++----- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 134 +++--- RecoTracker/LSTCore/src/alpaka/Segment.h | 138 +++--- .../LSTCore/src/alpaka/TrackCandidate.h | 120 ++--- RecoTracker/LSTCore/src/alpaka/Triplet.h | 140 +++--- .../standalone/code/core/AccessHelper.cc | 120 ++--- .../standalone/code/core/write_sdl_ntuple.cc | 415 +++++++++--------- 19 files changed, 935 insertions(+), 1030 deletions(-) diff --git a/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h b/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h index 005d2a7a32d75..afacfc4ba6d25 100644 --- a/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h +++ b/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h @@ -18,21 +18,22 @@ namespace SDL { const float* geoMapPhi; template - void setData(const TBuff& endcapgeombuf) { - geoMapDetId = alpaka::getPtrNative(endcapgeombuf.geoMapDetId_buf); - geoMapPhi = alpaka::getPtrNative(endcapgeombuf.geoMapPhi_buf); + void setData(const TBuff& buf) { + geoMapDetId = alpaka::getPtrNative(buf.geoMapDetId_buf); + geoMapPhi = alpaka::getPtrNative(buf.geoMapPhi_buf); } }; template - struct EndcapGeometryBuffer : EndcapGeometryDev { + struct EndcapGeometryBuffer { Buf geoMapDetId_buf; Buf geoMapPhi_buf; + EndcapGeometryDev data_; EndcapGeometryBuffer(TDev const& dev, unsigned int nEndCapMap) : geoMapDetId_buf(allocBufWrapper(dev, nEndCapMap)), geoMapPhi_buf(allocBufWrapper(dev, nEndCapMap)) { - setData(*this); + data_.setData(*this); } template @@ -47,7 +48,7 @@ namespace SDL { copyFromSrc(queue, src); } - inline EndcapGeometryDev const* data() const { return this; } + inline EndcapGeometryDev const* data() const { return &data_; } }; } // namespace SDL diff --git a/RecoTracker/LSTCore/interface/LSTESData.h b/RecoTracker/LSTCore/interface/LSTESData.h index c2a0a92bb668a..72ad204af1b43 100644 --- a/RecoTracker/LSTCore/interface/LSTESData.h +++ b/RecoTracker/LSTCore/interface/LSTESData.h @@ -19,7 +19,7 @@ namespace SDL { uint16_t nLowerModules; unsigned int nPixels; unsigned int nEndCapMap; - std::shared_ptr> modulesBuffers; + std::shared_ptr> modulesBuffers; std::shared_ptr> endcapGeometryBuffers; std::shared_ptr pixelMapping; @@ -27,7 +27,7 @@ namespace SDL { uint16_t const& nLowerModulesIn, unsigned int const& nPixelsIn, unsigned int const& nEndCapMapIn, - std::shared_ptr> const& modulesBuffersIn, + std::shared_ptr> const& modulesBuffersIn, std::shared_ptr> const& endcapGeometryBuffersIn, std::shared_ptr const& pixelMappingIn) : nModules(nModulesIn), @@ -49,7 +49,7 @@ namespace cms::alpakatools { template static SDL::LSTESData> copyAsync(TQueue& queue, SDL::LSTESData const& srcData) { - auto deviceModulesBuffers = std::make_shared>>( + auto deviceModulesBuffers = std::make_shared>>( alpaka::getDev(queue), srcData.nModules, srcData.nPixels); deviceModulesBuffers->copyFromSrc(queue, *srcData.modulesBuffers); auto deviceEndcapGeometryBuffers = diff --git a/RecoTracker/LSTCore/interface/Module.h b/RecoTracker/LSTCore/interface/Module.h index 62ef8a630400a..3b94508c529e0 100644 --- a/RecoTracker/LSTCore/interface/Module.h +++ b/RecoTracker/LSTCore/interface/Module.h @@ -12,147 +12,7 @@ namespace SDL { enum ModuleLayerType { Pixel, Strip, InnerPixelLayer }; - struct objectRanges { - int* hitRanges; - int* hitRangesLower; - int* hitRangesUpper; - int8_t* hitRangesnLower; - int8_t* hitRangesnUpper; - int* mdRanges; - int* segmentRanges; - int* trackletRanges; - int* tripletRanges; - int* trackCandidateRanges; - // Others will be added later - int* quintupletRanges; - - // This number is just nEligibleModules - 1, but still we want this to be independent of the TC kernel - uint16_t* nEligibleT5Modules; - // Will be allocated in createQuintuplets kernel! - uint16_t* indicesOfEligibleT5Modules; - // To store different starting points for variable occupancy stuff - int* quintupletModuleIndices; - int* quintupletModuleOccupancy; - int* miniDoubletModuleIndices; - int* miniDoubletModuleOccupancy; - int* segmentModuleIndices; - int* segmentModuleOccupancy; - int* tripletModuleIndices; - int* tripletModuleOccupancy; - - unsigned int* device_nTotalMDs; - unsigned int* device_nTotalSegs; - unsigned int* device_nTotalTrips; - unsigned int* device_nTotalQuints; - - template - void setData(TBuff& objectRangesbuf) { - hitRanges = alpaka::getPtrNative(objectRangesbuf.hitRanges_buf); - hitRangesLower = alpaka::getPtrNative(objectRangesbuf.hitRangesLower_buf); - hitRangesUpper = alpaka::getPtrNative(objectRangesbuf.hitRangesUpper_buf); - hitRangesnLower = alpaka::getPtrNative(objectRangesbuf.hitRangesnLower_buf); - hitRangesnUpper = alpaka::getPtrNative(objectRangesbuf.hitRangesnUpper_buf); - mdRanges = alpaka::getPtrNative(objectRangesbuf.mdRanges_buf); - segmentRanges = alpaka::getPtrNative(objectRangesbuf.segmentRanges_buf); - trackletRanges = alpaka::getPtrNative(objectRangesbuf.trackletRanges_buf); - tripletRanges = alpaka::getPtrNative(objectRangesbuf.tripletRanges_buf); - trackCandidateRanges = alpaka::getPtrNative(objectRangesbuf.trackCandidateRanges_buf); - quintupletRanges = alpaka::getPtrNative(objectRangesbuf.quintupletRanges_buf); - - nEligibleT5Modules = alpaka::getPtrNative(objectRangesbuf.nEligibleT5Modules_buf); - indicesOfEligibleT5Modules = alpaka::getPtrNative(objectRangesbuf.indicesOfEligibleT5Modules_buf); - - quintupletModuleIndices = alpaka::getPtrNative(objectRangesbuf.quintupletModuleIndices_buf); - quintupletModuleOccupancy = alpaka::getPtrNative(objectRangesbuf.quintupletModuleOccupancy_buf); - miniDoubletModuleIndices = alpaka::getPtrNative(objectRangesbuf.miniDoubletModuleIndices_buf); - miniDoubletModuleOccupancy = alpaka::getPtrNative(objectRangesbuf.miniDoubletModuleOccupancy_buf); - segmentModuleIndices = alpaka::getPtrNative(objectRangesbuf.segmentModuleIndices_buf); - segmentModuleOccupancy = alpaka::getPtrNative(objectRangesbuf.segmentModuleOccupancy_buf); - tripletModuleIndices = alpaka::getPtrNative(objectRangesbuf.tripletModuleIndices_buf); - tripletModuleOccupancy = alpaka::getPtrNative(objectRangesbuf.tripletModuleOccupancy_buf); - - device_nTotalMDs = alpaka::getPtrNative(objectRangesbuf.device_nTotalMDs_buf); - device_nTotalSegs = alpaka::getPtrNative(objectRangesbuf.device_nTotalSegs_buf); - device_nTotalTrips = alpaka::getPtrNative(objectRangesbuf.device_nTotalTrips_buf); - device_nTotalQuints = alpaka::getPtrNative(objectRangesbuf.device_nTotalQuints_buf); - } - }; - - template - struct objectRangesBuffer : objectRanges { - Buf hitRanges_buf; - Buf hitRangesLower_buf; - Buf hitRangesUpper_buf; - Buf hitRangesnLower_buf; - Buf hitRangesnUpper_buf; - Buf mdRanges_buf; - Buf segmentRanges_buf; - Buf trackletRanges_buf; - Buf tripletRanges_buf; - Buf trackCandidateRanges_buf; - Buf quintupletRanges_buf; - - Buf nEligibleT5Modules_buf; - Buf indicesOfEligibleT5Modules_buf; - - Buf quintupletModuleIndices_buf; - Buf quintupletModuleOccupancy_buf; - Buf miniDoubletModuleIndices_buf; - Buf miniDoubletModuleOccupancy_buf; - Buf segmentModuleIndices_buf; - Buf segmentModuleOccupancy_buf; - Buf tripletModuleIndices_buf; - Buf tripletModuleOccupancy_buf; - - Buf device_nTotalMDs_buf; - Buf device_nTotalSegs_buf; - Buf device_nTotalTrips_buf; - Buf device_nTotalQuints_buf; - - template - objectRangesBuffer(unsigned int nMod, unsigned int nLowerMod, TDevAcc const& devAccIn, TQueue& queue) - : hitRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), - hitRangesLower_buf(allocBufWrapper(devAccIn, nMod, queue)), - hitRangesUpper_buf(allocBufWrapper(devAccIn, nMod, queue)), - hitRangesnLower_buf(allocBufWrapper(devAccIn, nMod, queue)), - hitRangesnUpper_buf(allocBufWrapper(devAccIn, nMod, queue)), - mdRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), - segmentRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), - trackletRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), - tripletRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), - trackCandidateRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), - quintupletRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), - nEligibleT5Modules_buf(allocBufWrapper(devAccIn, 1, queue)), - indicesOfEligibleT5Modules_buf(allocBufWrapper(devAccIn, nLowerMod, queue)), - quintupletModuleIndices_buf(allocBufWrapper(devAccIn, nLowerMod, queue)), - quintupletModuleOccupancy_buf(allocBufWrapper(devAccIn, nLowerMod, queue)), - miniDoubletModuleIndices_buf(allocBufWrapper(devAccIn, nLowerMod + 1, queue)), - miniDoubletModuleOccupancy_buf(allocBufWrapper(devAccIn, nLowerMod + 1, queue)), - segmentModuleIndices_buf(allocBufWrapper(devAccIn, nLowerMod + 1, queue)), - segmentModuleOccupancy_buf(allocBufWrapper(devAccIn, nLowerMod + 1, queue)), - tripletModuleIndices_buf(allocBufWrapper(devAccIn, nLowerMod, queue)), - tripletModuleOccupancy_buf(allocBufWrapper(devAccIn, nLowerMod, queue)), - device_nTotalMDs_buf(allocBufWrapper(devAccIn, 1, queue)), - device_nTotalSegs_buf(allocBufWrapper(devAccIn, 1, queue)), - device_nTotalTrips_buf(allocBufWrapper(devAccIn, 1, queue)), - device_nTotalQuints_buf(allocBufWrapper(devAccIn, 1, queue)) { - alpaka::memset(queue, hitRanges_buf, 0xff); - alpaka::memset(queue, hitRangesLower_buf, 0xff); - alpaka::memset(queue, hitRangesUpper_buf, 0xff); - alpaka::memset(queue, hitRangesnLower_buf, 0xff); - alpaka::memset(queue, hitRangesnUpper_buf, 0xff); - alpaka::memset(queue, mdRanges_buf, 0xff); - alpaka::memset(queue, segmentRanges_buf, 0xff); - alpaka::memset(queue, trackletRanges_buf, 0xff); - alpaka::memset(queue, tripletRanges_buf, 0xff); - alpaka::memset(queue, trackCandidateRanges_buf, 0xff); - alpaka::memset(queue, quintupletRanges_buf, 0xff); - alpaka::memset(queue, quintupletModuleIndices_buf, 0xff); - alpaka::wait(queue); - } - }; - - struct modules { + struct Modules { const unsigned int* detIds; const uint16_t* moduleMap; const unsigned int* mapdetId; @@ -223,38 +83,38 @@ namespace SDL { }; template - void setData(const TBuff& modulesbuf) { - detIds = alpaka::getPtrNative(modulesbuf.detIds_buf); - moduleMap = alpaka::getPtrNative(modulesbuf.moduleMap_buf); - mapdetId = alpaka::getPtrNative(modulesbuf.mapdetId_buf); - mapIdx = alpaka::getPtrNative(modulesbuf.mapIdx_buf); - nConnectedModules = alpaka::getPtrNative(modulesbuf.nConnectedModules_buf); - drdzs = alpaka::getPtrNative(modulesbuf.drdzs_buf); - dxdys = alpaka::getPtrNative(modulesbuf.dxdys_buf); - nModules = alpaka::getPtrNative(modulesbuf.nModules_buf); - nLowerModules = alpaka::getPtrNative(modulesbuf.nLowerModules_buf); - partnerModuleIndices = alpaka::getPtrNative(modulesbuf.partnerModuleIndices_buf); - - layers = alpaka::getPtrNative(modulesbuf.layers_buf); - rings = alpaka::getPtrNative(modulesbuf.rings_buf); - modules = alpaka::getPtrNative(modulesbuf.modules_buf); - rods = alpaka::getPtrNative(modulesbuf.rods_buf); - subdets = alpaka::getPtrNative(modulesbuf.subdets_buf); - sides = alpaka::getPtrNative(modulesbuf.sides_buf); - eta = alpaka::getPtrNative(modulesbuf.eta_buf); - r = alpaka::getPtrNative(modulesbuf.r_buf); - isInverted = alpaka::getPtrNative(modulesbuf.isInverted_buf); - isLower = alpaka::getPtrNative(modulesbuf.isLower_buf); - isAnchor = alpaka::getPtrNative(modulesbuf.isAnchor_buf); - moduleType = alpaka::getPtrNative(modulesbuf.moduleType_buf); - moduleLayerType = alpaka::getPtrNative(modulesbuf.moduleLayerType_buf); - sdlLayers = alpaka::getPtrNative(modulesbuf.sdlLayers_buf); - connectedPixels = alpaka::getPtrNative(modulesbuf.connectedPixels_buf); + void setData(const TBuff& buf) { + detIds = alpaka::getPtrNative(buf.detIds_buf); + moduleMap = alpaka::getPtrNative(buf.moduleMap_buf); + mapdetId = alpaka::getPtrNative(buf.mapdetId_buf); + mapIdx = alpaka::getPtrNative(buf.mapIdx_buf); + nConnectedModules = alpaka::getPtrNative(buf.nConnectedModules_buf); + drdzs = alpaka::getPtrNative(buf.drdzs_buf); + dxdys = alpaka::getPtrNative(buf.dxdys_buf); + nModules = alpaka::getPtrNative(buf.nModules_buf); + nLowerModules = alpaka::getPtrNative(buf.nLowerModules_buf); + partnerModuleIndices = alpaka::getPtrNative(buf.partnerModuleIndices_buf); + + layers = alpaka::getPtrNative(buf.layers_buf); + rings = alpaka::getPtrNative(buf.rings_buf); + modules = alpaka::getPtrNative(buf.modules_buf); + rods = alpaka::getPtrNative(buf.rods_buf); + subdets = alpaka::getPtrNative(buf.subdets_buf); + sides = alpaka::getPtrNative(buf.sides_buf); + eta = alpaka::getPtrNative(buf.eta_buf); + r = alpaka::getPtrNative(buf.r_buf); + isInverted = alpaka::getPtrNative(buf.isInverted_buf); + isLower = alpaka::getPtrNative(buf.isLower_buf); + isAnchor = alpaka::getPtrNative(buf.isAnchor_buf); + moduleType = alpaka::getPtrNative(buf.moduleType_buf); + moduleLayerType = alpaka::getPtrNative(buf.moduleLayerType_buf); + sdlLayers = alpaka::getPtrNative(buf.sdlLayers_buf); + connectedPixels = alpaka::getPtrNative(buf.connectedPixels_buf); } }; template - struct modulesBuffer : modules { + struct ModulesBuffer { Buf detIds_buf; Buf moduleMap_buf; Buf mapdetId_buf; @@ -282,7 +142,9 @@ namespace SDL { Buf sdlLayers_buf; Buf connectedPixels_buf; - modulesBuffer(TDev const& dev, unsigned int nMod, unsigned int nPixs) + Modules data_; + + ModulesBuffer(TDev const& dev, unsigned int nMod, unsigned int nPixs) : detIds_buf(allocBufWrapper(dev, nMod)), moduleMap_buf(allocBufWrapper(dev, nMod * MAX_CONNECTED_MODULES)), mapdetId_buf(allocBufWrapper(dev, nMod)), @@ -309,11 +171,11 @@ namespace SDL { moduleLayerType_buf(allocBufWrapper(dev, nMod)), sdlLayers_buf(allocBufWrapper(dev, nMod)), connectedPixels_buf(allocBufWrapper(dev, nPixs)) { - setData(*this); + data_.setData(*this); } template - inline void copyFromSrc(TQueue queue, const modulesBuffer& src, bool isFull = true) { + inline void copyFromSrc(TQueue queue, const ModulesBuffer& src, bool isFull = true) { alpaka::memcpy(queue, detIds_buf, src.detIds_buf); if (isFull) { alpaka::memcpy(queue, moduleMap_buf, src.moduleMap_buf); @@ -354,12 +216,12 @@ namespace SDL { } template - modulesBuffer(TQueue queue, const modulesBuffer& src, unsigned int nMod, unsigned int nPixs) - : modulesBuffer(alpaka::getDev(queue), nMod, nPixs) { + ModulesBuffer(TQueue queue, const ModulesBuffer& src, unsigned int nMod, unsigned int nPixs) + : ModulesBuffer(alpaka::getDev(queue), nMod, nPixs) { copyFromSrc(queue, src); } - inline SDL::modules const* data() const { return this; } + inline Modules const* data() const { return &data_; } }; } // namespace SDL diff --git a/RecoTracker/LSTCore/src/LSTESData.cc b/RecoTracker/LSTCore/src/LSTESData.cc index cb64bf928a5bc..d91019852165e 100644 --- a/RecoTracker/LSTCore/src/LSTESData.cc +++ b/RecoTracker/LSTCore/src/LSTESData.cc @@ -81,7 +81,7 @@ std::unique_ptr> SDL::loadAndFillESHost() uint16_t nModules; uint16_t nLowerModules; unsigned int nPixels; - std::shared_ptr> modulesBuffers = nullptr; + std::shared_ptr> modulesBuffers = nullptr; auto pLStoLayer = std::make_shared(); auto endcapGeometry = std::make_shared(); auto tiltedGeometry = std::make_shared(); diff --git a/RecoTracker/LSTCore/src/ModuleMethods.h b/RecoTracker/LSTCore/src/ModuleMethods.h index 5d91f1bd59b7a..a5649ab9bf85b 100644 --- a/RecoTracker/LSTCore/src/ModuleMethods.h +++ b/RecoTracker/LSTCore/src/ModuleMethods.h @@ -24,7 +24,7 @@ namespace SDL { }; template - inline void fillPixelMap(std::shared_ptr>& modulesBuf, + inline void fillPixelMap(std::shared_ptr>& modulesBuf, uint16_t nModules, unsigned int& nPixels, pixelMap& pixelMapping, @@ -84,7 +84,7 @@ namespace SDL { // Now we can initialize modulesBuf 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); @@ -105,7 +105,7 @@ namespace SDL { }; template - inline void fillConnectedModuleArrayExplicit(struct modulesBuffer* modulesBuf, + inline void fillConnectedModuleArrayExplicit(struct ModulesBuffer* modulesBuf, unsigned int nMod, TQueue queue, struct ModuleMetaData& mmd, @@ -133,7 +133,7 @@ namespace SDL { }; template - inline void fillMapArraysExplicit(struct modulesBuffer* modulesBuf, + inline void fillMapArraysExplicit(struct ModulesBuffer* modulesBuf, unsigned int nMod, TQueue queue, struct ModuleMetaData& mmd) { @@ -223,7 +223,7 @@ namespace SDL { uint16_t& nModules, uint16_t& nLowerModules, unsigned int& nPixels, - std::shared_ptr>& modulesBuf, + std::shared_ptr>& modulesBuf, pixelMap* pixelMapping, const EndcapGeometry* endcapGeometry, const TiltedGeometry* tiltedGeometry, @@ -302,8 +302,8 @@ namespace SDL { r = 0; } else { setDerivedQuantities(detId, layer, ring, rod, module, subdet, side, m_x, m_y, m_z, eta, r); - isInverted = SDL::modules::parseIsInverted(subdet, side, module, layer); - isLower = SDL::modules::parseIsLower(isInverted, detId); + isInverted = SDL::Modules::parseIsInverted(subdet, side, module, layer); + isLower = SDL::Modules::parseIsLower(isInverted, detId); } if (isLower) { index = lowerModuleCounter; @@ -361,7 +361,7 @@ namespace SDL { auto& index = it->second; if (detId != 1) { host_partnerModuleIndices[index] = - mmd.detIdToIndex[SDL::modules::parsePartnerModuleId(detId, host_isLower[index], host_isInverted[index])]; + mmd.detIdToIndex[SDL::Modules::parsePartnerModuleId(detId, host_isLower[index], host_isInverted[index])]; //add drdz and slope importing stuff here! if (host_drdzs[index] == 0) { host_drdzs[index] = host_drdzs[host_partnerModuleIndices[index]]; diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index 9c8228fc9a266..fa524d859af67 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc @@ -160,14 +160,14 @@ 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); + hitsInGPU = new SDL::Hits(); + 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); + rangesInGPU = new SDL::ObjectRanges(); + rangesBuffers = new SDL::ObjectRangesBuffer(nModules_, nLowerModules_, devAcc, queue); rangesInGPU->setData(*rangesBuffers); } @@ -281,8 +281,8 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitIndi nTotalMDs += N_MAX_PIXEL_MD_PER_MODULES; - mdsInGPU = new SDL::miniDoublets(); - miniDoubletsBuffers = new SDL::miniDoubletsBuffer(nTotalMDs, nLowerModules_, devAcc, queue); + mdsInGPU = new SDL::MiniDoublets(); + miniDoubletsBuffers = new SDL::MiniDoubletsBuffer(nTotalMDs, nLowerModules_, devAcc, queue); mdsInGPU->setData(*miniDoubletsBuffers); alpaka::memcpy(queue, miniDoubletsBuffers->nMemoryLocations_buf, nTotalMDs_view); @@ -314,9 +314,9 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitIndi nTotalSegments += N_MAX_PIXEL_SEGMENTS_PER_MODULE; - segmentsInGPU = new SDL::segments(); + segmentsInGPU = new SDL::Segments(); segmentsBuffers = - new SDL::segmentsBuffer(nTotalSegments, nLowerModules_, 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); @@ -427,8 +427,8 @@ void SDL::Event::createMiniDoublets() { nTotalMDs += N_MAX_PIXEL_MD_PER_MODULES; if (mdsInGPU == nullptr) { - mdsInGPU = new SDL::miniDoublets(); - miniDoubletsBuffers = new SDL::miniDoubletsBuffer(nTotalMDs, nLowerModules_, devAcc, queue); + mdsInGPU = new SDL::MiniDoublets(); + miniDoubletsBuffers = new SDL::MiniDoubletsBuffer(nTotalMDs, nLowerModules_, devAcc, queue); mdsInGPU->setData(*miniDoubletsBuffers); } @@ -471,9 +471,9 @@ void SDL::Event::createMiniDoublets() { void SDL::Event::createSegmentsWithModuleMap() { if (segmentsInGPU == nullptr) { - segmentsInGPU = new SDL::segments(); + segmentsInGPU = new SDL::Segments(); segmentsBuffers = - new SDL::segmentsBuffer(nTotalSegments, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); + new SDL::SegmentsBuffer(nTotalSegments, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); segmentsInGPU->setData(*segmentsBuffers); } @@ -536,9 +536,9 @@ void SDL::Event::createTriplets() { alpaka::memcpy(queue, maxTriplets_buf, rangesBuffers->device_nTotalTrips_buf); alpaka::wait(queue); - tripletsInGPU = new SDL::triplets(); + 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); @@ -624,8 +624,8 @@ void SDL::Event::createTriplets() { void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_triplets) { if (trackCandidatesInGPU == nullptr) { - trackCandidatesInGPU = new SDL::trackCandidates(); - trackCandidatesBuffers = new SDL::trackCandidatesBuffer( + trackCandidatesInGPU = new SDL::TrackCandidates(); + trackCandidatesBuffers = new SDL::TrackCandidatesBuffer( N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devAcc, queue); trackCandidatesInGPU->setData(*trackCandidatesBuffers); } @@ -789,8 +789,8 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ void SDL::Event::createPixelTriplets() { if (pixelTripletsInGPU == nullptr) { - pixelTripletsInGPU = new SDL::pixelTriplets(); - pixelTripletsBuffers = new SDL::pixelTripletsBuffer(N_MAX_PIXEL_TRIPLETS, devAcc, queue); + pixelTripletsInGPU = new SDL::PixelTriplets(); + pixelTripletsBuffers = new SDL::PixelTripletsBuffer(N_MAX_PIXEL_TRIPLETS, devAcc, queue); pixelTripletsInGPU->setData(*pixelTripletsBuffers); } @@ -934,8 +934,8 @@ void SDL::Event::createQuintuplets() { unsigned int nTotalQuintuplets = *alpaka::getPtrNative(nTotalQuintuplets_buf); if (quintupletsInGPU == nullptr) { - quintupletsInGPU = new SDL::quintuplets(); - quintupletsBuffers = new SDL::quintupletsBuffer(nTotalQuintuplets, nLowerModules_, devAcc, queue); + quintupletsInGPU = new SDL::Quintuplets(); + quintupletsBuffers = new SDL::QuintupletsBuffer(nTotalQuintuplets, nLowerModules_, devAcc, queue); quintupletsInGPU->setData(*quintupletsBuffers); alpaka::memcpy(queue, quintupletsBuffers->nMemoryLocations_buf, nTotalQuintuplets_buf); @@ -1014,13 +1014,13 @@ void SDL::Event::pixelLineSegmentCleaning(bool no_pls_dupclean) { void SDL::Event::createPixelQuintuplets() { if (pixelQuintupletsInGPU == nullptr) { - pixelQuintupletsInGPU = new SDL::pixelQuintuplets(); - pixelQuintupletsBuffers = new SDL::pixelQuintupletsBuffer(N_MAX_PIXEL_QUINTUPLETS, devAcc, queue); + pixelQuintupletsInGPU = new SDL::PixelQuintuplets(); + pixelQuintupletsBuffers = new SDL::PixelQuintupletsBuffer(N_MAX_PIXEL_QUINTUPLETS, devAcc, queue); pixelQuintupletsInGPU->setData(*pixelQuintupletsBuffers); } if (trackCandidatesInGPU == nullptr) { - trackCandidatesInGPU = new SDL::trackCandidates(); - trackCandidatesBuffers = new SDL::trackCandidatesBuffer( + trackCandidatesInGPU = new SDL::TrackCandidates(); + trackCandidatesBuffers = new SDL::TrackCandidatesBuffer( N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devAcc, queue); trackCandidatesInGPU->setData(*trackCandidatesBuffers); } @@ -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); @@ -1500,7 +1500,7 @@ SDL::hitsBuffer* SDL::Event::getHits() //std::shared_ptr should 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; @@ -1515,14 +1515,14 @@ SDL::hitsBuffer* SDL::Event::getHits() //std::shared_ptr should 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); 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; @@ -1532,9 +1532,9 @@ 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 = new SDL::ObjectRangesBuffer(nModules_, nLowerModules_, devHost, queue); rangesInCPU->setData(*rangesInCPU); alpaka::memcpy(queue, rangesInCPU->hitRanges_buf, rangesBuffers->hitRanges_buf); @@ -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); @@ -1555,7 +1555,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; @@ -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); @@ -1578,7 +1578,7 @@ SDL::segmentsBuffer* SDL::Event::getSegments() { unsigned int nMemHost = *alpaka::getPtrNative(nMemHost_buf); segmentsInCPU = - new SDL::segmentsBuffer(nMemHost, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devHost, queue); + new SDL::SegmentsBuffer(nMemHost, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devHost, queue); segmentsInCPU->setData(*segmentsInCPU); *alpaka::getPtrNative(segmentsInCPU->nMemoryLocations_buf) = nMemHost; @@ -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); @@ -1613,7 +1613,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; @@ -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); @@ -1649,7 +1649,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; @@ -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); @@ -1685,7 +1685,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; @@ -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); @@ -1724,7 +1724,7 @@ SDL::pixelQuintupletsBuffer* SDL::Event::getPixelQuintuplets() { 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; @@ -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); @@ -1760,7 +1760,7 @@ SDL::trackCandidatesBuffer* SDL::Event::getTrackCandidates() { alpaka::wait(queue); unsigned int nTrackCanHost = *alpaka::getPtrNative(nTrackCanHost_buf); - trackCandidatesInCPU = new SDL::trackCandidatesBuffer( + trackCandidatesInCPU = new SDL::TrackCandidatesBuffer( N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devHost, queue); trackCandidatesInCPU->setData(*trackCandidatesInCPU); @@ -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); @@ -1798,7 +1798,7 @@ SDL::trackCandidatesBuffer* SDL::Event::getTrackCandidatesInCMSS alpaka::wait(queue); unsigned int nTrackCanHost = *alpaka::getPtrNative(nTrackCanHost_buf); - trackCandidatesInCPU = new SDL::trackCandidatesBuffer( + trackCandidatesInCPU = new SDL::TrackCandidatesBuffer( N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devHost, queue); trackCandidatesInCPU->setData(*trackCandidatesInCPU); @@ -1818,10 +1818,10 @@ SDL::trackCandidatesBuffer* SDL::Event::getTrackCandidatesInCMSS 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_); + 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 3c8dea32612af..281da93d07c9e 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.h +++ b/RecoTracker/LSTCore/src/alpaka/Event.h @@ -46,36 +46,36 @@ namespace SDL { //Device stuff unsigned int nTotalSegments; - struct objectRanges* rangesInGPU; - struct objectRangesBuffer* rangesBuffers; - struct hits* hitsInGPU; - struct hitsBuffer* hitsBuffers; - struct miniDoublets* mdsInGPU; - struct miniDoubletsBuffer* miniDoubletsBuffers; - struct segments* segmentsInGPU; - struct segmentsBuffer* segmentsBuffers; - struct triplets* tripletsInGPU; - struct tripletsBuffer* tripletsBuffers; - struct quintuplets* quintupletsInGPU; - struct quintupletsBuffer* quintupletsBuffers; - struct trackCandidates* trackCandidatesInGPU; - struct trackCandidatesBuffer* trackCandidatesBuffers; - struct pixelTriplets* pixelTripletsInGPU; - struct pixelTripletsBuffer* pixelTripletsBuffers; - struct pixelQuintuplets* pixelQuintupletsInGPU; - struct pixelQuintupletsBuffer* pixelQuintupletsBuffers; + struct ObjectRanges* rangesInGPU; + struct ObjectRangesBuffer* rangesBuffers; + struct Hits* hitsInGPU; + struct HitsBuffer* hitsBuffers; + struct MiniDoublets* mdsInGPU; + struct MiniDoubletsBuffer* miniDoubletsBuffers; + struct Segments* segmentsInGPU; + struct SegmentsBuffer* segmentsBuffers; + struct Triplets* tripletsInGPU; + struct TripletsBuffer* tripletsBuffers; + struct Quintuplets* quintupletsInGPU; + struct QuintupletsBuffer* quintupletsBuffers; + struct TrackCandidates* trackCandidatesInGPU; + struct TrackCandidatesBuffer* trackCandidatesBuffers; + struct PixelTriplets* pixelTripletsInGPU; + struct PixelTripletsBuffer* pixelTripletsBuffers; + struct PixelQuintuplets* pixelQuintupletsInGPU; + 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); @@ -87,7 +87,7 @@ 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_; @@ -188,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/Hit.h b/RecoTracker/LSTCore/src/alpaka/Hit.h index 70c0976cd7480..ed5a074b56895 100644 --- a/RecoTracker/LSTCore/src/alpaka/Hit.h +++ b/RecoTracker/LSTCore/src/alpaka/Hit.h @@ -5,7 +5,7 @@ #include "RecoTracker/LSTCore/interface/Module.h" namespace SDL { - struct hits { + struct Hits { unsigned int* nHits; float* xs; float* ys; @@ -27,31 +27,31 @@ namespace SDL { int8_t* hitRangesnUpper; template - void setData(TBuff& hitsbuf) { - nHits = alpaka::getPtrNative(hitsbuf.nHits_buf); - xs = alpaka::getPtrNative(hitsbuf.xs_buf); - ys = alpaka::getPtrNative(hitsbuf.ys_buf); - zs = alpaka::getPtrNative(hitsbuf.zs_buf); - moduleIndices = alpaka::getPtrNative(hitsbuf.moduleIndices_buf); - idxs = alpaka::getPtrNative(hitsbuf.idxs_buf); - detid = alpaka::getPtrNative(hitsbuf.detid_buf); - rts = alpaka::getPtrNative(hitsbuf.rts_buf); - phis = alpaka::getPtrNative(hitsbuf.phis_buf); - etas = alpaka::getPtrNative(hitsbuf.etas_buf); - highEdgeXs = alpaka::getPtrNative(hitsbuf.highEdgeXs_buf); - highEdgeYs = alpaka::getPtrNative(hitsbuf.highEdgeYs_buf); - lowEdgeXs = alpaka::getPtrNative(hitsbuf.lowEdgeXs_buf); - lowEdgeYs = alpaka::getPtrNative(hitsbuf.lowEdgeYs_buf); - hitRanges = alpaka::getPtrNative(hitsbuf.hitRanges_buf); - hitRangesLower = alpaka::getPtrNative(hitsbuf.hitRangesLower_buf); - hitRangesUpper = alpaka::getPtrNative(hitsbuf.hitRangesUpper_buf); - hitRangesnLower = alpaka::getPtrNative(hitsbuf.hitRangesnLower_buf); - hitRangesnUpper = alpaka::getPtrNative(hitsbuf.hitRangesnUpper_buf); + void setData(TBuff& buf) { + nHits = alpaka::getPtrNative(buf.nHits_buf); + xs = alpaka::getPtrNative(buf.xs_buf); + ys = alpaka::getPtrNative(buf.ys_buf); + zs = alpaka::getPtrNative(buf.zs_buf); + moduleIndices = alpaka::getPtrNative(buf.moduleIndices_buf); + idxs = alpaka::getPtrNative(buf.idxs_buf); + detid = alpaka::getPtrNative(buf.detid_buf); + rts = alpaka::getPtrNative(buf.rts_buf); + phis = alpaka::getPtrNative(buf.phis_buf); + etas = alpaka::getPtrNative(buf.etas_buf); + highEdgeXs = alpaka::getPtrNative(buf.highEdgeXs_buf); + highEdgeYs = alpaka::getPtrNative(buf.highEdgeYs_buf); + lowEdgeXs = alpaka::getPtrNative(buf.lowEdgeXs_buf); + lowEdgeYs = alpaka::getPtrNative(buf.lowEdgeYs_buf); + hitRanges = alpaka::getPtrNative(buf.hitRanges_buf); + hitRangesLower = alpaka::getPtrNative(buf.hitRangesLower_buf); + hitRangesUpper = alpaka::getPtrNative(buf.hitRangesUpper_buf); + hitRangesnLower = alpaka::getPtrNative(buf.hitRangesnLower_buf); + hitRangesnUpper = alpaka::getPtrNative(buf.hitRangesnUpper_buf); } }; template - struct hitsBuffer : hits { + struct HitsBuffer { Buf nHits_buf; Buf xs_buf; Buf ys_buf; @@ -72,8 +72,10 @@ namespace SDL { Buf hitRangesnLower_buf; Buf hitRangesnUpper_buf; + Hits data_; + template - hitsBuffer(unsigned int nModules, unsigned int nMaxHits, TDevAcc const& devAccIn, TQueue& queue) + HitsBuffer(unsigned int nModules, unsigned int nMaxHits, TDevAcc const& devAccIn, TQueue& queue) : nHits_buf(allocBufWrapper(devAccIn, 1u, queue)), xs_buf(allocBufWrapper(devAccIn, nMaxHits, queue)), ys_buf(allocBufWrapper(devAccIn, nMaxHits, queue)), @@ -100,6 +102,9 @@ namespace SDL { alpaka::memset(queue, hitRangesnUpper_buf, 0xff); alpaka::wait(queue); } + + inline Hits const* data() const { return &data_; } + inline void setData(HitsBuffer& buf) { data_.setData(buf); } }; // Alpaka does not support log10 natively right now. @@ -189,8 +194,8 @@ namespace SDL { struct moduleRangesKernel { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::hits hitsInGPU, + struct SDL::Modules modulesInGPU, + struct SDL::Hits hitsInGPU, int const& nLowerModules) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -218,8 +223,8 @@ namespace SDL { unsigned int nEndCapMap, // Number of elements in endcap map const unsigned int* geoMapDetId, // DetId's from endcap map const float* geoMapPhi, // Phi values from endcap map - struct SDL::modules modulesInGPU, - struct SDL::hits hitsInGPU, + struct SDL::Modules modulesInGPU, + struct SDL::Hits hitsInGPU, unsigned int const& nHits) const // Total number of hits in event { auto const globalThreadIdx = alpaka::getIdx(acc); diff --git a/RecoTracker/LSTCore/src/alpaka/Kernels.h b/RecoTracker/LSTCore/src/alpaka/Kernels.h index cd62fc5b8a268..b9072fb288269 100644 --- a/RecoTracker/LSTCore/src/alpaka/Kernels.h +++ b/RecoTracker/LSTCore/src/alpaka/Kernels.h @@ -6,29 +6,30 @@ #include "Hit.h" #include "MiniDoublet.h" +#include "ObjectRanges.h" #include "Segment.h" #include "Triplet.h" #include "Quintuplet.h" #include "PixelTriplet.h" namespace SDL { - ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmQuintupletFromMemory(struct SDL::quintuplets& quintupletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmQuintupletFromMemory(struct SDL::Quintuplets& quintupletsInGPU, unsigned int quintupletIndex, bool secondpass = false) { quintupletsInGPU.isDup[quintupletIndex] |= 1 + secondpass; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelTripletFromMemory(struct SDL::pixelTriplets& pixelTripletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelTripletFromMemory(struct SDL::PixelTriplets& pixelTripletsInGPU, unsigned int pixelTripletIndex) { pixelTripletsInGPU.isDup[pixelTripletIndex] = true; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelQuintupletFromMemory(struct SDL::pixelQuintuplets& pixelQuintupletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelQuintupletFromMemory(struct SDL::PixelQuintuplets& pixelQuintupletsInGPU, unsigned int pixelQuintupletIndex) { pixelQuintupletsInGPU.isDup[pixelQuintupletIndex] = true; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelSegmentFromMemory(struct SDL::segments& segmentsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelSegmentFromMemory(struct SDL::Segments& segmentsInGPU, unsigned int pixelSegmentArrayIndex, bool secondpass = false) { segmentsInGPU.isDup[pixelSegmentArrayIndex] |= 1 + secondpass; @@ -36,7 +37,7 @@ namespace SDL { ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitsT5(unsigned int ix, unsigned int jx, - struct SDL::quintuplets& quintupletsInGPU) { + struct SDL::Quintuplets& quintupletsInGPU) { unsigned int hits1[Params_T5::kHits]; unsigned int hits2[Params_T5::kHits]; @@ -63,7 +64,7 @@ namespace SDL { ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitspT5(unsigned int ix, unsigned int jx, - struct SDL::pixelQuintuplets& pixelQuintupletsInGPU) { + struct SDL::PixelQuintuplets& pixelQuintupletsInGPU) { unsigned int hits1[Params_pT5::kHits]; unsigned int hits2[Params_pT5::kHits]; @@ -90,7 +91,7 @@ namespace SDL { ALPAKA_FN_ACC ALPAKA_FN_INLINE void checkHitspT3(unsigned int ix, unsigned int jx, - struct SDL::pixelTriplets& pixelTripletsInGPU, + struct SDL::PixelTriplets& pixelTripletsInGPU, int* matched) { int phits1[Params_pLS::kHits]; int phits2[Params_pLS::kHits]; @@ -143,9 +144,9 @@ namespace SDL { struct removeDupQuintupletsInGPUAfterBuild { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::quintuplets quintupletsInGPU, - struct SDL::objectRanges rangesInGPU) const { + struct SDL::Modules modulesInGPU, + struct SDL::Quintuplets quintupletsInGPU, + struct SDL::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -193,8 +194,8 @@ namespace SDL { struct removeDupQuintupletsInGPUBeforeTC { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::quintuplets quintupletsInGPU, - struct SDL::objectRanges rangesInGPU) const { + struct SDL::Quintuplets quintupletsInGPU, + struct SDL::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -267,7 +268,7 @@ namespace SDL { struct removeDupPixelTripletsInGPUFromMap { template - ALPAKA_FN_ACC void operator()(TAcc const& acc, struct SDL::pixelTriplets pixelTripletsInGPU) const { + ALPAKA_FN_ACC void operator()(TAcc const& acc, struct SDL::PixelTriplets pixelTripletsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -304,7 +305,7 @@ namespace SDL { struct removeDupPixelQuintupletsInGPUFromMap { template - ALPAKA_FN_ACC void operator()(TAcc const& acc, struct SDL::pixelQuintuplets pixelQuintupletsInGPU) const { + ALPAKA_FN_ACC void operator()(TAcc const& acc, struct SDL::PixelQuintuplets pixelQuintupletsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -332,8 +333,8 @@ namespace SDL { struct checkHitspLS { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::segments segmentsInGPU, + struct SDL::Modules modulesInGPU, + struct SDL::Segments segmentsInGPU, bool secondpass) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); diff --git a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc index 11efa869b12f3..79a80c1a66b9d 100644 --- a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc @@ -255,18 +255,18 @@ void SDL::LST::getOutput(SDL::Event& event) { std::vector tc_seedIdx; std::vector tc_trackCandidateType; - SDL::hitsBuffer& hitsInGPU = (*event.getHitsInCMSSW()); - SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event.getTrackCandidatesInCMSSW()); + SDL::HitsBuffer& hitsInGPU = (*event.getHitsInCMSSW()); + SDL::TrackCandidates const* trackCandidates = event.getTrackCandidatesInCMSSW()->data(); - unsigned int nTrackCandidates = *trackCandidatesInGPU.nTrackCandidates; + unsigned int nTrackCandidates = *trackCandidates->nTrackCandidates; for (unsigned int idx = 0; idx < nTrackCandidates; idx++) { - short trackCandidateType = trackCandidatesInGPU.trackCandidateType[idx]; + short trackCandidateType = trackCandidates->trackCandidateType[idx]; std::vector hit_idx = - getHitIdxs(trackCandidateType, idx, trackCandidatesInGPU.hitIndices, hitsInGPU.idxs); + getHitIdxs(trackCandidateType, idx, trackCandidates->hitIndices, hitsInGPU.data()->idxs); tc_hitIdxs.push_back(hit_idx); tc_len.push_back(hit_idx.size()); - tc_seedIdx.push_back(trackCandidatesInGPU.pixelSeedIndex[idx]); + tc_seedIdx.push_back(trackCandidates->pixelSeedIndex[idx]); tc_trackCandidateType.push_back(trackCandidateType); } @@ -429,4 +429,4 @@ void SDL::LST::run(Queue& queue, 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 a0f5998f643b6..623f95a437e00 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -6,9 +6,10 @@ #include "RecoTracker/LSTCore/interface/EndcapGeometry.h" #include "Hit.h" +#include "ObjectRanges.h" namespace SDL { - struct miniDoublets { + struct MiniDoublets { unsigned int* nMemoryLocations; unsigned int* anchorHitIndices; @@ -53,49 +54,49 @@ namespace SDL { float* outerLowEdgeY; template - void setData(TBuf& mdsbuf) { - nMemoryLocations = alpaka::getPtrNative(mdsbuf.nMemoryLocations_buf); - anchorHitIndices = alpaka::getPtrNative(mdsbuf.anchorHitIndices_buf); - outerHitIndices = alpaka::getPtrNative(mdsbuf.outerHitIndices_buf); - moduleIndices = alpaka::getPtrNative(mdsbuf.moduleIndices_buf); - nMDs = alpaka::getPtrNative(mdsbuf.nMDs_buf); - totOccupancyMDs = alpaka::getPtrNative(mdsbuf.totOccupancyMDs_buf); - dphichanges = alpaka::getPtrNative(mdsbuf.dphichanges_buf); - dzs = alpaka::getPtrNative(mdsbuf.dzs_buf); - dphis = alpaka::getPtrNative(mdsbuf.dphis_buf); - shiftedXs = alpaka::getPtrNative(mdsbuf.shiftedXs_buf); - shiftedYs = alpaka::getPtrNative(mdsbuf.shiftedYs_buf); - shiftedZs = alpaka::getPtrNative(mdsbuf.shiftedZs_buf); - noShiftedDzs = alpaka::getPtrNative(mdsbuf.noShiftedDzs_buf); - noShiftedDphis = alpaka::getPtrNative(mdsbuf.noShiftedDphis_buf); - noShiftedDphiChanges = alpaka::getPtrNative(mdsbuf.noShiftedDphiChanges_buf); - anchorX = alpaka::getPtrNative(mdsbuf.anchorX_buf); - anchorY = alpaka::getPtrNative(mdsbuf.anchorY_buf); - anchorZ = alpaka::getPtrNative(mdsbuf.anchorZ_buf); - anchorRt = alpaka::getPtrNative(mdsbuf.anchorRt_buf); - anchorPhi = alpaka::getPtrNative(mdsbuf.anchorPhi_buf); - anchorEta = alpaka::getPtrNative(mdsbuf.anchorEta_buf); - anchorHighEdgeX = alpaka::getPtrNative(mdsbuf.anchorHighEdgeX_buf); - anchorHighEdgeY = alpaka::getPtrNative(mdsbuf.anchorHighEdgeY_buf); - anchorLowEdgeX = alpaka::getPtrNative(mdsbuf.anchorLowEdgeX_buf); - anchorLowEdgeY = alpaka::getPtrNative(mdsbuf.anchorLowEdgeY_buf); - outerX = alpaka::getPtrNative(mdsbuf.outerX_buf); - outerY = alpaka::getPtrNative(mdsbuf.outerY_buf); - outerZ = alpaka::getPtrNative(mdsbuf.outerZ_buf); - outerRt = alpaka::getPtrNative(mdsbuf.outerRt_buf); - outerPhi = alpaka::getPtrNative(mdsbuf.outerPhi_buf); - outerEta = alpaka::getPtrNative(mdsbuf.outerEta_buf); - outerHighEdgeX = alpaka::getPtrNative(mdsbuf.outerHighEdgeX_buf); - outerHighEdgeY = alpaka::getPtrNative(mdsbuf.outerHighEdgeY_buf); - outerLowEdgeX = alpaka::getPtrNative(mdsbuf.outerLowEdgeX_buf); - outerLowEdgeY = alpaka::getPtrNative(mdsbuf.outerLowEdgeY_buf); - anchorLowEdgePhi = alpaka::getPtrNative(mdsbuf.anchorLowEdgePhi_buf); - anchorHighEdgePhi = alpaka::getPtrNative(mdsbuf.anchorHighEdgePhi_buf); + void setData(TBuf& buf) { + nMemoryLocations = alpaka::getPtrNative(buf.nMemoryLocations_buf); + anchorHitIndices = alpaka::getPtrNative(buf.anchorHitIndices_buf); + outerHitIndices = alpaka::getPtrNative(buf.outerHitIndices_buf); + moduleIndices = alpaka::getPtrNative(buf.moduleIndices_buf); + nMDs = alpaka::getPtrNative(buf.nMDs_buf); + totOccupancyMDs = alpaka::getPtrNative(buf.totOccupancyMDs_buf); + dphichanges = alpaka::getPtrNative(buf.dphichanges_buf); + dzs = alpaka::getPtrNative(buf.dzs_buf); + dphis = alpaka::getPtrNative(buf.dphis_buf); + shiftedXs = alpaka::getPtrNative(buf.shiftedXs_buf); + shiftedYs = alpaka::getPtrNative(buf.shiftedYs_buf); + shiftedZs = alpaka::getPtrNative(buf.shiftedZs_buf); + noShiftedDzs = alpaka::getPtrNative(buf.noShiftedDzs_buf); + noShiftedDphis = alpaka::getPtrNative(buf.noShiftedDphis_buf); + noShiftedDphiChanges = alpaka::getPtrNative(buf.noShiftedDphiChanges_buf); + anchorX = alpaka::getPtrNative(buf.anchorX_buf); + anchorY = alpaka::getPtrNative(buf.anchorY_buf); + anchorZ = alpaka::getPtrNative(buf.anchorZ_buf); + anchorRt = alpaka::getPtrNative(buf.anchorRt_buf); + anchorPhi = alpaka::getPtrNative(buf.anchorPhi_buf); + anchorEta = alpaka::getPtrNative(buf.anchorEta_buf); + anchorHighEdgeX = alpaka::getPtrNative(buf.anchorHighEdgeX_buf); + anchorHighEdgeY = alpaka::getPtrNative(buf.anchorHighEdgeY_buf); + anchorLowEdgeX = alpaka::getPtrNative(buf.anchorLowEdgeX_buf); + anchorLowEdgeY = alpaka::getPtrNative(buf.anchorLowEdgeY_buf); + outerX = alpaka::getPtrNative(buf.outerX_buf); + outerY = alpaka::getPtrNative(buf.outerY_buf); + outerZ = alpaka::getPtrNative(buf.outerZ_buf); + outerRt = alpaka::getPtrNative(buf.outerRt_buf); + outerPhi = alpaka::getPtrNative(buf.outerPhi_buf); + outerEta = alpaka::getPtrNative(buf.outerEta_buf); + outerHighEdgeX = alpaka::getPtrNative(buf.outerHighEdgeX_buf); + outerHighEdgeY = alpaka::getPtrNative(buf.outerHighEdgeY_buf); + outerLowEdgeX = alpaka::getPtrNative(buf.outerLowEdgeX_buf); + outerLowEdgeY = alpaka::getPtrNative(buf.outerLowEdgeY_buf); + anchorLowEdgePhi = alpaka::getPtrNative(buf.anchorLowEdgePhi_buf); + anchorHighEdgePhi = alpaka::getPtrNative(buf.anchorHighEdgePhi_buf); } }; template - struct miniDoubletsBuffer : miniDoublets { + struct MiniDoubletsBuffer { Buf nMemoryLocations_buf; Buf anchorHitIndices_buf; @@ -139,8 +140,10 @@ namespace SDL { Buf outerLowEdgeX_buf; Buf outerLowEdgeY_buf; + MiniDoublets data_; + template - miniDoubletsBuffer(unsigned int nMemoryLoc, uint16_t nLowerModules, TDevAcc const& devAccIn, TQueue& queue) + MiniDoubletsBuffer(unsigned int nMemoryLoc, uint16_t nLowerModules, TDevAcc const& devAccIn, TQueue& queue) : nMemoryLocations_buf(allocBufWrapper(devAccIn, 1, queue)), anchorHitIndices_buf(allocBufWrapper(devAccIn, nMemoryLoc, queue)), outerHitIndices_buf(allocBufWrapper(devAccIn, nMemoryLoc, queue)), @@ -182,13 +185,16 @@ namespace SDL { alpaka::memset(queue, totOccupancyMDs_buf, 0u); alpaka::wait(queue); } + + inline MiniDoublets const* data() const { return &data_; } + inline void setData(MiniDoubletsBuffer& buf) { data_.setData(buf); } }; template ALPAKA_FN_ACC ALPAKA_FN_INLINE void addMDToMemory(TAcc const& acc, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::hits& hitsInGPU, - struct SDL::modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Hits& hitsInGPU, + struct SDL::Modules& modulesInGPU, unsigned int lowerHitIdx, unsigned int upperHitIdx, uint16_t& lowerModuleIdx, @@ -260,7 +266,7 @@ namespace SDL { mdsInGPU.outerLowEdgeY[idx] = hitsInGPU.lowEdgeYs[outerHitIndex]; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules(struct SDL::modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules(struct SDL::Modules& modulesInGPU, uint16_t& moduleIndex) { // The "tighter" tilted modules are the subset of tilted modules that have smaller spacing // This is the same as what was previously considered as"isNormalTiltedModules" @@ -281,7 +287,7 @@ namespace SDL { return false; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize(struct SDL::modules& modulesInGPU, uint16_t& moduleIndex) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize(struct SDL::Modules& modulesInGPU, uint16_t& moduleIndex) { float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; @@ -335,7 +341,7 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float dPhiThreshold(TAcc const& acc, float rt, - struct SDL::modules& modulesInGPU, + struct SDL::Modules& modulesInGPU, uint16_t& moduleIndex, float dPhi = 0, float dz = 0) { @@ -397,7 +403,7 @@ namespace SDL { template ALPAKA_FN_INLINE ALPAKA_FN_ACC void shiftStripHits(TAcc const& acc, - struct SDL::modules& modulesInGPU, + struct SDL::Modules& modulesInGPU, uint16_t& lowerModuleIndex, uint16_t& upperModuleIndex, unsigned int lowerHitIndex, @@ -563,7 +569,7 @@ namespace SDL { template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgo(TAcc const& acc, - struct SDL::modules& modulesInGPU, + struct SDL::Modules& modulesInGPU, uint16_t& lowerModuleIndex, uint16_t& upperModuleIndex, unsigned int lowerHitIndex, @@ -638,7 +644,7 @@ namespace SDL { template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgoBarrel(TAcc const& acc, - struct SDL::modules& modulesInGPU, + struct SDL::Modules& modulesInGPU, uint16_t& lowerModuleIndex, uint16_t& upperModuleIndex, unsigned int lowerHitIndex, @@ -769,7 +775,7 @@ namespace SDL { template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgoEndcap(TAcc const& acc, - struct SDL::modules& modulesInGPU, + struct SDL::Modules& modulesInGPU, uint16_t& lowerModuleIndex, uint16_t& upperModuleIndex, unsigned int lowerHitIndex, @@ -883,10 +889,10 @@ namespace SDL { struct createMiniDoubletsInGPUv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::hits hitsInGPU, - struct SDL::miniDoublets mdsInGPU, - struct SDL::objectRanges rangesInGPU) const { + struct SDL::Modules modulesInGPU, + struct SDL::Hits hitsInGPU, + struct SDL::MiniDoublets mdsInGPU, + struct SDL::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -981,8 +987,8 @@ namespace SDL { struct createMDArrayRangesGPU { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::objectRanges rangesInGPU) const { + struct SDL::Modules modulesInGPU, + struct SDL::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -1071,10 +1077,10 @@ namespace SDL { struct addMiniDoubletRangesToEventExplicit { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::miniDoublets mdsInGPU, - struct SDL::objectRanges rangesInGPU, - struct SDL::hits hitsInGPU) const { + struct SDL::Modules modulesInGPU, + struct SDL::MiniDoublets mdsInGPU, + struct SDL::ObjectRanges rangesInGPU, + struct SDL::Hits hitsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h index cc86d60b54af0..8a45d1f8872d5 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h @@ -14,10 +14,10 @@ namespace T5DNN { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float runInference(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, - struct SDL::triplets& tripletsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, + struct SDL::Triplets& tripletsInGPU, const float* xVec, const float* yVec, const unsigned int* mdIndices, diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index 3f73fb53f717b..bc933469aa022 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -8,11 +8,12 @@ #include "Segment.h" #include "MiniDoublet.h" #include "Hit.h" +#include "ObjectRanges.h" #include "Quintuplet.h" namespace SDL { // One pixel segment, one outer tracker triplet! - struct pixelTriplets { + struct PixelTriplets { unsigned int* pixelSegmentIndices; unsigned int* tripletIndices; unsigned int* nPixelTriplets; @@ -41,35 +42,35 @@ namespace SDL { FPX* centerY; template - void setData(TBuff& pixelTripletsBuffer) { - pixelSegmentIndices = alpaka::getPtrNative(pixelTripletsBuffer.pixelSegmentIndices_buf); - tripletIndices = alpaka::getPtrNative(pixelTripletsBuffer.tripletIndices_buf); - nPixelTriplets = alpaka::getPtrNative(pixelTripletsBuffer.nPixelTriplets_buf); - totOccupancyPixelTriplets = alpaka::getPtrNative(pixelTripletsBuffer.totOccupancyPixelTriplets_buf); - pixelRadius = alpaka::getPtrNative(pixelTripletsBuffer.pixelRadius_buf); - tripletRadius = alpaka::getPtrNative(pixelTripletsBuffer.tripletRadius_buf); - pt = alpaka::getPtrNative(pixelTripletsBuffer.pt_buf); - eta = alpaka::getPtrNative(pixelTripletsBuffer.eta_buf); - phi = alpaka::getPtrNative(pixelTripletsBuffer.phi_buf); - eta_pix = alpaka::getPtrNative(pixelTripletsBuffer.eta_pix_buf); - phi_pix = alpaka::getPtrNative(pixelTripletsBuffer.phi_pix_buf); - score = alpaka::getPtrNative(pixelTripletsBuffer.score_buf); - isDup = alpaka::getPtrNative(pixelTripletsBuffer.isDup_buf); - partOfPT5 = alpaka::getPtrNative(pixelTripletsBuffer.partOfPT5_buf); - logicalLayers = alpaka::getPtrNative(pixelTripletsBuffer.logicalLayers_buf); - hitIndices = alpaka::getPtrNative(pixelTripletsBuffer.hitIndices_buf); - lowerModuleIndices = alpaka::getPtrNative(pixelTripletsBuffer.lowerModuleIndices_buf); - centerX = alpaka::getPtrNative(pixelTripletsBuffer.centerX_buf); - centerY = alpaka::getPtrNative(pixelTripletsBuffer.centerY_buf); - pixelRadiusError = alpaka::getPtrNative(pixelTripletsBuffer.pixelRadiusError_buf); - rPhiChiSquared = alpaka::getPtrNative(pixelTripletsBuffer.rPhiChiSquared_buf); - rPhiChiSquaredInwards = alpaka::getPtrNative(pixelTripletsBuffer.rPhiChiSquaredInwards_buf); - rzChiSquared = alpaka::getPtrNative(pixelTripletsBuffer.rzChiSquared_buf); + void setData(TBuff& buf) { + pixelSegmentIndices = alpaka::getPtrNative(buf.pixelSegmentIndices_buf); + tripletIndices = alpaka::getPtrNative(buf.tripletIndices_buf); + nPixelTriplets = alpaka::getPtrNative(buf.nPixelTriplets_buf); + totOccupancyPixelTriplets = alpaka::getPtrNative(buf.totOccupancyPixelTriplets_buf); + pixelRadius = alpaka::getPtrNative(buf.pixelRadius_buf); + tripletRadius = alpaka::getPtrNative(buf.tripletRadius_buf); + pt = alpaka::getPtrNative(buf.pt_buf); + eta = alpaka::getPtrNative(buf.eta_buf); + phi = alpaka::getPtrNative(buf.phi_buf); + eta_pix = alpaka::getPtrNative(buf.eta_pix_buf); + phi_pix = alpaka::getPtrNative(buf.phi_pix_buf); + score = alpaka::getPtrNative(buf.score_buf); + isDup = alpaka::getPtrNative(buf.isDup_buf); + partOfPT5 = alpaka::getPtrNative(buf.partOfPT5_buf); + logicalLayers = alpaka::getPtrNative(buf.logicalLayers_buf); + hitIndices = alpaka::getPtrNative(buf.hitIndices_buf); + lowerModuleIndices = alpaka::getPtrNative(buf.lowerModuleIndices_buf); + centerX = alpaka::getPtrNative(buf.centerX_buf); + centerY = alpaka::getPtrNative(buf.centerY_buf); + pixelRadiusError = alpaka::getPtrNative(buf.pixelRadiusError_buf); + rPhiChiSquared = alpaka::getPtrNative(buf.rPhiChiSquared_buf); + rPhiChiSquaredInwards = alpaka::getPtrNative(buf.rPhiChiSquaredInwards_buf); + rzChiSquared = alpaka::getPtrNative(buf.rzChiSquared_buf); } }; template - struct pixelTripletsBuffer : pixelTriplets { + struct PixelTripletsBuffer { Buf pixelSegmentIndices_buf; Buf tripletIndices_buf; Buf nPixelTriplets_buf; @@ -94,8 +95,10 @@ namespace SDL { Buf rPhiChiSquaredInwards_buf; Buf rzChiSquared_buf; + PixelTriplets data_; + template - pixelTripletsBuffer(unsigned int maxPixelTriplets, TDevAcc const& devAccIn, TQueue& queue) + PixelTripletsBuffer(unsigned int maxPixelTriplets, TDevAcc const& devAccIn, TQueue& queue) : pixelSegmentIndices_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), tripletIndices_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), nPixelTriplets_buf(allocBufWrapper(devAccIn, 1, queue)), @@ -124,13 +127,16 @@ namespace SDL { alpaka::memset(queue, partOfPT5_buf, false); alpaka::wait(queue); } + + inline PixelTriplets const* data() const { return &data_; } + inline void setData(PixelTripletsBuffer& buf) { data_.setData(buf); } }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelTripletToMemory(struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, - struct SDL::triplets& tripletsInGPU, - struct SDL::pixelTriplets& pixelTripletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelTripletToMemory(struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, + struct SDL::Triplets& tripletsInGPU, + struct SDL::PixelTriplets& pixelTripletsInGPU, unsigned int pixelSegmentIndex, unsigned int tripletIndex, float pixelRadius, @@ -208,10 +214,10 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runPixelTrackletDefaultAlgopT3(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::objectRanges& rangesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::ObjectRanges& rangesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, uint16_t& pixelLowerModuleIndex, uint16_t& outerInnerLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -317,7 +323,7 @@ namespace SDL { return false; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RZChiSquaredCuts(struct SDL::modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RZChiSquaredCuts(struct SDL::Modules& modulesInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, @@ -420,7 +426,7 @@ namespace SDL { //TODO: merge this one and the pT5 function later into a single function template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT3RPhiChiSquared(TAcc const& acc, - struct SDL::modules& modulesInGPU, + struct SDL::Modules& modulesInGPU, uint16_t* lowerModuleIndices, float& g, float& f, @@ -490,7 +496,7 @@ namespace SDL { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT3RPhiChiSquaredInwards( - struct SDL::modules& modulesInGPU, float& g, float& f, float& r, float* xPix, float* yPix) { + struct SDL::Modules& modulesInGPU, float& g, float& f, float& r, float* xPix, float* yPix) { float residual = (xPix[0] - g) * (xPix[0] - g) + (yPix[0] - f) * (yPix[0] - f) - r * r; float chiSquared = residual * residual; residual = (xPix[1] - g) * (xPix[1] - g) + (yPix[1] - f) * (yPix[1] - f) - r * r; @@ -501,7 +507,7 @@ namespace SDL { }; //90pc threshold - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredCuts(struct SDL::modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredCuts(struct SDL::Modules& modulesInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, @@ -548,7 +554,7 @@ namespace SDL { return true; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredInwardsCuts(struct SDL::modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredInwardsCuts(struct SDL::Modules& modulesInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, @@ -717,7 +723,7 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRadiusCriterion(TAcc const& acc, - struct SDL::modules const& modulesInGPU, + struct SDL::Modules const& modulesInGPU, float const& pixelRadius, float const& pixelRadiusError, float const& tripletRadius, @@ -737,7 +743,7 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT3RZChiSquared(TAcc const& acc, - struct SDL::modules const& modulesInGPU, + struct SDL::Modules const& modulesInGPU, const uint16_t* lowerModuleIndices, const float* rtPix, const float* xPix, @@ -826,11 +832,11 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runPixelTripletDefaultAlgo(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::objectRanges& rangesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, - struct SDL::triplets& tripletsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::ObjectRanges& rangesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, + struct SDL::Triplets& tripletsInGPU, unsigned int& pixelSegmentIndex, unsigned int tripletIndex, float& pixelRadius, @@ -1023,12 +1029,12 @@ namespace SDL { struct createPixelTripletsInGPUFromMapv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::objectRanges rangesInGPU, - struct SDL::miniDoublets mdsInGPU, - struct SDL::segments segmentsInGPU, - struct SDL::triplets tripletsInGPU, - struct SDL::pixelTriplets pixelTripletsInGPU, + struct SDL::Modules modulesInGPU, + struct SDL::ObjectRanges rangesInGPU, + struct SDL::MiniDoublets mdsInGPU, + struct SDL::Segments segmentsInGPU, + struct SDL::Triplets tripletsInGPU, + struct SDL::PixelTriplets pixelTripletsInGPU, unsigned int* connectedPixelSize, unsigned int* connectedPixelIndex, unsigned int nPixelSegments) const { @@ -1259,10 +1265,10 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runTripletDefaultAlgoPPBB(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::objectRanges& rangesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::ObjectRanges& rangesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, uint16_t& pixelModuleIndex, uint16_t& outerInnerLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -1538,10 +1544,10 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runTripletDefaultAlgoPPEE(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::objectRanges& rangesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::ObjectRanges& rangesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, uint16_t& pixelModuleIndex, uint16_t& outerInnerLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -1838,7 +1844,7 @@ namespace SDL { #include "PixelTriplet.h" namespace SDL { - struct pixelQuintuplets { + struct PixelQuintuplets { unsigned int* pixelIndices; unsigned int* T5Indices; unsigned int* nPixelQuintuplets; @@ -1859,30 +1865,30 @@ namespace SDL { float* rPhiChiSquaredInwards; template - void setData(TBuff& pixelQuintupletsBuffer) { - pixelIndices = alpaka::getPtrNative(pixelQuintupletsBuffer.pixelIndices_buf); - T5Indices = alpaka::getPtrNative(pixelQuintupletsBuffer.T5Indices_buf); - nPixelQuintuplets = alpaka::getPtrNative(pixelQuintupletsBuffer.nPixelQuintuplets_buf); - totOccupancyPixelQuintuplets = alpaka::getPtrNative(pixelQuintupletsBuffer.totOccupancyPixelQuintuplets_buf); - isDup = alpaka::getPtrNative(pixelQuintupletsBuffer.isDup_buf); - score = alpaka::getPtrNative(pixelQuintupletsBuffer.score_buf); - eta = alpaka::getPtrNative(pixelQuintupletsBuffer.eta_buf); - phi = alpaka::getPtrNative(pixelQuintupletsBuffer.phi_buf); - logicalLayers = alpaka::getPtrNative(pixelQuintupletsBuffer.logicalLayers_buf); - hitIndices = alpaka::getPtrNative(pixelQuintupletsBuffer.hitIndices_buf); - lowerModuleIndices = alpaka::getPtrNative(pixelQuintupletsBuffer.lowerModuleIndices_buf); - pixelRadius = alpaka::getPtrNative(pixelQuintupletsBuffer.pixelRadius_buf); - quintupletRadius = alpaka::getPtrNative(pixelQuintupletsBuffer.quintupletRadius_buf); - centerX = alpaka::getPtrNative(pixelQuintupletsBuffer.centerX_buf); - centerY = alpaka::getPtrNative(pixelQuintupletsBuffer.centerY_buf); - rzChiSquared = alpaka::getPtrNative(pixelQuintupletsBuffer.rzChiSquared_buf); - rPhiChiSquared = alpaka::getPtrNative(pixelQuintupletsBuffer.rPhiChiSquared_buf); - rPhiChiSquaredInwards = alpaka::getPtrNative(pixelQuintupletsBuffer.rPhiChiSquaredInwards_buf); + void setData(TBuff& buf) { + pixelIndices = alpaka::getPtrNative(buf.pixelIndices_buf); + T5Indices = alpaka::getPtrNative(buf.T5Indices_buf); + nPixelQuintuplets = alpaka::getPtrNative(buf.nPixelQuintuplets_buf); + totOccupancyPixelQuintuplets = alpaka::getPtrNative(buf.totOccupancyPixelQuintuplets_buf); + isDup = alpaka::getPtrNative(buf.isDup_buf); + score = alpaka::getPtrNative(buf.score_buf); + eta = alpaka::getPtrNative(buf.eta_buf); + phi = alpaka::getPtrNative(buf.phi_buf); + logicalLayers = alpaka::getPtrNative(buf.logicalLayers_buf); + hitIndices = alpaka::getPtrNative(buf.hitIndices_buf); + lowerModuleIndices = alpaka::getPtrNative(buf.lowerModuleIndices_buf); + pixelRadius = alpaka::getPtrNative(buf.pixelRadius_buf); + quintupletRadius = alpaka::getPtrNative(buf.quintupletRadius_buf); + centerX = alpaka::getPtrNative(buf.centerX_buf); + centerY = alpaka::getPtrNative(buf.centerY_buf); + rzChiSquared = alpaka::getPtrNative(buf.rzChiSquared_buf); + rPhiChiSquared = alpaka::getPtrNative(buf.rPhiChiSquared_buf); + rPhiChiSquaredInwards = alpaka::getPtrNative(buf.rPhiChiSquaredInwards_buf); } }; template - struct pixelQuintupletsBuffer : pixelQuintuplets { + struct PixelQuintupletsBuffer { Buf pixelIndices_buf; Buf T5Indices_buf; Buf nPixelQuintuplets_buf; @@ -1902,8 +1908,10 @@ namespace SDL { Buf rPhiChiSquared_buf; Buf rPhiChiSquaredInwards_buf; + PixelQuintuplets data_; + template - pixelQuintupletsBuffer(unsigned int maxPixelQuintuplets, TDevAcc const& devAccIn, TQueue& queue) + PixelQuintupletsBuffer(unsigned int maxPixelQuintuplets, TDevAcc const& devAccIn, TQueue& queue) : pixelIndices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), T5Indices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), nPixelQuintuplets_buf(allocBufWrapper(devAccIn, 1, queue)), @@ -1926,13 +1934,16 @@ namespace SDL { alpaka::memset(queue, totOccupancyPixelQuintuplets_buf, 0u); alpaka::wait(queue); } + + inline PixelQuintuplets const* data() const { return &data_; } + inline void setData(PixelQuintupletsBuffer& buf) { data_.setData(buf); } }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelQuintupletToMemory(struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, - struct SDL::quintuplets& quintupletsInGPU, - struct SDL::pixelQuintuplets& pixelQuintupletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelQuintupletToMemory(struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, + struct SDL::Quintuplets& quintupletsInGPU, + struct SDL::PixelQuintuplets& pixelQuintupletsInGPU, unsigned int pixelIndex, unsigned int T5Index, unsigned int pixelQuintupletIndex, @@ -2024,7 +2035,7 @@ namespace SDL { pixelQuintupletsInGPU.rPhiChiSquaredInwards[pixelQuintupletIndex] = rPhiChiSquaredInwards; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RZChiSquaredCuts(struct SDL::modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RZChiSquaredCuts(struct SDL::Modules& modulesInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, @@ -2114,7 +2125,7 @@ namespace SDL { return true; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredCuts(struct SDL::modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredCuts(struct SDL::Modules& modulesInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, @@ -2252,7 +2263,7 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE void computeSigmasForRegression_pT5(TAcc const& acc, - SDL::modules& modulesInGPU, + SDL::Modules& modulesInGPU, const uint16_t* lowerModuleIndices, float* delta1, float* delta2, @@ -2338,7 +2349,7 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RPhiChiSquared(TAcc const& acc, - struct SDL::modules& modulesInGPU, + struct SDL::Modules& modulesInGPU, uint16_t* lowerModuleIndices, float& g, float& f, @@ -2360,7 +2371,7 @@ namespace SDL { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RPhiChiSquaredInwards( - struct SDL::modules& modulesInGPU, float& g, float& f, float& r, float* xPix, float* yPix) { + struct SDL::Modules& modulesInGPU, float& g, float& f, float& r, float* xPix, float* yPix) { /* Using the computed regression center and radius, compute the chi squared for the pixels */ @@ -2374,7 +2385,7 @@ namespace SDL { return chiSquared; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredInwardsCuts(struct SDL::modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredInwardsCuts(struct SDL::Modules& modulesInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, @@ -2466,12 +2477,12 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runPixelQuintupletDefaultAlgo(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::objectRanges& rangesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, - struct SDL::triplets& tripletsInGPU, - struct SDL::quintuplets& quintupletsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::ObjectRanges& rangesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, + struct SDL::Triplets& tripletsInGPU, + struct SDL::Quintuplets& quintupletsInGPU, unsigned int& pixelSegmentIndex, unsigned int& quintupletIndex, float& rzChiSquared, @@ -2614,7 +2625,7 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RZChiSquared(TAcc const& acc, - struct SDL::modules& modulesInGPU, + struct SDL::Modules& modulesInGPU, uint16_t* lowerModuleIndices, float* rtPix, float* zPix, @@ -2659,16 +2670,16 @@ namespace SDL { struct createPixelQuintupletsInGPUFromMapv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::miniDoublets mdsInGPU, - struct SDL::segments segmentsInGPU, - struct SDL::triplets tripletsInGPU, - struct SDL::quintuplets quintupletsInGPU, - struct SDL::pixelQuintuplets pixelQuintupletsInGPU, + struct SDL::Modules modulesInGPU, + struct SDL::MiniDoublets mdsInGPU, + struct SDL::Segments segmentsInGPU, + struct SDL::Triplets tripletsInGPU, + struct SDL::Quintuplets quintupletsInGPU, + struct SDL::PixelQuintuplets pixelQuintupletsInGPU, unsigned int* connectedPixelSize, unsigned int* connectedPixelIndex, unsigned int nPixelSegments, - struct SDL::objectRanges rangesInGPU) const { + struct SDL::ObjectRanges rangesInGPU) const { auto const globalBlockIdx = alpaka::getIdx(acc); auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridBlockExtent = alpaka::getWorkDiv(acc); diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index b5b21a52c8ae7..26813dbcf4126 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -9,10 +9,11 @@ #include "Segment.h" #include "MiniDoublet.h" #include "Hit.h" +#include "ObjectRanges.h" #include "Triplet.h" namespace SDL { - struct quintuplets { + struct Quintuplets { unsigned int* tripletIndices; uint16_t* lowerModuleIndices; unsigned int* nQuintuplets; @@ -42,36 +43,36 @@ namespace SDL { float* nonAnchorChiSquared; template - void setData(TBuff& quintupletsbuf) { - tripletIndices = alpaka::getPtrNative(quintupletsbuf.tripletIndices_buf); - lowerModuleIndices = alpaka::getPtrNative(quintupletsbuf.lowerModuleIndices_buf); - nQuintuplets = alpaka::getPtrNative(quintupletsbuf.nQuintuplets_buf); - totOccupancyQuintuplets = alpaka::getPtrNative(quintupletsbuf.totOccupancyQuintuplets_buf); - nMemoryLocations = alpaka::getPtrNative(quintupletsbuf.nMemoryLocations_buf); - innerRadius = alpaka::getPtrNative(quintupletsbuf.innerRadius_buf); - bridgeRadius = alpaka::getPtrNative(quintupletsbuf.bridgeRadius_buf); - outerRadius = alpaka::getPtrNative(quintupletsbuf.outerRadius_buf); - pt = alpaka::getPtrNative(quintupletsbuf.pt_buf); - eta = alpaka::getPtrNative(quintupletsbuf.eta_buf); - phi = alpaka::getPtrNative(quintupletsbuf.phi_buf); - score_rphisum = alpaka::getPtrNative(quintupletsbuf.score_rphisum_buf); - layer = alpaka::getPtrNative(quintupletsbuf.layer_buf); - isDup = alpaka::getPtrNative(quintupletsbuf.isDup_buf); - TightCutFlag = alpaka::getPtrNative(quintupletsbuf.TightCutFlag_buf); - partOfPT5 = alpaka::getPtrNative(quintupletsbuf.partOfPT5_buf); - regressionRadius = alpaka::getPtrNative(quintupletsbuf.regressionRadius_buf); - regressionG = alpaka::getPtrNative(quintupletsbuf.regressionG_buf); - regressionF = alpaka::getPtrNative(quintupletsbuf.regressionF_buf); - logicalLayers = alpaka::getPtrNative(quintupletsbuf.logicalLayers_buf); - hitIndices = alpaka::getPtrNative(quintupletsbuf.hitIndices_buf); - rzChiSquared = alpaka::getPtrNative(quintupletsbuf.rzChiSquared_buf); - chiSquared = alpaka::getPtrNative(quintupletsbuf.chiSquared_buf); - nonAnchorChiSquared = alpaka::getPtrNative(quintupletsbuf.nonAnchorChiSquared_buf); + void setData(TBuff& buf) { + tripletIndices = alpaka::getPtrNative(buf.tripletIndices_buf); + lowerModuleIndices = alpaka::getPtrNative(buf.lowerModuleIndices_buf); + nQuintuplets = alpaka::getPtrNative(buf.nQuintuplets_buf); + totOccupancyQuintuplets = alpaka::getPtrNative(buf.totOccupancyQuintuplets_buf); + nMemoryLocations = alpaka::getPtrNative(buf.nMemoryLocations_buf); + innerRadius = alpaka::getPtrNative(buf.innerRadius_buf); + bridgeRadius = alpaka::getPtrNative(buf.bridgeRadius_buf); + outerRadius = alpaka::getPtrNative(buf.outerRadius_buf); + pt = alpaka::getPtrNative(buf.pt_buf); + eta = alpaka::getPtrNative(buf.eta_buf); + phi = alpaka::getPtrNative(buf.phi_buf); + score_rphisum = alpaka::getPtrNative(buf.score_rphisum_buf); + layer = alpaka::getPtrNative(buf.layer_buf); + isDup = alpaka::getPtrNative(buf.isDup_buf); + TightCutFlag = alpaka::getPtrNative(buf.TightCutFlag_buf); + partOfPT5 = alpaka::getPtrNative(buf.partOfPT5_buf); + regressionRadius = alpaka::getPtrNative(buf.regressionRadius_buf); + regressionG = alpaka::getPtrNative(buf.regressionG_buf); + regressionF = alpaka::getPtrNative(buf.regressionF_buf); + logicalLayers = alpaka::getPtrNative(buf.logicalLayers_buf); + hitIndices = alpaka::getPtrNative(buf.hitIndices_buf); + rzChiSquared = alpaka::getPtrNative(buf.rzChiSquared_buf); + chiSquared = alpaka::getPtrNative(buf.chiSquared_buf); + nonAnchorChiSquared = alpaka::getPtrNative(buf.nonAnchorChiSquared_buf); } }; template - struct quintupletsBuffer : quintuplets { + struct QuintupletsBuffer { Buf tripletIndices_buf; Buf lowerModuleIndices_buf; Buf nQuintuplets_buf; @@ -100,8 +101,10 @@ namespace SDL { Buf chiSquared_buf; Buf nonAnchorChiSquared_buf; + Quintuplets data_; + template - quintupletsBuffer(unsigned int nTotalQuintuplets, unsigned int nLowerModules, TDevAcc const& devAccIn, TQueue& queue) + 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)), nQuintuplets_buf(allocBufWrapper(devAccIn, nLowerModules, queue)), @@ -133,6 +136,9 @@ namespace SDL { alpaka::memset(queue, partOfPT5_buf, false); alpaka::wait(queue); } + + inline Quintuplets const* data() const { return &data_; } + inline void setData(QuintupletsBuffer& buf) { data_.setData(buf); } }; ALPAKA_FN_ACC ALPAKA_FN_INLINE bool checkIntervalOverlap(const float& firstMin, @@ -142,8 +148,8 @@ namespace SDL { return ((firstMin <= secondMin) && (secondMin < firstMax)) || ((secondMin < firstMin) && (firstMin < secondMax)); }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addQuintupletToMemory(struct SDL::triplets& tripletsInGPU, - struct SDL::quintuplets& quintupletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addQuintupletToMemory(struct SDL::Triplets& tripletsInGPU, + struct SDL::Quintuplets& quintupletsInGPU, unsigned int innerTripletIndex, unsigned int outerTripletIndex, uint16_t& lowerModule1, @@ -225,7 +231,7 @@ namespace SDL { }; //90% constraint - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passChiSquaredConstraint(struct SDL::modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passChiSquaredConstraint(struct SDL::Modules& modulesInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, @@ -310,8 +316,8 @@ namespace SDL { //bounds can be found at http://uaf-10.t2.ucsd.edu/~bsathian/SDL/T5_RZFix/t5_rz_thresholds.txt template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passT5RZConstraint(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, @@ -744,8 +750,8 @@ namespace SDL { }; template - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool T5HasCommonMiniDoublet(struct SDL::triplets& tripletsInGPU, - struct SDL::segments& segmentsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool T5HasCommonMiniDoublet(struct SDL::Triplets& tripletsInGPU, + struct SDL::Segments& segmentsInGPU, unsigned int innerTripletIndex, unsigned int outerTripletIndex) { unsigned int innerOuterSegmentIndex = tripletsInGPU.segmentIndices[2 * innerTripletIndex + 1]; @@ -1143,7 +1149,7 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE void computeSigmasForRegression(TAcc const& acc, - SDL::modules& modulesInGPU, + SDL::Modules& modulesInGPU, const uint16_t* lowerModuleIndices, float* delta1, float* delta2, @@ -1471,9 +1477,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runQuintupletDefaultAlgoBBBB(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& innerOuterLowerModuleIndex, uint16_t& outerInnerLowerModuleIndex, @@ -1740,9 +1746,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runQuintupletDefaultAlgoBBEE(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& innerOuterLowerModuleIndex, uint16_t& outerInnerLowerModuleIndex, @@ -2010,9 +2016,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runQuintupletDefaultAlgoEEEE(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& innerOuterLowerModuleIndex, uint16_t& outerInnerLowerModuleIndex, @@ -2266,9 +2272,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runQuintupletAlgoSelector(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& innerOuterLowerModuleIndex, uint16_t& outerInnerLowerModuleIndex, @@ -2473,10 +2479,10 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runQuintupletDefaultAlgo(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, - struct SDL::triplets& tripletsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, + struct SDL::Triplets& tripletsInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, @@ -2965,12 +2971,12 @@ namespace SDL { struct createQuintupletsInGPUv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::miniDoublets mdsInGPU, - struct SDL::segments segmentsInGPU, - struct SDL::triplets tripletsInGPU, - struct SDL::quintuplets quintupletsInGPU, - struct SDL::objectRanges rangesInGPU, + struct SDL::Modules modulesInGPU, + struct SDL::MiniDoublets mdsInGPU, + struct SDL::Segments segmentsInGPU, + struct SDL::Triplets tripletsInGPU, + struct SDL::Quintuplets quintupletsInGPU, + struct SDL::ObjectRanges rangesInGPU, uint16_t nEligibleT5Modules) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -3094,9 +3100,9 @@ namespace SDL { struct createEligibleModulesListForQuintupletsGPU { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::triplets tripletsInGPU, - struct SDL::objectRanges rangesInGPU) const { + struct SDL::Modules modulesInGPU, + struct SDL::Triplets tripletsInGPU, + struct SDL::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -3192,9 +3198,9 @@ namespace SDL { struct addQuintupletRangesToEventExplicit { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::quintuplets quintupletsInGPU, - struct SDL::objectRanges rangesInGPU) const { + struct SDL::Modules modulesInGPU, + struct SDL::Quintuplets quintupletsInGPU, + struct SDL::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index 114d29df698fa..5e25f8815e58d 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -7,9 +7,10 @@ #include "MiniDoublet.h" #include "Hit.h" +#include "ObjectRanges.h" namespace SDL { - struct segments { + struct Segments { FPX* dPhis; FPX* dPhiMins; FPX* dPhiMaxs; @@ -46,46 +47,46 @@ namespace SDL { float* circleRadius; template - void setData(TBuff& segmentsbuf) { - dPhis = alpaka::getPtrNative(segmentsbuf.dPhis_buf); - dPhiMins = alpaka::getPtrNative(segmentsbuf.dPhiMins_buf); - dPhiMaxs = alpaka::getPtrNative(segmentsbuf.dPhiMaxs_buf); - dPhiChanges = alpaka::getPtrNative(segmentsbuf.dPhiChanges_buf); - dPhiChangeMins = alpaka::getPtrNative(segmentsbuf.dPhiChangeMins_buf); - dPhiChangeMaxs = alpaka::getPtrNative(segmentsbuf.dPhiChangeMaxs_buf); - innerLowerModuleIndices = alpaka::getPtrNative(segmentsbuf.innerLowerModuleIndices_buf); - outerLowerModuleIndices = alpaka::getPtrNative(segmentsbuf.outerLowerModuleIndices_buf); - seedIdx = alpaka::getPtrNative(segmentsbuf.seedIdx_buf); - mdIndices = alpaka::getPtrNative(segmentsbuf.mdIndices_buf); - nMemoryLocations = alpaka::getPtrNative(segmentsbuf.nMemoryLocations_buf); - innerMiniDoubletAnchorHitIndices = alpaka::getPtrNative(segmentsbuf.innerMiniDoubletAnchorHitIndices_buf); - outerMiniDoubletAnchorHitIndices = alpaka::getPtrNative(segmentsbuf.outerMiniDoubletAnchorHitIndices_buf); - charge = alpaka::getPtrNative(segmentsbuf.charge_buf); - superbin = alpaka::getPtrNative(segmentsbuf.superbin_buf); - nSegments = alpaka::getPtrNative(segmentsbuf.nSegments_buf); - totOccupancySegments = alpaka::getPtrNative(segmentsbuf.totOccupancySegments_buf); - pLSHitsIdxs = alpaka::getPtrNative(segmentsbuf.pLSHitsIdxs_buf); - pixelType = alpaka::getPtrNative(segmentsbuf.pixelType_buf); - isQuad = alpaka::getPtrNative(segmentsbuf.isQuad_buf); - isDup = alpaka::getPtrNative(segmentsbuf.isDup_buf); - partOfPT5 = alpaka::getPtrNative(segmentsbuf.partOfPT5_buf); - ptIn = alpaka::getPtrNative(segmentsbuf.ptIn_buf); - ptErr = alpaka::getPtrNative(segmentsbuf.ptErr_buf); - px = alpaka::getPtrNative(segmentsbuf.px_buf); - py = alpaka::getPtrNative(segmentsbuf.py_buf); - pz = alpaka::getPtrNative(segmentsbuf.pz_buf); - etaErr = alpaka::getPtrNative(segmentsbuf.etaErr_buf); - eta = alpaka::getPtrNative(segmentsbuf.eta_buf); - phi = alpaka::getPtrNative(segmentsbuf.phi_buf); - score = alpaka::getPtrNative(segmentsbuf.score_buf); - circleCenterX = alpaka::getPtrNative(segmentsbuf.circleCenterX_buf); - circleCenterY = alpaka::getPtrNative(segmentsbuf.circleCenterY_buf); - circleRadius = alpaka::getPtrNative(segmentsbuf.circleRadius_buf); + void setData(TBuff& buf) { + dPhis = alpaka::getPtrNative(buf.dPhis_buf); + dPhiMins = alpaka::getPtrNative(buf.dPhiMins_buf); + dPhiMaxs = alpaka::getPtrNative(buf.dPhiMaxs_buf); + dPhiChanges = alpaka::getPtrNative(buf.dPhiChanges_buf); + dPhiChangeMins = alpaka::getPtrNative(buf.dPhiChangeMins_buf); + dPhiChangeMaxs = alpaka::getPtrNative(buf.dPhiChangeMaxs_buf); + innerLowerModuleIndices = alpaka::getPtrNative(buf.innerLowerModuleIndices_buf); + outerLowerModuleIndices = alpaka::getPtrNative(buf.outerLowerModuleIndices_buf); + seedIdx = alpaka::getPtrNative(buf.seedIdx_buf); + mdIndices = alpaka::getPtrNative(buf.mdIndices_buf); + nMemoryLocations = alpaka::getPtrNative(buf.nMemoryLocations_buf); + innerMiniDoubletAnchorHitIndices = alpaka::getPtrNative(buf.innerMiniDoubletAnchorHitIndices_buf); + outerMiniDoubletAnchorHitIndices = alpaka::getPtrNative(buf.outerMiniDoubletAnchorHitIndices_buf); + charge = alpaka::getPtrNative(buf.charge_buf); + superbin = alpaka::getPtrNative(buf.superbin_buf); + nSegments = alpaka::getPtrNative(buf.nSegments_buf); + totOccupancySegments = alpaka::getPtrNative(buf.totOccupancySegments_buf); + pLSHitsIdxs = alpaka::getPtrNative(buf.pLSHitsIdxs_buf); + pixelType = alpaka::getPtrNative(buf.pixelType_buf); + isQuad = alpaka::getPtrNative(buf.isQuad_buf); + isDup = alpaka::getPtrNative(buf.isDup_buf); + partOfPT5 = alpaka::getPtrNative(buf.partOfPT5_buf); + ptIn = alpaka::getPtrNative(buf.ptIn_buf); + ptErr = alpaka::getPtrNative(buf.ptErr_buf); + px = alpaka::getPtrNative(buf.px_buf); + py = alpaka::getPtrNative(buf.py_buf); + pz = alpaka::getPtrNative(buf.pz_buf); + etaErr = alpaka::getPtrNative(buf.etaErr_buf); + eta = alpaka::getPtrNative(buf.eta_buf); + phi = alpaka::getPtrNative(buf.phi_buf); + score = alpaka::getPtrNative(buf.score_buf); + circleCenterX = alpaka::getPtrNative(buf.circleCenterX_buf); + circleCenterY = alpaka::getPtrNative(buf.circleCenterY_buf); + circleRadius = alpaka::getPtrNative(buf.circleRadius_buf); } }; template - struct segmentsBuffer : segments { + struct SegmentsBuffer { Buf dPhis_buf; Buf dPhiMins_buf; Buf dPhiMaxs_buf; @@ -121,8 +122,10 @@ namespace SDL { Buf circleCenterY_buf; Buf circleRadius_buf; + Segments data_; + template - segmentsBuffer(unsigned int nMemoryLocationsIn, + SegmentsBuffer(unsigned int nMemoryLocationsIn, uint16_t nLowerModules, unsigned int maxPixelSegments, TDevAcc const& devAccIn, @@ -167,9 +170,12 @@ namespace SDL { alpaka::memset(queue, pLSHitsIdxs_buf, 0u); alpaka::wait(queue); } + + inline Segments const* data() const { return &data_; } + inline void setData(SegmentsBuffer& buf) { data_.setData(buf); } }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules_seg(struct SDL::modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules_seg(struct SDL::Modules& modulesInGPU, unsigned int moduleIndex) { // The "tighter" tilted modules are the subset of tilted modules that have smaller spacing // This is the same as what was previously considered as"isNormalTiltedModules" @@ -223,7 +229,7 @@ namespace SDL { return moduleSeparation; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg(struct SDL::modules& modulesInGPU, unsigned int moduleIndex) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg(struct SDL::Modules& modulesInGPU, unsigned int moduleIndex) { static constexpr float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; static constexpr float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; static constexpr float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; @@ -258,8 +264,8 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE void dAlphaThreshold(TAcc const& acc, float* dAlphaThresholdValues, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, float& xIn, float& yIn, float& zIn, @@ -350,7 +356,7 @@ namespace SDL { dAlphaThresholdValues[2] = dAlpha_Bfield + alpaka::math::sqrt(acc, dAlpha_res * dAlpha_res + sdMuls * sdMuls); }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addSegmentToMemory(struct SDL::segments& segmentsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addSegmentToMemory(struct SDL::Segments& segmentsInGPU, unsigned int lowerMDIndex, unsigned int upperMDIndex, uint16_t innerLowerModuleIndex, @@ -385,8 +391,8 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelSegmentToMemory(TAcc const& acc, - struct SDL::segments& segmentsInGPU, - struct SDL::miniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, + struct SDL::MiniDoublets& mdsInGPU, unsigned int innerMDIndex, unsigned int outerMDIndex, uint16_t pixelModuleIndex, @@ -448,8 +454,8 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgoBarrel(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, uint16_t& innerLowerModuleIndex, uint16_t& outerLowerModuleIndex, unsigned int& innerMDIndex, @@ -551,8 +557,8 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgoEndcap(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, uint16_t& innerLowerModuleIndex, uint16_t& outerLowerModuleIndex, unsigned int& innerMDIndex, @@ -681,8 +687,8 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgo(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, uint16_t& innerLowerModuleIndex, uint16_t& outerLowerModuleIndex, unsigned int& innerMDIndex, @@ -774,10 +780,10 @@ namespace SDL { struct createSegmentsInGPUv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::miniDoublets mdsInGPU, - struct SDL::segments segmentsInGPU, - struct SDL::objectRanges rangesInGPU) const { + struct SDL::Modules modulesInGPU, + struct SDL::MiniDoublets mdsInGPU, + struct SDL::Segments segmentsInGPU, + struct SDL::ObjectRanges rangesInGPU) const { auto const globalBlockIdx = alpaka::getIdx(acc); auto const blockThreadIdx = alpaka::getIdx(acc); auto const gridBlockExtent = alpaka::getWorkDiv(acc); @@ -886,9 +892,9 @@ namespace SDL { struct createSegmentArrayRanges { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::objectRanges rangesInGPU, - struct SDL::miniDoublets mdsInGPU) const { + struct SDL::Modules modulesInGPU, + struct SDL::ObjectRanges rangesInGPU, + struct SDL::MiniDoublets mdsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -984,9 +990,9 @@ namespace SDL { struct addSegmentRangesToEventExplicit { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::segments segmentsInGPU, - struct SDL::objectRanges rangesInGPU) const { + struct SDL::Modules modulesInGPU, + struct SDL::Segments segmentsInGPU, + struct SDL::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -1005,11 +1011,11 @@ namespace SDL { struct addPixelSegmentToEventKernel { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::objectRanges rangesInGPU, - struct SDL::hits hitsInGPU, - struct SDL::miniDoublets mdsInGPU, - struct SDL::segments segmentsInGPU, + struct SDL::Modules modulesInGPU, + struct SDL::ObjectRanges rangesInGPU, + struct SDL::Hits hitsInGPU, + struct SDL::MiniDoublets mdsInGPU, + struct SDL::Segments segmentsInGPU, unsigned int* hitIndices0, unsigned int* hitIndices1, unsigned int* hitIndices2, diff --git a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h index 080abee755f96..96a459c449a50 100644 --- a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h +++ b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h @@ -10,9 +10,10 @@ #include "PixelTriplet.h" #include "Quintuplet.h" #include "Hit.h" +#include "ObjectRanges.h" namespace SDL { - struct trackCandidates { + struct TrackCandidates { short* trackCandidateType; // 4-T5 5-pT3 7-pT5 8-pLS unsigned int* directObjectIndices; // Will hold direct indices to each type containers unsigned int* objectIndices; // Will hold tracklet and triplet indices - check the type!! @@ -32,29 +33,29 @@ namespace SDL { FPX* radius; template - void setData(TBuff& trackCandidatesbuf) { - trackCandidateType = alpaka::getPtrNative(trackCandidatesbuf.trackCandidateType_buf); - directObjectIndices = alpaka::getPtrNative(trackCandidatesbuf.directObjectIndices_buf); - objectIndices = alpaka::getPtrNative(trackCandidatesbuf.objectIndices_buf); - nTrackCandidates = alpaka::getPtrNative(trackCandidatesbuf.nTrackCandidates_buf); - nTrackCandidatespT3 = alpaka::getPtrNative(trackCandidatesbuf.nTrackCandidatespT3_buf); - nTrackCandidatespT5 = alpaka::getPtrNative(trackCandidatesbuf.nTrackCandidatespT5_buf); - nTrackCandidatespLS = alpaka::getPtrNative(trackCandidatesbuf.nTrackCandidatespLS_buf); - nTrackCandidatesT5 = alpaka::getPtrNative(trackCandidatesbuf.nTrackCandidatesT5_buf); - - logicalLayers = alpaka::getPtrNative(trackCandidatesbuf.logicalLayers_buf); - hitIndices = alpaka::getPtrNative(trackCandidatesbuf.hitIndices_buf); - pixelSeedIndex = alpaka::getPtrNative(trackCandidatesbuf.pixelSeedIndex_buf); - lowerModuleIndices = alpaka::getPtrNative(trackCandidatesbuf.lowerModuleIndices_buf); - - centerX = alpaka::getPtrNative(trackCandidatesbuf.centerX_buf); - centerY = alpaka::getPtrNative(trackCandidatesbuf.centerY_buf); - radius = alpaka::getPtrNative(trackCandidatesbuf.radius_buf); + void setData(TBuff& buf) { + trackCandidateType = alpaka::getPtrNative(buf.trackCandidateType_buf); + directObjectIndices = alpaka::getPtrNative(buf.directObjectIndices_buf); + objectIndices = alpaka::getPtrNative(buf.objectIndices_buf); + nTrackCandidates = alpaka::getPtrNative(buf.nTrackCandidates_buf); + nTrackCandidatespT3 = alpaka::getPtrNative(buf.nTrackCandidatespT3_buf); + nTrackCandidatespT5 = alpaka::getPtrNative(buf.nTrackCandidatespT5_buf); + nTrackCandidatespLS = alpaka::getPtrNative(buf.nTrackCandidatespLS_buf); + nTrackCandidatesT5 = alpaka::getPtrNative(buf.nTrackCandidatesT5_buf); + + logicalLayers = alpaka::getPtrNative(buf.logicalLayers_buf); + hitIndices = alpaka::getPtrNative(buf.hitIndices_buf); + pixelSeedIndex = alpaka::getPtrNative(buf.pixelSeedIndex_buf); + lowerModuleIndices = alpaka::getPtrNative(buf.lowerModuleIndices_buf); + + centerX = alpaka::getPtrNative(buf.centerX_buf); + centerY = alpaka::getPtrNative(buf.centerY_buf); + radius = alpaka::getPtrNative(buf.radius_buf); } }; template - struct trackCandidatesBuffer : trackCandidates { + struct TrackCandidatesBuffer { Buf trackCandidateType_buf; Buf directObjectIndices_buf; Buf objectIndices_buf; @@ -73,8 +74,10 @@ namespace SDL { Buf centerY_buf; Buf radius_buf; + TrackCandidates data_; + template - trackCandidatesBuffer(unsigned int maxTrackCandidates, TDevAcc const& devAccIn, TQueue& queue) + TrackCandidatesBuffer(unsigned int maxTrackCandidates, TDevAcc const& devAccIn, TQueue& queue) : trackCandidateType_buf(allocBufWrapper(devAccIn, maxTrackCandidates, queue)), directObjectIndices_buf(allocBufWrapper(devAccIn, maxTrackCandidates, queue)), objectIndices_buf(allocBufWrapper(devAccIn, 2 * maxTrackCandidates, queue)), @@ -101,9 +104,12 @@ namespace SDL { alpaka::memset(queue, pixelSeedIndex_buf, 0); alpaka::wait(queue); } + + inline TrackCandidates const* data() const { return &data_; } + inline void setData(TrackCandidatesBuffer& buf) { data_.setData(buf); } }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addpLSTrackCandidateToMemory(struct SDL::trackCandidates& trackCandidatesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addpLSTrackCandidateToMemory(struct SDL::TrackCandidates& trackCandidatesInGPU, unsigned int trackletIndex, unsigned int trackCandidateIndex, uint4 hitIndices, @@ -122,7 +128,7 @@ namespace SDL { trackCandidatesInGPU.hitIndices[Params_pT5::kHits * trackCandidateIndex + 3] = hitIndices.w; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTrackCandidateToMemory(struct SDL::trackCandidates& trackCandidatesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTrackCandidateToMemory(struct SDL::TrackCandidates& trackCandidatesInGPU, short trackCandidateType, unsigned int innerTrackletIndex, unsigned int outerTrackletIndex, @@ -161,9 +167,9 @@ namespace SDL { ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkPixelHits(unsigned int ix, unsigned int jx, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, - struct SDL::hits& hitsInGPU) { + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, + struct SDL::Hits& hitsInGPU) { int phits1[Params_pLS::kHits]; int phits2[Params_pLS::kHits]; @@ -202,11 +208,11 @@ namespace SDL { struct crossCleanpT3 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::objectRanges rangesInGPU, - struct SDL::pixelTriplets pixelTripletsInGPU, - struct SDL::segments segmentsInGPU, - struct SDL::pixelQuintuplets pixelQuintupletsInGPU) const { + struct SDL::Modules modulesInGPU, + struct SDL::ObjectRanges rangesInGPU, + struct SDL::PixelTriplets pixelTripletsInGPU, + struct SDL::Segments segmentsInGPU, + struct SDL::PixelQuintuplets pixelQuintupletsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -243,11 +249,11 @@ namespace SDL { struct crossCleanT5 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::quintuplets quintupletsInGPU, - struct SDL::pixelQuintuplets pixelQuintupletsInGPU, - struct SDL::pixelTriplets pixelTripletsInGPU, - struct SDL::objectRanges rangesInGPU) const { + struct SDL::Modules modulesInGPU, + struct SDL::Quintuplets quintupletsInGPU, + struct SDL::PixelQuintuplets pixelQuintupletsInGPU, + struct SDL::PixelTriplets pixelTripletsInGPU, + struct SDL::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -300,14 +306,14 @@ namespace SDL { struct crossCleanpLS { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::objectRanges rangesInGPU, - struct SDL::pixelTriplets pixelTripletsInGPU, - struct SDL::trackCandidates trackCandidatesInGPU, - struct SDL::segments segmentsInGPU, - struct SDL::miniDoublets mdsInGPU, - struct SDL::hits hitsInGPU, - struct SDL::quintuplets quintupletsInGPU) const { + struct SDL::Modules modulesInGPU, + struct SDL::ObjectRanges rangesInGPU, + struct SDL::PixelTriplets pixelTripletsInGPU, + struct SDL::TrackCandidates trackCandidatesInGPU, + struct SDL::Segments segmentsInGPU, + struct SDL::MiniDoublets mdsInGPU, + struct SDL::Hits hitsInGPU, + struct SDL::Quintuplets quintupletsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -382,10 +388,10 @@ namespace SDL { template ALPAKA_FN_ACC void operator()(TAcc const& acc, uint16_t nLowerModules, - struct SDL::pixelTriplets pixelTripletsInGPU, - struct SDL::trackCandidates trackCandidatesInGPU, - struct SDL::segments segmentsInGPU, - struct SDL::objectRanges rangesInGPU) const { + struct SDL::PixelTriplets pixelTripletsInGPU, + struct SDL::TrackCandidates trackCandidatesInGPU, + struct SDL::Segments segmentsInGPU, + struct SDL::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -434,9 +440,9 @@ namespace SDL { template ALPAKA_FN_ACC void operator()(TAcc const& acc, uint16_t nLowerModules, - struct SDL::quintuplets quintupletsInGPU, - struct SDL::trackCandidates trackCandidatesInGPU, - struct SDL::objectRanges rangesInGPU) const { + struct SDL::Quintuplets quintupletsInGPU, + struct SDL::TrackCandidates trackCandidatesInGPU, + struct SDL::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -488,8 +494,8 @@ namespace SDL { template ALPAKA_FN_ACC void operator()(TAcc const& acc, uint16_t nLowerModules, - struct SDL::trackCandidates trackCandidatesInGPU, - struct SDL::segments segmentsInGPU, + struct SDL::TrackCandidates trackCandidatesInGPU, + struct SDL::Segments segmentsInGPU, bool tc_pls_triplets) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -527,10 +533,10 @@ namespace SDL { template ALPAKA_FN_ACC void operator()(TAcc const& acc, uint16_t nLowerModules, - struct SDL::pixelQuintuplets pixelQuintupletsInGPU, - struct SDL::trackCandidates trackCandidatesInGPU, - struct SDL::segments segmentsInGPU, - struct SDL::objectRanges rangesInGPU) const { + struct SDL::PixelQuintuplets pixelQuintupletsInGPU, + struct SDL::TrackCandidates trackCandidatesInGPU, + struct SDL::Segments segmentsInGPU, + struct SDL::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index 4b1308dbc9067..3362fdaa97991 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -7,9 +7,10 @@ #include "Segment.h" #include "MiniDoublet.h" #include "Hit.h" +#include "ObjectRanges.h" namespace SDL { - struct triplets { + struct Triplets { unsigned int* segmentIndices; uint16_t* lowerModuleIndices; //3 of them now unsigned int* nTriplets; @@ -41,40 +42,40 @@ namespace SDL { float* rtHi; #endif template - void setData(TBuff& tripletsbuf) { - segmentIndices = alpaka::getPtrNative(tripletsbuf.segmentIndices_buf); - lowerModuleIndices = alpaka::getPtrNative(tripletsbuf.lowerModuleIndices_buf); - nTriplets = alpaka::getPtrNative(tripletsbuf.nTriplets_buf); - totOccupancyTriplets = alpaka::getPtrNative(tripletsbuf.totOccupancyTriplets_buf); - nMemoryLocations = alpaka::getPtrNative(tripletsbuf.nMemoryLocations_buf); - logicalLayers = alpaka::getPtrNative(tripletsbuf.logicalLayers_buf); - hitIndices = alpaka::getPtrNative(tripletsbuf.hitIndices_buf); - betaIn = alpaka::getPtrNative(tripletsbuf.betaIn_buf); - circleRadius = alpaka::getPtrNative(tripletsbuf.circleRadius_buf); - circleCenterX = alpaka::getPtrNative(tripletsbuf.circleCenterX_buf); - circleCenterY = alpaka::getPtrNative(tripletsbuf.circleCenterY_buf); - partOfPT5 = alpaka::getPtrNative(tripletsbuf.partOfPT5_buf); - partOfT5 = alpaka::getPtrNative(tripletsbuf.partOfT5_buf); - partOfPT3 = alpaka::getPtrNative(tripletsbuf.partOfPT3_buf); + void setData(TBuff& buf) { + segmentIndices = alpaka::getPtrNative(buf.segmentIndices_buf); + lowerModuleIndices = alpaka::getPtrNative(buf.lowerModuleIndices_buf); + nTriplets = alpaka::getPtrNative(buf.nTriplets_buf); + totOccupancyTriplets = alpaka::getPtrNative(buf.totOccupancyTriplets_buf); + nMemoryLocations = alpaka::getPtrNative(buf.nMemoryLocations_buf); + logicalLayers = alpaka::getPtrNative(buf.logicalLayers_buf); + hitIndices = alpaka::getPtrNative(buf.hitIndices_buf); + betaIn = alpaka::getPtrNative(buf.betaIn_buf); + circleRadius = alpaka::getPtrNative(buf.circleRadius_buf); + circleCenterX = alpaka::getPtrNative(buf.circleCenterX_buf); + circleCenterY = alpaka::getPtrNative(buf.circleCenterY_buf); + partOfPT5 = alpaka::getPtrNative(buf.partOfPT5_buf); + partOfT5 = alpaka::getPtrNative(buf.partOfT5_buf); + partOfPT3 = alpaka::getPtrNative(buf.partOfPT3_buf); #ifdef CUT_VALUE_DEBUG - zOut = alpaka::getPtrNative(tripletsbuf.zOut_buf); - rtOut = alpaka::getPtrNative(tripletsbuf.rtOut_buf); - deltaPhiPos = alpaka::getPtrNative(tripletsbuf.deltaPhiPos_buf); - deltaPhi = alpaka::getPtrNative(tripletsbuf.deltaPhi_buf); - zLo = alpaka::getPtrNative(tripletsbuf.zLo_buf); - zHi = alpaka::getPtrNative(tripletsbuf.zHi_buf); - zLoPointed = alpaka::getPtrNative(tripletsbuf.zLoPointed_buf); - zHiPointed = alpaka::getPtrNative(tripletsbuf.zHiPointed_buf); - sdlCut = alpaka::getPtrNative(tripletsbuf.sdlCut_buf); - betaInCut = alpaka::getPtrNative(tripletsbuf.betaInCut_buf); - rtLo = alpaka::getPtrNative(tripletsbuf.rtLo_buf); - rtHi = alpaka::getPtrNative(tripletsbuf.rtHi_buf); + zOut = alpaka::getPtrNative(buf.zOut_buf); + rtOut = alpaka::getPtrNative(buf.rtOut_buf); + deltaPhiPos = alpaka::getPtrNative(buf.deltaPhiPos_buf); + deltaPhi = alpaka::getPtrNative(buf.deltaPhi_buf); + zLo = alpaka::getPtrNative(buf.zLo_buf); + zHi = alpaka::getPtrNative(buf.zHi_buf); + zLoPointed = alpaka::getPtrNative(buf.zLoPointed_buf); + zHiPointed = alpaka::getPtrNative(buf.zHiPointed_buf); + sdlCut = alpaka::getPtrNative(buf.sdlCut_buf); + betaInCut = alpaka::getPtrNative(buf.betaInCut_buf); + rtLo = alpaka::getPtrNative(buf.rtLo_buf); + rtHi = alpaka::getPtrNative(buf.rtHi_buf); #endif } }; template - struct tripletsBuffer : triplets { + struct TripletsBuffer { Buf segmentIndices_buf; Buf lowerModuleIndices_buf; Buf nTriplets_buf; @@ -105,8 +106,10 @@ namespace SDL { Buf rtHi_buf; #endif + Triplets data_; + template - tripletsBuffer(unsigned int maxTriplets, unsigned int nLowerModules, TDevAcc const& devAccIn, TQueue& queue) + 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)), nTriplets_buf(allocBufWrapper(devAccIn, nLowerModules, queue)), @@ -143,13 +146,16 @@ namespace SDL { alpaka::memset(queue, partOfT5_buf, false); alpaka::memset(queue, partOfPT3_buf, false); } + + inline Triplets const* data() const { return &data_; } + inline void setData(TripletsBuffer& buf) { data_.setData(buf); } }; #ifdef CUT_VALUE_DEBUG - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTripletToMemory(struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, - struct SDL::triplets& tripletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTripletToMemory(struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, + struct SDL::Triplets& tripletsInGPU, unsigned int& innerSegmentIndex, unsigned int& outerSegmentIndex, uint16_t& innerInnerLowerModuleIndex, @@ -173,10 +179,10 @@ namespace SDL { float& betaInCut, unsigned int& tripletIndex) #else - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTripletToMemory(struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, - struct SDL::triplets& tripletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTripletToMemory(struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, + struct SDL::Triplets& tripletsInGPU, unsigned int& innerSegmentIndex, unsigned int& outerSegmentIndex, uint16_t& innerInnerLowerModuleIndex, @@ -234,9 +240,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRZConstraint(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& middleLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -294,9 +300,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPointingConstraintBBB(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& middleLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -393,9 +399,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPointingConstraintBBE(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& middleLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -514,9 +520,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPointingConstraintEEE(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& middleLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -637,9 +643,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPointingConstraint(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& middleLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -774,9 +780,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runTripletConstraintsAndAlgo(TAcc const& acc, - struct SDL::modules& modulesInGPU, - struct SDL::miniDoublets& mdsInGPU, - struct SDL::segments& segmentsInGPU, + struct SDL::Modules& modulesInGPU, + struct SDL::MiniDoublets& mdsInGPU, + struct SDL::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& middleLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -850,11 +856,11 @@ namespace SDL { struct createTripletsInGPUv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::miniDoublets mdsInGPU, - struct SDL::segments segmentsInGPU, - struct SDL::triplets tripletsInGPU, - struct SDL::objectRanges rangesInGPU, + struct SDL::Modules modulesInGPU, + struct SDL::MiniDoublets mdsInGPU, + struct SDL::Segments segmentsInGPU, + struct SDL::Triplets tripletsInGPU, + struct SDL::ObjectRanges rangesInGPU, uint16_t* index_gpu, uint16_t nonZeroModules) const { auto const globalThreadIdx = alpaka::getIdx(acc); @@ -983,9 +989,9 @@ namespace SDL { struct createTripletArrayRanges { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::objectRanges rangesInGPU, - struct SDL::segments segmentsInGPU) const { + struct SDL::Modules modulesInGPU, + struct SDL::ObjectRanges rangesInGPU, + struct SDL::Segments segmentsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -1080,9 +1086,9 @@ namespace SDL { struct addTripletRangesToEventExplicit { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::modules modulesInGPU, - struct SDL::triplets tripletsInGPU, - struct SDL::objectRanges rangesInGPU) const { + struct SDL::Modules modulesInGPU, + struct SDL::Triplets tripletsInGPU, + struct SDL::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); diff --git a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc index 55080b6857d37..faccf6b7a25c3 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc +++ b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc @@ -9,12 +9,12 @@ using namespace ALPAKA_ACCELERATOR_NAMESPACE; //____________________________________________________________________________________________ std::tuple, std::vector> convertHitsToHitIdxsAndHitTypes( SDL::Event* event, std::vector hits) { - SDL::hitsBuffer& hitsInGPU = *(event->getHits()); + SDL::Hits const* hitsEvt = event->getHits()->data(); std::vector hitidxs; std::vector hittypes; for (auto& hit : hits) { - hitidxs.push_back(hitsInGPU.idxs[hit]); - if (hitsInGPU.detid[hit] == 1) + hitidxs.push_back(hitsEvt->idxs[hit]); + if (hitsEvt->detid[hit] == 1) hittypes.push_back(0); else hittypes.push_back(4); @@ -28,17 +28,17 @@ std::tuple, std::vector> convertHitsToHi //____________________________________________________________________________________________ std::vector getPixelHitsFrompLS(SDL::Event* event, unsigned int pLS) { - SDL::segmentsBuffer& segments_ = *(event->getSegments()); - SDL::miniDoubletsBuffer& miniDoublets_ = *(event->getMiniDoublets()); - SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); - SDL::modulesBuffer& modulesInGPU = (*event->getModules()); - const unsigned int pLS_offset = rangesInGPU.segmentModuleIndices[*(modulesInGPU.nLowerModules)]; - unsigned int MD_1 = segments_.mdIndices[2 * (pLS + pLS_offset)]; - unsigned int MD_2 = segments_.mdIndices[2 * (pLS + pLS_offset) + 1]; - unsigned int hit_1 = miniDoublets_.anchorHitIndices[MD_1]; - unsigned int hit_2 = miniDoublets_.outerHitIndices[MD_1]; - unsigned int hit_3 = miniDoublets_.anchorHitIndices[MD_2]; - unsigned int hit_4 = miniDoublets_.outerHitIndices[MD_2]; + SDL::Segments const* segments = event->getSegments()->data(); + SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + SDL::ObjectRanges const* rangesEvt = event->getRanges()->data(); + SDL::Modules const* modulesEvt = event->getModules()->data(); + const unsigned int pLS_offset = rangesEvt->segmentModuleIndices[*(modulesEvt->nLowerModules)]; + unsigned int MD_1 = segments->mdIndices[2 * (pLS + pLS_offset)]; + unsigned int MD_2 = segments->mdIndices[2 * (pLS + pLS_offset) + 1]; + unsigned int hit_1 = miniDoublets->anchorHitIndices[MD_1]; + unsigned int hit_2 = miniDoublets->outerHitIndices[MD_1]; + unsigned int hit_3 = miniDoublets->anchorHitIndices[MD_2]; + unsigned int hit_4 = miniDoublets->outerHitIndices[MD_2]; if (hit_3 == hit_4) return {hit_1, hit_2, hit_3}; else @@ -47,11 +47,11 @@ std::vector getPixelHitsFrompLS(SDL::Event* event, unsigned //____________________________________________________________________________________________ std::vector getPixelHitIdxsFrompLS(SDL::Event* event, unsigned int pLS) { - SDL::hitsBuffer& hitsInGPU = *(event->getHits()); + SDL::Hits const* hitsEvt = event->getHits()->data(); std::vector hits = getPixelHitsFrompLS(event, pLS); std::vector hitidxs; for (auto& hit : hits) - hitidxs.push_back(hitsInGPU.idxs[hit]); + hitidxs.push_back(hitsEvt->idxs[hit]); return hitidxs; } @@ -74,9 +74,9 @@ std::tuple, std::vector> getHitIdxsAndHi //____________________________________________________________________________________________ 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]; + SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + unsigned int hit_1 = miniDoublets->anchorHitIndices[MD]; + unsigned int hit_2 = miniDoublets->outerHitIndices[MD]; return {hit_1, hit_2}; } @@ -92,9 +92,9 @@ std::tuple, std::vector> getHitIdxsAndHi //____________________________________________________________________________________________ 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]; + SDL::Segments const* segments = event->getSegments()->data(); + unsigned int MD_1 = segments->mdIndices[2 * LS]; + unsigned int MD_2 = segments->mdIndices[2 * LS + 1]; return {MD_1, MD_2}; } @@ -118,9 +118,9 @@ std::tuple, std::vector> getHitIdxsAndHi //____________________________________________________________________________________________ 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]; + SDL::Triplets const* triplets = event->getTriplets()->data(); + unsigned int LS_1 = triplets->segmentIndices[2 * T3]; + unsigned int LS_2 = triplets->segmentIndices[2 * T3 + 1]; return {LS_1, LS_2}; } @@ -153,9 +153,9 @@ std::tuple, std::vector> getHitIdxsAndHi //____________________________________________________________________________________________ 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]; + SDL::Quintuplets const* quintuplets = event->getQuintuplets()->data(); + unsigned int T3_1 = quintuplets->tripletIndices[2 * T5]; + unsigned int T3_2 = quintuplets->tripletIndices[2 * T5 + 1]; return {T3_1, T3_2}; } @@ -190,20 +190,20 @@ std::vector getHitsFromT5(SDL::Event* event, unsigned int T //____________________________________________________________________________________________ std::vector getHitIdxsFromT5(SDL::Event* event, unsigned int T5) { - SDL::hitsBuffer& hitsInGPU = *(event->getHits()); + SDL::Hits const* hitsEvt = event->getHits()->data(); std::vector hits = getHitsFromT5(event, T5); std::vector hitidxs; for (auto& hit : hits) - hitidxs.push_back(hitsInGPU.idxs[hit]); + hitidxs.push_back(hitsEvt->idxs[hit]); return hitidxs; } //____________________________________________________________________________________________ std::vector getModuleIdxsFromT5(SDL::Event* event, unsigned int T5) { std::vector hits = getHitsFromT5(event, T5); std::vector module_idxs; - SDL::hitsBuffer& hitsInGPU = *(event->getHits()); + SDL::Hits const* hitsEvt = event->getHits()->data(); for (auto& hitIdx : hits) { - module_idxs.push_back(hitsInGPU.moduleIndices[hitIdx]); + module_idxs.push_back(hitsEvt->moduleIndices[hitIdx]); } return module_idxs; } @@ -225,17 +225,17 @@ std::tuple, std::vector> getHitIdxsAndHi //____________________________________________________________________________________________ unsigned int getPixelLSFrompT3(SDL::Event* event, unsigned int pT3) { - SDL::pixelTripletsBuffer& pixelTriplets_ = *(event->getPixelTriplets()); - SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); - SDL::modulesBuffer& modulesInGPU = (*event->getModules()); - const unsigned int pLS_offset = rangesInGPU.segmentModuleIndices[*(modulesInGPU.nLowerModules)]; - return pixelTriplets_.pixelSegmentIndices[pT3] - pLS_offset; + SDL::PixelTriplets const* pixelTriplets = event->getPixelTriplets()->data(); + SDL::ObjectRanges const* rangesEvt = event->getRanges()->data(); + SDL::Modules const* modulesEvt = event->getModules()->data(); + const unsigned int pLS_offset = rangesEvt->segmentModuleIndices[*(modulesEvt->nLowerModules)]; + return pixelTriplets->pixelSegmentIndices[pT3] - pLS_offset; } //____________________________________________________________________________________________ unsigned int getT3FrompT3(SDL::Event* event, unsigned int pT3) { - SDL::pixelTriplets& pixelTriplets_ = *(event->getPixelTriplets()); - return pixelTriplets_.tripletIndices[pT3]; + SDL::PixelTriplets const* pixelTriplets = event->getPixelTriplets()->data(); + return pixelTriplets->tripletIndices[pT3]; } //____________________________________________________________________________________________ @@ -274,20 +274,20 @@ std::vector getHitsFrompT3(SDL::Event* event, unsigned int //____________________________________________________________________________________________ std::vector getHitIdxsFrompT3(SDL::Event* event, unsigned int pT3) { - SDL::hitsBuffer& hitsInGPU = *(event->getHits()); + SDL::Hits const* hitsEvt = event->getHits()->data(); std::vector hits = getHitsFrompT3(event, pT3); std::vector hitidxs; for (auto& hit : hits) - hitidxs.push_back(hitsInGPU.idxs[hit]); + hitidxs.push_back(hitsEvt->idxs[hit]); return hitidxs; } //____________________________________________________________________________________________ std::vector getModuleIdxsFrompT3(SDL::Event* event, unsigned int pT3) { std::vector hits = getOuterTrackerHitsFrompT3(event, pT3); std::vector module_idxs; - SDL::hitsBuffer& hitsInGPU = *(event->getHits()); + SDL::Hits const* hitsEvt = event->getHits()->data(); for (auto& hitIdx : hits) { - module_idxs.push_back(hitsInGPU.moduleIndices[hitIdx]); + module_idxs.push_back(hitsEvt->moduleIndices[hitIdx]); } return module_idxs; } @@ -314,17 +314,17 @@ std::tuple, std::vector> getHitIdxsAndHi //____________________________________________________________________________________________ unsigned int getPixelLSFrompT5(SDL::Event* event, unsigned int pT5) { - SDL::pixelQuintupletsBuffer& pixelQuintuplets_ = *(event->getPixelQuintuplets()); - SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); - SDL::modulesBuffer& modulesInGPU = (*event->getModules()); - const unsigned int pLS_offset = rangesInGPU.segmentModuleIndices[*(modulesInGPU.nLowerModules)]; - return pixelQuintuplets_.pixelIndices[pT5] - pLS_offset; + SDL::PixelQuintuplets const* pixelQuintuplets = event->getPixelQuintuplets()->data(); + SDL::ObjectRanges const* rangesEvt = event->getRanges()->data(); + SDL::Modules const* modulesEvt = event->getModules()->data(); + const unsigned int pLS_offset = rangesEvt->segmentModuleIndices[*(modulesEvt->nLowerModules)]; + return pixelQuintuplets->pixelIndices[pT5] - pLS_offset; } //____________________________________________________________________________________________ unsigned int getT5FrompT5(SDL::Event* event, unsigned int pT5) { - SDL::pixelQuintupletsBuffer& pixelQuintuplets_ = *(event->getPixelQuintuplets()); - return pixelQuintuplets_.T5Indices[pT5]; + SDL::PixelQuintuplets const* pixelQuintuplets = event->getPixelQuintuplets()->data(); + return pixelQuintuplets->T5Indices[pT5]; } //____________________________________________________________________________________________ @@ -369,11 +369,11 @@ std::vector getHitsFrompT5(SDL::Event* event, unsigned int //____________________________________________________________________________________________ std::vector getHitIdxsFrompT5(SDL::Event* event, unsigned int pT5) { - SDL::hitsBuffer& hitsInGPU = *(event->getHits()); + SDL::Hits const* hitsEvt = event->getHits()->data(); std::vector hits = getHitsFrompT5(event, pT5); std::vector hitidxs; for (auto& hit : hits) - hitidxs.push_back(hitsInGPU.idxs[hit]); + hitidxs.push_back(hitsEvt->idxs[hit]); return hitidxs; } @@ -381,9 +381,9 @@ std::vector getHitIdxsFrompT5(SDL::Event* event, unsigned i std::vector getModuleIdxsFrompT5(SDL::Event* event, unsigned int pT5) { std::vector hits = getOuterTrackerHitsFrompT5(event, pT5); std::vector module_idxs; - SDL::hitsBuffer& hitsInGPU = *(event->getHits()); + SDL::Hits const* hitsEvt = event->getHits()->data(); for (auto& hitIdx : hits) { - module_idxs.push_back(hitsInGPU.moduleIndices[hitIdx]); + module_idxs.push_back(hitsEvt->moduleIndices[hitIdx]); } return module_idxs; } @@ -412,9 +412,9 @@ std::tuple, std::vector> getHitIdxsAndHi //____________________________________________________________________________________________ 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]; - unsigned int objidx = trackCandidatesInGPU.directObjectIndices[TC]; + SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + short type = trackCandidates->trackCandidateType[TC]; + unsigned int objidx = trackCandidates->directObjectIndices[TC]; switch (type) { case kpT5: return getLSsFrompT5(event, objidx); @@ -435,9 +435,9 @@ std::vector getLSsFromTC(SDL::Event* event, unsigned int 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]; - unsigned int objidx = trackCandidatesInGPU.directObjectIndices[TC]; + SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + short type = trackCandidates->trackCandidateType[TC]; + unsigned int objidx = trackCandidates->directObjectIndices[TC]; switch (type) { case kpT5: return getHitIdxsAndHitTypesFrompT5(event, objidx); diff --git a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc index 987fdfa7c5a70..7ffef21e9005a 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc +++ b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc @@ -226,8 +226,8 @@ void setOutputBranches(SDL::Event* event) { std::vector> tc_matched_simIdx; // ============ Track candidates ============= - SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); - unsigned int nTrackCandidates = *trackCandidatesInGPU.nTrackCandidates; + SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + unsigned int nTrackCandidates = *trackCandidates->nTrackCandidates; for (unsigned int idx = 0; idx < nTrackCandidates; idx++) { // Compute reco quantities of track candidate based on final object int type, isFake; @@ -291,23 +291,23 @@ void setOptionalOutputBranches(SDL::Event* event) { //________________________________________________________________________________________________________________________________ void setPixelQuintupletOutputBranches(SDL::Event* event) { // ============ pT5 ============= - SDL::pixelQuintupletsBuffer& pixelQuintupletsInGPU = (*event->getPixelQuintuplets()); - SDL::quintupletsBuffer& quintupletsInGPU = (*event->getQuintuplets()); - SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); - SDL::modulesBuffer& modulesInGPU = (*event->getModules()); + SDL::PixelQuintuplets const* pixelQuintuplets = event->getPixelQuintuplets()->data(); + SDL::Quintuplets const* quintuplets = event->getQuintuplets()->data(); + SDL::Segments const* segments = event->getSegments()->data(); + SDL::Modules const* modules = event->getModules()->data(); int n_accepted_simtrk = ana.tx->getBranch>("sim_TC_matched").size(); unsigned int nPixelQuintuplets = - *pixelQuintupletsInGPU.nPixelQuintuplets; // size of this nPixelTriplets array is 1 (NOTE: parallelism lost here.) + *pixelQuintuplets->nPixelQuintuplets; // size of this nPixelTriplets array is 1 (NOTE: parallelism lost here.) std::vector sim_pT5_matched(n_accepted_simtrk); std::vector> pT5_matched_simIdx; for (unsigned int pT5 = 0; pT5 < nPixelQuintuplets; pT5++) { unsigned int T5Index = getT5FrompT5(event, pT5); unsigned int pLSIndex = getPixelLSFrompT5(event, pT5); - float pt = (__H2F(quintupletsInGPU.innerRadius[T5Index]) * SDL::k2Rinv1GeVf * 2 + segmentsInGPU.ptIn[pLSIndex]) / 2; - float eta = segmentsInGPU.eta[pLSIndex]; - float phi = segmentsInGPU.phi[pLSIndex]; + float pt = (__H2F(quintuplets->innerRadius[T5Index]) * SDL::k2Rinv1GeVf * 2 + segments->ptIn[pLSIndex]) / 2; + float eta = segments->eta[pLSIndex]; + float phi = segments->phi[pLSIndex]; std::vector hit_idx = getHitIdxsFrompT5(event, pT5); std::vector module_idx = getModuleIdxsFrompT5(event, pT5); @@ -316,8 +316,8 @@ void setPixelQuintupletOutputBranches(SDL::Event* event) { int layer_binary = 1; int moduleType_binary = 0; for (size_t i = 0; i < module_idx.size(); i += 2) { - layer_binary |= (1 << (modulesInGPU.layers[module_idx[i]] + 6 * (modulesInGPU.subdets[module_idx[i]] == 4))); - moduleType_binary |= (modulesInGPU.moduleType[module_idx[i]] << i); + layer_binary |= (1 << (modules->layers[module_idx[i]] + 6 * (modules->subdets[module_idx[i]] == 4))); + moduleType_binary |= (modules->moduleType[module_idx[i]] << i); } std::vector simidx = matchedSimTrkIdxs(hit_idx, hit_type); ana.tx->pushbackToBranch("pT5_isFake", static_cast(simidx.size() == 0)); @@ -366,21 +366,21 @@ void setPixelQuintupletOutputBranches(SDL::Event* event) { //________________________________________________________________________________________________________________________________ void setQuintupletOutputBranches(SDL::Event* event) { - SDL::quintupletsBuffer& quintupletsInGPU = (*event->getQuintuplets()); - SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); - SDL::modulesBuffer& modulesInGPU = (*event->getModules()); + SDL::Quintuplets const* quintuplets = event->getQuintuplets()->data(); + SDL::ObjectRanges const* ranges = event->getRanges()->data(); + SDL::Modules const* modules = event->getModules()->data(); int n_accepted_simtrk = ana.tx->getBranch>("sim_TC_matched").size(); std::vector sim_t5_matched(n_accepted_simtrk); std::vector> t5_matched_simIdx; - for (unsigned int lowerModuleIdx = 0; lowerModuleIdx < *(modulesInGPU.nLowerModules); ++lowerModuleIdx) { - int nQuintuplets = quintupletsInGPU.nQuintuplets[lowerModuleIdx]; + for (unsigned int lowerModuleIdx = 0; lowerModuleIdx < *(modules->nLowerModules); ++lowerModuleIdx) { + int nQuintuplets = quintuplets->nQuintuplets[lowerModuleIdx]; for (unsigned int idx = 0; idx < nQuintuplets; idx++) { - unsigned int quintupletIndex = rangesInGPU.quintupletModuleIndices[lowerModuleIdx] + idx; - float pt = __H2F(quintupletsInGPU.innerRadius[quintupletIndex]) * SDL::k2Rinv1GeVf * 2; - float eta = __H2F(quintupletsInGPU.eta[quintupletIndex]); - float phi = __H2F(quintupletsInGPU.phi[quintupletIndex]); + unsigned int quintupletIndex = ranges->quintupletModuleIndices[lowerModuleIdx] + idx; + float pt = __H2F(quintuplets->innerRadius[quintupletIndex]) * SDL::k2Rinv1GeVf * 2; + float eta = __H2F(quintuplets->eta[quintupletIndex]); + float phi = __H2F(quintuplets->phi[quintupletIndex]); std::vector hit_idx = getHitIdxsFromT5(event, quintupletIndex); std::vector hit_type = getHitTypesFromT5(event, quintupletIndex); @@ -389,8 +389,8 @@ void setQuintupletOutputBranches(SDL::Event* event) { int layer_binary = 0; int moduleType_binary = 0; for (size_t i = 0; i < module_idx.size(); i += 2) { - layer_binary |= (1 << (modulesInGPU.layers[module_idx[i]] + 6 * (modulesInGPU.subdets[module_idx[i]] == 4))); - moduleType_binary |= (modulesInGPU.moduleType[module_idx[i]] << i); + layer_binary |= (1 << (modules->layers[module_idx[i]] + 6 * (modules->subdets[module_idx[i]] == 4))); + moduleType_binary |= (modules->moduleType[module_idx[i]] << i); } std::vector simidx = matchedSimTrkIdxs(hit_idx, hit_type); @@ -399,11 +399,11 @@ void setQuintupletOutputBranches(SDL::Event* event) { ana.tx->pushbackToBranch("t5_pt", pt); ana.tx->pushbackToBranch("t5_eta", eta); ana.tx->pushbackToBranch("t5_phi", phi); - ana.tx->pushbackToBranch("t5_innerRadius", __H2F(quintupletsInGPU.innerRadius[quintupletIndex])); - ana.tx->pushbackToBranch("t5_bridgeRadius", __H2F(quintupletsInGPU.bridgeRadius[quintupletIndex])); - ana.tx->pushbackToBranch("t5_outerRadius", __H2F(quintupletsInGPU.outerRadius[quintupletIndex])); - ana.tx->pushbackToBranch("t5_chiSquared", quintupletsInGPU.chiSquared[quintupletIndex]); - ana.tx->pushbackToBranch("t5_rzChiSquared", quintupletsInGPU.rzChiSquared[quintupletIndex]); + ana.tx->pushbackToBranch("t5_innerRadius", __H2F(quintuplets->innerRadius[quintupletIndex])); + ana.tx->pushbackToBranch("t5_bridgeRadius", __H2F(quintuplets->bridgeRadius[quintupletIndex])); + ana.tx->pushbackToBranch("t5_outerRadius", __H2F(quintuplets->outerRadius[quintupletIndex])); + ana.tx->pushbackToBranch("t5_chiSquared", quintuplets->chiSquared[quintupletIndex]); + ana.tx->pushbackToBranch("t5_rzChiSquared", quintuplets->rzChiSquared[quintupletIndex]); ana.tx->pushbackToBranch("t5_layer_binary", layer_binary); ana.tx->pushbackToBranch("t5_moduleType_binary", moduleType_binary); @@ -437,24 +437,22 @@ void setQuintupletOutputBranches(SDL::Event* event) { //________________________________________________________________________________________________________________________________ void setPixelTripletOutputBranches(SDL::Event* event) { - SDL::pixelTripletsBuffer& pixelTripletsInGPU = (*event->getPixelTriplets()); - SDL::tripletsBuffer& tripletsInGPU = *(event->getTriplets()); - SDL::modulesBuffer& modulesInGPU = *(event->getModules()); - SDL::segmentsBuffer& segmentsInGPU = *(event->getSegments()); - SDL::hitsBuffer& hitsInGPU = *(event->getHits()); + SDL::PixelTriplets const* pixelTriplets = event->getPixelTriplets()->data(); + SDL::Modules const* modules = event->getModules()->data(); + SDL::Segments const* segments = event->getSegments()->data(); int n_accepted_simtrk = ana.tx->getBranch>("sim_TC_matched").size(); - unsigned int nPixelTriplets = *pixelTripletsInGPU.nPixelTriplets; + unsigned int nPixelTriplets = *pixelTriplets->nPixelTriplets; std::vector sim_pT3_matched(n_accepted_simtrk); std::vector> pT3_matched_simIdx; for (unsigned int pT3 = 0; pT3 < nPixelTriplets; pT3++) { unsigned int T3Index = getT3FrompT3(event, pT3); unsigned int pLSIndex = getPixelLSFrompT3(event, pT3); - const float pt = segmentsInGPU.ptIn[pLSIndex]; + const float pt = segments->ptIn[pLSIndex]; - float eta = segmentsInGPU.eta[pLSIndex]; - float phi = segmentsInGPU.phi[pLSIndex]; + float eta = segments->eta[pLSIndex]; + float phi = segments->phi[pLSIndex]; std::vector hit_idx = getHitIdxsFrompT3(event, pT3); std::vector hit_type = getHitTypesFrompT3(event, pT3); @@ -463,8 +461,8 @@ void setPixelTripletOutputBranches(SDL::Event* event) { int layer_binary = 1; int moduleType_binary = 0; for (size_t i = 0; i < module_idx.size(); i += 2) { - layer_binary |= (1 << (modulesInGPU.layers[module_idx[i]] + 6 * (modulesInGPU.subdets[module_idx[i]] == 4))); - moduleType_binary |= (modulesInGPU.moduleType[module_idx[i]] << i); + layer_binary |= (1 << (modules->layers[module_idx[i]] + 6 * (modules->subdets[module_idx[i]] == 4))); + moduleType_binary |= (modules->moduleType[module_idx[i]] << i); } ana.tx->pushbackToBranch("pT3_isFake", static_cast(simidx.size() == 0)); ana.tx->pushbackToBranch("pT3_pt", pt); @@ -503,12 +501,12 @@ void setPixelTripletOutputBranches(SDL::Event* event) { //________________________________________________________________________________________________________________________________ void setGnnNtupleBranches(SDL::Event* event) { // Get relevant information - SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); - SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); - SDL::hitsBuffer& hitsInGPU = (*event->getHits()); - SDL::modulesBuffer& modulesInGPU = (*event->getModules()); - SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); - SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); + SDL::Segments const* segments = event->getSegments()->data(); + SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + SDL::Hits const* hitsEvt = event->getHits()->data(); + SDL::Modules const* modules = event->getModules()->data(); + SDL::ObjectRanges const* ranges = event->getRanges()->data(); + SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); std::set mds_used_in_sg; std::map md_index_map; @@ -517,13 +515,13 @@ void setGnnNtupleBranches(SDL::Event* event) { // Loop over modules (lower ones where the MDs are saved) unsigned int nTotalMD = 0; unsigned int nTotalLS = 0; - for (unsigned int idx = 0; idx < *(modulesInGPU.nLowerModules); ++idx) { - nTotalMD += miniDoubletsInGPU.nMDs[idx]; - nTotalLS += segmentsInGPU.nSegments[idx]; + for (unsigned int idx = 0; idx < *(modules->nLowerModules); ++idx) { + nTotalMD += miniDoublets->nMDs[idx]; + nTotalLS += segments->nSegments[idx]; } std::set lss_used_in_true_tc; - unsigned int nTrackCandidates = *trackCandidatesInGPU.nTrackCandidates; + unsigned int nTrackCandidates = *trackCandidates->nTrackCandidates; for (unsigned int idx = 0; idx < nTrackCandidates; idx++) { // Only consider true track candidates std::vector hitidxs; @@ -547,20 +545,20 @@ void setGnnNtupleBranches(SDL::Event* event) { // std::cout << " nTotalLS: " << nTotalLS << std::endl; // Loop over modules (lower ones where the MDs are saved) - for (unsigned int idx = 0; idx < *(modulesInGPU.nLowerModules); ++idx) { + for (unsigned int idx = 0; idx < *(modules->nLowerModules); ++idx) { // // Loop over minidoublets - // for (unsigned int jdx = 0; jdx < miniDoubletsInGPU.nMDs[idx]; jdx++) + // for (unsigned int jdx = 0; jdx < miniDoublets->nMDs[idx]; jdx++) // { - // // Get the actual index to the mini-doublet using rangesInGPU - // unsigned int mdIdx = rangesInGPU.miniDoubletModuleIndices[idx] + jdx; + // // Get the actual index to the mini-doublet using ranges + // unsigned int mdIdx = ranges->miniDoubletModuleIndices[idx] + jdx; // setGnnNtupleMiniDoublet(event, mdIdx); // } // Loop over segments - for (unsigned int jdx = 0; jdx < segmentsInGPU.nSegments[idx]; jdx++) { - // Get the actual index to the segments using rangesInGPU - unsigned int sgIdx = rangesInGPU.segmentModuleIndices[idx] + jdx; + for (unsigned int jdx = 0; jdx < segments->nSegments[idx]; jdx++) { + // Get the actual index to the segments using ranges + unsigned int sgIdx = ranges->segmentModuleIndices[idx] + jdx; // Get the hit indices std::vector MDs = getMDsFromLS(event, sgIdx); @@ -584,8 +582,8 @@ void setGnnNtupleBranches(SDL::Event* event) { // Computing line segment pt estimate (assuming beam spot is at zero) SDLMath::Hit hitA(0, 0, 0); - SDLMath::Hit hitB(hitsInGPU.xs[hits[0]], hitsInGPU.ys[hits[0]], hitsInGPU.zs[hits[0]]); - SDLMath::Hit hitC(hitsInGPU.xs[hits[2]], hitsInGPU.ys[hits[2]], hitsInGPU.zs[hits[2]]); + SDLMath::Hit hitB(hitsEvt->xs[hits[0]], hitsEvt->ys[hits[0]], hitsEvt->zs[hits[0]]); + SDLMath::Hit hitC(hitsEvt->xs[hits[2]], hitsEvt->ys[hits[2]], hitsEvt->zs[hits[2]]); SDLMath::Hit center = SDLMath::getCenterFromThreePoints(hitA, hitB, hitC); float pt = SDLMath::ptEstimateFromRadius(center.rt()); float eta = hitC.eta(); @@ -644,25 +642,25 @@ void setGnnNtupleBranches(SDL::Event* event) { //________________________________________________________________________________________________________________________________ void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD) { // Get relevant information - SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); - SDL::hitsBuffer& hitsInGPU = (*event->getHits()); + SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + SDL::Hits const* hitsEvt = event->getHits()->data(); // Get the hit indices - unsigned int hit0 = miniDoubletsInGPU.anchorHitIndices[MD]; - unsigned int hit1 = miniDoubletsInGPU.outerHitIndices[MD]; + unsigned int hit0 = miniDoublets->anchorHitIndices[MD]; + unsigned int hit1 = miniDoublets->outerHitIndices[MD]; // Get the hit infos - const float hit0_x = hitsInGPU.xs[hit0]; - const float hit0_y = hitsInGPU.ys[hit0]; - const float hit0_z = hitsInGPU.zs[hit0]; + const float hit0_x = hitsEvt->xs[hit0]; + const float hit0_y = hitsEvt->ys[hit0]; + const float hit0_z = hitsEvt->zs[hit0]; const float hit0_r = sqrt(hit0_x * hit0_x + hit0_y * hit0_y); - const float hit1_x = hitsInGPU.xs[hit1]; - const float hit1_y = hitsInGPU.ys[hit1]; - const float hit1_z = hitsInGPU.zs[hit1]; + const float hit1_x = hitsEvt->xs[hit1]; + const float hit1_y = hitsEvt->ys[hit1]; + const float hit1_z = hitsEvt->zs[hit1]; const float hit1_r = sqrt(hit1_x * hit1_x + hit1_y * hit1_y); // Do sim matching - std::vector hit_idx = {hitsInGPU.idxs[hit0], hitsInGPU.idxs[hit1]}; + std::vector hit_idx = {hitsEvt->idxs[hit0], hitsEvt->idxs[hit1]}; std::vector hit_type = {4, 4}; std::vector simidxs = matchedSimTrkIdxs(hit_idx, hit_type); @@ -670,8 +668,8 @@ void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD) { int tp_type = getDenomSimTrkType(simidxs); // Obtain where the actual hit is located in terms of their layer, module, rod, and ring number - unsigned int anchitidx = hitsInGPU.idxs[hit0]; - int subdet = trk.ph2_subdet()[hitsInGPU.idxs[anchitidx]]; + unsigned int anchitidx = hitsEvt->idxs[hit0]; + int subdet = trk.ph2_subdet()[hitsEvt->idxs[anchitidx]]; int is_endcap = subdet == 4; int layer = trk.ph2_layer()[anchitidx] + @@ -679,7 +677,7 @@ void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD) { int detId = trk.ph2_detId()[anchitidx]; // Obtaining dPhiChange - float dphichange = miniDoubletsInGPU.dphichanges[MD]; + float dphichange = miniDoublets->dphichanges[MD]; // Computing pt float pt = hit0_r * SDL::k2Rinv1GeVf / sin(dphichange); @@ -713,8 +711,8 @@ void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD) { std::tuple> parseTrackCandidate(SDL::Event* event, unsigned int idx) { // Get the type of the track candidate - SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); - short type = trackCandidatesInGPU.trackCandidateType[idx]; + SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + short type = trackCandidates->trackCandidateType[idx]; enum { pT5 = 7, pT3 = 5, T5 = 4, pLS = 8 }; @@ -747,9 +745,9 @@ std::tuple> parseTrackCandidate( std::tuple, std::vector> parsepT5(SDL::Event* event, unsigned int idx) { // Get relevant information - SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); - SDL::quintupletsBuffer& quintupletsInGPU = (*event->getQuintuplets()); - SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); + SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + SDL::Quintuplets const* quintuplets = event->getQuintuplets()->data(); + SDL::Segments const* segments = event->getSegments()->data(); // // pictorial representation of a pT5 @@ -760,7 +758,7 @@ std::tuple, std::vectordirectObjectIndices[idx]; unsigned int pLS = getPixelLSFrompT5(event, pT5); unsigned int T5Index = getT5FrompT5(event, pT5); @@ -842,10 +840,10 @@ std::tuple, std::vectorptIn[pLS]; + const float eta_pLS = segments->eta[pLS]; + const float phi_pLS = segments->phi[pLS]; + float pt_T5 = __H2F(quintuplets->innerRadius[T5Index]) * 2 * SDL::k2Rinv1GeVf; const float pt = (pt_T5 + pt_pLS) / 2; // Form the hit idx/type std::vector @@ -859,9 +857,9 @@ std::tuple, std::vector, std::vector> parsepT3(SDL::Event* event, unsigned int idx) { // Get relevant information - SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); - SDL::tripletsBuffer& tripletsInGPU = (*event->getTriplets()); - SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); + SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + SDL::Triplets const* triplets = event->getTriplets()->data(); + SDL::Segments const* segments = event->getSegments()->data(); // // pictorial representation of a pT3 @@ -870,15 +868,15 @@ std::tuple, std::vectordirectObjectIndices[idx]; unsigned int pLS = getPixelLSFrompT3(event, pT3); unsigned int T3 = getT3FrompT3(event, pT3); // pixel pt - const float pt_pLS = segmentsInGPU.ptIn[pLS]; - const float eta_pLS = segmentsInGPU.eta[pLS]; - const float phi_pLS = segmentsInGPU.phi[pLS]; - float pt_T3 = tripletsInGPU.circleRadius[T3] * 2 * SDL::k2Rinv1GeVf; + const float pt_pLS = segments->ptIn[pLS]; + const float eta_pLS = segments->eta[pLS]; + const float phi_pLS = segments->phi[pLS]; + float pt_T3 = triplets->circleRadius[T3] * 2 * SDL::k2Rinv1GeVf; // average pt const float pt = (pt_pLS + pt_T3) / 2; @@ -893,9 +891,9 @@ std::tuple, std::vector, 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]; + SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + SDL::Quintuplets const* quintuplets = event->getQuintuplets()->data(); + unsigned int T5 = trackCandidates->directObjectIndices[idx]; std::vector hits = getHitsFromT5(event, T5); // @@ -910,7 +908,7 @@ std::tuple, std::vectorinnerRadius[T5] * SDL::k2Rinv1GeVf * 2; // T5 eta and phi are computed using outer and innermost hits SDLMath::Hit hitA(trk.ph2_x()[Hit_0], trk.ph2_y()[Hit_0], trk.ph2_z()[Hit_0]); @@ -927,16 +925,16 @@ std::tuple, std::vector, std::vector> parsepLS(SDL::Event* event, unsigned int idx) { - SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); - SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); + SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + SDL::Segments const* segments = event->getSegments()->data(); // Getting pLS index - unsigned int pLS = trackCandidatesInGPU.directObjectIndices[idx]; + unsigned int pLS = trackCandidates->directObjectIndices[idx]; // Getting pt eta and phi - float pt = segmentsInGPU.ptIn[pLS]; - float eta = segmentsInGPU.eta[pLS]; - float phi = segmentsInGPU.phi[pLS]; + float pt = segments->ptIn[pLS]; + float eta = segments->eta[pLS]; + float phi = segments->phi[pLS]; // Getting hit indices and types std::vector hit_idx = getPixelHitIdxsFrompLS(event, pLS); @@ -947,32 +945,32 @@ std::tuple, std::vector* event) { - SDL::modulesBuffer& modulesInGPU = (*event->getModules()); - SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); + SDL::Modules const* modules = event->getModules()->data(); + SDL::ObjectRanges const* ranges = event->getRanges()->data(); int nHits = 0; - for (unsigned int idx = 0; idx <= *(modulesInGPU.nLowerModules); + for (unsigned int idx = 0; idx <= *(modules->nLowerModules); idx++) // "<=" because cheating to include pixel track candidate lower module { - nHits += rangesInGPU.hitRanges[4 * idx + 1] - rangesInGPU.hitRanges[4 * idx] + 1; - nHits += rangesInGPU.hitRanges[4 * idx + 3] - rangesInGPU.hitRanges[4 * idx + 2] + 1; + nHits += ranges->hitRanges[4 * idx + 1] - ranges->hitRanges[4 * idx] + 1; + nHits += ranges->hitRanges[4 * idx + 3] - ranges->hitRanges[4 * idx + 2] + 1; } std::cout << " nHits: " << nHits << std::endl; } //________________________________________________________________________________________________________________________________ void printMiniDoubletMultiplicities(SDL::Event* event) { - SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); - SDL::modulesBuffer& modulesInGPU = (*event->getModules()); + SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + SDL::Modules const* modules = event->getModules()->data(); int nMiniDoublets = 0; int totOccupancyMiniDoublets = 0; - for (unsigned int idx = 0; idx <= *(modulesInGPU.nModules); + for (unsigned int idx = 0; idx <= *(modules->nModules); idx++) // "<=" because cheating to include pixel track candidate lower module { - if (modulesInGPU.isLower[idx]) { - nMiniDoublets += miniDoubletsInGPU.nMDs[idx]; - totOccupancyMiniDoublets += miniDoubletsInGPU.totOccupancyMDs[idx]; + if (modules->isLower[idx]) { + nMiniDoublets += miniDoublets->nMDs[idx]; + totOccupancyMiniDoublets += miniDoublets->totOccupancyMDs[idx]; } } std::cout << " nMiniDoublets: " << nMiniDoublets << std::endl; @@ -989,19 +987,19 @@ void printAllObjects(SDL::Event* event) { //________________________________________________________________________________________________________________________________ void printMDs(SDL::Event* event) { - SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); - SDL::hitsBuffer& hitsInGPU = (*event->getHits()); - SDL::modulesBuffer& modulesInGPU = (*event->getModules()); - SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); + SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + SDL::Hits const* hitsEvt = event->getHits()->data(); + SDL::Modules const* modules = event->getModules()->data(); + SDL::ObjectRanges const* ranges = event->getRanges()->data(); // Then obtain the lower module index - for (unsigned int idx = 0; idx <= *(modulesInGPU.nLowerModules); ++idx) { - for (unsigned int iMD = 0; iMD < miniDoubletsInGPU.nMDs[idx]; iMD++) { - unsigned int mdIdx = rangesInGPU.miniDoubletModuleIndices[idx] + iMD; - unsigned int LowerHitIndex = miniDoubletsInGPU.anchorHitIndices[mdIdx]; - unsigned int UpperHitIndex = miniDoubletsInGPU.outerHitIndices[mdIdx]; - unsigned int hit0 = hitsInGPU.idxs[LowerHitIndex]; - unsigned int hit1 = hitsInGPU.idxs[UpperHitIndex]; + for (unsigned int idx = 0; idx <= *(modules->nLowerModules); ++idx) { + for (unsigned int iMD = 0; iMD < miniDoublets->nMDs[idx]; iMD++) { + unsigned int mdIdx = ranges->miniDoubletModuleIndices[idx] + iMD; + unsigned int LowerHitIndex = miniDoublets->anchorHitIndices[mdIdx]; + unsigned int UpperHitIndex = miniDoublets->outerHitIndices[mdIdx]; + unsigned int hit0 = hitsEvt->idxs[LowerHitIndex]; + unsigned int hit1 = hitsEvt->idxs[UpperHitIndex]; std::cout << "VALIDATION 'MD': " << "MD" << " hit0: " << hit0 << " hit1: " << hit1 << std::endl; @@ -1011,28 +1009,28 @@ void printMDs(SDL::Event* event) { //________________________________________________________________________________________________________________________________ void printLSs(SDL::Event* event) { - SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); - SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); - SDL::hitsBuffer& hitsInGPU = (*event->getHits()); - SDL::modulesBuffer& modulesInGPU = (*event->getModules()); - SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); + SDL::Segments const* segments = event->getSegments()->data(); + SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + SDL::Hits const* hitsEvt = event->getHits()->data(); + SDL::Modules const* modules = event->getModules()->data(); + SDL::ObjectRanges const* ranges = event->getRanges()->data(); int nSegments = 0; - for (unsigned int i = 0; i < *(modulesInGPU.nLowerModules); ++i) { - unsigned int idx = i; //modulesInGPU.lowerModuleIndices[i]; - nSegments += segmentsInGPU.nSegments[idx]; - for (unsigned int jdx = 0; jdx < segmentsInGPU.nSegments[idx]; jdx++) { - unsigned int sgIdx = rangesInGPU.segmentModuleIndices[idx] + jdx; - unsigned int InnerMiniDoubletIndex = segmentsInGPU.mdIndices[2 * sgIdx]; - unsigned int OuterMiniDoubletIndex = segmentsInGPU.mdIndices[2 * sgIdx + 1]; - unsigned int InnerMiniDoubletLowerHitIndex = miniDoubletsInGPU.anchorHitIndices[InnerMiniDoubletIndex]; - unsigned int InnerMiniDoubletUpperHitIndex = miniDoubletsInGPU.outerHitIndices[InnerMiniDoubletIndex]; - unsigned int OuterMiniDoubletLowerHitIndex = miniDoubletsInGPU.anchorHitIndices[OuterMiniDoubletIndex]; - unsigned int OuterMiniDoubletUpperHitIndex = miniDoubletsInGPU.outerHitIndices[OuterMiniDoubletIndex]; - unsigned int hit0 = hitsInGPU.idxs[InnerMiniDoubletLowerHitIndex]; - unsigned int hit1 = hitsInGPU.idxs[InnerMiniDoubletUpperHitIndex]; - unsigned int hit2 = hitsInGPU.idxs[OuterMiniDoubletLowerHitIndex]; - unsigned int hit3 = hitsInGPU.idxs[OuterMiniDoubletUpperHitIndex]; + for (unsigned int i = 0; i < *(modules->nLowerModules); ++i) { + unsigned int idx = i; //modules->lowerModuleIndices[i]; + nSegments += segments->nSegments[idx]; + for (unsigned int jdx = 0; jdx < segments->nSegments[idx]; jdx++) { + unsigned int sgIdx = ranges->segmentModuleIndices[idx] + jdx; + unsigned int InnerMiniDoubletIndex = segments->mdIndices[2 * sgIdx]; + unsigned int OuterMiniDoubletIndex = segments->mdIndices[2 * sgIdx + 1]; + unsigned int InnerMiniDoubletLowerHitIndex = miniDoublets->anchorHitIndices[InnerMiniDoubletIndex]; + unsigned int InnerMiniDoubletUpperHitIndex = miniDoublets->outerHitIndices[InnerMiniDoubletIndex]; + unsigned int OuterMiniDoubletLowerHitIndex = miniDoublets->anchorHitIndices[OuterMiniDoubletIndex]; + unsigned int OuterMiniDoubletUpperHitIndex = miniDoublets->outerHitIndices[OuterMiniDoubletIndex]; + unsigned int hit0 = hitsEvt->idxs[InnerMiniDoubletLowerHitIndex]; + unsigned int hit1 = hitsEvt->idxs[InnerMiniDoubletUpperHitIndex]; + unsigned int hit2 = hitsEvt->idxs[OuterMiniDoubletLowerHitIndex]; + unsigned int hit3 = hitsEvt->idxs[OuterMiniDoubletUpperHitIndex]; std::cout << "VALIDATION 'LS': " << "LS" << " hit0: " << hit0 << " hit1: " << hit1 << " hit2: " << hit2 << " hit3: " << hit3 << std::endl; @@ -1043,27 +1041,27 @@ void printLSs(SDL::Event* event) { //________________________________________________________________________________________________________________________________ void printpLSs(SDL::Event* event) { - SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); - SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); - SDL::hitsBuffer& hitsInGPU = (*event->getHits()); - SDL::modulesBuffer& modulesInGPU = (*event->getModules()); - SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); - - unsigned int i = *(modulesInGPU.nLowerModules); - unsigned int idx = i; //modulesInGPU.lowerModuleIndices[i]; - int npLS = segmentsInGPU.nSegments[idx]; - for (unsigned int jdx = 0; jdx < segmentsInGPU.nSegments[idx]; jdx++) { - unsigned int sgIdx = rangesInGPU.segmentModuleIndices[idx] + jdx; - unsigned int InnerMiniDoubletIndex = segmentsInGPU.mdIndices[2 * sgIdx]; - unsigned int OuterMiniDoubletIndex = segmentsInGPU.mdIndices[2 * sgIdx + 1]; - unsigned int InnerMiniDoubletLowerHitIndex = miniDoubletsInGPU.anchorHitIndices[InnerMiniDoubletIndex]; - unsigned int InnerMiniDoubletUpperHitIndex = miniDoubletsInGPU.outerHitIndices[InnerMiniDoubletIndex]; - unsigned int OuterMiniDoubletLowerHitIndex = miniDoubletsInGPU.anchorHitIndices[OuterMiniDoubletIndex]; - unsigned int OuterMiniDoubletUpperHitIndex = miniDoubletsInGPU.outerHitIndices[OuterMiniDoubletIndex]; - unsigned int hit0 = hitsInGPU.idxs[InnerMiniDoubletLowerHitIndex]; - unsigned int hit1 = hitsInGPU.idxs[InnerMiniDoubletUpperHitIndex]; - unsigned int hit2 = hitsInGPU.idxs[OuterMiniDoubletLowerHitIndex]; - unsigned int hit3 = hitsInGPU.idxs[OuterMiniDoubletUpperHitIndex]; + SDL::Segments const* segments = event->getSegments()->data(); + SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + SDL::Hits const* hitsEvt = event->getHits()->data(); + SDL::Modules const* modules = event->getModules()->data(); + SDL::ObjectRanges const* ranges = event->getRanges()->data(); + + unsigned int i = *(modules->nLowerModules); + unsigned int idx = i; //modules->lowerModuleIndices[i]; + int npLS = segments->nSegments[idx]; + for (unsigned int jdx = 0; jdx < segments->nSegments[idx]; jdx++) { + unsigned int sgIdx = ranges->segmentModuleIndices[idx] + jdx; + unsigned int InnerMiniDoubletIndex = segments->mdIndices[2 * sgIdx]; + unsigned int OuterMiniDoubletIndex = segments->mdIndices[2 * sgIdx + 1]; + unsigned int InnerMiniDoubletLowerHitIndex = miniDoublets->anchorHitIndices[InnerMiniDoubletIndex]; + unsigned int InnerMiniDoubletUpperHitIndex = miniDoublets->outerHitIndices[InnerMiniDoubletIndex]; + unsigned int OuterMiniDoubletLowerHitIndex = miniDoublets->anchorHitIndices[OuterMiniDoubletIndex]; + unsigned int OuterMiniDoubletUpperHitIndex = miniDoublets->outerHitIndices[OuterMiniDoubletIndex]; + unsigned int hit0 = hitsEvt->idxs[InnerMiniDoubletLowerHitIndex]; + unsigned int hit1 = hitsEvt->idxs[InnerMiniDoubletUpperHitIndex]; + unsigned int hit2 = hitsEvt->idxs[OuterMiniDoubletLowerHitIndex]; + unsigned int hit3 = hitsEvt->idxs[OuterMiniDoubletUpperHitIndex]; std::cout << "VALIDATION 'pLS': " << "pLS" << " hit0: " << hit0 << " hit1: " << hit1 << " hit2: " << hit2 << " hit3: " << hit3 << std::endl; @@ -1073,37 +1071,37 @@ void printpLSs(SDL::Event* event) { //________________________________________________________________________________________________________________________________ void printT3s(SDL::Event* event) { - SDL::tripletsBuffer& tripletsInGPU = (*event->getTriplets()); - SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); - SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); - SDL::hitsBuffer& hitsInGPU = (*event->getHits()); - SDL::modulesBuffer& modulesInGPU = (*event->getModules()); + SDL::Triplets const* triplets = event->getTriplets()->data(); + SDL::Segments const* segments = event->getSegments()->data(); + SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + SDL::Hits const* hitsEvt = event->getHits()->data(); + SDL::Modules const* modules = event->getModules()->data(); int nTriplets = 0; - for (unsigned int i = 0; i < *(modulesInGPU.nLowerModules); ++i) { - // unsigned int idx = SDL::modulesInGPU->lowerModuleIndices[i]; - nTriplets += tripletsInGPU.nTriplets[i]; + for (unsigned int i = 0; i < *(modules->nLowerModules); ++i) { + // unsigned int idx = modules->lowerModuleIndices[i]; + nTriplets += triplets->nTriplets[i]; unsigned int idx = i; - for (unsigned int jdx = 0; jdx < tripletsInGPU.nTriplets[idx]; jdx++) { + for (unsigned int jdx = 0; jdx < triplets->nTriplets[idx]; jdx++) { unsigned int tpIdx = idx * 5000 + jdx; - unsigned int InnerSegmentIndex = tripletsInGPU.segmentIndices[2 * tpIdx]; - unsigned int OuterSegmentIndex = tripletsInGPU.segmentIndices[2 * tpIdx + 1]; - unsigned int InnerSegmentInnerMiniDoubletIndex = segmentsInGPU.mdIndices[2 * InnerSegmentIndex]; - unsigned int InnerSegmentOuterMiniDoubletIndex = segmentsInGPU.mdIndices[2 * InnerSegmentIndex + 1]; - unsigned int OuterSegmentOuterMiniDoubletIndex = segmentsInGPU.mdIndices[2 * OuterSegmentIndex + 1]; - - unsigned int hit_idx0 = miniDoubletsInGPU.anchorHitIndices[InnerSegmentInnerMiniDoubletIndex]; - unsigned int hit_idx1 = miniDoubletsInGPU.outerHitIndices[InnerSegmentInnerMiniDoubletIndex]; - unsigned int hit_idx2 = miniDoubletsInGPU.anchorHitIndices[InnerSegmentOuterMiniDoubletIndex]; - unsigned int hit_idx3 = miniDoubletsInGPU.outerHitIndices[InnerSegmentOuterMiniDoubletIndex]; - unsigned int hit_idx4 = miniDoubletsInGPU.anchorHitIndices[OuterSegmentOuterMiniDoubletIndex]; - unsigned int hit_idx5 = miniDoubletsInGPU.outerHitIndices[OuterSegmentOuterMiniDoubletIndex]; - - unsigned int hit0 = hitsInGPU.idxs[hit_idx0]; - unsigned int hit1 = hitsInGPU.idxs[hit_idx1]; - unsigned int hit2 = hitsInGPU.idxs[hit_idx2]; - unsigned int hit3 = hitsInGPU.idxs[hit_idx3]; - unsigned int hit4 = hitsInGPU.idxs[hit_idx4]; - unsigned int hit5 = hitsInGPU.idxs[hit_idx5]; + unsigned int InnerSegmentIndex = triplets->segmentIndices[2 * tpIdx]; + unsigned int OuterSegmentIndex = triplets->segmentIndices[2 * tpIdx + 1]; + unsigned int InnerSegmentInnerMiniDoubletIndex = segments->mdIndices[2 * InnerSegmentIndex]; + unsigned int InnerSegmentOuterMiniDoubletIndex = segments->mdIndices[2 * InnerSegmentIndex + 1]; + unsigned int OuterSegmentOuterMiniDoubletIndex = segments->mdIndices[2 * OuterSegmentIndex + 1]; + + unsigned int hit_idx0 = miniDoublets->anchorHitIndices[InnerSegmentInnerMiniDoubletIndex]; + unsigned int hit_idx1 = miniDoublets->outerHitIndices[InnerSegmentInnerMiniDoubletIndex]; + unsigned int hit_idx2 = miniDoublets->anchorHitIndices[InnerSegmentOuterMiniDoubletIndex]; + unsigned int hit_idx3 = miniDoublets->outerHitIndices[InnerSegmentOuterMiniDoubletIndex]; + unsigned int hit_idx4 = miniDoublets->anchorHitIndices[OuterSegmentOuterMiniDoubletIndex]; + unsigned int hit_idx5 = miniDoublets->outerHitIndices[OuterSegmentOuterMiniDoubletIndex]; + + unsigned int hit0 = hitsEvt->idxs[hit_idx0]; + unsigned int hit1 = hitsEvt->idxs[hit_idx1]; + unsigned int hit2 = hitsEvt->idxs[hit_idx2]; + unsigned int hit3 = hitsEvt->idxs[hit_idx3]; + unsigned int hit4 = hitsEvt->idxs[hit_idx4]; + unsigned int hit5 = hitsEvt->idxs[hit_idx5]; std::cout << "VALIDATION 'T3': " << "T3" << " hit0: " << hit0 << " hit1: " << hit1 << " hit2: " << hit2 << " hit3: " << hit3 << " hit4: " << hit4 @@ -1115,29 +1113,26 @@ void printT3s(SDL::Event* event) { //________________________________________________________________________________________________________________________________ void debugPrintOutlierMultiplicities(SDL::Event* event) { - SDL::trackCandidatesBuffer& trackCandidatesInGPU = (*event->getTrackCandidates()); - SDL::tripletsBuffer& tripletsInGPU = (*event->getTriplets()); - SDL::segmentsBuffer& segmentsInGPU = (*event->getSegments()); - SDL::miniDoubletsBuffer& miniDoubletsInGPU = (*event->getMiniDoublets()); - SDL::modulesBuffer& modulesInGPU = (*event->getModules()); - SDL::objectRangesBuffer& rangesInGPU = (*event->getRanges()); + SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + SDL::Triplets const* triplets = event->getTriplets()->data(); + SDL::Segments const* segments = event->getSegments()->data(); + SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + SDL::Modules const* modules = event->getModules()->data(); + SDL::ObjectRanges const* ranges = event->getRanges()->data(); //int nTrackCandidates = 0; - for (unsigned int idx = 0; idx <= *(modulesInGPU.nLowerModules); ++idx) { - if (trackCandidatesInGPU.nTrackCandidates[idx] > 50000) { - std::cout << " SDL::modulesInGPU->detIds[SDL::modulesInGPU->lowerModuleIndices[idx]]: " - << modulesInGPU.detIds[idx] << std::endl; + for (unsigned int idx = 0; idx <= *(modules->nLowerModules); ++idx) { + if (trackCandidates->nTrackCandidates[idx] > 50000) { + std::cout << " modules->detIds[modules->lowerModuleIndices[idx]]: " << modules->detIds[idx] << std::endl; std::cout << " idx: " << idx - << " trackCandidatesInGPU.nTrackCandidates[idx]: " << trackCandidatesInGPU.nTrackCandidates[idx] - << std::endl; - std::cout << " idx: " << idx << " tripletsInGPU.nTriplets[idx]: " << tripletsInGPU.nTriplets[idx] << std::endl; - unsigned int i = idx; //modulesInGPU.lowerModuleIndices[idx]; - std::cout << " idx: " << idx << " i: " << i << " segmentsInGPU.nSegments[i]: " << segmentsInGPU.nSegments[i] - << std::endl; - int nMD = miniDoubletsInGPU.nMDs[2 * idx] + miniDoubletsInGPU.nMDs[2 * idx + 1]; + << " trackCandidates->nTrackCandidates[idx]: " << trackCandidates->nTrackCandidates[idx] << std::endl; + std::cout << " idx: " << idx << " triplets->nTriplets[idx]: " << triplets->nTriplets[idx] << std::endl; + unsigned int i = idx; //modules->lowerModuleIndices[idx]; + std::cout << " idx: " << idx << " i: " << i << " segments->nSegments[i]: " << segments->nSegments[i] << std::endl; + int nMD = miniDoublets->nMDs[2 * idx] + miniDoublets->nMDs[2 * idx + 1]; std::cout << " idx: " << idx << " nMD: " << nMD << std::endl; int nHits = 0; - nHits += rangesInGPU.hitRanges[4 * idx + 1] - rangesInGPU.hitRanges[4 * idx] + 1; - nHits += rangesInGPU.hitRanges[4 * idx + 3] - rangesInGPU.hitRanges[4 * idx + 2] + 1; + nHits += ranges->hitRanges[4 * idx + 1] - ranges->hitRanges[4 * idx] + 1; + nHits += ranges->hitRanges[4 * idx + 3] - ranges->hitRanges[4 * idx + 2] + 1; std::cout << " idx: " << idx << " nHits: " << nHits << std::endl; } } From 5d0ef1ea6041adeba4bf782d5228f25e067fcb81 Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Fri, 19 Jul 2024 09:44:07 -0700 Subject: [PATCH 10/35] Namespace renaming SDL->lst and inclusion of the T5DNN->t5dnn namespace under it --- .../plugins/alpaka/LSTModulesDevESProducer.cc | 4 +- RecoTracker/LST/plugins/alpaka/LSTProducer.cc | 4 +- RecoTracker/LST/src/ES_ModulesDev.cc | 2 +- RecoTracker/LST/src/alpaka/ES_ModulesDev.cc | 2 +- RecoTracker/LSTCore/interface/Constants.h | 4 +- .../LSTCore/interface/EndcapGeometry.h | 4 +- .../LSTCore/interface/EndcapGeometryBuffer.h | 4 +- RecoTracker/LSTCore/interface/LST.h | 7 +- RecoTracker/LSTCore/interface/LSTESData.h | 16 +- RecoTracker/LSTCore/interface/Module.h | 4 +- .../LSTCore/interface/ModuleConnectionMap.h | 4 +- RecoTracker/LSTCore/interface/PixelMap.h | 4 +- .../LSTCore/interface/TiltedGeometry.h | 4 +- .../LSTCore/interface/alpaka/Constants.h | 43 +- RecoTracker/LSTCore/src/EndcapGeometry.cc | 8 +- RecoTracker/LSTCore/src/LSTESData.cc | 20 +- .../LSTCore/src/ModuleConnectionMap.cc | 16 +- RecoTracker/LSTCore/src/ModuleMethods.h | 22 +- RecoTracker/LSTCore/src/TiltedGeometry.cc | 8 +- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 241 +++---- RecoTracker/LSTCore/src/alpaka/Event.h | 4 +- RecoTracker/LSTCore/src/alpaka/Hit.h | 14 +- RecoTracker/LSTCore/src/alpaka/Kernels.h | 42 +- RecoTracker/LSTCore/src/alpaka/LST.dev.cc | 14 +- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 114 ++-- .../LSTCore/src/alpaka/NeuralNetwork.h | 281 ++++---- .../LSTCore/src/alpaka/NeuralNetworkWeights.h | 614 +++++++++--------- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 416 ++++++------ RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 464 ++++++------- RecoTracker/LSTCore/src/alpaka/Segment.h | 114 ++-- .../LSTCore/src/alpaka/TrackCandidate.h | 86 +-- RecoTracker/LSTCore/src/alpaka/Triplet.h | 168 ++--- RecoTracker/LSTCore/standalone/bin/sdl.cc | 10 +- .../standalone/code/core/AccessHelper.cc | 146 ++--- .../standalone/code/core/AccessHelper.h | 98 +-- .../standalone/code/core/AnalysisConfig.h | 2 +- .../code/core/{SDLMath.h => lstMath.h} | 8 +- .../LSTCore/standalone/code/core/trkCore.cc | 30 +- .../LSTCore/standalone/code/core/trkCore.h | 36 +- .../standalone/code/core/write_sdl_ntuple.cc | 188 +++--- .../standalone/code/core/write_sdl_ntuple.h | 54 +- .../standalone/efficiency/bin/sdl_timing | 2 +- 42 files changed, 1670 insertions(+), 1656 deletions(-) rename RecoTracker/LSTCore/standalone/code/core/{SDLMath.h => lstMath.h} (98%) diff --git a/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc b/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc index e4c4e7d01d629..908eb796e581b 100644 --- a/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc +++ b/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc @@ -22,8 +22,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { descriptions.addWithDefaultLabel(desc); } - std::unique_ptr> produce(TrackerRecoGeometryRecord const& iRecord) { - return SDL::loadAndFillESHost(); + std::unique_ptr> produce(TrackerRecoGeometryRecord const& iRecord) { + return lst::loadAndFillESHost(); } }; diff --git a/RecoTracker/LST/plugins/alpaka/LSTProducer.cc b/RecoTracker/LST/plugins/alpaka/LSTProducer.cc index 1b34b949c64e5..18bd7c25a9aec 100644 --- a/RecoTracker/LST/plugins/alpaka/LSTProducer.cc +++ b/RecoTracker/LST/plugins/alpaka/LSTProducer.cc @@ -87,11 +87,11 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { private: edm::EDGetTokenT lstPixelSeedInputToken_; edm::EDGetTokenT lstPhase2OTHitsInputToken_; - device::ESGetToken, TrackerRecoGeometryRecord> lstESToken_; + device::ESGetToken, TrackerRecoGeometryRecord> lstESToken_; const bool verbose_, nopLSDupClean_, tcpLSTriplets_; edm::EDPutTokenT lstOutputToken_; - SDL::LST lst_; + lst::LST lst_; }; } // namespace ALPAKA_ACCELERATOR_NAMESPACE diff --git a/RecoTracker/LST/src/ES_ModulesDev.cc b/RecoTracker/LST/src/ES_ModulesDev.cc index 1c341f798246e..06a357860a7d5 100644 --- a/RecoTracker/LST/src/ES_ModulesDev.cc +++ b/RecoTracker/LST/src/ES_ModulesDev.cc @@ -2,4 +2,4 @@ #include "HeterogeneousCore/AlpakaInterface/interface/config.h" #include "FWCore/Utilities/interface/typelookup.h" -TYPELOOKUP_DATA_REG(SDL::LSTESData); +TYPELOOKUP_DATA_REG(lst::LSTESData); diff --git a/RecoTracker/LST/src/alpaka/ES_ModulesDev.cc b/RecoTracker/LST/src/alpaka/ES_ModulesDev.cc index a6736c698103b..54ded5e7a7c98 100644 --- a/RecoTracker/LST/src/alpaka/ES_ModulesDev.cc +++ b/RecoTracker/LST/src/alpaka/ES_ModulesDev.cc @@ -1,4 +1,4 @@ #include "RecoTracker/LSTCore/interface/LSTESData.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/typelookup.h" -TYPELOOKUP_ALPAKA_TEMPLATED_DATA_REG(SDL::LSTESData); +TYPELOOKUP_ALPAKA_TEMPLATED_DATA_REG(lst::LSTESData); diff --git a/RecoTracker/LSTCore/interface/Constants.h b/RecoTracker/LSTCore/interface/Constants.h index 8a26c3a2a6471..f2c99e960956d 100644 --- a/RecoTracker/LSTCore/interface/Constants.h +++ b/RecoTracker/LSTCore/interface/Constants.h @@ -7,7 +7,7 @@ #include "HeterogeneousCore/AlpakaInterface/interface/CachedBufAlloc.h" #endif -namespace SDL { +namespace lst { // Buffer type for allocations where auto type can't be used. template @@ -75,6 +75,6 @@ namespace SDL { static constexpr int kLayers = 7, kHits = 14; }; -} //namespace SDL +} //namespace lst #endif diff --git a/RecoTracker/LSTCore/interface/EndcapGeometry.h b/RecoTracker/LSTCore/interface/EndcapGeometry.h index 25d5315a61e7c..09bab83238754 100644 --- a/RecoTracker/LSTCore/interface/EndcapGeometry.h +++ b/RecoTracker/LSTCore/interface/EndcapGeometry.h @@ -9,7 +9,7 @@ #include #include -namespace SDL { +namespace lst { class EndcapGeometry { private: std::map dxdy_slope_; // dx/dy slope @@ -29,6 +29,6 @@ namespace SDL { void fillGeoMapArraysExplicit(); float getdxdy_slope(unsigned int detid) const; }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h b/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h index afacfc4ba6d25..1f1333d89f002 100644 --- a/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h +++ b/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h @@ -11,7 +11,7 @@ #include "RecoTracker/LSTCore/interface/Constants.h" -namespace SDL { +namespace lst { struct EndcapGeometryDev { const unsigned int* geoMapDetId; @@ -51,6 +51,6 @@ namespace SDL { inline EndcapGeometryDev const* data() const { return &data_; } }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/interface/LST.h b/RecoTracker/LSTCore/interface/LST.h index 7b44d07e0bb6c..cb5d8c912166c 100644 --- a/RecoTracker/LSTCore/interface/LST.h +++ b/RecoTracker/LSTCore/interface/LST.h @@ -6,10 +6,9 @@ #include #include -#include #include -namespace SDL { +namespace lst { template class Event; @@ -72,7 +71,7 @@ namespace SDL { const std::vector ph2_y, const std::vector ph2_z); - void getOutput(SDL::Event& event); + void getOutput(lst::Event& event); std::vector getHitIdxs(const short trackCandidateType, const unsigned int TCIdx, const unsigned int* TCHitIndices, @@ -108,6 +107,6 @@ namespace SDL { std::vector out_tc_trackCandidateType_; }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/interface/LSTESData.h b/RecoTracker/LSTCore/interface/LSTESData.h index 72ad204af1b43..770c36126d82b 100644 --- a/RecoTracker/LSTCore/interface/LSTESData.h +++ b/RecoTracker/LSTCore/interface/LSTESData.h @@ -11,7 +11,7 @@ #include #include -namespace SDL { +namespace lst { template struct LSTESData { @@ -41,22 +41,22 @@ namespace SDL { std::unique_ptr> loadAndFillESHost(); -} // namespace SDL +} // namespace lst 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 lst::LSTESData> copyAsync(TQueue& queue, + lst::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 lst::LSTESData>(srcData.nModules, srcData.nLowerModules, srcData.nPixels, srcData.nEndCapMap, diff --git a/RecoTracker/LSTCore/interface/Module.h b/RecoTracker/LSTCore/interface/Module.h index 3b94508c529e0..3fcd9ed92785c 100644 --- a/RecoTracker/LSTCore/interface/Module.h +++ b/RecoTracker/LSTCore/interface/Module.h @@ -3,7 +3,7 @@ #include "RecoTracker/LSTCore/interface/Constants.h" -namespace SDL { +namespace lst { enum SubDet { InnerPixel = 0, Barrel = 5, Endcap = 4 }; enum Side { NegZ = 1, PosZ = 2, Center = 3 }; @@ -224,5 +224,5 @@ namespace SDL { inline Modules const* data() const { return &data_; } }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/interface/ModuleConnectionMap.h b/RecoTracker/LSTCore/interface/ModuleConnectionMap.h index 3798690016c99..99600faeece13 100644 --- a/RecoTracker/LSTCore/interface/ModuleConnectionMap.h +++ b/RecoTracker/LSTCore/interface/ModuleConnectionMap.h @@ -8,7 +8,7 @@ #include #include -namespace SDL { +namespace lst { class ModuleConnectionMap { private: std::map> moduleConnections_; @@ -27,6 +27,6 @@ namespace SDL { }; using MapPLStoLayer = std::array, 3>; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/interface/PixelMap.h b/RecoTracker/LSTCore/interface/PixelMap.h index 40d5bbbdfab84..d6962ce976ebf 100644 --- a/RecoTracker/LSTCore/interface/PixelMap.h +++ b/RecoTracker/LSTCore/interface/PixelMap.h @@ -6,7 +6,7 @@ #include "RecoTracker/LSTCore/interface/Constants.h" -namespace SDL { +namespace lst { struct pixelMap { uint16_t pixelModuleIndex; @@ -28,6 +28,6 @@ namespace SDL { connectedPixelsIndexNeg(sizef), connectedPixelsSizesNeg(sizef) {} }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/interface/TiltedGeometry.h b/RecoTracker/LSTCore/interface/TiltedGeometry.h index 5d565fe789af5..6a8c6bab902b8 100644 --- a/RecoTracker/LSTCore/interface/TiltedGeometry.h +++ b/RecoTracker/LSTCore/interface/TiltedGeometry.h @@ -9,7 +9,7 @@ #include #include -namespace SDL { +namespace lst { class TiltedGeometry { private: std::map drdzs_; // dr/dz slope @@ -26,6 +26,6 @@ namespace SDL { float getDxDy(unsigned int detid) const; }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/interface/alpaka/Constants.h b/RecoTracker/LSTCore/interface/alpaka/Constants.h index 7c8aaff322aab..f80b500fd6a4e 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Constants.h +++ b/RecoTracker/LSTCore/interface/alpaka/Constants.h @@ -7,7 +7,7 @@ #include #endif -namespace SDL { +namespace lst { using namespace ALPAKA_ACCELERATOR_NAMESPACE; @@ -83,23 +83,26 @@ namespace SDL { ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float widthPS = 0.01; ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float pt_betaMax = 7.0; ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float magnetic_field = 3.8112; - // Since C++ can't represent infinity, SDL_INF = 123456789 was used to represent infinity in the data table - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float SDL_INF = 123456789.0; -} //namespace SDL - -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 - // Other working points - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP70 = 0.7776195f; // 70.0% TPR, 10.0% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP75 = 0.7181118f; // 75.0% TPR, 13.5% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP80 = 0.6492643f; // 80.0% TPR, 17.9% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP85 = 0.5655319f; // 85.0% TPR, 23.8% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP90 = 0.4592205f; // 90.0% TPR, 32.6% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP95 = 0.3073708f; // 95.0% TPR, 47.7% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP97p5 = 0.2001348f; // 97.5% TPR, 61.2% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP99 = 0.1120605f; // 99.0% TPR, 75.9% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP99p9 = 0.0218196f; // 99.9% TPR, 95.4% FPR -} // namespace T5DNN + // Since C++ can't represent infinity, lst_INF = 123456789 was used to represent infinity in the data table + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float lst_INF = 123456789.0; + + 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 + // Other working points + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP70 = 0.7776195f; // 70.0% TPR, 10.0% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP75 = 0.7181118f; // 75.0% TPR, 13.5% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP80 = 0.6492643f; // 80.0% TPR, 17.9% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP85 = 0.5655319f; // 85.0% TPR, 23.8% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP90 = 0.4592205f; // 90.0% TPR, 32.6% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP95 = 0.3073708f; // 95.0% TPR, 47.7% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP97p5 = 0.2001348f; // 97.5% TPR, 61.2% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP99 = 0.1120605f; // 99.0% TPR, 75.9% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP99p9 = 0.0218196f; // 99.9% TPR, 95.4% FPR + + } // namespace t5dnn + +} //namespace lst #endif diff --git a/RecoTracker/LSTCore/src/EndcapGeometry.cc b/RecoTracker/LSTCore/src/EndcapGeometry.cc index db31121267703..cf659f38246b8 100644 --- a/RecoTracker/LSTCore/src/EndcapGeometry.cc +++ b/RecoTracker/LSTCore/src/EndcapGeometry.cc @@ -1,8 +1,8 @@ #include "RecoTracker/LSTCore/interface/EndcapGeometry.h" -SDL::EndcapGeometry::EndcapGeometry(std::string filename) { load(filename); } +lst::EndcapGeometry::EndcapGeometry(std::string filename) { load(filename); } -void SDL::EndcapGeometry::load(std::string filename) { +void lst::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 lst::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 lst::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/LSTESData.cc b/RecoTracker/LSTCore/src/LSTESData.cc index d91019852165e..f7c9c865da0cf 100644 --- a/RecoTracker/LSTCore/src/LSTESData.cc +++ b/RecoTracker/LSTCore/src/LSTESData.cc @@ -39,10 +39,10 @@ namespace { return fullpath.string(); } - void loadMapsHost(SDL::MapPLStoLayer& pLStoLayer, - std::shared_ptr endcapGeometry, - std::shared_ptr tiltedGeometry, - std::shared_ptr moduleConnectionMap) { + void loadMapsHost(lst::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"); @@ -66,22 +66,22 @@ 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] = lst::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] = lst::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] = lst::ModuleConnectionMap(get_absolute_path_after_check_file_exists(path)); } } } // namespace -std::unique_ptr> SDL::loadAndFillESHost() { +std::unique_ptr> lst::loadAndFillESHost() { uint16_t nModules; uint16_t nLowerModules; unsigned int nPixels; - std::shared_ptr> modulesBuffers = nullptr; + std::shared_ptr> modulesBuffers = nullptr; auto pLStoLayer = std::make_shared(); auto endcapGeometry = std::make_shared(); auto tiltedGeometry = std::make_shared(); @@ -99,7 +99,7 @@ std::unique_ptr> SDL::loadAndFillESHost() auto path = get_absolute_path_after_check_file_exists(trackLooperDir() + "/data/OT800_IT615_pt0.8/sensor_centroids.bin"); - SDL::loadModulesFromFile(pLStoLayer.get(), + lst::loadModulesFromFile(pLStoLayer.get(), path.c_str(), nModules, nLowerModules, diff --git a/RecoTracker/LSTCore/src/ModuleConnectionMap.cc b/RecoTracker/LSTCore/src/ModuleConnectionMap.cc index eddd87fcaa657..3049399b92386 100644 --- a/RecoTracker/LSTCore/src/ModuleConnectionMap.cc +++ b/RecoTracker/LSTCore/src/ModuleConnectionMap.cc @@ -1,12 +1,12 @@ #include "RecoTracker/LSTCore/interface/ModuleConnectionMap.h" -SDL::ModuleConnectionMap::ModuleConnectionMap() {} +lst::ModuleConnectionMap::ModuleConnectionMap() {} -SDL::ModuleConnectionMap::ModuleConnectionMap(std::string filename) { load(filename); } +lst::ModuleConnectionMap::ModuleConnectionMap(std::string filename) { load(filename); } -SDL::ModuleConnectionMap::~ModuleConnectionMap() {} +lst::ModuleConnectionMap::~ModuleConnectionMap() {} -void SDL::ModuleConnectionMap::load(std::string filename) { +void lst::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 lst::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 lst::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& lst::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 lst::ModuleConnectionMap::size() const { return moduleConnections_.size(); } diff --git a/RecoTracker/LSTCore/src/ModuleMethods.h b/RecoTracker/LSTCore/src/ModuleMethods.h index a5649ab9bf85b..046afbdb6a764 100644 --- a/RecoTracker/LSTCore/src/ModuleMethods.h +++ b/RecoTracker/LSTCore/src/ModuleMethods.h @@ -13,7 +13,7 @@ #include "HeterogeneousCore/AlpakaInterface/interface/host.h" -namespace SDL { +namespace lst { struct ModuleMetaData { std::map detIdToIndex; std::map module_x; @@ -302,8 +302,8 @@ namespace SDL { r = 0; } else { setDerivedQuantities(detId, layer, ring, rod, module, subdet, side, m_x, m_y, m_z, eta, r); - isInverted = SDL::Modules::parseIsInverted(subdet, side, module, layer); - isLower = SDL::Modules::parseIsLower(isInverted, detId); + isInverted = lst::Modules::parseIsInverted(subdet, side, module, layer); + isLower = lst::Modules::parseIsLower(isInverted, detId); } if (isLower) { index = lowerModuleCounter; @@ -331,17 +331,17 @@ namespace SDL { //assigning other variables! if (detId == 1) { host_moduleType[index] = PixelModule; - host_moduleLayerType[index] = SDL::InnerPixelLayer; + host_moduleLayerType[index] = lst::InnerPixelLayer; host_dxdys[index] = 0; host_drdzs[index] = 0; host_isAnchor[index] = false; } else { - host_moduleType[index] = (m_t == 25 ? SDL::TwoS : SDL::PS); - host_moduleLayerType[index] = (m_t == 23 ? SDL::Pixel : SDL::Strip); + host_moduleType[index] = (m_t == 25 ? lst::TwoS : lst::PS); + host_moduleLayerType[index] = (m_t == 23 ? lst::Pixel : lst::Strip); - if (host_moduleType[index] == SDL::PS and host_moduleLayerType[index] == SDL::Pixel) { + if (host_moduleType[index] == lst::PS and host_moduleLayerType[index] == lst::Pixel) { host_isAnchor[index] = true; - } else if (host_moduleType[index] == SDL::TwoS and host_isLower[index]) { + } else if (host_moduleType[index] == lst::TwoS and host_isLower[index]) { host_isAnchor[index] = true; } else { host_isAnchor[index] = false; @@ -352,7 +352,7 @@ namespace SDL { } host_sdlLayers[index] = - layer + 6 * (subdet == SDL::Endcap) + 5 * (subdet == SDL::Endcap and host_moduleType[index] == SDL::TwoS); + layer + 6 * (subdet == lst::Endcap) + 5 * (subdet == lst::Endcap and host_moduleType[index] == lst::TwoS); } //partner module stuff, and slopes and drdz move around @@ -361,7 +361,7 @@ namespace SDL { auto& index = it->second; if (detId != 1) { host_partnerModuleIndices[index] = - mmd.detIdToIndex[SDL::Modules::parsePartnerModuleId(detId, host_isLower[index], host_isInverted[index])]; + mmd.detIdToIndex[lst::Modules::parsePartnerModuleId(detId, host_isLower[index], host_isInverted[index])]; //add drdz and slope importing stuff here! if (host_drdzs[index] == 0) { host_drdzs[index] = host_drdzs[host_partnerModuleIndices[index]]; @@ -408,5 +408,5 @@ namespace SDL { fillConnectedModuleArrayExplicit(modulesBuf.get(), nModules, queue, mmd, moduleConnectionMap); fillMapArraysExplicit(modulesBuf.get(), nModules, queue, mmd); }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/src/TiltedGeometry.cc b/RecoTracker/LSTCore/src/TiltedGeometry.cc index 564f1c8befeda..a68a9e223f45b 100644 --- a/RecoTracker/LSTCore/src/TiltedGeometry.cc +++ b/RecoTracker/LSTCore/src/TiltedGeometry.cc @@ -1,8 +1,8 @@ #include "RecoTracker/LSTCore/interface/TiltedGeometry.h" -SDL::TiltedGeometry::TiltedGeometry(std::string filename) { load(filename); } +lst::TiltedGeometry::TiltedGeometry(std::string filename) { load(filename); } -void SDL::TiltedGeometry::load(std::string filename) { +void lst::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 lst::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 lst::TiltedGeometry::getDxDy(unsigned int detid) const { if (dxdys_.find(detid) != dxdys_.end()) { return dxdys_.at(detid); } else { diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index fa524d859af67..86e1f3f196bc0 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 lst::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 lst::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 lst::Event::addHitToEvent(std::vector x, std::vector y, std::vector z, std::vector detId, @@ -160,14 +160,14 @@ 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); + hitsInGPU = new lst::Hits(); + hitsBuffers = new lst::HitsBuffer(nModules_, nHits, devAcc, queue); hitsInGPU->setData(*hitsBuffers); } if (rangesInGPU == nullptr) { - rangesInGPU = new SDL::ObjectRanges(); - rangesBuffers = new SDL::ObjectRangesBuffer(nModules_, nLowerModules_, devAcc, queue); + rangesInGPU = new lst::ObjectRanges(); + rangesBuffers = new lst::ObjectRangesBuffer(nModules_, nLowerModules_, devAcc, queue); rangesInGPU->setData(*rangesBuffers); } @@ -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 lst::Event::addPixelSegmentToEvent(std::vector hitIndices0, std::vector hitIndices1, std::vector hitIndices2, std::vector hitIndices3, @@ -266,7 +266,7 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitIndi WorkDiv3D const createMDArrayRangesGPU_workDiv = createWorkDiv(blocksPerGridCreateMD, threadsPerBlockCreateMD, elementsPerThread); - SDL::createMDArrayRangesGPU createMDArrayRangesGPU_kernel; + lst::createMDArrayRangesGPU createMDArrayRangesGPU_kernel; auto const createMDArrayRangesGPUTask(alpaka::createTaskKernel( createMDArrayRangesGPU_workDiv, createMDArrayRangesGPU_kernel, *modulesBuffers_->data(), *rangesInGPU)); @@ -281,8 +281,8 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitIndi nTotalMDs += N_MAX_PIXEL_MD_PER_MODULES; - mdsInGPU = new SDL::MiniDoublets(); - miniDoubletsBuffers = new SDL::MiniDoubletsBuffer(nTotalMDs, nLowerModules_, devAcc, queue); + mdsInGPU = new lst::MiniDoublets(); + miniDoubletsBuffers = new lst::MiniDoubletsBuffer(nTotalMDs, nLowerModules_, devAcc, queue); mdsInGPU->setData(*miniDoubletsBuffers); alpaka::memcpy(queue, miniDoubletsBuffers->nMemoryLocations_buf, nTotalMDs_view); @@ -297,7 +297,7 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitIndi WorkDiv3D const createSegmentArrayRanges_workDiv = createWorkDiv(blocksPerGridCreateSeg, threadsPerBlockCreateSeg, elementsPerThread); - SDL::createSegmentArrayRanges createSegmentArrayRanges_kernel; + lst::createSegmentArrayRanges createSegmentArrayRanges_kernel; auto const createSegmentArrayRangesTask(alpaka::createTaskKernel(createSegmentArrayRanges_workDiv, createSegmentArrayRanges_kernel, *modulesBuffers_->data(), @@ -314,9 +314,9 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitIndi nTotalSegments += N_MAX_PIXEL_SEGMENTS_PER_MODULE; - segmentsInGPU = new SDL::Segments(); + segmentsInGPU = new lst::Segments(); segmentsBuffers = - new SDL::SegmentsBuffer(nTotalSegments, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); + new lst::SegmentsBuffer(nTotalSegments, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); segmentsInGPU->setData(*segmentsBuffers); alpaka::memcpy(queue, segmentsBuffers->nMemoryLocations_buf, nTotalSegments_view); @@ -393,7 +393,7 @@ void SDL::Event::addPixelSegmentToEvent(std::vector hitIndi alpaka::wait(queue); } -void SDL::Event::createMiniDoublets() { +void lst::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_); @@ -410,7 +410,7 @@ void SDL::Event::createMiniDoublets() { WorkDiv3D const createMDArrayRangesGPU_workDiv = createWorkDiv(blocksPerGridCreateMD, threadsPerBlockCreateMD, elementsPerThread); - SDL::createMDArrayRangesGPU createMDArrayRangesGPU_kernel; + lst::createMDArrayRangesGPU createMDArrayRangesGPU_kernel; auto const createMDArrayRangesGPUTask(alpaka::createTaskKernel( createMDArrayRangesGPU_workDiv, createMDArrayRangesGPU_kernel, *modulesBuffers_->data(), *rangesInGPU)); @@ -427,8 +427,8 @@ void SDL::Event::createMiniDoublets() { nTotalMDs += N_MAX_PIXEL_MD_PER_MODULES; if (mdsInGPU == nullptr) { - mdsInGPU = new SDL::MiniDoublets(); - miniDoubletsBuffers = new SDL::MiniDoubletsBuffer(nTotalMDs, nLowerModules_, devAcc, queue); + mdsInGPU = new lst::MiniDoublets(); + miniDoubletsBuffers = new lst::MiniDoubletsBuffer(nTotalMDs, nLowerModules_, devAcc, queue); mdsInGPU->setData(*miniDoubletsBuffers); } @@ -437,7 +437,7 @@ void SDL::Event::createMiniDoublets() { WorkDiv3D const createMiniDoubletsInGPUv2_workDiv = createWorkDiv(blocksPerGridCreateMDInGPU, threadsPerBlockCreateMDInGPU, elementsPerThread); - SDL::createMiniDoubletsInGPUv2 createMiniDoubletsInGPUv2_kernel; + lst::createMiniDoubletsInGPUv2 createMiniDoubletsInGPUv2_kernel; auto const createMiniDoubletsInGPUv2Task(alpaka::createTaskKernel(createMiniDoubletsInGPUv2_workDiv, createMiniDoubletsInGPUv2_kernel, *modulesBuffers_->data(), @@ -452,7 +452,7 @@ void SDL::Event::createMiniDoublets() { WorkDiv3D const addMiniDoubletRangesToEventExplicit_workDiv = createWorkDiv(blocksPerGridAddMD, threadsPerBlockAddMD, elementsPerThread); - SDL::addMiniDoubletRangesToEventExplicit addMiniDoubletRangesToEventExplicit_kernel; + lst::addMiniDoubletRangesToEventExplicit addMiniDoubletRangesToEventExplicit_kernel; auto const addMiniDoubletRangesToEventExplicitTask( alpaka::createTaskKernel(addMiniDoubletRangesToEventExplicit_workDiv, addMiniDoubletRangesToEventExplicit_kernel, @@ -469,11 +469,11 @@ void SDL::Event::createMiniDoublets() { } } -void SDL::Event::createSegmentsWithModuleMap() { +void lst::Event::createSegmentsWithModuleMap() { if (segmentsInGPU == nullptr) { - segmentsInGPU = new SDL::Segments(); + segmentsInGPU = new lst::Segments(); segmentsBuffers = - new SDL::SegmentsBuffer(nTotalSegments, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); + new lst::SegmentsBuffer(nTotalSegments, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); segmentsInGPU->setData(*segmentsBuffers); } @@ -482,7 +482,7 @@ void SDL::Event::createSegmentsWithModuleMap() { WorkDiv3D const createSegmentsInGPUv2_workDiv = createWorkDiv(blocksPerGridCreateSeg, threadsPerBlockCreateSeg, elementsPerThread); - SDL::createSegmentsInGPUv2 createSegmentsInGPUv2_kernel; + lst::createSegmentsInGPUv2 createSegmentsInGPUv2_kernel; auto const createSegmentsInGPUv2Task(alpaka::createTaskKernel(createSegmentsInGPUv2_workDiv, createSegmentsInGPUv2_kernel, *modulesBuffers_->data(), @@ -497,7 +497,7 @@ void SDL::Event::createSegmentsWithModuleMap() { WorkDiv3D const addSegmentRangesToEventExplicit_workDiv = createWorkDiv(blocksPerGridAddSeg, threadsPerBlockAddSeg, elementsPerThread); - SDL::addSegmentRangesToEventExplicit addSegmentRangesToEventExplicit_kernel; + lst::addSegmentRangesToEventExplicit addSegmentRangesToEventExplicit_kernel; auto const addSegmentRangesToEventExplicitTask( alpaka::createTaskKernel(addSegmentRangesToEventExplicit_workDiv, addSegmentRangesToEventExplicit_kernel, @@ -513,14 +513,14 @@ void SDL::Event::createSegmentsWithModuleMap() { } } -void SDL::Event::createTriplets() { +void lst::Event::createTriplets() { if (tripletsInGPU == nullptr) { 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; + lst::createTripletArrayRanges createTripletArrayRanges_kernel; auto const createTripletArrayRangesTask(alpaka::createTaskKernel(createTripletArrayRanges_workDiv, createTripletArrayRanges_kernel, *modulesBuffers_->data(), @@ -536,9 +536,9 @@ void SDL::Event::createTriplets() { alpaka::memcpy(queue, maxTriplets_buf, rangesBuffers->device_nTotalTrips_buf); alpaka::wait(queue); - tripletsInGPU = new SDL::Triplets(); + tripletsInGPU = new lst::Triplets(); tripletsBuffers = - new SDL::TripletsBuffer(*alpaka::getPtrNative(maxTriplets_buf), nLowerModules_, devAcc, queue); + new lst::TripletsBuffer(*alpaka::getPtrNative(maxTriplets_buf), nLowerModules_, devAcc, queue); tripletsInGPU->setData(*tripletsBuffers); alpaka::memcpy(queue, tripletsBuffers->nMemoryLocations_buf, maxTriplets_buf); @@ -588,7 +588,7 @@ void SDL::Event::createTriplets() { WorkDiv3D const createTripletsInGPUv2_workDiv = createWorkDiv(blocksPerGridCreateTrip, threadsPerBlockCreateTrip, elementsPerThread); - SDL::createTripletsInGPUv2 createTripletsInGPUv2_kernel; + lst::createTripletsInGPUv2 createTripletsInGPUv2_kernel; auto const createTripletsInGPUv2Task(alpaka::createTaskKernel(createTripletsInGPUv2_workDiv, createTripletsInGPUv2_kernel, *modulesBuffers_->data(), @@ -606,7 +606,7 @@ void SDL::Event::createTriplets() { WorkDiv3D const addTripletRangesToEventExplicit_workDiv = createWorkDiv(blocksPerGridAddTrip, threadsPerBlockAddTrip, elementsPerThread); - SDL::addTripletRangesToEventExplicit addTripletRangesToEventExplicit_kernel; + lst::addTripletRangesToEventExplicit addTripletRangesToEventExplicit_kernel; auto const addTripletRangesToEventExplicitTask( alpaka::createTaskKernel(addTripletRangesToEventExplicit_workDiv, addTripletRangesToEventExplicit_kernel, @@ -622,10 +622,10 @@ void SDL::Event::createTriplets() { } } -void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_triplets) { +void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_triplets) { if (trackCandidatesInGPU == nullptr) { - trackCandidatesInGPU = new SDL::TrackCandidates(); - trackCandidatesBuffers = new SDL::TrackCandidatesBuffer( + trackCandidatesInGPU = new lst::TrackCandidates(); + trackCandidatesBuffers = new lst::TrackCandidatesBuffer( N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devAcc, queue); trackCandidatesInGPU->setData(*trackCandidatesBuffers); } @@ -641,7 +641,7 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ WorkDiv3D const crossCleanpT3_workDiv = createWorkDiv(blocksPerGrid_crossCleanpT3, threadsPerBlock_crossCleanpT3, elementsPerThread); - SDL::crossCleanpT3 crossCleanpT3_kernel; + lst::crossCleanpT3 crossCleanpT3_kernel; auto const crossCleanpT3Task(alpaka::createTaskKernel(crossCleanpT3_workDiv, crossCleanpT3_kernel, *modulesBuffers_->data(), @@ -657,7 +657,7 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ WorkDiv3D const addpT3asTrackCandidatesInGPU_workDiv = createWorkDiv( blocksPerGrid_addpT3asTrackCandidatesInGPU, threadsPerBlock_addpT3asTrackCandidatesInGPU, elementsPerThread); - SDL::addpT3asTrackCandidatesInGPU addpT3asTrackCandidatesInGPU_kernel; + lst::addpT3asTrackCandidatesInGPU addpT3asTrackCandidatesInGPU_kernel; auto const addpT3asTrackCandidatesInGPUTask(alpaka::createTaskKernel(addpT3asTrackCandidatesInGPU_workDiv, addpT3asTrackCandidatesInGPU_kernel, nLowerModules_, @@ -674,7 +674,7 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ WorkDiv3D const removeDupQuintupletsInGPUBeforeTC_workDiv = createWorkDiv(blocksPerGridRemoveDupQuints, threadsPerBlockRemoveDupQuints, elementsPerThread); - SDL::removeDupQuintupletsInGPUBeforeTC removeDupQuintupletsInGPUBeforeTC_kernel; + lst::removeDupQuintupletsInGPUBeforeTC removeDupQuintupletsInGPUBeforeTC_kernel; auto const removeDupQuintupletsInGPUBeforeTCTask( alpaka::createTaskKernel(removeDupQuintupletsInGPUBeforeTC_workDiv, removeDupQuintupletsInGPUBeforeTC_kernel, @@ -688,7 +688,7 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ WorkDiv3D const crossCleanT5_workDiv = createWorkDiv(blocksPerGrid_crossCleanT5, threadsPerBlock_crossCleanT5, elementsPerThread); - SDL::crossCleanT5 crossCleanT5_kernel; + lst::crossCleanT5 crossCleanT5_kernel; auto const crossCleanT5Task(alpaka::createTaskKernel(crossCleanT5_workDiv, crossCleanT5_kernel, *modulesBuffers_->data(), @@ -704,7 +704,7 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ WorkDiv3D const addT5asTrackCandidateInGPU_workDiv = createWorkDiv( blocksPerGrid_addT5asTrackCandidateInGPU, threadsPerBlock_addT5asTrackCandidateInGPU, elementsPerThread); - SDL::addT5asTrackCandidateInGPU addT5asTrackCandidateInGPU_kernel; + lst::addT5asTrackCandidateInGPU addT5asTrackCandidateInGPU_kernel; auto const addT5asTrackCandidateInGPUTask(alpaka::createTaskKernel(addT5asTrackCandidateInGPU_workDiv, addT5asTrackCandidateInGPU_kernel, nLowerModules_, @@ -720,7 +720,7 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ WorkDiv3D const checkHitspLS_workDiv = createWorkDiv(blocksPerGridCheckHitspLS, threadsPerBlockCheckHitspLS, elementsPerThread); - SDL::checkHitspLS checkHitspLS_kernel; + lst::checkHitspLS checkHitspLS_kernel; auto const checkHitspLSTask(alpaka::createTaskKernel( checkHitspLS_workDiv, checkHitspLS_kernel, *modulesBuffers_->data(), *segmentsInGPU, true)); @@ -732,7 +732,7 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ WorkDiv3D const crossCleanpLS_workDiv = createWorkDiv(blocksPerGrid_crossCleanpLS, threadsPerBlock_crossCleanpLS, elementsPerThread); - SDL::crossCleanpLS crossCleanpLS_kernel; + lst::crossCleanpLS crossCleanpLS_kernel; auto const crossCleanpLSTask(alpaka::createTaskKernel(crossCleanpLS_workDiv, crossCleanpLS_kernel, *modulesBuffers_->data(), @@ -751,7 +751,7 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ WorkDiv3D const addpLSasTrackCandidateInGPU_workDiv = createWorkDiv( blocksPerGrid_addpLSasTrackCandidateInGPU, threadsPerBlock_addpLSasTrackCandidateInGPU, elementsPerThread); - SDL::addpLSasTrackCandidateInGPU addpLSasTrackCandidateInGPU_kernel; + lst::addpLSasTrackCandidateInGPU addpLSasTrackCandidateInGPU_kernel; auto const addpLSasTrackCandidateInGPUTask(alpaka::createTaskKernel(addpLSasTrackCandidateInGPU_workDiv, addpLSasTrackCandidateInGPU_kernel, nLowerModules_, @@ -787,10 +787,10 @@ void SDL::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ } } -void SDL::Event::createPixelTriplets() { +void lst::Event::createPixelTriplets() { if (pixelTripletsInGPU == nullptr) { - pixelTripletsInGPU = new SDL::PixelTriplets(); - pixelTripletsBuffers = new SDL::PixelTripletsBuffer(N_MAX_PIXEL_TRIPLETS, devAcc, queue); + pixelTripletsInGPU = new lst::PixelTriplets(); + pixelTripletsBuffers = new lst::PixelTripletsBuffer(N_MAX_PIXEL_TRIPLETS, devAcc, queue); pixelTripletsInGPU->setData(*pixelTripletsBuffers); } @@ -865,7 +865,7 @@ void SDL::Event::createPixelTriplets() { WorkDiv3D const createPixelTripletsInGPUFromMapv2_workDiv = createWorkDiv(blocksPerGrid, threadsPerBlock, elementsPerThread); - SDL::createPixelTripletsInGPUFromMapv2 createPixelTripletsInGPUFromMapv2_kernel; + lst::createPixelTripletsInGPUFromMapv2 createPixelTripletsInGPUFromMapv2_kernel; auto const createPixelTripletsInGPUFromMapv2Task( alpaka::createTaskKernel(createPixelTripletsInGPUFromMapv2_workDiv, createPixelTripletsInGPUFromMapv2_kernel, @@ -898,7 +898,7 @@ void SDL::Event::createPixelTriplets() { WorkDiv3D const removeDupPixelTripletsInGPUFromMap_workDiv = createWorkDiv(blocksPerGridDupPixTrip, threadsPerBlockDupPixTrip, elementsPerThread); - SDL::removeDupPixelTripletsInGPUFromMap removeDupPixelTripletsInGPUFromMap_kernel; + lst::removeDupPixelTripletsInGPUFromMap removeDupPixelTripletsInGPUFromMap_kernel; auto const removeDupPixelTripletsInGPUFromMapTask(alpaka::createTaskKernel( removeDupPixelTripletsInGPUFromMap_workDiv, removeDupPixelTripletsInGPUFromMap_kernel, *pixelTripletsInGPU)); @@ -906,13 +906,13 @@ void SDL::Event::createPixelTriplets() { alpaka::wait(queue); } -void SDL::Event::createQuintuplets() { +void lst::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; + lst::createEligibleModulesListForQuintupletsGPU createEligibleModulesListForQuintupletsGPU_kernel; auto const createEligibleModulesListForQuintupletsGPUTask( alpaka::createTaskKernel(createEligibleModulesListForQuintupletsGPU_workDiv, createEligibleModulesListForQuintupletsGPU_kernel, @@ -934,8 +934,8 @@ void SDL::Event::createQuintuplets() { unsigned int nTotalQuintuplets = *alpaka::getPtrNative(nTotalQuintuplets_buf); if (quintupletsInGPU == nullptr) { - quintupletsInGPU = new SDL::Quintuplets(); - quintupletsBuffers = new SDL::QuintupletsBuffer(nTotalQuintuplets, nLowerModules_, devAcc, queue); + quintupletsInGPU = new lst::Quintuplets(); + quintupletsBuffers = new lst::QuintupletsBuffer(nTotalQuintuplets, nLowerModules_, devAcc, queue); quintupletsInGPU->setData(*quintupletsBuffers); alpaka::memcpy(queue, quintupletsBuffers->nMemoryLocations_buf, nTotalQuintuplets_buf); @@ -947,7 +947,7 @@ void SDL::Event::createQuintuplets() { WorkDiv3D const createQuintupletsInGPUv2_workDiv = createWorkDiv(blocksPerGridQuints, threadsPerBlockQuints, elementsPerThread); - SDL::createQuintupletsInGPUv2 createQuintupletsInGPUv2_kernel; + lst::createQuintupletsInGPUv2 createQuintupletsInGPUv2_kernel; auto const createQuintupletsInGPUv2Task(alpaka::createTaskKernel(createQuintupletsInGPUv2_workDiv, createQuintupletsInGPUv2_kernel, *modulesBuffers_->data(), @@ -965,7 +965,7 @@ void SDL::Event::createQuintuplets() { WorkDiv3D const removeDupQuintupletsInGPUAfterBuild_workDiv = createWorkDiv(blocksPerGridDupQuint, threadsPerBlockDupQuint, elementsPerThread); - SDL::removeDupQuintupletsInGPUAfterBuild removeDupQuintupletsInGPUAfterBuild_kernel; + lst::removeDupQuintupletsInGPUAfterBuild removeDupQuintupletsInGPUAfterBuild_kernel; auto const removeDupQuintupletsInGPUAfterBuildTask( alpaka::createTaskKernel(removeDupQuintupletsInGPUAfterBuild_workDiv, removeDupQuintupletsInGPUAfterBuild_kernel, @@ -980,7 +980,7 @@ void SDL::Event::createQuintuplets() { WorkDiv3D const addQuintupletRangesToEventExplicit_workDiv = createWorkDiv(blocksPerGridAddQuint, threadsPerBlockAddQuint, elementsPerThread); - SDL::addQuintupletRangesToEventExplicit addQuintupletRangesToEventExplicit_kernel; + lst::addQuintupletRangesToEventExplicit addQuintupletRangesToEventExplicit_kernel; auto const addQuintupletRangesToEventExplicitTask( alpaka::createTaskKernel(addQuintupletRangesToEventExplicit_workDiv, addQuintupletRangesToEventExplicit_kernel, @@ -996,14 +996,14 @@ void SDL::Event::createQuintuplets() { } } -void SDL::Event::pixelLineSegmentCleaning(bool no_pls_dupclean) { +void lst::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); WorkDiv3D const checkHitspLS_workDiv = createWorkDiv(blocksPerGridCheckHitspLS, threadsPerBlockCheckHitspLS, elementsPerThread); - SDL::checkHitspLS checkHitspLS_kernel; + lst::checkHitspLS checkHitspLS_kernel; auto const checkHitspLSTask(alpaka::createTaskKernel( checkHitspLS_workDiv, checkHitspLS_kernel, *modulesBuffers_->data(), *segmentsInGPU, false)); @@ -1012,15 +1012,15 @@ void SDL::Event::pixelLineSegmentCleaning(bool no_pls_dupclean) { } } -void SDL::Event::createPixelQuintuplets() { +void lst::Event::createPixelQuintuplets() { if (pixelQuintupletsInGPU == nullptr) { - pixelQuintupletsInGPU = new SDL::PixelQuintuplets(); - pixelQuintupletsBuffers = new SDL::PixelQuintupletsBuffer(N_MAX_PIXEL_QUINTUPLETS, devAcc, queue); + pixelQuintupletsInGPU = new lst::PixelQuintuplets(); + pixelQuintupletsBuffers = new lst::PixelQuintupletsBuffer(N_MAX_PIXEL_QUINTUPLETS, devAcc, queue); pixelQuintupletsInGPU->setData(*pixelQuintupletsBuffers); } if (trackCandidatesInGPU == nullptr) { - trackCandidatesInGPU = new SDL::TrackCandidates(); - trackCandidatesBuffers = new SDL::TrackCandidatesBuffer( + trackCandidatesInGPU = new lst::TrackCandidates(); + trackCandidatesBuffers = new lst::TrackCandidatesBuffer( N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devAcc, queue); trackCandidatesInGPU->setData(*trackCandidatesBuffers); } @@ -1094,7 +1094,7 @@ void SDL::Event::createPixelQuintuplets() { WorkDiv3D const createPixelQuintupletsInGPUFromMapv2_workDiv = createWorkDiv(blocksPerGridCreatePixQuints, threadsPerBlockCreatePixQuints, elementsPerThread); - SDL::createPixelQuintupletsInGPUFromMapv2 createPixelQuintupletsInGPUFromMapv2_kernel; + lst::createPixelQuintupletsInGPUFromMapv2 createPixelQuintupletsInGPUFromMapv2_kernel; auto const createPixelQuintupletsInGPUFromMapv2Task( alpaka::createTaskKernel(createPixelQuintupletsInGPUFromMapv2_workDiv, createPixelQuintupletsInGPUFromMapv2_kernel, @@ -1116,7 +1116,7 @@ void SDL::Event::createPixelQuintuplets() { WorkDiv3D const removeDupPixelQuintupletsInGPUFromMap_workDiv = createWorkDiv(blocksPerGridDupPix, threadsPerBlockDupPix, elementsPerThread); - SDL::removeDupPixelQuintupletsInGPUFromMap removeDupPixelQuintupletsInGPUFromMap_kernel; + lst::removeDupPixelQuintupletsInGPUFromMap removeDupPixelQuintupletsInGPUFromMap_kernel; auto const removeDupPixelQuintupletsInGPUFromMapTask( alpaka::createTaskKernel(removeDupPixelQuintupletsInGPUFromMap_workDiv, removeDupPixelQuintupletsInGPUFromMap_kernel, @@ -1129,7 +1129,7 @@ void SDL::Event::createPixelQuintuplets() { WorkDiv3D const addpT5asTrackCandidateInGPU_workDiv = createWorkDiv(blocksPerGridAddpT5asTrackCan, threadsPerBlockAddpT5asTrackCan, elementsPerThread); - SDL::addpT5asTrackCandidateInGPU addpT5asTrackCandidateInGPU_kernel; + lst::addpT5asTrackCandidateInGPU addpT5asTrackCandidateInGPU_kernel; auto const addpT5asTrackCandidateInGPUTask(alpaka::createTaskKernel(addpT5asTrackCandidateInGPU_workDiv, addpT5asTrackCandidateInGPU_kernel, nLowerModules_, @@ -1151,7 +1151,7 @@ void SDL::Event::createPixelQuintuplets() { #endif } -void SDL::Event::addMiniDoubletsToEventExplicit() { +void lst::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 lst::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 lst::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 lst::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 lst::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 lst::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 lst::Event::getNumberOfHitsByLayerBarrel(unsigned int layer) { return n_hits_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfHitsByLayerEndcap(unsigned int layer) { +unsigned int lst::Event::getNumberOfHitsByLayerEndcap(unsigned int layer) { return n_hits_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfMiniDoublets() { +unsigned int lst::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 lst::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 lst::Event::getNumberOfMiniDoubletsByLayerBarrel(unsigned int layer) { return n_minidoublets_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfMiniDoubletsByLayerEndcap(unsigned int layer) { +unsigned int lst::Event::getNumberOfMiniDoubletsByLayerEndcap(unsigned int layer) { return n_minidoublets_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfSegments() { +unsigned int lst::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 lst::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 lst::Event::getNumberOfSegmentsByLayerBarrel(unsigned int layer) { return n_segments_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfSegmentsByLayerEndcap(unsigned int layer) { +unsigned int lst::Event::getNumberOfSegmentsByLayerEndcap(unsigned int layer) { return n_segments_by_layer_endcap_[layer]; } -unsigned int SDL::Event::getNumberOfTriplets() { +unsigned int lst::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 lst::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 lst::Event::getNumberOfTripletsByLayerBarrel(unsigned int layer) { return n_triplets_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfTripletsByLayerEndcap(unsigned int layer) { +unsigned int lst::Event::getNumberOfTripletsByLayerEndcap(unsigned int layer) { return n_triplets_by_layer_endcap_[layer]; } -int SDL::Event::getNumberOfPixelTriplets() { +int lst::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 lst::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 lst::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 lst::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 lst::Event::getNumberOfQuintupletsByLayerBarrel(unsigned int layer) { return n_quintuplets_by_layer_barrel_[layer]; } -unsigned int SDL::Event::getNumberOfQuintupletsByLayerEndcap(unsigned int layer) { +unsigned int lst::Event::getNumberOfQuintupletsByLayerEndcap(unsigned int layer) { return n_quintuplets_by_layer_endcap_[layer]; } -int SDL::Event::getNumberOfTrackCandidates() { +int lst::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 lst::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 lst::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 lst::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 lst::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 lst::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 +lst::HitsBuffer* lst::Event::getHits() //std::shared_ptr should take care of garbage collection { if (hitsInCPU == nullptr) { auto nHits_buf = allocBufWrapper(devHost, 1, queue); @@ -1500,7 +1500,7 @@ SDL::HitsBuffer* SDL::Event::getHits() //std::shared_ptr should alpaka::wait(queue); unsigned int nHits = *alpaka::getPtrNative(nHits_buf); - hitsInCPU = new SDL::HitsBuffer(nModules_, nHits, devHost, queue); + hitsInCPU = new lst::HitsBuffer(nModules_, nHits, devHost, queue); hitsInCPU->setData(*hitsInCPU); *alpaka::getPtrNative(hitsInCPU->nHits_buf) = nHits; @@ -1515,14 +1515,14 @@ SDL::HitsBuffer* SDL::Event::getHits() //std::shared_ptr should return hitsInCPU; } -SDL::HitsBuffer* SDL::Event::getHitsInCMSSW() { +lst::HitsBuffer* lst::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 lst::HitsBuffer(nModules_, nHits, devHost, queue); hitsInCPU->setData(*hitsInCPU); *alpaka::getPtrNative(hitsInCPU->nHits_buf) = nHits; @@ -1532,9 +1532,9 @@ SDL::HitsBuffer* SDL::Event::getHitsInCMSSW() { return hitsInCPU; } -SDL::ObjectRangesBuffer* SDL::Event::getRanges() { +lst::ObjectRangesBuffer* lst::Event::getRanges() { if (rangesInCPU == nullptr) { - rangesInCPU = new SDL::ObjectRangesBuffer(nModules_, nLowerModules_, devHost, queue); + rangesInCPU = new lst::ObjectRangesBuffer(nModules_, nLowerModules_, devHost, queue); rangesInCPU->setData(*rangesInCPU); alpaka::memcpy(queue, rangesInCPU->hitRanges_buf, rangesBuffers->hitRanges_buf); @@ -1547,7 +1547,7 @@ SDL::ObjectRangesBuffer* SDL::Event::getRanges() { return rangesInCPU; } -SDL::MiniDoubletsBuffer* SDL::Event::getMiniDoublets() { +lst::MiniDoubletsBuffer* lst::Event::getMiniDoublets() { if (mdsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based mdsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1555,7 +1555,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 lst::MiniDoubletsBuffer(nMemHost, nLowerModules_, devHost, queue); mdsInCPU->setData(*mdsInCPU); *alpaka::getPtrNative(mdsInCPU->nMemoryLocations_buf) = nMemHost; @@ -1569,7 +1569,7 @@ SDL::MiniDoubletsBuffer* SDL::Event::getMiniDoublets() { return mdsInCPU; } -SDL::SegmentsBuffer* SDL::Event::getSegments() { +lst::SegmentsBuffer* lst::Event::getSegments() { if (segmentsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based segmentsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1578,7 +1578,7 @@ SDL::SegmentsBuffer* SDL::Event::getSegments() { unsigned int nMemHost = *alpaka::getPtrNative(nMemHost_buf); segmentsInCPU = - new SDL::SegmentsBuffer(nMemHost, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devHost, queue); + new lst::SegmentsBuffer(nMemHost, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devHost, queue); segmentsInCPU->setData(*segmentsInCPU); *alpaka::getPtrNative(segmentsInCPU->nMemoryLocations_buf) = nMemHost; @@ -1605,7 +1605,7 @@ SDL::SegmentsBuffer* SDL::Event::getSegments() { return segmentsInCPU; } -SDL::TripletsBuffer* SDL::Event::getTriplets() { +lst::TripletsBuffer* lst::Event::getTriplets() { if (tripletsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based tripletsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1613,7 +1613,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 lst::TripletsBuffer(nMemHost, nLowerModules_, devHost, queue); tripletsInCPU->setData(*tripletsInCPU); *alpaka::getPtrNative(tripletsInCPU->nMemoryLocations_buf) = nMemHost; @@ -1641,7 +1641,7 @@ SDL::TripletsBuffer* SDL::Event::getTriplets() { return tripletsInCPU; } -SDL::QuintupletsBuffer* SDL::Event::getQuintuplets() { +lst::QuintupletsBuffer* lst::Event::getQuintuplets() { if (quintupletsInCPU == nullptr) { // Get nMemoryLocations parameter to initialize host based quintupletsInCPU auto nMemHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1649,7 +1649,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 lst::QuintupletsBuffer(nMemHost, nLowerModules_, devHost, queue); quintupletsInCPU->setData(*quintupletsInCPU); *alpaka::getPtrNative(quintupletsInCPU->nMemoryLocations_buf) = nMemHost; @@ -1677,7 +1677,7 @@ SDL::QuintupletsBuffer* SDL::Event::getQuintuplets() { return quintupletsInCPU; } -SDL::PixelTripletsBuffer* SDL::Event::getPixelTriplets() { +lst::PixelTripletsBuffer* lst::Event::getPixelTriplets() { if (pixelTripletsInCPU == nullptr) { // Get nPixelTriplets parameter to initialize host based quintupletsInCPU auto nPixelTriplets_buf = allocBufWrapper(devHost, 1, queue); @@ -1685,7 +1685,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 lst::PixelTripletsBuffer(nPixelTriplets, devHost, queue); pixelTripletsInCPU->setData(*pixelTripletsInCPU); *alpaka::getPtrNative(pixelTripletsInCPU->nPixelTriplets_buf) = nPixelTriplets; @@ -1716,7 +1716,7 @@ SDL::PixelTripletsBuffer* SDL::Event::getPixelTriplets() { return pixelTripletsInCPU; } -SDL::PixelQuintupletsBuffer* SDL::Event::getPixelQuintuplets() { +lst::PixelQuintupletsBuffer* lst::Event::getPixelQuintuplets() { if (pixelQuintupletsInCPU == nullptr) { // Get nPixelQuintuplets parameter to initialize host based quintupletsInCPU auto nPixelQuintuplets_buf = allocBufWrapper(devHost, 1, queue); @@ -1724,7 +1724,7 @@ SDL::PixelQuintupletsBuffer* SDL::Event::getPixelQuintuplets() { alpaka::wait(queue); unsigned int nPixelQuintuplets = *alpaka::getPtrNative(nPixelQuintuplets_buf); - pixelQuintupletsInCPU = new SDL::PixelQuintupletsBuffer(nPixelQuintuplets, devHost, queue); + pixelQuintupletsInCPU = new lst::PixelQuintupletsBuffer(nPixelQuintuplets, devHost, queue); pixelQuintupletsInCPU->setData(*pixelQuintupletsInCPU); *alpaka::getPtrNative(pixelQuintupletsInCPU->nPixelQuintuplets_buf) = nPixelQuintuplets; @@ -1752,7 +1752,7 @@ SDL::PixelQuintupletsBuffer* SDL::Event::getPixelQuintuplets() { return pixelQuintupletsInCPU; } -SDL::TrackCandidatesBuffer* SDL::Event::getTrackCandidates() { +lst::TrackCandidatesBuffer* lst::Event::getTrackCandidates() { if (trackCandidatesInCPU == nullptr) { // Get nTrackCanHost parameter to initialize host based trackCandidatesInCPU auto nTrackCanHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1760,7 +1760,7 @@ SDL::TrackCandidatesBuffer* SDL::Event::getTrackCandidates() { alpaka::wait(queue); unsigned int nTrackCanHost = *alpaka::getPtrNative(nTrackCanHost_buf); - trackCandidatesInCPU = new SDL::TrackCandidatesBuffer( + trackCandidatesInCPU = new lst::TrackCandidatesBuffer( N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devHost, queue); trackCandidatesInCPU->setData(*trackCandidatesInCPU); @@ -1790,7 +1790,7 @@ SDL::TrackCandidatesBuffer* SDL::Event::getTrackCandidates() { return trackCandidatesInCPU; } -SDL::TrackCandidatesBuffer* SDL::Event::getTrackCandidatesInCMSSW() { +lst::TrackCandidatesBuffer* lst::Event::getTrackCandidatesInCMSSW() { if (trackCandidatesInCPU == nullptr) { // Get nTrackCanHost parameter to initialize host based trackCandidatesInCPU auto nTrackCanHost_buf = allocBufWrapper(devHost, 1, queue); @@ -1798,7 +1798,7 @@ SDL::TrackCandidatesBuffer* SDL::Event::getTrackCandidatesInCMSS alpaka::wait(queue); unsigned int nTrackCanHost = *alpaka::getPtrNative(nTrackCanHost_buf); - trackCandidatesInCPU = new SDL::TrackCandidatesBuffer( + trackCandidatesInCPU = new lst::TrackCandidatesBuffer( N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devHost, queue); trackCandidatesInCPU->setData(*trackCandidatesInCPU); @@ -1818,10 +1818,11 @@ SDL::TrackCandidatesBuffer* SDL::Event::getTrackCandidatesInCMSS return trackCandidatesInCPU; } -SDL::ModulesBuffer* SDL::Event::getModules(bool isFull) { +<<<<<<< HEAD +lst::ModulesBuffer* lst::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 lst::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 281da93d07c9e..69ec34d0104c4 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.h +++ b/RecoTracker/LSTCore/src/alpaka/Event.h @@ -16,7 +16,7 @@ #include "HeterogeneousCore/AlpakaInterface/interface/host.h" -namespace SDL { +namespace lst { using namespace ALPAKA_ACCELERATOR_NAMESPACE; @@ -202,5 +202,5 @@ namespace SDL { ModulesBuffer* getModules(bool isFull = false); }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/src/alpaka/Hit.h b/RecoTracker/LSTCore/src/alpaka/Hit.h index ed5a074b56895..493eefd71f057 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/Module.h" -namespace SDL { +namespace lst { struct Hits { unsigned int* nHits; float* xs; @@ -194,8 +194,8 @@ namespace SDL { struct moduleRangesKernel { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::Hits hitsInGPU, + struct lst::Modules modulesInGPU, + struct lst::Hits hitsInGPU, int const& nLowerModules) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -223,8 +223,8 @@ namespace SDL { unsigned int nEndCapMap, // Number of elements in endcap map const unsigned int* geoMapDetId, // DetId's from endcap map const float* geoMapPhi, // Phi values from endcap map - struct SDL::Modules modulesInGPU, - struct SDL::Hits hitsInGPU, + struct lst::Modules modulesInGPU, + struct lst::Hits hitsInGPU, unsigned int const& nHits) const // Total number of hits in event { auto const globalThreadIdx = alpaka::getIdx(acc); @@ -236,7 +236,7 @@ namespace SDL { int iDetId = hitsInGPU.detid[ihit]; hitsInGPU.rts[ihit] = alpaka::math::sqrt(acc, ihit_x * ihit_x + ihit_y * ihit_y); - hitsInGPU.phis[ihit] = SDL::phi(acc, ihit_x, ihit_y); + hitsInGPU.phis[ihit] = lst::phi(acc, ihit_x, ihit_y); hitsInGPU.etas[ihit] = ((ihit_z > 0) - (ihit_z < 0)) * alpaka::math::acosh( @@ -268,5 +268,5 @@ namespace SDL { } } }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/src/alpaka/Kernels.h b/RecoTracker/LSTCore/src/alpaka/Kernels.h index b9072fb288269..0ec8e1ed7de84 100644 --- a/RecoTracker/LSTCore/src/alpaka/Kernels.h +++ b/RecoTracker/LSTCore/src/alpaka/Kernels.h @@ -12,24 +12,24 @@ #include "Quintuplet.h" #include "PixelTriplet.h" -namespace SDL { - ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmQuintupletFromMemory(struct SDL::Quintuplets& quintupletsInGPU, +namespace lst { + ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmQuintupletFromMemory(struct lst::Quintuplets& quintupletsInGPU, unsigned int quintupletIndex, bool secondpass = false) { quintupletsInGPU.isDup[quintupletIndex] |= 1 + secondpass; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelTripletFromMemory(struct SDL::PixelTriplets& pixelTripletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelTripletFromMemory(struct lst::PixelTriplets& pixelTripletsInGPU, unsigned int pixelTripletIndex) { pixelTripletsInGPU.isDup[pixelTripletIndex] = true; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelQuintupletFromMemory(struct SDL::PixelQuintuplets& pixelQuintupletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelQuintupletFromMemory(struct lst::PixelQuintuplets& pixelQuintupletsInGPU, unsigned int pixelQuintupletIndex) { pixelQuintupletsInGPU.isDup[pixelQuintupletIndex] = true; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelSegmentFromMemory(struct SDL::Segments& segmentsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelSegmentFromMemory(struct lst::Segments& segmentsInGPU, unsigned int pixelSegmentArrayIndex, bool secondpass = false) { segmentsInGPU.isDup[pixelSegmentArrayIndex] |= 1 + secondpass; @@ -37,7 +37,7 @@ namespace SDL { ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitsT5(unsigned int ix, unsigned int jx, - struct SDL::Quintuplets& quintupletsInGPU) { + struct lst::Quintuplets& quintupletsInGPU) { unsigned int hits1[Params_T5::kHits]; unsigned int hits2[Params_T5::kHits]; @@ -64,7 +64,7 @@ namespace SDL { ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitspT5(unsigned int ix, unsigned int jx, - struct SDL::PixelQuintuplets& pixelQuintupletsInGPU) { + struct lst::PixelQuintuplets& pixelQuintupletsInGPU) { unsigned int hits1[Params_pT5::kHits]; unsigned int hits2[Params_pT5::kHits]; @@ -91,7 +91,7 @@ namespace SDL { ALPAKA_FN_ACC ALPAKA_FN_INLINE void checkHitspT3(unsigned int ix, unsigned int jx, - struct SDL::PixelTriplets& pixelTripletsInGPU, + struct lst::PixelTriplets& pixelTripletsInGPU, int* matched) { int phits1[Params_pLS::kHits]; int phits2[Params_pLS::kHits]; @@ -144,9 +144,9 @@ namespace SDL { struct removeDupQuintupletsInGPUAfterBuild { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::Quintuplets quintupletsInGPU, - struct SDL::ObjectRanges rangesInGPU) const { + struct lst::Modules modulesInGPU, + struct lst::Quintuplets quintupletsInGPU, + struct lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -167,7 +167,7 @@ namespace SDL { float eta2 = __H2F(quintupletsInGPU.eta[jx]); float phi2 = __H2F(quintupletsInGPU.phi[jx]); float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = SDL::calculate_dPhi(phi1, phi2); + float dPhi = lst::calculate_dPhi(phi1, phi2); float score_rphisum2 = __H2F(quintupletsInGPU.score_rphisum[jx]); if (dEta > 0.1f) @@ -194,8 +194,8 @@ namespace SDL { struct removeDupQuintupletsInGPUBeforeTC { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Quintuplets quintupletsInGPU, - struct SDL::ObjectRanges rangesInGPU) const { + struct lst::Quintuplets quintupletsInGPU, + struct lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -239,7 +239,7 @@ namespace SDL { float score_rphisum2 = __H2F(quintupletsInGPU.score_rphisum[jx]); float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = SDL::calculate_dPhi(phi1, phi2); + float dPhi = lst::calculate_dPhi(phi1, phi2); if (dEta > 0.1f) continue; @@ -268,7 +268,7 @@ namespace SDL { struct removeDupPixelTripletsInGPUFromMap { template - ALPAKA_FN_ACC void operator()(TAcc const& acc, struct SDL::PixelTriplets pixelTripletsInGPU) const { + ALPAKA_FN_ACC void operator()(TAcc const& acc, struct lst::PixelTriplets pixelTripletsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -305,7 +305,7 @@ namespace SDL { struct removeDupPixelQuintupletsInGPUFromMap { template - ALPAKA_FN_ACC void operator()(TAcc const& acc, struct SDL::PixelQuintuplets pixelQuintupletsInGPU) const { + ALPAKA_FN_ACC void operator()(TAcc const& acc, struct lst::PixelQuintuplets pixelQuintupletsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -333,8 +333,8 @@ namespace SDL { struct checkHitspLS { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::Segments segmentsInGPU, + struct lst::Modules modulesInGPU, + struct lst::Segments segmentsInGPU, bool secondpass) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -410,7 +410,7 @@ namespace SDL { } if (secondpass) { float dEta = alpaka::math::abs(acc, eta_pix1 - eta_pix2); - float dPhi = SDL::calculate_dPhi(phi_pix1, phi_pix2); + float dPhi = lst::calculate_dPhi(phi_pix1, phi_pix2); float dR2 = dEta * dEta + dPhi * dPhi; if ((npMatched >= 1) || (dR2 < 1e-5f)) { @@ -421,5 +421,5 @@ namespace SDL { } } }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc index 79a80c1a66b9d..8304e292d63af 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 lst::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 lst::LST::getHitIdxs(const short trackCandidateType, const unsigned int TCIdx, const unsigned int* TCHitIndices, const unsigned int* hitIndices) { @@ -249,14 +249,14 @@ std::vector SDL::LST::getHitIdxs(const short trackCandidate } template <> -void SDL::LST::getOutput(SDL::Event& event) { +void lst::LST::getOutput(lst::Event& event) { std::vector> tc_hitIdxs; std::vector tc_len; std::vector tc_seedIdx; std::vector tc_trackCandidateType; - SDL::HitsBuffer& hitsInGPU = (*event.getHitsInCMSSW()); - SDL::TrackCandidates const* trackCandidates = event.getTrackCandidatesInCMSSW()->data(); + lst::HitsBuffer& hitsInGPU = (*event.getHitsInCMSSW()); + lst::TrackCandidatesBuffer& trackCandidatesInGPU = (*event.getTrackCandidatesInCMSSW()); unsigned int nTrackCandidates = *trackCandidates->nTrackCandidates; for (unsigned int idx = 0; idx < nTrackCandidates; idx++) { @@ -278,7 +278,7 @@ void SDL::LST::getOutput(SDL::Event& event) { template <> template <> -void SDL::LST::run(Queue& queue, +void lst::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 = lst::Event(verbose, queue, deviceESData); prepareInput(see_px, see_py, see_pz, diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index 623f95a437e00..1ae62844019f8 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -8,7 +8,7 @@ #include "Hit.h" #include "ObjectRanges.h" -namespace SDL { +namespace lst { struct MiniDoublets { unsigned int* nMemoryLocations; @@ -192,9 +192,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE void addMDToMemory(TAcc const& acc, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Hits& hitsInGPU, - struct SDL::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Hits& hitsInGPU, + struct lst::Modules& modulesInGPU, unsigned int lowerHitIdx, unsigned int upperHitIdx, uint16_t& lowerModuleIdx, @@ -266,7 +266,7 @@ namespace SDL { mdsInGPU.outerLowEdgeY[idx] = hitsInGPU.lowEdgeYs[outerHitIndex]; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules(struct SDL::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules(struct lst::Modules& modulesInGPU, uint16_t& moduleIndex) { // The "tighter" tilted modules are the subset of tilted modules that have smaller spacing // This is the same as what was previously considered as"isNormalTiltedModules" @@ -287,7 +287,7 @@ namespace SDL { return false; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize(struct SDL::Modules& modulesInGPU, uint16_t& moduleIndex) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize(struct lst::Modules& modulesInGPU, uint16_t& moduleIndex) { float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; @@ -341,7 +341,7 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float dPhiThreshold(TAcc const& acc, float rt, - struct SDL::Modules& modulesInGPU, + struct lst::Modules& modulesInGPU, uint16_t& moduleIndex, float dPhi = 0, float dz = 0) { @@ -403,7 +403,7 @@ namespace SDL { template ALPAKA_FN_INLINE ALPAKA_FN_ACC void shiftStripHits(TAcc const& acc, - struct SDL::Modules& modulesInGPU, + struct lst::Modules& modulesInGPU, uint16_t& lowerModuleIndex, uint16_t& upperModuleIndex, unsigned int lowerHitIndex, @@ -429,8 +429,8 @@ namespace SDL { // lowerModule // lowerHit // upperHit - // SDL::endcapGeometry - // SDL::tiltedGeometry + // lst::endcapGeometry + // lst::tiltedGeometry // Some variables relevant to the function float xp; // pixel x (pixel hit x) @@ -509,7 +509,7 @@ namespace SDL { drprime = (moduleSeparation / alpaka::math::sin(acc, angleA + angleB)) * alpaka::math::sin(acc, angleA); // Compute arctan of the slope and take care of the slope = infinity case - absArctanSlope = ((slope != SDL::SDL_INF) ? fabs(alpaka::math::atan(acc, slope)) : float(M_PI) / 2.f); + absArctanSlope = ((slope != lst::lst_INF) ? fabs(alpaka::math::atan(acc, slope)) : float(M_PI) / 2.f); // Depending on which quadrant the pixel hit lies, we define the angleM by shifting them slightly differently if (xp > 0 and yp > 0) { @@ -533,7 +533,7 @@ namespace SDL { // Compute the new strip hit position (if the slope value is in special condition take care of the exceptions) if (slope == - SDL::SDL_INF) // Designated for tilted module when the slope is exactly infinity (module lying along y-axis) + lst::lst_INF) // Designated for tilted module when the slope is exactly infinity (module lying along y-axis) { xn = xa; // New x point is simply where the anchor is yn = yo; // No shift in y @@ -569,7 +569,7 @@ namespace SDL { template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgo(TAcc const& acc, - struct SDL::Modules& modulesInGPU, + struct lst::Modules& modulesInGPU, uint16_t& lowerModuleIndex, uint16_t& upperModuleIndex, unsigned int lowerHitIndex, @@ -591,7 +591,7 @@ namespace SDL { float yUpper, float zUpper, float rtUpper) { - if (modulesInGPU.subdets[lowerModuleIndex] == SDL::Barrel) { + if (modulesInGPU.subdets[lowerModuleIndex] == lst::Barrel) { return runMiniDoubletDefaultAlgoBarrel(acc, modulesInGPU, lowerModuleIndex, @@ -644,7 +644,7 @@ namespace SDL { template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgoBarrel(TAcc const& acc, - struct SDL::Modules& modulesInGPU, + struct lst::Modules& modulesInGPU, uint16_t& lowerModuleIndex, uint16_t& upperModuleIndex, unsigned int lowerHitIndex, @@ -667,7 +667,7 @@ namespace SDL { float zUpper, float rtUpper) { dz = zLower - zUpper; - const float dzCut = modulesInGPU.moduleType[lowerModuleIndex] == SDL::PS ? 2.f : 10.f; + const float dzCut = modulesInGPU.moduleType[lowerModuleIndex] == lst::PS ? 2.f : 10.f; //const float sign = ((dz > 0) - (dz < 0)) * ((hitsInGPU.zs[lowerHitIndex] > 0) - (hitsInGPU.zs[lowerHitIndex] < 0)); const float sign = ((dz > 0) - (dz < 0)) * ((zLower > 0) - (zLower < 0)); const float invertedcrossercut = (alpaka::math::abs(acc, dz) > 2) * sign; @@ -677,7 +677,7 @@ namespace SDL { float miniCut = 0; - miniCut = modulesInGPU.moduleLayerType[lowerModuleIndex] == SDL::Pixel + miniCut = modulesInGPU.moduleLayerType[lowerModuleIndex] == lst::Pixel ? dPhiThreshold(acc, rtLower, modulesInGPU, lowerModuleIndex) : dPhiThreshold(acc, rtUpper, modulesInGPU, lowerModuleIndex); @@ -708,27 +708,27 @@ namespace SDL { yn = shiftedCoords[1]; // Lower or the upper hit needs to be modified depending on which one was actually shifted - if (modulesInGPU.moduleLayerType[lowerModuleIndex] == SDL::Pixel) { + if (modulesInGPU.moduleLayerType[lowerModuleIndex] == lst::Pixel) { shiftedX = xn; shiftedY = yn; shiftedZ = zUpper; shiftedRt2 = xn * xn + yn * yn; - dPhi = SDL::deltaPhi(acc, xLower, yLower, shiftedX, shiftedY); //function from Hit.cc - noShiftedDphi = SDL::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = lst::deltaPhi(acc, xLower, yLower, shiftedX, shiftedY); //function from Hit.cc + noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } else { shiftedX = xn; shiftedY = yn; shiftedZ = zLower; shiftedRt2 = xn * xn + yn * yn; - dPhi = SDL::deltaPhi(acc, shiftedX, shiftedY, xUpper, yUpper); - noShiftedDphi = SDL::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = lst::deltaPhi(acc, shiftedX, shiftedY, xUpper, yUpper); + noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } } else { shiftedX = 0; shiftedY = 0; shiftedZ = 0; - dPhi = SDL::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); noShiftedDphi = dPhi; } @@ -740,31 +740,31 @@ namespace SDL { if (modulesInGPU.sides[lowerModuleIndex] != Center) { // When it is tilted, use the new shifted positions // TODO: This is somewhat of an mystery.... somewhat confused why this is the case - if (modulesInGPU.moduleLayerType[lowerModuleIndex] != SDL::Pixel) { + if (modulesInGPU.moduleLayerType[lowerModuleIndex] != lst::Pixel) { // dPhi Change should be calculated so that the upper hit has higher rt. // In principle, this kind of check rt_lower < rt_upper should not be necessary because the hit shifting should have taken care of this. // (i.e. the strip hit is shifted to be aligned in the line of sight from interaction point to pixel hit of PS module guaranteeing rt ordering) // But I still placed this check for safety. (TODO: After checking explicitly if not needed remove later?) // setdeltaPhiChange(lowerHit.rt() < upperHitMod.rt() ? lowerHit.deltaPhiChange(upperHitMod) : upperHitMod.deltaPhiChange(lowerHit)); - dPhiChange = (rtLower * rtLower < shiftedRt2) ? SDL::deltaPhiChange(acc, xLower, yLower, shiftedX, shiftedY) - : SDL::deltaPhiChange(acc, shiftedX, shiftedY, xLower, yLower); - noShiftedDphiChange = rtLower < rtUpper ? SDL::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper) - : SDL::deltaPhiChange(acc, xUpper, yUpper, xLower, yLower); + dPhiChange = (rtLower * rtLower < shiftedRt2) ? lst::deltaPhiChange(acc, xLower, yLower, shiftedX, shiftedY) + : lst::deltaPhiChange(acc, shiftedX, shiftedY, xLower, yLower); + noShiftedDphiChange = rtLower < rtUpper ? lst::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper) + : lst::deltaPhiChange(acc, xUpper, yUpper, xLower, yLower); } else { // dPhi Change should be calculated so that the upper hit has higher rt. // In principle, this kind of check rt_lower < rt_upper should not be necessary because the hit shifting should have taken care of this. // (i.e. the strip hit is shifted to be aligned in the line of sight from interaction point to pixel hit of PS module guaranteeing rt ordering) // But I still placed this check for safety. (TODO: After checking explicitly if not needed remove later?) - dPhiChange = (shiftedRt2 < rtUpper * rtUpper) ? SDL::deltaPhiChange(acc, shiftedX, shiftedY, xUpper, yUpper) - : SDL::deltaPhiChange(acc, xUpper, yUpper, shiftedX, shiftedY); - noShiftedDphiChange = rtLower < rtUpper ? SDL::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper) - : SDL::deltaPhiChange(acc, xUpper, yUpper, xLower, yLower); + dPhiChange = (shiftedRt2 < rtUpper * rtUpper) ? lst::deltaPhiChange(acc, shiftedX, shiftedY, xUpper, yUpper) + : lst::deltaPhiChange(acc, xUpper, yUpper, shiftedX, shiftedY); + noShiftedDphiChange = rtLower < rtUpper ? lst::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper) + : lst::deltaPhiChange(acc, xUpper, yUpper, xLower, yLower); } } else { // When it is flat lying module, whichever is the lowerSide will always have rt lower - dPhiChange = SDL::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper); + dPhiChange = lst::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper); noShiftedDphiChange = dPhiChange; } @@ -775,7 +775,7 @@ namespace SDL { template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgoEndcap(TAcc const& acc, - struct SDL::Modules& modulesInGPU, + struct lst::Modules& modulesInGPU, uint16_t& lowerModuleIndex, uint16_t& upperModuleIndex, unsigned int lowerHitIndex, @@ -810,7 +810,7 @@ namespace SDL { return false; // Cut #2 : drt cut. The dz difference can't be larger than 1cm. (max separation is 4mm for modules in the endcap) // Ref to original code: https://github.com/slava77/cms-tkph2-ntuple/blob/184d2325147e6930030d3d1f780136bc2dd29ce6/doubletAnalysis.C#L3100 - const float drtCut = modulesInGPU.moduleType[lowerModuleIndex] == SDL::PS ? 2.f : 10.f; + const float drtCut = modulesInGPU.moduleType[lowerModuleIndex] == lst::PS ? 2.f : 10.f; drt = rtLower - rtUpper; if (alpaka::math::abs(acc, drt) >= drtCut) return false; @@ -838,37 +838,37 @@ namespace SDL { yn = shiftedCoords[1]; zn = shiftedCoords[2]; - if (modulesInGPU.moduleType[lowerModuleIndex] == SDL::PS) { + if (modulesInGPU.moduleType[lowerModuleIndex] == lst::PS) { // Appropriate lower or upper hit is modified after checking which one was actually shifted - if (modulesInGPU.moduleLayerType[lowerModuleIndex] == SDL::Pixel) { + if (modulesInGPU.moduleLayerType[lowerModuleIndex] == lst::Pixel) { shiftedX = xn; shiftedY = yn; shiftedZ = zUpper; - dPhi = SDL::deltaPhi(acc, xLower, yLower, shiftedX, shiftedY); - noShiftedDphi = SDL::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = lst::deltaPhi(acc, xLower, yLower, shiftedX, shiftedY); + noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } else { shiftedX = xn; shiftedY = yn; shiftedZ = zLower; - dPhi = SDL::deltaPhi(acc, shiftedX, shiftedY, xUpper, yUpper); - noShiftedDphi = SDL::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = lst::deltaPhi(acc, shiftedX, shiftedY, xUpper, yUpper); + noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } } else { shiftedX = xn; shiftedY = yn; shiftedZ = zUpper; - dPhi = SDL::deltaPhi(acc, xLower, yLower, xn, yn); - noShiftedDphi = SDL::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = lst::deltaPhi(acc, xLower, yLower, xn, yn); + noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } // dz needs to change if it is a PS module where the strip hits are shifted in order to properly account for the case when a tilted module falls under "endcap logic" // if it was an endcap it will have zero effect - if (modulesInGPU.moduleType[lowerModuleIndex] == SDL::PS) { - dz = modulesInGPU.moduleLayerType[lowerModuleIndex] == SDL::Pixel ? zLower - zn : zUpper - zn; + if (modulesInGPU.moduleType[lowerModuleIndex] == lst::PS) { + dz = modulesInGPU.moduleLayerType[lowerModuleIndex] == lst::Pixel ? zLower - zn : zUpper - zn; } float miniCut = 0; - miniCut = modulesInGPU.moduleLayerType[lowerModuleIndex] == SDL::Pixel + miniCut = modulesInGPU.moduleLayerType[lowerModuleIndex] == lst::Pixel ? dPhiThreshold(acc, rtLower, modulesInGPU, lowerModuleIndex, dPhi, dz) : dPhiThreshold(acc, rtUpper, modulesInGPU, lowerModuleIndex, dPhi, dz); @@ -889,10 +889,10 @@ namespace SDL { struct createMiniDoubletsInGPUv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::Hits hitsInGPU, - struct SDL::MiniDoublets mdsInGPU, - struct SDL::ObjectRanges rangesInGPU) const { + struct lst::Modules modulesInGPU, + struct lst::Hits hitsInGPU, + struct lst::MiniDoublets mdsInGPU, + struct lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -987,8 +987,8 @@ namespace SDL { struct createMDArrayRangesGPU { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::ObjectRanges rangesInGPU) const { + struct lst::Modules modulesInGPU, + struct lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -1077,10 +1077,10 @@ namespace SDL { struct addMiniDoubletRangesToEventExplicit { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::MiniDoublets mdsInGPU, - struct SDL::ObjectRanges rangesInGPU, - struct SDL::Hits hitsInGPU) const { + struct lst::Modules modulesInGPU, + struct lst::MiniDoublets mdsInGPU, + struct lst::ObjectRanges rangesInGPU, + struct lst::Hits hitsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -1095,5 +1095,5 @@ namespace SDL { } } }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h index 8a45d1f8872d5..f72f4ffaf5b6a 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h @@ -10,153 +10,158 @@ #include "Hit.h" #include "Triplet.h" -namespace T5DNN { - - template - ALPAKA_FN_ACC ALPAKA_FN_INLINE float runInference(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, - struct SDL::Triplets& tripletsInGPU, - const float* xVec, - const float* yVec, - const unsigned int* mdIndices, - const uint16_t* lowerModuleIndices, - const unsigned int& innerTripletIndex, - const unsigned int& outerTripletIndex, - const float& innerRadius, - const float& outerRadius, - const float& bridgeRadius) { - // Unpack x-coordinates of hits - float x1 = xVec[0]; - float x2 = xVec[1]; - float x3 = xVec[2]; - float x4 = xVec[3]; - float x5 = xVec[4]; - // Unpack y-coordinates of hits - float y1 = yVec[0]; - float y2 = yVec[1]; - float y3 = yVec[2]; - float y4 = yVec[3]; - float y5 = yVec[4]; - // Unpack module indices - unsigned int mdIndex1 = mdIndices[0]; - unsigned int mdIndex2 = mdIndices[1]; - unsigned int mdIndex3 = mdIndices[2]; - unsigned int mdIndex4 = mdIndices[3]; - unsigned int mdIndex5 = mdIndices[4]; - // Unpack module indices - uint16_t lowerModuleIndex1 = lowerModuleIndices[0]; - uint16_t lowerModuleIndex2 = lowerModuleIndices[1]; - uint16_t lowerModuleIndex3 = lowerModuleIndices[2]; - uint16_t lowerModuleIndex4 = lowerModuleIndices[3]; - uint16_t lowerModuleIndex5 = lowerModuleIndices[4]; - - // Compute some convenience variables - short layer2_adjustment = 0; - if (modulesInGPU.layers[lowerModuleIndex1] == 1) { - layer2_adjustment = 1; // get upper segment to be in second layer - } - unsigned int md_idx_for_t5_eta_phi = - segmentsInGPU.mdIndices[2 * tripletsInGPU.segmentIndices[2 * innerTripletIndex + layer2_adjustment]]; - bool is_endcap1 = (modulesInGPU.subdets[lowerModuleIndex1] == 4); // true if anchor hit 1 is in the endcap - bool is_endcap2 = (modulesInGPU.subdets[lowerModuleIndex2] == 4); // true if anchor hit 2 is in the endcap - bool is_endcap3 = (modulesInGPU.subdets[lowerModuleIndex3] == 4); // true if anchor hit 3 is in the endcap - bool is_endcap4 = (modulesInGPU.subdets[lowerModuleIndex4] == 4); // true if anchor hit 4 is in the endcap - bool is_endcap5 = (modulesInGPU.subdets[lowerModuleIndex5] == 4); // true if anchor hit 5 is in the endcap - - // Build DNN input vector (corresponding output N-tuple branch noted in parenthetical in comment) - float x[38] = { - SDL::temp_log10(acc, 2 * SDL::k2Rinv1GeVf * innerRadius), // inner T3 pT (t3_pt) - mdsInGPU.anchorEta[mdIndex1], // inner T3 anchor hit 1 eta (t3_0_eta) - mdsInGPU.anchorPhi[mdIndex1], // inner T3 anchor hit 1 phi (t3_0_phi) - mdsInGPU.anchorZ[mdIndex1], // inner T3 anchor hit 1 z (t3_0_z) - alpaka::math::sqrt(acc, x1 * x1 + y1 * y1), // inner T3 anchor hit 1 r (t3_0_r) - float(modulesInGPU.layers[lowerModuleIndex1] + 6 * is_endcap1), // inner T3 anchor hit 1 layer (t3_0_layer) - mdsInGPU.anchorEta[mdIndex2], // inner T3 anchor hit 2 eta (t3_2_eta) - mdsInGPU.anchorPhi[mdIndex2], // inner T3 anchor hit 2 phi (t3_2_phi) - mdsInGPU.anchorZ[mdIndex2], // inner T3 anchor hit 2 z (t3_2_z) - alpaka::math::sqrt(acc, x2 * x2 + y2 * y2), // inner T3 anchor hit 2 r (t3_2_r) - float(modulesInGPU.layers[lowerModuleIndex2] + 6 * is_endcap2), // inner T3 anchor hit 2 layer (t3_2_layer) - mdsInGPU.anchorEta[mdIndex3], // inner T3 anchor hit 3 eta (t3_4_eta) - mdsInGPU.anchorPhi[mdIndex3], // inner T3 anchor hit 3 phi (t3_4_phi) - mdsInGPU.anchorZ[mdIndex3], // inner T3 anchor hit 3 z (t3_4_z) - alpaka::math::sqrt(acc, x3 * x3 + y3 * y3), // inner T3 anchor hit 3 r (t3_4_r) - float(modulesInGPU.layers[lowerModuleIndex3] + 6 * is_endcap3), // inner T3 anchor hit 3 layer (t3_4_layer) - SDL::temp_log10(acc, 2 * SDL::k2Rinv1GeVf * outerRadius), // outer T3 pT (t3_pt) - mdsInGPU.anchorEta[mdIndex3], // outer T3 anchor hit 4 eta (t3_0_eta) - mdsInGPU.anchorPhi[mdIndex3], // outer T3 anchor hit 4 phi (t3_0_phi) - mdsInGPU.anchorZ[mdIndex3], // outer T3 anchor hit 3 eta (t3_0_z) - alpaka::math::sqrt(acc, x3 * x3 + y3 * y3), // outer T3 anchor hit 3 r (t3_0_r) - float(modulesInGPU.layers[lowerModuleIndex3] + 6 * is_endcap3), // outer T3 anchor hit 3 layer (t3_0_layer) - mdsInGPU.anchorEta[mdIndex4], // outer T3 anchor hit 4 eta (t3_2_eta) - mdsInGPU.anchorPhi[mdIndex4], // outer T3 anchor hit 4 phi (t3_2_phi) - mdsInGPU.anchorZ[mdIndex4], // outer T3 anchor hit 4 z (t3_2_z) - alpaka::math::sqrt(acc, x4 * x4 + y4 * y4), // outer T3 anchor hit 4 r (t3_2_r) - float(modulesInGPU.layers[lowerModuleIndex4] + 6 * is_endcap4), // outer T3 anchor hit 4 layer (t3_2_layer) - mdsInGPU.anchorEta[mdIndex5], // outer T3 anchor hit 5 eta (t3_4_eta) - mdsInGPU.anchorPhi[mdIndex5], // outer T3 anchor hit 5 phi (t3_4_phi) - mdsInGPU.anchorZ[mdIndex5], // outer T3 anchor hit 5 z (t3_4_z) - alpaka::math::sqrt(acc, x5 * x5 + y5 * y5), // outer T3 anchor hit 5 r (t3_4_r) - float(modulesInGPU.layers[lowerModuleIndex5] + 6 * is_endcap5), // outer T3 anchor hit 5 layer (t3_4_layer) - SDL::temp_log10(acc, (innerRadius + outerRadius) * SDL::k2Rinv1GeVf), // T5 pT (t5_pt) - mdsInGPU.anchorEta[md_idx_for_t5_eta_phi], // T5 eta (t5_eta) - mdsInGPU.anchorPhi[md_idx_for_t5_eta_phi], // T5 phi (t5_phi) - SDL::temp_log10(acc, innerRadius), // T5 inner radius (t5_innerRadius) - SDL::temp_log10(acc, bridgeRadius), // T5 bridge radius (t5_bridgeRadius) - SDL::temp_log10(acc, outerRadius) // T5 outer radius (t5_outerRadius) - }; - - // (0): Linear(in_features=38, out_features=32, bias=True) => x = x*W_T + b - float x_0[32]; - for (unsigned int col = 0; col < 32; ++col) { - x_0[col] = 0; - for (unsigned int inner = 0; inner < 38; ++inner) { - x_0[col] += x[inner] * wgtT_0[inner][col]; +namespace lst { + + namespace t5dnn { + + template + ALPAKA_FN_ACC ALPAKA_FN_INLINE float runInference(TAcc const& acc, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, + struct lst::Triplets& tripletsInGPU, + const float* xVec, + const float* yVec, + const unsigned int* mdIndices, + const uint16_t* lowerModuleIndices, + const unsigned int& innerTripletIndex, + const unsigned int& outerTripletIndex, + const float& innerRadius, + const float& outerRadius, + const float& bridgeRadius) { + // Unpack x-coordinates of hits + float x1 = xVec[0]; + float x2 = xVec[1]; + float x3 = xVec[2]; + float x4 = xVec[3]; + float x5 = xVec[4]; + // Unpack y-coordinates of hits + float y1 = yVec[0]; + float y2 = yVec[1]; + float y3 = yVec[2]; + float y4 = yVec[3]; + float y5 = yVec[4]; + // Unpack module indices + unsigned int mdIndex1 = mdIndices[0]; + unsigned int mdIndex2 = mdIndices[1]; + unsigned int mdIndex3 = mdIndices[2]; + unsigned int mdIndex4 = mdIndices[3]; + unsigned int mdIndex5 = mdIndices[4]; + // Unpack module indices + uint16_t lowerModuleIndex1 = lowerModuleIndices[0]; + uint16_t lowerModuleIndex2 = lowerModuleIndices[1]; + uint16_t lowerModuleIndex3 = lowerModuleIndices[2]; + uint16_t lowerModuleIndex4 = lowerModuleIndices[3]; + uint16_t lowerModuleIndex5 = lowerModuleIndices[4]; + + // Compute some convenience variables + short layer2_adjustment = 0; + if (modulesInGPU.layers[lowerModuleIndex1] == 1) { + layer2_adjustment = 1; // get upper segment to be in second layer } - x_0[col] += bias_0[col]; - } + unsigned int md_idx_for_t5_eta_phi = + segmentsInGPU.mdIndices[2 * tripletsInGPU.segmentIndices[2 * innerTripletIndex + layer2_adjustment]]; + bool is_endcap1 = (modulesInGPU.subdets[lowerModuleIndex1] == 4); // true if anchor hit 1 is in the endcap + bool is_endcap2 = (modulesInGPU.subdets[lowerModuleIndex2] == 4); // true if anchor hit 2 is in the endcap + bool is_endcap3 = (modulesInGPU.subdets[lowerModuleIndex3] == 4); // true if anchor hit 3 is in the endcap + bool is_endcap4 = (modulesInGPU.subdets[lowerModuleIndex4] == 4); // true if anchor hit 4 is in the endcap + bool is_endcap5 = (modulesInGPU.subdets[lowerModuleIndex5] == 4); // true if anchor hit 5 is in the endcap - // (1): ReLU() - float x_1[32]; - for (unsigned int col = 0; col < 32; ++col) { - x_1[col] = (x_0[col] > 0.f) ? x_0[col] : 0.f; - } + // Build DNN input vector (corresponding output N-tuple branch noted in parenthetical in comment) + float x[38] = { + lst::temp_log10(acc, 2 * lst::k2Rinv1GeVf * innerRadius), // inner T3 pT (t3_pt) + mdsInGPU.anchorEta[mdIndex1], // inner T3 anchor hit 1 eta (t3_0_eta) + mdsInGPU.anchorPhi[mdIndex1], // inner T3 anchor hit 1 phi (t3_0_phi) + mdsInGPU.anchorZ[mdIndex1], // inner T3 anchor hit 1 z (t3_0_z) + alpaka::math::sqrt(acc, x1 * x1 + y1 * y1), // inner T3 anchor hit 1 r (t3_0_r) + float(modulesInGPU.layers[lowerModuleIndex1] + 6 * is_endcap1), // inner T3 anchor hit 1 layer (t3_0_layer) + mdsInGPU.anchorEta[mdIndex2], // inner T3 anchor hit 2 eta (t3_2_eta) + mdsInGPU.anchorPhi[mdIndex2], // inner T3 anchor hit 2 phi (t3_2_phi) + mdsInGPU.anchorZ[mdIndex2], // inner T3 anchor hit 2 z (t3_2_z) + alpaka::math::sqrt(acc, x2 * x2 + y2 * y2), // inner T3 anchor hit 2 r (t3_2_r) + float(modulesInGPU.layers[lowerModuleIndex2] + 6 * is_endcap2), // inner T3 anchor hit 2 layer (t3_2_layer) + mdsInGPU.anchorEta[mdIndex3], // inner T3 anchor hit 3 eta (t3_4_eta) + mdsInGPU.anchorPhi[mdIndex3], // inner T3 anchor hit 3 phi (t3_4_phi) + mdsInGPU.anchorZ[mdIndex3], // inner T3 anchor hit 3 z (t3_4_z) + alpaka::math::sqrt(acc, x3 * x3 + y3 * y3), // inner T3 anchor hit 3 r (t3_4_r) + float(modulesInGPU.layers[lowerModuleIndex3] + 6 * is_endcap3), // inner T3 anchor hit 3 layer (t3_4_layer) + lst::temp_log10(acc, 2 * lst::k2Rinv1GeVf * outerRadius), // outer T3 pT (t3_pt) + mdsInGPU.anchorEta[mdIndex3], // outer T3 anchor hit 4 eta (t3_0_eta) + mdsInGPU.anchorPhi[mdIndex3], // outer T3 anchor hit 4 phi (t3_0_phi) + mdsInGPU.anchorZ[mdIndex3], // outer T3 anchor hit 3 eta (t3_0_z) + alpaka::math::sqrt(acc, x3 * x3 + y3 * y3), // outer T3 anchor hit 3 r (t3_0_r) + float(modulesInGPU.layers[lowerModuleIndex3] + 6 * is_endcap3), // outer T3 anchor hit 3 layer (t3_0_layer) + mdsInGPU.anchorEta[mdIndex4], // outer T3 anchor hit 4 eta (t3_2_eta) + mdsInGPU.anchorPhi[mdIndex4], // outer T3 anchor hit 4 phi (t3_2_phi) + mdsInGPU.anchorZ[mdIndex4], // outer T3 anchor hit 4 z (t3_2_z) + alpaka::math::sqrt(acc, x4 * x4 + y4 * y4), // outer T3 anchor hit 4 r (t3_2_r) + float(modulesInGPU.layers[lowerModuleIndex4] + 6 * is_endcap4), // outer T3 anchor hit 4 layer (t3_2_layer) + mdsInGPU.anchorEta[mdIndex5], // outer T3 anchor hit 5 eta (t3_4_eta) + mdsInGPU.anchorPhi[mdIndex5], // outer T3 anchor hit 5 phi (t3_4_phi) + mdsInGPU.anchorZ[mdIndex5], // outer T3 anchor hit 5 z (t3_4_z) + alpaka::math::sqrt(acc, x5 * x5 + y5 * y5), // outer T3 anchor hit 5 r (t3_4_r) + float(modulesInGPU.layers[lowerModuleIndex5] + 6 * is_endcap5), // outer T3 anchor hit 5 layer (t3_4_layer) + lst::temp_log10(acc, (innerRadius + outerRadius) * lst::k2Rinv1GeVf), // T5 pT (t5_pt) + mdsInGPU.anchorEta[md_idx_for_t5_eta_phi], // T5 eta (t5_eta) + mdsInGPU.anchorPhi[md_idx_for_t5_eta_phi], // T5 phi (t5_phi) + lst::temp_log10(acc, innerRadius), // T5 inner radius (t5_innerRadius) + lst::temp_log10(acc, bridgeRadius), // T5 bridge radius (t5_bridgeRadius) + lst::temp_log10(acc, outerRadius) // T5 outer radius (t5_outerRadius) + }; - // (2): Linear(in_features=32, out_features=32, bias=True) => x = x*W_T + b - float x_2[32]; - for (unsigned int col = 0; col < 32; ++col) { - x_2[col] = 0; - for (unsigned int inner = 0; inner < 32; ++inner) { - x_2[col] += x_1[inner] * wgtT_2[inner][col]; + // (0): Linear(in_features=38, out_features=32, bias=True) => x = x*W_T + b + float x_0[32]; + for (unsigned int col = 0; col < 32; ++col) { + x_0[col] = 0; + for (unsigned int inner = 0; inner < 38; ++inner) { + x_0[col] += x[inner] * wgtT_0[inner][col]; + } + x_0[col] += bias_0[col]; } - x_2[col] += bias_2[col]; - } - // (3): ReLU() - float x_3[32]; - for (unsigned int col = 0; col < 32; ++col) { - x_3[col] = (x_2[col] > 0.f) ? x_2[col] : 0.f; - } + // (1): ReLU() + float x_1[32]; + for (unsigned int col = 0; col < 32; ++col) { + x_1[col] = (x_0[col] > 0.f) ? x_0[col] : 0.f; + } - // (4): Linear(in_features=32, out_features=1, bias=True) => x = x*W_T + b - float x_4[1]; - for (unsigned int col = 0; col < 1; ++col) { - x_4[col] = 0; - for (unsigned int inner = 0; inner < 32; ++inner) { - x_4[col] += x_3[inner] * wgtT_4[inner][col]; + // (2): Linear(in_features=32, out_features=32, bias=True) => x = x*W_T + b + float x_2[32]; + for (unsigned int col = 0; col < 32; ++col) { + x_2[col] = 0; + for (unsigned int inner = 0; inner < 32; ++inner) { + x_2[col] += x_1[inner] * wgtT_2[inner][col]; + } + x_2[col] += bias_2[col]; + } + + // (3): ReLU() + float x_3[32]; + for (unsigned int col = 0; col < 32; ++col) { + x_3[col] = (x_2[col] > 0.f) ? x_2[col] : 0.f; + } + + // (4): Linear(in_features=32, out_features=1, bias=True) => x = x*W_T + b + float x_4[1]; + for (unsigned int col = 0; col < 1; ++col) { + x_4[col] = 0; + for (unsigned int inner = 0; inner < 32; ++inner) { + x_4[col] += x_3[inner] * wgtT_4[inner][col]; + } + x_4[col] += bias_4[col]; + } + + // (5): Sigmoid() + float x_5[1]; + for (unsigned int col = 0; col < 1; ++col) { + x_5[col] = alpaka::math::exp(acc, x_4[col]) / (alpaka::math::exp(acc, x_4[col]) + 1); } - x_4[col] += bias_4[col]; - } - // (5): Sigmoid() - float x_5[1]; - for (unsigned int col = 0; col < 1; ++col) { - x_5[col] = alpaka::math::exp(acc, x_4[col]) / (alpaka::math::exp(acc, x_4[col]) + 1); + return x_5[0]; } - return x_5[0]; - } -} // namespace T5DNN + } // namespace t5dnn + +} //namespace lst #endif diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h index 959ebb56e8b68..a7a380985eb28 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h @@ -3,309 +3,315 @@ #include -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, - -0.8549317f, -6.8545237f, -1.2129461f, 3.0617838f, -0.3911322f, 0.0799793f, -2.5398655f, -0.5780622f, - 2.8533990f, -0.1777968f, -2.6457164f, -0.7976936f, 4.5644889f, -2.1747942f, 3.4286616f, -10.1073380f}; - ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_0[38][32] = { - {6.1269712f, -10.6625051f, 17.4907818f, -0.0019928f, -3.4468415f, 1.6674044f, -7.8957767f, 2.2077549f, - 9.5517254f, -5.1345053f, -30.1643391f, 4.0148559f, -19.8330841f, -18.3806915f, 0.1334764f, 1.6213616f, - -4.1423774f, -15.3062429f, -1.0209556f, 1.5580219f, 0.7426265f, 0.0033929f, 1.3924170f, 0.9196110f, - -0.8995734f, 1.0594707f, 39.4390869f, 8.7642002f, 28.4583893f, -5.9235659f, 3.7221889f, 14.4167147f}, - {1.7863803f, -0.6068707f, 0.3166098f, -0.0608759f, 0.5939785f, 0.4870262f, -3.1375074f, -17.7147388f, - -0.7231818f, -9.3808413f, 2.2070611f, 15.7461920f, 0.9355862f, 2.3942475f, -0.0671409f, 3.5954301f, - -3.0463996f, -2.0748904f, -0.5450584f, -4.4800100f, 0.6074556f, -0.0161482f, 3.0624702f, -4.5688419f, - 2.9881518f, -0.3714012f, -0.0387531f, -0.7699140f, 4.4028845f, 5.0333014f, -4.7350726f, -8.6568584f}, - {5.6548429f, -0.0207700f, 0.1785973f, 0.0881671f, 0.2530097f, -0.1893259f, -0.1105739f, -0.5183877f, - 1.0728362f, 0.1833011f, 1.7765219f, 0.3127359f, 0.0455277f, -0.1442616f, -0.1048361f, -0.1235604f, - -0.1217661f, -0.5487315f, 0.7575656f, -0.1177454f, -17.0993137f, 0.1628031f, 0.2789381f, 0.5304270f, - 0.0837841f, -3.1120780f, 0.0074821f, -0.1648044f, -0.3395336f, 0.3958135f, 0.8718957f, -1.1980486f}, - {0.2401041f, -0.0585765f, -0.0144584f, 0.0411095f, 0.0752229f, 0.0292672f, -0.2437613f, -1.4396472f, - -0.0971315f, -1.7181139f, 0.2417643f, 2.2030578f, 0.0566049f, 0.1081589f, -0.1060181f, 0.3473758f, - -0.7095683f, -0.0345675f, 0.2794849f, -1.1702278f, 0.2622930f, -0.0072611f, 0.5026371f, -1.2882922f, - -0.4712771f, 0.0597130f, -0.0039970f, -0.6050836f, 0.1554724f, 1.0991164f, -0.4975886f, 0.2597970f}, - {0.0766028f, 0.0218421f, -0.1739017f, -0.0076569f, 0.0384461f, -0.1841756f, 0.9677940f, -3.1114254f, - 2.3830564f, 2.0706992f, -0.9643140f, 0.7361387f, -0.0060253f, -0.1554846f, -0.0831100f, 2.8754771f, - -1.4403527f, -0.5281797f, 0.5157787f, 4.2405987f, 0.4807618f, 0.0217647f, -1.2626950f, 0.9145837f, - -0.3931780f, 0.3426280f, -0.0065206f, -0.7510439f, -0.4555758f, 2.7724340f, -1.2173026f, 0.1039017f}, - {0.5685715f, 0.3927337f, 0.4942532f, -0.0671033f, -0.2808350f, -0.0336000f, -1.3983957f, 0.9876546f, - -2.3840380f, 0.7315395f, -2.2009561f, -1.4631602f, -0.4672308f, -0.4994236f, 0.1169335f, -1.1894208f, - -1.2692982f, 0.3303853f, -2.0147655f, -0.9912014f, 1.0042895f, 0.1121151f, -1.0789106f, -2.2821584f, - -6.6459913f, -0.0959398f, -0.0068429f, -2.8177626f, 0.3213172f, -2.6832986f, -4.7613306f, -0.9985733f}, - {1.4419515f, -0.3864825f, -0.6756768f, -0.1273375f, 0.4321181f, 0.3354745f, -0.8236564f, -2.8190827f, - 0.7090831f, 1.9072700f, -3.1834064f, -2.6938572f, 0.5051147f, 1.4382831f, 0.1241910f, -0.7352629f, - 0.7703634f, -1.7556250f, -2.1104112f, 3.0603442f, 1.9873468f, -0.0358815f, -1.0087154f, 3.8253262f, - -0.5466214f, 0.0875162f, 0.2691758f, 0.7121435f, 1.9314718f, -0.1580560f, 3.6484149f, -5.3173709f}, - {6.9104381f, -0.0033664f, -1.4405546f, -0.1768288f, 0.2028089f, -0.1012344f, -4.4735684f, 0.6354278f, - 4.3039737f, 0.2056303f, 1.8338999f, -1.1351355f, 0.1015760f, -0.0733253f, -0.0561627f, 2.5292397f, - 1.6314448f, -0.9333628f, -0.7773662f, 0.8313186f, -0.7829623f, 0.1265118f, 0.5922315f, -0.3463379f, - -1.3269740f, -3.3302619f, -0.0061799f, 2.3374722f, 0.0880938f, 0.7470241f, -0.4205743f, -4.7557602f}, - {0.0380794f, 0.0947470f, 0.0419397f, 0.0582226f, -0.0603404f, 0.0234028f, -0.2575402f, 0.4125248f, - 0.3035339f, 0.2663808f, -0.6092452f, -1.4727812f, 0.0247187f, -0.0539688f, -0.0150413f, 0.2094955f, - 0.5379737f, -0.3255228f, -0.5639279f, 0.0786276f, 0.6703192f, 0.1557026f, -0.2753083f, 1.1463971f, - -0.9372965f, 0.5657740f, 0.0041413f, 0.0870248f, 0.0101520f, -0.8214461f, 0.1212932f, 1.5648646f}, - {-0.0969819f, 0.0137566f, 1.3515147f, -0.0155047f, -0.1416170f, -0.1636726f, 0.5184190f, 0.4732984f, - 0.6815788f, -1.0522166f, -0.4486531f, -0.0516016f, 0.0201894f, -0.0849667f, -0.0861271f, -1.2027841f, - 1.2458711f, -0.7061657f, 1.0381308f, -0.3450044f, -0.1300479f, -0.0828402f, 0.6859242f, -1.0575374f, - 0.6947553f, -0.0922188f, 0.0199132f, 0.8038982f, -0.1734094f, -0.1057449f, 1.6305015f, -0.0688597f}, - {-1.8151448f, 0.1024327f, 1.7063105f, 0.1130912f, -0.1081472f, -0.2904744f, -1.3465070f, -1.0455177f, - -0.4581082f, -3.2220871f, 0.5221398f, -5.1637673f, 0.0811146f, -0.1326323f, -0.0379338f, -3.0439703f, - -2.4246936f, -0.3670847f, -3.1256330f, -1.6595014f, -3.4715190f, -0.1526113f, -1.0420206f, 0.9536474f, - -3.2932863f, 1.6048199f, 0.0025162f, -3.6049840f, 0.0604250f, -2.2404826f, 1.8406851f, -3.1381185f}, - {1.2985691f, -1.1044264f, 0.9062797f, -0.0788333f, 0.2694912f, 0.0032800f, -0.0574267f, 0.9734111f, - 1.1532565f, 2.6786125f, -3.8574269f, -2.2871449f, -0.1261243f, 1.0545347f, -0.1454154f, -0.5609738f, - 1.8385800f, -0.8035598f, -1.7668265f, 5.1665063f, 0.7966110f, 0.0940206f, -2.3943975f, 2.3344002f, - 1.0342182f, 0.4806454f, -0.3880928f, 0.6998246f, 1.4011886f, -1.7313483f, 4.9702630f, -6.0058608f}, - {1.0300356f, 0.0616315f, -0.1113776f, -0.1694220f, 0.7159944f, 0.0626456f, 2.0994680f, 0.3452290f, - -3.0487001f, 0.0654031f, -1.1510723f, 0.5370992f, -0.0290704f, -0.0300795f, 0.0751569f, -0.2345951f, - -0.3472281f, 0.4424143f, 1.2444530f, -0.2114656f, 0.7865694f, -0.0709381f, -0.1839961f, -0.0529834f, - 0.5867608f, -3.8793530f, -0.0814745f, -0.6368676f, 0.0361213f, -0.5549288f, 0.5661780f, 1.8374584f}, - {0.3345098f, 0.0068199f, -0.4205509f, -0.1088801f, -0.1043202f, -0.0040804f, 0.3400922f, 0.2673528f, - -0.6050695f, 0.4443954f, -0.4319905f, -0.6044132f, -0.0260679f, 0.0137036f, 0.0765494f, -0.0095099f, - 0.5880439f, -0.0083854f, -0.2407522f, 0.1942379f, 0.6554548f, -0.1322891f, -0.8298992f, 0.7909554f, - 1.0528831f, 0.1970959f, 0.0754069f, -0.0947960f, -0.0279494f, -0.5888316f, 0.8919419f, 0.4828835f}, - {0.3995822f, -0.2139665f, 0.3982936f, -0.1285759f, -0.3445527f, -0.1167238f, -0.1263519f, 0.8393803f, - -0.7758383f, 0.0719291f, -0.0134762f, 0.1715237f, 0.0796666f, 0.1023507f, -0.1172728f, -1.2364722f, - 1.2592632f, -0.3168479f, 0.7487004f, -1.5170647f, -0.2235429f, -0.1620898f, 1.4064828f, -1.0821995f, - 0.0740103f, -1.0412805f, -0.0621277f, 0.2439800f, 0.2684972f, -1.1661061f, 0.7859434f, -0.6170313f}, - {2.1615884f, 0.1431713f, 0.0642652f, -0.0522325f, -0.2658786f, -0.0245810f, -1.6857448f, -0.6685011f, - -0.6978170f, -0.8716729f, 0.3129902f, -2.5870812f, -0.2855283f, -0.3205920f, -0.0084069f, 1.3182145f, - -0.6923816f, -0.3730274f, -2.3638811f, -1.1128502f, -2.4709859f, 0.1349022f, -0.3574466f, -0.6597407f, - -4.1122031f, 0.2240651f, 0.1806145f, -1.6836300f, -0.0766231f, -3.2611966f, 0.0091456f, -0.0997367f}, - {5.2476101f, -0.1966512f, 4.8935304f, -0.1551689f, 1.6919724f, -0.8324367f, 14.3318472f, -0.3503132f, - 10.3614969f, -9.1522884f, -0.2543063f, -1.8476851f, 16.7961140f, 9.9541416f, -0.0434563f, -9.6973553f, - -5.0469398f, 6.1688442f, 7.6429725f, -7.3149266f, 1.2345183f, 0.1412155f, 0.7114770f, -1.6378664f, - 5.1548996f, 0.3686100f, -45.3027611f, 3.0492647f, -37.3445892f, 2.7421410f, -2.7958770f, -25.2034016f}, - {1.4597454f, -1.0561740f, 0.9751291f, 0.0446527f, 0.3691662f, 0.1006782f, 0.1418435f, 0.8871480f, - 1.1603093f, 2.8034730f, -4.0856910f, -1.9786842f, -0.2206208f, 0.9539357f, 0.0868183f, -0.6811873f, - 1.9642411f, -0.8065316f, -2.0244894f, 5.2936082f, 0.6120632f, -0.1194160f, -2.3925939f, 2.5555069f, - 1.0149733f, 0.4607603f, -0.2197217f, 0.5703423f, 1.4049014f, -1.5900208f, 5.1645074f, -6.0569463f}, - {0.9000676f, -0.0028781f, -0.1967366f, 0.1039593f, 0.7993248f, 0.0655172f, 2.2296758f, 0.4391927f, - -3.0292840f, 0.0334536f, -1.1728534f, 0.3479103f, -0.1190938f, 0.0410203f, 0.1146637f, -0.2958017f, - -0.3240463f, 0.4361866f, 1.0564958f, -0.1989332f, 0.5194008f, -0.0628912f, -0.1733121f, -0.1255383f, - 0.5990249f, -3.7692382f, 0.0995128f, -0.7101220f, -0.0785123f, -0.3514554f, 0.6662078f, 2.0991604f}, - {0.1781942f, -0.1873588f, -0.4653996f, -0.0153059f, -0.1399561f, -0.0498718f, 0.4552556f, 0.2300792f, - -0.7682312f, 0.4342302f, -0.3787803f, -0.6089386f, -0.1049337f, 0.0395331f, 0.0220332f, 0.0114750f, - 0.4672548f, 0.1284784f, -0.2472819f, 0.2892784f, 0.4788667f, 0.0472555f, -0.6593549f, 0.6508777f, - 0.9286987f, 0.3043948f, -0.0635985f, 0.0814399f, -0.1168853f, -0.6688027f, 0.8876534f, 0.4865684f}, - {0.4024099f, 0.0480259f, 0.4588822f, -0.1793082f, -0.2151573f, -0.1871128f, -0.1502780f, 1.1011307f, - -0.9467706f, 0.2632496f, -0.1257263f, -0.0241331f, 0.2280627f, 0.0878608f, -0.1334262f, -1.1642927f, - 1.0943586f, -0.4799654f, 0.5981907f, -1.5051398f, -0.4235946f, 0.0012827f, 1.2342577f, -0.8281875f, - 0.2776567f, -1.0362227f, 0.0408372f, 0.1540821f, 0.1777556f, -1.2684357f, 0.8836584f, -0.4001710f}, - {2.1558056f, 0.2082023f, 0.0863442f, 0.0364868f, -0.3985825f, 0.0307202f, -1.8889453f, -0.5614714f, - -0.7311882f, -0.8075573f, 0.4895108f, -2.7770483f, -0.3121874f, -0.1671291f, -0.1281284f, 1.3212786f, - -0.5310181f, -0.1974759f, -2.6240873f, -0.8320529f, -2.3875966f, -0.0286360f, -0.6263188f, -0.6553424f, - -4.1658955f, -0.0601300f, 0.0946256f, -1.6795633f, -0.1251303f, -3.0974686f, 0.2412274f, -0.0687501f}, - {2.0523887f, -0.6387668f, 2.0633900f, -0.0550964f, 0.5181718f, -0.4202190f, 1.8569367f, 0.8295385f, - 0.8555872f, 2.4727983f, -0.2072828f, -1.9006120f, 0.5379534f, 0.4463673f, 0.1468820f, 0.4918649f, - -3.4016700f, 0.2884440f, -1.9418719f, 4.5157170f, -0.5160927f, -0.0199372f, 3.1353824f, -0.9863126f, - -1.5135859f, 0.7576568f, 0.6715558f, 2.7409093f, 0.9291748f, -0.3247162f, 1.8204515f, -8.9181070f}, - {-0.1428107f, -0.0829889f, 0.4213613f, 0.0225415f, 1.2238166f, 0.0477106f, 0.3031853f, -0.7466553f, - 2.0663500f, 0.7588379f, 0.3689216f, -0.2003786f, 0.1242338f, 0.1693589f, -0.0351716f, -0.0186597f, - -0.0189417f, 0.5468715f, -0.2862698f, -0.1311738f, 3.0747476f, -0.0310747f, 0.0943165f, 0.3139819f, - 0.6274695f, -1.8314874f, 0.0147495f, 0.3554756f, 0.3829916f, 0.4891713f, 0.1328600f, 1.0535098f}, - {0.0534900f, 0.1787969f, -0.0571320f, -0.0685673f, 0.1968977f, 0.0374476f, 0.7876674f, 0.0828491f, - 0.6444036f, -0.2203166f, -0.2383427f, 0.5397566f, 0.0106769f, -0.1230072f, -0.0135021f, -0.5691944f, - -1.5040319f, 0.0406933f, -0.0025478f, 0.9251419f, -1.7180276f, -0.1112956f, 1.4840862f, 0.0407115f, - -0.0100329f, 0.0583593f, -0.0110524f, 0.7431355f, -0.0971857f, -0.5501527f, -0.6371027f, -0.1935233f}, - {-0.6455778f, 0.2317368f, 0.9285696f, -0.1415854f, 0.0822560f, 0.2488030f, -2.6992166f, 0.0884904f, - 0.6735302f, -0.1467820f, 0.5641044f, 0.6436581f, 0.0818401f, -0.0336634f, -0.0729000f, -0.1206900f, - -2.5739892f, 0.5776953f, 0.9531668f, -1.2362405f, -0.0615577f, -0.0143544f, -2.7525210f, 1.3738545f, - 0.2751348f, -1.7463943f, -0.0020144f, 2.4814103f, 0.1716725f, -0.7055540f, -0.3474010f, 0.4482578f}, - {-0.2526205f, -0.7463821f, -3.6076138f, -0.1511098f, 0.1216256f, 0.0888247f, -1.0190924f, -1.3260181f, - -0.0443211f, -4.8911066f, -3.4385188f, -6.0057454f, 0.3340450f, 0.2997236f, -0.0907855f, 0.7500492f, - -0.4007562f, 1.9382039f, 0.5687234f, 2.6511824f, 4.7703862f, 0.0006749f, -0.0201394f, -3.5885489f, - -4.1518898f, 0.0807014f, -0.0584071f, -0.8100027f, 0.7697087f, -0.8038046f, -1.2945876f, -4.0110312f}, - {0.4337017f, -1.1532011f, 2.0740633f, 0.0271806f, 0.6654227f, 0.1012998f, -4.0791736f, 1.2631345f, - 1.9511020f, 2.3272331f, 1.2707534f, 1.6306664f, 0.4936035f, 0.8285242f, 0.0807625f, 3.8652387f, - 0.0281145f, 1.6877037f, 1.2557380f, -0.3036775f, 0.5604967f, 0.1551418f, -0.9599600f, -6.3067718f, - -0.6352320f, 0.8058553f, 0.3657880f, -2.0491202f, -0.3926269f, 2.5650854f, 1.3697821f, -8.3070078f}, - {5.1334143f, -0.0351738f, -0.4774780f, -0.0679726f, 1.4569254f, 0.0580191f, -0.3649136f, -0.2298838f, - -3.3826666f, -0.7392708f, -0.6036060f, -0.2612940f, -0.1877640f, -0.1145124f, -0.0042578f, -0.0311193f, - -0.0320479f, 0.5270581f, -0.4324475f, 0.2681437f, 4.7813129f, -0.0222701f, -0.0525629f, -0.2861001f, - -0.1251072f, 3.9112861f, 0.0045046f, -0.0426071f, -0.3299106f, -0.0686970f, -0.1602017f, -0.0070103f}, - {-0.6633690f, 0.0103367f, 0.5998458f, 0.1256577f, -0.0359184f, -0.0176820f, -0.6458368f, -0.0370536f, - 0.3542259f, 0.1394724f, 0.8255956f, 0.2501569f, 0.0320156f, -0.0256806f, 0.0277949f, 0.0036392f, - 0.2825173f, 0.1400358f, 1.0011463f, -0.6792242f, 0.0672508f, 0.0728705f, -0.1089695f, -1.0414587f, - -0.4135485f, 0.4293025f, -0.0041241f, -0.9564193f, 0.0314900f, 0.8658463f, -0.7734696f, -0.7610567f}, - {-0.0200122f, -0.0749178f, -1.5026549f, -0.0387432f, -0.0713735f, 0.1214790f, 1.8730290f, -0.0552839f, - -1.6867150f, 0.2282097f, 0.7161849f, -0.1018546f, -0.1092003f, 0.0365504f, -0.1326883f, 1.2310545f, - 0.1800210f, 0.7024739f, -2.9606545f, 1.2275347f, -0.2050014f, 0.0940569f, 0.4761694f, 0.8812068f, - -0.0083424f, -1.5406264f, 0.0061815f, -2.7606382f, 0.0248556f, 1.1086880f, -1.3608936f, 1.0795454f}, - {0.9734020f, 0.3905411f, -3.7008634f, 0.0013557f, 0.1649124f, 0.9935362f, 1.3489184f, 0.9505764f, - 0.7966231f, -0.1627246f, -2.5754328f, 1.4892205f, 0.8586300f, 0.6974363f, 0.1320204f, -0.7840260f, - 0.3121157f, 0.0966901f, 2.7447381f, 1.8256680f, 0.7229405f, -0.1723188f, 0.9145948f, -2.1376033f, - 0.5259342f, 0.0731194f, -0.2908303f, -0.2603913f, -0.2326528f, 3.6684167f, -0.2883157f, -2.8546307f}, - {-4.8917460f, 6.7944999f, -0.2255474f, 0.1051999f, 3.9000113f, 2.0624907f, 5.3019547f, 10.0209141f, - 1.1268179f, 2.2669628f, -6.5002980f, 1.8408583f, 5.3039579f, 2.2055962f, 0.1055369f, 1.7230233f, - 6.9605255f, 7.7025104f, 2.9880707f, -0.9274251f, -0.2287160f, -0.0206735f, 0.6885675f, 2.8179996f, - -7.1129837f, -1.3772345f, 3.8655453f, -5.9388318f, -0.0469947f, 7.2763596f, -6.3536129f, -17.0069847f}, - {1.8787041f, -0.9953383f, -1.4839923f, 0.1308209f, 0.3657510f, 0.3106483f, -1.4158971f, -6.7449651f, - 0.6553892f, -4.5046172f, -3.5489719f, 3.5363002f, 0.5454772f, 2.3521471f, 0.1612140f, -0.9744226f, - 0.6546553f, -2.7179255f, -1.7758157f, 0.3089439f, 1.7462813f, 0.1654593f, -0.2440207f, 3.9501827f, - 1.3750844f, 0.0596805f, -0.1977254f, 0.0264880f, 2.6396444f, 1.0816911f, 3.6413448f, -6.0299959f}, - {-4.1295738f, 0.1044480f, 0.2131937f, 0.0420826f, 0.5292229f, 0.0090477f, -0.0973486f, 0.9596778f, - 2.9579651f, -0.6364226f, -1.7556342f, 0.1539868f, -0.1273174f, -0.1348504f, 0.1257833f, -1.4168571f, - -1.0960362f, 0.0482449f, -1.4395387f, -0.2524115f, -2.9162085f, -0.0451428f, -0.4021681f, -0.5756381f, - 0.0515293f, -3.1996479f, -0.0007676f, -1.3878343f, -0.2864279f, -0.9579773f, -1.0999249f, 1.6500067f}, - {-2.4806111f, -6.8115449f, 3.2805641f, 0.1187415f, -0.9950783f, 6.2553434f, -1.6450261f, -6.1463733f, - 2.7507148f, 4.2995782f, 0.0461297f, -0.5417359f, 2.4306326f, -7.3530145f, 0.0698273f, -0.9394333f, - -1.3595498f, -7.5141478f, -1.4911395f, 3.2300410f, 0.1203540f, 0.0314884f, -2.0116949f, -0.8167119f, - 2.4133310f, 0.1920709f, 1.0619365f, 0.2459123f, 6.9166069f, -2.6384118f, 3.6829739f, -7.2385545f}, - {0.9408096f, 14.9067144f, 1.7709646f, 0.1105646f, -0.5600107f, -15.3188124f, -12.3718462f, -1.8893757f, - 13.6364670f, -5.7327847f, -14.1805468f, 1.0581509f, -14.2186184f, 14.8948650f, 0.0190344f, 5.4395180f, - 6.7243400f, 9.8468456f, 4.5144215f, -1.4551491f, 1.1032411f, -0.0317988f, 2.3398454f, -3.1671596f, - -7.7541409f, 1.1255593f, 6.7340465f, -4.4448423f, -9.1472626f, -3.1959128f, 4.4181323f, -2.7904994f}, - {-2.1621978f, -4.7202382f, 1.7378219f, 0.1417439f, -0.5000908f, 5.4468708f, 1.4260571f, -6.6136570f, - 1.5713804f, 3.4479704f, 2.7354901f, -0.7388076f, 5.4666147f, -3.8697338f, -0.1368596f, -2.7903373f, - -1.2043713f, -4.9554005f, 0.3324645f, 1.6767365f, 0.1156244f, -0.0326964f, -2.0945346f, -0.4590589f, - 3.0942657f, 0.0015020f, -6.2626700f, -0.3969755f, 0.7717427f, -1.9667094f, 2.9664171f, -11.9477053f}, - }; - ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_2[32] = { - 9.8383608f, 3.6922295f, 3.5774977f, -4.4619012f, 6.5087032f, -0.9540017f, -0.5059246f, 0.0706402f, - 14.3396597f, -0.2771132f, -4.8409863f, -8.3581600f, -3.5078344f, 4.3287506f, -5.7808843f, 3.9264839f, - -2.1697845f, -0.0040514f, -0.2095029f, -6.8678174f, 1.7911285f, -0.4510343f, 1.2410443f, -4.5678806f, - -0.5693849f, 2.3320096f, 4.4606552f, -6.3771009f, -4.3149071f, -0.1905672f, -3.5726390f, -1.0744030f}; - ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_2[32][32] = { - {-0.0155548f, 0.0243339f, 0.0037967f, -0.2771824f, 0.0111955f, -0.0115980f, 0.0079653f, -2.9803498f, - -0.0061037f, -0.0956634f, 0.0332446f, 0.0179244f, -0.0080377f, -9.0180779f, 0.1720033f, 0.0350694f, - -0.0146588f, -0.2135506f, -0.3158041f, 1.3697664f, 0.0119146f, 0.0119120f, -0.0986927f, 0.0297492f, - 0.0355827f, -0.1196868f, -0.0745119f, 0.0281862f, -0.0422190f, -0.3069138f, -0.0477367f, -0.0550450f}, - {-1.7374619f, 1.4822800f, -2.1885235f, 1.8354234f, -0.5380136f, 1.6621803f, 0.6251035f, 0.1008954f, - -0.8387129f, -0.2063313f, 1.0661691f, -0.9799694f, -5.1710258f, -3.2260630f, -1.5073707f, -1.0792168f, - 1.8569958f, -0.2289213f, 0.0563821f, -1.6398847f, -4.1649504f, -2.7527378f, -0.0134577f, 3.0424533f, - 0.0364320f, 0.6762254f, -3.1551330f, 2.4888904f, 1.4757305f, -0.3141717f, -2.0126467f, -0.1675602f}, - {-0.9571826f, 0.0914152f, 0.0404339f, 0.2927902f, 0.2933607f, 0.0619171f, 0.0772318f, -1.3796169f, - -0.8194544f, -0.2179988f, -1.1241078f, -0.1443964f, 0.0559355f, -1.2914546f, -0.3445117f, 0.2031156f, - 0.0273864f, -0.0193422f, -0.2136522f, 0.0429592f, 0.0212854f, 0.0414394f, -1.1734651f, 0.0582848f, - 0.0136039f, -0.1892604f, 0.0764908f, -0.0130132f, -0.1272559f, -0.0818855f, -0.0408583f, -0.1563294f}, - {-0.0213695f, 0.0596942f, -0.0641309f, -0.0146449f, 0.0416586f, -0.0378931f, 0.1234860f, 0.1622967f, - 0.0794091f, -0.0639933f, -0.1030663f, 0.0579078f, 0.1050275f, -0.0136866f, 0.0149978f, 0.0876813f, - 0.0693554f, 0.1612417f, -0.0595916f, -0.1008234f, -0.0579058f, 0.0915138f, 0.1321436f, -0.1484535f, - -0.0920316f, -0.0024532f, -0.1045300f, 0.0924260f, 0.0277524f, -0.0287276f, -0.1271127f, 0.1164243f}, - {0.0713067f, 0.0198056f, -0.3023696f, -0.0025908f, -0.0085885f, -1.1157553f, 0.0236462f, -0.0704844f, - -0.0189257f, -0.0997382f, 0.3379845f, -0.1229390f, -0.0616165f, -0.8968034f, 0.0401445f, -0.1144476f, - -0.0532077f, 0.0604580f, 0.0609454f, -0.1613472f, 0.0103525f, -0.1653874f, 0.0205189f, 0.0758978f, - -0.1514593f, 0.0151441f, 0.2043469f, 0.0349607f, -0.1361278f, -0.1255922f, 0.0631648f, 0.3570991f}, - {0.3371337f, -3.7541580f, 2.2215877f, -0.3390516f, 0.1912718f, -4.1861577f, -1.2264019f, 2.8179801f, - 0.0667294f, -0.0093539f, 2.3029909f, 3.1814916f, 3.9780347f, 0.2310601f, 0.3986159f, -0.8544636f, - 0.4139664f, -0.1876569f, -0.2448732f, -2.8053334f, 4.0488625f, 2.1094146f, -6.7310257f, -4.9950023f, - -0.8315823f, 0.0555959f, 2.4573720f, -3.7234364f, -4.2910552f, -0.2995245f, -3.2605181f, 2.3620574f}, - {-1.5522735f, -0.1866350f, -0.0067679f, 0.3196557f, 1.4052233f, 2.8143549f, -0.9992948f, -0.5309914f, - -25.8852596f, -0.1218249f, 0.6625420f, 0.3007106f, -0.2767264f, -0.1847300f, -0.5313534f, -0.0383462f, - -0.1987552f, 0.0581405f, -0.3376078f, 1.2621028f, 0.0818709f, -0.1401216f, -0.4550788f, -0.1592657f, - 0.0597123f, 0.1344101f, -0.1005317f, -0.1538406f, 2.9142656f, -0.0806051f, -0.4267367f, -31.9512234f}, - {0.6859627f, 0.1212986f, 0.1291616f, 0.0459838f, -0.0899920f, 0.0287645f, 0.1987007f, -2.7079368f, - -0.2628384f, -0.1402464f, -0.6302179f, -0.2923960f, -0.1106663f, 0.8256195f, -2.8054097f, -0.0296494f, - -0.5632019f, -0.1335654f, -0.1558440f, -6.8611612f, 0.0203786f, 0.0046566f, -0.4401442f, -0.0471430f, - 0.4535986f, -0.8657981f, 0.0684740f, 0.0518814f, -0.0123748f, -0.2270164f, 0.0922878f, -0.3863277f}, - {0.0127175f, 2.3346109f, -0.4390767f, -0.4657893f, 0.1659466f, -0.1132782f, -0.4928388f, 0.7652873f, - 1.1510741f, -0.0879600f, 0.2721785f, -0.1878961f, -0.3477249f, -0.8473209f, -0.8931856f, -0.4328294f, - -11.9181929f, -0.0282545f, -0.0217915f, 1.6676594f, -0.2122232f, -0.6190930f, 1.9053432f, -0.7592348f, - -1.0739189f, -0.7170524f, 0.3864411f, -0.8849231f, 0.1393488f, 0.0738489f, 0.4460345f, 1.9020857f}, - {0.4453296f, -0.0767821f, 0.1638939f, 1.6997167f, -0.1098599f, -0.0551604f, 0.0040561f, -13.5290670f, - -0.1285677f, -0.0590394f, 0.6499141f, -0.7617344f, 0.0453151f, 0.3104213f, -1.0711143f, 0.1361838f, - -0.4365610f, -0.1300649f, 0.2013344f, -0.5308123f, 0.1451896f, 0.1030715f, -0.6487910f, -0.3136590f, - -0.0280079f, 0.5394178f, 0.1318262f, -0.0159292f, 0.0636870f, -0.3224248f, -0.1868187f, -0.2468304f}, - {-0.0333494f, -0.0834255f, -0.1221875f, 0.6861304f, 0.0521738f, -0.0416543f, -0.4437352f, -19.3246250f, - -0.1520821f, 0.0528602f, -0.6375434f, -0.5803806f, -0.0958465f, -2.0058544f, -0.8282642f, 0.0259000f, - 0.4846996f, 0.1211179f, 0.0356884f, 1.0009497f, 0.0635682f, -0.0314105f, -0.0011147f, 0.0131714f, - -0.3410152f, 0.2798154f, 0.0961889f, 0.1266228f, -0.0934717f, -0.0904307f, 0.1355542f, 0.5722573f}, - {0.2146454f, 0.2143834f, 0.1290650f, -0.9063646f, 0.2100945f, 0.1331054f, -0.2620614f, -0.1264993f, - 0.1313979f, 0.0455465f, -0.8395286f, -0.4967833f, -0.0538581f, 0.9155380f, 0.6627046f, 0.1691243f, - 0.9887002f, -0.1597013f, -0.1236713f, -1.9041336f, 0.0427585f, 0.0849747f, -5.2559652f, -0.3133100f, - 0.0141170f, -0.1635530f, 0.4938746f, 0.0162943f, 0.2107756f, -0.3413893f, -0.0657575f, 1.0542560f}, - {-2.8868380f, -2.0837426f, -1.0611480f, -0.6143807f, -0.6398501f, -2.8018746f, 0.5166737f, -1.0814301f, - -1.9272422f, -0.1017482f, -0.4651161f, -1.4021232f, 1.8854499f, 0.1815407f, 0.5965426f, -2.3344259f, - -0.0690846f, -0.1678239f, -0.4219488f, 0.6215640f, 1.0270095f, -0.3473049f, -0.3926674f, -0.7942593f, - 1.1305071f, -1.4621233f, -0.8051161f, -0.7698632f, -2.6038630f, -0.3090037f, -1.6365144f, -1.0179478f}, - {0.0046026f, 1.1319581f, -2.6405678f, -2.0353596f, -2.1687336f, 0.3364883f, 2.1122196f, 0.2584647f, - -2.4344857f, -0.0378498f, 0.6158544f, -0.6060749f, -4.9598379f, 0.1570698f, 2.2436838f, -2.6198347f, - -2.0935996f, -0.1845744f, -0.0716080f, -1.9338604f, -4.1995640f, -3.6706774f, -1.6762524f, 3.9646862f, - -0.9677961f, 1.8319578f, -3.1916575f, 3.7312632f, 0.0820446f, -0.0497568f, -0.0898171f, -0.2499462f}, - {-0.0780375f, -0.0286571f, 0.1007227f, 0.0012229f, -0.0531285f, 0.0840718f, 0.1013894f, 0.1312424f, - -0.0673772f, 0.1603183f, 0.0074385f, -0.0718321f, -0.1549873f, 0.1616689f, 0.0405887f, -0.1558588f, - 0.0740745f, 0.1696893f, -0.0064026f, -0.1656420f, -0.1186674f, -0.1262667f, -0.0784757f, -0.1280154f, - 0.0909976f, 0.0853046f, -0.1075811f, 0.1310615f, 0.0610194f, 0.0647223f, 0.1360559f, 0.0440074f}, - {-0.2106480f, 0.0087131f, 0.1119385f, -1.0611318f, 0.5250220f, 0.0525479f, -0.2733742f, -1.0799565f, - -0.5601607f, -0.0651806f, -1.9793440f, -0.3373334f, -0.1550518f, 0.8932216f, 0.7264332f, -0.0450735f, - 1.2373760f, -0.1236272f, 0.0680048f, -3.0446634f, -0.1533586f, -0.0127355f, -0.3326311f, -0.0225603f, - -0.2265739f, -2.3752897f, -0.3771705f, -0.0728938f, 0.1741305f, 0.1111639f, 0.4131119f, 0.2239323f}, - {-2.5691276f, -1.4011253f, -2.0640867f, -3.7236946f, 1.5542637f, -0.9456654f, -1.7575809f, 3.6794879f, - -0.4439790f, -0.1009826f, 3.6702275f, -0.1935008f, -0.4423219f, -0.3825364f, -0.4784791f, 0.5927492f, - -2.3482494f, 0.0801714f, -0.1567418f, -1.7934613f, -0.1706410f, -0.6326947f, 0.6260155f, 0.3631033f, - -0.9325932f, 1.9647995f, -1.3409088f, 1.3501998f, 0.0367797f, -0.1744210f, 1.8690013f, -1.0737898f}, - {-0.5934777f, 0.6232591f, -0.3391055f, 0.2640936f, -0.2824444f, 0.4815128f, 0.6625078f, -0.1103976f, - 0.9555223f, -0.0624896f, -0.6778919f, 0.1181502f, -0.5425385f, 0.7297349f, -1.7261271f, -0.2917557f, - 1.1873137f, -0.2725933f, 0.0975242f, 1.7756181f, -0.5735835f, -0.4453230f, 0.9800369f, 0.9344145f, - -1.8692539f, 0.0120440f, -0.7315661f, 0.6250805f, 0.3839143f, -0.0376306f, 0.3816243f, 0.6059195f}, - {0.5522162f, -1.8043815f, -10.9379101f, 0.5719097f, -0.2246755f, -1.4856353f, 0.4877502f, 0.7163438f, - -11.8135147f, -0.0180790f, -0.9928634f, 0.1107815f, -0.0005064f, -0.3824990f, -0.7453306f, -1.9909632f, - -7.4362645f, -0.0245507f, -0.1815712f, -3.5507584f, -0.0075889f, -11.0296011f, -1.1292133f, -0.0710276f, - 0.5675677f, 0.2017778f, -0.0684891f, -0.0367653f, -1.6674192f, 0.0281711f, -0.8356591f, -0.0447807f}, - {0.2537312f, -3.0178010f, -0.3493635f, 1.8573236f, 0.4017631f, 0.9912633f, -0.8625028f, -0.7783228f, - -1.7815375f, -0.1204695f, 1.8551122f, 0.3344182f, -0.2828701f, -1.3226960f, -1.4470471f, 0.2895959f, - 0.6780876f, -0.2010069f, 0.0425280f, -2.1786852f, -0.1274053f, -0.2549899f, -0.2233993f, -0.1561645f, - -0.4640818f, 0.6375850f, 0.7733670f, -0.2388286f, 1.0447853f, -0.1503223f, 0.3823584f, -13.8176088f}, - {0.2575197f, -2.2127593f, -0.0389457f, -0.0215759f, 0.1659477f, -0.0097748f, -0.1935415f, -0.9091369f, - -0.1453371f, 0.0442428f, -0.1206519f, 0.1435609f, -0.0186047f, -5.0154042f, 0.0538177f, 0.0403250f, - 0.0240955f, 0.0331080f, 0.0517951f, 0.7422639f, 0.0069818f, 0.0248351f, -0.2205741f, -0.0082387f, - 0.2043269f, 0.0459435f, 0.0876343f, 0.0140607f, 0.1056308f, 0.0062555f, 0.0184278f, -0.5539715f}, - {-0.0398742f, 0.1075264f, 0.1725024f, -0.0755192f, -0.0360048f, 0.1325573f, 0.0903103f, -0.0882263f, - 0.1207692f, 0.0032722f, 0.0048489f, -0.1257241f, 0.1450990f, -0.0713558f, 0.1116815f, 0.1107689f, - -0.1447252f, 0.1581838f, -0.0160124f, -0.0425587f, 0.1411217f, 0.0865060f, -0.0643460f, -0.0431262f, - -0.1452804f, -0.0195101f, 0.1234572f, 0.0520887f, 0.1117576f, -0.0751791f, 0.1511539f, 0.1224861f}, - {0.7728126f, 2.3075340f, -0.0385258f, -3.1270287f, 0.9414487f, 3.5251477f, -0.8043440f, 0.7212446f, - -7.6850162f, -0.1609414f, -3.7687578f, -1.0751100f, -0.2052089f, 5.0728245f, 2.2835267f, 0.5930225f, - 0.1303335f, -0.1428799f, -0.3715075f, 0.5136011f, -0.4755619f, -0.2192461f, -3.8696294f, -0.0062392f, - -1.3774812f, -0.0034140f, -1.5944362f, 0.9773729f, 3.2859125f, -0.1616932f, -1.2785367f, -13.5732412f}, - {0.5535743f, 0.1461481f, -0.2218016f, -0.2971808f, -0.2169309f, 0.1564545f, -0.0390397f, 1.1558976f, - -0.0119933f, -0.0774637f, 1.1907971f, -0.5127968f, -0.0066028f, -1.6794037f, -0.3650940f, 0.2555613f, - -0.9488379f, 0.0449603f, -0.1620417f, 0.1583214f, 0.0000908f, 0.0152763f, -1.0660053f, -0.0139402f, - -1.7440189f, 0.2515209f, 0.3333162f, 0.1904725f, 0.1116094f, -0.2287960f, -0.0007165f, -1.7047704f}, - {-5.9897852f, -0.1316296f, -0.0218074f, -0.4602887f, 0.3288545f, -0.0882939f, -0.5929499f, 0.4294790f, - -0.0383545f, 0.0556869f, 0.1975944f, 0.1341491f, 0.0629570f, -2.2742157f, 0.0175826f, -0.1439869f, - -24.8701649f, -0.1582915f, -0.2460304f, -3.9643264f, 0.0863483f, 0.0180861f, -0.2210452f, -0.0868723f, - -0.4175525f, -0.8231756f, 0.0247534f, -0.1473545f, -0.0021330f, -0.0410253f, -1.1944869f, -1.1523768f}, - {0.1031547f, -3.3402514f, -4.3636522f, -0.1534714f, -0.0622189f, 0.0374694f, -0.0870097f, -4.1865788f, - -0.0555377f, 0.0252329f, 0.1339467f, 0.0461691f, -0.0503090f, 0.0289890f, -0.0095674f, -0.3289992f, - -0.0279080f, 0.0274977f, -0.0903500f, 0.5610157f, -0.0478177f, 0.4346960f, 0.4822784f, -0.1058945f, - -0.2026870f, -0.0560638f, 0.0910069f, -0.0818529f, 0.0819198f, -0.0292193f, 0.3040628f, -0.1275230f}, - {-5.8789845f, -17.1114635f, -4.6755161f, 0.1016624f, -0.8685016f, -0.3898779f, -2.3363957f, 0.1413794f, - -2.4254086f, -0.2171030f, -0.0901150f, 0.7058705f, 0.4166250f, -0.0231085f, -0.1789686f, -9.4244318f, - -0.6418229f, -0.0857969f, 0.1683681f, -0.0310597f, -0.0247807f, -5.3748040f, -7.4730940f, 0.1019564f, - -1.2126822f, -0.3726285f, -1.0287101f, 0.1803891f, -0.2227769f, -0.0791530f, -0.0159770f, -1.4883354f}, - {-17.9394970f, -0.5228514f, -11.3547935f, -0.0672671f, -2.0371394f, -0.9076943f, 2.4331825f, -6.9409127f, - 0.8286008f, 0.0208618f, -0.8009814f, 1.2268484f, 0.1943726f, -1.7297083f, -0.7668949f, -6.5505466f, - -0.6495168f, -0.0404727f, -0.1260914f, -3.5029383f, -0.0852898f, -2.9679556f, 1.6404767f, -0.0251449f, - 1.1460075f, -0.7877688f, -0.0586593f, -0.4741839f, -1.7420560f, 0.0295600f, -2.3574052f, 0.0974777f}, - {0.4443443f, 0.6384261f, 1.3317494f, -1.0085982f, 0.9508762f, 1.3168396f, -0.1862490f, -0.1801148f, - 1.1106120f, -0.0654911f, 0.1186706f, -0.7198273f, 0.5449172f, -0.5886080f, 0.7504217f, 1.8046317f, - -0.1294390f, -0.1939137f, -0.2383934f, 0.4131435f, 0.6910310f, 1.2821866f, -0.1088722f, -0.5660405f, - -0.1188610f, 0.0364403f, 0.3597929f, -0.6409024f, 1.2114668f, -0.0212278f, 0.8423592f, 0.4848156f}, - {-0.8772649f, -13.5265112f, -4.5540547f, -0.2856667f, 0.7604876f, -0.6829260f, -0.8320626f, 0.6541347f, - 0.4020181f, 0.0009324f, -10.9660740f, -0.3540186f, -0.2316812f, 0.3576394f, 0.0998953f, -1.5738430f, - 1.2089975f, 0.0706465f, -0.2538019f, 0.7016497f, -0.0282650f, -3.1291001f, -0.4375663f, -0.3979468f, - -0.1588882f, 0.3978875f, 0.2038192f, -0.4281644f, -0.5787544f, -0.0922198f, 0.9595569f, 0.0212818f}, - {0.3392667f, 0.1170919f, -0.0705636f, -0.1025443f, -0.1192213f, -0.0495686f, 0.0284667f, -0.1226804f, - 0.0050191f, -0.0516545f, -1.0892097f, 0.0033689f, 0.0471462f, 1.4266804f, 0.0288870f, -0.0110408f, - -1.1283765f, -0.1299917f, -0.4318301f, -0.9854419f, -0.0190479f, -0.0269406f, 0.3697925f, -0.0757695f, - -0.3632923f, -0.1714077f, 0.0669245f, 0.0557428f, -0.1713906f, -0.4307863f, -0.1749060f, -2.1246362f}, - {0.8383662f, -3.8122442f, 0.1568939f, -2.2105119f, -0.7086993f, -0.4664145f, -0.3578597f, 0.5554636f, - 0.6965880f, -0.1506968f, 0.2646832f, 0.2874083f, 0.1901203f, -2.4997077f, -0.3519035f, -0.0518054f, - 1.0862818f, -0.2502540f, -0.3133347f, -0.7411230f, 0.1268138f, 0.1069811f, -0.8109779f, 0.0264679f, - 0.1604289f, -0.7534032f, -0.1419461f, 0.0688303f, -0.1570919f, -0.3055144f, -0.7415189f, 2.5547018f}, - }; - ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_4[1] = {1.4616280f}; - ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_4[32][1] = { - {0.0609813f}, {0.0685224f}, {0.1655236f}, {-0.0599842f}, {0.0669006f}, {-0.1817371f}, {-0.0539167f}, - {-0.0737955f}, {0.0654664f}, {0.0302955f}, {-0.0586768f}, {0.0717433f}, {0.1472274f}, {-0.0610073f}, - {-0.0601061f}, {0.2086218f}, {-0.0545418f}, {-0.0388369f}, {-0.0613536f}, {-0.1141072f}, {-0.2289097f}, - {-0.3354485f}, {0.0831025f}, {0.1333673f}, {0.0490410f}, {0.0484894f}, {0.0436755f}, {-0.1479877f}, - {0.1540713f}, {0.0021261f}, {-0.0845848f}, {-0.0564973f}, - }; -} // namespace T5DNN +namespace lst { + + 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, + -0.8549317f, -6.8545237f, -1.2129461f, 3.0617838f, -0.3911322f, 0.0799793f, -2.5398655f, -0.5780622f, + 2.8533990f, -0.1777968f, -2.6457164f, -0.7976936f, 4.5644889f, -2.1747942f, 3.4286616f, -10.1073380f}; + ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_0[38][32] = { + {6.1269712f, -10.6625051f, 17.4907818f, -0.0019928f, -3.4468415f, 1.6674044f, -7.8957767f, 2.2077549f, + 9.5517254f, -5.1345053f, -30.1643391f, 4.0148559f, -19.8330841f, -18.3806915f, 0.1334764f, 1.6213616f, + -4.1423774f, -15.3062429f, -1.0209556f, 1.5580219f, 0.7426265f, 0.0033929f, 1.3924170f, 0.9196110f, + -0.8995734f, 1.0594707f, 39.4390869f, 8.7642002f, 28.4583893f, -5.9235659f, 3.7221889f, 14.4167147f}, + {1.7863803f, -0.6068707f, 0.3166098f, -0.0608759f, 0.5939785f, 0.4870262f, -3.1375074f, -17.7147388f, + -0.7231818f, -9.3808413f, 2.2070611f, 15.7461920f, 0.9355862f, 2.3942475f, -0.0671409f, 3.5954301f, + -3.0463996f, -2.0748904f, -0.5450584f, -4.4800100f, 0.6074556f, -0.0161482f, 3.0624702f, -4.5688419f, + 2.9881518f, -0.3714012f, -0.0387531f, -0.7699140f, 4.4028845f, 5.0333014f, -4.7350726f, -8.6568584f}, + {5.6548429f, -0.0207700f, 0.1785973f, 0.0881671f, 0.2530097f, -0.1893259f, -0.1105739f, -0.5183877f, + 1.0728362f, 0.1833011f, 1.7765219f, 0.3127359f, 0.0455277f, -0.1442616f, -0.1048361f, -0.1235604f, + -0.1217661f, -0.5487315f, 0.7575656f, -0.1177454f, -17.0993137f, 0.1628031f, 0.2789381f, 0.5304270f, + 0.0837841f, -3.1120780f, 0.0074821f, -0.1648044f, -0.3395336f, 0.3958135f, 0.8718957f, -1.1980486f}, + {0.2401041f, -0.0585765f, -0.0144584f, 0.0411095f, 0.0752229f, 0.0292672f, -0.2437613f, -1.4396472f, + -0.0971315f, -1.7181139f, 0.2417643f, 2.2030578f, 0.0566049f, 0.1081589f, -0.1060181f, 0.3473758f, + -0.7095683f, -0.0345675f, 0.2794849f, -1.1702278f, 0.2622930f, -0.0072611f, 0.5026371f, -1.2882922f, + -0.4712771f, 0.0597130f, -0.0039970f, -0.6050836f, 0.1554724f, 1.0991164f, -0.4975886f, 0.2597970f}, + {0.0766028f, 0.0218421f, -0.1739017f, -0.0076569f, 0.0384461f, -0.1841756f, 0.9677940f, -3.1114254f, + 2.3830564f, 2.0706992f, -0.9643140f, 0.7361387f, -0.0060253f, -0.1554846f, -0.0831100f, 2.8754771f, + -1.4403527f, -0.5281797f, 0.5157787f, 4.2405987f, 0.4807618f, 0.0217647f, -1.2626950f, 0.9145837f, + -0.3931780f, 0.3426280f, -0.0065206f, -0.7510439f, -0.4555758f, 2.7724340f, -1.2173026f, 0.1039017f}, + {0.5685715f, 0.3927337f, 0.4942532f, -0.0671033f, -0.2808350f, -0.0336000f, -1.3983957f, 0.9876546f, + -2.3840380f, 0.7315395f, -2.2009561f, -1.4631602f, -0.4672308f, -0.4994236f, 0.1169335f, -1.1894208f, + -1.2692982f, 0.3303853f, -2.0147655f, -0.9912014f, 1.0042895f, 0.1121151f, -1.0789106f, -2.2821584f, + -6.6459913f, -0.0959398f, -0.0068429f, -2.8177626f, 0.3213172f, -2.6832986f, -4.7613306f, -0.9985733f}, + {1.4419515f, -0.3864825f, -0.6756768f, -0.1273375f, 0.4321181f, 0.3354745f, -0.8236564f, -2.8190827f, + 0.7090831f, 1.9072700f, -3.1834064f, -2.6938572f, 0.5051147f, 1.4382831f, 0.1241910f, -0.7352629f, + 0.7703634f, -1.7556250f, -2.1104112f, 3.0603442f, 1.9873468f, -0.0358815f, -1.0087154f, 3.8253262f, + -0.5466214f, 0.0875162f, 0.2691758f, 0.7121435f, 1.9314718f, -0.1580560f, 3.6484149f, -5.3173709f}, + {6.9104381f, -0.0033664f, -1.4405546f, -0.1768288f, 0.2028089f, -0.1012344f, -4.4735684f, 0.6354278f, + 4.3039737f, 0.2056303f, 1.8338999f, -1.1351355f, 0.1015760f, -0.0733253f, -0.0561627f, 2.5292397f, + 1.6314448f, -0.9333628f, -0.7773662f, 0.8313186f, -0.7829623f, 0.1265118f, 0.5922315f, -0.3463379f, + -1.3269740f, -3.3302619f, -0.0061799f, 2.3374722f, 0.0880938f, 0.7470241f, -0.4205743f, -4.7557602f}, + {0.0380794f, 0.0947470f, 0.0419397f, 0.0582226f, -0.0603404f, 0.0234028f, -0.2575402f, 0.4125248f, + 0.3035339f, 0.2663808f, -0.6092452f, -1.4727812f, 0.0247187f, -0.0539688f, -0.0150413f, 0.2094955f, + 0.5379737f, -0.3255228f, -0.5639279f, 0.0786276f, 0.6703192f, 0.1557026f, -0.2753083f, 1.1463971f, + -0.9372965f, 0.5657740f, 0.0041413f, 0.0870248f, 0.0101520f, -0.8214461f, 0.1212932f, 1.5648646f}, + {-0.0969819f, 0.0137566f, 1.3515147f, -0.0155047f, -0.1416170f, -0.1636726f, 0.5184190f, 0.4732984f, + 0.6815788f, -1.0522166f, -0.4486531f, -0.0516016f, 0.0201894f, -0.0849667f, -0.0861271f, -1.2027841f, + 1.2458711f, -0.7061657f, 1.0381308f, -0.3450044f, -0.1300479f, -0.0828402f, 0.6859242f, -1.0575374f, + 0.6947553f, -0.0922188f, 0.0199132f, 0.8038982f, -0.1734094f, -0.1057449f, 1.6305015f, -0.0688597f}, + {-1.8151448f, 0.1024327f, 1.7063105f, 0.1130912f, -0.1081472f, -0.2904744f, -1.3465070f, -1.0455177f, + -0.4581082f, -3.2220871f, 0.5221398f, -5.1637673f, 0.0811146f, -0.1326323f, -0.0379338f, -3.0439703f, + -2.4246936f, -0.3670847f, -3.1256330f, -1.6595014f, -3.4715190f, -0.1526113f, -1.0420206f, 0.9536474f, + -3.2932863f, 1.6048199f, 0.0025162f, -3.6049840f, 0.0604250f, -2.2404826f, 1.8406851f, -3.1381185f}, + {1.2985691f, -1.1044264f, 0.9062797f, -0.0788333f, 0.2694912f, 0.0032800f, -0.0574267f, 0.9734111f, + 1.1532565f, 2.6786125f, -3.8574269f, -2.2871449f, -0.1261243f, 1.0545347f, -0.1454154f, -0.5609738f, + 1.8385800f, -0.8035598f, -1.7668265f, 5.1665063f, 0.7966110f, 0.0940206f, -2.3943975f, 2.3344002f, + 1.0342182f, 0.4806454f, -0.3880928f, 0.6998246f, 1.4011886f, -1.7313483f, 4.9702630f, -6.0058608f}, + {1.0300356f, 0.0616315f, -0.1113776f, -0.1694220f, 0.7159944f, 0.0626456f, 2.0994680f, 0.3452290f, + -3.0487001f, 0.0654031f, -1.1510723f, 0.5370992f, -0.0290704f, -0.0300795f, 0.0751569f, -0.2345951f, + -0.3472281f, 0.4424143f, 1.2444530f, -0.2114656f, 0.7865694f, -0.0709381f, -0.1839961f, -0.0529834f, + 0.5867608f, -3.8793530f, -0.0814745f, -0.6368676f, 0.0361213f, -0.5549288f, 0.5661780f, 1.8374584f}, + {0.3345098f, 0.0068199f, -0.4205509f, -0.1088801f, -0.1043202f, -0.0040804f, 0.3400922f, 0.2673528f, + -0.6050695f, 0.4443954f, -0.4319905f, -0.6044132f, -0.0260679f, 0.0137036f, 0.0765494f, -0.0095099f, + 0.5880439f, -0.0083854f, -0.2407522f, 0.1942379f, 0.6554548f, -0.1322891f, -0.8298992f, 0.7909554f, + 1.0528831f, 0.1970959f, 0.0754069f, -0.0947960f, -0.0279494f, -0.5888316f, 0.8919419f, 0.4828835f}, + {0.3995822f, -0.2139665f, 0.3982936f, -0.1285759f, -0.3445527f, -0.1167238f, -0.1263519f, 0.8393803f, + -0.7758383f, 0.0719291f, -0.0134762f, 0.1715237f, 0.0796666f, 0.1023507f, -0.1172728f, -1.2364722f, + 1.2592632f, -0.3168479f, 0.7487004f, -1.5170647f, -0.2235429f, -0.1620898f, 1.4064828f, -1.0821995f, + 0.0740103f, -1.0412805f, -0.0621277f, 0.2439800f, 0.2684972f, -1.1661061f, 0.7859434f, -0.6170313f}, + {2.1615884f, 0.1431713f, 0.0642652f, -0.0522325f, -0.2658786f, -0.0245810f, -1.6857448f, -0.6685011f, + -0.6978170f, -0.8716729f, 0.3129902f, -2.5870812f, -0.2855283f, -0.3205920f, -0.0084069f, 1.3182145f, + -0.6923816f, -0.3730274f, -2.3638811f, -1.1128502f, -2.4709859f, 0.1349022f, -0.3574466f, -0.6597407f, + -4.1122031f, 0.2240651f, 0.1806145f, -1.6836300f, -0.0766231f, -3.2611966f, 0.0091456f, -0.0997367f}, + {5.2476101f, -0.1966512f, 4.8935304f, -0.1551689f, 1.6919724f, -0.8324367f, 14.3318472f, -0.3503132f, + 10.3614969f, -9.1522884f, -0.2543063f, -1.8476851f, 16.7961140f, 9.9541416f, -0.0434563f, -9.6973553f, + -5.0469398f, 6.1688442f, 7.6429725f, -7.3149266f, 1.2345183f, 0.1412155f, 0.7114770f, -1.6378664f, + 5.1548996f, 0.3686100f, -45.3027611f, 3.0492647f, -37.3445892f, 2.7421410f, -2.7958770f, -25.2034016f}, + {1.4597454f, -1.0561740f, 0.9751291f, 0.0446527f, 0.3691662f, 0.1006782f, 0.1418435f, 0.8871480f, + 1.1603093f, 2.8034730f, -4.0856910f, -1.9786842f, -0.2206208f, 0.9539357f, 0.0868183f, -0.6811873f, + 1.9642411f, -0.8065316f, -2.0244894f, 5.2936082f, 0.6120632f, -0.1194160f, -2.3925939f, 2.5555069f, + 1.0149733f, 0.4607603f, -0.2197217f, 0.5703423f, 1.4049014f, -1.5900208f, 5.1645074f, -6.0569463f}, + {0.9000676f, -0.0028781f, -0.1967366f, 0.1039593f, 0.7993248f, 0.0655172f, 2.2296758f, 0.4391927f, + -3.0292840f, 0.0334536f, -1.1728534f, 0.3479103f, -0.1190938f, 0.0410203f, 0.1146637f, -0.2958017f, + -0.3240463f, 0.4361866f, 1.0564958f, -0.1989332f, 0.5194008f, -0.0628912f, -0.1733121f, -0.1255383f, + 0.5990249f, -3.7692382f, 0.0995128f, -0.7101220f, -0.0785123f, -0.3514554f, 0.6662078f, 2.0991604f}, + {0.1781942f, -0.1873588f, -0.4653996f, -0.0153059f, -0.1399561f, -0.0498718f, 0.4552556f, 0.2300792f, + -0.7682312f, 0.4342302f, -0.3787803f, -0.6089386f, -0.1049337f, 0.0395331f, 0.0220332f, 0.0114750f, + 0.4672548f, 0.1284784f, -0.2472819f, 0.2892784f, 0.4788667f, 0.0472555f, -0.6593549f, 0.6508777f, + 0.9286987f, 0.3043948f, -0.0635985f, 0.0814399f, -0.1168853f, -0.6688027f, 0.8876534f, 0.4865684f}, + {0.4024099f, 0.0480259f, 0.4588822f, -0.1793082f, -0.2151573f, -0.1871128f, -0.1502780f, 1.1011307f, + -0.9467706f, 0.2632496f, -0.1257263f, -0.0241331f, 0.2280627f, 0.0878608f, -0.1334262f, -1.1642927f, + 1.0943586f, -0.4799654f, 0.5981907f, -1.5051398f, -0.4235946f, 0.0012827f, 1.2342577f, -0.8281875f, + 0.2776567f, -1.0362227f, 0.0408372f, 0.1540821f, 0.1777556f, -1.2684357f, 0.8836584f, -0.4001710f}, + {2.1558056f, 0.2082023f, 0.0863442f, 0.0364868f, -0.3985825f, 0.0307202f, -1.8889453f, -0.5614714f, + -0.7311882f, -0.8075573f, 0.4895108f, -2.7770483f, -0.3121874f, -0.1671291f, -0.1281284f, 1.3212786f, + -0.5310181f, -0.1974759f, -2.6240873f, -0.8320529f, -2.3875966f, -0.0286360f, -0.6263188f, -0.6553424f, + -4.1658955f, -0.0601300f, 0.0946256f, -1.6795633f, -0.1251303f, -3.0974686f, 0.2412274f, -0.0687501f}, + {2.0523887f, -0.6387668f, 2.0633900f, -0.0550964f, 0.5181718f, -0.4202190f, 1.8569367f, 0.8295385f, + 0.8555872f, 2.4727983f, -0.2072828f, -1.9006120f, 0.5379534f, 0.4463673f, 0.1468820f, 0.4918649f, + -3.4016700f, 0.2884440f, -1.9418719f, 4.5157170f, -0.5160927f, -0.0199372f, 3.1353824f, -0.9863126f, + -1.5135859f, 0.7576568f, 0.6715558f, 2.7409093f, 0.9291748f, -0.3247162f, 1.8204515f, -8.9181070f}, + {-0.1428107f, -0.0829889f, 0.4213613f, 0.0225415f, 1.2238166f, 0.0477106f, 0.3031853f, -0.7466553f, + 2.0663500f, 0.7588379f, 0.3689216f, -0.2003786f, 0.1242338f, 0.1693589f, -0.0351716f, -0.0186597f, + -0.0189417f, 0.5468715f, -0.2862698f, -0.1311738f, 3.0747476f, -0.0310747f, 0.0943165f, 0.3139819f, + 0.6274695f, -1.8314874f, 0.0147495f, 0.3554756f, 0.3829916f, 0.4891713f, 0.1328600f, 1.0535098f}, + {0.0534900f, 0.1787969f, -0.0571320f, -0.0685673f, 0.1968977f, 0.0374476f, 0.7876674f, 0.0828491f, + 0.6444036f, -0.2203166f, -0.2383427f, 0.5397566f, 0.0106769f, -0.1230072f, -0.0135021f, -0.5691944f, + -1.5040319f, 0.0406933f, -0.0025478f, 0.9251419f, -1.7180276f, -0.1112956f, 1.4840862f, 0.0407115f, + -0.0100329f, 0.0583593f, -0.0110524f, 0.7431355f, -0.0971857f, -0.5501527f, -0.6371027f, -0.1935233f}, + {-0.6455778f, 0.2317368f, 0.9285696f, -0.1415854f, 0.0822560f, 0.2488030f, -2.6992166f, 0.0884904f, + 0.6735302f, -0.1467820f, 0.5641044f, 0.6436581f, 0.0818401f, -0.0336634f, -0.0729000f, -0.1206900f, + -2.5739892f, 0.5776953f, 0.9531668f, -1.2362405f, -0.0615577f, -0.0143544f, -2.7525210f, 1.3738545f, + 0.2751348f, -1.7463943f, -0.0020144f, 2.4814103f, 0.1716725f, -0.7055540f, -0.3474010f, 0.4482578f}, + {-0.2526205f, -0.7463821f, -3.6076138f, -0.1511098f, 0.1216256f, 0.0888247f, -1.0190924f, -1.3260181f, + -0.0443211f, -4.8911066f, -3.4385188f, -6.0057454f, 0.3340450f, 0.2997236f, -0.0907855f, 0.7500492f, + -0.4007562f, 1.9382039f, 0.5687234f, 2.6511824f, 4.7703862f, 0.0006749f, -0.0201394f, -3.5885489f, + -4.1518898f, 0.0807014f, -0.0584071f, -0.8100027f, 0.7697087f, -0.8038046f, -1.2945876f, -4.0110312f}, + {0.4337017f, -1.1532011f, 2.0740633f, 0.0271806f, 0.6654227f, 0.1012998f, -4.0791736f, 1.2631345f, + 1.9511020f, 2.3272331f, 1.2707534f, 1.6306664f, 0.4936035f, 0.8285242f, 0.0807625f, 3.8652387f, + 0.0281145f, 1.6877037f, 1.2557380f, -0.3036775f, 0.5604967f, 0.1551418f, -0.9599600f, -6.3067718f, + -0.6352320f, 0.8058553f, 0.3657880f, -2.0491202f, -0.3926269f, 2.5650854f, 1.3697821f, -8.3070078f}, + {5.1334143f, -0.0351738f, -0.4774780f, -0.0679726f, 1.4569254f, 0.0580191f, -0.3649136f, -0.2298838f, + -3.3826666f, -0.7392708f, -0.6036060f, -0.2612940f, -0.1877640f, -0.1145124f, -0.0042578f, -0.0311193f, + -0.0320479f, 0.5270581f, -0.4324475f, 0.2681437f, 4.7813129f, -0.0222701f, -0.0525629f, -0.2861001f, + -0.1251072f, 3.9112861f, 0.0045046f, -0.0426071f, -0.3299106f, -0.0686970f, -0.1602017f, -0.0070103f}, + {-0.6633690f, 0.0103367f, 0.5998458f, 0.1256577f, -0.0359184f, -0.0176820f, -0.6458368f, -0.0370536f, + 0.3542259f, 0.1394724f, 0.8255956f, 0.2501569f, 0.0320156f, -0.0256806f, 0.0277949f, 0.0036392f, + 0.2825173f, 0.1400358f, 1.0011463f, -0.6792242f, 0.0672508f, 0.0728705f, -0.1089695f, -1.0414587f, + -0.4135485f, 0.4293025f, -0.0041241f, -0.9564193f, 0.0314900f, 0.8658463f, -0.7734696f, -0.7610567f}, + {-0.0200122f, -0.0749178f, -1.5026549f, -0.0387432f, -0.0713735f, 0.1214790f, 1.8730290f, -0.0552839f, + -1.6867150f, 0.2282097f, 0.7161849f, -0.1018546f, -0.1092003f, 0.0365504f, -0.1326883f, 1.2310545f, + 0.1800210f, 0.7024739f, -2.9606545f, 1.2275347f, -0.2050014f, 0.0940569f, 0.4761694f, 0.8812068f, + -0.0083424f, -1.5406264f, 0.0061815f, -2.7606382f, 0.0248556f, 1.1086880f, -1.3608936f, 1.0795454f}, + {0.9734020f, 0.3905411f, -3.7008634f, 0.0013557f, 0.1649124f, 0.9935362f, 1.3489184f, 0.9505764f, + 0.7966231f, -0.1627246f, -2.5754328f, 1.4892205f, 0.8586300f, 0.6974363f, 0.1320204f, -0.7840260f, + 0.3121157f, 0.0966901f, 2.7447381f, 1.8256680f, 0.7229405f, -0.1723188f, 0.9145948f, -2.1376033f, + 0.5259342f, 0.0731194f, -0.2908303f, -0.2603913f, -0.2326528f, 3.6684167f, -0.2883157f, -2.8546307f}, + {-4.8917460f, 6.7944999f, -0.2255474f, 0.1051999f, 3.9000113f, 2.0624907f, 5.3019547f, 10.0209141f, + 1.1268179f, 2.2669628f, -6.5002980f, 1.8408583f, 5.3039579f, 2.2055962f, 0.1055369f, 1.7230233f, + 6.9605255f, 7.7025104f, 2.9880707f, -0.9274251f, -0.2287160f, -0.0206735f, 0.6885675f, 2.8179996f, + -7.1129837f, -1.3772345f, 3.8655453f, -5.9388318f, -0.0469947f, 7.2763596f, -6.3536129f, -17.0069847f}, + {1.8787041f, -0.9953383f, -1.4839923f, 0.1308209f, 0.3657510f, 0.3106483f, -1.4158971f, -6.7449651f, + 0.6553892f, -4.5046172f, -3.5489719f, 3.5363002f, 0.5454772f, 2.3521471f, 0.1612140f, -0.9744226f, + 0.6546553f, -2.7179255f, -1.7758157f, 0.3089439f, 1.7462813f, 0.1654593f, -0.2440207f, 3.9501827f, + 1.3750844f, 0.0596805f, -0.1977254f, 0.0264880f, 2.6396444f, 1.0816911f, 3.6413448f, -6.0299959f}, + {-4.1295738f, 0.1044480f, 0.2131937f, 0.0420826f, 0.5292229f, 0.0090477f, -0.0973486f, 0.9596778f, + 2.9579651f, -0.6364226f, -1.7556342f, 0.1539868f, -0.1273174f, -0.1348504f, 0.1257833f, -1.4168571f, + -1.0960362f, 0.0482449f, -1.4395387f, -0.2524115f, -2.9162085f, -0.0451428f, -0.4021681f, -0.5756381f, + 0.0515293f, -3.1996479f, -0.0007676f, -1.3878343f, -0.2864279f, -0.9579773f, -1.0999249f, 1.6500067f}, + {-2.4806111f, -6.8115449f, 3.2805641f, 0.1187415f, -0.9950783f, 6.2553434f, -1.6450261f, -6.1463733f, + 2.7507148f, 4.2995782f, 0.0461297f, -0.5417359f, 2.4306326f, -7.3530145f, 0.0698273f, -0.9394333f, + -1.3595498f, -7.5141478f, -1.4911395f, 3.2300410f, 0.1203540f, 0.0314884f, -2.0116949f, -0.8167119f, + 2.4133310f, 0.1920709f, 1.0619365f, 0.2459123f, 6.9166069f, -2.6384118f, 3.6829739f, -7.2385545f}, + {0.9408096f, 14.9067144f, 1.7709646f, 0.1105646f, -0.5600107f, -15.3188124f, -12.3718462f, -1.8893757f, + 13.6364670f, -5.7327847f, -14.1805468f, 1.0581509f, -14.2186184f, 14.8948650f, 0.0190344f, 5.4395180f, + 6.7243400f, 9.8468456f, 4.5144215f, -1.4551491f, 1.1032411f, -0.0317988f, 2.3398454f, -3.1671596f, + -7.7541409f, 1.1255593f, 6.7340465f, -4.4448423f, -9.1472626f, -3.1959128f, 4.4181323f, -2.7904994f}, + {-2.1621978f, -4.7202382f, 1.7378219f, 0.1417439f, -0.5000908f, 5.4468708f, 1.4260571f, -6.6136570f, + 1.5713804f, 3.4479704f, 2.7354901f, -0.7388076f, 5.4666147f, -3.8697338f, -0.1368596f, -2.7903373f, + -1.2043713f, -4.9554005f, 0.3324645f, 1.6767365f, 0.1156244f, -0.0326964f, -2.0945346f, -0.4590589f, + 3.0942657f, 0.0015020f, -6.2626700f, -0.3969755f, 0.7717427f, -1.9667094f, 2.9664171f, -11.9477053f}, + }; + ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_2[32] = { + 9.8383608f, 3.6922295f, 3.5774977f, -4.4619012f, 6.5087032f, -0.9540017f, -0.5059246f, 0.0706402f, + 14.3396597f, -0.2771132f, -4.8409863f, -8.3581600f, -3.5078344f, 4.3287506f, -5.7808843f, 3.9264839f, + -2.1697845f, -0.0040514f, -0.2095029f, -6.8678174f, 1.7911285f, -0.4510343f, 1.2410443f, -4.5678806f, + -0.5693849f, 2.3320096f, 4.4606552f, -6.3771009f, -4.3149071f, -0.1905672f, -3.5726390f, -1.0744030f}; + ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_2[32][32] = { + {-0.0155548f, 0.0243339f, 0.0037967f, -0.2771824f, 0.0111955f, -0.0115980f, 0.0079653f, -2.9803498f, + -0.0061037f, -0.0956634f, 0.0332446f, 0.0179244f, -0.0080377f, -9.0180779f, 0.1720033f, 0.0350694f, + -0.0146588f, -0.2135506f, -0.3158041f, 1.3697664f, 0.0119146f, 0.0119120f, -0.0986927f, 0.0297492f, + 0.0355827f, -0.1196868f, -0.0745119f, 0.0281862f, -0.0422190f, -0.3069138f, -0.0477367f, -0.0550450f}, + {-1.7374619f, 1.4822800f, -2.1885235f, 1.8354234f, -0.5380136f, 1.6621803f, 0.6251035f, 0.1008954f, + -0.8387129f, -0.2063313f, 1.0661691f, -0.9799694f, -5.1710258f, -3.2260630f, -1.5073707f, -1.0792168f, + 1.8569958f, -0.2289213f, 0.0563821f, -1.6398847f, -4.1649504f, -2.7527378f, -0.0134577f, 3.0424533f, + 0.0364320f, 0.6762254f, -3.1551330f, 2.4888904f, 1.4757305f, -0.3141717f, -2.0126467f, -0.1675602f}, + {-0.9571826f, 0.0914152f, 0.0404339f, 0.2927902f, 0.2933607f, 0.0619171f, 0.0772318f, -1.3796169f, + -0.8194544f, -0.2179988f, -1.1241078f, -0.1443964f, 0.0559355f, -1.2914546f, -0.3445117f, 0.2031156f, + 0.0273864f, -0.0193422f, -0.2136522f, 0.0429592f, 0.0212854f, 0.0414394f, -1.1734651f, 0.0582848f, + 0.0136039f, -0.1892604f, 0.0764908f, -0.0130132f, -0.1272559f, -0.0818855f, -0.0408583f, -0.1563294f}, + {-0.0213695f, 0.0596942f, -0.0641309f, -0.0146449f, 0.0416586f, -0.0378931f, 0.1234860f, 0.1622967f, + 0.0794091f, -0.0639933f, -0.1030663f, 0.0579078f, 0.1050275f, -0.0136866f, 0.0149978f, 0.0876813f, + 0.0693554f, 0.1612417f, -0.0595916f, -0.1008234f, -0.0579058f, 0.0915138f, 0.1321436f, -0.1484535f, + -0.0920316f, -0.0024532f, -0.1045300f, 0.0924260f, 0.0277524f, -0.0287276f, -0.1271127f, 0.1164243f}, + {0.0713067f, 0.0198056f, -0.3023696f, -0.0025908f, -0.0085885f, -1.1157553f, 0.0236462f, -0.0704844f, + -0.0189257f, -0.0997382f, 0.3379845f, -0.1229390f, -0.0616165f, -0.8968034f, 0.0401445f, -0.1144476f, + -0.0532077f, 0.0604580f, 0.0609454f, -0.1613472f, 0.0103525f, -0.1653874f, 0.0205189f, 0.0758978f, + -0.1514593f, 0.0151441f, 0.2043469f, 0.0349607f, -0.1361278f, -0.1255922f, 0.0631648f, 0.3570991f}, + {0.3371337f, -3.7541580f, 2.2215877f, -0.3390516f, 0.1912718f, -4.1861577f, -1.2264019f, 2.8179801f, + 0.0667294f, -0.0093539f, 2.3029909f, 3.1814916f, 3.9780347f, 0.2310601f, 0.3986159f, -0.8544636f, + 0.4139664f, -0.1876569f, -0.2448732f, -2.8053334f, 4.0488625f, 2.1094146f, -6.7310257f, -4.9950023f, + -0.8315823f, 0.0555959f, 2.4573720f, -3.7234364f, -4.2910552f, -0.2995245f, -3.2605181f, 2.3620574f}, + {-1.5522735f, -0.1866350f, -0.0067679f, 0.3196557f, 1.4052233f, 2.8143549f, -0.9992948f, -0.5309914f, + -25.8852596f, -0.1218249f, 0.6625420f, 0.3007106f, -0.2767264f, -0.1847300f, -0.5313534f, -0.0383462f, + -0.1987552f, 0.0581405f, -0.3376078f, 1.2621028f, 0.0818709f, -0.1401216f, -0.4550788f, -0.1592657f, + 0.0597123f, 0.1344101f, -0.1005317f, -0.1538406f, 2.9142656f, -0.0806051f, -0.4267367f, -31.9512234f}, + {0.6859627f, 0.1212986f, 0.1291616f, 0.0459838f, -0.0899920f, 0.0287645f, 0.1987007f, -2.7079368f, + -0.2628384f, -0.1402464f, -0.6302179f, -0.2923960f, -0.1106663f, 0.8256195f, -2.8054097f, -0.0296494f, + -0.5632019f, -0.1335654f, -0.1558440f, -6.8611612f, 0.0203786f, 0.0046566f, -0.4401442f, -0.0471430f, + 0.4535986f, -0.8657981f, 0.0684740f, 0.0518814f, -0.0123748f, -0.2270164f, 0.0922878f, -0.3863277f}, + {0.0127175f, 2.3346109f, -0.4390767f, -0.4657893f, 0.1659466f, -0.1132782f, -0.4928388f, 0.7652873f, + 1.1510741f, -0.0879600f, 0.2721785f, -0.1878961f, -0.3477249f, -0.8473209f, -0.8931856f, -0.4328294f, + -11.9181929f, -0.0282545f, -0.0217915f, 1.6676594f, -0.2122232f, -0.6190930f, 1.9053432f, -0.7592348f, + -1.0739189f, -0.7170524f, 0.3864411f, -0.8849231f, 0.1393488f, 0.0738489f, 0.4460345f, 1.9020857f}, + {0.4453296f, -0.0767821f, 0.1638939f, 1.6997167f, -0.1098599f, -0.0551604f, 0.0040561f, -13.5290670f, + -0.1285677f, -0.0590394f, 0.6499141f, -0.7617344f, 0.0453151f, 0.3104213f, -1.0711143f, 0.1361838f, + -0.4365610f, -0.1300649f, 0.2013344f, -0.5308123f, 0.1451896f, 0.1030715f, -0.6487910f, -0.3136590f, + -0.0280079f, 0.5394178f, 0.1318262f, -0.0159292f, 0.0636870f, -0.3224248f, -0.1868187f, -0.2468304f}, + {-0.0333494f, -0.0834255f, -0.1221875f, 0.6861304f, 0.0521738f, -0.0416543f, -0.4437352f, -19.3246250f, + -0.1520821f, 0.0528602f, -0.6375434f, -0.5803806f, -0.0958465f, -2.0058544f, -0.8282642f, 0.0259000f, + 0.4846996f, 0.1211179f, 0.0356884f, 1.0009497f, 0.0635682f, -0.0314105f, -0.0011147f, 0.0131714f, + -0.3410152f, 0.2798154f, 0.0961889f, 0.1266228f, -0.0934717f, -0.0904307f, 0.1355542f, 0.5722573f}, + {0.2146454f, 0.2143834f, 0.1290650f, -0.9063646f, 0.2100945f, 0.1331054f, -0.2620614f, -0.1264993f, + 0.1313979f, 0.0455465f, -0.8395286f, -0.4967833f, -0.0538581f, 0.9155380f, 0.6627046f, 0.1691243f, + 0.9887002f, -0.1597013f, -0.1236713f, -1.9041336f, 0.0427585f, 0.0849747f, -5.2559652f, -0.3133100f, + 0.0141170f, -0.1635530f, 0.4938746f, 0.0162943f, 0.2107756f, -0.3413893f, -0.0657575f, 1.0542560f}, + {-2.8868380f, -2.0837426f, -1.0611480f, -0.6143807f, -0.6398501f, -2.8018746f, 0.5166737f, -1.0814301f, + -1.9272422f, -0.1017482f, -0.4651161f, -1.4021232f, 1.8854499f, 0.1815407f, 0.5965426f, -2.3344259f, + -0.0690846f, -0.1678239f, -0.4219488f, 0.6215640f, 1.0270095f, -0.3473049f, -0.3926674f, -0.7942593f, + 1.1305071f, -1.4621233f, -0.8051161f, -0.7698632f, -2.6038630f, -0.3090037f, -1.6365144f, -1.0179478f}, + {0.0046026f, 1.1319581f, -2.6405678f, -2.0353596f, -2.1687336f, 0.3364883f, 2.1122196f, 0.2584647f, + -2.4344857f, -0.0378498f, 0.6158544f, -0.6060749f, -4.9598379f, 0.1570698f, 2.2436838f, -2.6198347f, + -2.0935996f, -0.1845744f, -0.0716080f, -1.9338604f, -4.1995640f, -3.6706774f, -1.6762524f, 3.9646862f, + -0.9677961f, 1.8319578f, -3.1916575f, 3.7312632f, 0.0820446f, -0.0497568f, -0.0898171f, -0.2499462f}, + {-0.0780375f, -0.0286571f, 0.1007227f, 0.0012229f, -0.0531285f, 0.0840718f, 0.1013894f, 0.1312424f, + -0.0673772f, 0.1603183f, 0.0074385f, -0.0718321f, -0.1549873f, 0.1616689f, 0.0405887f, -0.1558588f, + 0.0740745f, 0.1696893f, -0.0064026f, -0.1656420f, -0.1186674f, -0.1262667f, -0.0784757f, -0.1280154f, + 0.0909976f, 0.0853046f, -0.1075811f, 0.1310615f, 0.0610194f, 0.0647223f, 0.1360559f, 0.0440074f}, + {-0.2106480f, 0.0087131f, 0.1119385f, -1.0611318f, 0.5250220f, 0.0525479f, -0.2733742f, -1.0799565f, + -0.5601607f, -0.0651806f, -1.9793440f, -0.3373334f, -0.1550518f, 0.8932216f, 0.7264332f, -0.0450735f, + 1.2373760f, -0.1236272f, 0.0680048f, -3.0446634f, -0.1533586f, -0.0127355f, -0.3326311f, -0.0225603f, + -0.2265739f, -2.3752897f, -0.3771705f, -0.0728938f, 0.1741305f, 0.1111639f, 0.4131119f, 0.2239323f}, + {-2.5691276f, -1.4011253f, -2.0640867f, -3.7236946f, 1.5542637f, -0.9456654f, -1.7575809f, 3.6794879f, + -0.4439790f, -0.1009826f, 3.6702275f, -0.1935008f, -0.4423219f, -0.3825364f, -0.4784791f, 0.5927492f, + -2.3482494f, 0.0801714f, -0.1567418f, -1.7934613f, -0.1706410f, -0.6326947f, 0.6260155f, 0.3631033f, + -0.9325932f, 1.9647995f, -1.3409088f, 1.3501998f, 0.0367797f, -0.1744210f, 1.8690013f, -1.0737898f}, + {-0.5934777f, 0.6232591f, -0.3391055f, 0.2640936f, -0.2824444f, 0.4815128f, 0.6625078f, -0.1103976f, + 0.9555223f, -0.0624896f, -0.6778919f, 0.1181502f, -0.5425385f, 0.7297349f, -1.7261271f, -0.2917557f, + 1.1873137f, -0.2725933f, 0.0975242f, 1.7756181f, -0.5735835f, -0.4453230f, 0.9800369f, 0.9344145f, + -1.8692539f, 0.0120440f, -0.7315661f, 0.6250805f, 0.3839143f, -0.0376306f, 0.3816243f, 0.6059195f}, + {0.5522162f, -1.8043815f, -10.9379101f, 0.5719097f, -0.2246755f, -1.4856353f, 0.4877502f, 0.7163438f, + -11.8135147f, -0.0180790f, -0.9928634f, 0.1107815f, -0.0005064f, -0.3824990f, -0.7453306f, -1.9909632f, + -7.4362645f, -0.0245507f, -0.1815712f, -3.5507584f, -0.0075889f, -11.0296011f, -1.1292133f, -0.0710276f, + 0.5675677f, 0.2017778f, -0.0684891f, -0.0367653f, -1.6674192f, 0.0281711f, -0.8356591f, -0.0447807f}, + {0.2537312f, -3.0178010f, -0.3493635f, 1.8573236f, 0.4017631f, 0.9912633f, -0.8625028f, -0.7783228f, + -1.7815375f, -0.1204695f, 1.8551122f, 0.3344182f, -0.2828701f, -1.3226960f, -1.4470471f, 0.2895959f, + 0.6780876f, -0.2010069f, 0.0425280f, -2.1786852f, -0.1274053f, -0.2549899f, -0.2233993f, -0.1561645f, + -0.4640818f, 0.6375850f, 0.7733670f, -0.2388286f, 1.0447853f, -0.1503223f, 0.3823584f, -13.8176088f}, + {0.2575197f, -2.2127593f, -0.0389457f, -0.0215759f, 0.1659477f, -0.0097748f, -0.1935415f, -0.9091369f, + -0.1453371f, 0.0442428f, -0.1206519f, 0.1435609f, -0.0186047f, -5.0154042f, 0.0538177f, 0.0403250f, + 0.0240955f, 0.0331080f, 0.0517951f, 0.7422639f, 0.0069818f, 0.0248351f, -0.2205741f, -0.0082387f, + 0.2043269f, 0.0459435f, 0.0876343f, 0.0140607f, 0.1056308f, 0.0062555f, 0.0184278f, -0.5539715f}, + {-0.0398742f, 0.1075264f, 0.1725024f, -0.0755192f, -0.0360048f, 0.1325573f, 0.0903103f, -0.0882263f, + 0.1207692f, 0.0032722f, 0.0048489f, -0.1257241f, 0.1450990f, -0.0713558f, 0.1116815f, 0.1107689f, + -0.1447252f, 0.1581838f, -0.0160124f, -0.0425587f, 0.1411217f, 0.0865060f, -0.0643460f, -0.0431262f, + -0.1452804f, -0.0195101f, 0.1234572f, 0.0520887f, 0.1117576f, -0.0751791f, 0.1511539f, 0.1224861f}, + {0.7728126f, 2.3075340f, -0.0385258f, -3.1270287f, 0.9414487f, 3.5251477f, -0.8043440f, 0.7212446f, + -7.6850162f, -0.1609414f, -3.7687578f, -1.0751100f, -0.2052089f, 5.0728245f, 2.2835267f, 0.5930225f, + 0.1303335f, -0.1428799f, -0.3715075f, 0.5136011f, -0.4755619f, -0.2192461f, -3.8696294f, -0.0062392f, + -1.3774812f, -0.0034140f, -1.5944362f, 0.9773729f, 3.2859125f, -0.1616932f, -1.2785367f, -13.5732412f}, + {0.5535743f, 0.1461481f, -0.2218016f, -0.2971808f, -0.2169309f, 0.1564545f, -0.0390397f, 1.1558976f, + -0.0119933f, -0.0774637f, 1.1907971f, -0.5127968f, -0.0066028f, -1.6794037f, -0.3650940f, 0.2555613f, + -0.9488379f, 0.0449603f, -0.1620417f, 0.1583214f, 0.0000908f, 0.0152763f, -1.0660053f, -0.0139402f, + -1.7440189f, 0.2515209f, 0.3333162f, 0.1904725f, 0.1116094f, -0.2287960f, -0.0007165f, -1.7047704f}, + {-5.9897852f, -0.1316296f, -0.0218074f, -0.4602887f, 0.3288545f, -0.0882939f, -0.5929499f, 0.4294790f, + -0.0383545f, 0.0556869f, 0.1975944f, 0.1341491f, 0.0629570f, -2.2742157f, 0.0175826f, -0.1439869f, + -24.8701649f, -0.1582915f, -0.2460304f, -3.9643264f, 0.0863483f, 0.0180861f, -0.2210452f, -0.0868723f, + -0.4175525f, -0.8231756f, 0.0247534f, -0.1473545f, -0.0021330f, -0.0410253f, -1.1944869f, -1.1523768f}, + {0.1031547f, -3.3402514f, -4.3636522f, -0.1534714f, -0.0622189f, 0.0374694f, -0.0870097f, -4.1865788f, + -0.0555377f, 0.0252329f, 0.1339467f, 0.0461691f, -0.0503090f, 0.0289890f, -0.0095674f, -0.3289992f, + -0.0279080f, 0.0274977f, -0.0903500f, 0.5610157f, -0.0478177f, 0.4346960f, 0.4822784f, -0.1058945f, + -0.2026870f, -0.0560638f, 0.0910069f, -0.0818529f, 0.0819198f, -0.0292193f, 0.3040628f, -0.1275230f}, + {-5.8789845f, -17.1114635f, -4.6755161f, 0.1016624f, -0.8685016f, -0.3898779f, -2.3363957f, 0.1413794f, + -2.4254086f, -0.2171030f, -0.0901150f, 0.7058705f, 0.4166250f, -0.0231085f, -0.1789686f, -9.4244318f, + -0.6418229f, -0.0857969f, 0.1683681f, -0.0310597f, -0.0247807f, -5.3748040f, -7.4730940f, 0.1019564f, + -1.2126822f, -0.3726285f, -1.0287101f, 0.1803891f, -0.2227769f, -0.0791530f, -0.0159770f, -1.4883354f}, + {-17.9394970f, -0.5228514f, -11.3547935f, -0.0672671f, -2.0371394f, -0.9076943f, 2.4331825f, -6.9409127f, + 0.8286008f, 0.0208618f, -0.8009814f, 1.2268484f, 0.1943726f, -1.7297083f, -0.7668949f, -6.5505466f, + -0.6495168f, -0.0404727f, -0.1260914f, -3.5029383f, -0.0852898f, -2.9679556f, 1.6404767f, -0.0251449f, + 1.1460075f, -0.7877688f, -0.0586593f, -0.4741839f, -1.7420560f, 0.0295600f, -2.3574052f, 0.0974777f}, + {0.4443443f, 0.6384261f, 1.3317494f, -1.0085982f, 0.9508762f, 1.3168396f, -0.1862490f, -0.1801148f, + 1.1106120f, -0.0654911f, 0.1186706f, -0.7198273f, 0.5449172f, -0.5886080f, 0.7504217f, 1.8046317f, + -0.1294390f, -0.1939137f, -0.2383934f, 0.4131435f, 0.6910310f, 1.2821866f, -0.1088722f, -0.5660405f, + -0.1188610f, 0.0364403f, 0.3597929f, -0.6409024f, 1.2114668f, -0.0212278f, 0.8423592f, 0.4848156f}, + {-0.8772649f, -13.5265112f, -4.5540547f, -0.2856667f, 0.7604876f, -0.6829260f, -0.8320626f, 0.6541347f, + 0.4020181f, 0.0009324f, -10.9660740f, -0.3540186f, -0.2316812f, 0.3576394f, 0.0998953f, -1.5738430f, + 1.2089975f, 0.0706465f, -0.2538019f, 0.7016497f, -0.0282650f, -3.1291001f, -0.4375663f, -0.3979468f, + -0.1588882f, 0.3978875f, 0.2038192f, -0.4281644f, -0.5787544f, -0.0922198f, 0.9595569f, 0.0212818f}, + {0.3392667f, 0.1170919f, -0.0705636f, -0.1025443f, -0.1192213f, -0.0495686f, 0.0284667f, -0.1226804f, + 0.0050191f, -0.0516545f, -1.0892097f, 0.0033689f, 0.0471462f, 1.4266804f, 0.0288870f, -0.0110408f, + -1.1283765f, -0.1299917f, -0.4318301f, -0.9854419f, -0.0190479f, -0.0269406f, 0.3697925f, -0.0757695f, + -0.3632923f, -0.1714077f, 0.0669245f, 0.0557428f, -0.1713906f, -0.4307863f, -0.1749060f, -2.1246362f}, + {0.8383662f, -3.8122442f, 0.1568939f, -2.2105119f, -0.7086993f, -0.4664145f, -0.3578597f, 0.5554636f, + 0.6965880f, -0.1506968f, 0.2646832f, 0.2874083f, 0.1901203f, -2.4997077f, -0.3519035f, -0.0518054f, + 1.0862818f, -0.2502540f, -0.3133347f, -0.7411230f, 0.1268138f, 0.1069811f, -0.8109779f, 0.0264679f, + 0.1604289f, -0.7534032f, -0.1419461f, 0.0688303f, -0.1570919f, -0.3055144f, -0.7415189f, 2.5547018f}, + }; + ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_4[1] = {1.4616280f}; + ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_4[32][1] = { + {0.0609813f}, {0.0685224f}, {0.1655236f}, {-0.0599842f}, {0.0669006f}, {-0.1817371f}, {-0.0539167f}, + {-0.0737955f}, {0.0654664f}, {0.0302955f}, {-0.0586768f}, {0.0717433f}, {0.1472274f}, {-0.0610073f}, + {-0.0601061f}, {0.2086218f}, {-0.0545418f}, {-0.0388369f}, {-0.0613536f}, {-0.1141072f}, {-0.2289097f}, + {-0.3354485f}, {0.0831025f}, {0.1333673f}, {0.0490410f}, {0.0484894f}, {0.0436755f}, {-0.1479877f}, + {0.1540713f}, {0.0021261f}, {-0.0845848f}, {-0.0564973f}, + }; + + } // namespace t5dnn + +} //namespace lst #endif diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index bc933469aa022..bf6b95d069d5f 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -11,7 +11,7 @@ #include "ObjectRanges.h" #include "Quintuplet.h" -namespace SDL { +namespace lst { // One pixel segment, one outer tracker triplet! struct PixelTriplets { unsigned int* pixelSegmentIndices; @@ -132,11 +132,11 @@ namespace SDL { inline void setData(PixelTripletsBuffer& buf) { data_.setData(buf); } }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelTripletToMemory(struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, - struct SDL::Triplets& tripletsInGPU, - struct SDL::PixelTriplets& pixelTripletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelTripletToMemory(struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, + struct lst::Triplets& tripletsInGPU, + struct lst::PixelTriplets& pixelTripletsInGPU, unsigned int pixelSegmentIndex, unsigned int tripletIndex, float pixelRadius, @@ -214,10 +214,10 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runPixelTrackletDefaultAlgopT3(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::ObjectRanges& rangesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::ObjectRanges& rangesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, uint16_t& pixelLowerModuleIndex, uint16_t& outerInnerLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -259,8 +259,8 @@ namespace SDL { 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)) { + if (outerInnerLowerModuleSubdet == lst::Barrel and + (outerOuterLowerModuleSubdet == lst::Barrel or outerOuterLowerModuleSubdet == lst::Endcap)) { return runTripletDefaultAlgoPPBB(acc, modulesInGPU, rangesInGPU, @@ -289,7 +289,7 @@ namespace SDL { sdlCut, betaOutCut, deltaBetaCut); - } else if (outerInnerLowerModuleSubdet == SDL::Endcap and outerOuterLowerModuleSubdet == SDL::Endcap) { + } else if (outerInnerLowerModuleSubdet == lst::Endcap and outerOuterLowerModuleSubdet == lst::Endcap) { return runTripletDefaultAlgoPPEE(acc, modulesInGPU, rangesInGPU, @@ -323,23 +323,23 @@ namespace SDL { return false; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RZChiSquaredCuts(struct SDL::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RZChiSquaredCuts(struct lst::Modules& modulesInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, float& rzChiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + - 6 * (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex1] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex1] == lst::TwoS); const int layer2 = modulesInGPU.layers[lowerModuleIndex2] + - 6 * (modulesInGPU.subdets[lowerModuleIndex2] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex2] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex2] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex2] == lst::TwoS); const int layer3 = modulesInGPU.layers[lowerModuleIndex3] + - 6 * (modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex3] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex3] == lst::TwoS); if (layer1 == 8 and layer2 == 9 and layer3 == 10) { return rzChiSquared < 13.6067f; @@ -395,7 +395,7 @@ namespace SDL { float chiSquared = 0.f; float absArctanSlope, angleM, xPrime, yPrime, sigma2; for (size_t i = 0; i < nPoints; i++) { - absArctanSlope = ((slopes[i] != SDL::SDL_INF) ? alpaka::math::abs(acc, alpaka::math::atan(acc, slopes[i])) + absArctanSlope = ((slopes[i] != lst::lst_INF) ? alpaka::math::abs(acc, alpaka::math::atan(acc, slopes[i])) : 0.5f * float(M_PI)); if (xs[i] > 0 and ys[i] > 0) { angleM = 0.5f * float(M_PI) - absArctanSlope; @@ -426,7 +426,7 @@ namespace SDL { //TODO: merge this one and the pT5 function later into a single function template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT3RPhiChiSquared(TAcc const& acc, - struct SDL::Modules& modulesInGPU, + struct lst::Modules& modulesInGPU, uint16_t* lowerModuleIndices, float& g, float& f, @@ -496,7 +496,7 @@ namespace SDL { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT3RPhiChiSquaredInwards( - struct SDL::Modules& modulesInGPU, float& g, float& f, float& r, float* xPix, float* yPix) { + struct lst::Modules& modulesInGPU, float& g, float& f, float& r, float* xPix, float* yPix) { float residual = (xPix[0] - g) * (xPix[0] - g) + (yPix[0] - f) * (yPix[0] - f) - r * r; float chiSquared = residual * residual; residual = (xPix[1] - g) * (xPix[1] - g) + (yPix[1] - f) * (yPix[1] - f) - r * r; @@ -507,23 +507,23 @@ namespace SDL { }; //90pc threshold - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredCuts(struct SDL::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredCuts(struct lst::Modules& modulesInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, float& chiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + - 6 * (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex1] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex1] == lst::TwoS); const int layer2 = modulesInGPU.layers[lowerModuleIndex2] + - 6 * (modulesInGPU.subdets[lowerModuleIndex2] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex2] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex2] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex2] == lst::TwoS); const int layer3 = modulesInGPU.layers[lowerModuleIndex3] + - 6 * (modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex3] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex3] == lst::TwoS); if (layer1 == 8 and layer2 == 9 and layer3 == 10) { return chiSquared < 7.003f; @@ -554,23 +554,23 @@ namespace SDL { return true; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredInwardsCuts(struct SDL::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredInwardsCuts(struct lst::Modules& modulesInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, float& chiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + - 6 * (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex1] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex1] == lst::TwoS); const int layer2 = modulesInGPU.layers[lowerModuleIndex2] + - 6 * (modulesInGPU.subdets[lowerModuleIndex2] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex2] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex2] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex2] == lst::TwoS); const int layer3 = modulesInGPU.layers[lowerModuleIndex3] + - 6 * (modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex3] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex3] == lst::TwoS); if (layer1 == 7 and layer2 == 8 and layer3 == 9) // endcap layer 1,2,3, ps { @@ -723,18 +723,18 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRadiusCriterion(TAcc const& acc, - struct SDL::Modules const& modulesInGPU, + struct lst::Modules const& modulesInGPU, float const& pixelRadius, float const& pixelRadiusError, float const& tripletRadius, uint16_t const& lowerModuleIndex, uint16_t const& middleModuleIndex, uint16_t const& upperModuleIndex) { - if (modulesInGPU.subdets[lowerModuleIndex] == SDL::Endcap) { + if (modulesInGPU.subdets[lowerModuleIndex] == lst::Endcap) { return passRadiusCriterionEEE(acc, pixelRadius, pixelRadiusError, tripletRadius); - } else if (modulesInGPU.subdets[middleModuleIndex] == SDL::Endcap) { + } else if (modulesInGPU.subdets[middleModuleIndex] == lst::Endcap) { return passRadiusCriterionBEE(acc, pixelRadius, pixelRadiusError, tripletRadius); - } else if (modulesInGPU.subdets[upperModuleIndex] == SDL::Endcap) { + } else if (modulesInGPU.subdets[upperModuleIndex] == lst::Endcap) { return passRadiusCriterionBBE(acc, pixelRadius, pixelRadiusError, tripletRadius); } else { return passRadiusCriterionBBB(acc, pixelRadius, pixelRadiusError, tripletRadius); @@ -743,7 +743,7 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT3RZChiSquared(TAcc const& acc, - struct SDL::Modules const& modulesInGPU, + struct lst::Modules const& modulesInGPU, const uint16_t* lowerModuleIndices, const float* rtPix, const float* xPix, @@ -784,14 +784,14 @@ namespace SDL { float p = alpaka::math::sqrt(acc, Px * Px + Py * Py + Pz * Pz); float rou = a / p; - if (moduleSubdet == SDL::Endcap) { + if (moduleSubdet == lst::Endcap) { float s = (zsi - z1) * p / Pz; float x = x1 + Px / a * alpaka::math::sin(acc, rou * s) - Py / a * (1 - alpaka::math::cos(acc, rou * s)); float y = y1 + Py / a * alpaka::math::sin(acc, rou * s) + Px / a * (1 - alpaka::math::cos(acc, rou * s)); diffr = alpaka::math::abs(acc, rtsi - alpaka::math::sqrt(acc, x * x + y * y)) * 100; } - if (moduleSubdet == SDL::Barrel) { + if (moduleSubdet == lst::Barrel) { float paraA = r1 * r1 + 2 * (Px * Px + Py * Py) / (a * a) + 2 * (y1 * Px - x1 * Py) / a - rtsi * rtsi; float paraB = 2 * (x1 * Px + y1 * Py) / a; float paraC = 2 * (y1 * Px - x1 * Py) / a + 2 * (Px * Px + Py * Py) / (a * a); @@ -807,7 +807,7 @@ namespace SDL { diffz = alpaka::math::min(acc, diffz1, diffz2); } - residual = moduleSubdet == SDL::Barrel ? diffz : diffr; + residual = moduleSubdet == lst::Barrel ? diffz : diffr; //PS Modules if (moduleType == 0) { @@ -818,7 +818,7 @@ namespace SDL { } //special dispensation to tilted PS modules! - if (moduleType == 0 and moduleSubdet == SDL::Barrel and moduleSide != Center) { + if (moduleType == 0 and moduleSubdet == lst::Barrel and moduleSide != Center) { float drdz = modulesInGPU.drdzs[lowerModuleIndex]; error2 /= (1 + drdz * drdz); } @@ -832,11 +832,11 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runPixelTripletDefaultAlgo(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::ObjectRanges& rangesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, - struct SDL::Triplets& tripletsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::ObjectRanges& rangesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, + struct lst::Triplets& tripletsInGPU, unsigned int& pixelSegmentIndex, unsigned int tripletIndex, float& pixelRadius, @@ -1029,12 +1029,12 @@ namespace SDL { struct createPixelTripletsInGPUFromMapv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::ObjectRanges rangesInGPU, - struct SDL::MiniDoublets mdsInGPU, - struct SDL::Segments segmentsInGPU, - struct SDL::Triplets tripletsInGPU, - struct SDL::PixelTriplets pixelTripletsInGPU, + struct lst::Modules modulesInGPU, + struct lst::ObjectRanges rangesInGPU, + struct lst::MiniDoublets mdsInGPU, + struct lst::Segments segmentsInGPU, + struct lst::Triplets tripletsInGPU, + struct lst::PixelTriplets pixelTripletsInGPU, unsigned int* connectedPixelSize, unsigned int* connectedPixelIndex, unsigned int nPixelSegments) const { @@ -1060,7 +1060,7 @@ namespace SDL { } #endif //Removes 2S-2S :FIXME: filter these out in the pixel map - if (modulesInGPU.moduleType[tripletLowerModuleIndex] == SDL::TwoS) + if (modulesInGPU.moduleType[tripletLowerModuleIndex] == lst::TwoS) continue; uint16_t pixelModuleIndex = *modulesInGPU.nLowerModules; @@ -1091,7 +1091,7 @@ namespace SDL { outerTripletArrayIndex += gridThreadExtent[2]) { unsigned int outerTripletIndex = rangesInGPU.tripletModuleIndices[tripletLowerModuleIndex] + outerTripletArrayIndex; - if (modulesInGPU.moduleType[tripletsInGPU.lowerModuleIndices[3 * outerTripletIndex + 1]] == SDL::TwoS) + if (modulesInGPU.moduleType[tripletsInGPU.lowerModuleIndices[3 * outerTripletIndex + 1]] == lst::TwoS) continue; //REMOVES PS-2S if (tripletsInGPU.partOfPT5[outerTripletIndex]) @@ -1177,32 +1177,32 @@ namespace SDL { float dr, float lIn) { if (lIn == 0) { - betaOut += SDL::copysignf( + betaOut += lst::copysignf( alpaka::math::asin( acc, - alpaka::math::min(acc, sdOut_dr * SDL::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), SDL::sinAlphaMax)), + alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), betaOut); return; } if (betaIn * betaOut > 0.f and - (alpaka::math::abs(acc, pt_beta) < 4.f * SDL::pt_betaMax or + (alpaka::math::abs(acc, pt_beta) < 4.f * lst::pt_betaMax or (lIn >= 11 and alpaka::math::abs(acc, pt_beta) < - 8.f * SDL::pt_betaMax))) //and the pt_beta is well-defined; less strict for endcap-endcap + 8.f * lst::pt_betaMax))) //and the pt_beta is well-defined; less strict for endcap-endcap { const float betaInUpd = betaIn + - SDL::copysignf(alpaka::math::asin( + lst::copysignf(alpaka::math::asin( acc, alpaka::math::min( - acc, sdIn_dr * SDL::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), SDL::sinAlphaMax)), + acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), betaIn); //FIXME: need a faster version const float betaOutUpd = betaOut + - SDL::copysignf(alpaka::math::asin( + lst::copysignf(alpaka::math::asin( acc, alpaka::math::min( - acc, sdOut_dr * SDL::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), SDL::sinAlphaMax)), + acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), betaOut); //FIXME: need a faster version betaAv = 0.5f * (betaInUpd + betaOutUpd); @@ -1210,65 +1210,65 @@ namespace SDL { const float pt_beta_inv = 1.f / alpaka::math::abs(acc, dr * k2Rinv1GeVf / alpaka::math::sin(acc, betaAv)); //get a better pt estimate - betaIn += SDL::copysignf( - alpaka::math::asin(acc, alpaka::math::min(acc, sdIn_dr * SDL::k2Rinv1GeVf * pt_beta_inv, SDL::sinAlphaMax)), + betaIn += lst::copysignf( + alpaka::math::asin(acc, alpaka::math::min(acc, sdIn_dr * lst::k2Rinv1GeVf * pt_beta_inv, lst::sinAlphaMax)), betaIn); //FIXME: need a faster version - betaOut += SDL::copysignf( - alpaka::math::asin(acc, alpaka::math::min(acc, sdOut_dr * SDL::k2Rinv1GeVf * pt_beta_inv, SDL::sinAlphaMax)), + betaOut += lst::copysignf( + alpaka::math::asin(acc, alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf * pt_beta_inv, lst::sinAlphaMax)), betaOut); //FIXME: need a faster version //update the av and pt betaAv = 0.5f * (betaIn + betaOut); //2nd update - pt_beta = dr * SDL::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate + pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate } else if (lIn < 11 && alpaka::math::abs(acc, betaOut) < 0.2f * alpaka::math::abs(acc, betaIn) && - alpaka::math::abs(acc, pt_beta) < 12.f * SDL::pt_betaMax) //use betaIn sign as ref + alpaka::math::abs(acc, pt_beta) < 12.f * lst::pt_betaMax) //use betaIn sign as ref { const float pt_betaIn = dr * k2Rinv1GeVf / alpaka::math::sin(acc, betaIn); const float betaInUpd = - betaIn + SDL::copysignf( + betaIn + lst::copysignf( alpaka::math::asin( acc, alpaka::math::min( - acc, sdIn_dr * SDL::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), SDL::sinAlphaMax)), + acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), lst::sinAlphaMax)), betaIn); //FIXME: need a faster version const float betaOutUpd = betaOut + - SDL::copysignf( + lst::copysignf( alpaka::math::asin( acc, alpaka::math::min( - acc, sdOut_dr * SDL::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), SDL::sinAlphaMax)), + acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), lst::sinAlphaMax)), betaIn); //FIXME: need a faster version betaAv = (alpaka::math::abs(acc, betaOut) > 0.2f * alpaka::math::abs(acc, betaIn)) ? (0.5f * (betaInUpd + betaOutUpd)) : betaInUpd; //1st update - pt_beta = dr * SDL::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate - betaIn += SDL::copysignf( + pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate + betaIn += lst::copysignf( alpaka::math::asin( acc, - alpaka::math::min(acc, sdIn_dr * SDL::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), SDL::sinAlphaMax)), + alpaka::math::min(acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), betaIn); //FIXME: need a faster version - betaOut += SDL::copysignf( + betaOut += lst::copysignf( alpaka::math::asin( acc, - alpaka::math::min(acc, sdOut_dr * SDL::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), SDL::sinAlphaMax)), + alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), betaIn); //FIXME: need a faster version //update the av and pt betaAv = 0.5f * (betaIn + betaOut); //2nd update - pt_beta = dr * SDL::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate + pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate } }; template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runTripletDefaultAlgoPPBB(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::ObjectRanges& rangesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::ObjectRanges& rangesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, uint16_t& pixelModuleIndex, uint16_t& outerInnerLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -1293,7 +1293,7 @@ namespace SDL { float& betaOutCut, float& deltaBetaCut) // pixel to BB and BE segments { - bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == SDL::PS); + bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS); float rt_InLo = mdsInGPU.anchorRt[firstMDIndex]; float rt_InUp = mdsInGPU.anchorRt[secondMDIndex]; @@ -1315,7 +1315,7 @@ namespace SDL { float rt_InOut = rt_InUp; - if (alpaka::math::abs(acc, SDL::deltaPhi(acc, x_InUp, y_InUp, x_OutLo, y_OutLo)) > 0.5f * float(M_PI)) + if (alpaka::math::abs(acc, lst::deltaPhi(acc, x_InUp, y_InUp, x_OutLo, y_OutLo)) > 0.5f * float(M_PI)) return false; unsigned int pixelSegmentArrayIndex = innerSegmentIndex - rangesInGPU.segmentModuleIndices[pixelModuleIndex]; @@ -1383,7 +1383,7 @@ namespace SDL { sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); #ifdef CUT_VALUE_DEBUG - dPhiPos = SDL::deltaPhi(acc, x_InUp, y_InUp, x_OutUp, y_OutUp); + dPhiPos = lst::deltaPhi(acc, x_InUp, y_InUp, x_OutUp, y_OutUp); #endif //no dphipos cut @@ -1393,7 +1393,7 @@ namespace SDL { float diffX = x_OutLo - x_InLo; float diffY = y_OutLo - y_InLo; - dPhi = SDL::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); if (alpaka::math::abs(acc, dPhi) > sdlCut) return false; @@ -1403,11 +1403,11 @@ namespace SDL { float alpha_InLo = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); float alpha_OutLo = __H2F(segmentsInGPU.dPhiChanges[outerSegmentIndex]); - bool isEC_lastLayer = modulesInGPU.subdets[outerOuterLowerModuleIndex] == SDL::Endcap and - modulesInGPU.moduleType[outerOuterLowerModuleIndex] == SDL::TwoS; + bool isEC_lastLayer = modulesInGPU.subdets[outerOuterLowerModuleIndex] == lst::Endcap and + modulesInGPU.moduleType[outerOuterLowerModuleIndex] == lst::TwoS; float alpha_OutUp, alpha_OutUp_highEdge, alpha_OutUp_lowEdge; - alpha_OutUp = SDL::deltaPhi(acc, x_OutUp, y_OutUp, x_OutUp - x_OutLo, y_OutUp - y_OutLo); + alpha_OutUp = lst::deltaPhi(acc, x_OutUp, y_OutUp, x_OutUp - x_OutLo, y_OutUp - y_OutLo); alpha_OutUp_highEdge = alpha_OutUp; alpha_OutUp_lowEdge = alpha_OutUp; @@ -1421,22 +1421,22 @@ namespace SDL { float tl_axis_lowEdge_x = tl_axis_x; float tl_axis_lowEdge_y = tl_axis_y; - betaIn = -SDL::deltaPhi(acc, px, py, tl_axis_x, tl_axis_y); + betaIn = -lst::deltaPhi(acc, px, py, tl_axis_x, tl_axis_y); float betaInRHmin = betaIn; float betaInRHmax = betaIn; - betaOut = -alpha_OutUp + SDL::deltaPhi(acc, x_OutUp, y_OutUp, tl_axis_x, tl_axis_y); + betaOut = -alpha_OutUp + lst::deltaPhi(acc, x_OutUp, y_OutUp, tl_axis_x, tl_axis_y); float betaOutRHmin = betaOut; float betaOutRHmax = betaOut; if (isEC_lastLayer) { - alpha_OutUp_highEdge = SDL::deltaPhi(acc, + alpha_OutUp_highEdge = lst::deltaPhi(acc, mdsInGPU.anchorHighEdgeX[fourthMDIndex], mdsInGPU.anchorHighEdgeY[fourthMDIndex], mdsInGPU.anchorHighEdgeX[fourthMDIndex] - x_OutLo, mdsInGPU.anchorHighEdgeY[fourthMDIndex] - y_OutLo); - alpha_OutUp_lowEdge = SDL::deltaPhi(acc, + alpha_OutUp_lowEdge = lst::deltaPhi(acc, mdsInGPU.anchorLowEdgeX[fourthMDIndex], mdsInGPU.anchorLowEdgeY[fourthMDIndex], mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_OutLo, @@ -1447,12 +1447,12 @@ namespace SDL { tl_axis_lowEdge_x = mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_InUp; tl_axis_lowEdge_y = mdsInGPU.anchorLowEdgeY[fourthMDIndex] - y_InUp; - betaOutRHmin = -alpha_OutUp_highEdge + SDL::deltaPhi(acc, + betaOutRHmin = -alpha_OutUp_highEdge + lst::deltaPhi(acc, mdsInGPU.anchorHighEdgeX[fourthMDIndex], mdsInGPU.anchorHighEdgeY[fourthMDIndex], tl_axis_highEdge_x, tl_axis_highEdge_y); - betaOutRHmax = -alpha_OutUp_lowEdge + SDL::deltaPhi(acc, + betaOutRHmax = -alpha_OutUp_lowEdge + lst::deltaPhi(acc, mdsInGPU.anchorLowEdgeX[fourthMDIndex], mdsInGPU.anchorLowEdgeY[fourthMDIndex], tl_axis_lowEdge_x, @@ -1490,7 +1490,7 @@ namespace SDL { betaOutRHmax *= betaOutMMSF; float min_ptBeta_ptBetaMax = alpaka::math::min( - acc, alpaka::math::abs(acc, pt_beta), SDL::pt_betaMax); //need to confirm the range-out value of 7 GeV + acc, alpaka::math::abs(acc, pt_beta), lst::pt_betaMax); //need to confirm the range-out value of 7 GeV const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_ptBetaMax * min_ptBeta_ptBetaMax); const float alphaInAbsReg = alpaka::math::max(acc, @@ -1544,10 +1544,10 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runTripletDefaultAlgoPPEE(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::ObjectRanges& rangesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::ObjectRanges& rangesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, uint16_t& pixelModuleIndex, uint16_t& outerInnerLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -1573,7 +1573,7 @@ namespace SDL { float& deltaBetaCut, float& kZ) // pixel to EE segments { - bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == SDL::PS); + bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS); float z_InUp = mdsInGPU.anchorZ[secondMDIndex]; float z_OutLo = mdsInGPU.anchorZ[thirdMDIndex]; @@ -1619,19 +1619,19 @@ namespace SDL { zLo = z_InUp + (z_InUp - deltaZLum) * (rtOut_o_rtIn - 1.f) * (z_InUp > 0.f ? 1.f : dzDrtScale) - zGeom; //slope-correction only on outer end - const float dLum = SDL::copysignf(deltaZLum, z_InUp); - bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerInnerLowerModuleIndex] == SDL::PS; + const float dLum = lst::copysignf(deltaZLum, z_InUp); + bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS; const float rtGeom1 = isOutSgInnerMDPS ? pixelPSZpitch : strip2SZpitch; //FIXME: make this chosen by configuration for lay11,12 full PS - const float zGeom1 = SDL::copysignf(zGeom, z_InUp); //used in B-E region + const float zGeom1 = lst::copysignf(zGeom, z_InUp); //used in B-E region rtLo = rt_InUp * (1.f + (z_OutLo - z_InUp - zGeom1) / (z_InUp + zGeom1 + dLum) / dzDrtScale) - rtGeom1; //slope correction only on the lower end float zInForHi = z_InUp - zGeom1 - dLum; if (zInForHi * z_InUp < 0) - zInForHi = SDL::copysignf(0.1f, z_InUp); + zInForHi = lst::copysignf(0.1f, z_InUp); rtHi = rt_InUp * (1.f + (z_OutLo - z_InUp + zGeom1) / zInForHi) + rtGeom1; // Cut #2: rt condition @@ -1671,7 +1671,7 @@ namespace SDL { const float sdlPVoff = 0.1f / rt_OutLo; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = SDL::deltaPhi(acc, x_InUp, y_InUp, x_OutUp, y_OutUp); + deltaPhiPos = lst::deltaPhi(acc, x_InUp, y_InUp, x_OutUp, y_OutUp); float midPointX = 0.5f * (x_InLo + x_OutLo); float midPointY = 0.5f * (y_InLo + y_OutLo); @@ -1679,7 +1679,7 @@ namespace SDL { float diffX = x_OutLo - x_InLo; float diffY = y_OutLo - y_InLo; - dPhi = SDL::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) @@ -1688,12 +1688,12 @@ namespace SDL { float alpha_InLo = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); float alpha_OutLo = __H2F(segmentsInGPU.dPhiChanges[outerSegmentIndex]); - bool isEC_lastLayer = modulesInGPU.subdets[outerOuterLowerModuleIndex] == SDL::Endcap and - modulesInGPU.moduleType[outerOuterLowerModuleIndex] == SDL::TwoS; + bool isEC_lastLayer = modulesInGPU.subdets[outerOuterLowerModuleIndex] == lst::Endcap and + modulesInGPU.moduleType[outerOuterLowerModuleIndex] == lst::TwoS; float alpha_OutUp, alpha_OutUp_highEdge, alpha_OutUp_lowEdge; - alpha_OutUp = SDL::deltaPhi(acc, x_OutUp, y_OutUp, x_OutUp - x_OutLo, y_OutUp - y_OutLo); + alpha_OutUp = lst::deltaPhi(acc, x_OutUp, y_OutUp, x_OutUp - x_OutLo, y_OutUp - y_OutLo); alpha_OutUp_highEdge = alpha_OutUp; alpha_OutUp_lowEdge = alpha_OutUp; @@ -1706,21 +1706,21 @@ namespace SDL { float tl_axis_lowEdge_x = tl_axis_x; float tl_axis_lowEdge_y = tl_axis_y; - betaIn = -SDL::deltaPhi(acc, px, py, tl_axis_x, tl_axis_y); + betaIn = -lst::deltaPhi(acc, px, py, tl_axis_x, tl_axis_y); float betaInRHmin = betaIn; float betaInRHmax = betaIn; - betaOut = -alpha_OutUp + SDL::deltaPhi(acc, x_OutUp, y_OutUp, tl_axis_x, tl_axis_y); + betaOut = -alpha_OutUp + lst::deltaPhi(acc, x_OutUp, y_OutUp, tl_axis_x, tl_axis_y); float betaOutRHmin = betaOut; float betaOutRHmax = betaOut; if (isEC_lastLayer) { - alpha_OutUp_highEdge = SDL::deltaPhi(acc, + alpha_OutUp_highEdge = lst::deltaPhi(acc, mdsInGPU.anchorHighEdgeX[fourthMDIndex], mdsInGPU.anchorHighEdgeY[fourthMDIndex], mdsInGPU.anchorHighEdgeX[fourthMDIndex] - x_OutLo, mdsInGPU.anchorHighEdgeY[fourthMDIndex] - y_OutLo); - alpha_OutUp_lowEdge = SDL::deltaPhi(acc, + alpha_OutUp_lowEdge = lst::deltaPhi(acc, mdsInGPU.anchorLowEdgeX[fourthMDIndex], mdsInGPU.anchorLowEdgeY[fourthMDIndex], mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_OutLo, @@ -1731,12 +1731,12 @@ namespace SDL { tl_axis_lowEdge_x = mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_InUp; tl_axis_lowEdge_y = mdsInGPU.anchorLowEdgeY[fourthMDIndex] - y_InUp; - betaOutRHmin = -alpha_OutUp_highEdge + SDL::deltaPhi(acc, + betaOutRHmin = -alpha_OutUp_highEdge + lst::deltaPhi(acc, mdsInGPU.anchorHighEdgeX[fourthMDIndex], mdsInGPU.anchorHighEdgeY[fourthMDIndex], tl_axis_highEdge_x, tl_axis_highEdge_y); - betaOutRHmax = -alpha_OutUp_lowEdge + SDL::deltaPhi(acc, + betaOutRHmax = -alpha_OutUp_lowEdge + lst::deltaPhi(acc, mdsInGPU.anchorLowEdgeX[fourthMDIndex], mdsInGPU.anchorLowEdgeY[fourthMDIndex], tl_axis_lowEdge_x, @@ -1772,7 +1772,7 @@ namespace SDL { betaOutRHmax *= betaOutMMSF; float min_ptBeta_ptBetaMax = alpaka::math::min( - acc, alpaka::math::abs(acc, pt_beta), SDL::pt_betaMax); //need to confirm the range-out value of 7 GeV + acc, alpaka::math::abs(acc, pt_beta), lst::pt_betaMax); //need to confirm the range-out value of 7 GeV const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_ptBetaMax * min_ptBeta_ptBetaMax); const float alphaInAbsReg = @@ -1827,7 +1827,7 @@ namespace SDL { #endif return dBeta * dBeta <= dBetaCut2; }; -} // namespace SDL +} // namespace lst #endif #ifndef RecoTracker_LSTCore_src_alpaka_PixelQuintuplet_h @@ -1843,7 +1843,7 @@ namespace SDL { #include "Quintuplet.h" #include "PixelTriplet.h" -namespace SDL { +namespace lst { struct PixelQuintuplets { unsigned int* pixelIndices; unsigned int* T5Indices; @@ -1939,11 +1939,11 @@ namespace SDL { inline void setData(PixelQuintupletsBuffer& buf) { data_.setData(buf); } }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelQuintupletToMemory(struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, - struct SDL::Quintuplets& quintupletsInGPU, - struct SDL::PixelQuintuplets& pixelQuintupletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelQuintupletToMemory(struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, + struct lst::Quintuplets& quintupletsInGPU, + struct lst::PixelQuintuplets& pixelQuintupletsInGPU, unsigned int pixelIndex, unsigned int T5Index, unsigned int pixelQuintupletIndex, @@ -2035,7 +2035,7 @@ namespace SDL { pixelQuintupletsInGPU.rPhiChiSquaredInwards[pixelQuintupletIndex] = rPhiChiSquaredInwards; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RZChiSquaredCuts(struct SDL::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RZChiSquaredCuts(struct lst::Modules& modulesInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, @@ -2043,25 +2043,25 @@ namespace SDL { uint16_t& lowerModuleIndex5, float& rzChiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + - 6 * (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex1] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex1] == lst::TwoS); const int layer2 = modulesInGPU.layers[lowerModuleIndex2] + - 6 * (modulesInGPU.subdets[lowerModuleIndex2] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex2] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex2] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex2] == lst::TwoS); const int layer3 = modulesInGPU.layers[lowerModuleIndex3] + - 6 * (modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex3] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex3] == lst::TwoS); const int layer4 = modulesInGPU.layers[lowerModuleIndex4] + - 6 * (modulesInGPU.subdets[lowerModuleIndex4] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex4] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex4] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex4] == lst::TwoS); const int layer5 = modulesInGPU.layers[lowerModuleIndex5] + - 6 * (modulesInGPU.subdets[lowerModuleIndex5] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex5] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex5] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex5] == lst::TwoS); if (layer1 == 1 and layer2 == 2 and layer3 == 3) { if (layer4 == 12 and layer5 == 13) { @@ -2125,7 +2125,7 @@ namespace SDL { return true; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredCuts(struct SDL::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredCuts(struct lst::Modules& modulesInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, @@ -2133,25 +2133,25 @@ namespace SDL { uint16_t& lowerModuleIndex5, float rPhiChiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + - 6 * (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex1] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex1] == lst::TwoS); const int layer2 = modulesInGPU.layers[lowerModuleIndex2] + - 6 * (modulesInGPU.subdets[lowerModuleIndex2] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex2] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex2] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex2] == lst::TwoS); const int layer3 = modulesInGPU.layers[lowerModuleIndex3] + - 6 * (modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex3] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex3] == lst::TwoS); const int layer4 = modulesInGPU.layers[lowerModuleIndex4] + - 6 * (modulesInGPU.subdets[lowerModuleIndex4] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex4] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex4] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex4] == lst::TwoS); const int layer5 = modulesInGPU.layers[lowerModuleIndex5] + - 6 * (modulesInGPU.subdets[lowerModuleIndex5] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex5] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex5] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex5] == lst::TwoS); if (layer1 == 1 and layer2 == 2 and layer3 == 3) { if (layer4 == 12 and layer5 == 13) { @@ -2234,7 +2234,7 @@ namespace SDL { float chiSquared = 0.f; float absArctanSlope, angleM, xPrime, yPrime, sigma2; for (size_t i = 0; i < nPoints; i++) { - absArctanSlope = ((slopes[i] != SDL::SDL_INF) ? alpaka::math::abs(acc, alpaka::math::atan(acc, slopes[i])) + absArctanSlope = ((slopes[i] != lst::lst_INF) ? alpaka::math::abs(acc, alpaka::math::atan(acc, slopes[i])) : 0.5f * float(M_PI)); if (xs[i] > 0 and ys[i] > 0) { angleM = 0.5f * float(M_PI) - absArctanSlope; @@ -2263,7 +2263,7 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE void computeSigmasForRegression_pT5(TAcc const& acc, - SDL::Modules& modulesInGPU, + lst::Modules& modulesInGPU, const uint16_t* lowerModuleIndices, float* delta1, float* delta2, @@ -2349,7 +2349,7 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RPhiChiSquared(TAcc const& acc, - struct SDL::Modules& modulesInGPU, + struct lst::Modules& modulesInGPU, uint16_t* lowerModuleIndices, float& g, float& f, @@ -2371,7 +2371,7 @@ namespace SDL { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RPhiChiSquaredInwards( - struct SDL::Modules& modulesInGPU, float& g, float& f, float& r, float* xPix, float* yPix) { + struct lst::Modules& modulesInGPU, float& g, float& f, float& r, float* xPix, float* yPix) { /* Using the computed regression center and radius, compute the chi squared for the pixels */ @@ -2385,7 +2385,7 @@ namespace SDL { return chiSquared; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredInwardsCuts(struct SDL::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredInwardsCuts(struct lst::Modules& modulesInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, @@ -2393,25 +2393,25 @@ namespace SDL { uint16_t& lowerModuleIndex5, float rPhiChiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + - 6 * (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex1] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex1] == lst::TwoS); const int layer2 = modulesInGPU.layers[lowerModuleIndex2] + - 6 * (modulesInGPU.subdets[lowerModuleIndex2] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex2] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex2] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex2] == lst::TwoS); const int layer3 = modulesInGPU.layers[lowerModuleIndex3] + - 6 * (modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex3] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex3] == lst::TwoS); const int layer4 = modulesInGPU.layers[lowerModuleIndex4] + - 6 * (modulesInGPU.subdets[lowerModuleIndex4] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex4] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex4] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex4] == lst::TwoS); const int layer5 = modulesInGPU.layers[lowerModuleIndex5] + - 6 * (modulesInGPU.subdets[lowerModuleIndex5] == SDL::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex5] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex5] == SDL::TwoS); + 6 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex5] == lst::TwoS); if (layer1 == 1 and layer2 == 2 and layer3 == 3) { if (layer4 == 12 and layer5 == 13) { @@ -2477,12 +2477,12 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runPixelQuintupletDefaultAlgo(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::ObjectRanges& rangesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, - struct SDL::Triplets& tripletsInGPU, - struct SDL::Quintuplets& quintupletsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::ObjectRanges& rangesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, + struct lst::Triplets& tripletsInGPU, + struct lst::Quintuplets& quintupletsInGPU, unsigned int& pixelSegmentIndex, unsigned int& quintupletIndex, float& rzChiSquared, @@ -2625,7 +2625,7 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RZChiSquared(TAcc const& acc, - struct SDL::Modules& modulesInGPU, + struct lst::Modules& modulesInGPU, uint16_t* lowerModuleIndices, float* rtPix, float* zPix, @@ -2645,7 +2645,7 @@ namespace SDL { const int moduleSide = modulesInGPU.sides[lowerModuleIndex]; const int moduleSubdet = modulesInGPU.subdets[lowerModuleIndex]; - residual = (moduleSubdet == SDL::Barrel) ? (zs[i] - zPix[0]) - slope * (rts[i] - rtPix[0]) + residual = (moduleSubdet == lst::Barrel) ? (zs[i] - zPix[0]) - slope * (rts[i] - rtPix[0]) : (rts[i] - rtPix[0]) - (zs[i] - zPix[0]) / slope; const float& drdz = modulesInGPU.drdzs[lowerModuleIndex]; //PS Modules @@ -2657,7 +2657,7 @@ namespace SDL { } //special dispensation to tilted PS modules! - if (moduleType == 0 and moduleSubdet == SDL::Barrel and moduleSide != Center) { + if (moduleType == 0 and moduleSubdet == lst::Barrel and moduleSide != Center) { error2 /= (1.f + drdz * drdz); } RMSE += (residual * residual) / error2; @@ -2670,16 +2670,16 @@ namespace SDL { struct createPixelQuintupletsInGPUFromMapv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::MiniDoublets mdsInGPU, - struct SDL::Segments segmentsInGPU, - struct SDL::Triplets tripletsInGPU, - struct SDL::Quintuplets quintupletsInGPU, - struct SDL::PixelQuintuplets pixelQuintupletsInGPU, + struct lst::Modules modulesInGPU, + struct lst::MiniDoublets mdsInGPU, + struct lst::Segments segmentsInGPU, + struct lst::Triplets tripletsInGPU, + struct lst::Quintuplets quintupletsInGPU, + struct lst::PixelQuintuplets pixelQuintupletsInGPU, unsigned int* connectedPixelSize, unsigned int* connectedPixelIndex, unsigned int nPixelSegments, - struct SDL::ObjectRanges rangesInGPU) const { + struct lst::ObjectRanges rangesInGPU) const { auto const globalBlockIdx = alpaka::getIdx(acc); auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridBlockExtent = alpaka::getWorkDiv(acc); @@ -2693,7 +2693,7 @@ namespace SDL { uint16_t quintupletLowerModuleIndex = modulesInGPU.connectedPixels[iLSModule]; if (quintupletLowerModuleIndex >= *modulesInGPU.nLowerModules) continue; - if (modulesInGPU.moduleType[quintupletLowerModuleIndex] == SDL::TwoS) + if (modulesInGPU.moduleType[quintupletLowerModuleIndex] == lst::TwoS) continue; uint16_t pixelModuleIndex = *modulesInGPU.nLowerModules; if (segmentsInGPU.isDup[i_pLS]) @@ -2777,5 +2777,5 @@ namespace SDL { } // end i_pLS } }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 26813dbcf4126..d6111c1b4ed4d 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -12,7 +12,7 @@ #include "ObjectRanges.h" #include "Triplet.h" -namespace SDL { +namespace lst { struct Quintuplets { unsigned int* tripletIndices; uint16_t* lowerModuleIndices; @@ -148,8 +148,8 @@ namespace SDL { return ((firstMin <= secondMin) && (secondMin < firstMax)) || ((secondMin < firstMin) && (firstMin < secondMax)); }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addQuintupletToMemory(struct SDL::Triplets& tripletsInGPU, - struct SDL::Quintuplets& quintupletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addQuintupletToMemory(struct lst::Triplets& tripletsInGPU, + struct lst::Quintuplets& quintupletsInGPU, unsigned int innerTripletIndex, unsigned int outerTripletIndex, uint16_t& lowerModule1, @@ -231,7 +231,7 @@ namespace SDL { }; //90% constraint - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passChiSquaredConstraint(struct SDL::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passChiSquaredConstraint(struct lst::Modules& modulesInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, @@ -316,8 +316,8 @@ namespace SDL { //bounds can be found at http://uaf-10.t2.ucsd.edu/~bsathian/SDL/T5_RZFix/t5_rz_thresholds.txt template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passT5RZConstraint(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, @@ -527,7 +527,7 @@ namespace SDL { continue; } - // calculation is copied from PixelTriplet.cc SDL::computePT3RZChiSquared + // calculation is copied from PixelTriplet.cc lst::computePT3RZChiSquared float diffr = 0, diffz = 0; float rou = a / p; @@ -585,14 +585,14 @@ namespace SDL { subdets = modulesInGPU.subdets[lowerModuleIndex3]; } if (i == 2 || i == 3) { - residual = (layeri <= 6 && ((side == SDL::Center) or (drdz < 1))) ? diffz : diffr; + residual = (layeri <= 6 && ((side == lst::Center) or (drdz < 1))) ? diffz : diffr; float projection_missing2 = 1.f; if (drdz < 1) - projection_missing2 = ((subdets == SDL::Endcap) or (side == SDL::Center)) + projection_missing2 = ((subdets == lst::Endcap) or (side == lst::Center)) ? 1.f : 1.f / (1 + drdz * drdz); // cos(atan(drdz)), if dr/dz<1 if (drdz > 1) - projection_missing2 = ((subdets == SDL::Endcap) or (side == SDL::Center)) + projection_missing2 = ((subdets == lst::Endcap) or (side == lst::Center)) ? 1.f : (drdz * drdz) / (1 + drdz * drdz); //sin(atan(drdz)), if dr/dz>1 error2 = error2 * projection_missing2; @@ -750,8 +750,8 @@ namespace SDL { }; template - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool T5HasCommonMiniDoublet(struct SDL::Triplets& tripletsInGPU, - struct SDL::Segments& segmentsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool T5HasCommonMiniDoublet(struct lst::Triplets& tripletsInGPU, + struct lst::Segments& segmentsInGPU, unsigned int innerTripletIndex, unsigned int outerTripletIndex) { unsigned int innerOuterSegmentIndex = tripletsInGPU.segmentIndices[2 * innerTripletIndex + 1]; @@ -777,7 +777,7 @@ namespace SDL { //brute force float candidateRadius; float g, f; - minimumRadius = SDL::SDL_INF; + minimumRadius = lst::lst_INF; maximumRadius = 0.f; for (size_t i = 0; i < 3; i++) { float x1 = x1Vec[i]; @@ -1149,7 +1149,7 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE void computeSigmasForRegression(TAcc const& acc, - SDL::Modules& modulesInGPU, + lst::Modules& modulesInGPU, const uint16_t* lowerModuleIndices, float* delta1, float* delta2, @@ -1267,7 +1267,7 @@ namespace SDL { // Computing sigmas is a very tricky affair // if the module is tilted or endcap, we need to use the slopes properly! - absArctanSlope = ((slopes[i] != SDL::SDL_INF) ? alpaka::math::abs(acc, alpaka::math::atan(acc, slopes[i])) + absArctanSlope = ((slopes[i] != lst::lst_INF) ? alpaka::math::abs(acc, alpaka::math::atan(acc, slopes[i])) : 0.5f * float(M_PI)); if (xs[i] > 0 and ys[i] > 0) { @@ -1350,7 +1350,7 @@ namespace SDL { float chiSquared = 0.f; float absArctanSlope, angleM, xPrime, yPrime, sigma2; for (size_t i = 0; i < nPoints; i++) { - absArctanSlope = ((slopes[i] != SDL::SDL_INF) ? alpaka::math::abs(acc, alpaka::math::atan(acc, slopes[i])) + absArctanSlope = ((slopes[i] != lst::lst_INF) ? alpaka::math::abs(acc, alpaka::math::atan(acc, slopes[i])) : 0.5f * float(M_PI)); if (xs[i] > 0 and ys[i] > 0) { angleM = 0.5f * float(M_PI) - absArctanSlope; @@ -1389,32 +1389,32 @@ namespace SDL { float dr, float lIn) { if (lIn == 0) { - betaOut += SDL::copysignf( + betaOut += lst::copysignf( alpaka::math::asin( acc, - alpaka::math::min(acc, sdOut_dr * SDL::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), SDL::sinAlphaMax)), + alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), betaOut); return; } if (betaIn * betaOut > 0.f and - (alpaka::math::abs(acc, pt_beta) < 4.f * SDL::pt_betaMax or + (alpaka::math::abs(acc, pt_beta) < 4.f * lst::pt_betaMax or (lIn >= 11 and alpaka::math::abs(acc, pt_beta) < - 8.f * SDL::pt_betaMax))) //and the pt_beta is well-defined; less strict for endcap-endcap + 8.f * lst::pt_betaMax))) //and the pt_beta is well-defined; less strict for endcap-endcap { const float betaInUpd = betaIn + - SDL::copysignf(alpaka::math::asin( + lst::copysignf(alpaka::math::asin( acc, alpaka::math::min( - acc, sdIn_dr * SDL::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), SDL::sinAlphaMax)), + acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), betaIn); //FIXME: need a faster version const float betaOutUpd = betaOut + - SDL::copysignf(alpaka::math::asin( + lst::copysignf(alpaka::math::asin( acc, alpaka::math::min( - acc, sdOut_dr * SDL::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), SDL::sinAlphaMax)), + acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), betaOut); //FIXME: need a faster version betaAv = 0.5f * (betaInUpd + betaOutUpd); @@ -1422,64 +1422,64 @@ namespace SDL { const float pt_beta_inv = 1.f / alpaka::math::abs(acc, dr * k2Rinv1GeVf / alpaka::math::sin(acc, betaAv)); //get a better pt estimate - betaIn += SDL::copysignf( - alpaka::math::asin(acc, alpaka::math::min(acc, sdIn_dr * SDL::k2Rinv1GeVf * pt_beta_inv, SDL::sinAlphaMax)), + betaIn += lst::copysignf( + alpaka::math::asin(acc, alpaka::math::min(acc, sdIn_dr * lst::k2Rinv1GeVf * pt_beta_inv, lst::sinAlphaMax)), betaIn); //FIXME: need a faster version - betaOut += SDL::copysignf( - alpaka::math::asin(acc, alpaka::math::min(acc, sdOut_dr * SDL::k2Rinv1GeVf * pt_beta_inv, SDL::sinAlphaMax)), + betaOut += lst::copysignf( + alpaka::math::asin(acc, alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf * pt_beta_inv, lst::sinAlphaMax)), betaOut); //FIXME: need a faster version //update the av and pt betaAv = 0.5f * (betaIn + betaOut); //2nd update - pt_beta = dr * SDL::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate + pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate } else if (lIn < 11 && alpaka::math::abs(acc, betaOut) < 0.2f * alpaka::math::abs(acc, betaIn) && - alpaka::math::abs(acc, pt_beta) < 12.f * SDL::pt_betaMax) //use betaIn sign as ref + alpaka::math::abs(acc, pt_beta) < 12.f * lst::pt_betaMax) //use betaIn sign as ref { const float pt_betaIn = dr * k2Rinv1GeVf / alpaka::math::sin(acc, betaIn); const float betaInUpd = - betaIn + SDL::copysignf( + betaIn + lst::copysignf( alpaka::math::asin( acc, alpaka::math::min( - acc, sdIn_dr * SDL::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), SDL::sinAlphaMax)), + acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), lst::sinAlphaMax)), betaIn); //FIXME: need a faster version const float betaOutUpd = betaOut + - SDL::copysignf( + lst::copysignf( alpaka::math::asin( acc, alpaka::math::min( - acc, sdOut_dr * SDL::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), SDL::sinAlphaMax)), + acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), lst::sinAlphaMax)), betaIn); //FIXME: need a faster version betaAv = (alpaka::math::abs(acc, betaOut) > 0.2f * alpaka::math::abs(acc, betaIn)) ? (0.5f * (betaInUpd + betaOutUpd)) : betaInUpd; //1st update - pt_beta = dr * SDL::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate - betaIn += SDL::copysignf( + pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate + betaIn += lst::copysignf( alpaka::math::asin( acc, - alpaka::math::min(acc, sdIn_dr * SDL::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), SDL::sinAlphaMax)), + alpaka::math::min(acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), betaIn); //FIXME: need a faster version - betaOut += SDL::copysignf( + betaOut += lst::copysignf( alpaka::math::asin( acc, - alpaka::math::min(acc, sdOut_dr * SDL::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), SDL::sinAlphaMax)), + alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), betaIn); //FIXME: need a faster version //update the av and pt betaAv = 0.5f * (betaIn + betaOut); //2nd update - pt_beta = dr * SDL::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate + pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate } }; template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runQuintupletDefaultAlgoBBBB(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& innerOuterLowerModuleIndex, uint16_t& outerInnerLowerModuleIndex, @@ -1505,8 +1505,8 @@ namespace SDL { float& betaInCut, float& betaOutCut, float& deltaBetaCut) { - bool isPS_InLo = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == SDL::PS); - bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == SDL::PS); + bool isPS_InLo = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS); + bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS); float rt_InLo = mdsInGPU.anchorRt[firstMDIndex]; float rt_InOut = mdsInGPU.anchorRt[secondMDIndex]; @@ -1517,17 +1517,17 @@ namespace SDL { float z_OutLo = mdsInGPU.anchorZ[thirdMDIndex]; float alpha1GeV_OutLo = - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)); float rtRatio_OutLoInLo = rt_OutLo / rt_InLo; // Outer segment beginning rt divided by inner segment beginning rt; float dzDrtScale = alpaka::math::tan(acc, alpha1GeV_OutLo) / alpha1GeV_OutLo; // The track can bend in r-z plane slightly - float zpitch_InLo = (isPS_InLo ? SDL::pixelPSZpitch : SDL::strip2SZpitch); - float zpitch_OutLo = (isPS_OutLo ? SDL::pixelPSZpitch : SDL::strip2SZpitch); + float zpitch_InLo = (isPS_InLo ? lst::pixelPSZpitch : lst::strip2SZpitch); + float zpitch_OutLo = (isPS_OutLo ? lst::pixelPSZpitch : lst::strip2SZpitch); - zHi = z_InLo + (z_InLo + SDL::deltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo < 0.f ? 1.f : dzDrtScale) + + zHi = z_InLo + (z_InLo + lst::deltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo < 0.f ? 1.f : dzDrtScale) + (zpitch_InLo + zpitch_OutLo); - zLo = z_InLo + (z_InLo - SDL::deltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - + zLo = z_InLo + (z_InLo - lst::deltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - (zpitch_InLo + zpitch_OutLo); //Cut 1 - z compatibility @@ -1548,7 +1548,7 @@ namespace SDL { float sdlThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f) * (r3_InLo / rt_InLo); - float sdlMuls2 = sdlThetaMulsF2 * 9.f / (SDL::ptCut * SDL::ptCut) * 16.f; + float sdlMuls2 = sdlThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; dzErr += sdlMuls2 * drt_OutLo_InLo * drt_OutLo_InLo / 3.f * coshEta * coshEta; dzErr = alpaka::math::sqrt(acc, dzErr); @@ -1556,7 +1556,7 @@ namespace SDL { const float dzMean = dz_InSeg / drt_InSeg * drt_OutLo_InLo; const float zWindow = dzErr / drt_InSeg * drt_OutLo_InLo + - (zpitch_InLo + zpitch_OutLo); //FIXME for SDL::ptCut lower than ~0.8 need to add curv path correction + (zpitch_InLo + zpitch_OutLo); //FIXME for lst::ptCut lower than ~0.8 need to add curv path correction zLoPointed = z_InLo + dzMean * (z_InLo > 0.f ? 1.f : dzDrtScale) - zWindow; zHiPointed = z_InLo + dzMean * (z_InLo < 0.f ? 1.f : dzDrtScale) + zWindow; @@ -1567,7 +1567,7 @@ namespace SDL { float sdlPVoff = 0.1f / rt_OutLo; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = SDL::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); + deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); // Cut #3: FIXME:deltaPhiPos can be tighter if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) return false; @@ -1577,7 +1577,7 @@ namespace SDL { float diffX = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float diffY = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - dPhi = SDL::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #4: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) @@ -1588,13 +1588,13 @@ namespace SDL { float alpha_InLo = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); float alpha_OutLo = __H2F(segmentsInGPU.dPhiChanges[outerSegmentIndex]); - bool isEC_lastLayer = modulesInGPU.subdets[outerOuterLowerModuleIndex] == SDL::Endcap and - modulesInGPU.moduleType[outerOuterLowerModuleIndex] == SDL::TwoS; + bool isEC_lastLayer = modulesInGPU.subdets[outerOuterLowerModuleIndex] == lst::Endcap and + modulesInGPU.moduleType[outerOuterLowerModuleIndex] == lst::TwoS; float alpha_OutUp, alpha_OutUp_highEdge, alpha_OutUp_lowEdge; - alpha_OutUp = SDL::phi_mpi_pi(acc, - SDL::phi(acc, + alpha_OutUp = lst::phi_mpi_pi(acc, + lst::phi(acc, mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - mdsInGPU.anchorPhi[fourthMDIndex]); @@ -1609,26 +1609,26 @@ namespace SDL { float tl_axis_lowEdge_x = tl_axis_x; float tl_axis_lowEdge_y = tl_axis_y; - betaIn = alpha_InLo - SDL::phi_mpi_pi(acc, SDL::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = alpha_InLo - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float betaInRHmin = betaIn; float betaInRHmax = betaIn; betaOut = - -alpha_OutUp + SDL::phi_mpi_pi(acc, SDL::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); + -alpha_OutUp + lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); float betaOutRHmin = betaOut; float betaOutRHmax = betaOut; if (isEC_lastLayer) { alpha_OutUp_highEdge = - SDL::phi_mpi_pi(acc, - SDL::phi(acc, + lst::phi_mpi_pi(acc, + lst::phi(acc, mdsInGPU.anchorHighEdgeX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], mdsInGPU.anchorHighEdgeY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - mdsInGPU.anchorHighEdgePhi[fourthMDIndex]); alpha_OutUp_lowEdge = - SDL::phi_mpi_pi(acc, - SDL::phi(acc, + lst::phi_mpi_pi(acc, + lst::phi(acc, mdsInGPU.anchorLowEdgeX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], mdsInGPU.anchorLowEdgeY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - mdsInGPU.anchorLowEdgePhi[fourthMDIndex]); @@ -1638,11 +1638,11 @@ namespace SDL { tl_axis_lowEdge_x = mdsInGPU.anchorLowEdgeX[fourthMDIndex] - mdsInGPU.anchorX[firstMDIndex]; tl_axis_lowEdge_y = mdsInGPU.anchorLowEdgeY[fourthMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaOutRHmin = -alpha_OutUp_highEdge + SDL::phi_mpi_pi(acc, - SDL::phi(acc, tl_axis_highEdge_x, tl_axis_highEdge_y) - + betaOutRHmin = -alpha_OutUp_highEdge + lst::phi_mpi_pi(acc, + lst::phi(acc, tl_axis_highEdge_x, tl_axis_highEdge_y) - mdsInGPU.anchorHighEdgePhi[fourthMDIndex]); - betaOutRHmax = -alpha_OutUp_lowEdge + SDL::phi_mpi_pi(acc, - SDL::phi(acc, tl_axis_lowEdge_x, tl_axis_lowEdge_y) - + betaOutRHmax = -alpha_OutUp_lowEdge + lst::phi_mpi_pi(acc, + lst::phi(acc, tl_axis_lowEdge_x, tl_axis_lowEdge_y) - mdsInGPU.anchorLowEdgePhi[fourthMDIndex]); } @@ -1660,7 +1660,7 @@ namespace SDL { betaInCut = alpaka::math::asin( acc, alpaka::math::min( - acc, (-rt_InSeg * corrF + drt_tl_axis) * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)) + + acc, (-rt_InSeg * corrF + drt_tl_axis) * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + (0.02f / drt_InSeg); //Cut #5: first beta cut @@ -1668,7 +1668,7 @@ namespace SDL { return false; float betaAv = 0.5f * (betaIn + betaOut); - pt_beta = drt_tl_axis * SDL::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); + pt_beta = drt_tl_axis * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); int lIn = 5; int lOut = isEC_lastLayer ? 11 : 5; float sdOut_dr = alpaka::math::sqrt(acc, @@ -1678,7 +1678,7 @@ namespace SDL { (mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex])); float sdOut_d = mdsInGPU.anchorRt[fourthMDIndex] - mdsInGPU.anchorRt[thirdMDIndex]; - SDL::runDeltaBetaIterationsT5(acc, betaIn, betaOut, betaAv, pt_beta, rt_InSeg, sdOut_dr, drt_tl_axis, lIn); + lst::runDeltaBetaIterationsT5(acc, betaIn, betaOut, betaAv, pt_beta, rt_InSeg, sdOut_dr, drt_tl_axis, lIn); const float betaInMMSF = (alpaka::math::abs(acc, betaInRHmin + betaInRHmax) > 0) ? (2.f * betaIn / alpaka::math::abs(acc, betaInRHmin + betaInRHmax)) @@ -1692,19 +1692,19 @@ namespace SDL { betaOutRHmax *= betaOutMMSF; float min_ptBeta_maxPtBeta = alpaka::math::min( - acc, alpaka::math::abs(acc, pt_beta), SDL::pt_betaMax); //need to confimm the range-out value of 7 GeV + acc, alpaka::math::abs(acc, pt_beta), lst::pt_betaMax); //need to confimm the range-out value of 7 GeV const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); const float alphaInAbsReg = alpaka::math::max( acc, alpaka::math::abs(acc, alpha_InLo), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_InLo * SDL::k2Rinv1GeVf / 3.0f, SDL::sinAlphaMax))); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_InLo * lst::k2Rinv1GeVf / 3.0f, lst::sinAlphaMax))); const float alphaOutAbsReg = alpaka::math::max( acc, alpaka::math::abs(acc, alpha_OutLo), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * SDL::k2Rinv1GeVf / 3.0f, SDL::sinAlphaMax))); - const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * SDL::deltaZLum / z_InLo); - const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * SDL::deltaZLum / z_OutLo); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / 3.0f, lst::sinAlphaMax))); + const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * lst::deltaZLum / z_InLo); + const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * lst::deltaZLum / z_OutLo); const float dBetaLum2 = (dBetaInLum + dBetaOutLum) * (dBetaInLum + dBetaOutLum); const float sinDPhi = alpaka::math::sin(acc, dPhi); @@ -1725,7 +1725,7 @@ namespace SDL { //FIXME: need faster version betaOutCut = - alpaka::math::asin(acc, alpaka::math::min(acc, drt_tl_axis * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)) + + alpaka::math::asin(acc, alpaka::math::min(acc, drt_tl_axis * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); //Cut #6: The real beta cut @@ -1746,9 +1746,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runQuintupletDefaultAlgoBBEE(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& innerOuterLowerModuleIndex, uint16_t& outerInnerLowerModuleIndex, @@ -1774,8 +1774,8 @@ namespace SDL { float& betaOutCut, float& deltaBetaCut, float& kZ) { - bool isPS_InLo = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == SDL::PS); - bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == SDL::PS); + bool isPS_InLo = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS); + bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS); float rt_InLo = mdsInGPU.anchorRt[firstMDIndex]; float rt_InOut = mdsInGPU.anchorRt[secondMDIndex]; @@ -1786,25 +1786,25 @@ namespace SDL { float z_OutLo = mdsInGPU.anchorZ[thirdMDIndex]; float alpha1GeV_OutLo = - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)); float rtRatio_OutLoInLo = rt_OutLo / rt_InLo; // Outer segment beginning rt divided by inner segment beginning rt; float dzDrtScale = alpaka::math::tan(acc, alpha1GeV_OutLo) / alpha1GeV_OutLo; // The track can bend in r-z plane slightly - float zpitch_InLo = (isPS_InLo ? SDL::pixelPSZpitch : SDL::strip2SZpitch); - float zpitch_OutLo = (isPS_OutLo ? SDL::pixelPSZpitch : SDL::strip2SZpitch); + float zpitch_InLo = (isPS_InLo ? lst::pixelPSZpitch : lst::strip2SZpitch); + float zpitch_OutLo = (isPS_OutLo ? lst::pixelPSZpitch : lst::strip2SZpitch); float zGeom = zpitch_InLo + zpitch_OutLo; - zLo = z_InLo + (z_InLo - SDL::deltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - zGeom; + zLo = z_InLo + (z_InLo - lst::deltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - zGeom; // Cut #0: Preliminary (Only here in endcap case) if (z_InLo * z_OutLo <= 0) return false; - float dLum = SDL::copysignf(SDL::deltaZLum, z_InLo); - bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerInnerLowerModuleIndex] == SDL::PS; - float rtGeom1 = isOutSgInnerMDPS ? SDL::pixelPSZpitch : SDL::strip2SZpitch; - float zGeom1 = SDL::copysignf(zGeom, z_InLo); + float dLum = lst::copysignf(lst::deltaZLum, z_InLo); + bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS; + float rtGeom1 = isOutSgInnerMDPS ? lst::pixelPSZpitch : lst::strip2SZpitch; + float zGeom1 = lst::copysignf(zGeom, z_InLo); rtLo = rt_InLo * (1.f + (z_OutLo - z_InLo - zGeom1) / (z_InLo + zGeom1 + dLum) / dzDrtScale) - rtGeom1; //slope correction only on the lower end zOut = z_OutLo; @@ -1816,7 +1816,7 @@ namespace SDL { float zInForHi = z_InLo - zGeom1 - dLum; if (zInForHi * z_InLo < 0) { - zInForHi = SDL::copysignf(0.1f, z_InLo); + zInForHi = lst::copysignf(0.1f, z_InLo); } rtHi = rt_InLo * (1.f + (z_OutLo - z_InLo + zGeom1) / zInForHi) + rtGeom1; @@ -1833,13 +1833,13 @@ namespace SDL { const float coshEta = dr3SDIn / drtSDIn; //direction estimate const float dzOutInAbs = alpaka::math::abs(acc, z_OutLo - z_InLo); const float multDzDr = dzOutInAbs * coshEta / (coshEta * coshEta - 1.f); - const float zGeom1_another = SDL::pixelPSZpitch; + const float zGeom1_another = lst::pixelPSZpitch; kZ = (z_OutLo - z_InLo) / dzSDIn; float drtErr = zGeom1_another * zGeom1_another * drtSDIn * drtSDIn / dzSDIn / dzSDIn * (1.f - 2.f * kZ + 2.f * kZ * kZ); const float sdlThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f) * (rIn / rt_InLo); - const float sdlMuls2 = sdlThetaMulsF2 * 9.f / (SDL::ptCut * SDL::ptCut) * 16.f; + const float sdlMuls2 = sdlThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; drtErr += sdlMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta; drtErr = alpaka::math::sqrt(acc, drtErr); @@ -1850,7 +1850,7 @@ namespace SDL { const float sdlPVoff = 0.1f / rt_OutLo; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = SDL::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); + deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); //Cut #4: deltaPhiPos can be tighter if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) @@ -1861,7 +1861,7 @@ namespace SDL { float diffX = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float diffY = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - dPhi = SDL::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) return false; @@ -1871,32 +1871,32 @@ namespace SDL { float sdIn_alpha_max = __H2F(segmentsInGPU.dPhiChangeMaxs[innerSegmentIndex]); float sdOut_alpha = sdIn_alpha; - float sdOut_alphaOut = SDL::phi_mpi_pi(acc, - SDL::phi(acc, + float sdOut_alphaOut = lst::phi_mpi_pi(acc, + lst::phi(acc, mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - mdsInGPU.anchorPhi[fourthMDIndex]); - float sdOut_alphaOut_min = SDL::phi_mpi_pi( + float sdOut_alphaOut_min = lst::phi_mpi_pi( acc, __H2F(segmentsInGPU.dPhiChangeMins[outerSegmentIndex]) - __H2F(segmentsInGPU.dPhiMins[outerSegmentIndex])); - float sdOut_alphaOut_max = SDL::phi_mpi_pi( + float sdOut_alphaOut_max = lst::phi_mpi_pi( acc, __H2F(segmentsInGPU.dPhiChangeMaxs[outerSegmentIndex]) - __H2F(segmentsInGPU.dPhiMaxs[outerSegmentIndex])); float tl_axis_x = mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = sdIn_alpha - SDL::phi_mpi_pi(acc, SDL::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float betaInRHmin = betaIn; float betaInRHmax = betaIn; betaOut = - -sdOut_alphaOut + SDL::phi_mpi_pi(acc, SDL::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); + -sdOut_alphaOut + lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); float betaOutRHmin = betaOut; float betaOutRHmax = betaOut; - bool isEC_secondLayer = (modulesInGPU.subdets[innerOuterLowerModuleIndex] == SDL::Endcap) and - (modulesInGPU.moduleType[innerOuterLowerModuleIndex] == SDL::TwoS); + bool isEC_secondLayer = (modulesInGPU.subdets[innerOuterLowerModuleIndex] == lst::Endcap) and + (modulesInGPU.moduleType[innerOuterLowerModuleIndex] == lst::TwoS); if (isEC_secondLayer) { betaInRHmin = betaIn - sdIn_alpha_min + sdIn_alpha; @@ -1930,7 +1930,7 @@ namespace SDL { const float corrF = 1.f; betaInCut = alpaka::math::asin( - acc, alpaka::math::min(acc, (-sdIn_dr * corrF + dr) * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)) + + acc, alpaka::math::min(acc, (-sdIn_dr * corrF + dr) * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + (0.02f / sdIn_d); //Cut #6: first beta cut @@ -1938,7 +1938,7 @@ namespace SDL { return false; float betaAv = 0.5f * (betaIn + betaOut); - pt_beta = dr * SDL::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); + pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); float lIn = 5; float lOut = 11; @@ -1950,7 +1950,7 @@ namespace SDL { (mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex])); float sdOut_d = mdsInGPU.anchorRt[fourthMDIndex] - mdsInGPU.anchorRt[thirdMDIndex]; - SDL::runDeltaBetaIterationsT5(acc, betaIn, betaOut, betaAv, pt_beta, sdIn_dr, sdOut_dr, dr, lIn); + lst::runDeltaBetaIterationsT5(acc, betaIn, betaOut, betaAv, pt_beta, sdIn_dr, sdOut_dr, dr, lIn); const float betaInMMSF = (alpaka::math::abs(acc, betaInRHmin + betaInRHmax) > 0) ? (2.f * betaIn / alpaka::math::abs(acc, betaInRHmin + betaInRHmax)) @@ -1964,25 +1964,25 @@ namespace SDL { betaOutRHmax *= betaOutMMSF; float min_ptBeta_maxPtBeta = alpaka::math::min( - acc, alpaka::math::abs(acc, pt_beta), SDL::pt_betaMax); //need to confirm the range-out value of 7 GeV + acc, alpaka::math::abs(acc, pt_beta), lst::pt_betaMax); //need to confirm the range-out value of 7 GeV const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); const float alphaInAbsReg = alpaka::math::max( acc, alpaka::math::abs(acc, sdIn_alpha), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_InLo * SDL::k2Rinv1GeVf / 3.0f, SDL::sinAlphaMax))); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_InLo * lst::k2Rinv1GeVf / 3.0f, lst::sinAlphaMax))); const float alphaOutAbsReg = alpaka::math::max( acc, alpaka::math::abs(acc, sdOut_alpha), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * SDL::k2Rinv1GeVf / 3.0f, SDL::sinAlphaMax))); - const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * SDL::deltaZLum / z_InLo); - const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * SDL::deltaZLum / z_OutLo); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / 3.0f, lst::sinAlphaMax))); + const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * lst::deltaZLum / z_InLo); + const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * lst::deltaZLum / z_OutLo); const float dBetaLum2 = (dBetaInLum + dBetaOutLum) * (dBetaInLum + dBetaOutLum); const float sinDPhi = alpaka::math::sin(acc, dPhi); const float dBetaRIn2 = 0; // TODO-RH float dBetaROut = 0; - if (modulesInGPU.moduleType[outerOuterLowerModuleIndex] == SDL::TwoS) { + if (modulesInGPU.moduleType[outerOuterLowerModuleIndex] == lst::TwoS) { dBetaROut = (alpaka::math::sqrt(acc, mdsInGPU.anchorHighEdgeX[fourthMDIndex] * mdsInGPU.anchorHighEdgeX[fourthMDIndex] + @@ -1995,7 +1995,7 @@ namespace SDL { const float dBetaROut2 = dBetaROut * dBetaROut; //FIXME: need faster version - betaOutCut = alpaka::math::asin(acc, alpaka::math::min(acc, dr * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)) + + betaOutCut = alpaka::math::asin(acc, alpaka::math::min(acc, dr * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); //Cut #6: The real beta cut @@ -2016,9 +2016,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runQuintupletDefaultAlgoEEEE(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& innerOuterLowerModuleIndex, uint16_t& outerInnerLowerModuleIndex, @@ -2044,8 +2044,8 @@ namespace SDL { float& betaOutCut, float& deltaBetaCut, float& kZ) { - bool isPS_InLo = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == SDL::PS); - bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == SDL::PS); + bool isPS_InLo = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS); + bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS); float rt_InLo = mdsInGPU.anchorRt[firstMDIndex]; float rt_InOut = mdsInGPU.anchorRt[secondMDIndex]; @@ -2056,29 +2056,29 @@ namespace SDL { float z_OutLo = mdsInGPU.anchorZ[thirdMDIndex]; float alpha1GeV_OutLo = - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)); float rtRatio_OutLoInLo = rt_OutLo / rt_InLo; // Outer segment beginning rt divided by inner segment beginning rt; float dzDrtScale = alpaka::math::tan(acc, alpha1GeV_OutLo) / alpha1GeV_OutLo; // The track can bend in r-z plane slightly - float zpitch_InLo = (isPS_InLo ? SDL::pixelPSZpitch : SDL::strip2SZpitch); - float zpitch_OutLo = (isPS_OutLo ? SDL::pixelPSZpitch : SDL::strip2SZpitch); + float zpitch_InLo = (isPS_InLo ? lst::pixelPSZpitch : lst::strip2SZpitch); + float zpitch_OutLo = (isPS_OutLo ? lst::pixelPSZpitch : lst::strip2SZpitch); float zGeom = zpitch_InLo + zpitch_OutLo; - zLo = z_InLo + (z_InLo - SDL::deltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - + zLo = z_InLo + (z_InLo - lst::deltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - zGeom; //slope-correction only on outer end // Cut #0: Preliminary (Only here in endcap case) if ((z_InLo * z_OutLo) <= 0) return false; - float dLum = SDL::copysignf(SDL::deltaZLum, z_InLo); - bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerInnerLowerModuleIndex] == SDL::PS; - bool isInSgInnerMDPS = modulesInGPU.moduleType[innerInnerLowerModuleIndex] == SDL::PS; + float dLum = lst::copysignf(lst::deltaZLum, z_InLo); + bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS; + bool isInSgInnerMDPS = modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS; - float rtGeom = (isInSgInnerMDPS and isOutSgInnerMDPS) ? 2.f * SDL::pixelPSZpitch - : (isInSgInnerMDPS or isOutSgInnerMDPS) ? SDL::pixelPSZpitch + SDL::strip2SZpitch - : 2.f * SDL::strip2SZpitch; + float rtGeom = (isInSgInnerMDPS and isOutSgInnerMDPS) ? 2.f * lst::pixelPSZpitch + : (isInSgInnerMDPS or isOutSgInnerMDPS) ? lst::pixelPSZpitch + lst::strip2SZpitch + : 2.f * lst::strip2SZpitch; float dz = z_OutLo - z_InLo; rtLo = rt_InLo * (1.f + dz / (z_InLo + dLum) / dzDrtScale) - rtGeom; //slope correction only on the lower end @@ -2093,7 +2093,7 @@ namespace SDL { if ((rtOut < rtLo) || (rtOut > rtHi)) return false; - bool isInSgOuterMDPS = modulesInGPU.moduleType[innerOuterLowerModuleIndex] == SDL::PS; + bool isInSgOuterMDPS = modulesInGPU.moduleType[innerOuterLowerModuleIndex] == lst::PS; const float drtSDIn = rt_InOut - rt_InLo; const float dzSDIn = z_InOut - z_InLo; @@ -2106,11 +2106,11 @@ namespace SDL { kZ = (z_OutLo - z_InLo) / dzSDIn; float sdlThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f); - float sdlMuls2 = sdlThetaMulsF2 * 9.f / (SDL::ptCut * SDL::ptCut) * 16.f; + float sdlMuls2 = sdlThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; float drtErr = alpaka::math::sqrt( acc, - SDL::pixelPSZpitch * SDL::pixelPSZpitch * 2.f / (dzSDIn * dzSDIn) * (dzOutInAbs * dzOutInAbs) + + lst::pixelPSZpitch * lst::pixelPSZpitch * 2.f / (dzSDIn * dzSDIn) * (dzOutInAbs * dzOutInAbs) + sdlMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta); float drtMean = drtSDIn * dzOutInAbs / alpaka::math::abs(acc, dzSDIn); @@ -2130,7 +2130,7 @@ namespace SDL { float sdlPVoff = 0.1f / rtOut; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = SDL::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); + deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) return false; @@ -2140,7 +2140,7 @@ namespace SDL { float diffX = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float diffY = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - dPhi = SDL::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) @@ -2148,20 +2148,20 @@ namespace SDL { float sdIn_alpha = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); float sdOut_alpha = sdIn_alpha; //weird - float sdOut_dPhiPos = SDL::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[thirdMDIndex]); + float sdOut_dPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[thirdMDIndex]); float sdOut_dPhiChange = __H2F(segmentsInGPU.dPhiChanges[outerSegmentIndex]); float sdOut_dPhiChange_min = __H2F(segmentsInGPU.dPhiChangeMins[outerSegmentIndex]); float sdOut_dPhiChange_max = __H2F(segmentsInGPU.dPhiChangeMaxs[outerSegmentIndex]); - float sdOut_alphaOutRHmin = SDL::phi_mpi_pi(acc, sdOut_dPhiChange_min - sdOut_dPhiPos); - float sdOut_alphaOutRHmax = SDL::phi_mpi_pi(acc, sdOut_dPhiChange_max - sdOut_dPhiPos); - float sdOut_alphaOut = SDL::phi_mpi_pi(acc, sdOut_dPhiChange - sdOut_dPhiPos); + float sdOut_alphaOutRHmin = lst::phi_mpi_pi(acc, sdOut_dPhiChange_min - sdOut_dPhiPos); + float sdOut_alphaOutRHmax = lst::phi_mpi_pi(acc, sdOut_dPhiChange_max - sdOut_dPhiPos); + float sdOut_alphaOut = lst::phi_mpi_pi(acc, sdOut_dPhiChange - sdOut_dPhiPos); float tl_axis_x = mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = sdIn_alpha - SDL::phi_mpi_pi(acc, SDL::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float sdIn_alphaRHmin = __H2F(segmentsInGPU.dPhiChangeMins[innerSegmentIndex]); float sdIn_alphaRHmax = __H2F(segmentsInGPU.dPhiChangeMaxs[innerSegmentIndex]); @@ -2169,7 +2169,7 @@ namespace SDL { float betaInRHmax = betaIn + sdIn_alphaRHmax - sdIn_alpha; betaOut = - -sdOut_alphaOut + SDL::phi_mpi_pi(acc, SDL::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); + -sdOut_alphaOut + lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); float betaOutRHmin = betaOut - sdOut_alphaOutRHmin + sdOut_alphaOut; float betaOutRHmax = betaOut - sdOut_alphaOutRHmax + sdOut_alphaOut; @@ -2197,7 +2197,7 @@ namespace SDL { const float corrF = 1.f; betaInCut = alpaka::math::asin( - acc, alpaka::math::min(acc, (-sdIn_dr * corrF + dr) * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)) + + acc, alpaka::math::min(acc, (-sdIn_dr * corrF + dr) * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + (0.02f / sdIn_d); //Cut #6: first beta cut @@ -2205,7 +2205,7 @@ namespace SDL { return false; float betaAv = 0.5f * (betaIn + betaOut); - pt_beta = dr * SDL::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); + pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); int lIn = 11; //endcap int lOut = 13; //endcap @@ -2217,7 +2217,7 @@ namespace SDL { (mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex])); float sdOut_d = mdsInGPU.anchorRt[fourthMDIndex] - mdsInGPU.anchorRt[thirdMDIndex]; - SDL::runDeltaBetaIterationsT5(acc, betaIn, betaOut, betaAv, pt_beta, sdIn_dr, sdOut_dr, dr, lIn); + lst::runDeltaBetaIterationsT5(acc, betaIn, betaOut, betaAv, pt_beta, sdIn_dr, sdOut_dr, dr, lIn); const float betaInMMSF = (alpaka::math::abs(acc, betaInRHmin + betaInRHmax) > 0) ? (2.f * betaIn / alpaka::math::abs(acc, betaInRHmin + betaInRHmax)) @@ -2231,26 +2231,26 @@ namespace SDL { betaOutRHmax *= betaOutMMSF; float min_ptBeta_maxPtBeta = alpaka::math::min( - acc, alpaka::math::abs(acc, pt_beta), SDL::pt_betaMax); //need to confirm the range-out value of 7 GeV + acc, alpaka::math::abs(acc, pt_beta), lst::pt_betaMax); //need to confirm the range-out value of 7 GeV const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); const float alphaInAbsReg = alpaka::math::max( acc, alpaka::math::abs(acc, sdIn_alpha), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_InLo * SDL::k2Rinv1GeVf / 3.0f, SDL::sinAlphaMax))); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_InLo * lst::k2Rinv1GeVf / 3.0f, lst::sinAlphaMax))); const float alphaOutAbsReg = alpaka::math::max( acc, alpaka::math::abs(acc, sdOut_alpha), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * SDL::k2Rinv1GeVf / 3.0f, SDL::sinAlphaMax))); - const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * SDL::deltaZLum / z_InLo); - const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * SDL::deltaZLum / z_OutLo); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / 3.0f, lst::sinAlphaMax))); + const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * lst::deltaZLum / z_InLo); + const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * lst::deltaZLum / z_OutLo); const float dBetaLum2 = (dBetaInLum + dBetaOutLum) * (dBetaInLum + dBetaOutLum); const float dBetaRIn2 = 0; // TODO-RH float dBetaROut2 = 0; //TODO-RH //FIXME: need faster version - betaOutCut = alpaka::math::asin(acc, alpaka::math::min(acc, dr * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)) + + betaOutCut = alpaka::math::asin(acc, alpaka::math::min(acc, dr * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); //Cut #6: The real beta cut @@ -2272,9 +2272,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runQuintupletAlgoSelector(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& innerOuterLowerModuleIndex, uint16_t& outerInnerLowerModuleIndex, @@ -2317,8 +2317,8 @@ namespace SDL { short outerInnerLowerModuleSubdet = modulesInGPU.subdets[outerInnerLowerModuleIndex]; short outerOuterLowerModuleSubdet = modulesInGPU.subdets[outerOuterLowerModuleIndex]; - if (innerInnerLowerModuleSubdet == SDL::Barrel and innerOuterLowerModuleSubdet == SDL::Barrel and - outerInnerLowerModuleSubdet == SDL::Barrel and outerOuterLowerModuleSubdet == SDL::Barrel) { + if (innerInnerLowerModuleSubdet == lst::Barrel and innerOuterLowerModuleSubdet == lst::Barrel and + outerInnerLowerModuleSubdet == lst::Barrel and outerOuterLowerModuleSubdet == lst::Barrel) { return runQuintupletDefaultAlgoBBBB(acc, modulesInGPU, mdsInGPU, @@ -2348,8 +2348,8 @@ namespace SDL { betaInCut, betaOutCut, deltaBetaCut); - } else if (innerInnerLowerModuleSubdet == SDL::Barrel and innerOuterLowerModuleSubdet == SDL::Barrel and - outerInnerLowerModuleSubdet == SDL::Endcap and outerOuterLowerModuleSubdet == SDL::Endcap) { + } else if (innerInnerLowerModuleSubdet == lst::Barrel and innerOuterLowerModuleSubdet == lst::Barrel and + outerInnerLowerModuleSubdet == lst::Endcap and outerOuterLowerModuleSubdet == lst::Endcap) { return runQuintupletDefaultAlgoBBEE(acc, modulesInGPU, mdsInGPU, @@ -2379,8 +2379,8 @@ namespace SDL { betaOutCut, deltaBetaCut, kZ); - } else if (innerInnerLowerModuleSubdet == SDL::Barrel and innerOuterLowerModuleSubdet == SDL::Barrel and - outerInnerLowerModuleSubdet == SDL::Barrel and outerOuterLowerModuleSubdet == SDL::Endcap) { + } else if (innerInnerLowerModuleSubdet == lst::Barrel and innerOuterLowerModuleSubdet == lst::Barrel and + outerInnerLowerModuleSubdet == lst::Barrel and outerOuterLowerModuleSubdet == lst::Endcap) { return runQuintupletDefaultAlgoBBBB(acc, modulesInGPU, mdsInGPU, @@ -2410,8 +2410,8 @@ namespace SDL { betaInCut, betaOutCut, deltaBetaCut); - } else if (innerInnerLowerModuleSubdet == SDL::Barrel and innerOuterLowerModuleSubdet == SDL::Endcap and - outerInnerLowerModuleSubdet == SDL::Endcap and outerOuterLowerModuleSubdet == SDL::Endcap) { + } else if (innerInnerLowerModuleSubdet == lst::Barrel and innerOuterLowerModuleSubdet == lst::Endcap and + outerInnerLowerModuleSubdet == lst::Endcap and outerOuterLowerModuleSubdet == lst::Endcap) { return runQuintupletDefaultAlgoBBEE(acc, modulesInGPU, mdsInGPU, @@ -2441,8 +2441,8 @@ namespace SDL { betaOutCut, deltaBetaCut, kZ); - } else if (innerInnerLowerModuleSubdet == SDL::Endcap and innerOuterLowerModuleSubdet == SDL::Endcap and - outerInnerLowerModuleSubdet == SDL::Endcap and outerOuterLowerModuleSubdet == SDL::Endcap) { + } else if (innerInnerLowerModuleSubdet == lst::Endcap and innerOuterLowerModuleSubdet == lst::Endcap and + outerInnerLowerModuleSubdet == lst::Endcap and outerOuterLowerModuleSubdet == lst::Endcap) { return runQuintupletDefaultAlgoEEEE(acc, modulesInGPU, mdsInGPU, @@ -2479,10 +2479,10 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runQuintupletDefaultAlgo(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, - struct SDL::Triplets& tripletsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, + struct lst::Triplets& tripletsInGPU, uint16_t& lowerModuleIndex1, uint16_t& lowerModuleIndex2, uint16_t& lowerModuleIndex3, @@ -2612,24 +2612,24 @@ namespace SDL { float x3Vec[] = {x3, x3, x3}; float y3Vec[] = {y3, y3, y3}; - if (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex1] == SDL::TwoS) { + if (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex1] == lst::TwoS) { x1Vec[1] = mdsInGPU.anchorLowEdgeX[firstMDIndex]; x1Vec[2] = mdsInGPU.anchorHighEdgeX[firstMDIndex]; y1Vec[1] = mdsInGPU.anchorLowEdgeY[firstMDIndex]; y1Vec[2] = mdsInGPU.anchorHighEdgeY[firstMDIndex]; } - if (modulesInGPU.subdets[lowerModuleIndex2] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex2] == SDL::TwoS) { + if (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex2] == lst::TwoS) { x2Vec[1] = mdsInGPU.anchorLowEdgeX[secondMDIndex]; x2Vec[2] = mdsInGPU.anchorHighEdgeX[secondMDIndex]; y2Vec[1] = mdsInGPU.anchorLowEdgeY[secondMDIndex]; y2Vec[2] = mdsInGPU.anchorHighEdgeY[secondMDIndex]; } - if (modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex3] == SDL::TwoS) { + if (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex3] == lst::TwoS) { x3Vec[1] = mdsInGPU.anchorLowEdgeX[thirdMDIndex]; x3Vec[2] = mdsInGPU.anchorHighEdgeX[thirdMDIndex]; @@ -2644,8 +2644,8 @@ namespace SDL { x1Vec[i] = x4; y1Vec[i] = y4; } - if (modulesInGPU.subdets[lowerModuleIndex4] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex4] == SDL::TwoS) { + if (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex4] == lst::TwoS) { x1Vec[1] = mdsInGPU.anchorLowEdgeX[fourthMDIndex]; x1Vec[2] = mdsInGPU.anchorHighEdgeX[fourthMDIndex]; @@ -2660,8 +2660,8 @@ namespace SDL { x2Vec[i] = x5; y2Vec[i] = y5; } - if (modulesInGPU.subdets[lowerModuleIndex5] == SDL::Endcap and - modulesInGPU.moduleType[lowerModuleIndex5] == SDL::TwoS) { + if (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex5] == lst::TwoS) { x2Vec[1] = mdsInGPU.anchorLowEdgeX[fifthMDIndex]; x2Vec[2] = mdsInGPU.anchorHighEdgeX[fifthMDIndex]; @@ -2713,11 +2713,11 @@ namespace SDL { //split by category bool matchedRadii; - if (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Barrel and - modulesInGPU.subdets[lowerModuleIndex2] == SDL::Barrel and - modulesInGPU.subdets[lowerModuleIndex3] == SDL::Barrel and - modulesInGPU.subdets[lowerModuleIndex4] == SDL::Barrel and - modulesInGPU.subdets[lowerModuleIndex5] == SDL::Barrel) { + if (modulesInGPU.subdets[lowerModuleIndex1] == lst::Barrel and + modulesInGPU.subdets[lowerModuleIndex2] == lst::Barrel and + modulesInGPU.subdets[lowerModuleIndex3] == lst::Barrel and + modulesInGPU.subdets[lowerModuleIndex4] == lst::Barrel and + modulesInGPU.subdets[lowerModuleIndex5] == lst::Barrel) { matchedRadii = matchRadiiBBBBB(acc, innerRadius, bridgeRadius, @@ -2728,11 +2728,11 @@ namespace SDL { bridgeInvRadiusMax, outerInvRadiusMin, outerInvRadiusMax); - } else if (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Barrel and - modulesInGPU.subdets[lowerModuleIndex2] == SDL::Barrel and - modulesInGPU.subdets[lowerModuleIndex3] == SDL::Barrel and - modulesInGPU.subdets[lowerModuleIndex4] == SDL::Barrel and - modulesInGPU.subdets[lowerModuleIndex5] == SDL::Endcap) { + } else if (modulesInGPU.subdets[lowerModuleIndex1] == lst::Barrel and + modulesInGPU.subdets[lowerModuleIndex2] == lst::Barrel and + modulesInGPU.subdets[lowerModuleIndex3] == lst::Barrel and + modulesInGPU.subdets[lowerModuleIndex4] == lst::Barrel and + modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) { matchedRadii = matchRadiiBBBBE(acc, innerRadius, bridgeRadius, @@ -2749,11 +2749,11 @@ namespace SDL { bridgeInvRadiusMax, outerInvRadiusMin, outerInvRadiusMax); - } else if (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Barrel and - modulesInGPU.subdets[lowerModuleIndex2] == SDL::Barrel and - modulesInGPU.subdets[lowerModuleIndex3] == SDL::Barrel and - modulesInGPU.subdets[lowerModuleIndex4] == SDL::Endcap and - modulesInGPU.subdets[lowerModuleIndex5] == SDL::Endcap) { + } else if (modulesInGPU.subdets[lowerModuleIndex1] == lst::Barrel and + modulesInGPU.subdets[lowerModuleIndex2] == lst::Barrel and + modulesInGPU.subdets[lowerModuleIndex3] == lst::Barrel and + modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and + modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) { if (modulesInGPU.layers[lowerModuleIndex1] == 1) { matchedRadii = matchRadiiBBBEE12378(acc, innerRadius, @@ -2808,11 +2808,11 @@ namespace SDL { } } - else if (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Barrel and - modulesInGPU.subdets[lowerModuleIndex2] == SDL::Barrel and - modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap and - modulesInGPU.subdets[lowerModuleIndex4] == SDL::Endcap and - modulesInGPU.subdets[lowerModuleIndex5] == SDL::Endcap) { + else if (modulesInGPU.subdets[lowerModuleIndex1] == lst::Barrel and + modulesInGPU.subdets[lowerModuleIndex2] == lst::Barrel and + modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and + modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and + modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) { matchedRadii = matchRadiiBBEEE(acc, innerRadius, bridgeRadius, @@ -2829,11 +2829,11 @@ namespace SDL { bridgeInvRadiusMax, outerInvRadiusMin, outerInvRadiusMax); - } else if (modulesInGPU.subdets[lowerModuleIndex1] == SDL::Barrel and - modulesInGPU.subdets[lowerModuleIndex2] == SDL::Endcap and - modulesInGPU.subdets[lowerModuleIndex3] == SDL::Endcap and - modulesInGPU.subdets[lowerModuleIndex4] == SDL::Endcap and - modulesInGPU.subdets[lowerModuleIndex5] == SDL::Endcap) { + } else if (modulesInGPU.subdets[lowerModuleIndex1] == lst::Barrel and + modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and + modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and + modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and + modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) { matchedRadii = matchRadiiBEEEE(acc, innerRadius, bridgeRadius, @@ -2898,22 +2898,22 @@ namespace SDL { #ifdef USE_T5_DNN unsigned int mdIndices[] = {firstMDIndex, secondMDIndex, thirdMDIndex, fourthMDIndex, fifthMDIndex}; - float inference = T5DNN::runInference(acc, - modulesInGPU, - mdsInGPU, - segmentsInGPU, - tripletsInGPU, - xVec, - yVec, - mdIndices, - lowerModuleIndices, - innerTripletIndex, - outerTripletIndex, - innerRadius, - outerRadius, - bridgeRadius); - TightCutFlag = TightCutFlag and (inference > T5DNN::LSTWP2); // T5-in-TC cut - if (inference <= T5DNN::LSTWP2) // T5-building cut + float inference = lst::t5dnn::runInference(acc, + modulesInGPU, + mdsInGPU, + segmentsInGPU, + tripletsInGPU, + xVec, + yVec, + mdIndices, + lowerModuleIndices, + innerTripletIndex, + outerTripletIndex, + innerRadius, + outerRadius, + bridgeRadius); + TightCutFlag = TightCutFlag and (inference > lst::t5dnn::LSTWP2); // T5-in-TC cut + if (inference <= lst::t5dnn::LSTWP2) // T5-building cut return false; #endif @@ -2971,12 +2971,12 @@ namespace SDL { struct createQuintupletsInGPUv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::MiniDoublets mdsInGPU, - struct SDL::Segments segmentsInGPU, - struct SDL::Triplets tripletsInGPU, - struct SDL::Quintuplets quintupletsInGPU, - struct SDL::ObjectRanges rangesInGPU, + struct lst::Modules modulesInGPU, + struct lst::MiniDoublets mdsInGPU, + struct lst::Segments segmentsInGPU, + struct lst::Triplets tripletsInGPU, + struct lst::Quintuplets quintupletsInGPU, + struct lst::ObjectRanges rangesInGPU, uint16_t nEligibleT5Modules) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -3058,7 +3058,7 @@ namespace SDL { float eta = mdsInGPU.anchorEta[segmentsInGPU.mdIndices[2 * tripletsInGPU.segmentIndices[2 * innerTripletIndex + layer2_adjustment]]]; - float pt = (innerRadius + outerRadius) * SDL::k2Rinv1GeVf; + float pt = (innerRadius + outerRadius) * lst::k2Rinv1GeVf; float scores = chiSquared + nonAnchorChiSquared; addQuintupletToMemory(tripletsInGPU, quintupletsInGPU, @@ -3100,9 +3100,9 @@ namespace SDL { struct createEligibleModulesListForQuintupletsGPU { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::Triplets tripletsInGPU, - struct SDL::ObjectRanges rangesInGPU) const { + struct lst::Modules modulesInGPU, + struct lst::Triplets tripletsInGPU, + struct lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -3126,9 +3126,9 @@ namespace SDL { if (tripletsInGPU.nTriplets[i] == 0) continue; - if (module_subdets == SDL::Barrel and module_layers >= 3) + if (module_subdets == lst::Barrel and module_layers >= 3) continue; - if (module_subdets == SDL::Endcap and module_layers > 1) + if (module_subdets == lst::Endcap and module_layers > 1) continue; int nEligibleT5Modules = alpaka::atomicOp(acc, &nEligibleT5Modulesx, 1); @@ -3198,9 +3198,9 @@ namespace SDL { struct addQuintupletRangesToEventExplicit { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::Quintuplets quintupletsInGPU, - struct SDL::ObjectRanges rangesInGPU) const { + struct lst::Modules modulesInGPU, + struct lst::Quintuplets quintupletsInGPU, + struct lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -3216,5 +3216,5 @@ namespace SDL { } } }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index 5e25f8815e58d..397f426f45f47 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -9,7 +9,7 @@ #include "Hit.h" #include "ObjectRanges.h" -namespace SDL { +namespace lst { struct Segments { FPX* dPhis; FPX* dPhiMins; @@ -175,7 +175,7 @@ namespace SDL { inline void setData(SegmentsBuffer& buf) { data_.setData(buf); } }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules_seg(struct SDL::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules_seg(struct lst::Modules& modulesInGPU, unsigned int moduleIndex) { // The "tighter" tilted modules are the subset of tilted modules that have smaller spacing // This is the same as what was previously considered as"isNormalTiltedModules" @@ -229,7 +229,7 @@ namespace SDL { return moduleSeparation; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg(struct SDL::Modules& modulesInGPU, unsigned int moduleIndex) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg(struct lst::Modules& modulesInGPU, unsigned int moduleIndex) { static constexpr float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; static constexpr float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; static constexpr float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; @@ -264,8 +264,8 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE void dAlphaThreshold(TAcc const& acc, float* dAlphaThresholdValues, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, float& xIn, float& yIn, float& zIn, @@ -278,7 +278,7 @@ namespace SDL { uint16_t& outerLowerModuleIndex, unsigned int& innerMDIndex, unsigned int& outerMDIndex) { - float sdMuls = (modulesInGPU.subdets[innerLowerModuleIndex] == SDL::Barrel) + float sdMuls = (modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel) ? miniMulsPtScaleBarrel[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut : miniMulsPtScaleEndcap[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut; @@ -288,15 +288,15 @@ namespace SDL { const float dAlpha_Bfield = alpaka::math::asin(acc, alpaka::math::min(acc, segmentDr * k2Rinv1GeVf / ptCut, sinAlphaMax)); - bool isInnerTilted = modulesInGPU.subdets[innerLowerModuleIndex] == SDL::Barrel and - modulesInGPU.sides[innerLowerModuleIndex] != SDL::Center; - bool isOuterTilted = modulesInGPU.subdets[outerLowerModuleIndex] == SDL::Barrel and - modulesInGPU.sides[outerLowerModuleIndex] != SDL::Center; + bool isInnerTilted = modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel and + modulesInGPU.sides[innerLowerModuleIndex] != lst::Center; + bool isOuterTilted = modulesInGPU.subdets[outerLowerModuleIndex] == lst::Barrel and + modulesInGPU.sides[outerLowerModuleIndex] != lst::Center; const float& drdzInner = modulesInGPU.drdzs[innerLowerModuleIndex]; const float& drdzOuter = modulesInGPU.drdzs[outerLowerModuleIndex]; - float innerModuleGapSize = SDL::moduleGapSize_seg(modulesInGPU, innerLowerModuleIndex); - float outerModuleGapSize = SDL::moduleGapSize_seg(modulesInGPU, outerLowerModuleIndex); + float innerModuleGapSize = lst::moduleGapSize_seg(modulesInGPU, innerLowerModuleIndex); + float outerModuleGapSize = lst::moduleGapSize_seg(modulesInGPU, outerLowerModuleIndex); const float innerminiTilt2 = isInnerTilted ? ((0.5f * 0.5f) * (pixelPSZpitch * pixelPSZpitch) * (drdzInner * drdzInner) / (1.f + drdzInner * drdzInner) / (innerModuleGapSize * innerModuleGapSize)) @@ -312,14 +312,14 @@ namespace SDL { float sdLumForInnerMini2; float sdLumForOuterMini2; - if (modulesInGPU.subdets[innerLowerModuleIndex] == SDL::Barrel) { + if (modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel) { sdLumForInnerMini2 = innerminiTilt2 * (dAlpha_Bfield * dAlpha_Bfield); } else { sdLumForInnerMini2 = (mdsInGPU.dphis[innerMDIndex] * mdsInGPU.dphis[innerMDIndex]) * (deltaZLum * deltaZLum) / (mdsInGPU.dzs[innerMDIndex] * mdsInGPU.dzs[innerMDIndex]); } - if (modulesInGPU.subdets[outerLowerModuleIndex] == SDL::Barrel) { + if (modulesInGPU.subdets[outerLowerModuleIndex] == lst::Barrel) { sdLumForOuterMini2 = outerminiTilt2 * (dAlpha_Bfield * dAlpha_Bfield); } else { sdLumForOuterMini2 = (mdsInGPU.dphis[outerMDIndex] * mdsInGPU.dphis[outerMDIndex]) * (deltaZLum * deltaZLum) / @@ -329,23 +329,23 @@ namespace SDL { // Unique stuff for the segment dudes alone float dAlpha_res_inner = 0.02f / miniDelta * - (modulesInGPU.subdets[innerLowerModuleIndex] == SDL::Barrel ? 1.0f : alpaka::math::abs(acc, zIn) / rtIn); + (modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel ? 1.0f : alpaka::math::abs(acc, zIn) / rtIn); float dAlpha_res_outer = 0.02f / miniDelta * - (modulesInGPU.subdets[outerLowerModuleIndex] == SDL::Barrel ? 1.0f : alpaka::math::abs(acc, zOut) / rtOut); + (modulesInGPU.subdets[outerLowerModuleIndex] == lst::Barrel ? 1.0f : alpaka::math::abs(acc, zOut) / rtOut); float dAlpha_res = dAlpha_res_inner + dAlpha_res_outer; - if (modulesInGPU.subdets[innerLowerModuleIndex] == SDL::Barrel and - modulesInGPU.sides[innerLowerModuleIndex] == SDL::Center) { + if (modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel and + modulesInGPU.sides[innerLowerModuleIndex] == lst::Center) { dAlphaThresholdValues[0] = dAlpha_Bfield + alpaka::math::sqrt(acc, dAlpha_res * dAlpha_res + sdMuls * sdMuls); } else { dAlphaThresholdValues[0] = dAlpha_Bfield + alpaka::math::sqrt(acc, dAlpha_res * dAlpha_res + sdMuls * sdMuls + sdLumForInnerMini2); } - if (modulesInGPU.subdets[outerLowerModuleIndex] == SDL::Barrel and - modulesInGPU.sides[outerLowerModuleIndex] == SDL::Center) { + if (modulesInGPU.subdets[outerLowerModuleIndex] == lst::Barrel and + modulesInGPU.sides[outerLowerModuleIndex] == lst::Center) { dAlphaThresholdValues[1] = dAlpha_Bfield + alpaka::math::sqrt(acc, dAlpha_res * dAlpha_res + sdMuls * sdMuls); } else { dAlphaThresholdValues[1] = @@ -356,7 +356,7 @@ namespace SDL { dAlphaThresholdValues[2] = dAlpha_Bfield + alpaka::math::sqrt(acc, dAlpha_res * dAlpha_res + sdMuls * sdMuls); }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addSegmentToMemory(struct SDL::Segments& segmentsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addSegmentToMemory(struct lst::Segments& segmentsInGPU, unsigned int lowerMDIndex, unsigned int upperMDIndex, uint16_t innerLowerModuleIndex, @@ -391,8 +391,8 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelSegmentToMemory(TAcc const& acc, - struct SDL::Segments& segmentsInGPU, - struct SDL::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, + struct lst::MiniDoublets& mdsInGPU, unsigned int innerMDIndex, unsigned int outerMDIndex, uint16_t pixelModuleIndex, @@ -430,7 +430,7 @@ namespace SDL { mdsInGPU.anchorY[innerMDIndex] + circleRadius * alpaka::math::cos(acc, circlePhi)}; //check which of the circles can accommodate r3LH better (we won't get perfect agreement) - float bestChiSquared = SDL::SDL_INF; + float bestChiSquared = lst::lst_INF; float chiSquared; size_t bestIndex; for (size_t i = 0; i < 2; i++) { @@ -454,8 +454,8 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgoBarrel(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, uint16_t& innerLowerModuleIndex, uint16_t& outerLowerModuleIndex, unsigned int& innerMDIndex, @@ -479,7 +479,7 @@ namespace SDL { float& dAlphaInnerMDSegmentThreshold, float& dAlphaOuterMDSegmentThreshold, float& dAlphaInnerMDOuterMDThreshold) { - float sdMuls = (modulesInGPU.subdets[innerLowerModuleIndex] == SDL::Barrel) + float sdMuls = (modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel) ? miniMulsPtScaleBarrel[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut : miniMulsPtScaleEndcap[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut; @@ -510,12 +510,12 @@ namespace SDL { sdCut = sdSlope + alpaka::math::sqrt(acc, sdMuls * sdMuls + sdPVoff * sdPVoff); - dPhi = SDL::phi_mpi_pi(acc, mdsInGPU.anchorPhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); + dPhi = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); if (alpaka::math::abs(acc, dPhi) > sdCut) return false; - dPhiChange = SDL::phi_mpi_pi(acc, SDL::phi(acc, xOut - xIn, yOut - yIn) - mdsInGPU.anchorPhi[innerMDIndex]); + dPhiChange = lst::phi_mpi_pi(acc, lst::phi(acc, xOut - xIn, yOut - yIn) - mdsInGPU.anchorPhi[innerMDIndex]); if (alpaka::math::abs(acc, dPhiChange) > sdCut) return false; @@ -557,8 +557,8 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgoEndcap(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, uint16_t& innerLowerModuleIndex, uint16_t& outerLowerModuleIndex, unsigned int& innerMDIndex, @@ -595,8 +595,8 @@ namespace SDL { zOut = mdsInGPU.anchorZ[outerMDIndex]; rtOut = mdsInGPU.anchorRt[outerMDIndex]; - bool outerLayerEndcapTwoS = (modulesInGPU.subdets[outerLowerModuleIndex] == SDL::Endcap) && - (modulesInGPU.moduleType[outerLowerModuleIndex] == SDL::TwoS); + bool outerLayerEndcapTwoS = (modulesInGPU.subdets[outerLowerModuleIndex] == lst::Endcap) && + (modulesInGPU.moduleType[outerLowerModuleIndex] == lst::TwoS); float sdSlope = alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * k2Rinv1GeVf / ptCut, sinAlphaMax)); float disks2SMinRadius = 60.f; @@ -612,7 +612,7 @@ namespace SDL { float dz = zOut - zIn; // Alpaka: Needs to be moved over - float dLum = SDL::copysignf(deltaZLum, zIn); + float dLum = lst::copysignf(deltaZLum, zIn); float drtDzScale = sdSlope / alpaka::math::tan(acc, sdSlope); rtLo = alpaka::math::max( @@ -624,14 +624,14 @@ namespace SDL { if ((rtOut < rtLo) || (rtOut > rtHi)) return false; - dPhi = SDL::phi_mpi_pi(acc, mdsInGPU.anchorPhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); + dPhi = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); sdCut = sdSlope; if (outerLayerEndcapTwoS) { float dPhiPos_high = - SDL::phi_mpi_pi(acc, mdsInGPU.anchorHighEdgePhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); + lst::phi_mpi_pi(acc, mdsInGPU.anchorHighEdgePhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); float dPhiPos_low = - SDL::phi_mpi_pi(acc, mdsInGPU.anchorLowEdgePhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); + lst::phi_mpi_pi(acc, mdsInGPU.anchorLowEdgePhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); dPhiMax = alpaka::math::abs(acc, dPhiPos_high) > alpaka::math::abs(acc, dPhiPos_low) ? dPhiPos_high : dPhiPos_low; dPhiMin = alpaka::math::abs(acc, dPhiPos_high) > alpaka::math::abs(acc, dPhiPos_low) ? dPhiPos_low : dPhiPos_high; @@ -687,8 +687,8 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgo(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, uint16_t& innerLowerModuleIndex, uint16_t& outerLowerModuleIndex, unsigned int& innerMDIndex, @@ -719,8 +719,8 @@ namespace SDL { rtLo = -999.f; rtHi = -999.f; - if (modulesInGPU.subdets[innerLowerModuleIndex] == SDL::Barrel and - modulesInGPU.subdets[outerLowerModuleIndex] == SDL::Barrel) { + if (modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel and + modulesInGPU.subdets[outerLowerModuleIndex] == lst::Barrel) { return runSegmentDefaultAlgoBarrel(acc, modulesInGPU, mdsInGPU, @@ -780,10 +780,10 @@ namespace SDL { struct createSegmentsInGPUv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::MiniDoublets mdsInGPU, - struct SDL::Segments segmentsInGPU, - struct SDL::ObjectRanges rangesInGPU) const { + struct lst::Modules modulesInGPU, + struct lst::MiniDoublets mdsInGPU, + struct lst::Segments segmentsInGPU, + struct lst::ObjectRanges rangesInGPU) const { auto const globalBlockIdx = alpaka::getIdx(acc); auto const blockThreadIdx = alpaka::getIdx(acc); auto const gridBlockExtent = alpaka::getWorkDiv(acc); @@ -892,9 +892,9 @@ namespace SDL { struct createSegmentArrayRanges { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::ObjectRanges rangesInGPU, - struct SDL::MiniDoublets mdsInGPU) const { + struct lst::Modules modulesInGPU, + struct lst::ObjectRanges rangesInGPU, + struct lst::MiniDoublets mdsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -990,9 +990,9 @@ namespace SDL { struct addSegmentRangesToEventExplicit { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::Segments segmentsInGPU, - struct SDL::ObjectRanges rangesInGPU) const { + struct lst::Modules modulesInGPU, + struct lst::Segments segmentsInGPU, + struct lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -1011,11 +1011,11 @@ namespace SDL { struct addPixelSegmentToEventKernel { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::ObjectRanges rangesInGPU, - struct SDL::Hits hitsInGPU, - struct SDL::MiniDoublets mdsInGPU, - struct SDL::Segments segmentsInGPU, + struct lst::Modules modulesInGPU, + struct lst::ObjectRanges rangesInGPU, + struct lst::Hits hitsInGPU, + struct lst::MiniDoublets mdsInGPU, + struct lst::Segments segmentsInGPU, unsigned int* hitIndices0, unsigned int* hitIndices1, unsigned int* hitIndices2, @@ -1095,6 +1095,6 @@ namespace SDL { } } }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h index 96a459c449a50..dbc061dfa7e92 100644 --- a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h +++ b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h @@ -12,7 +12,7 @@ #include "Hit.h" #include "ObjectRanges.h" -namespace SDL { +namespace lst { struct TrackCandidates { short* trackCandidateType; // 4-T5 5-pT3 7-pT5 8-pLS unsigned int* directObjectIndices; // Will hold direct indices to each type containers @@ -109,7 +109,7 @@ namespace SDL { inline void setData(TrackCandidatesBuffer& buf) { data_.setData(buf); } }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addpLSTrackCandidateToMemory(struct SDL::TrackCandidates& trackCandidatesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addpLSTrackCandidateToMemory(struct lst::TrackCandidates& trackCandidatesInGPU, unsigned int trackletIndex, unsigned int trackCandidateIndex, uint4 hitIndices, @@ -128,7 +128,7 @@ namespace SDL { trackCandidatesInGPU.hitIndices[Params_pT5::kHits * trackCandidateIndex + 3] = hitIndices.w; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTrackCandidateToMemory(struct SDL::TrackCandidates& trackCandidatesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTrackCandidateToMemory(struct lst::TrackCandidates& trackCandidatesInGPU, short trackCandidateType, unsigned int innerTrackletIndex, unsigned int outerTrackletIndex, @@ -167,9 +167,9 @@ namespace SDL { ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkPixelHits(unsigned int ix, unsigned int jx, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, - struct SDL::Hits& hitsInGPU) { + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, + struct lst::Hits& hitsInGPU) { int phits1[Params_pLS::kHits]; int phits2[Params_pLS::kHits]; @@ -208,11 +208,11 @@ namespace SDL { struct crossCleanpT3 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::ObjectRanges rangesInGPU, - struct SDL::PixelTriplets pixelTripletsInGPU, - struct SDL::Segments segmentsInGPU, - struct SDL::PixelQuintuplets pixelQuintupletsInGPU) const { + struct lst::Modules modulesInGPU, + struct lst::ObjectRanges rangesInGPU, + struct lst::PixelTriplets pixelTripletsInGPU, + struct lst::Segments segmentsInGPU, + struct lst::PixelQuintuplets pixelQuintupletsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -236,7 +236,7 @@ namespace SDL { float eta2 = segmentsInGPU.eta[pLS_jx - prefix]; float phi2 = segmentsInGPU.phi[pLS_jx - prefix]; float dEta = alpaka::math::abs(acc, (eta1 - eta2)); - float dPhi = SDL::calculate_dPhi(phi1, phi2); + float dPhi = lst::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 1e-5f) @@ -249,11 +249,11 @@ namespace SDL { struct crossCleanT5 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::Quintuplets quintupletsInGPU, - struct SDL::PixelQuintuplets pixelQuintupletsInGPU, - struct SDL::PixelTriplets pixelTripletsInGPU, - struct SDL::ObjectRanges rangesInGPU) const { + struct lst::Modules modulesInGPU, + struct lst::Quintuplets quintupletsInGPU, + struct lst::PixelQuintuplets pixelQuintupletsInGPU, + struct lst::PixelTriplets pixelTripletsInGPU, + struct lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -289,7 +289,7 @@ namespace SDL { } float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = SDL::calculate_dPhi(phi1, phi2); + float dPhi = lst::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 1e-3f) @@ -306,14 +306,14 @@ namespace SDL { struct crossCleanpLS { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::ObjectRanges rangesInGPU, - struct SDL::PixelTriplets pixelTripletsInGPU, - struct SDL::TrackCandidates trackCandidatesInGPU, - struct SDL::Segments segmentsInGPU, - struct SDL::MiniDoublets mdsInGPU, - struct SDL::Hits hitsInGPU, - struct SDL::Quintuplets quintupletsInGPU) const { + struct lst::Modules modulesInGPU, + struct lst::ObjectRanges rangesInGPU, + struct lst::PixelTriplets pixelTripletsInGPU, + struct lst::TrackCandidates trackCandidatesInGPU, + struct lst::Segments segmentsInGPU, + struct lst::MiniDoublets mdsInGPU, + struct lst::Hits hitsInGPU, + struct lst::Quintuplets quintupletsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -339,7 +339,7 @@ namespace SDL { float eta2 = __H2F(quintupletsInGPU.eta[quintupletIndex]); float phi2 = __H2F(quintupletsInGPU.phi[quintupletIndex]); float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = SDL::calculate_dPhi(phi1, phi2); + float dPhi = lst::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 1e-3f) @@ -356,7 +356,7 @@ namespace SDL { float eta2 = __H2F(pixelTripletsInGPU.eta_pix[pT3Index]); float phi2 = __H2F(pixelTripletsInGPU.phi_pix[pT3Index]); float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = SDL::calculate_dPhi(phi1, phi2); + float dPhi = lst::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 0.000001f) @@ -373,7 +373,7 @@ namespace SDL { float eta2 = segmentsInGPU.eta[pLSIndex - prefix]; float phi2 = segmentsInGPU.phi[pLSIndex - prefix]; float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = SDL::calculate_dPhi(phi1, phi2); + float dPhi = lst::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 0.000001f) @@ -388,10 +388,10 @@ namespace SDL { template ALPAKA_FN_ACC void operator()(TAcc const& acc, uint16_t nLowerModules, - struct SDL::PixelTriplets pixelTripletsInGPU, - struct SDL::TrackCandidates trackCandidatesInGPU, - struct SDL::Segments segmentsInGPU, - struct SDL::ObjectRanges rangesInGPU) const { + struct lst::PixelTriplets pixelTripletsInGPU, + struct lst::TrackCandidates trackCandidatesInGPU, + struct lst::Segments segmentsInGPU, + struct lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -440,9 +440,9 @@ namespace SDL { template ALPAKA_FN_ACC void operator()(TAcc const& acc, uint16_t nLowerModules, - struct SDL::Quintuplets quintupletsInGPU, - struct SDL::TrackCandidates trackCandidatesInGPU, - struct SDL::ObjectRanges rangesInGPU) const { + struct lst::Quintuplets quintupletsInGPU, + struct lst::TrackCandidates trackCandidatesInGPU, + struct lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -494,8 +494,8 @@ namespace SDL { template ALPAKA_FN_ACC void operator()(TAcc const& acc, uint16_t nLowerModules, - struct SDL::TrackCandidates trackCandidatesInGPU, - struct SDL::Segments segmentsInGPU, + struct lst::TrackCandidates trackCandidatesInGPU, + struct lst::Segments segmentsInGPU, bool tc_pls_triplets) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -533,10 +533,10 @@ namespace SDL { template ALPAKA_FN_ACC void operator()(TAcc const& acc, uint16_t nLowerModules, - struct SDL::PixelQuintuplets pixelQuintupletsInGPU, - struct SDL::TrackCandidates trackCandidatesInGPU, - struct SDL::Segments segmentsInGPU, - struct SDL::ObjectRanges rangesInGPU) const { + struct lst::PixelQuintuplets pixelQuintupletsInGPU, + struct lst::TrackCandidates trackCandidatesInGPU, + struct lst::Segments segmentsInGPU, + struct lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -581,5 +581,5 @@ namespace SDL { } } }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index 3362fdaa97991..7375a68db26c8 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -9,7 +9,7 @@ #include "Hit.h" #include "ObjectRanges.h" -namespace SDL { +namespace lst { struct Triplets { unsigned int* segmentIndices; uint16_t* lowerModuleIndices; //3 of them now @@ -152,10 +152,10 @@ namespace SDL { }; #ifdef CUT_VALUE_DEBUG - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTripletToMemory(struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, - struct SDL::Triplets& tripletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTripletToMemory(struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, + struct lst::Triplets& tripletsInGPU, unsigned int& innerSegmentIndex, unsigned int& outerSegmentIndex, uint16_t& innerInnerLowerModuleIndex, @@ -179,10 +179,10 @@ namespace SDL { float& betaInCut, unsigned int& tripletIndex) #else - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTripletToMemory(struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, - struct SDL::Triplets& tripletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTripletToMemory(struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, + struct lst::Triplets& tripletsInGPU, unsigned int& innerSegmentIndex, unsigned int& outerSegmentIndex, uint16_t& innerInnerLowerModuleIndex, @@ -240,9 +240,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRZConstraint(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& middleLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -300,9 +300,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPointingConstraintBBB(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& middleLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -314,8 +314,8 @@ namespace SDL { unsigned int& innerSegmentIndex, float& betaIn, float& betaInCut) { - bool isPSIn = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == SDL::PS); - bool isPSOut = (modulesInGPU.moduleType[outerOuterLowerModuleIndex] == SDL::PS); + bool isPSIn = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS); + bool isPSOut = (modulesInGPU.moduleType[outerOuterLowerModuleIndex] == lst::PS); float rtIn = mdsInGPU.anchorRt[firstMDIndex]; float rtMid = mdsInGPU.anchorRt[secondMDIndex]; @@ -326,16 +326,16 @@ namespace SDL { zOut = mdsInGPU.anchorZ[thirdMDIndex]; float alpha1GeVOut = - alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)); float rtRatio_OutIn = rtOut / rtIn; // Outer segment beginning rt divided by inner segment beginning rt; float dzDrtScale = alpaka::math::tan(acc, alpha1GeVOut) / alpha1GeVOut; // The track can bend in r-z plane slightly - float zpitchIn = (isPSIn ? SDL::pixelPSZpitch : SDL::strip2SZpitch); - float zpitchOut = (isPSOut ? SDL::pixelPSZpitch : SDL::strip2SZpitch); + float zpitchIn = (isPSIn ? lst::pixelPSZpitch : lst::strip2SZpitch); + float zpitchOut = (isPSOut ? lst::pixelPSZpitch : lst::strip2SZpitch); const float zHi = - zIn + (zIn + SDL::deltaZLum) * (rtRatio_OutIn - 1.f) * (zIn < 0.f ? 1.f : dzDrtScale) + (zpitchIn + zpitchOut); - const float zLo = zIn + (zIn - SDL::deltaZLum) * (rtRatio_OutIn - 1.f) * (zIn > 0.f ? 1.f : dzDrtScale) - + zIn + (zIn + lst::deltaZLum) * (rtRatio_OutIn - 1.f) * (zIn < 0.f ? 1.f : dzDrtScale) + (zpitchIn + zpitchOut); + const float zLo = zIn + (zIn - lst::deltaZLum) * (rtRatio_OutIn - 1.f) * (zIn > 0.f ? 1.f : dzDrtScale) - (zpitchIn + zpitchOut); //slope-correction only on outer end //Cut 1 - z compatibility @@ -354,7 +354,7 @@ namespace SDL { float dzErr = (zpitchIn + zpitchOut) * (zpitchIn + zpitchOut) * 2.f; float sdlThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rtOut - rtIn) / 50.f) * (r3In / rtIn); - float sdlMuls2 = sdlThetaMulsF2 * 9.f / (SDL::ptCut * SDL::ptCut) * 16.f; + float sdlMuls2 = sdlThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; dzErr += sdlMuls2 * drt_OutIn * drt_OutIn / 3.f * coshEta * coshEta; dzErr = alpaka::math::sqrt(acc, dzErr); @@ -362,7 +362,7 @@ namespace SDL { const float dzMean = dz_InSeg / drt_InSeg * drt_OutIn; const float zWindow = dzErr / drt_InSeg * drt_OutIn + - (zpitchIn + zpitchOut); //FIXME for SDL::ptCut lower than ~0.8 need to add curv path correction + (zpitchIn + zpitchOut); //FIXME for lst::ptCut lower than ~0.8 need to add curv path correction const float zLoPointed = zIn + dzMean * (zIn > 0.f ? 1.f : dzDrtScale) - zWindow; const float zHiPointed = zIn + dzMean * (zIn < 0.f ? 1.f : dzDrtScale) + zWindow; @@ -376,7 +376,7 @@ namespace SDL { float alpha_InLo = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); float tl_axis_x = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = alpha_InLo - SDL::phi_mpi_pi(acc, SDL::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = alpha_InLo - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); //beta computation float drt_tl_axis = alpaka::math::sqrt(acc, tl_axis_x * tl_axis_x + tl_axis_y * tl_axis_y); @@ -390,7 +390,7 @@ namespace SDL { (mdsInGPU.anchorY[secondMDIndex] - mdsInGPU.anchorY[firstMDIndex])); betaInCut = alpaka::math::asin( - acc, alpaka::math::min(acc, (-rt_InSeg + drt_tl_axis) * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)) + + acc, alpaka::math::min(acc, (-rt_InSeg + drt_tl_axis) * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + (0.02f / drt_InSeg); //Cut #3: first beta cut @@ -399,9 +399,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPointingConstraintBBE(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& middleLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -415,8 +415,8 @@ namespace SDL { unsigned int& outerSegmentIndex, float& betaIn, float& betaInCut) { - bool isPSIn = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == SDL::PS); - bool isPSOut = (modulesInGPU.moduleType[outerOuterLowerModuleIndex] == SDL::PS); + bool isPSIn = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS); + bool isPSOut = (modulesInGPU.moduleType[outerOuterLowerModuleIndex] == lst::PS); float rtIn = mdsInGPU.anchorRt[firstMDIndex]; float rtMid = mdsInGPU.anchorRt[secondMDIndex]; @@ -427,29 +427,29 @@ namespace SDL { zOut = mdsInGPU.anchorZ[thirdMDIndex]; float alpha1GeV_OutLo = - alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)); float dzDrtScale = alpaka::math::tan(acc, alpha1GeV_OutLo) / alpha1GeV_OutLo; // The track can bend in r-z plane slightly - float zpitchIn = (isPSIn ? SDL::pixelPSZpitch : SDL::strip2SZpitch); - float zpitchOut = (isPSOut ? SDL::pixelPSZpitch : SDL::strip2SZpitch); + float zpitchIn = (isPSIn ? lst::pixelPSZpitch : lst::strip2SZpitch); + float zpitchOut = (isPSOut ? lst::pixelPSZpitch : lst::strip2SZpitch); float zGeom = zpitchIn + zpitchOut; // Cut #0: Preliminary (Only here in endcap case) if (zIn * zOut <= 0) return false; - float dLum = SDL::copysignf(SDL::deltaZLum, zIn); - bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerOuterLowerModuleIndex] == SDL::PS; - float rtGeom1 = isOutSgInnerMDPS ? SDL::pixelPSZpitch : SDL::strip2SZpitch; - float zGeom1 = SDL::copysignf(zGeom, zIn); + float dLum = lst::copysignf(lst::deltaZLum, zIn); + bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerOuterLowerModuleIndex] == lst::PS; + float rtGeom1 = isOutSgInnerMDPS ? lst::pixelPSZpitch : lst::strip2SZpitch; + float zGeom1 = lst::copysignf(zGeom, zIn); float rtLo = rtIn * (1.f + (zOut - zIn - zGeom1) / (zIn + zGeom1 + dLum) / dzDrtScale) - rtGeom1; //slope correction only on the lower end //Cut #1: rt condition float zInForHi = zIn - zGeom1 - dLum; if (zInForHi * zIn < 0) { - zInForHi = SDL::copysignf(0.1f, zIn); + zInForHi = lst::copysignf(0.1f, zIn); } float rtHi = rtIn * (1.f + (zOut - zIn + zGeom1) / zInForHi) + rtGeom1; @@ -467,12 +467,12 @@ namespace SDL { const float coshEta = dr3SDIn / drtSDIn; //direction estimate const float dzOutInAbs = alpaka::math::abs(acc, zOut - zIn); const float multDzDr = dzOutInAbs * coshEta / (coshEta * coshEta - 1.f); - const float zGeom1_another = SDL::pixelPSZpitch; + const float zGeom1_another = lst::pixelPSZpitch; const float kZ = (zOut - zIn) / dzSDIn; float drtErr = zGeom1_another * zGeom1_another * drtSDIn * drtSDIn / dzSDIn / dzSDIn * (1.f - 2.f * kZ + 2.f * kZ * kZ); const float sdlThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2 * (rtOut - rtIn) / 50.f) * (rIn / rtIn); - const float sdlMuls2 = sdlThetaMulsF2 * 9.f / (SDL::ptCut * SDL::ptCut) * 16.f; + const float sdlMuls2 = sdlThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; drtErr += sdlMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta; drtErr = alpaka::math::sqrt(acc, drtErr); @@ -489,7 +489,7 @@ namespace SDL { float tl_axis_x = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = sdIn_alpha - SDL::phi_mpi_pi(acc, SDL::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float betaInRHmin = betaIn; float betaInRHmax = betaIn; @@ -511,7 +511,7 @@ namespace SDL { float dr = alpaka::math::sqrt(acc, tl_axis_x * tl_axis_x + tl_axis_y * tl_axis_y); betaInCut = alpaka::math::asin( - acc, alpaka::math::min(acc, (-sdIn_dr + dr) * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)) + + acc, alpaka::math::min(acc, (-sdIn_dr + dr) * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + (0.02f / sdIn_d); //Cut #4: first beta cut @@ -520,9 +520,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPointingConstraintEEE(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& middleLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -544,7 +544,7 @@ namespace SDL { zOut = mdsInGPU.anchorZ[thirdMDIndex]; float alpha1GeV_Out = - alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)); float dzDrtScale = alpaka::math::tan(acc, alpha1GeV_Out) / alpha1GeV_Out; // The track can bend in r-z plane slightly @@ -553,13 +553,13 @@ namespace SDL { if (zIn * zOut <= 0) return false; - float dLum = SDL::copysignf(SDL::deltaZLum, zIn); - bool isOutSgOuterMDPS = modulesInGPU.moduleType[outerOuterLowerModuleIndex] == SDL::PS; - bool isInSgInnerMDPS = modulesInGPU.moduleType[innerInnerLowerModuleIndex] == SDL::PS; + float dLum = lst::copysignf(lst::deltaZLum, zIn); + bool isOutSgOuterMDPS = modulesInGPU.moduleType[outerOuterLowerModuleIndex] == lst::PS; + bool isInSgInnerMDPS = modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS; - float rtGeom = (isInSgInnerMDPS and isOutSgOuterMDPS) ? 2.f * SDL::pixelPSZpitch - : (isInSgInnerMDPS or isOutSgOuterMDPS) ? SDL::pixelPSZpitch + SDL::strip2SZpitch - : 2.f * SDL::strip2SZpitch; + float rtGeom = (isInSgInnerMDPS and isOutSgOuterMDPS) ? 2.f * lst::pixelPSZpitch + : (isInSgInnerMDPS or isOutSgOuterMDPS) ? lst::pixelPSZpitch + lst::strip2SZpitch + : 2.f * lst::strip2SZpitch; float dz = zOut - zIn; const float rtLo = rtIn * (1.f + dz / (zIn + dLum) / dzDrtScale) - rtGeom; //slope correction only on the lower end @@ -569,7 +569,7 @@ namespace SDL { if ((rtOut < rtLo) || (rtOut > rtHi)) return false; - bool isInSgOuterMDPS = modulesInGPU.moduleType[outerOuterLowerModuleIndex] == SDL::PS; + bool isInSgOuterMDPS = modulesInGPU.moduleType[outerOuterLowerModuleIndex] == lst::PS; float drtSDIn = rtMid - rtIn; float dzSDIn = zMid - zIn; @@ -583,11 +583,11 @@ namespace SDL { float kZ = (zOut - zIn) / dzSDIn; float sdlThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rtOut - rtIn) / 50.f); - float sdlMuls2 = sdlThetaMulsF2 * 9.f / (SDL::ptCut * SDL::ptCut) * 16.f; + float sdlMuls2 = sdlThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; float drtErr = alpaka::math::sqrt( acc, - SDL::pixelPSZpitch * SDL::pixelPSZpitch * 2.f / (dzSDIn * dzSDIn) * (dzOutInAbs * dzOutInAbs) + + lst::pixelPSZpitch * lst::pixelPSZpitch * 2.f / (dzSDIn * dzSDIn) * (dzOutInAbs * dzOutInAbs) + sdlMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta); float drtMean = drtSDIn * dzOutInAbs / alpaka::math::abs(acc, dzSDIn); @@ -611,7 +611,7 @@ namespace SDL { float tl_axis_x = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = sdIn_alpha - SDL::phi_mpi_pi(acc, SDL::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float sdIn_alphaRHmin = __H2F(segmentsInGPU.dPhiChangeMins[innerSegmentIndex]); float sdIn_alphaRHmax = __H2F(segmentsInGPU.dPhiChangeMaxs[innerSegmentIndex]); @@ -634,7 +634,7 @@ namespace SDL { float dr = alpaka::math::sqrt(acc, tl_axis_x * tl_axis_x + tl_axis_y * tl_axis_y); betaInCut = alpaka::math::asin( - acc, alpaka::math::min(acc, (-sdIn_dr + dr) * SDL::k2Rinv1GeVf / SDL::ptCut, SDL::sinAlphaMax)) + + acc, alpaka::math::min(acc, (-sdIn_dr + dr) * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + (0.02f / sdIn_d); //Cut #4: first beta cut @@ -643,9 +643,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPointingConstraint(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& middleLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -663,8 +663,8 @@ namespace SDL { short middleLowerModuleSubdet = modulesInGPU.subdets[middleLowerModuleIndex]; short outerOuterLowerModuleSubdet = modulesInGPU.subdets[outerOuterLowerModuleIndex]; - if (innerInnerLowerModuleSubdet == SDL::Barrel and middleLowerModuleSubdet == SDL::Barrel and - outerOuterLowerModuleSubdet == SDL::Barrel) { + if (innerInnerLowerModuleSubdet == lst::Barrel and middleLowerModuleSubdet == lst::Barrel and + outerOuterLowerModuleSubdet == lst::Barrel) { return passPointingConstraintBBB(acc, modulesInGPU, mdsInGPU, @@ -680,8 +680,8 @@ namespace SDL { innerSegmentIndex, betaIn, betaInCut); - } else if (innerInnerLowerModuleSubdet == SDL::Barrel and middleLowerModuleSubdet == SDL::Barrel and - outerOuterLowerModuleSubdet == SDL::Endcap) { + } else if (innerInnerLowerModuleSubdet == lst::Barrel and middleLowerModuleSubdet == lst::Barrel and + outerOuterLowerModuleSubdet == lst::Endcap) { return passPointingConstraintBBE(acc, modulesInGPU, mdsInGPU, @@ -699,8 +699,8 @@ namespace SDL { outerSegmentIndex, betaIn, betaInCut); - } else if (innerInnerLowerModuleSubdet == SDL::Barrel and middleLowerModuleSubdet == SDL::Endcap and - outerOuterLowerModuleSubdet == SDL::Endcap) { + } else if (innerInnerLowerModuleSubdet == lst::Barrel and middleLowerModuleSubdet == lst::Endcap and + outerOuterLowerModuleSubdet == lst::Endcap) { return passPointingConstraintBBE(acc, modulesInGPU, mdsInGPU, @@ -721,8 +721,8 @@ namespace SDL { } - else if (innerInnerLowerModuleSubdet == SDL::Endcap and middleLowerModuleSubdet == SDL::Endcap and - outerOuterLowerModuleSubdet == SDL::Endcap) { + else if (innerInnerLowerModuleSubdet == lst::Endcap and middleLowerModuleSubdet == lst::Endcap and + outerOuterLowerModuleSubdet == lst::Endcap) { return passPointingConstraintEEE(acc, modulesInGPU, mdsInGPU, @@ -780,9 +780,9 @@ namespace SDL { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runTripletConstraintsAndAlgo(TAcc const& acc, - struct SDL::Modules& modulesInGPU, - struct SDL::MiniDoublets& mdsInGPU, - struct SDL::Segments& segmentsInGPU, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, uint16_t& innerInnerLowerModuleIndex, uint16_t& middleLowerModuleIndex, uint16_t& outerOuterLowerModuleIndex, @@ -856,11 +856,11 @@ namespace SDL { struct createTripletsInGPUv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::MiniDoublets mdsInGPU, - struct SDL::Segments segmentsInGPU, - struct SDL::Triplets tripletsInGPU, - struct SDL::ObjectRanges rangesInGPU, + struct lst::Modules modulesInGPU, + struct lst::MiniDoublets mdsInGPU, + struct lst::Segments segmentsInGPU, + struct lst::Triplets tripletsInGPU, + struct lst::ObjectRanges rangesInGPU, uint16_t* index_gpu, uint16_t nonZeroModules) const { auto const globalThreadIdx = alpaka::getIdx(acc); @@ -989,9 +989,9 @@ namespace SDL { struct createTripletArrayRanges { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::ObjectRanges rangesInGPU, - struct SDL::Segments segmentsInGPU) const { + struct lst::Modules modulesInGPU, + struct lst::ObjectRanges rangesInGPU, + struct lst::Segments segmentsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -1086,9 +1086,9 @@ namespace SDL { struct addTripletRangesToEventExplicit { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct SDL::Modules modulesInGPU, - struct SDL::Triplets tripletsInGPU, - struct SDL::ObjectRanges rangesInGPU) const { + struct lst::Modules modulesInGPU, + struct lst::Triplets tripletsInGPU, + struct lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -1103,5 +1103,5 @@ namespace SDL { } } }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/standalone/bin/sdl.cc b/RecoTracker/LSTCore/standalone/bin/sdl.cc index 498b58ea8731a..3795cdc15bc4f 100644 --- a/RecoTracker/LSTCore/standalone/bin/sdl.cc +++ b/RecoTracker/LSTCore/standalone/bin/sdl.cc @@ -304,11 +304,11 @@ void run_sdl() { queues.push_back(Queue(devAcc)); } - // Load various maps used in the SDL reconstruction + // Load various maps used in the lst reconstruction TStopwatch full_timer; full_timer.Start(); - auto hostESData = SDL::loadAndFillESHost(); - auto deviceESData = cms::alpakatools::CopyToDevice>::copyAsync(queues[0], *hostESData.get()); + auto hostESData = lst::loadAndFillESHost(); + auto deviceESData = cms::alpakatools::CopyToDevice>::copyAsync(queues[0], *hostESData.get()); float timeForMapLoading = full_timer.RealTime() * 1000; if (ana.do_write_ntuple) { @@ -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); + lst::Event *event = new lst::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 faccf6b7a25c3..76cfa9760b71a 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc +++ b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.cc @@ -8,8 +8,8 @@ using namespace ALPAKA_ACCELERATOR_NAMESPACE; //____________________________________________________________________________________________ std::tuple, std::vector> convertHitsToHitIdxsAndHitTypes( - SDL::Event* event, std::vector hits) { - SDL::Hits const* hitsEvt = event->getHits()->data(); + lst::Event* event, std::vector hits) { + lst::Hits const* hitsEvt = event->getHits()->data(); std::vector hitidxs; std::vector hittypes; for (auto& hit : hits) { @@ -27,11 +27,11 @@ std::tuple, std::vector> convertHitsToHi // =============== //____________________________________________________________________________________________ -std::vector getPixelHitsFrompLS(SDL::Event* event, unsigned int pLS) { - SDL::Segments const* segments = event->getSegments()->data(); - SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); - SDL::ObjectRanges const* rangesEvt = event->getRanges()->data(); - SDL::Modules const* modulesEvt = event->getModules()->data(); +std::vector getPixelHitsFrompLS(lst::Event* event, unsigned int pLS) { + lst::Segments const* segments = event->getSegments()->data(); + lst::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + lst::ObjectRanges const* rangesEvt = event->getRanges()->data(); + lst::Modules const* modulesEvt = event->getModules()->data(); const unsigned int pLS_offset = rangesEvt->segmentModuleIndices[*(modulesEvt->nLowerModules)]; unsigned int MD_1 = segments->mdIndices[2 * (pLS + pLS_offset)]; unsigned int MD_2 = segments->mdIndices[2 * (pLS + pLS_offset) + 1]; @@ -46,8 +46,8 @@ std::vector getPixelHitsFrompLS(SDL::Event* event, unsigned } //____________________________________________________________________________________________ -std::vector getPixelHitIdxsFrompLS(SDL::Event* event, unsigned int pLS) { - SDL::Hits const* hitsEvt = event->getHits()->data(); +std::vector getPixelHitIdxsFrompLS(lst::Event* event, unsigned int pLS) { + lst::Hits const* hitsEvt = event->getHits()->data(); std::vector hits = getPixelHitsFrompLS(event, pLS); std::vector hitidxs; for (auto& hit : hits) @@ -56,14 +56,14 @@ std::vector getPixelHitIdxsFrompLS(SDL::Event* event, unsig } //____________________________________________________________________________________________ -std::vector getPixelHitTypesFrompLS(SDL::Event* event, unsigned int pLS) { +std::vector getPixelHitTypesFrompLS(lst::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(lst::Event* event, unsigned pLS) { return convertHitsToHitIdxsAndHitTypes(event, getPixelHitsFrompLS(event, pLS)); } @@ -73,15 +73,15 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getHitsFromMD(SDL::Event* event, unsigned int MD) { - SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); +std::vector getHitsFromMD(lst::Event* event, unsigned int MD) { + lst::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); unsigned int hit_1 = miniDoublets->anchorHitIndices[MD]; unsigned int hit_2 = miniDoublets->outerHitIndices[MD]; return {hit_1, hit_2}; } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFromMD(SDL::Event* event, +std::tuple, std::vector> getHitIdxsAndHitTypesFromMD(lst::Event* event, unsigned MD) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromMD(event, MD)); } @@ -91,15 +91,15 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getMDsFromLS(SDL::Event* event, unsigned int LS) { - SDL::Segments const* segments = event->getSegments()->data(); +std::vector getMDsFromLS(lst::Event* event, unsigned int LS) { + lst::Segments const* segments = event->getSegments()->data(); unsigned int MD_1 = segments->mdIndices[2 * LS]; unsigned int MD_2 = segments->mdIndices[2 * LS + 1]; return {MD_1, MD_2}; } //____________________________________________________________________________________________ -std::vector getHitsFromLS(SDL::Event* event, unsigned int LS) { +std::vector getHitsFromLS(lst::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 L } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFromLS(SDL::Event* event, +std::tuple, std::vector> getHitIdxsAndHitTypesFromLS(lst::Event* event, unsigned LS) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromLS(event, LS)); } @@ -117,15 +117,15 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getLSsFromT3(SDL::Event* event, unsigned int T3) { - SDL::Triplets const* triplets = event->getTriplets()->data(); +std::vector getLSsFromT3(lst::Event* event, unsigned int T3) { + lst::Triplets const* triplets = event->getTriplets()->data(); unsigned int LS_1 = triplets->segmentIndices[2 * T3]; unsigned int LS_2 = triplets->segmentIndices[2 * T3 + 1]; return {LS_1, LS_2}; } //____________________________________________________________________________________________ -std::vector getMDsFromT3(SDL::Event* event, unsigned int T3) { +std::vector getMDsFromT3(lst::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 T3 } //____________________________________________________________________________________________ -std::vector getHitsFromT3(SDL::Event* event, unsigned int T3) { +std::vector getHitsFromT3(lst::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 T } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFromT3(SDL::Event* event, +std::tuple, std::vector> getHitIdxsAndHitTypesFromT3(lst::Event* event, unsigned T3) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromT3(event, T3)); } @@ -152,15 +152,15 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getT3sFromT5(SDL::Event* event, unsigned int T5) { - SDL::Quintuplets const* quintuplets = event->getQuintuplets()->data(); +std::vector getT3sFromT5(lst::Event* event, unsigned int T5) { + lst::Quintuplets const* quintuplets = event->getQuintuplets()->data(); unsigned int T3_1 = quintuplets->tripletIndices[2 * T5]; unsigned int T3_2 = quintuplets->tripletIndices[2 * T5 + 1]; return {T3_1, T3_2}; } //____________________________________________________________________________________________ -std::vector getLSsFromT5(SDL::Event* event, unsigned int T5) { +std::vector getLSsFromT5(lst::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 T5 } //____________________________________________________________________________________________ -std::vector getMDsFromT5(SDL::Event* event, unsigned int T5) { +std::vector getMDsFromT5(lst::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 T5 } //____________________________________________________________________________________________ -std::vector getHitsFromT5(SDL::Event* event, unsigned int T5) { +std::vector getHitsFromT5(lst::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,8 +189,8 @@ std::vector getHitsFromT5(SDL::Event* event, unsigned int T } //____________________________________________________________________________________________ -std::vector getHitIdxsFromT5(SDL::Event* event, unsigned int T5) { - SDL::Hits const* hitsEvt = event->getHits()->data(); +std::vector getHitIdxsFromT5(lst::Event* event, unsigned int T5) { + lst::Hits const* hitsEvt = event->getHits()->data(); std::vector hits = getHitsFromT5(event, T5); std::vector hitidxs; for (auto& hit : hits) @@ -198,23 +198,23 @@ std::vector getHitIdxsFromT5(SDL::Event* event, unsigned in return hitidxs; } //____________________________________________________________________________________________ -std::vector getModuleIdxsFromT5(SDL::Event* event, unsigned int T5) { +std::vector getModuleIdxsFromT5(lst::Event* event, unsigned int T5) { std::vector hits = getHitsFromT5(event, T5); std::vector module_idxs; - SDL::Hits const* hitsEvt = event->getHits()->data(); + lst::Hits const* hitsEvt = event->getHits()->data(); for (auto& hitIdx : hits) { module_idxs.push_back(hitsEvt->moduleIndices[hitIdx]); } return module_idxs; } //____________________________________________________________________________________________ -std::vector getHitTypesFromT5(SDL::Event* event, unsigned int T5) { +std::vector getHitTypesFromT5(lst::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(lst::Event* event, unsigned T5) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFromT5(event, T5)); } @@ -224,46 +224,46 @@ std::tuple, std::vector> getHitIdxsAndHi // =============== //____________________________________________________________________________________________ -unsigned int getPixelLSFrompT3(SDL::Event* event, unsigned int pT3) { - SDL::PixelTriplets const* pixelTriplets = event->getPixelTriplets()->data(); - SDL::ObjectRanges const* rangesEvt = event->getRanges()->data(); - SDL::Modules const* modulesEvt = event->getModules()->data(); +unsigned int getPixelLSFrompT3(lst::Event* event, unsigned int pT3) { + lst::PixelTriplets const* pixelTriplets = event->getPixelTriplets()->data(); + lst::ObjectRanges const* rangesEvt = event->getRanges()->data(); + lst::Modules const* modulesEvt = event->getModules()->data(); const unsigned int pLS_offset = rangesEvt->segmentModuleIndices[*(modulesEvt->nLowerModules)]; return pixelTriplets->pixelSegmentIndices[pT3] - pLS_offset; } //____________________________________________________________________________________________ -unsigned int getT3FrompT3(SDL::Event* event, unsigned int pT3) { - SDL::PixelTriplets const* pixelTriplets = event->getPixelTriplets()->data(); +unsigned int getT3FrompT3(lst::Event* event, unsigned int pT3) { + lst::PixelTriplets const* pixelTriplets = event->getPixelTriplets()->data(); return pixelTriplets->tripletIndices[pT3]; } //____________________________________________________________________________________________ -std::vector getLSsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getLSsFrompT3(lst::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(lst::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(lst::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(lst::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(lst::Event* event, unsigned int pT3) { unsigned int pLS = getPixelLSFrompT3(event, pT3); unsigned int T3 = getT3FrompT3(event, pT3); std::vector pixelHits = getPixelHitsFrompLS(event, pLS); @@ -273,8 +273,8 @@ std::vector getHitsFrompT3(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::vector getHitIdxsFrompT3(SDL::Event* event, unsigned int pT3) { - SDL::Hits const* hitsEvt = event->getHits()->data(); +std::vector getHitIdxsFrompT3(lst::Event* event, unsigned int pT3) { + lst::Hits const* hitsEvt = event->getHits()->data(); std::vector hits = getHitsFrompT3(event, pT3); std::vector hitidxs; for (auto& hit : hits) @@ -282,17 +282,17 @@ std::vector getHitIdxsFrompT3(SDL::Event* event, unsigned i return hitidxs; } //____________________________________________________________________________________________ -std::vector getModuleIdxsFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getModuleIdxsFrompT3(lst::Event* event, unsigned int pT3) { std::vector hits = getOuterTrackerHitsFrompT3(event, pT3); std::vector module_idxs; - SDL::Hits const* hitsEvt = event->getHits()->data(); + lst::Hits const* hitsEvt = event->getHits()->data(); for (auto& hitIdx : hits) { module_idxs.push_back(hitsEvt->moduleIndices[hitIdx]); } return module_idxs; } //____________________________________________________________________________________________ -std::vector getHitTypesFrompT3(SDL::Event* event, unsigned int pT3) { +std::vector getHitTypesFrompT3(lst::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(lst::Event* event, unsigned pT3) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFrompT3(event, pT3)); } @@ -313,52 +313,52 @@ std::tuple, std::vector> getHitIdxsAndHi // =============== //____________________________________________________________________________________________ -unsigned int getPixelLSFrompT5(SDL::Event* event, unsigned int pT5) { - SDL::PixelQuintuplets const* pixelQuintuplets = event->getPixelQuintuplets()->data(); - SDL::ObjectRanges const* rangesEvt = event->getRanges()->data(); - SDL::Modules const* modulesEvt = event->getModules()->data(); +unsigned int getPixelLSFrompT5(lst::Event* event, unsigned int pT5) { + lst::PixelQuintuplets const* pixelQuintuplets = event->getPixelQuintuplets()->data(); + lst::ObjectRanges const* rangesEvt = event->getRanges()->data(); + lst::Modules const* modulesEvt = event->getModules()->data(); const unsigned int pLS_offset = rangesEvt->segmentModuleIndices[*(modulesEvt->nLowerModules)]; return pixelQuintuplets->pixelIndices[pT5] - pLS_offset; } //____________________________________________________________________________________________ -unsigned int getT5FrompT5(SDL::Event* event, unsigned int pT5) { - SDL::PixelQuintuplets const* pixelQuintuplets = event->getPixelQuintuplets()->data(); +unsigned int getT5FrompT5(lst::Event* event, unsigned int pT5) { + lst::PixelQuintuplets const* pixelQuintuplets = event->getPixelQuintuplets()->data(); return pixelQuintuplets->T5Indices[pT5]; } //____________________________________________________________________________________________ -std::vector getT3sFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getT3sFrompT5(lst::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(lst::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(lst::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(lst::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(lst::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(lst::Event* event, unsigned int pT5) { unsigned int pLS = getPixelLSFrompT5(event, pT5); unsigned int T5 = getT5FrompT5(event, pT5); std::vector pixelHits = getPixelHitsFrompLS(event, pLS); @@ -368,8 +368,8 @@ std::vector getHitsFrompT5(SDL::Event* event, unsigned int } //____________________________________________________________________________________________ -std::vector getHitIdxsFrompT5(SDL::Event* event, unsigned int pT5) { - SDL::Hits const* hitsEvt = event->getHits()->data(); +std::vector getHitIdxsFrompT5(lst::Event* event, unsigned int pT5) { + lst::Hits const* hitsEvt = event->getHits()->data(); std::vector hits = getHitsFrompT5(event, pT5); std::vector hitidxs; for (auto& hit : hits) @@ -378,10 +378,10 @@ std::vector getHitIdxsFrompT5(SDL::Event* event, unsigned i } //____________________________________________________________________________________________ -std::vector getModuleIdxsFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getModuleIdxsFrompT5(lst::Event* event, unsigned int pT5) { std::vector hits = getOuterTrackerHitsFrompT5(event, pT5); std::vector module_idxs; - SDL::Hits const* hitsEvt = event->getHits()->data(); + lst::Hits const* hitsEvt = event->getHits()->data(); for (auto& hitIdx : hits) { module_idxs.push_back(hitsEvt->moduleIndices[hitIdx]); } @@ -389,7 +389,7 @@ std::vector getModuleIdxsFrompT5(SDL::Event* event, unsigne } //____________________________________________________________________________________________ -std::vector getHitTypesFrompT5(SDL::Event* event, unsigned int pT5) { +std::vector getHitTypesFrompT5(lst::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(lst::Event* event, unsigned pT5) { return convertHitsToHitIdxsAndHitTypes(event, getHitsFrompT5(event, pT5)); } @@ -410,9 +410,9 @@ std::tuple, std::vector> getHitIdxsAndHi // ============== //____________________________________________________________________________________________ -std::vector getLSsFromTC(SDL::Event* event, unsigned int TC) { +std::vector getLSsFromTC(lst::Event* event, unsigned int TC) { // Get the type of the track candidate - SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + lst::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); short type = trackCandidates->trackCandidateType[TC]; unsigned int objidx = trackCandidates->directObjectIndices[TC]; switch (type) { @@ -432,10 +432,10 @@ std::vector getLSsFromTC(SDL::Event* event, unsigned int TC } //____________________________________________________________________________________________ -std::tuple, std::vector> getHitIdxsAndHitTypesFromTC(SDL::Event* event, +std::tuple, std::vector> getHitIdxsAndHitTypesFromTC(lst::Event* event, unsigned TC) { // Get the type of the track candidate - SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + lst::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); short type = trackCandidates->trackCandidateType[TC]; unsigned int objidx = trackCandidates->directObjectIndices[TC]; switch (type) { diff --git a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h index ecdb83bd3fce7..7e96b3b07a9d1 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h +++ b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h @@ -5,83 +5,83 @@ #include #include "Event.h" -using SDLEvent = SDL::Event; +using lstEvent = lst::Event; enum { kpT5 = 7, kpT3 = 5, kT5 = 4, kpLS = 8 }; // ----* Hit *---- std::tuple, std::vector> convertHitsToHitIdxsAndHitTypes( - SDLEvent* event, std::vector hits); + lstEvent* 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, +std::vector getPixelHitsFrompLS(lstEvent* event, unsigned int pLS); +std::vector getPixelHitIdxsFrompLS(lstEvent* event, unsigned int pLS); +std::vector getPixelHitTypesFrompLS(lstEvent* event, unsigned int pLS); +std::tuple, std::vector> getHitIdxsAndHitTypesFrompLS(lstEvent* event, unsigned pLS); // ----* MD *---- -std::vector getHitsFromMD(SDLEvent* event, unsigned int MD); -std::tuple, std::vector> getHitIdxsAndHitTypesFromMD(SDLEvent* event, +std::vector getHitsFromMD(lstEvent* event, unsigned int MD); +std::tuple, std::vector> getHitIdxsAndHitTypesFromMD(lstEvent* 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, +std::vector getMDsFromLS(lstEvent* event, unsigned int LS); +std::vector getHitsFromLS(lstEvent* event, unsigned int LS); +std::tuple, std::vector> getHitIdxsAndHitTypesFromLS(lstEvent* 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, +std::vector getLSsFromT3(lstEvent* event, unsigned int T3); +std::vector getMDsFromT3(lstEvent* event, unsigned int T3); +std::vector getHitsFromT3(lstEvent* event, unsigned int T3); +std::tuple, std::vector> getHitIdxsAndHitTypesFromT3(lstEvent* event, unsigned T3); // ----* 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(SDLEvent* event, +std::vector getT3sFromT5(lstEvent* event, unsigned int T5); +std::vector getLSsFromT5(lstEvent* event, unsigned int T5); +std::vector getMDsFromT5(lstEvent* event, unsigned int T5); +std::vector getHitsFromT5(lstEvent* event, unsigned int T5); +std::vector getHitIdxsFromT5(lstEvent* event, unsigned int T5); +std::vector getHitTypesFromT5(lstEvent* event, unsigned int T5); +std::vector getModuleIdxsFromT5(lstEvent* event, unsigned int T5); +std::tuple, std::vector> getHitIdxsAndHitTypesFromT5(lstEvent* 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 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 int getPixelLSFrompT3(lstEvent* event, unsigned int pT3); +unsigned int getT3FrompT3(lstEvent* event, unsigned int pT3); +std::vector getLSsFrompT3(lstEvent* event, unsigned int pT3); +std::vector getMDsFrompT3(lstEvent* event, unsigned int pT3); +std::vector getOuterTrackerHitsFrompT3(lstEvent* event, unsigned int pT3); +std::vector getPixelHitsFrompT3(lstEvent* event, unsigned int pT3); +std::vector getHitsFrompT3(lstEvent* event, unsigned int pT3); +std::vector getHitIdxsFrompT3(lstEvent* event, unsigned int pT3); +std::vector getHitTypesFrompT3(lstEvent* event, unsigned int pT3); +std::vector getModuleIdxsFrompT3(lstEvent* event, unsigned int pT3); +std::tuple, std::vector> getHitIdxsAndHitTypesFrompT3(lstEvent* event, unsigned pT3); // ----* pT5 *---- -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(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 int getPixelLSFrompT5(lstEvent* event, unsigned int pT5); +unsigned int getT5FrompT5(lstEvent* event, unsigned int pT5); +std::vector getT3sFrompT5(lstEvent* event, unsigned int pT5); +std::vector getLSsFrompT5(lstEvent* event, unsigned int pT5); +std::vector getMDsFrompT5(lstEvent* event, unsigned int pT5); +std::vector getOuterTrackerHitsFrompT5(lstEvent* event, unsigned int pT5); +std::vector getPixelHitsFrompT5(lstEvent* event, unsigned int pT5); +std::vector getHitsFrompT5(lstEvent* event, unsigned int pT5); +std::vector getHitIdxsFrompT5(lstEvent* event, unsigned int pT5); +std::vector getHitTypesFrompT5(lstEvent* event, unsigned int pT5); +std::vector getModuleIdxsFrompT5(lstEvent* event, unsigned int pT5); +std::tuple, std::vector> getHitIdxsAndHitTypesFrompT5(lstEvent* 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, +std::vector getLSsFromTC(lstEvent* event, unsigned int TC); +std::vector getHitsFromTC(lstEvent* event, unsigned int TC); +std::tuple, std::vector> getHitIdxsAndHitTypesFromTC(lstEvent* event, unsigned int TC); #endif diff --git a/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h b/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h index e1404b7f8f9bc..6decf4bec42c8 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; + lst::ModuleConnectionMap moduleConnectiongMapLoose; // Boolean to trigger whether to run cut_value_ntupling bool do_cut_value_ntuple; diff --git a/RecoTracker/LSTCore/standalone/code/core/SDLMath.h b/RecoTracker/LSTCore/standalone/code/core/lstMath.h similarity index 98% rename from RecoTracker/LSTCore/standalone/code/core/SDLMath.h rename to RecoTracker/LSTCore/standalone/code/core/lstMath.h index a1bcaecea9b1a..8fd4db3f2bc72 100644 --- a/RecoTracker/LSTCore/standalone/code/core/SDLMath.h +++ b/RecoTracker/LSTCore/standalone/code/core/lstMath.h @@ -1,10 +1,10 @@ -#ifndef SDLMath_h -#define SDLMath_h +#ifndef lstMath_h +#define lstMath_h #include #include #include -namespace SDLMath { +namespace lstMath { inline float Phi_mpi_pi(float x) { if (std::isnan(x)) { std::cout << "MathUtil::Phi_mpi_pi() function called with NaN" << std::endl; @@ -209,5 +209,5 @@ namespace SDLMath { return Hit(x, y, 0); }; -} // namespace SDLMath +} // namespace lstMath #endif diff --git a/RecoTracker/LSTCore/standalone/code/core/trkCore.cc b/RecoTracker/LSTCore/standalone/code/core/trkCore.cc index db8b2f6ac142d..f9ee245c68041 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(lst::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(lst::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(lst::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(lst::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(lst::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(lst::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(lst::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(lst::Event *event, bool no_pls_dupclean, bool tc_pls_triplets) { TStopwatch my_timer; if (ana.verbose >= 2) std::cout << "Reco TrackCandidate start" << std::endl; @@ -501,13 +501,13 @@ float drfracSimHitConsistentWithHelix(int isimtrk, int isimhitidx) { int charge = trk.sim_q()[isimtrk]; // Construct helix object - SDLMath::Helix helix(pt, eta, phi, vx, vy, vz, charge); + lstMath::Helix helix(pt, eta, phi, vx, vy, vz, charge); return drfracSimHitConsistentWithHelix(helix, isimhitidx); } //__________________________________________________________________________________________ -float drfracSimHitConsistentWithHelix(SDLMath::Helix &helix, int isimhitidx) { +float drfracSimHitConsistentWithHelix(lstMath::Helix &helix, int isimhitidx) { // Sim hit vector std::vector point = {trk.simhit_x()[isimhitidx], trk.simhit_y()[isimhitidx], trk.simhit_z()[isimhitidx]}; @@ -539,13 +539,13 @@ float distxySimHitConsistentWithHelix(int isimtrk, int isimhitidx) { int charge = trk.sim_q()[isimtrk]; // Construct helix object - SDLMath::Helix helix(pt, eta, phi, vx, vy, vz, charge); + lstMath::Helix helix(pt, eta, phi, vx, vy, vz, charge); return distxySimHitConsistentWithHelix(helix, isimhitidx); } //__________________________________________________________________________________________ -float distxySimHitConsistentWithHelix(SDLMath::Helix &helix, int isimhitidx) { +float distxySimHitConsistentWithHelix(lstMath::Helix &helix, int isimhitidx) { // Sim hit vector std::vector point = {trk.simhit_x()[isimhitidx], trk.simhit_y()[isimhitidx], trk.simhit_z()[isimhitidx]}; @@ -839,7 +839,7 @@ void addInputsToLineSegmentTrackingPreLoad(std::vector> &out_ } //___________________________________________________________________________________________________________________________________________________________________________________________ -float addInputsToEventPreLoad(SDL::Event *event, +float addInputsToEventPreLoad(lst::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(lst::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(lst::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 b1900f068c5d5..ae145eb183b08 100644 --- a/RecoTracker/LSTCore/standalone/code/core/trkCore.h +++ b/RecoTracker/LSTCore/standalone/code/core/trkCore.h @@ -6,27 +6,27 @@ #include "TSystem.h" #include "AnalysisConfig.h" #include "ModuleConnectionMap.h" -#include "SDLMath.h" +#include "lstMath.h" #include "Event.h" #include #include -using SDLEvent = SDL::Event; +using lstEvent = lst::Event; // --------------------- ======================== --------------------- bool goodEvent(); -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(SDLEvent *event); -float runPixelQuintuplet(SDLEvent *event); -float runPixelLineSegment(SDLEvent *event, bool no_pls_dupclean); -float runpT3(SDLEvent *event); +float runMiniDoublet(lstEvent *event, int evt); +float runSegment(lstEvent *event); +float runT4(lstEvent *event); +float runT4x(lstEvent *event); +float runpT4(lstEvent *event); +float runT3(lstEvent *event); +float runTrackCandidate(lstEvent *event, bool no_pls_dupclean, bool tc_pls_triplets); +float runQuintuplet(lstEvent *event); +float runPixelQuintuplet(lstEvent *event); +float runPixelLineSegment(lstEvent *event, bool no_pls_dupclean); +float runpT3(lstEvent *event); // --------------------- ======================== --------------------- @@ -40,9 +40,9 @@ int getDenomSimTrkType(std::vector simidxs); // --------------------- ======================== --------------------- float drfracSimHitConsistentWithHelix(int isimtrk, int isimhitidx); -float drfracSimHitConsistentWithHelix(SDLMath::Helix &helix, int isimhitidx); +float drfracSimHitConsistentWithHelix(lstMath::Helix &helix, int isimhitidx); float distxySimHitConsistentWithHelix(int isimtrk, int isimhitidx); -float distxySimHitConsistentWithHelix(SDLMath::Helix &helix, int isimhitidx); +float distxySimHitConsistentWithHelix(lstMath::Helix &helix, int isimhitidx); TVector3 calculateR3FromPCA(const TVector3 &p3, const float dxy, const float dz); // --------------------- ======================== --------------------- @@ -71,7 +71,7 @@ void addInputsToLineSegmentTrackingPreLoad(std::vector> &out_ std::vector> &out_pixelType_vec, std::vector> &out_isQuad_vec); -float addInputsToEventPreLoad(SDLEvent *event, +float addInputsToEventPreLoad(lstEvent *event, bool useOMP, std::vector trkX, std::vector trkY, @@ -107,7 +107,7 @@ void writeMetaData(); // --------------------- ======================== --------------------- // DEPRECATED FUNCTION -float addInputsToLineSegmentTrackingUsingExplicitMemory(SDLEvent &event); -float addInputsToLineSegmentTracking(SDLEvent &event, bool useOMP); +float addInputsToLineSegmentTrackingUsingExplicitMemory(lstEvent &event); +float addInputsToLineSegmentTracking(lstEvent &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 7ffef21e9005a..4769a8423de71 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(lst::Event* event) { setOutputBranches(event); setOptionalOutputBranches(event); if (ana.gnn_ntuple) @@ -183,7 +183,7 @@ void createGnnNtupleBranches() { } //________________________________________________________________________________________________________________________________ -void setOutputBranches(SDL::Event* event) { +void setOutputBranches(lst::Event* event) { // ============ Sim tracks ============= int n_accepted_simtrk = 0; for (unsigned int isimtrk = 0; isimtrk < trk.sim_pt().size(); ++isimtrk) { @@ -226,7 +226,7 @@ void setOutputBranches(SDL::Event* event) { std::vector> tc_matched_simIdx; // ============ Track candidates ============= - SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + lst::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); unsigned int nTrackCandidates = *trackCandidates->nTrackCandidates; for (unsigned int idx = 0; idx < nTrackCandidates; idx++) { // Compute reco quantities of track candidate based on final object @@ -278,7 +278,7 @@ void setOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setOptionalOutputBranches(SDL::Event* event) { +void setOptionalOutputBranches(lst::Event* event) { #ifdef CUT_VALUE_DEBUG setPixelQuintupletOutputBranches(event); @@ -289,12 +289,12 @@ void setOptionalOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setPixelQuintupletOutputBranches(SDL::Event* event) { +void setPixelQuintupletOutputBranches(lst::Event* event) { // ============ pT5 ============= - SDL::PixelQuintuplets const* pixelQuintuplets = event->getPixelQuintuplets()->data(); - SDL::Quintuplets const* quintuplets = event->getQuintuplets()->data(); - SDL::Segments const* segments = event->getSegments()->data(); - SDL::Modules const* modules = event->getModules()->data(); + lst::PixelQuintuplets const* pixelQuintuplets = event->getPixelQuintuplets()->data(); + lst::Quintuplets const* quintuplets = event->getQuintuplets()->data(); + lst::Segments const* segments = event->getSegments()->data(); + lst::Modules const* modules = event->getModules()->data(); int n_accepted_simtrk = ana.tx->getBranch>("sim_TC_matched").size(); unsigned int nPixelQuintuplets = @@ -365,10 +365,10 @@ void setPixelQuintupletOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setQuintupletOutputBranches(SDL::Event* event) { - SDL::Quintuplets const* quintuplets = event->getQuintuplets()->data(); - SDL::ObjectRanges const* ranges = event->getRanges()->data(); - SDL::Modules const* modules = event->getModules()->data(); +void setQuintupletOutputBranches(lst::Event* event) { + lst::Quintuplets const* quintuplets = event->getQuintuplets()->data(); + lst::ObjectRanges const* ranges = event->getRanges()->data(); + lst::Modules const* modules = event->getModules()->data(); int n_accepted_simtrk = ana.tx->getBranch>("sim_TC_matched").size(); std::vector sim_t5_matched(n_accepted_simtrk); @@ -378,7 +378,7 @@ void setQuintupletOutputBranches(SDL::Event* event) { int nQuintuplets = quintuplets->nQuintuplets[lowerModuleIdx]; for (unsigned int idx = 0; idx < nQuintuplets; idx++) { unsigned int quintupletIndex = ranges->quintupletModuleIndices[lowerModuleIdx] + idx; - float pt = __H2F(quintuplets->innerRadius[quintupletIndex]) * SDL::k2Rinv1GeVf * 2; + float pt = __H2F(quintuplets->innerRadius[quintupletIndex]) * lst::k2Rinv1GeVf * 2; float eta = __H2F(quintuplets->eta[quintupletIndex]); float phi = __H2F(quintuplets->phi[quintupletIndex]); @@ -436,10 +436,10 @@ void setQuintupletOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setPixelTripletOutputBranches(SDL::Event* event) { - SDL::PixelTriplets const* pixelTriplets = event->getPixelTriplets()->data(); - SDL::Modules const* modules = event->getModules()->data(); - SDL::Segments const* segments = event->getSegments()->data(); +void setPixelTripletOutputBranches(lst::Event* event) { + lst::PixelTriplets const* pixelTriplets = event->getPixelTriplets()->data(); + lst::Modules const* modules = event->getModules()->data(); + lst::Segments const* segments = event->getSegments()->data(); int n_accepted_simtrk = ana.tx->getBranch>("sim_TC_matched").size(); unsigned int nPixelTriplets = *pixelTriplets->nPixelTriplets; @@ -499,14 +499,14 @@ void setPixelTripletOutputBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setGnnNtupleBranches(SDL::Event* event) { +void setGnnNtupleBranches(lst::Event* event) { // Get relevant information - SDL::Segments const* segments = event->getSegments()->data(); - SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); - SDL::Hits const* hitsEvt = event->getHits()->data(); - SDL::Modules const* modules = event->getModules()->data(); - SDL::ObjectRanges const* ranges = event->getRanges()->data(); - SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + lst::Segments const* segments = event->getSegments()->data(); + lst::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + lst::Hits const* hitsEvt = event->getHits()->data(); + lst::Modules const* modules = event->getModules()->data(); + lst::ObjectRanges const* ranges = event->getRanges()->data(); + lst::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); std::set mds_used_in_sg; std::map md_index_map; @@ -581,11 +581,11 @@ void setGnnNtupleBranches(SDL::Event* event) { std::vector hits = getHitsFromLS(event, sgIdx); // Computing line segment pt estimate (assuming beam spot is at zero) - SDLMath::Hit hitA(0, 0, 0); - SDLMath::Hit hitB(hitsEvt->xs[hits[0]], hitsEvt->ys[hits[0]], hitsEvt->zs[hits[0]]); - SDLMath::Hit hitC(hitsEvt->xs[hits[2]], hitsEvt->ys[hits[2]], hitsEvt->zs[hits[2]]); - SDLMath::Hit center = SDLMath::getCenterFromThreePoints(hitA, hitB, hitC); - float pt = SDLMath::ptEstimateFromRadius(center.rt()); + lst_math::Hit hitA(0, 0, 0); + lst_math::Hit hitB(hitsEvt->xs[hits[0]], hitsEvt->ys[hits[0]], hitsEvt->zs[hits[0]]); + lst_math::Hit hitC(hitsEvt->xs[hits[2]], hitsEvt->ys[hits[2]], hitsEvt->zs[hits[2]]); + lst_math::Hit center = lst_math::getCenterFromThreePoints(hitA, hitB, hitC); + float pt = lst_math::ptEstimateFromRadius(center.rt()); float eta = hitC.eta(); float phi = hitB.phi(); @@ -621,7 +621,7 @@ void setGnnNtupleBranches(SDL::Event* event) { sg_index_map[sgIdx] = ana.tx->getBranch>("LS_isFake").size() - 1; // // T5 eta and phi are computed using outer and innermost hits - // SDLMath::Hit hitA(trk.ph2_x()[anchitidx], trk.ph2_y()[anchitidx], trk.ph2_z()[anchitidx]); + // lstMath::Hit hitA(trk.ph2_x()[anchitidx], trk.ph2_y()[anchitidx], trk.ph2_z()[anchitidx]); // const float phi = hitA.phi(); // const float eta = hitA.eta(); } @@ -640,10 +640,10 @@ void setGnnNtupleBranches(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD) { +void setGnnNtupleMiniDoublet(lst::Event* event, unsigned int MD) { // Get relevant information - SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); - SDL::Hits const* hitsEvt = event->getHits()->data(); + lst::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + lst::Hits const* hitsEvt = event->getHits()->data(); // Get the hit indices unsigned int hit0 = miniDoublets->anchorHitIndices[MD]; @@ -680,10 +680,10 @@ void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD) { float dphichange = miniDoublets->dphichanges[MD]; // Computing pt - float pt = hit0_r * SDL::k2Rinv1GeVf / sin(dphichange); + float pt = hit0_r * lst::k2Rinv1GeVf / sin(dphichange); // T5 eta and phi are computed using outer and innermost hits - SDLMath::Hit hitA(trk.ph2_x()[anchitidx], trk.ph2_y()[anchitidx], trk.ph2_z()[anchitidx]); + lstMath::Hit hitA(trk.ph2_x()[anchitidx], trk.ph2_y()[anchitidx], trk.ph2_z()[anchitidx]); const float phi = hitA.phi(); const float eta = hitA.eta(); @@ -708,10 +708,10 @@ void setGnnNtupleMiniDoublet(SDL::Event* event, unsigned int MD) { } //________________________________________________________________________________________________________________________________ -std::tuple> parseTrackCandidate(SDL::Event* event, +std::tuple> parseTrackCandidate(lst::Event* event, unsigned int idx) { // Get the type of the track candidate - SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + lst::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); short type = trackCandidates->trackCandidateType[idx]; enum { pT5 = 7, pT3 = 5, T5 = 4, pLS = 8 }; @@ -742,12 +742,12 @@ std::tuple> parseTrackCandidate( } //________________________________________________________________________________________________________________________________ -std::tuple, std::vector> parsepT5(SDL::Event* event, +std::tuple, std::vector> parsepT5(lst::Event* event, unsigned int idx) { // Get relevant information - SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); - SDL::Quintuplets const* quintuplets = event->getQuintuplets()->data(); - SDL::Segments const* segments = event->getSegments()->data(); + lst::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + lst::Quintuplets const* quintuplets = event->getQuintuplets()->data(); + lst::Segments const* segments = event->getSegments()->data(); // // pictorial representation of a pT5 @@ -843,7 +843,7 @@ std::tuple, std::vectorptIn[pLS]; const float eta_pLS = segments->eta[pLS]; const float phi_pLS = segments->phi[pLS]; - float pt_T5 = __H2F(quintuplets->innerRadius[T5Index]) * 2 * SDL::k2Rinv1GeVf; + float pt_T5 = __H2F(quintuplets->innerRadius[T5Index]) * 2 * lst::k2Rinv1GeVf; const float pt = (pt_T5 + pt_pLS) / 2; // Form the hit idx/type std::vector @@ -854,12 +854,12 @@ std::tuple, std::vector, std::vector> parsepT3(SDL::Event* event, +std::tuple, std::vector> parsepT3(lst::Event* event, unsigned int idx) { // Get relevant information - SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); - SDL::Triplets const* triplets = event->getTriplets()->data(); - SDL::Segments const* segments = event->getSegments()->data(); + lst::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + lst::Triplets const* triplets = event->getTriplets()->data(); + lst::Segments const* segments = event->getSegments()->data(); // // pictorial representation of a pT3 @@ -876,7 +876,7 @@ std::tuple, std::vectorptIn[pLS]; const float eta_pLS = segments->eta[pLS]; const float phi_pLS = segments->phi[pLS]; - float pt_T3 = triplets->circleRadius[T3] * 2 * SDL::k2Rinv1GeVf; + float pt_T3 = triplets->circleRadius[T3] * 2 * lst::k2Rinv1GeVf; // average pt const float pt = (pt_pLS + pt_T3) / 2; @@ -889,10 +889,10 @@ std::tuple, std::vector, std::vector> parseT5(SDL::Event* event, +std::tuple, std::vector> parseT5(lst::Event* event, unsigned int idx) { - SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); - SDL::Quintuplets const* quintuplets = event->getQuintuplets()->data(); + lst::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + lst::Quintuplets const* quintuplets = event->getQuintuplets()->data(); unsigned int T5 = trackCandidates->directObjectIndices[idx]; std::vector hits = getHitsFromT5(event, T5); @@ -908,11 +908,11 @@ std::tuple, std::vectorinnerRadius[T5] * SDL::k2Rinv1GeVf * 2; + const float pt = quintuplets->innerRadius[T5] * lst::k2Rinv1GeVf * 2; // T5 eta and phi are computed using outer and innermost hits - SDLMath::Hit hitA(trk.ph2_x()[Hit_0], trk.ph2_y()[Hit_0], trk.ph2_z()[Hit_0]); - SDLMath::Hit hitB(trk.ph2_x()[Hit_8], trk.ph2_y()[Hit_8], trk.ph2_z()[Hit_8]); + lstMath::Hit hitA(trk.ph2_x()[Hit_0], trk.ph2_y()[Hit_0], trk.ph2_z()[Hit_0]); + lstMath::Hit hitB(trk.ph2_x()[Hit_8], trk.ph2_y()[Hit_8], trk.ph2_z()[Hit_8]); const float phi = hitA.phi(); const float eta = hitB.eta(); @@ -923,10 +923,10 @@ std::tuple, std::vector, std::vector> parsepLS(SDL::Event* event, +std::tuple, std::vector> parsepLS(lst::Event* event, unsigned int idx) { - SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); - SDL::Segments const* segments = event->getSegments()->data(); + lst::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + lst::Segments const* segments = event->getSegments()->data(); // Getting pLS index unsigned int pLS = trackCandidates->directObjectIndices[idx]; @@ -944,9 +944,9 @@ std::tuple, std::vector* event) { - SDL::Modules const* modules = event->getModules()->data(); - SDL::ObjectRanges const* ranges = event->getRanges()->data(); +void printHitMultiplicities(lst::Event* event) { + lst::Modules const* modules = event->getModules()->data(); + lst::ObjectRanges const* ranges = event->getRanges()->data(); int nHits = 0; for (unsigned int idx = 0; idx <= *(modules->nLowerModules); @@ -959,9 +959,9 @@ void printHitMultiplicities(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printMiniDoubletMultiplicities(SDL::Event* event) { - SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); - SDL::Modules const* modules = event->getModules()->data(); +void printMiniDoubletMultiplicities(lst::Event* event) { + lst::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + lst::Modules const* modules = event->getModules()->data(); int nMiniDoublets = 0; int totOccupancyMiniDoublets = 0; @@ -978,7 +978,7 @@ void printMiniDoubletMultiplicities(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printAllObjects(SDL::Event* event) { +void printAllObjects(lst::Event* event) { printMDs(event); printLSs(event); printpLSs(event); @@ -986,11 +986,11 @@ void printAllObjects(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printMDs(SDL::Event* event) { - SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); - SDL::Hits const* hitsEvt = event->getHits()->data(); - SDL::Modules const* modules = event->getModules()->data(); - SDL::ObjectRanges const* ranges = event->getRanges()->data(); +void printMDs(lst::Event* event) { + lst::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + lst::Hits const* hitsEvt = event->getHits()->data(); + lst::Modules const* modules = event->getModules()->data(); + lst::ObjectRanges const* ranges = event->getRanges()->data(); // Then obtain the lower module index for (unsigned int idx = 0; idx <= *(modules->nLowerModules); ++idx) { @@ -1008,12 +1008,12 @@ void printMDs(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printLSs(SDL::Event* event) { - SDL::Segments const* segments = event->getSegments()->data(); - SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); - SDL::Hits const* hitsEvt = event->getHits()->data(); - SDL::Modules const* modules = event->getModules()->data(); - SDL::ObjectRanges const* ranges = event->getRanges()->data(); +void printLSs(lst::Event* event) { + lst::Segments const* segments = event->getSegments()->data(); + lst::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + lst::Hits const* hitsEvt = event->getHits()->data(); + lst::Modules const* modules = event->getModules()->data(); + lst::ObjectRanges const* ranges = event->getRanges()->data(); int nSegments = 0; for (unsigned int i = 0; i < *(modules->nLowerModules); ++i) { @@ -1040,12 +1040,12 @@ void printLSs(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printpLSs(SDL::Event* event) { - SDL::Segments const* segments = event->getSegments()->data(); - SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); - SDL::Hits const* hitsEvt = event->getHits()->data(); - SDL::Modules const* modules = event->getModules()->data(); - SDL::ObjectRanges const* ranges = event->getRanges()->data(); +void printpLSs(lst::Event* event) { + lst::Segments const* segments = event->getSegments()->data(); + lst::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + lst::Hits const* hitsEvt = event->getHits()->data(); + lst::Modules const* modules = event->getModules()->data(); + lst::ObjectRanges const* ranges = event->getRanges()->data(); unsigned int i = *(modules->nLowerModules); unsigned int idx = i; //modules->lowerModuleIndices[i]; @@ -1070,12 +1070,12 @@ void printpLSs(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void printT3s(SDL::Event* event) { - SDL::Triplets const* triplets = event->getTriplets()->data(); - SDL::Segments const* segments = event->getSegments()->data(); - SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); - SDL::Hits const* hitsEvt = event->getHits()->data(); - SDL::Modules const* modules = event->getModules()->data(); +void printT3s(lst::Event* event) { + lst::Triplets const* triplets = event->getTriplets()->data(); + lst::Segments const* segments = event->getSegments()->data(); + lst::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + lst::Hits const* hitsEvt = event->getHits()->data(); + lst::Modules const* modules = event->getModules()->data(); int nTriplets = 0; for (unsigned int i = 0; i < *(modules->nLowerModules); ++i) { // unsigned int idx = modules->lowerModuleIndices[i]; @@ -1112,13 +1112,13 @@ void printT3s(SDL::Event* event) { } //________________________________________________________________________________________________________________________________ -void debugPrintOutlierMultiplicities(SDL::Event* event) { - SDL::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); - SDL::Triplets const* triplets = event->getTriplets()->data(); - SDL::Segments const* segments = event->getSegments()->data(); - SDL::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); - SDL::Modules const* modules = event->getModules()->data(); - SDL::ObjectRanges const* ranges = event->getRanges()->data(); +void debugPrintOutlierMultiplicities(lst::Event* event) { + lst::TrackCandidates const* trackCandidates = event->getTrackCandidates()->data(); + lst::Triplets const* triplets = event->getTriplets()->data(); + lst::Segments const* segments = event->getSegments()->data(); + lst::MiniDoublets const* miniDoublets = event->getMiniDoublets()->data(); + lst::Modules const* modules = event->getModules()->data(); + lst::ObjectRanges const* ranges = event->getRanges()->data(); //int nTrackCandidates = 0; for (unsigned int idx = 0; idx <= *(modules->nLowerModules); ++idx) { if (trackCandidates->nTrackCandidates[idx] > 50000) { diff --git a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h index 26b07c90a2641..b9a6197f66f43 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h +++ b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h @@ -4,14 +4,14 @@ #include #include -#include "SDLMath.h" +#include "lstMath.h" #include "Event.h" #include "AnalysisConfig.h" #include "trkCore.h" #include "AccessHelper.h" -using SDLEvent = SDL::Event; +using lstEvent = lst::Event; // Common void createOutputBranches(); @@ -19,40 +19,40 @@ void createRequiredOutputBranches(); void createOptionalOutputBranches(); void createGnnNtupleBranches(); -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(SDLEvent* event, unsigned int); -std::tuple, std::vector> parsepT5(SDLEvent* event, +void fillOutputBranches(lstEvent* event); +void setOutputBranches(lstEvent* event); +void setOptionalOutputBranches(lstEvent* event); +void setPixelQuintupletOutputBranches(lstEvent* event); +void setQuintupletOutputBranches(lstEvent* event); +void setPixelTripletOutputBranches(lstEvent* event); +void setGnnNtupleBranches(lstEvent* event); +void setGnnNtupleMiniDoublet(lstEvent* event, unsigned int MD); + +std::tuple> parseTrackCandidate(lstEvent* event, unsigned int); +std::tuple, std::vector> parsepT5(lstEvent* event, unsigned int); -std::tuple, std::vector> parsepT3(SDLEvent* event, +std::tuple, std::vector> parsepT3(lstEvent* event, unsigned int); -std::tuple, std::vector> parseT5(SDLEvent* event, +std::tuple, std::vector> parseT5(lstEvent* event, unsigned int); -std::tuple, std::vector> parsepLS(SDLEvent* event, +std::tuple, std::vector> parsepLS(lstEvent* event, unsigned int); // Print multiplicities -void printMiniDoubletMultiplicities(SDLEvent* event); -void printHitMultiplicities(SDLEvent* event); +void printMiniDoubletMultiplicities(lstEvent* event); +void printHitMultiplicities(lstEvent* event); // Print objects (GPU) -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); +void printAllObjects(lstEvent* event); +void printpT4s(lstEvent* event); +void printMDs(lstEvent* event); +void printLSs(lstEvent* event); +void printpLSs(lstEvent* event); +void printT3s(lstEvent* event); +void printT4s(lstEvent* event); +void printTCs(lstEvent* event); // Print anomalous multiplicities -void debugPrintOutlierMultiplicities(SDLEvent* event); +void debugPrintOutlierMultiplicities(lstEvent* event); #endif diff --git a/RecoTracker/LSTCore/standalone/efficiency/bin/sdl_timing b/RecoTracker/LSTCore/standalone/efficiency/bin/sdl_timing index 1ef7ed9b719ef..15c238217633b 100755 --- a/RecoTracker/LSTCore/standalone/efficiency/bin/sdl_timing +++ b/RecoTracker/LSTCore/standalone/efficiency/bin/sdl_timing @@ -151,6 +151,6 @@ fi echo "Total Timing Summary" grep -h "Time for map " timing_temp.txt | cut -d " " -f 6 | awk '{ SUM += $1} END { print "Average time for map loading =",SUM/5,"ms" }' # 5 is the number of stream values run grep -h "Time for input " timing_temp.txt | cut -d " " -f 6 | awk '{ SUM += $1} END { print "Average time for input loading =",SUM/5,"ms" }' # 5 is the number of stream values run -grep -h "Time for event " timing_temp.txt | cut -d " " -f 6 | awk '{ SUM += $1} END { print "Average time for SDL::Event creation =",SUM/21,"ms"}' # 5 is the number of total streams run (1+2+4+6+8) +grep -h "Time for event " timing_temp.txt | cut -d " " -f 6 | awk '{ SUM += $1} END { print "Average time for lst::Event creation =",SUM/21,"ms"}' # 5 is the number of total streams run (1+2+4+6+8) echo " Evt Hits MD LS T3 T5 pLS pT5 pT3 TC Reset Event Short Rate" grep -hr "avg " timing_temp.txt # space is needed to not get certain bad lines From 1a6e27b25632c354875192bf79fb55188d9434df Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Sat, 20 Jul 2024 07:42:27 -0700 Subject: [PATCH 11/35] Fix for wrong loop range in pT3 kernel --- RecoTracker/LSTCore/src/alpaka/Kernels.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RecoTracker/LSTCore/src/alpaka/Kernels.h b/RecoTracker/LSTCore/src/alpaka/Kernels.h index 0ec8e1ed7de84..76a3e6ef26770 100644 --- a/RecoTracker/LSTCore/src/alpaka/Kernels.h +++ b/RecoTracker/LSTCore/src/alpaka/Kernels.h @@ -118,7 +118,7 @@ namespace lst { int hits1[Params_T3::kHits]; int hits2[Params_T3::kHits]; - for (int i = 0; i < Params_pLS::kHits; i++) { + for (int i = 0; i < Params_T3::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 } From e54c6f1b16096990de48d7006a69ff8f262e0d68 Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Sat, 20 Jul 2024 08:04:57 -0700 Subject: [PATCH 12/35] Apply comments namespace and type renaming --- .../LSTCore/src/alpaka/NeuralNetwork.h | 279 ++++---- .../LSTCore/src/alpaka/NeuralNetworkWeights.h | 612 +++++++++--------- .../standalone/code/core/AccessHelper.h | 98 +-- .../code/core/{lstMath.h => lst_math.h} | 8 +- .../LSTCore/standalone/code/core/trkCore.cc | 8 +- .../LSTCore/standalone/code/core/trkCore.h | 36 +- .../standalone/code/core/write_sdl_ntuple.cc | 8 +- .../standalone/code/core/write_sdl_ntuple.h | 54 +- 8 files changed, 547 insertions(+), 556 deletions(-) rename RecoTracker/LSTCore/standalone/code/core/{lstMath.h => lst_math.h} (98%) diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h index f72f4ffaf5b6a..bcfa914fbfe80 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h @@ -10,158 +10,153 @@ #include "Hit.h" #include "Triplet.h" -namespace lst { - - namespace t5dnn { - - template - ALPAKA_FN_ACC ALPAKA_FN_INLINE float runInference(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, - struct lst::Triplets& tripletsInGPU, - const float* xVec, - const float* yVec, - const unsigned int* mdIndices, - const uint16_t* lowerModuleIndices, - const unsigned int& innerTripletIndex, - const unsigned int& outerTripletIndex, - const float& innerRadius, - const float& outerRadius, - const float& bridgeRadius) { - // Unpack x-coordinates of hits - float x1 = xVec[0]; - float x2 = xVec[1]; - float x3 = xVec[2]; - float x4 = xVec[3]; - float x5 = xVec[4]; - // Unpack y-coordinates of hits - float y1 = yVec[0]; - float y2 = yVec[1]; - float y3 = yVec[2]; - float y4 = yVec[3]; - float y5 = yVec[4]; - // Unpack module indices - unsigned int mdIndex1 = mdIndices[0]; - unsigned int mdIndex2 = mdIndices[1]; - unsigned int mdIndex3 = mdIndices[2]; - unsigned int mdIndex4 = mdIndices[3]; - unsigned int mdIndex5 = mdIndices[4]; - // Unpack module indices - uint16_t lowerModuleIndex1 = lowerModuleIndices[0]; - uint16_t lowerModuleIndex2 = lowerModuleIndices[1]; - uint16_t lowerModuleIndex3 = lowerModuleIndices[2]; - uint16_t lowerModuleIndex4 = lowerModuleIndices[3]; - uint16_t lowerModuleIndex5 = lowerModuleIndices[4]; - - // Compute some convenience variables - short layer2_adjustment = 0; - if (modulesInGPU.layers[lowerModuleIndex1] == 1) { - layer2_adjustment = 1; // get upper segment to be in second layer - } - unsigned int md_idx_for_t5_eta_phi = - segmentsInGPU.mdIndices[2 * tripletsInGPU.segmentIndices[2 * innerTripletIndex + layer2_adjustment]]; - bool is_endcap1 = (modulesInGPU.subdets[lowerModuleIndex1] == 4); // true if anchor hit 1 is in the endcap - bool is_endcap2 = (modulesInGPU.subdets[lowerModuleIndex2] == 4); // true if anchor hit 2 is in the endcap - bool is_endcap3 = (modulesInGPU.subdets[lowerModuleIndex3] == 4); // true if anchor hit 3 is in the endcap - bool is_endcap4 = (modulesInGPU.subdets[lowerModuleIndex4] == 4); // true if anchor hit 4 is in the endcap - bool is_endcap5 = (modulesInGPU.subdets[lowerModuleIndex5] == 4); // true if anchor hit 5 is in the endcap - - // Build DNN input vector (corresponding output N-tuple branch noted in parenthetical in comment) - float x[38] = { - lst::temp_log10(acc, 2 * lst::k2Rinv1GeVf * innerRadius), // inner T3 pT (t3_pt) - mdsInGPU.anchorEta[mdIndex1], // inner T3 anchor hit 1 eta (t3_0_eta) - mdsInGPU.anchorPhi[mdIndex1], // inner T3 anchor hit 1 phi (t3_0_phi) - mdsInGPU.anchorZ[mdIndex1], // inner T3 anchor hit 1 z (t3_0_z) - alpaka::math::sqrt(acc, x1 * x1 + y1 * y1), // inner T3 anchor hit 1 r (t3_0_r) - float(modulesInGPU.layers[lowerModuleIndex1] + 6 * is_endcap1), // inner T3 anchor hit 1 layer (t3_0_layer) - mdsInGPU.anchorEta[mdIndex2], // inner T3 anchor hit 2 eta (t3_2_eta) - mdsInGPU.anchorPhi[mdIndex2], // inner T3 anchor hit 2 phi (t3_2_phi) - mdsInGPU.anchorZ[mdIndex2], // inner T3 anchor hit 2 z (t3_2_z) - alpaka::math::sqrt(acc, x2 * x2 + y2 * y2), // inner T3 anchor hit 2 r (t3_2_r) - float(modulesInGPU.layers[lowerModuleIndex2] + 6 * is_endcap2), // inner T3 anchor hit 2 layer (t3_2_layer) - mdsInGPU.anchorEta[mdIndex3], // inner T3 anchor hit 3 eta (t3_4_eta) - mdsInGPU.anchorPhi[mdIndex3], // inner T3 anchor hit 3 phi (t3_4_phi) - mdsInGPU.anchorZ[mdIndex3], // inner T3 anchor hit 3 z (t3_4_z) - alpaka::math::sqrt(acc, x3 * x3 + y3 * y3), // inner T3 anchor hit 3 r (t3_4_r) - float(modulesInGPU.layers[lowerModuleIndex3] + 6 * is_endcap3), // inner T3 anchor hit 3 layer (t3_4_layer) - lst::temp_log10(acc, 2 * lst::k2Rinv1GeVf * outerRadius), // outer T3 pT (t3_pt) - mdsInGPU.anchorEta[mdIndex3], // outer T3 anchor hit 4 eta (t3_0_eta) - mdsInGPU.anchorPhi[mdIndex3], // outer T3 anchor hit 4 phi (t3_0_phi) - mdsInGPU.anchorZ[mdIndex3], // outer T3 anchor hit 3 eta (t3_0_z) - alpaka::math::sqrt(acc, x3 * x3 + y3 * y3), // outer T3 anchor hit 3 r (t3_0_r) - float(modulesInGPU.layers[lowerModuleIndex3] + 6 * is_endcap3), // outer T3 anchor hit 3 layer (t3_0_layer) - mdsInGPU.anchorEta[mdIndex4], // outer T3 anchor hit 4 eta (t3_2_eta) - mdsInGPU.anchorPhi[mdIndex4], // outer T3 anchor hit 4 phi (t3_2_phi) - mdsInGPU.anchorZ[mdIndex4], // outer T3 anchor hit 4 z (t3_2_z) - alpaka::math::sqrt(acc, x4 * x4 + y4 * y4), // outer T3 anchor hit 4 r (t3_2_r) - float(modulesInGPU.layers[lowerModuleIndex4] + 6 * is_endcap4), // outer T3 anchor hit 4 layer (t3_2_layer) - mdsInGPU.anchorEta[mdIndex5], // outer T3 anchor hit 5 eta (t3_4_eta) - mdsInGPU.anchorPhi[mdIndex5], // outer T3 anchor hit 5 phi (t3_4_phi) - mdsInGPU.anchorZ[mdIndex5], // outer T3 anchor hit 5 z (t3_4_z) - alpaka::math::sqrt(acc, x5 * x5 + y5 * y5), // outer T3 anchor hit 5 r (t3_4_r) - float(modulesInGPU.layers[lowerModuleIndex5] + 6 * is_endcap5), // outer T3 anchor hit 5 layer (t3_4_layer) - lst::temp_log10(acc, (innerRadius + outerRadius) * lst::k2Rinv1GeVf), // T5 pT (t5_pt) - mdsInGPU.anchorEta[md_idx_for_t5_eta_phi], // T5 eta (t5_eta) - mdsInGPU.anchorPhi[md_idx_for_t5_eta_phi], // T5 phi (t5_phi) - lst::temp_log10(acc, innerRadius), // T5 inner radius (t5_innerRadius) - lst::temp_log10(acc, bridgeRadius), // T5 bridge radius (t5_bridgeRadius) - lst::temp_log10(acc, outerRadius) // T5 outer radius (t5_outerRadius) - }; - - // (0): Linear(in_features=38, out_features=32, bias=True) => x = x*W_T + b - float x_0[32]; - for (unsigned int col = 0; col < 32; ++col) { - x_0[col] = 0; - for (unsigned int inner = 0; inner < 38; ++inner) { - x_0[col] += x[inner] * wgtT_0[inner][col]; - } - x_0[col] += bias_0[col]; - } - - // (1): ReLU() - float x_1[32]; - for (unsigned int col = 0; col < 32; ++col) { - x_1[col] = (x_0[col] > 0.f) ? x_0[col] : 0.f; +namespace lst::t5dnn { + + template + ALPAKA_FN_ACC ALPAKA_FN_INLINE float runInference(TAcc const& acc, + struct lst::Modules& modulesInGPU, + struct lst::MiniDoublets& mdsInGPU, + struct lst::Segments& segmentsInGPU, + struct lst::Triplets& tripletsInGPU, + const float* xVec, + const float* yVec, + const unsigned int* mdIndices, + const uint16_t* lowerModuleIndices, + const unsigned int& innerTripletIndex, + const unsigned int& outerTripletIndex, + const float& innerRadius, + const float& outerRadius, + const float& bridgeRadius) { + // Unpack x-coordinates of hits + float x1 = xVec[0]; + float x2 = xVec[1]; + float x3 = xVec[2]; + float x4 = xVec[3]; + float x5 = xVec[4]; + // Unpack y-coordinates of hits + float y1 = yVec[0]; + float y2 = yVec[1]; + float y3 = yVec[2]; + float y4 = yVec[3]; + float y5 = yVec[4]; + // Unpack module indices + unsigned int mdIndex1 = mdIndices[0]; + unsigned int mdIndex2 = mdIndices[1]; + unsigned int mdIndex3 = mdIndices[2]; + unsigned int mdIndex4 = mdIndices[3]; + unsigned int mdIndex5 = mdIndices[4]; + // Unpack module indices + uint16_t lowerModuleIndex1 = lowerModuleIndices[0]; + uint16_t lowerModuleIndex2 = lowerModuleIndices[1]; + uint16_t lowerModuleIndex3 = lowerModuleIndices[2]; + uint16_t lowerModuleIndex4 = lowerModuleIndices[3]; + uint16_t lowerModuleIndex5 = lowerModuleIndices[4]; + // Compute some convenience variables + short layer2_adjustment = 0; + if (modulesInGPU.layers[lowerModuleIndex1] == 1) { + layer2_adjustment = 1; // get upper segment to be in second layer + } + unsigned int md_idx_for_t5_eta_phi = + segmentsInGPU.mdIndices[2 * tripletsInGPU.segmentIndices[2 * innerTripletIndex + layer2_adjustment]]; + bool is_endcap1 = (modulesInGPU.subdets[lowerModuleIndex1] == 4); // true if anchor hit 1 is in the endcap + bool is_endcap2 = (modulesInGPU.subdets[lowerModuleIndex2] == 4); // true if anchor hit 2 is in the endcap + bool is_endcap3 = (modulesInGPU.subdets[lowerModuleIndex3] == 4); // true if anchor hit 3 is in the endcap + bool is_endcap4 = (modulesInGPU.subdets[lowerModuleIndex4] == 4); // true if anchor hit 4 is in the endcap + bool is_endcap5 = (modulesInGPU.subdets[lowerModuleIndex5] == 4); // true if anchor hit 5 is in the endcap + + // Build DNN input vector (corresponding output N-tuple branch noted in parenthetical in comment) + float x[38] = { + lst::temp_log10(acc, 2 * lst::k2Rinv1GeVf * innerRadius), // inner T3 pT (t3_pt) + mdsInGPU.anchorEta[mdIndex1], // inner T3 anchor hit 1 eta (t3_0_eta) + mdsInGPU.anchorPhi[mdIndex1], // inner T3 anchor hit 1 phi (t3_0_phi) + mdsInGPU.anchorZ[mdIndex1], // inner T3 anchor hit 1 z (t3_0_z) + alpaka::math::sqrt(acc, x1 * x1 + y1 * y1), // inner T3 anchor hit 1 r (t3_0_r) + float(modulesInGPU.layers[lowerModuleIndex1] + 6 * is_endcap1), // inner T3 anchor hit 1 layer (t3_0_layer) + mdsInGPU.anchorEta[mdIndex2], // inner T3 anchor hit 2 eta (t3_2_eta) + mdsInGPU.anchorPhi[mdIndex2], // inner T3 anchor hit 2 phi (t3_2_phi) + mdsInGPU.anchorZ[mdIndex2], // inner T3 anchor hit 2 z (t3_2_z) + alpaka::math::sqrt(acc, x2 * x2 + y2 * y2), // inner T3 anchor hit 2 r (t3_2_r) + float(modulesInGPU.layers[lowerModuleIndex2] + 6 * is_endcap2), // inner T3 anchor hit 2 layer (t3_2_layer) + mdsInGPU.anchorEta[mdIndex3], // inner T3 anchor hit 3 eta (t3_4_eta) + mdsInGPU.anchorPhi[mdIndex3], // inner T3 anchor hit 3 phi (t3_4_phi) + mdsInGPU.anchorZ[mdIndex3], // inner T3 anchor hit 3 z (t3_4_z) + alpaka::math::sqrt(acc, x3 * x3 + y3 * y3), // inner T3 anchor hit 3 r (t3_4_r) + float(modulesInGPU.layers[lowerModuleIndex3] + 6 * is_endcap3), // inner T3 anchor hit 3 layer (t3_4_layer) + lst::temp_log10(acc, 2 * lst::k2Rinv1GeVf * outerRadius), // outer T3 pT (t3_pt) + mdsInGPU.anchorEta[mdIndex3], // outer T3 anchor hit 4 eta (t3_0_eta) + mdsInGPU.anchorPhi[mdIndex3], // outer T3 anchor hit 4 phi (t3_0_phi) + mdsInGPU.anchorZ[mdIndex3], // outer T3 anchor hit 3 eta (t3_0_z) + alpaka::math::sqrt(acc, x3 * x3 + y3 * y3), // outer T3 anchor hit 3 r (t3_0_r) + float(modulesInGPU.layers[lowerModuleIndex3] + 6 * is_endcap3), // outer T3 anchor hit 3 layer (t3_0_layer) + mdsInGPU.anchorEta[mdIndex4], // outer T3 anchor hit 4 eta (t3_2_eta) + mdsInGPU.anchorPhi[mdIndex4], // outer T3 anchor hit 4 phi (t3_2_phi) + mdsInGPU.anchorZ[mdIndex4], // outer T3 anchor hit 4 z (t3_2_z) + alpaka::math::sqrt(acc, x4 * x4 + y4 * y4), // outer T3 anchor hit 4 r (t3_2_r) + float(modulesInGPU.layers[lowerModuleIndex4] + 6 * is_endcap4), // outer T3 anchor hit 4 layer (t3_2_layer) + mdsInGPU.anchorEta[mdIndex5], // outer T3 anchor hit 5 eta (t3_4_eta) + mdsInGPU.anchorPhi[mdIndex5], // outer T3 anchor hit 5 phi (t3_4_phi) + mdsInGPU.anchorZ[mdIndex5], // outer T3 anchor hit 5 z (t3_4_z) + alpaka::math::sqrt(acc, x5 * x5 + y5 * y5), // outer T3 anchor hit 5 r (t3_4_r) + float(modulesInGPU.layers[lowerModuleIndex5] + 6 * is_endcap5), // outer T3 anchor hit 5 layer (t3_4_layer) + lst::temp_log10(acc, (innerRadius + outerRadius) * lst::k2Rinv1GeVf), // T5 pT (t5_pt) + mdsInGPU.anchorEta[md_idx_for_t5_eta_phi], // T5 eta (t5_eta) + mdsInGPU.anchorPhi[md_idx_for_t5_eta_phi], // T5 phi (t5_phi) + lst::temp_log10(acc, innerRadius), // T5 inner radius (t5_innerRadius) + lst::temp_log10(acc, bridgeRadius), // T5 bridge radius (t5_bridgeRadius) + lst::temp_log10(acc, outerRadius) // T5 outer radius (t5_outerRadius) + }; + + // (0): Linear(in_features=38, out_features=32, bias=True) => x = x*W_T + b + float x_0[32]; + for (unsigned int col = 0; col < 32; ++col) { + x_0[col] = 0; + for (unsigned int inner = 0; inner < 38; ++inner) { + x_0[col] += x[inner] * wgtT_0[inner][col]; } + x_0[col] += bias_0[col]; + } - // (2): Linear(in_features=32, out_features=32, bias=True) => x = x*W_T + b - float x_2[32]; - for (unsigned int col = 0; col < 32; ++col) { - x_2[col] = 0; - for (unsigned int inner = 0; inner < 32; ++inner) { - x_2[col] += x_1[inner] * wgtT_2[inner][col]; - } - x_2[col] += bias_2[col]; - } + // (1): ReLU() + float x_1[32]; + for (unsigned int col = 0; col < 32; ++col) { + x_1[col] = (x_0[col] > 0.f) ? x_0[col] : 0.f; + } - // (3): ReLU() - float x_3[32]; - for (unsigned int col = 0; col < 32; ++col) { - x_3[col] = (x_2[col] > 0.f) ? x_2[col] : 0.f; + // (2): Linear(in_features=32, out_features=32, bias=True) => x = x*W_T + b + float x_2[32]; + for (unsigned int col = 0; col < 32; ++col) { + x_2[col] = 0; + for (unsigned int inner = 0; inner < 32; ++inner) { + x_2[col] += x_1[inner] * wgtT_2[inner][col]; } + x_2[col] += bias_2[col]; + } - // (4): Linear(in_features=32, out_features=1, bias=True) => x = x*W_T + b - float x_4[1]; - for (unsigned int col = 0; col < 1; ++col) { - x_4[col] = 0; - for (unsigned int inner = 0; inner < 32; ++inner) { - x_4[col] += x_3[inner] * wgtT_4[inner][col]; - } - x_4[col] += bias_4[col]; - } + // (3): ReLU() + float x_3[32]; + for (unsigned int col = 0; col < 32; ++col) { + x_3[col] = (x_2[col] > 0.f) ? x_2[col] : 0.f; + } - // (5): Sigmoid() - float x_5[1]; - for (unsigned int col = 0; col < 1; ++col) { - x_5[col] = alpaka::math::exp(acc, x_4[col]) / (alpaka::math::exp(acc, x_4[col]) + 1); + // (4): Linear(in_features=32, out_features=1, bias=True) => x = x*W_T + b + float x_4[1]; + for (unsigned int col = 0; col < 1; ++col) { + x_4[col] = 0; + for (unsigned int inner = 0; inner < 32; ++inner) { + x_4[col] += x_3[inner] * wgtT_4[inner][col]; } + x_4[col] += bias_4[col]; + } - return x_5[0]; + // (5): Sigmoid() + float x_5[1]; + for (unsigned int col = 0; col < 1; ++col) { + x_5[col] = alpaka::math::exp(acc, x_4[col]) / (alpaka::math::exp(acc, x_4[col]) + 1); } - } // namespace t5dnn + return x_5[0]; + } -} //namespace lst +} //namespace lst::t5dnn #endif diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h index a7a380985eb28..d7b2f03937bdb 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetworkWeights.h @@ -3,315 +3,311 @@ #include -namespace lst { +namespace lst::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, + -0.8549317f, -6.8545237f, -1.2129461f, 3.0617838f, -0.3911322f, 0.0799793f, -2.5398655f, -0.5780622f, + 2.8533990f, -0.1777968f, -2.6457164f, -0.7976936f, 4.5644889f, -2.1747942f, 3.4286616f, -10.1073380f}; + ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_0[38][32] = { + {6.1269712f, -10.6625051f, 17.4907818f, -0.0019928f, -3.4468415f, 1.6674044f, -7.8957767f, 2.2077549f, + 9.5517254f, -5.1345053f, -30.1643391f, 4.0148559f, -19.8330841f, -18.3806915f, 0.1334764f, 1.6213616f, + -4.1423774f, -15.3062429f, -1.0209556f, 1.5580219f, 0.7426265f, 0.0033929f, 1.3924170f, 0.9196110f, + -0.8995734f, 1.0594707f, 39.4390869f, 8.7642002f, 28.4583893f, -5.9235659f, 3.7221889f, 14.4167147f}, + {1.7863803f, -0.6068707f, 0.3166098f, -0.0608759f, 0.5939785f, 0.4870262f, -3.1375074f, -17.7147388f, + -0.7231818f, -9.3808413f, 2.2070611f, 15.7461920f, 0.9355862f, 2.3942475f, -0.0671409f, 3.5954301f, + -3.0463996f, -2.0748904f, -0.5450584f, -4.4800100f, 0.6074556f, -0.0161482f, 3.0624702f, -4.5688419f, + 2.9881518f, -0.3714012f, -0.0387531f, -0.7699140f, 4.4028845f, 5.0333014f, -4.7350726f, -8.6568584f}, + {5.6548429f, -0.0207700f, 0.1785973f, 0.0881671f, 0.2530097f, -0.1893259f, -0.1105739f, -0.5183877f, + 1.0728362f, 0.1833011f, 1.7765219f, 0.3127359f, 0.0455277f, -0.1442616f, -0.1048361f, -0.1235604f, + -0.1217661f, -0.5487315f, 0.7575656f, -0.1177454f, -17.0993137f, 0.1628031f, 0.2789381f, 0.5304270f, + 0.0837841f, -3.1120780f, 0.0074821f, -0.1648044f, -0.3395336f, 0.3958135f, 0.8718957f, -1.1980486f}, + {0.2401041f, -0.0585765f, -0.0144584f, 0.0411095f, 0.0752229f, 0.0292672f, -0.2437613f, -1.4396472f, + -0.0971315f, -1.7181139f, 0.2417643f, 2.2030578f, 0.0566049f, 0.1081589f, -0.1060181f, 0.3473758f, + -0.7095683f, -0.0345675f, 0.2794849f, -1.1702278f, 0.2622930f, -0.0072611f, 0.5026371f, -1.2882922f, + -0.4712771f, 0.0597130f, -0.0039970f, -0.6050836f, 0.1554724f, 1.0991164f, -0.4975886f, 0.2597970f}, + {0.0766028f, 0.0218421f, -0.1739017f, -0.0076569f, 0.0384461f, -0.1841756f, 0.9677940f, -3.1114254f, + 2.3830564f, 2.0706992f, -0.9643140f, 0.7361387f, -0.0060253f, -0.1554846f, -0.0831100f, 2.8754771f, + -1.4403527f, -0.5281797f, 0.5157787f, 4.2405987f, 0.4807618f, 0.0217647f, -1.2626950f, 0.9145837f, + -0.3931780f, 0.3426280f, -0.0065206f, -0.7510439f, -0.4555758f, 2.7724340f, -1.2173026f, 0.1039017f}, + {0.5685715f, 0.3927337f, 0.4942532f, -0.0671033f, -0.2808350f, -0.0336000f, -1.3983957f, 0.9876546f, + -2.3840380f, 0.7315395f, -2.2009561f, -1.4631602f, -0.4672308f, -0.4994236f, 0.1169335f, -1.1894208f, + -1.2692982f, 0.3303853f, -2.0147655f, -0.9912014f, 1.0042895f, 0.1121151f, -1.0789106f, -2.2821584f, + -6.6459913f, -0.0959398f, -0.0068429f, -2.8177626f, 0.3213172f, -2.6832986f, -4.7613306f, -0.9985733f}, + {1.4419515f, -0.3864825f, -0.6756768f, -0.1273375f, 0.4321181f, 0.3354745f, -0.8236564f, -2.8190827f, + 0.7090831f, 1.9072700f, -3.1834064f, -2.6938572f, 0.5051147f, 1.4382831f, 0.1241910f, -0.7352629f, + 0.7703634f, -1.7556250f, -2.1104112f, 3.0603442f, 1.9873468f, -0.0358815f, -1.0087154f, 3.8253262f, + -0.5466214f, 0.0875162f, 0.2691758f, 0.7121435f, 1.9314718f, -0.1580560f, 3.6484149f, -5.3173709f}, + {6.9104381f, -0.0033664f, -1.4405546f, -0.1768288f, 0.2028089f, -0.1012344f, -4.4735684f, 0.6354278f, + 4.3039737f, 0.2056303f, 1.8338999f, -1.1351355f, 0.1015760f, -0.0733253f, -0.0561627f, 2.5292397f, + 1.6314448f, -0.9333628f, -0.7773662f, 0.8313186f, -0.7829623f, 0.1265118f, 0.5922315f, -0.3463379f, + -1.3269740f, -3.3302619f, -0.0061799f, 2.3374722f, 0.0880938f, 0.7470241f, -0.4205743f, -4.7557602f}, + {0.0380794f, 0.0947470f, 0.0419397f, 0.0582226f, -0.0603404f, 0.0234028f, -0.2575402f, 0.4125248f, + 0.3035339f, 0.2663808f, -0.6092452f, -1.4727812f, 0.0247187f, -0.0539688f, -0.0150413f, 0.2094955f, + 0.5379737f, -0.3255228f, -0.5639279f, 0.0786276f, 0.6703192f, 0.1557026f, -0.2753083f, 1.1463971f, + -0.9372965f, 0.5657740f, 0.0041413f, 0.0870248f, 0.0101520f, -0.8214461f, 0.1212932f, 1.5648646f}, + {-0.0969819f, 0.0137566f, 1.3515147f, -0.0155047f, -0.1416170f, -0.1636726f, 0.5184190f, 0.4732984f, + 0.6815788f, -1.0522166f, -0.4486531f, -0.0516016f, 0.0201894f, -0.0849667f, -0.0861271f, -1.2027841f, + 1.2458711f, -0.7061657f, 1.0381308f, -0.3450044f, -0.1300479f, -0.0828402f, 0.6859242f, -1.0575374f, + 0.6947553f, -0.0922188f, 0.0199132f, 0.8038982f, -0.1734094f, -0.1057449f, 1.6305015f, -0.0688597f}, + {-1.8151448f, 0.1024327f, 1.7063105f, 0.1130912f, -0.1081472f, -0.2904744f, -1.3465070f, -1.0455177f, + -0.4581082f, -3.2220871f, 0.5221398f, -5.1637673f, 0.0811146f, -0.1326323f, -0.0379338f, -3.0439703f, + -2.4246936f, -0.3670847f, -3.1256330f, -1.6595014f, -3.4715190f, -0.1526113f, -1.0420206f, 0.9536474f, + -3.2932863f, 1.6048199f, 0.0025162f, -3.6049840f, 0.0604250f, -2.2404826f, 1.8406851f, -3.1381185f}, + {1.2985691f, -1.1044264f, 0.9062797f, -0.0788333f, 0.2694912f, 0.0032800f, -0.0574267f, 0.9734111f, + 1.1532565f, 2.6786125f, -3.8574269f, -2.2871449f, -0.1261243f, 1.0545347f, -0.1454154f, -0.5609738f, + 1.8385800f, -0.8035598f, -1.7668265f, 5.1665063f, 0.7966110f, 0.0940206f, -2.3943975f, 2.3344002f, + 1.0342182f, 0.4806454f, -0.3880928f, 0.6998246f, 1.4011886f, -1.7313483f, 4.9702630f, -6.0058608f}, + {1.0300356f, 0.0616315f, -0.1113776f, -0.1694220f, 0.7159944f, 0.0626456f, 2.0994680f, 0.3452290f, + -3.0487001f, 0.0654031f, -1.1510723f, 0.5370992f, -0.0290704f, -0.0300795f, 0.0751569f, -0.2345951f, + -0.3472281f, 0.4424143f, 1.2444530f, -0.2114656f, 0.7865694f, -0.0709381f, -0.1839961f, -0.0529834f, + 0.5867608f, -3.8793530f, -0.0814745f, -0.6368676f, 0.0361213f, -0.5549288f, 0.5661780f, 1.8374584f}, + {0.3345098f, 0.0068199f, -0.4205509f, -0.1088801f, -0.1043202f, -0.0040804f, 0.3400922f, 0.2673528f, + -0.6050695f, 0.4443954f, -0.4319905f, -0.6044132f, -0.0260679f, 0.0137036f, 0.0765494f, -0.0095099f, + 0.5880439f, -0.0083854f, -0.2407522f, 0.1942379f, 0.6554548f, -0.1322891f, -0.8298992f, 0.7909554f, + 1.0528831f, 0.1970959f, 0.0754069f, -0.0947960f, -0.0279494f, -0.5888316f, 0.8919419f, 0.4828835f}, + {0.3995822f, -0.2139665f, 0.3982936f, -0.1285759f, -0.3445527f, -0.1167238f, -0.1263519f, 0.8393803f, + -0.7758383f, 0.0719291f, -0.0134762f, 0.1715237f, 0.0796666f, 0.1023507f, -0.1172728f, -1.2364722f, + 1.2592632f, -0.3168479f, 0.7487004f, -1.5170647f, -0.2235429f, -0.1620898f, 1.4064828f, -1.0821995f, + 0.0740103f, -1.0412805f, -0.0621277f, 0.2439800f, 0.2684972f, -1.1661061f, 0.7859434f, -0.6170313f}, + {2.1615884f, 0.1431713f, 0.0642652f, -0.0522325f, -0.2658786f, -0.0245810f, -1.6857448f, -0.6685011f, + -0.6978170f, -0.8716729f, 0.3129902f, -2.5870812f, -0.2855283f, -0.3205920f, -0.0084069f, 1.3182145f, + -0.6923816f, -0.3730274f, -2.3638811f, -1.1128502f, -2.4709859f, 0.1349022f, -0.3574466f, -0.6597407f, + -4.1122031f, 0.2240651f, 0.1806145f, -1.6836300f, -0.0766231f, -3.2611966f, 0.0091456f, -0.0997367f}, + {5.2476101f, -0.1966512f, 4.8935304f, -0.1551689f, 1.6919724f, -0.8324367f, 14.3318472f, -0.3503132f, + 10.3614969f, -9.1522884f, -0.2543063f, -1.8476851f, 16.7961140f, 9.9541416f, -0.0434563f, -9.6973553f, + -5.0469398f, 6.1688442f, 7.6429725f, -7.3149266f, 1.2345183f, 0.1412155f, 0.7114770f, -1.6378664f, + 5.1548996f, 0.3686100f, -45.3027611f, 3.0492647f, -37.3445892f, 2.7421410f, -2.7958770f, -25.2034016f}, + {1.4597454f, -1.0561740f, 0.9751291f, 0.0446527f, 0.3691662f, 0.1006782f, 0.1418435f, 0.8871480f, + 1.1603093f, 2.8034730f, -4.0856910f, -1.9786842f, -0.2206208f, 0.9539357f, 0.0868183f, -0.6811873f, + 1.9642411f, -0.8065316f, -2.0244894f, 5.2936082f, 0.6120632f, -0.1194160f, -2.3925939f, 2.5555069f, + 1.0149733f, 0.4607603f, -0.2197217f, 0.5703423f, 1.4049014f, -1.5900208f, 5.1645074f, -6.0569463f}, + {0.9000676f, -0.0028781f, -0.1967366f, 0.1039593f, 0.7993248f, 0.0655172f, 2.2296758f, 0.4391927f, + -3.0292840f, 0.0334536f, -1.1728534f, 0.3479103f, -0.1190938f, 0.0410203f, 0.1146637f, -0.2958017f, + -0.3240463f, 0.4361866f, 1.0564958f, -0.1989332f, 0.5194008f, -0.0628912f, -0.1733121f, -0.1255383f, + 0.5990249f, -3.7692382f, 0.0995128f, -0.7101220f, -0.0785123f, -0.3514554f, 0.6662078f, 2.0991604f}, + {0.1781942f, -0.1873588f, -0.4653996f, -0.0153059f, -0.1399561f, -0.0498718f, 0.4552556f, 0.2300792f, + -0.7682312f, 0.4342302f, -0.3787803f, -0.6089386f, -0.1049337f, 0.0395331f, 0.0220332f, 0.0114750f, + 0.4672548f, 0.1284784f, -0.2472819f, 0.2892784f, 0.4788667f, 0.0472555f, -0.6593549f, 0.6508777f, + 0.9286987f, 0.3043948f, -0.0635985f, 0.0814399f, -0.1168853f, -0.6688027f, 0.8876534f, 0.4865684f}, + {0.4024099f, 0.0480259f, 0.4588822f, -0.1793082f, -0.2151573f, -0.1871128f, -0.1502780f, 1.1011307f, + -0.9467706f, 0.2632496f, -0.1257263f, -0.0241331f, 0.2280627f, 0.0878608f, -0.1334262f, -1.1642927f, + 1.0943586f, -0.4799654f, 0.5981907f, -1.5051398f, -0.4235946f, 0.0012827f, 1.2342577f, -0.8281875f, + 0.2776567f, -1.0362227f, 0.0408372f, 0.1540821f, 0.1777556f, -1.2684357f, 0.8836584f, -0.4001710f}, + {2.1558056f, 0.2082023f, 0.0863442f, 0.0364868f, -0.3985825f, 0.0307202f, -1.8889453f, -0.5614714f, + -0.7311882f, -0.8075573f, 0.4895108f, -2.7770483f, -0.3121874f, -0.1671291f, -0.1281284f, 1.3212786f, + -0.5310181f, -0.1974759f, -2.6240873f, -0.8320529f, -2.3875966f, -0.0286360f, -0.6263188f, -0.6553424f, + -4.1658955f, -0.0601300f, 0.0946256f, -1.6795633f, -0.1251303f, -3.0974686f, 0.2412274f, -0.0687501f}, + {2.0523887f, -0.6387668f, 2.0633900f, -0.0550964f, 0.5181718f, -0.4202190f, 1.8569367f, 0.8295385f, + 0.8555872f, 2.4727983f, -0.2072828f, -1.9006120f, 0.5379534f, 0.4463673f, 0.1468820f, 0.4918649f, + -3.4016700f, 0.2884440f, -1.9418719f, 4.5157170f, -0.5160927f, -0.0199372f, 3.1353824f, -0.9863126f, + -1.5135859f, 0.7576568f, 0.6715558f, 2.7409093f, 0.9291748f, -0.3247162f, 1.8204515f, -8.9181070f}, + {-0.1428107f, -0.0829889f, 0.4213613f, 0.0225415f, 1.2238166f, 0.0477106f, 0.3031853f, -0.7466553f, + 2.0663500f, 0.7588379f, 0.3689216f, -0.2003786f, 0.1242338f, 0.1693589f, -0.0351716f, -0.0186597f, + -0.0189417f, 0.5468715f, -0.2862698f, -0.1311738f, 3.0747476f, -0.0310747f, 0.0943165f, 0.3139819f, + 0.6274695f, -1.8314874f, 0.0147495f, 0.3554756f, 0.3829916f, 0.4891713f, 0.1328600f, 1.0535098f}, + {0.0534900f, 0.1787969f, -0.0571320f, -0.0685673f, 0.1968977f, 0.0374476f, 0.7876674f, 0.0828491f, + 0.6444036f, -0.2203166f, -0.2383427f, 0.5397566f, 0.0106769f, -0.1230072f, -0.0135021f, -0.5691944f, + -1.5040319f, 0.0406933f, -0.0025478f, 0.9251419f, -1.7180276f, -0.1112956f, 1.4840862f, 0.0407115f, + -0.0100329f, 0.0583593f, -0.0110524f, 0.7431355f, -0.0971857f, -0.5501527f, -0.6371027f, -0.1935233f}, + {-0.6455778f, 0.2317368f, 0.9285696f, -0.1415854f, 0.0822560f, 0.2488030f, -2.6992166f, 0.0884904f, + 0.6735302f, -0.1467820f, 0.5641044f, 0.6436581f, 0.0818401f, -0.0336634f, -0.0729000f, -0.1206900f, + -2.5739892f, 0.5776953f, 0.9531668f, -1.2362405f, -0.0615577f, -0.0143544f, -2.7525210f, 1.3738545f, + 0.2751348f, -1.7463943f, -0.0020144f, 2.4814103f, 0.1716725f, -0.7055540f, -0.3474010f, 0.4482578f}, + {-0.2526205f, -0.7463821f, -3.6076138f, -0.1511098f, 0.1216256f, 0.0888247f, -1.0190924f, -1.3260181f, + -0.0443211f, -4.8911066f, -3.4385188f, -6.0057454f, 0.3340450f, 0.2997236f, -0.0907855f, 0.7500492f, + -0.4007562f, 1.9382039f, 0.5687234f, 2.6511824f, 4.7703862f, 0.0006749f, -0.0201394f, -3.5885489f, + -4.1518898f, 0.0807014f, -0.0584071f, -0.8100027f, 0.7697087f, -0.8038046f, -1.2945876f, -4.0110312f}, + {0.4337017f, -1.1532011f, 2.0740633f, 0.0271806f, 0.6654227f, 0.1012998f, -4.0791736f, 1.2631345f, + 1.9511020f, 2.3272331f, 1.2707534f, 1.6306664f, 0.4936035f, 0.8285242f, 0.0807625f, 3.8652387f, + 0.0281145f, 1.6877037f, 1.2557380f, -0.3036775f, 0.5604967f, 0.1551418f, -0.9599600f, -6.3067718f, + -0.6352320f, 0.8058553f, 0.3657880f, -2.0491202f, -0.3926269f, 2.5650854f, 1.3697821f, -8.3070078f}, + {5.1334143f, -0.0351738f, -0.4774780f, -0.0679726f, 1.4569254f, 0.0580191f, -0.3649136f, -0.2298838f, + -3.3826666f, -0.7392708f, -0.6036060f, -0.2612940f, -0.1877640f, -0.1145124f, -0.0042578f, -0.0311193f, + -0.0320479f, 0.5270581f, -0.4324475f, 0.2681437f, 4.7813129f, -0.0222701f, -0.0525629f, -0.2861001f, + -0.1251072f, 3.9112861f, 0.0045046f, -0.0426071f, -0.3299106f, -0.0686970f, -0.1602017f, -0.0070103f}, + {-0.6633690f, 0.0103367f, 0.5998458f, 0.1256577f, -0.0359184f, -0.0176820f, -0.6458368f, -0.0370536f, + 0.3542259f, 0.1394724f, 0.8255956f, 0.2501569f, 0.0320156f, -0.0256806f, 0.0277949f, 0.0036392f, + 0.2825173f, 0.1400358f, 1.0011463f, -0.6792242f, 0.0672508f, 0.0728705f, -0.1089695f, -1.0414587f, + -0.4135485f, 0.4293025f, -0.0041241f, -0.9564193f, 0.0314900f, 0.8658463f, -0.7734696f, -0.7610567f}, + {-0.0200122f, -0.0749178f, -1.5026549f, -0.0387432f, -0.0713735f, 0.1214790f, 1.8730290f, -0.0552839f, + -1.6867150f, 0.2282097f, 0.7161849f, -0.1018546f, -0.1092003f, 0.0365504f, -0.1326883f, 1.2310545f, + 0.1800210f, 0.7024739f, -2.9606545f, 1.2275347f, -0.2050014f, 0.0940569f, 0.4761694f, 0.8812068f, + -0.0083424f, -1.5406264f, 0.0061815f, -2.7606382f, 0.0248556f, 1.1086880f, -1.3608936f, 1.0795454f}, + {0.9734020f, 0.3905411f, -3.7008634f, 0.0013557f, 0.1649124f, 0.9935362f, 1.3489184f, 0.9505764f, + 0.7966231f, -0.1627246f, -2.5754328f, 1.4892205f, 0.8586300f, 0.6974363f, 0.1320204f, -0.7840260f, + 0.3121157f, 0.0966901f, 2.7447381f, 1.8256680f, 0.7229405f, -0.1723188f, 0.9145948f, -2.1376033f, + 0.5259342f, 0.0731194f, -0.2908303f, -0.2603913f, -0.2326528f, 3.6684167f, -0.2883157f, -2.8546307f}, + {-4.8917460f, 6.7944999f, -0.2255474f, 0.1051999f, 3.9000113f, 2.0624907f, 5.3019547f, 10.0209141f, + 1.1268179f, 2.2669628f, -6.5002980f, 1.8408583f, 5.3039579f, 2.2055962f, 0.1055369f, 1.7230233f, + 6.9605255f, 7.7025104f, 2.9880707f, -0.9274251f, -0.2287160f, -0.0206735f, 0.6885675f, 2.8179996f, + -7.1129837f, -1.3772345f, 3.8655453f, -5.9388318f, -0.0469947f, 7.2763596f, -6.3536129f, -17.0069847f}, + {1.8787041f, -0.9953383f, -1.4839923f, 0.1308209f, 0.3657510f, 0.3106483f, -1.4158971f, -6.7449651f, + 0.6553892f, -4.5046172f, -3.5489719f, 3.5363002f, 0.5454772f, 2.3521471f, 0.1612140f, -0.9744226f, + 0.6546553f, -2.7179255f, -1.7758157f, 0.3089439f, 1.7462813f, 0.1654593f, -0.2440207f, 3.9501827f, + 1.3750844f, 0.0596805f, -0.1977254f, 0.0264880f, 2.6396444f, 1.0816911f, 3.6413448f, -6.0299959f}, + {-4.1295738f, 0.1044480f, 0.2131937f, 0.0420826f, 0.5292229f, 0.0090477f, -0.0973486f, 0.9596778f, + 2.9579651f, -0.6364226f, -1.7556342f, 0.1539868f, -0.1273174f, -0.1348504f, 0.1257833f, -1.4168571f, + -1.0960362f, 0.0482449f, -1.4395387f, -0.2524115f, -2.9162085f, -0.0451428f, -0.4021681f, -0.5756381f, + 0.0515293f, -3.1996479f, -0.0007676f, -1.3878343f, -0.2864279f, -0.9579773f, -1.0999249f, 1.6500067f}, + {-2.4806111f, -6.8115449f, 3.2805641f, 0.1187415f, -0.9950783f, 6.2553434f, -1.6450261f, -6.1463733f, + 2.7507148f, 4.2995782f, 0.0461297f, -0.5417359f, 2.4306326f, -7.3530145f, 0.0698273f, -0.9394333f, + -1.3595498f, -7.5141478f, -1.4911395f, 3.2300410f, 0.1203540f, 0.0314884f, -2.0116949f, -0.8167119f, + 2.4133310f, 0.1920709f, 1.0619365f, 0.2459123f, 6.9166069f, -2.6384118f, 3.6829739f, -7.2385545f}, + {0.9408096f, 14.9067144f, 1.7709646f, 0.1105646f, -0.5600107f, -15.3188124f, -12.3718462f, -1.8893757f, + 13.6364670f, -5.7327847f, -14.1805468f, 1.0581509f, -14.2186184f, 14.8948650f, 0.0190344f, 5.4395180f, + 6.7243400f, 9.8468456f, 4.5144215f, -1.4551491f, 1.1032411f, -0.0317988f, 2.3398454f, -3.1671596f, + -7.7541409f, 1.1255593f, 6.7340465f, -4.4448423f, -9.1472626f, -3.1959128f, 4.4181323f, -2.7904994f}, + {-2.1621978f, -4.7202382f, 1.7378219f, 0.1417439f, -0.5000908f, 5.4468708f, 1.4260571f, -6.6136570f, + 1.5713804f, 3.4479704f, 2.7354901f, -0.7388076f, 5.4666147f, -3.8697338f, -0.1368596f, -2.7903373f, + -1.2043713f, -4.9554005f, 0.3324645f, 1.6767365f, 0.1156244f, -0.0326964f, -2.0945346f, -0.4590589f, + 3.0942657f, 0.0015020f, -6.2626700f, -0.3969755f, 0.7717427f, -1.9667094f, 2.9664171f, -11.9477053f}, + }; + ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_2[32] = { + 9.8383608f, 3.6922295f, 3.5774977f, -4.4619012f, 6.5087032f, -0.9540017f, -0.5059246f, 0.0706402f, + 14.3396597f, -0.2771132f, -4.8409863f, -8.3581600f, -3.5078344f, 4.3287506f, -5.7808843f, 3.9264839f, + -2.1697845f, -0.0040514f, -0.2095029f, -6.8678174f, 1.7911285f, -0.4510343f, 1.2410443f, -4.5678806f, + -0.5693849f, 2.3320096f, 4.4606552f, -6.3771009f, -4.3149071f, -0.1905672f, -3.5726390f, -1.0744030f}; + ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_2[32][32] = { + {-0.0155548f, 0.0243339f, 0.0037967f, -0.2771824f, 0.0111955f, -0.0115980f, 0.0079653f, -2.9803498f, + -0.0061037f, -0.0956634f, 0.0332446f, 0.0179244f, -0.0080377f, -9.0180779f, 0.1720033f, 0.0350694f, + -0.0146588f, -0.2135506f, -0.3158041f, 1.3697664f, 0.0119146f, 0.0119120f, -0.0986927f, 0.0297492f, + 0.0355827f, -0.1196868f, -0.0745119f, 0.0281862f, -0.0422190f, -0.3069138f, -0.0477367f, -0.0550450f}, + {-1.7374619f, 1.4822800f, -2.1885235f, 1.8354234f, -0.5380136f, 1.6621803f, 0.6251035f, 0.1008954f, + -0.8387129f, -0.2063313f, 1.0661691f, -0.9799694f, -5.1710258f, -3.2260630f, -1.5073707f, -1.0792168f, + 1.8569958f, -0.2289213f, 0.0563821f, -1.6398847f, -4.1649504f, -2.7527378f, -0.0134577f, 3.0424533f, + 0.0364320f, 0.6762254f, -3.1551330f, 2.4888904f, 1.4757305f, -0.3141717f, -2.0126467f, -0.1675602f}, + {-0.9571826f, 0.0914152f, 0.0404339f, 0.2927902f, 0.2933607f, 0.0619171f, 0.0772318f, -1.3796169f, + -0.8194544f, -0.2179988f, -1.1241078f, -0.1443964f, 0.0559355f, -1.2914546f, -0.3445117f, 0.2031156f, + 0.0273864f, -0.0193422f, -0.2136522f, 0.0429592f, 0.0212854f, 0.0414394f, -1.1734651f, 0.0582848f, + 0.0136039f, -0.1892604f, 0.0764908f, -0.0130132f, -0.1272559f, -0.0818855f, -0.0408583f, -0.1563294f}, + {-0.0213695f, 0.0596942f, -0.0641309f, -0.0146449f, 0.0416586f, -0.0378931f, 0.1234860f, 0.1622967f, + 0.0794091f, -0.0639933f, -0.1030663f, 0.0579078f, 0.1050275f, -0.0136866f, 0.0149978f, 0.0876813f, + 0.0693554f, 0.1612417f, -0.0595916f, -0.1008234f, -0.0579058f, 0.0915138f, 0.1321436f, -0.1484535f, + -0.0920316f, -0.0024532f, -0.1045300f, 0.0924260f, 0.0277524f, -0.0287276f, -0.1271127f, 0.1164243f}, + {0.0713067f, 0.0198056f, -0.3023696f, -0.0025908f, -0.0085885f, -1.1157553f, 0.0236462f, -0.0704844f, + -0.0189257f, -0.0997382f, 0.3379845f, -0.1229390f, -0.0616165f, -0.8968034f, 0.0401445f, -0.1144476f, + -0.0532077f, 0.0604580f, 0.0609454f, -0.1613472f, 0.0103525f, -0.1653874f, 0.0205189f, 0.0758978f, + -0.1514593f, 0.0151441f, 0.2043469f, 0.0349607f, -0.1361278f, -0.1255922f, 0.0631648f, 0.3570991f}, + {0.3371337f, -3.7541580f, 2.2215877f, -0.3390516f, 0.1912718f, -4.1861577f, -1.2264019f, 2.8179801f, + 0.0667294f, -0.0093539f, 2.3029909f, 3.1814916f, 3.9780347f, 0.2310601f, 0.3986159f, -0.8544636f, + 0.4139664f, -0.1876569f, -0.2448732f, -2.8053334f, 4.0488625f, 2.1094146f, -6.7310257f, -4.9950023f, + -0.8315823f, 0.0555959f, 2.4573720f, -3.7234364f, -4.2910552f, -0.2995245f, -3.2605181f, 2.3620574f}, + {-1.5522735f, -0.1866350f, -0.0067679f, 0.3196557f, 1.4052233f, 2.8143549f, -0.9992948f, -0.5309914f, + -25.8852596f, -0.1218249f, 0.6625420f, 0.3007106f, -0.2767264f, -0.1847300f, -0.5313534f, -0.0383462f, + -0.1987552f, 0.0581405f, -0.3376078f, 1.2621028f, 0.0818709f, -0.1401216f, -0.4550788f, -0.1592657f, + 0.0597123f, 0.1344101f, -0.1005317f, -0.1538406f, 2.9142656f, -0.0806051f, -0.4267367f, -31.9512234f}, + {0.6859627f, 0.1212986f, 0.1291616f, 0.0459838f, -0.0899920f, 0.0287645f, 0.1987007f, -2.7079368f, + -0.2628384f, -0.1402464f, -0.6302179f, -0.2923960f, -0.1106663f, 0.8256195f, -2.8054097f, -0.0296494f, + -0.5632019f, -0.1335654f, -0.1558440f, -6.8611612f, 0.0203786f, 0.0046566f, -0.4401442f, -0.0471430f, + 0.4535986f, -0.8657981f, 0.0684740f, 0.0518814f, -0.0123748f, -0.2270164f, 0.0922878f, -0.3863277f}, + {0.0127175f, 2.3346109f, -0.4390767f, -0.4657893f, 0.1659466f, -0.1132782f, -0.4928388f, 0.7652873f, + 1.1510741f, -0.0879600f, 0.2721785f, -0.1878961f, -0.3477249f, -0.8473209f, -0.8931856f, -0.4328294f, + -11.9181929f, -0.0282545f, -0.0217915f, 1.6676594f, -0.2122232f, -0.6190930f, 1.9053432f, -0.7592348f, + -1.0739189f, -0.7170524f, 0.3864411f, -0.8849231f, 0.1393488f, 0.0738489f, 0.4460345f, 1.9020857f}, + {0.4453296f, -0.0767821f, 0.1638939f, 1.6997167f, -0.1098599f, -0.0551604f, 0.0040561f, -13.5290670f, + -0.1285677f, -0.0590394f, 0.6499141f, -0.7617344f, 0.0453151f, 0.3104213f, -1.0711143f, 0.1361838f, + -0.4365610f, -0.1300649f, 0.2013344f, -0.5308123f, 0.1451896f, 0.1030715f, -0.6487910f, -0.3136590f, + -0.0280079f, 0.5394178f, 0.1318262f, -0.0159292f, 0.0636870f, -0.3224248f, -0.1868187f, -0.2468304f}, + {-0.0333494f, -0.0834255f, -0.1221875f, 0.6861304f, 0.0521738f, -0.0416543f, -0.4437352f, -19.3246250f, + -0.1520821f, 0.0528602f, -0.6375434f, -0.5803806f, -0.0958465f, -2.0058544f, -0.8282642f, 0.0259000f, + 0.4846996f, 0.1211179f, 0.0356884f, 1.0009497f, 0.0635682f, -0.0314105f, -0.0011147f, 0.0131714f, + -0.3410152f, 0.2798154f, 0.0961889f, 0.1266228f, -0.0934717f, -0.0904307f, 0.1355542f, 0.5722573f}, + {0.2146454f, 0.2143834f, 0.1290650f, -0.9063646f, 0.2100945f, 0.1331054f, -0.2620614f, -0.1264993f, + 0.1313979f, 0.0455465f, -0.8395286f, -0.4967833f, -0.0538581f, 0.9155380f, 0.6627046f, 0.1691243f, + 0.9887002f, -0.1597013f, -0.1236713f, -1.9041336f, 0.0427585f, 0.0849747f, -5.2559652f, -0.3133100f, + 0.0141170f, -0.1635530f, 0.4938746f, 0.0162943f, 0.2107756f, -0.3413893f, -0.0657575f, 1.0542560f}, + {-2.8868380f, -2.0837426f, -1.0611480f, -0.6143807f, -0.6398501f, -2.8018746f, 0.5166737f, -1.0814301f, + -1.9272422f, -0.1017482f, -0.4651161f, -1.4021232f, 1.8854499f, 0.1815407f, 0.5965426f, -2.3344259f, + -0.0690846f, -0.1678239f, -0.4219488f, 0.6215640f, 1.0270095f, -0.3473049f, -0.3926674f, -0.7942593f, + 1.1305071f, -1.4621233f, -0.8051161f, -0.7698632f, -2.6038630f, -0.3090037f, -1.6365144f, -1.0179478f}, + {0.0046026f, 1.1319581f, -2.6405678f, -2.0353596f, -2.1687336f, 0.3364883f, 2.1122196f, 0.2584647f, + -2.4344857f, -0.0378498f, 0.6158544f, -0.6060749f, -4.9598379f, 0.1570698f, 2.2436838f, -2.6198347f, + -2.0935996f, -0.1845744f, -0.0716080f, -1.9338604f, -4.1995640f, -3.6706774f, -1.6762524f, 3.9646862f, + -0.9677961f, 1.8319578f, -3.1916575f, 3.7312632f, 0.0820446f, -0.0497568f, -0.0898171f, -0.2499462f}, + {-0.0780375f, -0.0286571f, 0.1007227f, 0.0012229f, -0.0531285f, 0.0840718f, 0.1013894f, 0.1312424f, + -0.0673772f, 0.1603183f, 0.0074385f, -0.0718321f, -0.1549873f, 0.1616689f, 0.0405887f, -0.1558588f, + 0.0740745f, 0.1696893f, -0.0064026f, -0.1656420f, -0.1186674f, -0.1262667f, -0.0784757f, -0.1280154f, + 0.0909976f, 0.0853046f, -0.1075811f, 0.1310615f, 0.0610194f, 0.0647223f, 0.1360559f, 0.0440074f}, + {-0.2106480f, 0.0087131f, 0.1119385f, -1.0611318f, 0.5250220f, 0.0525479f, -0.2733742f, -1.0799565f, + -0.5601607f, -0.0651806f, -1.9793440f, -0.3373334f, -0.1550518f, 0.8932216f, 0.7264332f, -0.0450735f, + 1.2373760f, -0.1236272f, 0.0680048f, -3.0446634f, -0.1533586f, -0.0127355f, -0.3326311f, -0.0225603f, + -0.2265739f, -2.3752897f, -0.3771705f, -0.0728938f, 0.1741305f, 0.1111639f, 0.4131119f, 0.2239323f}, + {-2.5691276f, -1.4011253f, -2.0640867f, -3.7236946f, 1.5542637f, -0.9456654f, -1.7575809f, 3.6794879f, + -0.4439790f, -0.1009826f, 3.6702275f, -0.1935008f, -0.4423219f, -0.3825364f, -0.4784791f, 0.5927492f, + -2.3482494f, 0.0801714f, -0.1567418f, -1.7934613f, -0.1706410f, -0.6326947f, 0.6260155f, 0.3631033f, + -0.9325932f, 1.9647995f, -1.3409088f, 1.3501998f, 0.0367797f, -0.1744210f, 1.8690013f, -1.0737898f}, + {-0.5934777f, 0.6232591f, -0.3391055f, 0.2640936f, -0.2824444f, 0.4815128f, 0.6625078f, -0.1103976f, + 0.9555223f, -0.0624896f, -0.6778919f, 0.1181502f, -0.5425385f, 0.7297349f, -1.7261271f, -0.2917557f, + 1.1873137f, -0.2725933f, 0.0975242f, 1.7756181f, -0.5735835f, -0.4453230f, 0.9800369f, 0.9344145f, + -1.8692539f, 0.0120440f, -0.7315661f, 0.6250805f, 0.3839143f, -0.0376306f, 0.3816243f, 0.6059195f}, + {0.5522162f, -1.8043815f, -10.9379101f, 0.5719097f, -0.2246755f, -1.4856353f, 0.4877502f, 0.7163438f, + -11.8135147f, -0.0180790f, -0.9928634f, 0.1107815f, -0.0005064f, -0.3824990f, -0.7453306f, -1.9909632f, + -7.4362645f, -0.0245507f, -0.1815712f, -3.5507584f, -0.0075889f, -11.0296011f, -1.1292133f, -0.0710276f, + 0.5675677f, 0.2017778f, -0.0684891f, -0.0367653f, -1.6674192f, 0.0281711f, -0.8356591f, -0.0447807f}, + {0.2537312f, -3.0178010f, -0.3493635f, 1.8573236f, 0.4017631f, 0.9912633f, -0.8625028f, -0.7783228f, + -1.7815375f, -0.1204695f, 1.8551122f, 0.3344182f, -0.2828701f, -1.3226960f, -1.4470471f, 0.2895959f, + 0.6780876f, -0.2010069f, 0.0425280f, -2.1786852f, -0.1274053f, -0.2549899f, -0.2233993f, -0.1561645f, + -0.4640818f, 0.6375850f, 0.7733670f, -0.2388286f, 1.0447853f, -0.1503223f, 0.3823584f, -13.8176088f}, + {0.2575197f, -2.2127593f, -0.0389457f, -0.0215759f, 0.1659477f, -0.0097748f, -0.1935415f, -0.9091369f, + -0.1453371f, 0.0442428f, -0.1206519f, 0.1435609f, -0.0186047f, -5.0154042f, 0.0538177f, 0.0403250f, + 0.0240955f, 0.0331080f, 0.0517951f, 0.7422639f, 0.0069818f, 0.0248351f, -0.2205741f, -0.0082387f, + 0.2043269f, 0.0459435f, 0.0876343f, 0.0140607f, 0.1056308f, 0.0062555f, 0.0184278f, -0.5539715f}, + {-0.0398742f, 0.1075264f, 0.1725024f, -0.0755192f, -0.0360048f, 0.1325573f, 0.0903103f, -0.0882263f, + 0.1207692f, 0.0032722f, 0.0048489f, -0.1257241f, 0.1450990f, -0.0713558f, 0.1116815f, 0.1107689f, + -0.1447252f, 0.1581838f, -0.0160124f, -0.0425587f, 0.1411217f, 0.0865060f, -0.0643460f, -0.0431262f, + -0.1452804f, -0.0195101f, 0.1234572f, 0.0520887f, 0.1117576f, -0.0751791f, 0.1511539f, 0.1224861f}, + {0.7728126f, 2.3075340f, -0.0385258f, -3.1270287f, 0.9414487f, 3.5251477f, -0.8043440f, 0.7212446f, + -7.6850162f, -0.1609414f, -3.7687578f, -1.0751100f, -0.2052089f, 5.0728245f, 2.2835267f, 0.5930225f, + 0.1303335f, -0.1428799f, -0.3715075f, 0.5136011f, -0.4755619f, -0.2192461f, -3.8696294f, -0.0062392f, + -1.3774812f, -0.0034140f, -1.5944362f, 0.9773729f, 3.2859125f, -0.1616932f, -1.2785367f, -13.5732412f}, + {0.5535743f, 0.1461481f, -0.2218016f, -0.2971808f, -0.2169309f, 0.1564545f, -0.0390397f, 1.1558976f, + -0.0119933f, -0.0774637f, 1.1907971f, -0.5127968f, -0.0066028f, -1.6794037f, -0.3650940f, 0.2555613f, + -0.9488379f, 0.0449603f, -0.1620417f, 0.1583214f, 0.0000908f, 0.0152763f, -1.0660053f, -0.0139402f, + -1.7440189f, 0.2515209f, 0.3333162f, 0.1904725f, 0.1116094f, -0.2287960f, -0.0007165f, -1.7047704f}, + {-5.9897852f, -0.1316296f, -0.0218074f, -0.4602887f, 0.3288545f, -0.0882939f, -0.5929499f, 0.4294790f, + -0.0383545f, 0.0556869f, 0.1975944f, 0.1341491f, 0.0629570f, -2.2742157f, 0.0175826f, -0.1439869f, + -24.8701649f, -0.1582915f, -0.2460304f, -3.9643264f, 0.0863483f, 0.0180861f, -0.2210452f, -0.0868723f, + -0.4175525f, -0.8231756f, 0.0247534f, -0.1473545f, -0.0021330f, -0.0410253f, -1.1944869f, -1.1523768f}, + {0.1031547f, -3.3402514f, -4.3636522f, -0.1534714f, -0.0622189f, 0.0374694f, -0.0870097f, -4.1865788f, + -0.0555377f, 0.0252329f, 0.1339467f, 0.0461691f, -0.0503090f, 0.0289890f, -0.0095674f, -0.3289992f, + -0.0279080f, 0.0274977f, -0.0903500f, 0.5610157f, -0.0478177f, 0.4346960f, 0.4822784f, -0.1058945f, + -0.2026870f, -0.0560638f, 0.0910069f, -0.0818529f, 0.0819198f, -0.0292193f, 0.3040628f, -0.1275230f}, + {-5.8789845f, -17.1114635f, -4.6755161f, 0.1016624f, -0.8685016f, -0.3898779f, -2.3363957f, 0.1413794f, + -2.4254086f, -0.2171030f, -0.0901150f, 0.7058705f, 0.4166250f, -0.0231085f, -0.1789686f, -9.4244318f, + -0.6418229f, -0.0857969f, 0.1683681f, -0.0310597f, -0.0247807f, -5.3748040f, -7.4730940f, 0.1019564f, + -1.2126822f, -0.3726285f, -1.0287101f, 0.1803891f, -0.2227769f, -0.0791530f, -0.0159770f, -1.4883354f}, + {-17.9394970f, -0.5228514f, -11.3547935f, -0.0672671f, -2.0371394f, -0.9076943f, 2.4331825f, -6.9409127f, + 0.8286008f, 0.0208618f, -0.8009814f, 1.2268484f, 0.1943726f, -1.7297083f, -0.7668949f, -6.5505466f, + -0.6495168f, -0.0404727f, -0.1260914f, -3.5029383f, -0.0852898f, -2.9679556f, 1.6404767f, -0.0251449f, + 1.1460075f, -0.7877688f, -0.0586593f, -0.4741839f, -1.7420560f, 0.0295600f, -2.3574052f, 0.0974777f}, + {0.4443443f, 0.6384261f, 1.3317494f, -1.0085982f, 0.9508762f, 1.3168396f, -0.1862490f, -0.1801148f, + 1.1106120f, -0.0654911f, 0.1186706f, -0.7198273f, 0.5449172f, -0.5886080f, 0.7504217f, 1.8046317f, + -0.1294390f, -0.1939137f, -0.2383934f, 0.4131435f, 0.6910310f, 1.2821866f, -0.1088722f, -0.5660405f, + -0.1188610f, 0.0364403f, 0.3597929f, -0.6409024f, 1.2114668f, -0.0212278f, 0.8423592f, 0.4848156f}, + {-0.8772649f, -13.5265112f, -4.5540547f, -0.2856667f, 0.7604876f, -0.6829260f, -0.8320626f, 0.6541347f, + 0.4020181f, 0.0009324f, -10.9660740f, -0.3540186f, -0.2316812f, 0.3576394f, 0.0998953f, -1.5738430f, + 1.2089975f, 0.0706465f, -0.2538019f, 0.7016497f, -0.0282650f, -3.1291001f, -0.4375663f, -0.3979468f, + -0.1588882f, 0.3978875f, 0.2038192f, -0.4281644f, -0.5787544f, -0.0922198f, 0.9595569f, 0.0212818f}, + {0.3392667f, 0.1170919f, -0.0705636f, -0.1025443f, -0.1192213f, -0.0495686f, 0.0284667f, -0.1226804f, + 0.0050191f, -0.0516545f, -1.0892097f, 0.0033689f, 0.0471462f, 1.4266804f, 0.0288870f, -0.0110408f, + -1.1283765f, -0.1299917f, -0.4318301f, -0.9854419f, -0.0190479f, -0.0269406f, 0.3697925f, -0.0757695f, + -0.3632923f, -0.1714077f, 0.0669245f, 0.0557428f, -0.1713906f, -0.4307863f, -0.1749060f, -2.1246362f}, + {0.8383662f, -3.8122442f, 0.1568939f, -2.2105119f, -0.7086993f, -0.4664145f, -0.3578597f, 0.5554636f, + 0.6965880f, -0.1506968f, 0.2646832f, 0.2874083f, 0.1901203f, -2.4997077f, -0.3519035f, -0.0518054f, + 1.0862818f, -0.2502540f, -0.3133347f, -0.7411230f, 0.1268138f, 0.1069811f, -0.8109779f, 0.0264679f, + 0.1604289f, -0.7534032f, -0.1419461f, 0.0688303f, -0.1570919f, -0.3055144f, -0.7415189f, 2.5547018f}, + }; + ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_4[1] = {1.4616280f}; + ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_4[32][1] = { + {0.0609813f}, {0.0685224f}, {0.1655236f}, {-0.0599842f}, {0.0669006f}, {-0.1817371f}, {-0.0539167f}, + {-0.0737955f}, {0.0654664f}, {0.0302955f}, {-0.0586768f}, {0.0717433f}, {0.1472274f}, {-0.0610073f}, + {-0.0601061f}, {0.2086218f}, {-0.0545418f}, {-0.0388369f}, {-0.0613536f}, {-0.1141072f}, {-0.2289097f}, + {-0.3354485f}, {0.0831025f}, {0.1333673f}, {0.0490410f}, {0.0484894f}, {0.0436755f}, {-0.1479877f}, + {0.1540713f}, {0.0021261f}, {-0.0845848f}, {-0.0564973f}, + }; - 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, - -0.8549317f, -6.8545237f, -1.2129461f, 3.0617838f, -0.3911322f, 0.0799793f, -2.5398655f, -0.5780622f, - 2.8533990f, -0.1777968f, -2.6457164f, -0.7976936f, 4.5644889f, -2.1747942f, 3.4286616f, -10.1073380f}; - ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_0[38][32] = { - {6.1269712f, -10.6625051f, 17.4907818f, -0.0019928f, -3.4468415f, 1.6674044f, -7.8957767f, 2.2077549f, - 9.5517254f, -5.1345053f, -30.1643391f, 4.0148559f, -19.8330841f, -18.3806915f, 0.1334764f, 1.6213616f, - -4.1423774f, -15.3062429f, -1.0209556f, 1.5580219f, 0.7426265f, 0.0033929f, 1.3924170f, 0.9196110f, - -0.8995734f, 1.0594707f, 39.4390869f, 8.7642002f, 28.4583893f, -5.9235659f, 3.7221889f, 14.4167147f}, - {1.7863803f, -0.6068707f, 0.3166098f, -0.0608759f, 0.5939785f, 0.4870262f, -3.1375074f, -17.7147388f, - -0.7231818f, -9.3808413f, 2.2070611f, 15.7461920f, 0.9355862f, 2.3942475f, -0.0671409f, 3.5954301f, - -3.0463996f, -2.0748904f, -0.5450584f, -4.4800100f, 0.6074556f, -0.0161482f, 3.0624702f, -4.5688419f, - 2.9881518f, -0.3714012f, -0.0387531f, -0.7699140f, 4.4028845f, 5.0333014f, -4.7350726f, -8.6568584f}, - {5.6548429f, -0.0207700f, 0.1785973f, 0.0881671f, 0.2530097f, -0.1893259f, -0.1105739f, -0.5183877f, - 1.0728362f, 0.1833011f, 1.7765219f, 0.3127359f, 0.0455277f, -0.1442616f, -0.1048361f, -0.1235604f, - -0.1217661f, -0.5487315f, 0.7575656f, -0.1177454f, -17.0993137f, 0.1628031f, 0.2789381f, 0.5304270f, - 0.0837841f, -3.1120780f, 0.0074821f, -0.1648044f, -0.3395336f, 0.3958135f, 0.8718957f, -1.1980486f}, - {0.2401041f, -0.0585765f, -0.0144584f, 0.0411095f, 0.0752229f, 0.0292672f, -0.2437613f, -1.4396472f, - -0.0971315f, -1.7181139f, 0.2417643f, 2.2030578f, 0.0566049f, 0.1081589f, -0.1060181f, 0.3473758f, - -0.7095683f, -0.0345675f, 0.2794849f, -1.1702278f, 0.2622930f, -0.0072611f, 0.5026371f, -1.2882922f, - -0.4712771f, 0.0597130f, -0.0039970f, -0.6050836f, 0.1554724f, 1.0991164f, -0.4975886f, 0.2597970f}, - {0.0766028f, 0.0218421f, -0.1739017f, -0.0076569f, 0.0384461f, -0.1841756f, 0.9677940f, -3.1114254f, - 2.3830564f, 2.0706992f, -0.9643140f, 0.7361387f, -0.0060253f, -0.1554846f, -0.0831100f, 2.8754771f, - -1.4403527f, -0.5281797f, 0.5157787f, 4.2405987f, 0.4807618f, 0.0217647f, -1.2626950f, 0.9145837f, - -0.3931780f, 0.3426280f, -0.0065206f, -0.7510439f, -0.4555758f, 2.7724340f, -1.2173026f, 0.1039017f}, - {0.5685715f, 0.3927337f, 0.4942532f, -0.0671033f, -0.2808350f, -0.0336000f, -1.3983957f, 0.9876546f, - -2.3840380f, 0.7315395f, -2.2009561f, -1.4631602f, -0.4672308f, -0.4994236f, 0.1169335f, -1.1894208f, - -1.2692982f, 0.3303853f, -2.0147655f, -0.9912014f, 1.0042895f, 0.1121151f, -1.0789106f, -2.2821584f, - -6.6459913f, -0.0959398f, -0.0068429f, -2.8177626f, 0.3213172f, -2.6832986f, -4.7613306f, -0.9985733f}, - {1.4419515f, -0.3864825f, -0.6756768f, -0.1273375f, 0.4321181f, 0.3354745f, -0.8236564f, -2.8190827f, - 0.7090831f, 1.9072700f, -3.1834064f, -2.6938572f, 0.5051147f, 1.4382831f, 0.1241910f, -0.7352629f, - 0.7703634f, -1.7556250f, -2.1104112f, 3.0603442f, 1.9873468f, -0.0358815f, -1.0087154f, 3.8253262f, - -0.5466214f, 0.0875162f, 0.2691758f, 0.7121435f, 1.9314718f, -0.1580560f, 3.6484149f, -5.3173709f}, - {6.9104381f, -0.0033664f, -1.4405546f, -0.1768288f, 0.2028089f, -0.1012344f, -4.4735684f, 0.6354278f, - 4.3039737f, 0.2056303f, 1.8338999f, -1.1351355f, 0.1015760f, -0.0733253f, -0.0561627f, 2.5292397f, - 1.6314448f, -0.9333628f, -0.7773662f, 0.8313186f, -0.7829623f, 0.1265118f, 0.5922315f, -0.3463379f, - -1.3269740f, -3.3302619f, -0.0061799f, 2.3374722f, 0.0880938f, 0.7470241f, -0.4205743f, -4.7557602f}, - {0.0380794f, 0.0947470f, 0.0419397f, 0.0582226f, -0.0603404f, 0.0234028f, -0.2575402f, 0.4125248f, - 0.3035339f, 0.2663808f, -0.6092452f, -1.4727812f, 0.0247187f, -0.0539688f, -0.0150413f, 0.2094955f, - 0.5379737f, -0.3255228f, -0.5639279f, 0.0786276f, 0.6703192f, 0.1557026f, -0.2753083f, 1.1463971f, - -0.9372965f, 0.5657740f, 0.0041413f, 0.0870248f, 0.0101520f, -0.8214461f, 0.1212932f, 1.5648646f}, - {-0.0969819f, 0.0137566f, 1.3515147f, -0.0155047f, -0.1416170f, -0.1636726f, 0.5184190f, 0.4732984f, - 0.6815788f, -1.0522166f, -0.4486531f, -0.0516016f, 0.0201894f, -0.0849667f, -0.0861271f, -1.2027841f, - 1.2458711f, -0.7061657f, 1.0381308f, -0.3450044f, -0.1300479f, -0.0828402f, 0.6859242f, -1.0575374f, - 0.6947553f, -0.0922188f, 0.0199132f, 0.8038982f, -0.1734094f, -0.1057449f, 1.6305015f, -0.0688597f}, - {-1.8151448f, 0.1024327f, 1.7063105f, 0.1130912f, -0.1081472f, -0.2904744f, -1.3465070f, -1.0455177f, - -0.4581082f, -3.2220871f, 0.5221398f, -5.1637673f, 0.0811146f, -0.1326323f, -0.0379338f, -3.0439703f, - -2.4246936f, -0.3670847f, -3.1256330f, -1.6595014f, -3.4715190f, -0.1526113f, -1.0420206f, 0.9536474f, - -3.2932863f, 1.6048199f, 0.0025162f, -3.6049840f, 0.0604250f, -2.2404826f, 1.8406851f, -3.1381185f}, - {1.2985691f, -1.1044264f, 0.9062797f, -0.0788333f, 0.2694912f, 0.0032800f, -0.0574267f, 0.9734111f, - 1.1532565f, 2.6786125f, -3.8574269f, -2.2871449f, -0.1261243f, 1.0545347f, -0.1454154f, -0.5609738f, - 1.8385800f, -0.8035598f, -1.7668265f, 5.1665063f, 0.7966110f, 0.0940206f, -2.3943975f, 2.3344002f, - 1.0342182f, 0.4806454f, -0.3880928f, 0.6998246f, 1.4011886f, -1.7313483f, 4.9702630f, -6.0058608f}, - {1.0300356f, 0.0616315f, -0.1113776f, -0.1694220f, 0.7159944f, 0.0626456f, 2.0994680f, 0.3452290f, - -3.0487001f, 0.0654031f, -1.1510723f, 0.5370992f, -0.0290704f, -0.0300795f, 0.0751569f, -0.2345951f, - -0.3472281f, 0.4424143f, 1.2444530f, -0.2114656f, 0.7865694f, -0.0709381f, -0.1839961f, -0.0529834f, - 0.5867608f, -3.8793530f, -0.0814745f, -0.6368676f, 0.0361213f, -0.5549288f, 0.5661780f, 1.8374584f}, - {0.3345098f, 0.0068199f, -0.4205509f, -0.1088801f, -0.1043202f, -0.0040804f, 0.3400922f, 0.2673528f, - -0.6050695f, 0.4443954f, -0.4319905f, -0.6044132f, -0.0260679f, 0.0137036f, 0.0765494f, -0.0095099f, - 0.5880439f, -0.0083854f, -0.2407522f, 0.1942379f, 0.6554548f, -0.1322891f, -0.8298992f, 0.7909554f, - 1.0528831f, 0.1970959f, 0.0754069f, -0.0947960f, -0.0279494f, -0.5888316f, 0.8919419f, 0.4828835f}, - {0.3995822f, -0.2139665f, 0.3982936f, -0.1285759f, -0.3445527f, -0.1167238f, -0.1263519f, 0.8393803f, - -0.7758383f, 0.0719291f, -0.0134762f, 0.1715237f, 0.0796666f, 0.1023507f, -0.1172728f, -1.2364722f, - 1.2592632f, -0.3168479f, 0.7487004f, -1.5170647f, -0.2235429f, -0.1620898f, 1.4064828f, -1.0821995f, - 0.0740103f, -1.0412805f, -0.0621277f, 0.2439800f, 0.2684972f, -1.1661061f, 0.7859434f, -0.6170313f}, - {2.1615884f, 0.1431713f, 0.0642652f, -0.0522325f, -0.2658786f, -0.0245810f, -1.6857448f, -0.6685011f, - -0.6978170f, -0.8716729f, 0.3129902f, -2.5870812f, -0.2855283f, -0.3205920f, -0.0084069f, 1.3182145f, - -0.6923816f, -0.3730274f, -2.3638811f, -1.1128502f, -2.4709859f, 0.1349022f, -0.3574466f, -0.6597407f, - -4.1122031f, 0.2240651f, 0.1806145f, -1.6836300f, -0.0766231f, -3.2611966f, 0.0091456f, -0.0997367f}, - {5.2476101f, -0.1966512f, 4.8935304f, -0.1551689f, 1.6919724f, -0.8324367f, 14.3318472f, -0.3503132f, - 10.3614969f, -9.1522884f, -0.2543063f, -1.8476851f, 16.7961140f, 9.9541416f, -0.0434563f, -9.6973553f, - -5.0469398f, 6.1688442f, 7.6429725f, -7.3149266f, 1.2345183f, 0.1412155f, 0.7114770f, -1.6378664f, - 5.1548996f, 0.3686100f, -45.3027611f, 3.0492647f, -37.3445892f, 2.7421410f, -2.7958770f, -25.2034016f}, - {1.4597454f, -1.0561740f, 0.9751291f, 0.0446527f, 0.3691662f, 0.1006782f, 0.1418435f, 0.8871480f, - 1.1603093f, 2.8034730f, -4.0856910f, -1.9786842f, -0.2206208f, 0.9539357f, 0.0868183f, -0.6811873f, - 1.9642411f, -0.8065316f, -2.0244894f, 5.2936082f, 0.6120632f, -0.1194160f, -2.3925939f, 2.5555069f, - 1.0149733f, 0.4607603f, -0.2197217f, 0.5703423f, 1.4049014f, -1.5900208f, 5.1645074f, -6.0569463f}, - {0.9000676f, -0.0028781f, -0.1967366f, 0.1039593f, 0.7993248f, 0.0655172f, 2.2296758f, 0.4391927f, - -3.0292840f, 0.0334536f, -1.1728534f, 0.3479103f, -0.1190938f, 0.0410203f, 0.1146637f, -0.2958017f, - -0.3240463f, 0.4361866f, 1.0564958f, -0.1989332f, 0.5194008f, -0.0628912f, -0.1733121f, -0.1255383f, - 0.5990249f, -3.7692382f, 0.0995128f, -0.7101220f, -0.0785123f, -0.3514554f, 0.6662078f, 2.0991604f}, - {0.1781942f, -0.1873588f, -0.4653996f, -0.0153059f, -0.1399561f, -0.0498718f, 0.4552556f, 0.2300792f, - -0.7682312f, 0.4342302f, -0.3787803f, -0.6089386f, -0.1049337f, 0.0395331f, 0.0220332f, 0.0114750f, - 0.4672548f, 0.1284784f, -0.2472819f, 0.2892784f, 0.4788667f, 0.0472555f, -0.6593549f, 0.6508777f, - 0.9286987f, 0.3043948f, -0.0635985f, 0.0814399f, -0.1168853f, -0.6688027f, 0.8876534f, 0.4865684f}, - {0.4024099f, 0.0480259f, 0.4588822f, -0.1793082f, -0.2151573f, -0.1871128f, -0.1502780f, 1.1011307f, - -0.9467706f, 0.2632496f, -0.1257263f, -0.0241331f, 0.2280627f, 0.0878608f, -0.1334262f, -1.1642927f, - 1.0943586f, -0.4799654f, 0.5981907f, -1.5051398f, -0.4235946f, 0.0012827f, 1.2342577f, -0.8281875f, - 0.2776567f, -1.0362227f, 0.0408372f, 0.1540821f, 0.1777556f, -1.2684357f, 0.8836584f, -0.4001710f}, - {2.1558056f, 0.2082023f, 0.0863442f, 0.0364868f, -0.3985825f, 0.0307202f, -1.8889453f, -0.5614714f, - -0.7311882f, -0.8075573f, 0.4895108f, -2.7770483f, -0.3121874f, -0.1671291f, -0.1281284f, 1.3212786f, - -0.5310181f, -0.1974759f, -2.6240873f, -0.8320529f, -2.3875966f, -0.0286360f, -0.6263188f, -0.6553424f, - -4.1658955f, -0.0601300f, 0.0946256f, -1.6795633f, -0.1251303f, -3.0974686f, 0.2412274f, -0.0687501f}, - {2.0523887f, -0.6387668f, 2.0633900f, -0.0550964f, 0.5181718f, -0.4202190f, 1.8569367f, 0.8295385f, - 0.8555872f, 2.4727983f, -0.2072828f, -1.9006120f, 0.5379534f, 0.4463673f, 0.1468820f, 0.4918649f, - -3.4016700f, 0.2884440f, -1.9418719f, 4.5157170f, -0.5160927f, -0.0199372f, 3.1353824f, -0.9863126f, - -1.5135859f, 0.7576568f, 0.6715558f, 2.7409093f, 0.9291748f, -0.3247162f, 1.8204515f, -8.9181070f}, - {-0.1428107f, -0.0829889f, 0.4213613f, 0.0225415f, 1.2238166f, 0.0477106f, 0.3031853f, -0.7466553f, - 2.0663500f, 0.7588379f, 0.3689216f, -0.2003786f, 0.1242338f, 0.1693589f, -0.0351716f, -0.0186597f, - -0.0189417f, 0.5468715f, -0.2862698f, -0.1311738f, 3.0747476f, -0.0310747f, 0.0943165f, 0.3139819f, - 0.6274695f, -1.8314874f, 0.0147495f, 0.3554756f, 0.3829916f, 0.4891713f, 0.1328600f, 1.0535098f}, - {0.0534900f, 0.1787969f, -0.0571320f, -0.0685673f, 0.1968977f, 0.0374476f, 0.7876674f, 0.0828491f, - 0.6444036f, -0.2203166f, -0.2383427f, 0.5397566f, 0.0106769f, -0.1230072f, -0.0135021f, -0.5691944f, - -1.5040319f, 0.0406933f, -0.0025478f, 0.9251419f, -1.7180276f, -0.1112956f, 1.4840862f, 0.0407115f, - -0.0100329f, 0.0583593f, -0.0110524f, 0.7431355f, -0.0971857f, -0.5501527f, -0.6371027f, -0.1935233f}, - {-0.6455778f, 0.2317368f, 0.9285696f, -0.1415854f, 0.0822560f, 0.2488030f, -2.6992166f, 0.0884904f, - 0.6735302f, -0.1467820f, 0.5641044f, 0.6436581f, 0.0818401f, -0.0336634f, -0.0729000f, -0.1206900f, - -2.5739892f, 0.5776953f, 0.9531668f, -1.2362405f, -0.0615577f, -0.0143544f, -2.7525210f, 1.3738545f, - 0.2751348f, -1.7463943f, -0.0020144f, 2.4814103f, 0.1716725f, -0.7055540f, -0.3474010f, 0.4482578f}, - {-0.2526205f, -0.7463821f, -3.6076138f, -0.1511098f, 0.1216256f, 0.0888247f, -1.0190924f, -1.3260181f, - -0.0443211f, -4.8911066f, -3.4385188f, -6.0057454f, 0.3340450f, 0.2997236f, -0.0907855f, 0.7500492f, - -0.4007562f, 1.9382039f, 0.5687234f, 2.6511824f, 4.7703862f, 0.0006749f, -0.0201394f, -3.5885489f, - -4.1518898f, 0.0807014f, -0.0584071f, -0.8100027f, 0.7697087f, -0.8038046f, -1.2945876f, -4.0110312f}, - {0.4337017f, -1.1532011f, 2.0740633f, 0.0271806f, 0.6654227f, 0.1012998f, -4.0791736f, 1.2631345f, - 1.9511020f, 2.3272331f, 1.2707534f, 1.6306664f, 0.4936035f, 0.8285242f, 0.0807625f, 3.8652387f, - 0.0281145f, 1.6877037f, 1.2557380f, -0.3036775f, 0.5604967f, 0.1551418f, -0.9599600f, -6.3067718f, - -0.6352320f, 0.8058553f, 0.3657880f, -2.0491202f, -0.3926269f, 2.5650854f, 1.3697821f, -8.3070078f}, - {5.1334143f, -0.0351738f, -0.4774780f, -0.0679726f, 1.4569254f, 0.0580191f, -0.3649136f, -0.2298838f, - -3.3826666f, -0.7392708f, -0.6036060f, -0.2612940f, -0.1877640f, -0.1145124f, -0.0042578f, -0.0311193f, - -0.0320479f, 0.5270581f, -0.4324475f, 0.2681437f, 4.7813129f, -0.0222701f, -0.0525629f, -0.2861001f, - -0.1251072f, 3.9112861f, 0.0045046f, -0.0426071f, -0.3299106f, -0.0686970f, -0.1602017f, -0.0070103f}, - {-0.6633690f, 0.0103367f, 0.5998458f, 0.1256577f, -0.0359184f, -0.0176820f, -0.6458368f, -0.0370536f, - 0.3542259f, 0.1394724f, 0.8255956f, 0.2501569f, 0.0320156f, -0.0256806f, 0.0277949f, 0.0036392f, - 0.2825173f, 0.1400358f, 1.0011463f, -0.6792242f, 0.0672508f, 0.0728705f, -0.1089695f, -1.0414587f, - -0.4135485f, 0.4293025f, -0.0041241f, -0.9564193f, 0.0314900f, 0.8658463f, -0.7734696f, -0.7610567f}, - {-0.0200122f, -0.0749178f, -1.5026549f, -0.0387432f, -0.0713735f, 0.1214790f, 1.8730290f, -0.0552839f, - -1.6867150f, 0.2282097f, 0.7161849f, -0.1018546f, -0.1092003f, 0.0365504f, -0.1326883f, 1.2310545f, - 0.1800210f, 0.7024739f, -2.9606545f, 1.2275347f, -0.2050014f, 0.0940569f, 0.4761694f, 0.8812068f, - -0.0083424f, -1.5406264f, 0.0061815f, -2.7606382f, 0.0248556f, 1.1086880f, -1.3608936f, 1.0795454f}, - {0.9734020f, 0.3905411f, -3.7008634f, 0.0013557f, 0.1649124f, 0.9935362f, 1.3489184f, 0.9505764f, - 0.7966231f, -0.1627246f, -2.5754328f, 1.4892205f, 0.8586300f, 0.6974363f, 0.1320204f, -0.7840260f, - 0.3121157f, 0.0966901f, 2.7447381f, 1.8256680f, 0.7229405f, -0.1723188f, 0.9145948f, -2.1376033f, - 0.5259342f, 0.0731194f, -0.2908303f, -0.2603913f, -0.2326528f, 3.6684167f, -0.2883157f, -2.8546307f}, - {-4.8917460f, 6.7944999f, -0.2255474f, 0.1051999f, 3.9000113f, 2.0624907f, 5.3019547f, 10.0209141f, - 1.1268179f, 2.2669628f, -6.5002980f, 1.8408583f, 5.3039579f, 2.2055962f, 0.1055369f, 1.7230233f, - 6.9605255f, 7.7025104f, 2.9880707f, -0.9274251f, -0.2287160f, -0.0206735f, 0.6885675f, 2.8179996f, - -7.1129837f, -1.3772345f, 3.8655453f, -5.9388318f, -0.0469947f, 7.2763596f, -6.3536129f, -17.0069847f}, - {1.8787041f, -0.9953383f, -1.4839923f, 0.1308209f, 0.3657510f, 0.3106483f, -1.4158971f, -6.7449651f, - 0.6553892f, -4.5046172f, -3.5489719f, 3.5363002f, 0.5454772f, 2.3521471f, 0.1612140f, -0.9744226f, - 0.6546553f, -2.7179255f, -1.7758157f, 0.3089439f, 1.7462813f, 0.1654593f, -0.2440207f, 3.9501827f, - 1.3750844f, 0.0596805f, -0.1977254f, 0.0264880f, 2.6396444f, 1.0816911f, 3.6413448f, -6.0299959f}, - {-4.1295738f, 0.1044480f, 0.2131937f, 0.0420826f, 0.5292229f, 0.0090477f, -0.0973486f, 0.9596778f, - 2.9579651f, -0.6364226f, -1.7556342f, 0.1539868f, -0.1273174f, -0.1348504f, 0.1257833f, -1.4168571f, - -1.0960362f, 0.0482449f, -1.4395387f, -0.2524115f, -2.9162085f, -0.0451428f, -0.4021681f, -0.5756381f, - 0.0515293f, -3.1996479f, -0.0007676f, -1.3878343f, -0.2864279f, -0.9579773f, -1.0999249f, 1.6500067f}, - {-2.4806111f, -6.8115449f, 3.2805641f, 0.1187415f, -0.9950783f, 6.2553434f, -1.6450261f, -6.1463733f, - 2.7507148f, 4.2995782f, 0.0461297f, -0.5417359f, 2.4306326f, -7.3530145f, 0.0698273f, -0.9394333f, - -1.3595498f, -7.5141478f, -1.4911395f, 3.2300410f, 0.1203540f, 0.0314884f, -2.0116949f, -0.8167119f, - 2.4133310f, 0.1920709f, 1.0619365f, 0.2459123f, 6.9166069f, -2.6384118f, 3.6829739f, -7.2385545f}, - {0.9408096f, 14.9067144f, 1.7709646f, 0.1105646f, -0.5600107f, -15.3188124f, -12.3718462f, -1.8893757f, - 13.6364670f, -5.7327847f, -14.1805468f, 1.0581509f, -14.2186184f, 14.8948650f, 0.0190344f, 5.4395180f, - 6.7243400f, 9.8468456f, 4.5144215f, -1.4551491f, 1.1032411f, -0.0317988f, 2.3398454f, -3.1671596f, - -7.7541409f, 1.1255593f, 6.7340465f, -4.4448423f, -9.1472626f, -3.1959128f, 4.4181323f, -2.7904994f}, - {-2.1621978f, -4.7202382f, 1.7378219f, 0.1417439f, -0.5000908f, 5.4468708f, 1.4260571f, -6.6136570f, - 1.5713804f, 3.4479704f, 2.7354901f, -0.7388076f, 5.4666147f, -3.8697338f, -0.1368596f, -2.7903373f, - -1.2043713f, -4.9554005f, 0.3324645f, 1.6767365f, 0.1156244f, -0.0326964f, -2.0945346f, -0.4590589f, - 3.0942657f, 0.0015020f, -6.2626700f, -0.3969755f, 0.7717427f, -1.9667094f, 2.9664171f, -11.9477053f}, - }; - ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_2[32] = { - 9.8383608f, 3.6922295f, 3.5774977f, -4.4619012f, 6.5087032f, -0.9540017f, -0.5059246f, 0.0706402f, - 14.3396597f, -0.2771132f, -4.8409863f, -8.3581600f, -3.5078344f, 4.3287506f, -5.7808843f, 3.9264839f, - -2.1697845f, -0.0040514f, -0.2095029f, -6.8678174f, 1.7911285f, -0.4510343f, 1.2410443f, -4.5678806f, - -0.5693849f, 2.3320096f, 4.4606552f, -6.3771009f, -4.3149071f, -0.1905672f, -3.5726390f, -1.0744030f}; - ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_2[32][32] = { - {-0.0155548f, 0.0243339f, 0.0037967f, -0.2771824f, 0.0111955f, -0.0115980f, 0.0079653f, -2.9803498f, - -0.0061037f, -0.0956634f, 0.0332446f, 0.0179244f, -0.0080377f, -9.0180779f, 0.1720033f, 0.0350694f, - -0.0146588f, -0.2135506f, -0.3158041f, 1.3697664f, 0.0119146f, 0.0119120f, -0.0986927f, 0.0297492f, - 0.0355827f, -0.1196868f, -0.0745119f, 0.0281862f, -0.0422190f, -0.3069138f, -0.0477367f, -0.0550450f}, - {-1.7374619f, 1.4822800f, -2.1885235f, 1.8354234f, -0.5380136f, 1.6621803f, 0.6251035f, 0.1008954f, - -0.8387129f, -0.2063313f, 1.0661691f, -0.9799694f, -5.1710258f, -3.2260630f, -1.5073707f, -1.0792168f, - 1.8569958f, -0.2289213f, 0.0563821f, -1.6398847f, -4.1649504f, -2.7527378f, -0.0134577f, 3.0424533f, - 0.0364320f, 0.6762254f, -3.1551330f, 2.4888904f, 1.4757305f, -0.3141717f, -2.0126467f, -0.1675602f}, - {-0.9571826f, 0.0914152f, 0.0404339f, 0.2927902f, 0.2933607f, 0.0619171f, 0.0772318f, -1.3796169f, - -0.8194544f, -0.2179988f, -1.1241078f, -0.1443964f, 0.0559355f, -1.2914546f, -0.3445117f, 0.2031156f, - 0.0273864f, -0.0193422f, -0.2136522f, 0.0429592f, 0.0212854f, 0.0414394f, -1.1734651f, 0.0582848f, - 0.0136039f, -0.1892604f, 0.0764908f, -0.0130132f, -0.1272559f, -0.0818855f, -0.0408583f, -0.1563294f}, - {-0.0213695f, 0.0596942f, -0.0641309f, -0.0146449f, 0.0416586f, -0.0378931f, 0.1234860f, 0.1622967f, - 0.0794091f, -0.0639933f, -0.1030663f, 0.0579078f, 0.1050275f, -0.0136866f, 0.0149978f, 0.0876813f, - 0.0693554f, 0.1612417f, -0.0595916f, -0.1008234f, -0.0579058f, 0.0915138f, 0.1321436f, -0.1484535f, - -0.0920316f, -0.0024532f, -0.1045300f, 0.0924260f, 0.0277524f, -0.0287276f, -0.1271127f, 0.1164243f}, - {0.0713067f, 0.0198056f, -0.3023696f, -0.0025908f, -0.0085885f, -1.1157553f, 0.0236462f, -0.0704844f, - -0.0189257f, -0.0997382f, 0.3379845f, -0.1229390f, -0.0616165f, -0.8968034f, 0.0401445f, -0.1144476f, - -0.0532077f, 0.0604580f, 0.0609454f, -0.1613472f, 0.0103525f, -0.1653874f, 0.0205189f, 0.0758978f, - -0.1514593f, 0.0151441f, 0.2043469f, 0.0349607f, -0.1361278f, -0.1255922f, 0.0631648f, 0.3570991f}, - {0.3371337f, -3.7541580f, 2.2215877f, -0.3390516f, 0.1912718f, -4.1861577f, -1.2264019f, 2.8179801f, - 0.0667294f, -0.0093539f, 2.3029909f, 3.1814916f, 3.9780347f, 0.2310601f, 0.3986159f, -0.8544636f, - 0.4139664f, -0.1876569f, -0.2448732f, -2.8053334f, 4.0488625f, 2.1094146f, -6.7310257f, -4.9950023f, - -0.8315823f, 0.0555959f, 2.4573720f, -3.7234364f, -4.2910552f, -0.2995245f, -3.2605181f, 2.3620574f}, - {-1.5522735f, -0.1866350f, -0.0067679f, 0.3196557f, 1.4052233f, 2.8143549f, -0.9992948f, -0.5309914f, - -25.8852596f, -0.1218249f, 0.6625420f, 0.3007106f, -0.2767264f, -0.1847300f, -0.5313534f, -0.0383462f, - -0.1987552f, 0.0581405f, -0.3376078f, 1.2621028f, 0.0818709f, -0.1401216f, -0.4550788f, -0.1592657f, - 0.0597123f, 0.1344101f, -0.1005317f, -0.1538406f, 2.9142656f, -0.0806051f, -0.4267367f, -31.9512234f}, - {0.6859627f, 0.1212986f, 0.1291616f, 0.0459838f, -0.0899920f, 0.0287645f, 0.1987007f, -2.7079368f, - -0.2628384f, -0.1402464f, -0.6302179f, -0.2923960f, -0.1106663f, 0.8256195f, -2.8054097f, -0.0296494f, - -0.5632019f, -0.1335654f, -0.1558440f, -6.8611612f, 0.0203786f, 0.0046566f, -0.4401442f, -0.0471430f, - 0.4535986f, -0.8657981f, 0.0684740f, 0.0518814f, -0.0123748f, -0.2270164f, 0.0922878f, -0.3863277f}, - {0.0127175f, 2.3346109f, -0.4390767f, -0.4657893f, 0.1659466f, -0.1132782f, -0.4928388f, 0.7652873f, - 1.1510741f, -0.0879600f, 0.2721785f, -0.1878961f, -0.3477249f, -0.8473209f, -0.8931856f, -0.4328294f, - -11.9181929f, -0.0282545f, -0.0217915f, 1.6676594f, -0.2122232f, -0.6190930f, 1.9053432f, -0.7592348f, - -1.0739189f, -0.7170524f, 0.3864411f, -0.8849231f, 0.1393488f, 0.0738489f, 0.4460345f, 1.9020857f}, - {0.4453296f, -0.0767821f, 0.1638939f, 1.6997167f, -0.1098599f, -0.0551604f, 0.0040561f, -13.5290670f, - -0.1285677f, -0.0590394f, 0.6499141f, -0.7617344f, 0.0453151f, 0.3104213f, -1.0711143f, 0.1361838f, - -0.4365610f, -0.1300649f, 0.2013344f, -0.5308123f, 0.1451896f, 0.1030715f, -0.6487910f, -0.3136590f, - -0.0280079f, 0.5394178f, 0.1318262f, -0.0159292f, 0.0636870f, -0.3224248f, -0.1868187f, -0.2468304f}, - {-0.0333494f, -0.0834255f, -0.1221875f, 0.6861304f, 0.0521738f, -0.0416543f, -0.4437352f, -19.3246250f, - -0.1520821f, 0.0528602f, -0.6375434f, -0.5803806f, -0.0958465f, -2.0058544f, -0.8282642f, 0.0259000f, - 0.4846996f, 0.1211179f, 0.0356884f, 1.0009497f, 0.0635682f, -0.0314105f, -0.0011147f, 0.0131714f, - -0.3410152f, 0.2798154f, 0.0961889f, 0.1266228f, -0.0934717f, -0.0904307f, 0.1355542f, 0.5722573f}, - {0.2146454f, 0.2143834f, 0.1290650f, -0.9063646f, 0.2100945f, 0.1331054f, -0.2620614f, -0.1264993f, - 0.1313979f, 0.0455465f, -0.8395286f, -0.4967833f, -0.0538581f, 0.9155380f, 0.6627046f, 0.1691243f, - 0.9887002f, -0.1597013f, -0.1236713f, -1.9041336f, 0.0427585f, 0.0849747f, -5.2559652f, -0.3133100f, - 0.0141170f, -0.1635530f, 0.4938746f, 0.0162943f, 0.2107756f, -0.3413893f, -0.0657575f, 1.0542560f}, - {-2.8868380f, -2.0837426f, -1.0611480f, -0.6143807f, -0.6398501f, -2.8018746f, 0.5166737f, -1.0814301f, - -1.9272422f, -0.1017482f, -0.4651161f, -1.4021232f, 1.8854499f, 0.1815407f, 0.5965426f, -2.3344259f, - -0.0690846f, -0.1678239f, -0.4219488f, 0.6215640f, 1.0270095f, -0.3473049f, -0.3926674f, -0.7942593f, - 1.1305071f, -1.4621233f, -0.8051161f, -0.7698632f, -2.6038630f, -0.3090037f, -1.6365144f, -1.0179478f}, - {0.0046026f, 1.1319581f, -2.6405678f, -2.0353596f, -2.1687336f, 0.3364883f, 2.1122196f, 0.2584647f, - -2.4344857f, -0.0378498f, 0.6158544f, -0.6060749f, -4.9598379f, 0.1570698f, 2.2436838f, -2.6198347f, - -2.0935996f, -0.1845744f, -0.0716080f, -1.9338604f, -4.1995640f, -3.6706774f, -1.6762524f, 3.9646862f, - -0.9677961f, 1.8319578f, -3.1916575f, 3.7312632f, 0.0820446f, -0.0497568f, -0.0898171f, -0.2499462f}, - {-0.0780375f, -0.0286571f, 0.1007227f, 0.0012229f, -0.0531285f, 0.0840718f, 0.1013894f, 0.1312424f, - -0.0673772f, 0.1603183f, 0.0074385f, -0.0718321f, -0.1549873f, 0.1616689f, 0.0405887f, -0.1558588f, - 0.0740745f, 0.1696893f, -0.0064026f, -0.1656420f, -0.1186674f, -0.1262667f, -0.0784757f, -0.1280154f, - 0.0909976f, 0.0853046f, -0.1075811f, 0.1310615f, 0.0610194f, 0.0647223f, 0.1360559f, 0.0440074f}, - {-0.2106480f, 0.0087131f, 0.1119385f, -1.0611318f, 0.5250220f, 0.0525479f, -0.2733742f, -1.0799565f, - -0.5601607f, -0.0651806f, -1.9793440f, -0.3373334f, -0.1550518f, 0.8932216f, 0.7264332f, -0.0450735f, - 1.2373760f, -0.1236272f, 0.0680048f, -3.0446634f, -0.1533586f, -0.0127355f, -0.3326311f, -0.0225603f, - -0.2265739f, -2.3752897f, -0.3771705f, -0.0728938f, 0.1741305f, 0.1111639f, 0.4131119f, 0.2239323f}, - {-2.5691276f, -1.4011253f, -2.0640867f, -3.7236946f, 1.5542637f, -0.9456654f, -1.7575809f, 3.6794879f, - -0.4439790f, -0.1009826f, 3.6702275f, -0.1935008f, -0.4423219f, -0.3825364f, -0.4784791f, 0.5927492f, - -2.3482494f, 0.0801714f, -0.1567418f, -1.7934613f, -0.1706410f, -0.6326947f, 0.6260155f, 0.3631033f, - -0.9325932f, 1.9647995f, -1.3409088f, 1.3501998f, 0.0367797f, -0.1744210f, 1.8690013f, -1.0737898f}, - {-0.5934777f, 0.6232591f, -0.3391055f, 0.2640936f, -0.2824444f, 0.4815128f, 0.6625078f, -0.1103976f, - 0.9555223f, -0.0624896f, -0.6778919f, 0.1181502f, -0.5425385f, 0.7297349f, -1.7261271f, -0.2917557f, - 1.1873137f, -0.2725933f, 0.0975242f, 1.7756181f, -0.5735835f, -0.4453230f, 0.9800369f, 0.9344145f, - -1.8692539f, 0.0120440f, -0.7315661f, 0.6250805f, 0.3839143f, -0.0376306f, 0.3816243f, 0.6059195f}, - {0.5522162f, -1.8043815f, -10.9379101f, 0.5719097f, -0.2246755f, -1.4856353f, 0.4877502f, 0.7163438f, - -11.8135147f, -0.0180790f, -0.9928634f, 0.1107815f, -0.0005064f, -0.3824990f, -0.7453306f, -1.9909632f, - -7.4362645f, -0.0245507f, -0.1815712f, -3.5507584f, -0.0075889f, -11.0296011f, -1.1292133f, -0.0710276f, - 0.5675677f, 0.2017778f, -0.0684891f, -0.0367653f, -1.6674192f, 0.0281711f, -0.8356591f, -0.0447807f}, - {0.2537312f, -3.0178010f, -0.3493635f, 1.8573236f, 0.4017631f, 0.9912633f, -0.8625028f, -0.7783228f, - -1.7815375f, -0.1204695f, 1.8551122f, 0.3344182f, -0.2828701f, -1.3226960f, -1.4470471f, 0.2895959f, - 0.6780876f, -0.2010069f, 0.0425280f, -2.1786852f, -0.1274053f, -0.2549899f, -0.2233993f, -0.1561645f, - -0.4640818f, 0.6375850f, 0.7733670f, -0.2388286f, 1.0447853f, -0.1503223f, 0.3823584f, -13.8176088f}, - {0.2575197f, -2.2127593f, -0.0389457f, -0.0215759f, 0.1659477f, -0.0097748f, -0.1935415f, -0.9091369f, - -0.1453371f, 0.0442428f, -0.1206519f, 0.1435609f, -0.0186047f, -5.0154042f, 0.0538177f, 0.0403250f, - 0.0240955f, 0.0331080f, 0.0517951f, 0.7422639f, 0.0069818f, 0.0248351f, -0.2205741f, -0.0082387f, - 0.2043269f, 0.0459435f, 0.0876343f, 0.0140607f, 0.1056308f, 0.0062555f, 0.0184278f, -0.5539715f}, - {-0.0398742f, 0.1075264f, 0.1725024f, -0.0755192f, -0.0360048f, 0.1325573f, 0.0903103f, -0.0882263f, - 0.1207692f, 0.0032722f, 0.0048489f, -0.1257241f, 0.1450990f, -0.0713558f, 0.1116815f, 0.1107689f, - -0.1447252f, 0.1581838f, -0.0160124f, -0.0425587f, 0.1411217f, 0.0865060f, -0.0643460f, -0.0431262f, - -0.1452804f, -0.0195101f, 0.1234572f, 0.0520887f, 0.1117576f, -0.0751791f, 0.1511539f, 0.1224861f}, - {0.7728126f, 2.3075340f, -0.0385258f, -3.1270287f, 0.9414487f, 3.5251477f, -0.8043440f, 0.7212446f, - -7.6850162f, -0.1609414f, -3.7687578f, -1.0751100f, -0.2052089f, 5.0728245f, 2.2835267f, 0.5930225f, - 0.1303335f, -0.1428799f, -0.3715075f, 0.5136011f, -0.4755619f, -0.2192461f, -3.8696294f, -0.0062392f, - -1.3774812f, -0.0034140f, -1.5944362f, 0.9773729f, 3.2859125f, -0.1616932f, -1.2785367f, -13.5732412f}, - {0.5535743f, 0.1461481f, -0.2218016f, -0.2971808f, -0.2169309f, 0.1564545f, -0.0390397f, 1.1558976f, - -0.0119933f, -0.0774637f, 1.1907971f, -0.5127968f, -0.0066028f, -1.6794037f, -0.3650940f, 0.2555613f, - -0.9488379f, 0.0449603f, -0.1620417f, 0.1583214f, 0.0000908f, 0.0152763f, -1.0660053f, -0.0139402f, - -1.7440189f, 0.2515209f, 0.3333162f, 0.1904725f, 0.1116094f, -0.2287960f, -0.0007165f, -1.7047704f}, - {-5.9897852f, -0.1316296f, -0.0218074f, -0.4602887f, 0.3288545f, -0.0882939f, -0.5929499f, 0.4294790f, - -0.0383545f, 0.0556869f, 0.1975944f, 0.1341491f, 0.0629570f, -2.2742157f, 0.0175826f, -0.1439869f, - -24.8701649f, -0.1582915f, -0.2460304f, -3.9643264f, 0.0863483f, 0.0180861f, -0.2210452f, -0.0868723f, - -0.4175525f, -0.8231756f, 0.0247534f, -0.1473545f, -0.0021330f, -0.0410253f, -1.1944869f, -1.1523768f}, - {0.1031547f, -3.3402514f, -4.3636522f, -0.1534714f, -0.0622189f, 0.0374694f, -0.0870097f, -4.1865788f, - -0.0555377f, 0.0252329f, 0.1339467f, 0.0461691f, -0.0503090f, 0.0289890f, -0.0095674f, -0.3289992f, - -0.0279080f, 0.0274977f, -0.0903500f, 0.5610157f, -0.0478177f, 0.4346960f, 0.4822784f, -0.1058945f, - -0.2026870f, -0.0560638f, 0.0910069f, -0.0818529f, 0.0819198f, -0.0292193f, 0.3040628f, -0.1275230f}, - {-5.8789845f, -17.1114635f, -4.6755161f, 0.1016624f, -0.8685016f, -0.3898779f, -2.3363957f, 0.1413794f, - -2.4254086f, -0.2171030f, -0.0901150f, 0.7058705f, 0.4166250f, -0.0231085f, -0.1789686f, -9.4244318f, - -0.6418229f, -0.0857969f, 0.1683681f, -0.0310597f, -0.0247807f, -5.3748040f, -7.4730940f, 0.1019564f, - -1.2126822f, -0.3726285f, -1.0287101f, 0.1803891f, -0.2227769f, -0.0791530f, -0.0159770f, -1.4883354f}, - {-17.9394970f, -0.5228514f, -11.3547935f, -0.0672671f, -2.0371394f, -0.9076943f, 2.4331825f, -6.9409127f, - 0.8286008f, 0.0208618f, -0.8009814f, 1.2268484f, 0.1943726f, -1.7297083f, -0.7668949f, -6.5505466f, - -0.6495168f, -0.0404727f, -0.1260914f, -3.5029383f, -0.0852898f, -2.9679556f, 1.6404767f, -0.0251449f, - 1.1460075f, -0.7877688f, -0.0586593f, -0.4741839f, -1.7420560f, 0.0295600f, -2.3574052f, 0.0974777f}, - {0.4443443f, 0.6384261f, 1.3317494f, -1.0085982f, 0.9508762f, 1.3168396f, -0.1862490f, -0.1801148f, - 1.1106120f, -0.0654911f, 0.1186706f, -0.7198273f, 0.5449172f, -0.5886080f, 0.7504217f, 1.8046317f, - -0.1294390f, -0.1939137f, -0.2383934f, 0.4131435f, 0.6910310f, 1.2821866f, -0.1088722f, -0.5660405f, - -0.1188610f, 0.0364403f, 0.3597929f, -0.6409024f, 1.2114668f, -0.0212278f, 0.8423592f, 0.4848156f}, - {-0.8772649f, -13.5265112f, -4.5540547f, -0.2856667f, 0.7604876f, -0.6829260f, -0.8320626f, 0.6541347f, - 0.4020181f, 0.0009324f, -10.9660740f, -0.3540186f, -0.2316812f, 0.3576394f, 0.0998953f, -1.5738430f, - 1.2089975f, 0.0706465f, -0.2538019f, 0.7016497f, -0.0282650f, -3.1291001f, -0.4375663f, -0.3979468f, - -0.1588882f, 0.3978875f, 0.2038192f, -0.4281644f, -0.5787544f, -0.0922198f, 0.9595569f, 0.0212818f}, - {0.3392667f, 0.1170919f, -0.0705636f, -0.1025443f, -0.1192213f, -0.0495686f, 0.0284667f, -0.1226804f, - 0.0050191f, -0.0516545f, -1.0892097f, 0.0033689f, 0.0471462f, 1.4266804f, 0.0288870f, -0.0110408f, - -1.1283765f, -0.1299917f, -0.4318301f, -0.9854419f, -0.0190479f, -0.0269406f, 0.3697925f, -0.0757695f, - -0.3632923f, -0.1714077f, 0.0669245f, 0.0557428f, -0.1713906f, -0.4307863f, -0.1749060f, -2.1246362f}, - {0.8383662f, -3.8122442f, 0.1568939f, -2.2105119f, -0.7086993f, -0.4664145f, -0.3578597f, 0.5554636f, - 0.6965880f, -0.1506968f, 0.2646832f, 0.2874083f, 0.1901203f, -2.4997077f, -0.3519035f, -0.0518054f, - 1.0862818f, -0.2502540f, -0.3133347f, -0.7411230f, 0.1268138f, 0.1069811f, -0.8109779f, 0.0264679f, - 0.1604289f, -0.7534032f, -0.1419461f, 0.0688303f, -0.1570919f, -0.3055144f, -0.7415189f, 2.5547018f}, - }; - ALPAKA_STATIC_ACC_MEM_GLOBAL const float bias_4[1] = {1.4616280f}; - ALPAKA_STATIC_ACC_MEM_GLOBAL const float wgtT_4[32][1] = { - {0.0609813f}, {0.0685224f}, {0.1655236f}, {-0.0599842f}, {0.0669006f}, {-0.1817371f}, {-0.0539167f}, - {-0.0737955f}, {0.0654664f}, {0.0302955f}, {-0.0586768f}, {0.0717433f}, {0.1472274f}, {-0.0610073f}, - {-0.0601061f}, {0.2086218f}, {-0.0545418f}, {-0.0388369f}, {-0.0613536f}, {-0.1141072f}, {-0.2289097f}, - {-0.3354485f}, {0.0831025f}, {0.1333673f}, {0.0490410f}, {0.0484894f}, {0.0436755f}, {-0.1479877f}, - {0.1540713f}, {0.0021261f}, {-0.0845848f}, {-0.0564973f}, - }; - - } // namespace t5dnn - -} //namespace lst +} //namespace lst::t5dnn #endif diff --git a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h index 7e96b3b07a9d1..d0924518eeb4d 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h +++ b/RecoTracker/LSTCore/standalone/code/core/AccessHelper.h @@ -5,83 +5,83 @@ #include #include "Event.h" -using lstEvent = lst::Event; +using LSTEvent = lst::Event; enum { kpT5 = 7, kpT3 = 5, kT5 = 4, kpLS = 8 }; // ----* Hit *---- std::tuple, std::vector> convertHitsToHitIdxsAndHitTypes( - lstEvent* event, std::vector hits); + LSTEvent* event, std::vector hits); // ----* pLS *---- -std::vector getPixelHitsFrompLS(lstEvent* event, unsigned int pLS); -std::vector getPixelHitIdxsFrompLS(lstEvent* event, unsigned int pLS); -std::vector getPixelHitTypesFrompLS(lstEvent* event, unsigned int pLS); -std::tuple, std::vector> getHitIdxsAndHitTypesFrompLS(lstEvent* event, +std::vector getPixelHitsFrompLS(LSTEvent* event, unsigned int pLS); +std::vector getPixelHitIdxsFrompLS(LSTEvent* event, unsigned int pLS); +std::vector getPixelHitTypesFrompLS(LSTEvent* event, unsigned int pLS); +std::tuple, std::vector> getHitIdxsAndHitTypesFrompLS(LSTEvent* event, unsigned pLS); // ----* MD *---- -std::vector getHitsFromMD(lstEvent* event, unsigned int MD); -std::tuple, std::vector> getHitIdxsAndHitTypesFromMD(lstEvent* event, +std::vector getHitsFromMD(LSTEvent* event, unsigned int MD); +std::tuple, std::vector> getHitIdxsAndHitTypesFromMD(LSTEvent* event, unsigned MD); // ----* LS *---- -std::vector getMDsFromLS(lstEvent* event, unsigned int LS); -std::vector getHitsFromLS(lstEvent* event, unsigned int LS); -std::tuple, std::vector> getHitIdxsAndHitTypesFromLS(lstEvent* event, +std::vector getMDsFromLS(LSTEvent* event, unsigned int LS); +std::vector getHitsFromLS(LSTEvent* event, unsigned int LS); +std::tuple, std::vector> getHitIdxsAndHitTypesFromLS(LSTEvent* event, unsigned LS); // ----* T3 *---- -std::vector getLSsFromT3(lstEvent* event, unsigned int T3); -std::vector getMDsFromT3(lstEvent* event, unsigned int T3); -std::vector getHitsFromT3(lstEvent* event, unsigned int T3); -std::tuple, std::vector> getHitIdxsAndHitTypesFromT3(lstEvent* event, +std::vector getLSsFromT3(LSTEvent* event, unsigned int T3); +std::vector getMDsFromT3(LSTEvent* event, unsigned int T3); +std::vector getHitsFromT3(LSTEvent* event, unsigned int T3); +std::tuple, std::vector> getHitIdxsAndHitTypesFromT3(LSTEvent* event, unsigned T3); // ----* T5 *---- -std::vector getT3sFromT5(lstEvent* event, unsigned int T5); -std::vector getLSsFromT5(lstEvent* event, unsigned int T5); -std::vector getMDsFromT5(lstEvent* event, unsigned int T5); -std::vector getHitsFromT5(lstEvent* event, unsigned int T5); -std::vector getHitIdxsFromT5(lstEvent* event, unsigned int T5); -std::vector getHitTypesFromT5(lstEvent* event, unsigned int T5); -std::vector getModuleIdxsFromT5(lstEvent* event, unsigned int T5); -std::tuple, std::vector> getHitIdxsAndHitTypesFromT5(lstEvent* event, +std::vector getT3sFromT5(LSTEvent* event, unsigned int T5); +std::vector getLSsFromT5(LSTEvent* event, unsigned int T5); +std::vector getMDsFromT5(LSTEvent* event, unsigned int T5); +std::vector getHitsFromT5(LSTEvent* event, unsigned int T5); +std::vector getHitIdxsFromT5(LSTEvent* event, unsigned int T5); +std::vector getHitTypesFromT5(LSTEvent* event, unsigned int T5); +std::vector getModuleIdxsFromT5(LSTEvent* event, unsigned int T5); +std::tuple, std::vector> getHitIdxsAndHitTypesFromT5(LSTEvent* event, unsigned T5); // ----* pT3 *---- -unsigned int getPixelLSFrompT3(lstEvent* event, unsigned int pT3); -unsigned int getT3FrompT3(lstEvent* event, unsigned int pT3); -std::vector getLSsFrompT3(lstEvent* event, unsigned int pT3); -std::vector getMDsFrompT3(lstEvent* event, unsigned int pT3); -std::vector getOuterTrackerHitsFrompT3(lstEvent* event, unsigned int pT3); -std::vector getPixelHitsFrompT3(lstEvent* event, unsigned int pT3); -std::vector getHitsFrompT3(lstEvent* event, unsigned int pT3); -std::vector getHitIdxsFrompT3(lstEvent* event, unsigned int pT3); -std::vector getHitTypesFrompT3(lstEvent* event, unsigned int pT3); -std::vector getModuleIdxsFrompT3(lstEvent* event, unsigned int pT3); -std::tuple, std::vector> getHitIdxsAndHitTypesFrompT3(lstEvent* event, +unsigned int getPixelLSFrompT3(LSTEvent* event, unsigned int pT3); +unsigned int getT3FrompT3(LSTEvent* event, unsigned int pT3); +std::vector getLSsFrompT3(LSTEvent* event, unsigned int pT3); +std::vector getMDsFrompT3(LSTEvent* event, unsigned int pT3); +std::vector getOuterTrackerHitsFrompT3(LSTEvent* event, unsigned int pT3); +std::vector getPixelHitsFrompT3(LSTEvent* event, unsigned int pT3); +std::vector getHitsFrompT3(LSTEvent* event, unsigned int pT3); +std::vector getHitIdxsFrompT3(LSTEvent* event, unsigned int pT3); +std::vector getHitTypesFrompT3(LSTEvent* event, unsigned int pT3); +std::vector getModuleIdxsFrompT3(LSTEvent* event, unsigned int pT3); +std::tuple, std::vector> getHitIdxsAndHitTypesFrompT3(LSTEvent* event, unsigned pT3); // ----* pT5 *---- -unsigned int getPixelLSFrompT5(lstEvent* event, unsigned int pT5); -unsigned int getT5FrompT5(lstEvent* event, unsigned int pT5); -std::vector getT3sFrompT5(lstEvent* event, unsigned int pT5); -std::vector getLSsFrompT5(lstEvent* event, unsigned int pT5); -std::vector getMDsFrompT5(lstEvent* event, unsigned int pT5); -std::vector getOuterTrackerHitsFrompT5(lstEvent* event, unsigned int pT5); -std::vector getPixelHitsFrompT5(lstEvent* event, unsigned int pT5); -std::vector getHitsFrompT5(lstEvent* event, unsigned int pT5); -std::vector getHitIdxsFrompT5(lstEvent* event, unsigned int pT5); -std::vector getHitTypesFrompT5(lstEvent* event, unsigned int pT5); -std::vector getModuleIdxsFrompT5(lstEvent* event, unsigned int pT5); -std::tuple, std::vector> getHitIdxsAndHitTypesFrompT5(lstEvent* event, +unsigned int getPixelLSFrompT5(LSTEvent* event, unsigned int pT5); +unsigned int getT5FrompT5(LSTEvent* event, unsigned int pT5); +std::vector getT3sFrompT5(LSTEvent* event, unsigned int pT5); +std::vector getLSsFrompT5(LSTEvent* event, unsigned int pT5); +std::vector getMDsFrompT5(LSTEvent* event, unsigned int pT5); +std::vector getOuterTrackerHitsFrompT5(LSTEvent* event, unsigned int pT5); +std::vector getPixelHitsFrompT5(LSTEvent* event, unsigned int pT5); +std::vector getHitsFrompT5(LSTEvent* event, unsigned int pT5); +std::vector getHitIdxsFrompT5(LSTEvent* event, unsigned int pT5); +std::vector getHitTypesFrompT5(LSTEvent* event, unsigned int pT5); +std::vector getModuleIdxsFrompT5(LSTEvent* event, unsigned int pT5); +std::tuple, std::vector> getHitIdxsAndHitTypesFrompT5(LSTEvent* event, unsigned pT5); // ----* TC *---- -std::vector getLSsFromTC(lstEvent* event, unsigned int TC); -std::vector getHitsFromTC(lstEvent* event, unsigned int TC); -std::tuple, std::vector> getHitIdxsAndHitTypesFromTC(lstEvent* event, +std::vector getLSsFromTC(LSTEvent* event, unsigned int TC); +std::vector getHitsFromTC(LSTEvent* event, unsigned int TC); +std::tuple, std::vector> getHitIdxsAndHitTypesFromTC(LSTEvent* event, unsigned int TC); #endif diff --git a/RecoTracker/LSTCore/standalone/code/core/lstMath.h b/RecoTracker/LSTCore/standalone/code/core/lst_math.h similarity index 98% rename from RecoTracker/LSTCore/standalone/code/core/lstMath.h rename to RecoTracker/LSTCore/standalone/code/core/lst_math.h index 8fd4db3f2bc72..a673759afa6d3 100644 --- a/RecoTracker/LSTCore/standalone/code/core/lstMath.h +++ b/RecoTracker/LSTCore/standalone/code/core/lst_math.h @@ -1,10 +1,10 @@ -#ifndef lstMath_h -#define lstMath_h +#ifndef lst_math_h +#define lst_math_h #include #include #include -namespace lstMath { +namespace lst_math { inline float Phi_mpi_pi(float x) { if (std::isnan(x)) { std::cout << "MathUtil::Phi_mpi_pi() function called with NaN" << std::endl; @@ -209,5 +209,5 @@ namespace lstMath { return Hit(x, y, 0); }; -} // namespace lstMath +} // namespace lst_math #endif diff --git a/RecoTracker/LSTCore/standalone/code/core/trkCore.cc b/RecoTracker/LSTCore/standalone/code/core/trkCore.cc index f9ee245c68041..d6657c5e512f6 100644 --- a/RecoTracker/LSTCore/standalone/code/core/trkCore.cc +++ b/RecoTracker/LSTCore/standalone/code/core/trkCore.cc @@ -501,13 +501,13 @@ float drfracSimHitConsistentWithHelix(int isimtrk, int isimhitidx) { int charge = trk.sim_q()[isimtrk]; // Construct helix object - lstMath::Helix helix(pt, eta, phi, vx, vy, vz, charge); + lst_math::Helix helix(pt, eta, phi, vx, vy, vz, charge); return drfracSimHitConsistentWithHelix(helix, isimhitidx); } //__________________________________________________________________________________________ -float drfracSimHitConsistentWithHelix(lstMath::Helix &helix, int isimhitidx) { +float drfracSimHitConsistentWithHelix(lst_math::Helix &helix, int isimhitidx) { // Sim hit vector std::vector point = {trk.simhit_x()[isimhitidx], trk.simhit_y()[isimhitidx], trk.simhit_z()[isimhitidx]}; @@ -539,13 +539,13 @@ float distxySimHitConsistentWithHelix(int isimtrk, int isimhitidx) { int charge = trk.sim_q()[isimtrk]; // Construct helix object - lstMath::Helix helix(pt, eta, phi, vx, vy, vz, charge); + lst_math::Helix helix(pt, eta, phi, vx, vy, vz, charge); return distxySimHitConsistentWithHelix(helix, isimhitidx); } //__________________________________________________________________________________________ -float distxySimHitConsistentWithHelix(lstMath::Helix &helix, int isimhitidx) { +float distxySimHitConsistentWithHelix(lst_math::Helix &helix, int isimhitidx) { // Sim hit vector std::vector point = {trk.simhit_x()[isimhitidx], trk.simhit_y()[isimhitidx], trk.simhit_z()[isimhitidx]}; diff --git a/RecoTracker/LSTCore/standalone/code/core/trkCore.h b/RecoTracker/LSTCore/standalone/code/core/trkCore.h index ae145eb183b08..57c8e31886585 100644 --- a/RecoTracker/LSTCore/standalone/code/core/trkCore.h +++ b/RecoTracker/LSTCore/standalone/code/core/trkCore.h @@ -6,27 +6,27 @@ #include "TSystem.h" #include "AnalysisConfig.h" #include "ModuleConnectionMap.h" -#include "lstMath.h" +#include "lst_math.h" #include "Event.h" #include #include -using lstEvent = lst::Event; +using LSTEvent = lst::Event; // --------------------- ======================== --------------------- bool goodEvent(); -float runMiniDoublet(lstEvent *event, int evt); -float runSegment(lstEvent *event); -float runT4(lstEvent *event); -float runT4x(lstEvent *event); -float runpT4(lstEvent *event); -float runT3(lstEvent *event); -float runTrackCandidate(lstEvent *event, bool no_pls_dupclean, bool tc_pls_triplets); -float runQuintuplet(lstEvent *event); -float runPixelQuintuplet(lstEvent *event); -float runPixelLineSegment(lstEvent *event, bool no_pls_dupclean); -float runpT3(lstEvent *event); +float runMiniDoublet(LSTEvent *event, int evt); +float runSegment(LSTEvent *event); +float runT4(LSTEvent *event); +float runT4x(LSTEvent *event); +float runpT4(LSTEvent *event); +float runT3(LSTEvent *event); +float runTrackCandidate(LSTEvent *event, bool no_pls_dupclean, bool tc_pls_triplets); +float runQuintuplet(LSTEvent *event); +float runPixelQuintuplet(LSTEvent *event); +float runPixelLineSegment(LSTEvent *event, bool no_pls_dupclean); +float runpT3(LSTEvent *event); // --------------------- ======================== --------------------- @@ -40,9 +40,9 @@ int getDenomSimTrkType(std::vector simidxs); // --------------------- ======================== --------------------- float drfracSimHitConsistentWithHelix(int isimtrk, int isimhitidx); -float drfracSimHitConsistentWithHelix(lstMath::Helix &helix, int isimhitidx); +float drfracSimHitConsistentWithHelix(lst_math::Helix &helix, int isimhitidx); float distxySimHitConsistentWithHelix(int isimtrk, int isimhitidx); -float distxySimHitConsistentWithHelix(lstMath::Helix &helix, int isimhitidx); +float distxySimHitConsistentWithHelix(lst_math::Helix &helix, int isimhitidx); TVector3 calculateR3FromPCA(const TVector3 &p3, const float dxy, const float dz); // --------------------- ======================== --------------------- @@ -71,7 +71,7 @@ void addInputsToLineSegmentTrackingPreLoad(std::vector> &out_ std::vector> &out_pixelType_vec, std::vector> &out_isQuad_vec); -float addInputsToEventPreLoad(lstEvent *event, +float addInputsToEventPreLoad(LSTEvent *event, bool useOMP, std::vector trkX, std::vector trkY, @@ -107,7 +107,7 @@ void writeMetaData(); // --------------------- ======================== --------------------- // DEPRECATED FUNCTION -float addInputsToLineSegmentTrackingUsingExplicitMemory(lstEvent &event); -float addInputsToLineSegmentTracking(lstEvent &event, bool useOMP); +float addInputsToLineSegmentTrackingUsingExplicitMemory(LSTEvent &event); +float addInputsToLineSegmentTracking(LSTEvent &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 4769a8423de71..a193732a73b20 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc +++ b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc @@ -621,7 +621,7 @@ void setGnnNtupleBranches(lst::Event* event) { sg_index_map[sgIdx] = ana.tx->getBranch>("LS_isFake").size() - 1; // // T5 eta and phi are computed using outer and innermost hits - // lstMath::Hit hitA(trk.ph2_x()[anchitidx], trk.ph2_y()[anchitidx], trk.ph2_z()[anchitidx]); + // lst_math::Hit hitA(trk.ph2_x()[anchitidx], trk.ph2_y()[anchitidx], trk.ph2_z()[anchitidx]); // const float phi = hitA.phi(); // const float eta = hitA.eta(); } @@ -683,7 +683,7 @@ void setGnnNtupleMiniDoublet(lst::Event* event, unsigned int MD) { float pt = hit0_r * lst::k2Rinv1GeVf / sin(dphichange); // T5 eta and phi are computed using outer and innermost hits - lstMath::Hit hitA(trk.ph2_x()[anchitidx], trk.ph2_y()[anchitidx], trk.ph2_z()[anchitidx]); + lst_math::Hit hitA(trk.ph2_x()[anchitidx], trk.ph2_y()[anchitidx], trk.ph2_z()[anchitidx]); const float phi = hitA.phi(); const float eta = hitA.eta(); @@ -911,8 +911,8 @@ std::tuple, std::vectorinnerRadius[T5] * lst::k2Rinv1GeVf * 2; // T5 eta and phi are computed using outer and innermost hits - lstMath::Hit hitA(trk.ph2_x()[Hit_0], trk.ph2_y()[Hit_0], trk.ph2_z()[Hit_0]); - lstMath::Hit hitB(trk.ph2_x()[Hit_8], trk.ph2_y()[Hit_8], trk.ph2_z()[Hit_8]); + lst_math::Hit hitA(trk.ph2_x()[Hit_0], trk.ph2_y()[Hit_0], trk.ph2_z()[Hit_0]); + lst_math::Hit hitB(trk.ph2_x()[Hit_8], trk.ph2_y()[Hit_8], trk.ph2_z()[Hit_8]); const float phi = hitA.phi(); const float eta = hitB.eta(); diff --git a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h index b9a6197f66f43..4e3db30caf1fc 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h +++ b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h @@ -4,14 +4,14 @@ #include #include -#include "lstMath.h" +#include "lst_math.h" #include "Event.h" #include "AnalysisConfig.h" #include "trkCore.h" #include "AccessHelper.h" -using lstEvent = lst::Event; +using LSTEvent = lst::Event; // Common void createOutputBranches(); @@ -19,40 +19,40 @@ void createRequiredOutputBranches(); void createOptionalOutputBranches(); void createGnnNtupleBranches(); -void fillOutputBranches(lstEvent* event); -void setOutputBranches(lstEvent* event); -void setOptionalOutputBranches(lstEvent* event); -void setPixelQuintupletOutputBranches(lstEvent* event); -void setQuintupletOutputBranches(lstEvent* event); -void setPixelTripletOutputBranches(lstEvent* event); -void setGnnNtupleBranches(lstEvent* event); -void setGnnNtupleMiniDoublet(lstEvent* event, unsigned int MD); - -std::tuple> parseTrackCandidate(lstEvent* event, unsigned int); -std::tuple, std::vector> parsepT5(lstEvent* event, +void fillOutputBranches(LSTEvent* event); +void setOutputBranches(LSTEvent* event); +void setOptionalOutputBranches(LSTEvent* event); +void setPixelQuintupletOutputBranches(LSTEvent* event); +void setQuintupletOutputBranches(LSTEvent* event); +void setPixelTripletOutputBranches(LSTEvent* event); +void setGnnNtupleBranches(LSTEvent* event); +void setGnnNtupleMiniDoublet(LSTEvent* event, unsigned int MD); + +std::tuple> parseTrackCandidate(LSTEvent* event, unsigned int); +std::tuple, std::vector> parsepT5(LSTEvent* event, unsigned int); -std::tuple, std::vector> parsepT3(lstEvent* event, +std::tuple, std::vector> parsepT3(LSTEvent* event, unsigned int); -std::tuple, std::vector> parseT5(lstEvent* event, +std::tuple, std::vector> parseT5(LSTEvent* event, unsigned int); -std::tuple, std::vector> parsepLS(lstEvent* event, +std::tuple, std::vector> parsepLS(LSTEvent* event, unsigned int); // Print multiplicities -void printMiniDoubletMultiplicities(lstEvent* event); -void printHitMultiplicities(lstEvent* event); +void printMiniDoubletMultiplicities(LSTEvent* event); +void printHitMultiplicities(LSTEvent* event); // Print objects (GPU) -void printAllObjects(lstEvent* event); -void printpT4s(lstEvent* event); -void printMDs(lstEvent* event); -void printLSs(lstEvent* event); -void printpLSs(lstEvent* event); -void printT3s(lstEvent* event); -void printT4s(lstEvent* event); -void printTCs(lstEvent* event); +void printAllObjects(LSTEvent* event); +void printpT4s(LSTEvent* event); +void printMDs(LSTEvent* event); +void printLSs(LSTEvent* event); +void printpLSs(LSTEvent* event); +void printT3s(LSTEvent* event); +void printT4s(LSTEvent* event); +void printTCs(LSTEvent* event); // Print anomalous multiplicities -void debugPrintOutlierMultiplicities(lstEvent* event); +void debugPrintOutlierMultiplicities(LSTEvent* event); #endif From 304929e4ce29475e1f7ddc1b2c12904a02679509 Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Sun, 21 Jul 2024 14:25:50 -0700 Subject: [PATCH 13/35] Fixes after rebase --- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 1 - RecoTracker/LSTCore/src/alpaka/LST.dev.cc | 2 +- RecoTracker/LSTCore/src/alpaka/ObjectRanges.h | 4 ++-- RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index 86e1f3f196bc0..1f60ec870aae7 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc @@ -1818,7 +1818,6 @@ lst::TrackCandidatesBuffer* lst::Event::getTrackCandidatesInCMSS return trackCandidatesInCPU; } -<<<<<<< HEAD lst::ModulesBuffer* lst::Event::getModules(bool isFull) { if (modulesInCPU == nullptr) { // The last input here is just a small placeholder for the allocation. diff --git a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc index 8304e292d63af..c03007b3d273c 100644 --- a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc @@ -256,7 +256,7 @@ void lst::LST::getOutput(lst::Event& event) { std::vector tc_trackCandidateType; lst::HitsBuffer& hitsInGPU = (*event.getHitsInCMSSW()); - lst::TrackCandidatesBuffer& trackCandidatesInGPU = (*event.getTrackCandidatesInCMSSW()); + lst::TrackCandidates const* trackCandidates = event.getTrackCandidatesInCMSSW()->data(); unsigned int nTrackCandidates = *trackCandidates->nTrackCandidates; for (unsigned int idx = 0; idx < nTrackCandidates; idx++) { diff --git a/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h b/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h index e8cb17a301fab..1e1ccf8df12bc 100644 --- a/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h +++ b/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h @@ -3,7 +3,7 @@ #include "RecoTracker/LSTCore/interface/Constants.h" -namespace SDL { +namespace lst { struct ObjectRanges { int* hitRanges; @@ -151,5 +151,5 @@ namespace SDL { void setData(ObjectRangesBuffer& buf) { data_.setData(buf); } }; -} // namespace SDL +} // namespace lst #endif diff --git a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc index a193732a73b20..03ea4515142ad 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc +++ b/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc @@ -305,7 +305,7 @@ void setPixelQuintupletOutputBranches(lst::Event* event) { for (unsigned int pT5 = 0; pT5 < nPixelQuintuplets; pT5++) { unsigned int T5Index = getT5FrompT5(event, pT5); unsigned int pLSIndex = getPixelLSFrompT5(event, pT5); - float pt = (__H2F(quintuplets->innerRadius[T5Index]) * SDL::k2Rinv1GeVf * 2 + segments->ptIn[pLSIndex]) / 2; + float pt = (__H2F(quintuplets->innerRadius[T5Index]) * lst::k2Rinv1GeVf * 2 + segments->ptIn[pLSIndex]) / 2; float eta = segments->eta[pLSIndex]; float phi = segments->phi[pLSIndex]; From a22faeb741008fedb497f25350284e24a341b02d Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Sun, 21 Jul 2024 14:34:26 -0700 Subject: [PATCH 14/35] Revert change in TrackListMerger --- RecoTracker/FinalTrackSelectors/plugins/TrackListMerger.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RecoTracker/FinalTrackSelectors/plugins/TrackListMerger.cc b/RecoTracker/FinalTrackSelectors/plugins/TrackListMerger.cc index 273095978b578..415306a4f8d95 100644 --- a/RecoTracker/FinalTrackSelectors/plugins/TrackListMerger.cc +++ b/RecoTracker/FinalTrackSelectors/plugins/TrackListMerger.cc @@ -487,7 +487,7 @@ void TrackListMerger::produce(edm::Event& e, const edm::EventSetup& es) { } //DL here - if LIKELY (ngood > 0 && collsSize > 0) + if LIKELY (ngood > 1 && collsSize > 1) for (unsigned int ltm = 0; ltm < listsToMerge_.size(); ltm++) { int saveSelected[rSize]; bool notActive[collsSize]; From 7fdcabd5030b7d35d8fa2e3674650ec5fe9e18dc Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Mon, 22 Jul 2024 10:06:11 -0700 Subject: [PATCH 15/35] Renaming of classes/structs/macros/constants --- RecoTracker/LSTCore/interface/Constants.h | 16 +- RecoTracker/LSTCore/interface/LSTESData.h | 4 +- RecoTracker/LSTCore/interface/Module.h | 2 +- RecoTracker/LSTCore/interface/PixelMap.h | 4 +- .../LSTCore/interface/alpaka/Constants.h | 24 +- RecoTracker/LSTCore/src/LSTESData.cc | 2 +- RecoTracker/LSTCore/src/ModuleMethods.h | 8 +- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 78 +-- RecoTracker/LSTCore/src/alpaka/Event.h | 38 +- RecoTracker/LSTCore/src/alpaka/Kernels.h | 4 +- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 6 +- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 14 +- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 14 +- RecoTracker/LSTCore/src/alpaka/Segment.h | 6 +- .../LSTCore/src/alpaka/TrackCandidate.h | 16 +- RecoTracker/LSTCore/src/alpaka/Triplet.h | 6 +- RecoTracker/LSTCore/standalone/bin/sdl.h | 2 +- .../standalone/bin/sdl_make_tracklooper | 2 +- .../standalone/code/core/AnalysisConfig.h | 4 +- .../code/core/{trktree.cc => Trktree.cc} | 618 +++++++++--------- .../code/core/{trktree.h => Trktree.h} | 8 +- .../LSTCore/standalone/code/core/trkCore.h | 2 +- .../LSTCore/standalone/code/rooutil/cxxopts.h | 120 ++-- 23 files changed, 499 insertions(+), 499 deletions(-) rename RecoTracker/LSTCore/standalone/code/core/{trktree.cc => Trktree.cc} (92%) rename RecoTracker/LSTCore/standalone/code/core/{trktree.h => Trktree.h} (99%) diff --git a/RecoTracker/LSTCore/interface/Constants.h b/RecoTracker/LSTCore/interface/Constants.h index f2c99e960956d..725cf5f46b224 100644 --- a/RecoTracker/LSTCore/interface/Constants.h +++ b/RecoTracker/LSTCore/interface/Constants.h @@ -39,18 +39,18 @@ namespace lst { constexpr float PT_CUT = 0.8f; #endif - constexpr unsigned int MAX_BLOCKS = 80; - constexpr unsigned int MAX_CONNECTED_MODULES = 40; + 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_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_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_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 n_max_pixel_track_candidates = 30000; + constexpr unsigned int n_max_nonpixel_track_candidates = 1000; constexpr unsigned int size_superbins = 45000; diff --git a/RecoTracker/LSTCore/interface/LSTESData.h b/RecoTracker/LSTCore/interface/LSTESData.h index 770c36126d82b..833770e631d2d 100644 --- a/RecoTracker/LSTCore/interface/LSTESData.h +++ b/RecoTracker/LSTCore/interface/LSTESData.h @@ -21,7 +21,7 @@ namespace lst { 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 lst { 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), diff --git a/RecoTracker/LSTCore/interface/Module.h b/RecoTracker/LSTCore/interface/Module.h index 3fcd9ed92785c..c50e5c4c6c2a5 100644 --- a/RecoTracker/LSTCore/interface/Module.h +++ b/RecoTracker/LSTCore/interface/Module.h @@ -146,7 +146,7 @@ namespace lst { 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 * max_connected_modules)), mapdetId_buf(allocBufWrapper(dev, nMod)), mapIdx_buf(allocBufWrapper(dev, nMod)), nConnectedModules_buf(allocBufWrapper(dev, nMod)), diff --git a/RecoTracker/LSTCore/interface/PixelMap.h b/RecoTracker/LSTCore/interface/PixelMap.h index d6962ce976ebf..73d88bc64f7ec 100644 --- a/RecoTracker/LSTCore/interface/PixelMap.h +++ b/RecoTracker/LSTCore/interface/PixelMap.h @@ -7,7 +7,7 @@ #include "RecoTracker/LSTCore/interface/Constants.h" namespace lst { - struct pixelMap { + struct PixelMap { uint16_t pixelModuleIndex; std::vector connectedPixelsIndex; @@ -19,7 +19,7 @@ namespace lst { int* pixelType; - pixelMap(unsigned int sizef = size_superbins) + PixelMap(unsigned int sizef = size_superbins) : pixelModuleIndex(0), connectedPixelsIndex(sizef), connectedPixelsSizes(sizef), diff --git a/RecoTracker/LSTCore/interface/alpaka/Constants.h b/RecoTracker/LSTCore/interface/alpaka/Constants.h index f80b500fd6a4e..cee32daf8536c 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Constants.h +++ b/RecoTracker/LSTCore/interface/alpaka/Constants.h @@ -87,20 +87,20 @@ namespace lst { ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float lst_INF = 123456789.0; 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 + 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 // Other working points - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP70 = 0.7776195f; // 70.0% TPR, 10.0% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP75 = 0.7181118f; // 75.0% TPR, 13.5% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP80 = 0.6492643f; // 80.0% TPR, 17.9% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP85 = 0.5655319f; // 85.0% TPR, 23.8% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP90 = 0.4592205f; // 90.0% TPR, 32.6% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP95 = 0.3073708f; // 95.0% TPR, 47.7% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP97p5 = 0.2001348f; // 97.5% TPR, 61.2% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP99 = 0.1120605f; // 99.0% TPR, 75.9% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float WP99p9 = 0.0218196f; // 99.9% TPR, 95.4% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp70 = 0.7776195f; // 70.0% TPR, 10.0% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp75 = 0.7181118f; // 75.0% TPR, 13.5% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp80 = 0.6492643f; // 80.0% TPR, 17.9% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp85 = 0.5655319f; // 85.0% TPR, 23.8% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp90 = 0.4592205f; // 90.0% TPR, 32.6% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp95 = 0.3073708f; // 95.0% TPR, 47.7% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp97p5 = 0.2001348f; // 97.5% TPR, 61.2% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp99 = 0.1120605f; // 99.0% TPR, 75.9% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp99p9 = 0.0218196f; // 99.9% TPR, 95.4% FPR } // namespace t5dnn diff --git a/RecoTracker/LSTCore/src/LSTESData.cc b/RecoTracker/LSTCore/src/LSTESData.cc index f7c9c865da0cf..414834e78c70c 100644 --- a/RecoTracker/LSTCore/src/LSTESData.cc +++ b/RecoTracker/LSTCore/src/LSTESData.cc @@ -85,7 +85,7 @@ std::unique_ptr> lst::loadAndFillESHost() auto pLStoLayer = std::make_shared(); auto endcapGeometry = std::make_shared(); auto tiltedGeometry = std::make_shared(); - auto pixelMapping = std::make_shared(); + auto pixelMapping = std::make_shared(); auto moduleConnectionMap = std::make_shared(); ::loadMapsHost(*pLStoLayer, endcapGeometry, tiltedGeometry, moduleConnectionMap); diff --git a/RecoTracker/LSTCore/src/ModuleMethods.h b/RecoTracker/LSTCore/src/ModuleMethods.h index 046afbdb6a764..80389a67e7081 100644 --- a/RecoTracker/LSTCore/src/ModuleMethods.h +++ b/RecoTracker/LSTCore/src/ModuleMethods.h @@ -27,7 +27,7 @@ namespace lst { inline void fillPixelMap(std::shared_ptr>& modulesBuf, uint16_t nModules, unsigned int& nPixels, - pixelMap& pixelMapping, + PixelMap& pixelMapping, TQueue queue, const MapPLStoLayer& pLStoLayer, struct ModuleMetaData& mmd) { @@ -111,7 +111,7 @@ namespace lst { struct ModuleMetaData& mmd, const ModuleConnectionMap* moduleConnectionMap) { alpaka_common::DevHost const& devHost = cms::alpakatools::host(); - auto moduleMap_buf = allocBufWrapper(devHost, nMod * MAX_CONNECTED_MODULES); + 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 lst { 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 * max_connected_modules + i] = mmd.detIdToIndex[connectedModules[i]]; } } @@ -224,7 +224,7 @@ namespace lst { uint16_t& nLowerModules, unsigned int& nPixels, std::shared_ptr>& modulesBuf, - pixelMap* pixelMapping, + PixelMap* pixelMapping, const EndcapGeometry* endcapGeometry, const TiltedGeometry* tiltedGeometry, const ModuleConnectionMap* moduleConnectionMap) { diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index 1f60ec870aae7..1ac2cc9cf0487 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc @@ -184,7 +184,7 @@ void lst::Event::addHitToEvent(std::vector x, alpaka::wait(queue); Vec3D const threadsPerBlock1 = createVec(1, 1, 256); - Vec3D const blocksPerGrid1 = createVec(1, 1, MAX_BLOCKS); + Vec3D const blocksPerGrid1 = createVec(1, 1, max_blocks); WorkDiv3D const hit_loop_workdiv = createWorkDiv(blocksPerGrid1, threadsPerBlock1, elementsPerThread); hitLoopKernel hit_loop_kernel; @@ -204,7 +204,7 @@ void lst::Event::addHitToEvent(std::vector x, alpaka::enqueue(queue, hit_loop_task); Vec3D const threadsPerBlock2 = createVec(1, 1, 256); - Vec3D const blocksPerGrid2 = createVec(1, 1, MAX_BLOCKS); + Vec3D const blocksPerGrid2 = createVec(1, 1, max_blocks); WorkDiv3D const module_ranges_workdiv = createWorkDiv(blocksPerGrid2, threadsPerBlock2, elementsPerThread); moduleRangesKernel module_ranges_kernel; @@ -237,13 +237,13 @@ void lst::Event::addPixelSegmentToEvent(std::vector hitIndi std::vector isQuad) { unsigned int size = ptIn.size(); - if (size > 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" + "* You need to increase n_max_pixel_segments_per_module. *\n" "*********************************************************\n"); - size = N_MAX_PIXEL_SEGMENTS_PER_MODULE; + size = n_max_pixel_segments_per_module; } unsigned int mdSize = 2 * size; @@ -255,7 +255,7 @@ void lst::Event::addPixelSegmentToEvent(std::vector hitIndi 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 = 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); @@ -279,7 +279,7 @@ void lst::Event::addPixelSegmentToEvent(std::vector hitIndi alpaka::memcpy(queue, nTotalMDs_view, rangesBuffers->device_nTotalMDs_buf); alpaka::wait(queue); - nTotalMDs += N_MAX_PIXEL_MD_PER_MODULES; + nTotalMDs += n_max_pixel_md_per_modules; mdsInGPU = new lst::MiniDoublets(); miniDoubletsBuffers = new lst::MiniDoubletsBuffer(nTotalMDs, nLowerModules_, devAcc, queue); @@ -312,11 +312,11 @@ void lst::Event::addPixelSegmentToEvent(std::vector hitIndi alpaka::memcpy(queue, nTotalSegments_view, rangesBuffers->device_nTotalSegs_buf); alpaka::wait(queue); - nTotalSegments += N_MAX_PIXEL_SEGMENTS_PER_MODULE; + nTotalSegments += n_max_pixel_segments_per_module; segmentsInGPU = new lst::Segments(); segmentsBuffers = - new lst::SegmentsBuffer(nTotalSegments, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); + new lst::SegmentsBuffer(nTotalSegments, nLowerModules_, n_max_pixel_segments_per_module, devAcc, queue); segmentsInGPU->setData(*segmentsBuffers); alpaka::memcpy(queue, segmentsBuffers->nMemoryLocations_buf, nTotalSegments_view); @@ -370,7 +370,7 @@ void lst::Event::addPixelSegmentToEvent(std::vector hitIndi alpaka::wait(queue); Vec3D const threadsPerBlock = createVec(1, 1, 256); - Vec3D const blocksPerGrid = createVec(1, 1, MAX_BLOCKS); + Vec3D const blocksPerGrid = createVec(1, 1, max_blocks); WorkDiv3D const addPixelSegmentToEvent_workdiv = createWorkDiv(blocksPerGrid, threadsPerBlock, elementsPerThread); addPixelSegmentToEventKernel addPixelSegmentToEvent_kernel; @@ -399,7 +399,7 @@ void lst::Event::createMiniDoublets() { 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 = 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); @@ -424,7 +424,7 @@ void lst::Event::createMiniDoublets() { unsigned int nTotalMDs = *alpaka::getPtrNative(nTotalMDs_buf); - nTotalMDs += N_MAX_PIXEL_MD_PER_MODULES; + nTotalMDs += n_max_pixel_md_per_modules; if (mdsInGPU == nullptr) { mdsInGPU = new lst::MiniDoublets(); @@ -473,7 +473,7 @@ void lst::Event::createSegmentsWithModuleMap() { if (segmentsInGPU == nullptr) { segmentsInGPU = new lst::Segments(); segmentsBuffers = - new lst::SegmentsBuffer(nTotalSegments, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devAcc, queue); + new lst::SegmentsBuffer(nTotalSegments, nLowerModules_, n_max_pixel_segments_per_module, devAcc, queue); segmentsInGPU->setData(*segmentsBuffers); } @@ -584,7 +584,7 @@ void lst::Event::createTriplets() { alpaka::wait(queue); Vec3D const threadsPerBlockCreateTrip = createVec(1, 16, 16); - Vec3D const blocksPerGridCreateTrip = createVec(MAX_BLOCKS, 1, 1); + Vec3D const blocksPerGridCreateTrip = createVec(max_blocks, 1, 1); WorkDiv3D const createTripletsInGPUv2_workDiv = createWorkDiv(blocksPerGridCreateTrip, threadsPerBlockCreateTrip, elementsPerThread); @@ -626,7 +626,7 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ if (trackCandidatesInGPU == nullptr) { trackCandidatesInGPU = new lst::TrackCandidates(); trackCandidatesBuffers = new lst::TrackCandidatesBuffer( - N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devAcc, queue); + n_max_nonpixel_track_candidates + n_max_pixel_track_candidates, devAcc, queue); trackCandidatesInGPU->setData(*trackCandidatesBuffers); } @@ -684,7 +684,7 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ alpaka::enqueue(queue, removeDupQuintupletsInGPUBeforeTCTask); Vec3D const threadsPerBlock_crossCleanT5 = createVec(32, 1, 32); - Vec3D const blocksPerGrid_crossCleanT5 = createVec((13296 / 32) + 1, 1, MAX_BLOCKS); + Vec3D const blocksPerGrid_crossCleanT5 = createVec((13296 / 32) + 1, 1, max_blocks); WorkDiv3D const crossCleanT5_workDiv = createWorkDiv(blocksPerGrid_crossCleanT5, threadsPerBlock_crossCleanT5, elementsPerThread); @@ -716,7 +716,7 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ if (!no_pls_dupclean) { Vec3D const threadsPerBlockCheckHitspLS = createVec(1, 16, 16); - Vec3D const blocksPerGridCheckHitspLS = createVec(1, MAX_BLOCKS * 4, MAX_BLOCKS / 4); + Vec3D const blocksPerGridCheckHitspLS = createVec(1, max_blocks * 4, max_blocks / 4); WorkDiv3D const checkHitspLS_workDiv = createWorkDiv(blocksPerGridCheckHitspLS, threadsPerBlockCheckHitspLS, elementsPerThread); @@ -747,7 +747,7 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ alpaka::enqueue(queue, crossCleanpLSTask); Vec3D const threadsPerBlock_addpLSasTrackCandidateInGPU = createVec(1, 1, 384); - Vec3D const blocksPerGrid_addpLSasTrackCandidateInGPU = createVec(1, 1, MAX_BLOCKS); + Vec3D const blocksPerGrid_addpLSasTrackCandidateInGPU = createVec(1, 1, max_blocks); WorkDiv3D const addpLSasTrackCandidateInGPU_workDiv = createWorkDiv( blocksPerGrid_addpLSasTrackCandidateInGPU, threadsPerBlock_addpLSasTrackCandidateInGPU, elementsPerThread); @@ -761,7 +761,7 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ alpaka::enqueue(queue, addpLSasTrackCandidateInGPUTask); - // Check if either N_MAX_PIXEL_TRACK_CANDIDATES or 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); @@ -776,13 +776,13 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ 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 == n_max_pixel_track_candidates) || + (nTrackCandidatesT5 == n_max_nonpixel_track_candidates)) { printf( "****************************************************************************************************\n" "* Warning: Track candidates were possibly truncated. *\n" - "* You may need to increase either N_MAX_PIXEL_TRACK_CANDIDATES or N_MAX_NONPIXEL_TRACK_CANDIDATES. *\n" - "* Run the code with the Warnings flag activated for more details. *\n" + "* You may need to increase either n_max_pixel_track_candidates or n_max_nonpixel_track_candidates. *\n" + "* Run the code with the WARNINGS flag activated for more details. *\n" "****************************************************************************************************\n"); } } @@ -790,7 +790,7 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ void lst::Event::createPixelTriplets() { if (pixelTripletsInGPU == nullptr) { pixelTripletsInGPU = new lst::PixelTriplets(); - pixelTripletsBuffers = new lst::PixelTripletsBuffer(N_MAX_PIXEL_TRIPLETS, devAcc, queue); + pixelTripletsBuffers = new lst::PixelTripletsBuffer(n_max_pixel_triplets, devAcc, queue); pixelTripletsInGPU->setData(*pixelTripletsBuffers); } @@ -802,8 +802,8 @@ void lst::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, 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); @@ -882,7 +882,7 @@ void lst::Event::createPixelTriplets() { alpaka::enqueue(queue, createPixelTripletsInGPUFromMapv2Task); alpaka::wait(queue); -#ifdef Warnings +#ifdef WARNINGS auto nPixelTriplets_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nPixelTriplets_buf, pixelTripletsBuffers->nPixelTriplets_buf); @@ -961,7 +961,7 @@ void lst::Event::createQuintuplets() { alpaka::enqueue(queue, createQuintupletsInGPUv2Task); Vec3D const threadsPerBlockDupQuint = createVec(1, 16, 16); - Vec3D const blocksPerGridDupQuint = createVec(MAX_BLOCKS, 1, 1); + Vec3D const blocksPerGridDupQuint = createVec(max_blocks, 1, 1); WorkDiv3D const removeDupQuintupletsInGPUAfterBuild_workDiv = createWorkDiv(blocksPerGridDupQuint, threadsPerBlockDupQuint, elementsPerThread); @@ -999,7 +999,7 @@ void lst::Event::createQuintuplets() { void lst::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); + Vec3D const blocksPerGridCheckHitspLS = createVec(1, max_blocks * 4, max_blocks / 4); WorkDiv3D const checkHitspLS_workDiv = createWorkDiv(blocksPerGridCheckHitspLS, threadsPerBlockCheckHitspLS, elementsPerThread); @@ -1015,13 +1015,13 @@ void lst::Event::pixelLineSegmentCleaning(bool no_pls_dupclean) { void lst::Event::createPixelQuintuplets() { if (pixelQuintupletsInGPU == nullptr) { pixelQuintupletsInGPU = new lst::PixelQuintuplets(); - pixelQuintupletsBuffers = new lst::PixelQuintupletsBuffer(N_MAX_PIXEL_QUINTUPLETS, devAcc, queue); + pixelQuintupletsBuffers = new lst::PixelQuintupletsBuffer(n_max_pixel_quintuplets, devAcc, queue); pixelQuintupletsInGPU->setData(*pixelQuintupletsBuffers); } if (trackCandidatesInGPU == nullptr) { trackCandidatesInGPU = new lst::TrackCandidates(); trackCandidatesBuffers = new lst::TrackCandidatesBuffer( - N_MAX_NONPIXEL_TRACK_CANDIDATES + N_MAX_PIXEL_TRACK_CANDIDATES, devAcc, queue); + n_max_nonpixel_track_candidates + n_max_pixel_track_candidates, devAcc, queue); trackCandidatesInGPU->setData(*trackCandidatesBuffers); } @@ -1034,8 +1034,8 @@ void lst::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, 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); @@ -1090,7 +1090,7 @@ void lst::Event::createPixelQuintuplets() { alpaka::wait(queue); Vec3D const threadsPerBlockCreatePixQuints = createVec(1, 16, 16); - Vec3D const blocksPerGridCreatePixQuints = createVec(16, MAX_BLOCKS, 1); + Vec3D const blocksPerGridCreatePixQuints = createVec(16, max_blocks, 1); WorkDiv3D const createPixelQuintupletsInGPUFromMapv2_workDiv = createWorkDiv(blocksPerGridCreatePixQuints, threadsPerBlockCreatePixQuints, elementsPerThread); @@ -1112,7 +1112,7 @@ void lst::Event::createPixelQuintuplets() { alpaka::enqueue(queue, createPixelQuintupletsInGPUFromMapv2Task); Vec3D const threadsPerBlockDupPix = createVec(1, 16, 16); - Vec3D const blocksPerGridDupPix = createVec(1, MAX_BLOCKS, 1); + Vec3D const blocksPerGridDupPix = createVec(1, max_blocks, 1); WorkDiv3D const removeDupPixelQuintupletsInGPUFromMap_workDiv = createWorkDiv(blocksPerGridDupPix, threadsPerBlockDupPix, elementsPerThread); @@ -1141,7 +1141,7 @@ void lst::Event::createPixelQuintuplets() { alpaka::enqueue(queue, addpT5asTrackCandidateInGPUTask); alpaka::wait(queue); -#ifdef Warnings +#ifdef WARNINGS auto nPixelQuintuplets_buf = allocBufWrapper(devHost, 1, queue); alpaka::memcpy(queue, nPixelQuintuplets_buf, pixelQuintupletsBuffers->nPixelQuintuplets_buf); @@ -1578,7 +1578,7 @@ lst::SegmentsBuffer* lst::Event::getSegments() { unsigned int nMemHost = *alpaka::getPtrNative(nMemHost_buf); segmentsInCPU = - new lst::SegmentsBuffer(nMemHost, nLowerModules_, N_MAX_PIXEL_SEGMENTS_PER_MODULE, devHost, queue); + new lst::SegmentsBuffer(nMemHost, nLowerModules_, n_max_pixel_segments_per_module, devHost, queue); segmentsInCPU->setData(*segmentsInCPU); *alpaka::getPtrNative(segmentsInCPU->nMemoryLocations_buf) = nMemHost; @@ -1761,7 +1761,7 @@ lst::TrackCandidatesBuffer* lst::Event::getTrackCandidates() { unsigned int nTrackCanHost = *alpaka::getPtrNative(nTrackCanHost_buf); trackCandidatesInCPU = new lst::TrackCandidatesBuffer( - N_MAX_NONPIXEL_TRACK_CANDIDATES + 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; @@ -1799,7 +1799,7 @@ lst::TrackCandidatesBuffer* lst::Event::getTrackCandidatesInCMSS unsigned int nTrackCanHost = *alpaka::getPtrNative(nTrackCanHost_buf); trackCandidatesInCPU = new lst::TrackCandidatesBuffer( - N_MAX_NONPIXEL_TRACK_CANDIDATES + 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; diff --git a/RecoTracker/LSTCore/src/alpaka/Event.h b/RecoTracker/LSTCore/src/alpaka/Event.h index 69ec34d0104c4..57c99123e2ee1 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.h +++ b/RecoTracker/LSTCore/src/alpaka/Event.h @@ -46,24 +46,24 @@ namespace lst { //Device stuff unsigned int nTotalSegments; - struct ObjectRanges* rangesInGPU; - struct ObjectRangesBuffer* rangesBuffers; - struct Hits* hitsInGPU; - struct HitsBuffer* hitsBuffers; - struct MiniDoublets* mdsInGPU; - struct MiniDoubletsBuffer* miniDoubletsBuffers; - struct Segments* segmentsInGPU; - struct SegmentsBuffer* segmentsBuffers; - struct Triplets* tripletsInGPU; - struct TripletsBuffer* tripletsBuffers; - struct Quintuplets* quintupletsInGPU; - struct QuintupletsBuffer* quintupletsBuffers; - struct TrackCandidates* trackCandidatesInGPU; - struct TrackCandidatesBuffer* trackCandidatesBuffers; - struct PixelTriplets* pixelTripletsInGPU; - struct PixelTripletsBuffer* pixelTripletsBuffers; - struct PixelQuintuplets* pixelQuintupletsInGPU; - struct PixelQuintupletsBuffer* pixelQuintupletsBuffers; + ObjectRanges* rangesInGPU; + ObjectRangesBuffer* rangesBuffers; + Hits* hitsInGPU; + HitsBuffer* hitsBuffers; + MiniDoublets* mdsInGPU; + MiniDoubletsBuffer* miniDoubletsBuffers; + Segments* segmentsInGPU; + SegmentsBuffer* segmentsBuffers; + Triplets* tripletsInGPU; + TripletsBuffer* tripletsBuffers; + Quintuplets* quintupletsInGPU; + QuintupletsBuffer* quintupletsBuffers; + TrackCandidates* trackCandidatesInGPU; + TrackCandidatesBuffer* trackCandidatesBuffers; + PixelTriplets* pixelTripletsInGPU; + PixelTripletsBuffer* pixelTripletsBuffers; + PixelQuintuplets* pixelQuintupletsInGPU; + PixelQuintupletsBuffer* pixelQuintupletsBuffers; //CPU interface stuff ObjectRangesBuffer* rangesInCPU; @@ -88,7 +88,7 @@ namespace lst { const unsigned int nPixels_; const unsigned int nEndCapMap_; const std::shared_ptr> modulesBuffers_; - const std::shared_ptr pixelMapping_; + const std::shared_ptr pixelMapping_; const std::shared_ptr> endcapGeometryBuffers_; public: diff --git a/RecoTracker/LSTCore/src/alpaka/Kernels.h b/RecoTracker/LSTCore/src/alpaka/Kernels.h index 76a3e6ef26770..b95d4ce24055f 100644 --- a/RecoTracker/LSTCore/src/alpaka/Kernels.h +++ b/RecoTracker/LSTCore/src/alpaka/Kernels.h @@ -342,8 +342,8 @@ namespace lst { 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 > 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))) diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index 1ae62844019f8..b189fde578d5b 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -953,7 +953,7 @@ namespace lst { int totOccupancyMDs = alpaka::atomicOp(acc, &mdsInGPU.totOccupancyMDs[lowerModuleIndex], 1u); if (totOccupancyMDs >= (rangesInGPU.miniDoubletModuleOccupancy[lowerModuleIndex])) { -#ifdef Warnings +#ifdef WARNINGS printf("Mini-doublet excess alert! Module index = %d\n", lowerModuleIndex); #endif } else { @@ -992,7 +992,7 @@ namespace lst { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); - // Initialize variables in shared memory and set to 0 + // Declare variables in shared memory and set to 0 int& nTotalMDs = alpaka::declareSharedVar(acc); nTotalMDs = 0; alpaka::syncBlockThreads(acc); @@ -1054,7 +1054,7 @@ namespace lst { occupancy = 25; else { occupancy = 0; -#ifdef Warnings +#ifdef WARNINGS printf("Unhandled case in createMDArrayRangesGPU! Module index = %i\n", i); #endif } diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index bf6b95d069d5f..ae0412c3e0bb4 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -481,7 +481,7 @@ namespace lst { delta2[i] = 500 * inv1; isFlat[i] = false; } -#ifdef Warnings +#ifdef WARNINGS else { printf("ERROR!!!!! I SHOULDN'T BE HERE!!!! subdet = %d, type = %d, side = %d\n", moduleSubdet, @@ -1051,7 +1051,7 @@ namespace lst { uint16_t tripletLowerModuleIndex = modulesInGPU .connectedPixels[iLSModule]; //connected pixels will have the appropriate lower module index by default! -#ifdef Warnings +#ifdef WARNINGS if (tripletLowerModuleIndex >= *modulesInGPU.nLowerModules) { printf("tripletLowerModuleIndex %d >= modulesInGPU.nLowerModules %d \n", tripletLowerModuleIndex, @@ -1129,8 +1129,8 @@ namespace lst { float score = rPhiChiSquared + rPhiChiSquaredInwards; unsigned int totOccupancyPixelTriplets = alpaka::atomicOp(acc, pixelTripletsInGPU.totOccupancyPixelTriplets, 1u); - if (totOccupancyPixelTriplets >= N_MAX_PIXEL_TRIPLETS) { -#ifdef Warnings + if (totOccupancyPixelTriplets >= n_max_pixel_triplets) { +#ifdef WARNINGS printf("Pixel Triplet excess alert!\n"); #endif } else { @@ -2336,7 +2336,7 @@ namespace lst { delta2[i] = 500.f * inv1; isFlat[i] = false; } -#ifdef Warnings +#ifdef WARNINGS else { printf("ERROR!!!!! I SHOULDN'T BE HERE!!!! subdet = %d, type = %d, side = %d\n", moduleSubdet, @@ -2737,8 +2737,8 @@ namespace lst { if (success) { unsigned int totOccupancyPixelQuintuplets = alpaka::atomicOp(acc, pixelQuintupletsInGPU.totOccupancyPixelQuintuplets, 1u); - if (totOccupancyPixelQuintuplets >= N_MAX_PIXEL_QUINTUPLETS) { -#ifdef Warnings + if (totOccupancyPixelQuintuplets >= n_max_pixel_quintuplets) { +#ifdef WARNINGS printf("Pixel Quintuplet excess alert!\n"); #endif } else { diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index d6111c1b4ed4d..050fefd2f29f6 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -1224,7 +1224,7 @@ namespace lst { delta2[i] = 500.f * inv1; isFlat[i] = false; } else { -#ifdef Warnings +#ifdef WARNINGS printf("ERROR!!!!! I SHOULDN'T BE HERE!!!! subdet = %d, type = %d, side = %d\n", moduleSubdet, moduleType, @@ -1315,7 +1315,7 @@ namespace lst { g = 0.5f * twoG; f = 0.5f * twoF; if (g * g + f * f - c < 0) { -#ifdef Warnings +#ifdef WARNINGS printf("FATAL! r^2 < 0!\n"); #endif chiSquared = -1; @@ -2912,8 +2912,8 @@ namespace lst { innerRadius, outerRadius, bridgeRadius); - TightCutFlag = TightCutFlag and (inference > lst::t5dnn::LSTWP2); // T5-in-TC cut - if (inference <= lst::t5dnn::LSTWP2) // T5-building cut + TightCutFlag = TightCutFlag and (inference > lst::t5dnn::lstwp2); // T5-in-TC cut + if (inference <= lst::t5dnn::lstwp2) // T5-building cut return false; #endif @@ -3038,7 +3038,7 @@ namespace lst { int totOccupancyQuintuplets = alpaka::atomicOp(acc, &quintupletsInGPU.totOccupancyQuintuplets[lowerModule1], 1u); if (totOccupancyQuintuplets >= rangesInGPU.quintupletModuleOccupancy[lowerModule1]) { -#ifdef Warnings +#ifdef WARNINGS printf("Quintuplet excess alert! Module index = %d\n", lowerModule1); #endif } else { @@ -3046,7 +3046,7 @@ namespace lst { alpaka::atomicOp(acc, &quintupletsInGPU.nQuintuplets[lowerModule1], 1u); //this if statement should never get executed! if (rangesInGPU.quintupletModuleIndices[lowerModule1] == -1) { -#ifdef Warnings +#ifdef WARNINGS printf("Quintuplets : no memory for module at module index = %d\n", lowerModule1); #endif } else { @@ -3175,7 +3175,7 @@ namespace lst { occupancy = 106; else { occupancy = 0; -#ifdef Warnings +#ifdef WARNINGS printf("Unhandled case in createEligibleModulesListForQuintupletsGPU! Module index = %i\n", i); #endif } diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index 397f426f45f47..7716c9f2ccf5b 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -800,7 +800,7 @@ namespace lst { for (uint16_t outerLowerModuleArrayIdx = blockThreadIdx[1]; outerLowerModuleArrayIdx < nConnectedModules; outerLowerModuleArrayIdx += blockThreadExtent[1]) { uint16_t outerLowerModuleIndex = - modulesInGPU.moduleMap[innerLowerModuleIndex * MAX_CONNECTED_MODULES + outerLowerModuleArrayIdx]; + modulesInGPU.moduleMap[innerLowerModuleIndex * max_connected_modules + outerLowerModuleArrayIdx]; unsigned int nOuterMDs = mdsInGPU.nMDs[outerLowerModuleIndex]; @@ -859,7 +859,7 @@ namespace lst { unsigned int totOccupancySegments = alpaka::atomicOp( acc, &segmentsInGPU.totOccupancySegments[innerLowerModuleIndex], 1u); if (static_cast(totOccupancySegments) >= rangesInGPU.segmentModuleOccupancy[innerLowerModuleIndex]) { -#ifdef Warnings +#ifdef WARNINGS printf("Segment excess alert! Module index = %d\n", innerLowerModuleIndex); #endif } else { @@ -968,7 +968,7 @@ namespace lst { occupancy = 85; else { occupancy = 0; -#ifdef Warnings +#ifdef WARNINGS printf("Unhandled case in createSegmentArrayRanges! Module index = %i\n", i); #endif } diff --git a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h index dbc061dfa7e92..7451f5e47dc80 100644 --- a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h +++ b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h @@ -404,9 +404,9 @@ namespace lst { 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 >= n_max_pixel_track_candidates) // This is done before any non-pixel TCs are added { -#ifdef Warnings +#ifdef WARNINGS printf("Track Candidate excess alert! Type = pT3"); #endif alpaka::atomicOp(acc, trackCandidatesInGPU.nTrackCandidates, 1u); @@ -462,9 +462,9 @@ namespace lst { 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 + n_max_nonpixel_track_candidates) // pT5 and pT3 TCs have been added, but not pLS TCs { -#ifdef Warnings +#ifdef WARNINGS printf("Track Candidate excess alert! Type = T5"); #endif alpaka::atomicOp(acc, trackCandidatesInGPU.nTrackCandidates, 1u); @@ -509,9 +509,9 @@ namespace lst { unsigned int trackCandidateIdx = alpaka::atomicOp(acc, trackCandidatesInGPU.nTrackCandidates, 1u); if (trackCandidateIdx - *trackCandidatesInGPU.nTrackCandidatesT5 >= - N_MAX_PIXEL_TRACK_CANDIDATES) // T5 TCs have already been added + n_max_pixel_track_candidates) // T5 TCs have already been added { -#ifdef Warnings +#ifdef WARNINGS printf("Track Candidate excess alert! Type = pLS"); #endif alpaka::atomicOp(acc, trackCandidatesInGPU.nTrackCandidates, 1u); @@ -549,9 +549,9 @@ namespace lst { 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 >= n_max_pixel_track_candidates) // No other TCs have been added yet { -#ifdef Warnings +#ifdef WARNINGS printf("Track Candidate excess alert! Type = pT5"); #endif alpaka::atomicOp(acc, trackCandidatesInGPU.nTrackCandidates, 1u); diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index 7375a68db26c8..4b9606b3ca2e7 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -768,7 +768,7 @@ namespace lst { float c = ((x2 * y3 - x3 * y2) * xy1sqr + (x3 * y1 - x1 * y3) * xy2sqr + (x1 * y2 - x2 * y1) * xy3sqr) * denomInv; if (((y1 - y3) * (x2 - x3) - (x1 - x3) * (y2 - y3) == 0) || (g * g + f * f - c < 0)) { -#ifdef Warnings +#ifdef WARNINGS printf("three collinear points or FATAL! r^2 < 0!\n"); #endif radius = -1.f; @@ -927,7 +927,7 @@ namespace lst { acc, &tripletsInGPU.totOccupancyTriplets[innerInnerLowerModuleIndex], 1u); if (static_cast(totOccupancyTriplets) >= rangesInGPU.tripletModuleOccupancy[innerInnerLowerModuleIndex]) { -#ifdef Warnings +#ifdef WARNINGS printf("Triplet excess alert! Module index = %d\n", innerInnerLowerModuleIndex); #endif } else { @@ -1065,7 +1065,7 @@ namespace lst { occupancy = 39; else { occupancy = 0; -#ifdef Warnings +#ifdef WARNINGS printf("Unhandled case in createTripletArrayRanges! Module index = %i\n", i); #endif } diff --git a/RecoTracker/LSTCore/standalone/bin/sdl.h b/RecoTracker/LSTCore/standalone/bin/sdl.h index 78545c3f55269..d4e1ff658945b 100644 --- a/RecoTracker/LSTCore/standalone/bin/sdl.h +++ b/RecoTracker/LSTCore/standalone/bin/sdl.h @@ -10,7 +10,7 @@ #include #include -#include "trktree.h" +#include "Trktree.h" #include "rooutil.h" #include "cxxopts.h" diff --git a/RecoTracker/LSTCore/standalone/bin/sdl_make_tracklooper b/RecoTracker/LSTCore/standalone/bin/sdl_make_tracklooper index ae4678ec18892..2cadee47be49c 100755 --- a/RecoTracker/LSTCore/standalone/bin/sdl_make_tracklooper +++ b/RecoTracker/LSTCore/standalone/bin/sdl_make_tracklooper @@ -170,7 +170,7 @@ fi PRINTWARNINGSOPT= if $PRINTWARNINGS; then - PRINTWARNINGSOPT="LSTWARNINGSFLAG=-DWarnings" + PRINTWARNINGSOPT="LSTWARNINGSFLAG=-DWARNINGS" fi PTCUTOPT="PTCUTFLAG=-DPT_CUT=${PTCUTVALUE}" diff --git a/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h b/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h index 6decf4bec42c8..e06e5e7af26f4 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h +++ b/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h @@ -3,7 +3,7 @@ #include "TString.h" #include "rooutil.h" -#include "trktree.h" +#include "Trktree.h" #include "ModuleConnectionMap.h" class AnalysisConfig { @@ -78,7 +78,7 @@ class AnalysisConfig { int job_index; // Custom Looper object to facilitate looping over many files - RooUtil::Looper looper; + RooUtil::Looper looper; // Custom Cutflow framework RooUtil::Cutflow cutflow; diff --git a/RecoTracker/LSTCore/standalone/code/core/trktree.cc b/RecoTracker/LSTCore/standalone/code/core/Trktree.cc similarity index 92% rename from RecoTracker/LSTCore/standalone/code/core/trktree.cc rename to RecoTracker/LSTCore/standalone/code/core/Trktree.cc index fb3e36c4c315b..8f4a93f6c272a 100644 --- a/RecoTracker/LSTCore/standalone/code/core/trktree.cc +++ b/RecoTracker/LSTCore/standalone/code/core/Trktree.cc @@ -1,7 +1,7 @@ -#include "trktree.h" -trktree trk; +#include "Trktree.h" +Trktree trk; -void trktree::Init(TTree *tree) { +void Trktree::Init(TTree *tree) { tree->SetMakeClass(1); see_stateCcov01_branch = 0; if (tree->GetBranch("see_stateCcov01") != 0) { @@ -2128,7 +2128,7 @@ void trktree::Init(TTree *tree) { } tree->SetMakeClass(0); } -void trktree::GetEntry(unsigned int idx) { +void Trktree::GetEntry(unsigned int idx) { index = idx; see_stateCcov01_isLoaded = false; simhit_rod_isLoaded = false; @@ -2434,7 +2434,7 @@ void trktree::GetEntry(unsigned int idx) { trk_inner_pt_isLoaded = false; see_stateTrajGlbPy_isLoaded = false; } -void trktree::LoadAllBranches() { +void Trktree::LoadAllBranches() { if (see_stateCcov01_branch != 0) see_stateCcov01(); if (simhit_rod_branch != 0) @@ -3042,7 +3042,7 @@ void trktree::LoadAllBranches() { if (see_stateTrajGlbPy_branch != 0) see_stateTrajGlbPy(); } -const std::vector &trktree::see_stateCcov01() { +const std::vector &Trktree::see_stateCcov01() { if (not see_stateCcov01_isLoaded) { if (see_stateCcov01_branch != 0) { see_stateCcov01_branch->GetEntry(index); @@ -3054,7 +3054,7 @@ const std::vector &trktree::see_stateCcov01() { } return *see_stateCcov01_; } -const std::vector &trktree::simhit_rod() { +const std::vector &Trktree::simhit_rod() { if (not simhit_rod_isLoaded) { if (simhit_rod_branch != 0) { simhit_rod_branch->GetEntry(index); @@ -3066,7 +3066,7 @@ const std::vector &trktree::simhit_rod() { } return *simhit_rod_; } -const std::vector &trktree::trk_phi() { +const std::vector &Trktree::trk_phi() { if (not trk_phi_isLoaded) { if (trk_phi_branch != 0) { trk_phi_branch->GetEntry(index); @@ -3078,7 +3078,7 @@ const std::vector &trktree::trk_phi() { } return *trk_phi_; } -const float &trktree::bsp_x() { +const float &Trktree::bsp_x() { if (not bsp_x_isLoaded) { if (bsp_x_branch != 0) { bsp_x_branch->GetEntry(index); @@ -3090,7 +3090,7 @@ const float &trktree::bsp_x() { } return bsp_x_; } -const std::vector &trktree::see_stateCcov05() { +const std::vector &Trktree::see_stateCcov05() { if (not see_stateCcov05_isLoaded) { if (see_stateCcov05_branch != 0) { see_stateCcov05_branch->GetEntry(index); @@ -3102,7 +3102,7 @@ const std::vector &trktree::see_stateCcov05() { } return *see_stateCcov05_; } -const std::vector &trktree::see_stateCcov04() { +const std::vector &Trktree::see_stateCcov04() { if (not see_stateCcov04_isLoaded) { if (see_stateCcov04_branch != 0) { see_stateCcov04_branch->GetEntry(index); @@ -3114,7 +3114,7 @@ const std::vector &trktree::see_stateCcov04() { } return *see_stateCcov04_; } -const std::vector &trktree::trk_dxyPV() { +const std::vector &Trktree::trk_dxyPV() { if (not trk_dxyPV_isLoaded) { if (trk_dxyPV_branch != 0) { trk_dxyPV_branch->GetEntry(index); @@ -3126,7 +3126,7 @@ const std::vector &trktree::trk_dxyPV() { } return *trk_dxyPV_; } -const std::vector &trktree::simhit_tof() { +const std::vector &Trktree::simhit_tof() { if (not simhit_tof_isLoaded) { if (simhit_tof_branch != 0) { simhit_tof_branch->GetEntry(index); @@ -3138,7 +3138,7 @@ const std::vector &trktree::simhit_tof() { } return *simhit_tof_; } -const std::vector &trktree::sim_event() { +const std::vector &Trktree::sim_event() { if (not sim_event_isLoaded) { if (sim_event_branch != 0) { sim_event_branch->GetEntry(index); @@ -3150,7 +3150,7 @@ const std::vector &trktree::sim_event() { } return *sim_event_; } -const std::vector &trktree::simhit_isStack() { +const std::vector &Trktree::simhit_isStack() { if (not simhit_isStack_isLoaded) { if (simhit_isStack_branch != 0) { simhit_isStack_branch->GetEntry(index); @@ -3162,7 +3162,7 @@ const std::vector &trktree::simhit_isStack() { } return *simhit_isStack_; } -const std::vector &trktree::trk_dz() { +const std::vector &Trktree::trk_dz() { if (not trk_dz_isLoaded) { if (trk_dz_branch != 0) { trk_dz_branch->GetEntry(index); @@ -3174,7 +3174,7 @@ const std::vector &trktree::trk_dz() { } return *trk_dz_; } -const std::vector &trktree::see_stateCcov03() { +const std::vector &Trktree::see_stateCcov03() { if (not see_stateCcov03_isLoaded) { if (see_stateCcov03_branch != 0) { see_stateCcov03_branch->GetEntry(index); @@ -3186,7 +3186,7 @@ const std::vector &trktree::see_stateCcov03() { } return *see_stateCcov03_; } -const std::vector &trktree::sim_eta() { +const std::vector &Trktree::sim_eta() { if (not sim_eta_isLoaded) { if (sim_eta_branch != 0) { sim_eta_branch->GetEntry(index); @@ -3198,7 +3198,7 @@ const std::vector &trktree::sim_eta() { } return *sim_eta_; } -const std::vector &trktree::simvtx_processType() { +const std::vector &Trktree::simvtx_processType() { if (not simvtx_processType_isLoaded) { if (simvtx_processType_branch != 0) { simvtx_processType_branch->GetEntry(index); @@ -3210,7 +3210,7 @@ const std::vector &trktree::simvtx_processType() { } return *simvtx_processType_; } -const std::vector &trktree::pix_radL() { +const std::vector &Trktree::pix_radL() { if (not pix_radL_isLoaded) { if (pix_radL_branch != 0) { pix_radL_branch->GetEntry(index); @@ -3222,7 +3222,7 @@ const std::vector &trktree::pix_radL() { } return *pix_radL_; } -const std::vector &trktree::see_stateCcov02() { +const std::vector &Trktree::see_stateCcov02() { if (not see_stateCcov02_isLoaded) { if (see_stateCcov02_branch != 0) { see_stateCcov02_branch->GetEntry(index); @@ -3234,7 +3234,7 @@ const std::vector &trktree::see_stateCcov02() { } return *see_stateCcov02_; } -const std::vector &trktree::see_nGlued() { +const std::vector &Trktree::see_nGlued() { if (not see_nGlued_isLoaded) { if (see_nGlued_branch != 0) { see_nGlued_branch->GetEntry(index); @@ -3246,7 +3246,7 @@ const std::vector &trktree::see_nGlued() { } return *see_nGlued_; } -const std::vector &trktree::trk_bestSimTrkIdx() { +const std::vector &Trktree::trk_bestSimTrkIdx() { if (not trk_bestSimTrkIdx_isLoaded) { if (trk_bestSimTrkIdx_branch != 0) { trk_bestSimTrkIdx_branch->GetEntry(index); @@ -3258,7 +3258,7 @@ const std::vector &trktree::trk_bestSimTrkIdx() { } return *trk_bestSimTrkIdx_; } -const std::vector &trktree::see_stateTrajGlbPz() { +const std::vector &Trktree::see_stateTrajGlbPz() { if (not see_stateTrajGlbPz_isLoaded) { if (see_stateTrajGlbPz_branch != 0) { see_stateTrajGlbPz_branch->GetEntry(index); @@ -3270,7 +3270,7 @@ const std::vector &trktree::see_stateTrajGlbPz() { } return *see_stateTrajGlbPz_; } -const std::vector &trktree::pix_yz() { +const std::vector &Trktree::pix_yz() { if (not pix_yz_isLoaded) { if (pix_yz_branch != 0) { pix_yz_branch->GetEntry(index); @@ -3282,7 +3282,7 @@ const std::vector &trktree::pix_yz() { } return *pix_yz_; } -const std::vector &trktree::pix_yy() { +const std::vector &Trktree::pix_yy() { if (not pix_yy_isLoaded) { if (pix_yy_branch != 0) { pix_yy_branch->GetEntry(index); @@ -3294,7 +3294,7 @@ const std::vector &trktree::pix_yy() { } return *pix_yy_; } -const std::vector &trktree::simhit_process() { +const std::vector &Trktree::simhit_process() { if (not simhit_process_isLoaded) { if (simhit_process_branch != 0) { simhit_process_branch->GetEntry(index); @@ -3306,7 +3306,7 @@ const std::vector &trktree::simhit_process() { } return *simhit_process_; } -const std::vector &trktree::see_stateCcov34() { +const std::vector &Trktree::see_stateCcov34() { if (not see_stateCcov34_isLoaded) { if (see_stateCcov34_branch != 0) { see_stateCcov34_branch->GetEntry(index); @@ -3318,7 +3318,7 @@ const std::vector &trktree::see_stateCcov34() { } return *see_stateCcov34_; } -const std::vector &trktree::trk_nInnerLost() { +const std::vector &Trktree::trk_nInnerLost() { if (not trk_nInnerLost_isLoaded) { if (trk_nInnerLost_branch != 0) { trk_nInnerLost_branch->GetEntry(index); @@ -3330,7 +3330,7 @@ const std::vector &trktree::trk_nInnerLost() { } return *trk_nInnerLost_; } -const std::vector &trktree::see_py() { +const std::vector &Trktree::see_py() { if (not see_py_isLoaded) { if (see_py_branch != 0) { see_py_branch->GetEntry(index); @@ -3342,7 +3342,7 @@ const std::vector &trktree::see_py() { } return *see_py_; } -const std::vector > &trktree::sim_trkIdx() { +const std::vector > &Trktree::sim_trkIdx() { if (not sim_trkIdx_isLoaded) { if (sim_trkIdx_branch != 0) { sim_trkIdx_branch->GetEntry(index); @@ -3354,7 +3354,7 @@ const std::vector > &trktree::sim_trkIdx() { } return *sim_trkIdx_; } -const std::vector &trktree::trk_nLost() { +const std::vector &Trktree::trk_nLost() { if (not trk_nLost_isLoaded) { if (trk_nLost_branch != 0) { trk_nLost_branch->GetEntry(index); @@ -3366,7 +3366,7 @@ const std::vector &trktree::trk_nLost() { } return *trk_nLost_; } -const std::vector &trktree::pix_isBarrel() { +const std::vector &Trktree::pix_isBarrel() { if (not pix_isBarrel_isLoaded) { if (pix_isBarrel_branch != 0) { pix_isBarrel_branch->GetEntry(index); @@ -3378,7 +3378,7 @@ const std::vector &trktree::pix_isBarrel() { } return *pix_isBarrel_; } -const std::vector &trktree::see_dxyErr() { +const std::vector &Trktree::see_dxyErr() { if (not see_dxyErr_isLoaded) { if (see_dxyErr_branch != 0) { see_dxyErr_branch->GetEntry(index); @@ -3390,7 +3390,7 @@ const std::vector &trktree::see_dxyErr() { } return *see_dxyErr_; } -const std::vector &trktree::simhit_detId() { +const std::vector &Trktree::simhit_detId() { if (not simhit_detId_isLoaded) { if (simhit_detId_branch != 0) { simhit_detId_branch->GetEntry(index); @@ -3402,7 +3402,7 @@ const std::vector &trktree::simhit_detId() { } return *simhit_detId_; } -const std::vector &trktree::simhit_subdet() { +const std::vector &Trktree::simhit_subdet() { if (not simhit_subdet_isLoaded) { if (simhit_subdet_branch != 0) { simhit_subdet_branch->GetEntry(index); @@ -3414,7 +3414,7 @@ const std::vector &trktree::simhit_subdet() { } return *simhit_subdet_; } -const std::vector > &trktree::see_hitIdx() { +const std::vector > &Trktree::see_hitIdx() { if (not see_hitIdx_isLoaded) { if (see_hitIdx_branch != 0) { see_hitIdx_branch->GetEntry(index); @@ -3426,7 +3426,7 @@ const std::vector > &trktree::see_hitIdx() { } return *see_hitIdx_; } -const std::vector &trktree::see_pt() { +const std::vector &Trktree::see_pt() { if (not see_pt_isLoaded) { if (see_pt_branch != 0) { see_pt_branch->GetEntry(index); @@ -3438,7 +3438,7 @@ const std::vector &trktree::see_pt() { } return *see_pt_; } -const std::vector &trktree::ph2_detId() { +const std::vector &Trktree::ph2_detId() { if (not ph2_detId_isLoaded) { if (ph2_detId_branch != 0) { ph2_detId_branch->GetEntry(index); @@ -3450,7 +3450,7 @@ const std::vector &trktree::ph2_detId() { } return *ph2_detId_; } -const std::vector &trktree::trk_nStripLay() { +const std::vector &Trktree::trk_nStripLay() { if (not trk_nStripLay_isLoaded) { if (trk_nStripLay_branch != 0) { trk_nStripLay_branch->GetEntry(index); @@ -3462,7 +3462,7 @@ const std::vector &trktree::trk_nStripLay() { } return *trk_nStripLay_; } -const std::vector &trktree::see_bestFromFirstHitSimTrkIdx() { +const std::vector &Trktree::see_bestFromFirstHitSimTrkIdx() { if (not see_bestFromFirstHitSimTrkIdx_isLoaded) { if (see_bestFromFirstHitSimTrkIdx_branch != 0) { see_bestFromFirstHitSimTrkIdx_branch->GetEntry(index); @@ -3474,7 +3474,7 @@ const std::vector &trktree::see_bestFromFirstHitSimTrkIdx() { } return *see_bestFromFirstHitSimTrkIdx_; } -const std::vector &trktree::sim_pca_pt() { +const std::vector &Trktree::sim_pca_pt() { if (not sim_pca_pt_isLoaded) { if (sim_pca_pt_branch != 0) { sim_pca_pt_branch->GetEntry(index); @@ -3486,7 +3486,7 @@ const std::vector &trktree::sim_pca_pt() { } return *sim_pca_pt_; } -const std::vector &trktree::see_trkIdx() { +const std::vector &Trktree::see_trkIdx() { if (not see_trkIdx_isLoaded) { if (see_trkIdx_branch != 0) { see_trkIdx_branch->GetEntry(index); @@ -3498,7 +3498,7 @@ const std::vector &trktree::see_trkIdx() { } return *see_trkIdx_; } -const std::vector &trktree::trk_nCluster() { +const std::vector &Trktree::trk_nCluster() { if (not trk_nCluster_isLoaded) { if (trk_nCluster_branch != 0) { trk_nCluster_branch->GetEntry(index); @@ -3510,7 +3510,7 @@ const std::vector &trktree::trk_nCluster() { } return *trk_nCluster_; } -const std::vector &trktree::trk_bestFromFirstHitSimTrkNChi2() { +const std::vector &Trktree::trk_bestFromFirstHitSimTrkNChi2() { if (not trk_bestFromFirstHitSimTrkNChi2_isLoaded) { if (trk_bestFromFirstHitSimTrkNChi2_branch != 0) { trk_bestFromFirstHitSimTrkNChi2_branch->GetEntry(index); @@ -3522,7 +3522,7 @@ const std::vector &trktree::trk_bestFromFirstHitSimTrkNChi2() { } return *trk_bestFromFirstHitSimTrkNChi2_; } -const std::vector &trktree::trk_isHP() { +const std::vector &Trktree::trk_isHP() { if (not trk_isHP_isLoaded) { if (trk_isHP_branch != 0) { trk_isHP_branch->GetEntry(index); @@ -3534,7 +3534,7 @@ const std::vector &trktree::trk_isHP() { } return *trk_isHP_; } -const std::vector > &trktree::simhit_hitType() { +const std::vector > &Trktree::simhit_hitType() { if (not simhit_hitType_isLoaded) { if (simhit_hitType_branch != 0) { simhit_hitType_branch->GetEntry(index); @@ -3546,7 +3546,7 @@ const std::vector > &trktree::simhit_hitType() { } return *simhit_hitType_; } -const std::vector &trktree::ph2_isUpper() { +const std::vector &Trktree::ph2_isUpper() { if (not ph2_isUpper_isLoaded) { if (ph2_isUpper_branch != 0) { ph2_isUpper_branch->GetEntry(index); @@ -3558,7 +3558,7 @@ const std::vector &trktree::ph2_isUpper() { } return *ph2_isUpper_; } -const std::vector &trktree::see_nStrip() { +const std::vector &Trktree::see_nStrip() { if (not see_nStrip_isLoaded) { if (see_nStrip_branch != 0) { see_nStrip_branch->GetEntry(index); @@ -3570,7 +3570,7 @@ const std::vector &trktree::see_nStrip() { } return *see_nStrip_; } -const std::vector &trktree::trk_bestSimTrkShareFracSimClusterDenom() { +const std::vector &Trktree::trk_bestSimTrkShareFracSimClusterDenom() { if (not trk_bestSimTrkShareFracSimClusterDenom_isLoaded) { if (trk_bestSimTrkShareFracSimClusterDenom_branch != 0) { trk_bestSimTrkShareFracSimClusterDenom_branch->GetEntry(index); @@ -3582,7 +3582,7 @@ const std::vector &trktree::trk_bestSimTrkShareFracSimClusterDenom() { } return *trk_bestSimTrkShareFracSimClusterDenom_; } -const std::vector &trktree::simhit_side() { +const std::vector &Trktree::simhit_side() { if (not simhit_side_isLoaded) { if (simhit_side_branch != 0) { simhit_side_branch->GetEntry(index); @@ -3594,7 +3594,7 @@ const std::vector &trktree::simhit_side() { } return *simhit_side_; } -const std::vector &trktree::simhit_x() { +const std::vector &Trktree::simhit_x() { if (not simhit_x_isLoaded) { if (simhit_x_branch != 0) { simhit_x_branch->GetEntry(index); @@ -3606,7 +3606,7 @@ const std::vector &trktree::simhit_x() { } return *simhit_x_; } -const std::vector &trktree::see_q() { +const std::vector &Trktree::see_q() { if (not see_q_isLoaded) { if (see_q_branch != 0) { see_q_branch->GetEntry(index); @@ -3618,7 +3618,7 @@ const std::vector &trktree::see_q() { } return *see_q_; } -const std::vector &trktree::simhit_z() { +const std::vector &Trktree::simhit_z() { if (not simhit_z_isLoaded) { if (simhit_z_branch != 0) { simhit_z_branch->GetEntry(index); @@ -3630,7 +3630,7 @@ const std::vector &trktree::simhit_z() { } return *simhit_z_; } -const std::vector &trktree::sim_pca_lambda() { +const std::vector &Trktree::sim_pca_lambda() { if (not sim_pca_lambda_isLoaded) { if (sim_pca_lambda_branch != 0) { sim_pca_lambda_branch->GetEntry(index); @@ -3642,7 +3642,7 @@ const std::vector &trktree::sim_pca_lambda() { } return *sim_pca_lambda_; } -const std::vector &trktree::sim_q() { +const std::vector &Trktree::sim_q() { if (not sim_q_isLoaded) { if (sim_q_branch != 0) { sim_q_branch->GetEntry(index); @@ -3654,7 +3654,7 @@ const std::vector &trktree::sim_q() { } return *sim_q_; } -const std::vector &trktree::pix_bbxi() { +const std::vector &Trktree::pix_bbxi() { if (not pix_bbxi_isLoaded) { if (pix_bbxi_branch != 0) { pix_bbxi_branch->GetEntry(index); @@ -3666,7 +3666,7 @@ const std::vector &trktree::pix_bbxi() { } return *pix_bbxi_; } -const std::vector &trktree::ph2_order() { +const std::vector &Trktree::ph2_order() { if (not ph2_order_isLoaded) { if (ph2_order_branch != 0) { ph2_order_branch->GetEntry(index); @@ -3678,7 +3678,7 @@ const std::vector &trktree::ph2_order() { } return *ph2_order_; } -const std::vector &trktree::ph2_module() { +const std::vector &Trktree::ph2_module() { if (not ph2_module_isLoaded) { if (ph2_module_branch != 0) { ph2_module_branch->GetEntry(index); @@ -3690,7 +3690,7 @@ const std::vector &trktree::ph2_module() { } return *ph2_module_; } -const std::vector &trktree::inv_order() { +const std::vector &Trktree::inv_order() { if (not inv_order_isLoaded) { if (inv_order_branch != 0) { inv_order_branch->GetEntry(index); @@ -3702,7 +3702,7 @@ const std::vector &trktree::inv_order() { } return *inv_order_; } -const std::vector &trktree::trk_dzErr() { +const std::vector &Trktree::trk_dzErr() { if (not trk_dzErr_isLoaded) { if (trk_dzErr_branch != 0) { trk_dzErr_branch->GetEntry(index); @@ -3714,7 +3714,7 @@ const std::vector &trktree::trk_dzErr() { } return *trk_dzErr_; } -const std::vector &trktree::trk_nInnerInactive() { +const std::vector &Trktree::trk_nInnerInactive() { if (not trk_nInnerInactive_isLoaded) { if (trk_nInnerInactive_branch != 0) { trk_nInnerInactive_branch->GetEntry(index); @@ -3726,7 +3726,7 @@ const std::vector &trktree::trk_nInnerInactive() { } return *trk_nInnerInactive_; } -const std::vector &trktree::see_fitok() { +const std::vector &Trktree::see_fitok() { if (not see_fitok_isLoaded) { if (see_fitok_branch != 0) { see_fitok_branch->GetEntry(index); @@ -3738,7 +3738,7 @@ const std::vector &trktree::see_fitok() { } return *see_fitok_; } -const std::vector &trktree::simhit_blade() { +const std::vector &Trktree::simhit_blade() { if (not simhit_blade_isLoaded) { if (simhit_blade_branch != 0) { simhit_blade_branch->GetEntry(index); @@ -3750,7 +3750,7 @@ const std::vector &trktree::simhit_blade() { } return *simhit_blade_; } -const std::vector &trktree::inv_subdet() { +const std::vector &Trktree::inv_subdet() { if (not inv_subdet_isLoaded) { if (inv_subdet_branch != 0) { inv_subdet_branch->GetEntry(index); @@ -3762,7 +3762,7 @@ const std::vector &trktree::inv_subdet() { } return *inv_subdet_; } -const std::vector &trktree::pix_blade() { +const std::vector &Trktree::pix_blade() { if (not pix_blade_isLoaded) { if (pix_blade_branch != 0) { pix_blade_branch->GetEntry(index); @@ -3774,7 +3774,7 @@ const std::vector &trktree::pix_blade() { } return *pix_blade_; } -const std::vector &trktree::pix_xx() { +const std::vector &Trktree::pix_xx() { if (not pix_xx_isLoaded) { if (pix_xx_branch != 0) { pix_xx_branch->GetEntry(index); @@ -3786,7 +3786,7 @@ const std::vector &trktree::pix_xx() { } return *pix_xx_; } -const std::vector &trktree::pix_xy() { +const std::vector &Trktree::pix_xy() { if (not pix_xy_isLoaded) { if (pix_xy_branch != 0) { pix_xy_branch->GetEntry(index); @@ -3798,7 +3798,7 @@ const std::vector &trktree::pix_xy() { } return *pix_xy_; } -const std::vector &trktree::simhit_panel() { +const std::vector &Trktree::simhit_panel() { if (not simhit_panel_isLoaded) { if (simhit_panel_branch != 0) { simhit_panel_branch->GetEntry(index); @@ -3810,7 +3810,7 @@ const std::vector &trktree::simhit_panel() { } return *simhit_panel_; } -const std::vector &trktree::sim_pz() { +const std::vector &Trktree::sim_pz() { if (not sim_pz_isLoaded) { if (sim_pz_branch != 0) { sim_pz_branch->GetEntry(index); @@ -3822,7 +3822,7 @@ const std::vector &trktree::sim_pz() { } return *sim_pz_; } -const std::vector &trktree::trk_dxy() { +const std::vector &Trktree::trk_dxy() { if (not trk_dxy_isLoaded) { if (trk_dxy_branch != 0) { trk_dxy_branch->GetEntry(index); @@ -3834,7 +3834,7 @@ const std::vector &trktree::trk_dxy() { } return *trk_dxy_; } -const std::vector &trktree::sim_px() { +const std::vector &Trktree::sim_px() { if (not sim_px_isLoaded) { if (sim_px_branch != 0) { sim_px_branch->GetEntry(index); @@ -3846,7 +3846,7 @@ const std::vector &trktree::sim_px() { } return *sim_px_; } -const std::vector &trktree::trk_lambda() { +const std::vector &Trktree::trk_lambda() { if (not trk_lambda_isLoaded) { if (trk_lambda_branch != 0) { trk_lambda_branch->GetEntry(index); @@ -3858,7 +3858,7 @@ const std::vector &trktree::trk_lambda() { } return *trk_lambda_; } -const std::vector &trktree::see_stateCcov12() { +const std::vector &Trktree::see_stateCcov12() { if (not see_stateCcov12_isLoaded) { if (see_stateCcov12_branch != 0) { see_stateCcov12_branch->GetEntry(index); @@ -3870,7 +3870,7 @@ const std::vector &trktree::see_stateCcov12() { } return *see_stateCcov12_; } -const std::vector &trktree::sim_pt() { +const std::vector &Trktree::sim_pt() { if (not sim_pt_isLoaded) { if (sim_pt_branch != 0) { sim_pt_branch->GetEntry(index); @@ -3882,7 +3882,7 @@ const std::vector &trktree::sim_pt() { } return *sim_pt_; } -const std::vector &trktree::sim_py() { +const std::vector &Trktree::sim_py() { if (not sim_py_isLoaded) { if (sim_py_branch != 0) { sim_py_branch->GetEntry(index); @@ -3894,7 +3894,7 @@ const std::vector &trktree::sim_py() { } return *sim_py_; } -const std::vector > &trktree::sim_decayVtxIdx() { +const std::vector > &Trktree::sim_decayVtxIdx() { if (not sim_decayVtxIdx_isLoaded) { if (sim_decayVtxIdx_branch != 0) { sim_decayVtxIdx_branch->GetEntry(index); @@ -3906,7 +3906,7 @@ const std::vector > &trktree::sim_decayVtxIdx() { } return *sim_decayVtxIdx_; } -const std::vector &trktree::pix_detId() { +const std::vector &Trktree::pix_detId() { if (not pix_detId_isLoaded) { if (pix_detId_branch != 0) { pix_detId_branch->GetEntry(index); @@ -3918,7 +3918,7 @@ const std::vector &trktree::pix_detId() { } return *pix_detId_; } -const std::vector &trktree::trk_eta() { +const std::vector &Trktree::trk_eta() { if (not trk_eta_isLoaded) { if (trk_eta_branch != 0) { trk_eta_branch->GetEntry(index); @@ -3930,7 +3930,7 @@ const std::vector &trktree::trk_eta() { } return *trk_eta_; } -const std::vector &trktree::see_dxy() { +const std::vector &Trktree::see_dxy() { if (not see_dxy_isLoaded) { if (see_dxy_branch != 0) { see_dxy_branch->GetEntry(index); @@ -3942,7 +3942,7 @@ const std::vector &trktree::see_dxy() { } return *see_dxy_; } -const std::vector &trktree::sim_isFromBHadron() { +const std::vector &Trktree::sim_isFromBHadron() { if (not sim_isFromBHadron_isLoaded) { if (sim_isFromBHadron_branch != 0) { sim_isFromBHadron_branch->GetEntry(index); @@ -3954,7 +3954,7 @@ const std::vector &trktree::sim_isFromBHadron() { } return *sim_isFromBHadron_; } -const std::vector &trktree::simhit_eloss() { +const std::vector &Trktree::simhit_eloss() { if (not simhit_eloss_isLoaded) { if (simhit_eloss_branch != 0) { simhit_eloss_branch->GetEntry(index); @@ -3966,7 +3966,7 @@ const std::vector &trktree::simhit_eloss() { } return *simhit_eloss_; } -const std::vector &trktree::see_stateCcov11() { +const std::vector &Trktree::see_stateCcov11() { if (not see_stateCcov11_isLoaded) { if (see_stateCcov11_branch != 0) { see_stateCcov11_branch->GetEntry(index); @@ -3978,7 +3978,7 @@ const std::vector &trktree::see_stateCcov11() { } return *see_stateCcov11_; } -const std::vector &trktree::simhit_pz() { +const std::vector &Trktree::simhit_pz() { if (not simhit_pz_isLoaded) { if (simhit_pz_branch != 0) { simhit_pz_branch->GetEntry(index); @@ -3990,7 +3990,7 @@ const std::vector &trktree::simhit_pz() { } return *simhit_pz_; } -const std::vector &trktree::sim_pdgId() { +const std::vector &Trktree::sim_pdgId() { if (not sim_pdgId_isLoaded) { if (sim_pdgId_branch != 0) { sim_pdgId_branch->GetEntry(index); @@ -4002,7 +4002,7 @@ const std::vector &trktree::sim_pdgId() { } return *sim_pdgId_; } -const std::vector &trktree::trk_stopReason() { +const std::vector &Trktree::trk_stopReason() { if (not trk_stopReason_isLoaded) { if (trk_stopReason_branch != 0) { trk_stopReason_branch->GetEntry(index); @@ -4014,7 +4014,7 @@ const std::vector &trktree::trk_stopReason() { } return *trk_stopReason_; } -const std::vector &trktree::sim_pca_phi() { +const std::vector &Trktree::sim_pca_phi() { if (not sim_pca_phi_isLoaded) { if (sim_pca_phi_branch != 0) { sim_pca_phi_branch->GetEntry(index); @@ -4026,7 +4026,7 @@ const std::vector &trktree::sim_pca_phi() { } return *sim_pca_phi_; } -const std::vector &trktree::simhit_isLower() { +const std::vector &Trktree::simhit_isLower() { if (not simhit_isLower_isLoaded) { if (simhit_isLower_branch != 0) { simhit_isLower_branch->GetEntry(index); @@ -4038,7 +4038,7 @@ const std::vector &trktree::simhit_isLower() { } return *simhit_isLower_; } -const std::vector &trktree::inv_ring() { +const std::vector &Trktree::inv_ring() { if (not inv_ring_isLoaded) { if (inv_ring_branch != 0) { inv_ring_branch->GetEntry(index); @@ -4050,7 +4050,7 @@ const std::vector &trktree::inv_ring() { } return *inv_ring_; } -const std::vector > &trktree::ph2_simHitIdx() { +const std::vector > &Trktree::ph2_simHitIdx() { if (not ph2_simHitIdx_isLoaded) { if (ph2_simHitIdx_branch != 0) { ph2_simHitIdx_branch->GetEntry(index); @@ -4062,7 +4062,7 @@ const std::vector > &trktree::ph2_simHitIdx() { } return *ph2_simHitIdx_; } -const std::vector &trktree::simhit_order() { +const std::vector &Trktree::simhit_order() { if (not simhit_order_isLoaded) { if (simhit_order_branch != 0) { simhit_order_branch->GetEntry(index); @@ -4074,7 +4074,7 @@ const std::vector &trktree::simhit_order() { } return *simhit_order_; } -const std::vector &trktree::trk_dxyClosestPV() { +const std::vector &Trktree::trk_dxyClosestPV() { if (not trk_dxyClosestPV_isLoaded) { if (trk_dxyClosestPV_branch != 0) { trk_dxyClosestPV_branch->GetEntry(index); @@ -4086,7 +4086,7 @@ const std::vector &trktree::trk_dxyClosestPV() { } return *trk_dxyClosestPV_; } -const std::vector &trktree::pix_z() { +const std::vector &Trktree::pix_z() { if (not pix_z_isLoaded) { if (pix_z_branch != 0) { pix_z_branch->GetEntry(index); @@ -4098,7 +4098,7 @@ const std::vector &trktree::pix_z() { } return *pix_z_; } -const std::vector &trktree::pix_y() { +const std::vector &Trktree::pix_y() { if (not pix_y_isLoaded) { if (pix_y_branch != 0) { pix_y_branch->GetEntry(index); @@ -4110,7 +4110,7 @@ const std::vector &trktree::pix_y() { } return *pix_y_; } -const std::vector &trktree::pix_x() { +const std::vector &Trktree::pix_x() { if (not pix_x_isLoaded) { if (pix_x_branch != 0) { pix_x_branch->GetEntry(index); @@ -4122,7 +4122,7 @@ const std::vector &trktree::pix_x() { } return *pix_x_; } -const std::vector > &trktree::see_hitType() { +const std::vector > &Trktree::see_hitType() { if (not see_hitType_isLoaded) { if (see_hitType_branch != 0) { see_hitType_branch->GetEntry(index); @@ -4134,7 +4134,7 @@ const std::vector > &trktree::see_hitType() { } return *see_hitType_; } -const std::vector &trktree::see_statePt() { +const std::vector &Trktree::see_statePt() { if (not see_statePt_isLoaded) { if (see_statePt_branch != 0) { see_statePt_branch->GetEntry(index); @@ -4146,7 +4146,7 @@ const std::vector &trktree::see_statePt() { } return *see_statePt_; } -const std::vector > &trktree::simvtx_sourceSimIdx() { +const std::vector > &Trktree::simvtx_sourceSimIdx() { if (not simvtx_sourceSimIdx_isLoaded) { if (simvtx_sourceSimIdx_branch != 0) { simvtx_sourceSimIdx_branch->GetEntry(index); @@ -4158,7 +4158,7 @@ const std::vector > &trktree::simvtx_sourceSimIdx() { } return *simvtx_sourceSimIdx_; } -const unsigned long long &trktree::event() { +const unsigned long long &Trktree::event() { if (not event_isLoaded) { if (event_branch != 0) { event_branch->GetEntry(index); @@ -4170,7 +4170,7 @@ const unsigned long long &trktree::event() { } return event_; } -const std::vector &trktree::pix_module() { +const std::vector &Trktree::pix_module() { if (not pix_module_isLoaded) { if (pix_module_branch != 0) { pix_module_branch->GetEntry(index); @@ -4182,7 +4182,7 @@ const std::vector &trktree::pix_module() { } return *pix_module_; } -const std::vector &trktree::ph2_side() { +const std::vector &Trktree::ph2_side() { if (not ph2_side_isLoaded) { if (ph2_side_branch != 0) { ph2_side_branch->GetEntry(index); @@ -4194,7 +4194,7 @@ const std::vector &trktree::ph2_side() { } return *ph2_side_; } -const std::vector &trktree::trk_bestSimTrkNChi2() { +const std::vector &Trktree::trk_bestSimTrkNChi2() { if (not trk_bestSimTrkNChi2_isLoaded) { if (trk_bestSimTrkNChi2_branch != 0) { trk_bestSimTrkNChi2_branch->GetEntry(index); @@ -4206,7 +4206,7 @@ const std::vector &trktree::trk_bestSimTrkNChi2() { } return *trk_bestSimTrkNChi2_; } -const std::vector &trktree::see_stateTrajPy() { +const std::vector &Trktree::see_stateTrajPy() { if (not see_stateTrajPy_isLoaded) { if (see_stateTrajPy_branch != 0) { see_stateTrajPy_branch->GetEntry(index); @@ -4218,7 +4218,7 @@ const std::vector &trktree::see_stateTrajPy() { } return *see_stateTrajPy_; } -const std::vector &trktree::inv_type() { +const std::vector &Trktree::inv_type() { if (not inv_type_isLoaded) { if (inv_type_branch != 0) { inv_type_branch->GetEntry(index); @@ -4230,7 +4230,7 @@ const std::vector &trktree::inv_type() { } return *inv_type_; } -const float &trktree::bsp_z() { +const float &Trktree::bsp_z() { if (not bsp_z_isLoaded) { if (bsp_z_branch != 0) { bsp_z_branch->GetEntry(index); @@ -4242,7 +4242,7 @@ const float &trktree::bsp_z() { } return bsp_z_; } -const float &trktree::bsp_y() { +const float &Trktree::bsp_y() { if (not bsp_y_isLoaded) { if (bsp_y_branch != 0) { bsp_y_branch->GetEntry(index); @@ -4254,7 +4254,7 @@ const float &trktree::bsp_y() { } return bsp_y_; } -const std::vector &trktree::simhit_py() { +const std::vector &Trktree::simhit_py() { if (not simhit_py_isLoaded) { if (simhit_py_branch != 0) { simhit_py_branch->GetEntry(index); @@ -4266,7 +4266,7 @@ const std::vector &trktree::simhit_py() { } return *simhit_py_; } -const std::vector > &trktree::see_simTrkIdx() { +const std::vector > &Trktree::see_simTrkIdx() { if (not see_simTrkIdx_isLoaded) { if (see_simTrkIdx_branch != 0) { see_simTrkIdx_branch->GetEntry(index); @@ -4278,7 +4278,7 @@ const std::vector > &trktree::see_simTrkIdx() { } return *see_simTrkIdx_; } -const std::vector &trktree::see_stateTrajGlbZ() { +const std::vector &Trktree::see_stateTrajGlbZ() { if (not see_stateTrajGlbZ_isLoaded) { if (see_stateTrajGlbZ_branch != 0) { see_stateTrajGlbZ_branch->GetEntry(index); @@ -4290,7 +4290,7 @@ const std::vector &trktree::see_stateTrajGlbZ() { } return *see_stateTrajGlbZ_; } -const std::vector &trktree::see_stateTrajGlbX() { +const std::vector &Trktree::see_stateTrajGlbX() { if (not see_stateTrajGlbX_isLoaded) { if (see_stateTrajGlbX_branch != 0) { see_stateTrajGlbX_branch->GetEntry(index); @@ -4302,7 +4302,7 @@ const std::vector &trktree::see_stateTrajGlbX() { } return *see_stateTrajGlbX_; } -const std::vector &trktree::see_stateTrajGlbY() { +const std::vector &Trktree::see_stateTrajGlbY() { if (not see_stateTrajGlbY_isLoaded) { if (see_stateTrajGlbY_branch != 0) { see_stateTrajGlbY_branch->GetEntry(index); @@ -4314,7 +4314,7 @@ const std::vector &trktree::see_stateTrajGlbY() { } return *see_stateTrajGlbY_; } -const std::vector &trktree::trk_originalAlgo() { +const std::vector &Trktree::trk_originalAlgo() { if (not trk_originalAlgo_isLoaded) { if (trk_originalAlgo_branch != 0) { trk_originalAlgo_branch->GetEntry(index); @@ -4326,7 +4326,7 @@ const std::vector &trktree::trk_originalAlgo() { } return *trk_originalAlgo_; } -const std::vector &trktree::trk_nPixel() { +const std::vector &Trktree::trk_nPixel() { if (not trk_nPixel_isLoaded) { if (trk_nPixel_branch != 0) { trk_nPixel_branch->GetEntry(index); @@ -4338,7 +4338,7 @@ const std::vector &trktree::trk_nPixel() { } return *trk_nPixel_; } -const std::vector &trktree::see_stateCcov14() { +const std::vector &Trktree::see_stateCcov14() { if (not see_stateCcov14_isLoaded) { if (see_stateCcov14_branch != 0) { see_stateCcov14_branch->GetEntry(index); @@ -4350,7 +4350,7 @@ const std::vector &trktree::see_stateCcov14() { } return *see_stateCcov14_; } -const std::vector &trktree::see_stateCcov15() { +const std::vector &Trktree::see_stateCcov15() { if (not see_stateCcov15_isLoaded) { if (see_stateCcov15_branch != 0) { see_stateCcov15_branch->GetEntry(index); @@ -4362,7 +4362,7 @@ const std::vector &trktree::see_stateCcov15() { } return *see_stateCcov15_; } -const std::vector &trktree::trk_phiErr() { +const std::vector &Trktree::trk_phiErr() { if (not trk_phiErr_isLoaded) { if (trk_phiErr_branch != 0) { trk_phiErr_branch->GetEntry(index); @@ -4374,7 +4374,7 @@ const std::vector &trktree::trk_phiErr() { } return *trk_phiErr_; } -const std::vector &trktree::see_stateCcov13() { +const std::vector &Trktree::see_stateCcov13() { if (not see_stateCcov13_isLoaded) { if (see_stateCcov13_branch != 0) { see_stateCcov13_branch->GetEntry(index); @@ -4386,7 +4386,7 @@ const std::vector &trktree::see_stateCcov13() { } return *see_stateCcov13_; } -const std::vector > &trktree::pix_chargeFraction() { +const std::vector > &Trktree::pix_chargeFraction() { if (not pix_chargeFraction_isLoaded) { if (pix_chargeFraction_branch != 0) { pix_chargeFraction_branch->GetEntry(index); @@ -4398,7 +4398,7 @@ const std::vector > &trktree::pix_chargeFraction() { } return *pix_chargeFraction_; } -const std::vector &trktree::trk_q() { +const std::vector &Trktree::trk_q() { if (not trk_q_isLoaded) { if (trk_q_branch != 0) { trk_q_branch->GetEntry(index); @@ -4410,7 +4410,7 @@ const std::vector &trktree::trk_q() { } return *trk_q_; } -const std::vector > &trktree::sim_seedIdx() { +const std::vector > &Trktree::sim_seedIdx() { if (not sim_seedIdx_isLoaded) { if (sim_seedIdx_branch != 0) { sim_seedIdx_branch->GetEntry(index); @@ -4422,7 +4422,7 @@ const std::vector > &trktree::sim_seedIdx() { } return *sim_seedIdx_; } -const std::vector &trktree::see_dzErr() { +const std::vector &Trktree::see_dzErr() { if (not see_dzErr_isLoaded) { if (see_dzErr_branch != 0) { see_dzErr_branch->GetEntry(index); @@ -4434,7 +4434,7 @@ const std::vector &trktree::see_dzErr() { } return *see_dzErr_; } -const std::vector &trktree::sim_nRecoClusters() { +const std::vector &Trktree::sim_nRecoClusters() { if (not sim_nRecoClusters_isLoaded) { if (sim_nRecoClusters_branch != 0) { sim_nRecoClusters_branch->GetEntry(index); @@ -4446,7 +4446,7 @@ const std::vector &trktree::sim_nRecoClusters() { } return *sim_nRecoClusters_; } -const unsigned int &trktree::run() { +const unsigned int &Trktree::run() { if (not run_isLoaded) { if (run_branch != 0) { run_branch->GetEntry(index); @@ -4458,7 +4458,7 @@ const unsigned int &trktree::run() { } return run_; } -const std::vector > &trktree::ph2_xySignificance() { +const std::vector > &Trktree::ph2_xySignificance() { if (not ph2_xySignificance_isLoaded) { if (ph2_xySignificance_branch != 0) { ph2_xySignificance_branch->GetEntry(index); @@ -4470,7 +4470,7 @@ const std::vector > &trktree::ph2_xySignificance() { } return *ph2_xySignificance_; } -const std::vector &trktree::trk_nChi2() { +const std::vector &Trktree::trk_nChi2() { if (not trk_nChi2_isLoaded) { if (trk_nChi2_branch != 0) { trk_nChi2_branch->GetEntry(index); @@ -4482,7 +4482,7 @@ const std::vector &trktree::trk_nChi2() { } return *trk_nChi2_; } -const std::vector &trktree::pix_layer() { +const std::vector &Trktree::pix_layer() { if (not pix_layer_isLoaded) { if (pix_layer_branch != 0) { pix_layer_branch->GetEntry(index); @@ -4494,7 +4494,7 @@ const std::vector &trktree::pix_layer() { } return *pix_layer_; } -const std::vector > &trktree::pix_xySignificance() { +const std::vector > &Trktree::pix_xySignificance() { if (not pix_xySignificance_isLoaded) { if (pix_xySignificance_branch != 0) { pix_xySignificance_branch->GetEntry(index); @@ -4506,7 +4506,7 @@ const std::vector > &trktree::pix_xySignificance() { } return *pix_xySignificance_; } -const std::vector &trktree::sim_pca_eta() { +const std::vector &Trktree::sim_pca_eta() { if (not sim_pca_eta_isLoaded) { if (sim_pca_eta_branch != 0) { sim_pca_eta_branch->GetEntry(index); @@ -4518,7 +4518,7 @@ const std::vector &trktree::sim_pca_eta() { } return *sim_pca_eta_; } -const std::vector &trktree::see_bestSimTrkShareFrac() { +const std::vector &Trktree::see_bestSimTrkShareFrac() { if (not see_bestSimTrkShareFrac_isLoaded) { if (see_bestSimTrkShareFrac_branch != 0) { see_bestSimTrkShareFrac_branch->GetEntry(index); @@ -4530,7 +4530,7 @@ const std::vector &trktree::see_bestSimTrkShareFrac() { } return *see_bestSimTrkShareFrac_; } -const std::vector &trktree::see_etaErr() { +const std::vector &Trktree::see_etaErr() { if (not see_etaErr_isLoaded) { if (see_etaErr_branch != 0) { see_etaErr_branch->GetEntry(index); @@ -4542,7 +4542,7 @@ const std::vector &trktree::see_etaErr() { } return *see_etaErr_; } -const std::vector &trktree::trk_bestSimTrkShareFracSimDenom() { +const std::vector &Trktree::trk_bestSimTrkShareFracSimDenom() { if (not trk_bestSimTrkShareFracSimDenom_isLoaded) { if (trk_bestSimTrkShareFracSimDenom_branch != 0) { trk_bestSimTrkShareFracSimDenom_branch->GetEntry(index); @@ -4554,7 +4554,7 @@ const std::vector &trktree::trk_bestSimTrkShareFracSimDenom() { } return *trk_bestSimTrkShareFracSimDenom_; } -const float &trktree::bsp_sigmaz() { +const float &Trktree::bsp_sigmaz() { if (not bsp_sigmaz_isLoaded) { if (bsp_sigmaz_branch != 0) { bsp_sigmaz_branch->GetEntry(index); @@ -4566,7 +4566,7 @@ const float &trktree::bsp_sigmaz() { } return bsp_sigmaz_; } -const float &trktree::bsp_sigmay() { +const float &Trktree::bsp_sigmay() { if (not bsp_sigmay_isLoaded) { if (bsp_sigmay_branch != 0) { bsp_sigmay_branch->GetEntry(index); @@ -4578,7 +4578,7 @@ const float &trktree::bsp_sigmay() { } return bsp_sigmay_; } -const float &trktree::bsp_sigmax() { +const float &Trktree::bsp_sigmax() { if (not bsp_sigmax_isLoaded) { if (bsp_sigmax_branch != 0) { bsp_sigmax_branch->GetEntry(index); @@ -4590,7 +4590,7 @@ const float &trktree::bsp_sigmax() { } return bsp_sigmax_; } -const std::vector &trktree::pix_ladder() { +const std::vector &Trktree::pix_ladder() { if (not pix_ladder_isLoaded) { if (pix_ladder_branch != 0) { pix_ladder_branch->GetEntry(index); @@ -4602,7 +4602,7 @@ const std::vector &trktree::pix_ladder() { } return *pix_ladder_; } -const std::vector &trktree::trk_qualityMask() { +const std::vector &Trktree::trk_qualityMask() { if (not trk_qualityMask_isLoaded) { if (trk_qualityMask_branch != 0) { trk_qualityMask_branch->GetEntry(index); @@ -4614,7 +4614,7 @@ const std::vector &trktree::trk_qualityMask() { } return *trk_qualityMask_; } -const std::vector &trktree::trk_ndof() { +const std::vector &Trktree::trk_ndof() { if (not trk_ndof_isLoaded) { if (trk_ndof_branch != 0) { trk_ndof_branch->GetEntry(index); @@ -4626,7 +4626,7 @@ const std::vector &trktree::trk_ndof() { } return *trk_ndof_; } -const std::vector &trktree::pix_subdet() { +const std::vector &Trktree::pix_subdet() { if (not pix_subdet_isLoaded) { if (pix_subdet_branch != 0) { pix_subdet_branch->GetEntry(index); @@ -4638,7 +4638,7 @@ const std::vector &trktree::pix_subdet() { } return *pix_subdet_; } -const std::vector > &trktree::ph2_seeIdx() { +const std::vector > &Trktree::ph2_seeIdx() { if (not ph2_seeIdx_isLoaded) { if (ph2_seeIdx_branch != 0) { ph2_seeIdx_branch->GetEntry(index); @@ -4650,7 +4650,7 @@ const std::vector > &trktree::ph2_seeIdx() { } return *ph2_seeIdx_; } -const std::vector &trktree::inv_isUpper() { +const std::vector &Trktree::inv_isUpper() { if (not inv_isUpper_isLoaded) { if (inv_isUpper_branch != 0) { inv_isUpper_branch->GetEntry(index); @@ -4662,7 +4662,7 @@ const std::vector &trktree::inv_isUpper() { } return *inv_isUpper_; } -const std::vector &trktree::ph2_zx() { +const std::vector &Trktree::ph2_zx() { if (not ph2_zx_isLoaded) { if (ph2_zx_branch != 0) { ph2_zx_branch->GetEntry(index); @@ -4674,7 +4674,7 @@ const std::vector &trktree::ph2_zx() { } return *ph2_zx_; } -const std::vector > &trktree::pix_trkIdx() { +const std::vector > &Trktree::pix_trkIdx() { if (not pix_trkIdx_isLoaded) { if (pix_trkIdx_branch != 0) { pix_trkIdx_branch->GetEntry(index); @@ -4686,7 +4686,7 @@ const std::vector > &trktree::pix_trkIdx() { } return *pix_trkIdx_; } -const std::vector &trktree::trk_nOuterLost() { +const std::vector &Trktree::trk_nOuterLost() { if (not trk_nOuterLost_isLoaded) { if (trk_nOuterLost_branch != 0) { trk_nOuterLost_branch->GetEntry(index); @@ -4698,7 +4698,7 @@ const std::vector &trktree::trk_nOuterLost() { } return *trk_nOuterLost_; } -const std::vector &trktree::inv_panel() { +const std::vector &Trktree::inv_panel() { if (not inv_panel_isLoaded) { if (inv_panel_branch != 0) { inv_panel_branch->GetEntry(index); @@ -4710,7 +4710,7 @@ const std::vector &trktree::inv_panel() { } return *inv_panel_; } -const std::vector &trktree::vtx_z() { +const std::vector &Trktree::vtx_z() { if (not vtx_z_isLoaded) { if (vtx_z_branch != 0) { vtx_z_branch->GetEntry(index); @@ -4722,7 +4722,7 @@ const std::vector &trktree::vtx_z() { } return *vtx_z_; } -const std::vector &trktree::simhit_layer() { +const std::vector &Trktree::simhit_layer() { if (not simhit_layer_isLoaded) { if (simhit_layer_branch != 0) { simhit_layer_branch->GetEntry(index); @@ -4734,7 +4734,7 @@ const std::vector &trktree::simhit_layer() { } return *simhit_layer_; } -const std::vector &trktree::vtx_y() { +const std::vector &Trktree::vtx_y() { if (not vtx_y_isLoaded) { if (vtx_y_branch != 0) { vtx_y_branch->GetEntry(index); @@ -4746,7 +4746,7 @@ const std::vector &trktree::vtx_y() { } return *vtx_y_; } -const std::vector &trktree::ph2_isBarrel() { +const std::vector &Trktree::ph2_isBarrel() { if (not ph2_isBarrel_isLoaded) { if (ph2_isBarrel_branch != 0) { ph2_isBarrel_branch->GetEntry(index); @@ -4758,7 +4758,7 @@ const std::vector &trktree::ph2_isBarrel() { } return *ph2_isBarrel_; } -const std::vector > &trktree::pix_seeIdx() { +const std::vector > &Trktree::pix_seeIdx() { if (not pix_seeIdx_isLoaded) { if (pix_seeIdx_branch != 0) { pix_seeIdx_branch->GetEntry(index); @@ -4770,7 +4770,7 @@ const std::vector > &trktree::pix_seeIdx() { } return *pix_seeIdx_; } -const std::vector &trktree::trk_bestFromFirstHitSimTrkIdx() { +const std::vector &Trktree::trk_bestFromFirstHitSimTrkIdx() { if (not trk_bestFromFirstHitSimTrkIdx_isLoaded) { if (trk_bestFromFirstHitSimTrkIdx_branch != 0) { trk_bestFromFirstHitSimTrkIdx_branch->GetEntry(index); @@ -4782,7 +4782,7 @@ const std::vector &trktree::trk_bestFromFirstHitSimTrkIdx() { } return *trk_bestFromFirstHitSimTrkIdx_; } -const std::vector &trktree::simhit_px() { +const std::vector &Trktree::simhit_px() { if (not simhit_px_isLoaded) { if (simhit_px_branch != 0) { simhit_px_branch->GetEntry(index); @@ -4794,7 +4794,7 @@ const std::vector &trktree::simhit_px() { } return *simhit_px_; } -const std::vector &trktree::see_stateTrajX() { +const std::vector &Trktree::see_stateTrajX() { if (not see_stateTrajX_isLoaded) { if (see_stateTrajX_branch != 0) { see_stateTrajX_branch->GetEntry(index); @@ -4806,7 +4806,7 @@ const std::vector &trktree::see_stateTrajX() { } return *see_stateTrajX_; } -const std::vector &trktree::see_stateTrajY() { +const std::vector &Trktree::see_stateTrajY() { if (not see_stateTrajY_isLoaded) { if (see_stateTrajY_branch != 0) { see_stateTrajY_branch->GetEntry(index); @@ -4818,7 +4818,7 @@ const std::vector &trktree::see_stateTrajY() { } return *see_stateTrajY_; } -const std::vector &trktree::trk_nOuterInactive() { +const std::vector &Trktree::trk_nOuterInactive() { if (not trk_nOuterInactive_isLoaded) { if (trk_nOuterInactive_branch != 0) { trk_nOuterInactive_branch->GetEntry(index); @@ -4830,7 +4830,7 @@ const std::vector &trktree::trk_nOuterInactive() { } return *trk_nOuterInactive_; } -const std::vector &trktree::sim_pca_dxy() { +const std::vector &Trktree::sim_pca_dxy() { if (not sim_pca_dxy_isLoaded) { if (sim_pca_dxy_branch != 0) { sim_pca_dxy_branch->GetEntry(index); @@ -4842,7 +4842,7 @@ const std::vector &trktree::sim_pca_dxy() { } return *sim_pca_dxy_; } -const std::vector &trktree::trk_algo() { +const std::vector &Trktree::trk_algo() { if (not trk_algo_isLoaded) { if (trk_algo_branch != 0) { trk_algo_branch->GetEntry(index); @@ -4854,7 +4854,7 @@ const std::vector &trktree::trk_algo() { } return *trk_algo_; } -const std::vector > &trktree::trk_hitType() { +const std::vector > &Trktree::trk_hitType() { if (not trk_hitType_isLoaded) { if (trk_hitType_branch != 0) { trk_hitType_branch->GetEntry(index); @@ -4866,7 +4866,7 @@ const std::vector > &trktree::trk_hitType() { } return *trk_hitType_; } -const std::vector &trktree::trk_bestFromFirstHitSimTrkShareFrac() { +const std::vector &Trktree::trk_bestFromFirstHitSimTrkShareFrac() { if (not trk_bestFromFirstHitSimTrkShareFrac_isLoaded) { if (trk_bestFromFirstHitSimTrkShareFrac_branch != 0) { trk_bestFromFirstHitSimTrkShareFrac_branch->GetEntry(index); @@ -4878,7 +4878,7 @@ const std::vector &trktree::trk_bestFromFirstHitSimTrkShareFrac() { } return *trk_bestFromFirstHitSimTrkShareFrac_; } -const std::vector &trktree::inv_isBarrel() { +const std::vector &Trktree::inv_isBarrel() { if (not inv_isBarrel_isLoaded) { if (inv_isBarrel_branch != 0) { inv_isBarrel_branch->GetEntry(index); @@ -4890,7 +4890,7 @@ const std::vector &trktree::inv_isBarrel() { } return *inv_isBarrel_; } -const std::vector &trktree::simvtx_event() { +const std::vector &Trktree::simvtx_event() { if (not simvtx_event_isLoaded) { if (simvtx_event_branch != 0) { simvtx_event_branch->GetEntry(index); @@ -4902,7 +4902,7 @@ const std::vector &trktree::simvtx_event() { } return *simvtx_event_; } -const std::vector &trktree::ph2_z() { +const std::vector &Trktree::ph2_z() { if (not ph2_z_isLoaded) { if (ph2_z_branch != 0) { ph2_z_branch->GetEntry(index); @@ -4914,7 +4914,7 @@ const std::vector &trktree::ph2_z() { } return *ph2_z_; } -const std::vector &trktree::ph2_x() { +const std::vector &Trktree::ph2_x() { if (not ph2_x_isLoaded) { if (ph2_x_branch != 0) { ph2_x_branch->GetEntry(index); @@ -4926,7 +4926,7 @@ const std::vector &trktree::ph2_x() { } return *ph2_x_; } -const std::vector &trktree::ph2_y() { +const std::vector &Trktree::ph2_y() { if (not ph2_y_isLoaded) { if (ph2_y_branch != 0) { ph2_y_branch->GetEntry(index); @@ -4938,7 +4938,7 @@ const std::vector &trktree::ph2_y() { } return *ph2_y_; } -const std::vector > &trktree::sim_genPdgIds() { +const std::vector > &Trktree::sim_genPdgIds() { if (not sim_genPdgIds_isLoaded) { if (sim_genPdgIds_branch != 0) { sim_genPdgIds_branch->GetEntry(index); @@ -4950,7 +4950,7 @@ const std::vector > &trktree::sim_genPdgIds() { } return *sim_genPdgIds_; } -const std::vector &trktree::trk_mva() { +const std::vector &Trktree::trk_mva() { if (not trk_mva_isLoaded) { if (trk_mva_branch != 0) { trk_mva_branch->GetEntry(index); @@ -4962,7 +4962,7 @@ const std::vector &trktree::trk_mva() { } return *trk_mva_; } -const std::vector &trktree::see_stateCcov24() { +const std::vector &Trktree::see_stateCcov24() { if (not see_stateCcov24_isLoaded) { if (see_stateCcov24_branch != 0) { see_stateCcov24_branch->GetEntry(index); @@ -4974,7 +4974,7 @@ const std::vector &trktree::see_stateCcov24() { } return *see_stateCcov24_; } -const std::vector &trktree::trk_dzClosestPV() { +const std::vector &Trktree::trk_dzClosestPV() { if (not trk_dzClosestPV_isLoaded) { if (trk_dzClosestPV_branch != 0) { trk_dzClosestPV_branch->GetEntry(index); @@ -4986,7 +4986,7 @@ const std::vector &trktree::trk_dzClosestPV() { } return *trk_dzClosestPV_; } -const std::vector &trktree::see_nCluster() { +const std::vector &Trktree::see_nCluster() { if (not see_nCluster_isLoaded) { if (see_nCluster_branch != 0) { see_nCluster_branch->GetEntry(index); @@ -4998,7 +4998,7 @@ const std::vector &trktree::see_nCluster() { } return *see_nCluster_; } -const std::vector &trktree::inv_rod() { +const std::vector &Trktree::inv_rod() { if (not inv_rod_isLoaded) { if (inv_rod_branch != 0) { inv_rod_branch->GetEntry(index); @@ -5010,7 +5010,7 @@ const std::vector &trktree::inv_rod() { } return *inv_rod_; } -const std::vector > &trktree::trk_hitIdx() { +const std::vector > &Trktree::trk_hitIdx() { if (not trk_hitIdx_isLoaded) { if (trk_hitIdx_branch != 0) { trk_hitIdx_branch->GetEntry(index); @@ -5022,7 +5022,7 @@ const std::vector > &trktree::trk_hitIdx() { } return *trk_hitIdx_; } -const std::vector &trktree::see_stateCcov22() { +const std::vector &Trktree::see_stateCcov22() { if (not see_stateCcov22_isLoaded) { if (see_stateCcov22_branch != 0) { see_stateCcov22_branch->GetEntry(index); @@ -5034,7 +5034,7 @@ const std::vector &trktree::see_stateCcov22() { } return *see_stateCcov22_; } -const std::vector &trktree::pix_simType() { +const std::vector &Trktree::pix_simType() { if (not pix_simType_isLoaded) { if (pix_simType_branch != 0) { pix_simType_branch->GetEntry(index); @@ -5046,7 +5046,7 @@ const std::vector &trktree::pix_simType() { } return *pix_simType_; } -const std::vector &trktree::simhit_ring() { +const std::vector &Trktree::simhit_ring() { if (not simhit_ring_isLoaded) { if (simhit_ring_branch != 0) { simhit_ring_branch->GetEntry(index); @@ -5058,7 +5058,7 @@ const std::vector &trktree::simhit_ring() { } return *simhit_ring_; } -const std::vector &trktree::trk_outer_px() { +const std::vector &Trktree::trk_outer_px() { if (not trk_outer_px_isLoaded) { if (trk_outer_px_branch != 0) { trk_outer_px_branch->GetEntry(index); @@ -5070,7 +5070,7 @@ const std::vector &trktree::trk_outer_px() { } return *trk_outer_px_; } -const std::vector &trktree::trk_outer_py() { +const std::vector &Trktree::trk_outer_py() { if (not trk_outer_py_isLoaded) { if (trk_outer_py_branch != 0) { trk_outer_py_branch->GetEntry(index); @@ -5082,7 +5082,7 @@ const std::vector &trktree::trk_outer_py() { } return *trk_outer_py_; } -const std::vector &trktree::trk_outer_pz() { +const std::vector &Trktree::trk_outer_pz() { if (not trk_outer_pz_isLoaded) { if (trk_outer_pz_branch != 0) { trk_outer_pz_branch->GetEntry(index); @@ -5094,7 +5094,7 @@ const std::vector &trktree::trk_outer_pz() { } return *trk_outer_pz_; } -const std::vector &trktree::ph2_zz() { +const std::vector &Trktree::ph2_zz() { if (not ph2_zz_isLoaded) { if (ph2_zz_branch != 0) { ph2_zz_branch->GetEntry(index); @@ -5106,7 +5106,7 @@ const std::vector &trktree::ph2_zz() { } return *ph2_zz_; } -const std::vector &trktree::trk_outer_pt() { +const std::vector &Trktree::trk_outer_pt() { if (not trk_outer_pt_isLoaded) { if (trk_outer_pt_branch != 0) { trk_outer_pt_branch->GetEntry(index); @@ -5118,7 +5118,7 @@ const std::vector &trktree::trk_outer_pt() { } return *trk_outer_pt_; } -const std::vector &trktree::trk_n3DLay() { +const std::vector &Trktree::trk_n3DLay() { if (not trk_n3DLay_isLoaded) { if (trk_n3DLay_branch != 0) { trk_n3DLay_branch->GetEntry(index); @@ -5130,7 +5130,7 @@ const std::vector &trktree::trk_n3DLay() { } return *trk_n3DLay_; } -const std::vector &trktree::trk_nValid() { +const std::vector &Trktree::trk_nValid() { if (not trk_nValid_isLoaded) { if (trk_nValid_branch != 0) { trk_nValid_branch->GetEntry(index); @@ -5142,7 +5142,7 @@ const std::vector &trktree::trk_nValid() { } return *trk_nValid_; } -const std::vector &trktree::see_ptErr() { +const std::vector &Trktree::see_ptErr() { if (not see_ptErr_isLoaded) { if (see_ptErr_branch != 0) { see_ptErr_branch->GetEntry(index); @@ -5154,7 +5154,7 @@ const std::vector &trktree::see_ptErr() { } return *see_ptErr_; } -const std::vector &trktree::see_stateTrajGlbPx() { +const std::vector &Trktree::see_stateTrajGlbPx() { if (not see_stateTrajGlbPx_isLoaded) { if (see_stateTrajGlbPx_branch != 0) { see_stateTrajGlbPx_branch->GetEntry(index); @@ -5166,7 +5166,7 @@ const std::vector &trktree::see_stateTrajGlbPx() { } return *see_stateTrajGlbPx_; } -const std::vector &trktree::ph2_simType() { +const std::vector &Trktree::ph2_simType() { if (not ph2_simType_isLoaded) { if (ph2_simType_branch != 0) { ph2_simType_branch->GetEntry(index); @@ -5178,7 +5178,7 @@ const std::vector &trktree::ph2_simType() { } return *ph2_simType_; } -const std::vector &trktree::trk_bestFromFirstHitSimTrkShareFracSimClusterDenom() { +const std::vector &Trktree::trk_bestFromFirstHitSimTrkShareFracSimClusterDenom() { if (not trk_bestFromFirstHitSimTrkShareFracSimClusterDenom_isLoaded) { if (trk_bestFromFirstHitSimTrkShareFracSimClusterDenom_branch != 0) { trk_bestFromFirstHitSimTrkShareFracSimClusterDenom_branch->GetEntry(index); @@ -5190,7 +5190,7 @@ const std::vector &trktree::trk_bestFromFirstHitSimTrkShareFracSimCluster } return *trk_bestFromFirstHitSimTrkShareFracSimClusterDenom_; } -const std::vector &trktree::sim_hits() { +const std::vector &Trktree::sim_hits() { if (not sim_hits_isLoaded) { if (sim_hits_branch != 0) { sim_hits_branch->GetEntry(index); @@ -5202,7 +5202,7 @@ const std::vector &trktree::sim_hits() { } return *sim_hits_; } -const std::vector &trktree::sim_len() { +const std::vector &Trktree::sim_len() { if (not sim_len_isLoaded) { if (sim_len_branch != 0) { sim_len_branch->GetEntry(index); @@ -5214,7 +5214,7 @@ const std::vector &trktree::sim_len() { } return *sim_len_; } -const std::vector &trktree::sim_lengap() { +const std::vector &Trktree::sim_lengap() { if (not sim_lengap_isLoaded) { if (sim_lengap_branch != 0) { sim_lengap_branch->GetEntry(index); @@ -5226,7 +5226,7 @@ const std::vector &trktree::sim_lengap() { } return *sim_lengap_; } -const std::vector &trktree::simvtx_x() { +const std::vector &Trktree::simvtx_x() { if (not simvtx_x_isLoaded) { if (simvtx_x_branch != 0) { simvtx_x_branch->GetEntry(index); @@ -5238,7 +5238,7 @@ const std::vector &trktree::simvtx_x() { } return *simvtx_x_; } -const std::vector &trktree::trk_pz() { +const std::vector &Trktree::trk_pz() { if (not trk_pz_isLoaded) { if (trk_pz_branch != 0) { trk_pz_branch->GetEntry(index); @@ -5250,7 +5250,7 @@ const std::vector &trktree::trk_pz() { } return *trk_pz_; } -const std::vector &trktree::see_bestFromFirstHitSimTrkShareFrac() { +const std::vector &Trktree::see_bestFromFirstHitSimTrkShareFrac() { if (not see_bestFromFirstHitSimTrkShareFrac_isLoaded) { if (see_bestFromFirstHitSimTrkShareFrac_branch != 0) { see_bestFromFirstHitSimTrkShareFrac_branch->GetEntry(index); @@ -5262,7 +5262,7 @@ const std::vector &trktree::see_bestFromFirstHitSimTrkShareFrac() { } return *see_bestFromFirstHitSimTrkShareFrac_; } -const std::vector &trktree::trk_px() { +const std::vector &Trktree::trk_px() { if (not trk_px_isLoaded) { if (trk_px_branch != 0) { trk_px_branch->GetEntry(index); @@ -5274,7 +5274,7 @@ const std::vector &trktree::trk_px() { } return *trk_px_; } -const std::vector &trktree::trk_py() { +const std::vector &Trktree::trk_py() { if (not trk_py_isLoaded) { if (trk_py_branch != 0) { trk_py_branch->GetEntry(index); @@ -5286,7 +5286,7 @@ const std::vector &trktree::trk_py() { } return *trk_py_; } -const std::vector &trktree::trk_vtxIdx() { +const std::vector &Trktree::trk_vtxIdx() { if (not trk_vtxIdx_isLoaded) { if (trk_vtxIdx_branch != 0) { trk_vtxIdx_branch->GetEntry(index); @@ -5298,7 +5298,7 @@ const std::vector &trktree::trk_vtxIdx() { } return *trk_vtxIdx_; } -const std::vector &trktree::sim_nPixel() { +const std::vector &Trktree::sim_nPixel() { if (not sim_nPixel_isLoaded) { if (sim_nPixel_branch != 0) { sim_nPixel_branch->GetEntry(index); @@ -5310,7 +5310,7 @@ const std::vector &trktree::sim_nPixel() { } return *sim_nPixel_; } -const std::vector &trktree::vtx_chi2() { +const std::vector &Trktree::vtx_chi2() { if (not vtx_chi2_isLoaded) { if (vtx_chi2_branch != 0) { vtx_chi2_branch->GetEntry(index); @@ -5322,7 +5322,7 @@ const std::vector &trktree::vtx_chi2() { } return *vtx_chi2_; } -const std::vector &trktree::ph2_ring() { +const std::vector &Trktree::ph2_ring() { if (not ph2_ring_isLoaded) { if (ph2_ring_branch != 0) { ph2_ring_branch->GetEntry(index); @@ -5334,7 +5334,7 @@ const std::vector &trktree::ph2_ring() { } return *ph2_ring_; } -const std::vector &trktree::trk_pt() { +const std::vector &Trktree::trk_pt() { if (not trk_pt_isLoaded) { if (trk_pt_branch != 0) { trk_pt_branch->GetEntry(index); @@ -5346,7 +5346,7 @@ const std::vector &trktree::trk_pt() { } return *trk_pt_; } -const std::vector &trktree::see_stateCcov44() { +const std::vector &Trktree::see_stateCcov44() { if (not see_stateCcov44_isLoaded) { if (see_stateCcov44_branch != 0) { see_stateCcov44_branch->GetEntry(index); @@ -5358,7 +5358,7 @@ const std::vector &trktree::see_stateCcov44() { } return *see_stateCcov44_; } -const std::vector &trktree::ph2_radL() { +const std::vector &Trktree::ph2_radL() { if (not ph2_radL_isLoaded) { if (ph2_radL_branch != 0) { ph2_radL_branch->GetEntry(index); @@ -5370,7 +5370,7 @@ const std::vector &trktree::ph2_radL() { } return *ph2_radL_; } -const std::vector &trktree::vtx_zErr() { +const std::vector &Trktree::vtx_zErr() { if (not vtx_zErr_isLoaded) { if (vtx_zErr_branch != 0) { vtx_zErr_branch->GetEntry(index); @@ -5382,7 +5382,7 @@ const std::vector &trktree::vtx_zErr() { } return *vtx_zErr_; } -const std::vector &trktree::see_px() { +const std::vector &Trktree::see_px() { if (not see_px_isLoaded) { if (see_px_branch != 0) { see_px_branch->GetEntry(index); @@ -5394,7 +5394,7 @@ const std::vector &trktree::see_px() { } return *see_px_; } -const std::vector &trktree::see_pz() { +const std::vector &Trktree::see_pz() { if (not see_pz_isLoaded) { if (see_pz_branch != 0) { see_pz_branch->GetEntry(index); @@ -5406,7 +5406,7 @@ const std::vector &trktree::see_pz() { } return *see_pz_; } -const std::vector &trktree::see_eta() { +const std::vector &Trktree::see_eta() { if (not see_eta_isLoaded) { if (see_eta_branch != 0) { see_eta_branch->GetEntry(index); @@ -5418,7 +5418,7 @@ const std::vector &trktree::see_eta() { } return *see_eta_; } -const std::vector &trktree::simvtx_bunchCrossing() { +const std::vector &Trktree::simvtx_bunchCrossing() { if (not simvtx_bunchCrossing_isLoaded) { if (simvtx_bunchCrossing_branch != 0) { simvtx_bunchCrossing_branch->GetEntry(index); @@ -5430,7 +5430,7 @@ const std::vector &trktree::simvtx_bunchCrossing() { } return *simvtx_bunchCrossing_; } -const std::vector &trktree::sim_pca_dz() { +const std::vector &Trktree::sim_pca_dz() { if (not sim_pca_dz_isLoaded) { if (sim_pca_dz_branch != 0) { sim_pca_dz_branch->GetEntry(index); @@ -5442,7 +5442,7 @@ const std::vector &trktree::sim_pca_dz() { } return *sim_pca_dz_; } -const std::vector &trktree::simvtx_y() { +const std::vector &Trktree::simvtx_y() { if (not simvtx_y_isLoaded) { if (simvtx_y_branch != 0) { simvtx_y_branch->GetEntry(index); @@ -5454,7 +5454,7 @@ const std::vector &trktree::simvtx_y() { } return *simvtx_y_; } -const std::vector &trktree::inv_isStack() { +const std::vector &Trktree::inv_isStack() { if (not inv_isStack_isLoaded) { if (inv_isStack_branch != 0) { inv_isStack_branch->GetEntry(index); @@ -5466,7 +5466,7 @@ const std::vector &trktree::inv_isStack() { } return *inv_isStack_; } -const std::vector &trktree::trk_nStrip() { +const std::vector &Trktree::trk_nStrip() { if (not trk_nStrip_isLoaded) { if (trk_nStrip_branch != 0) { trk_nStrip_branch->GetEntry(index); @@ -5478,7 +5478,7 @@ const std::vector &trktree::trk_nStrip() { } return *trk_nStrip_; } -const std::vector &trktree::trk_etaErr() { +const std::vector &Trktree::trk_etaErr() { if (not trk_etaErr_isLoaded) { if (trk_etaErr_branch != 0) { trk_etaErr_branch->GetEntry(index); @@ -5490,7 +5490,7 @@ const std::vector &trktree::trk_etaErr() { } return *trk_etaErr_; } -const std::vector > &trktree::trk_simTrkNChi2() { +const std::vector > &Trktree::trk_simTrkNChi2() { if (not trk_simTrkNChi2_isLoaded) { if (trk_simTrkNChi2_branch != 0) { trk_simTrkNChi2_branch->GetEntry(index); @@ -5502,7 +5502,7 @@ const std::vector > &trktree::trk_simTrkNChi2() { } return *trk_simTrkNChi2_; } -const std::vector &trktree::pix_zz() { +const std::vector &Trktree::pix_zz() { if (not pix_zz_isLoaded) { if (pix_zz_branch != 0) { pix_zz_branch->GetEntry(index); @@ -5514,7 +5514,7 @@ const std::vector &trktree::pix_zz() { } return *pix_zz_; } -const std::vector &trktree::simhit_particle() { +const std::vector &Trktree::simhit_particle() { if (not simhit_particle_isLoaded) { if (simhit_particle_branch != 0) { simhit_particle_branch->GetEntry(index); @@ -5526,7 +5526,7 @@ const std::vector &trktree::simhit_particle() { } return *simhit_particle_; } -const std::vector &trktree::see_dz() { +const std::vector &Trktree::see_dz() { if (not see_dz_isLoaded) { if (see_dz_branch != 0) { see_dz_branch->GetEntry(index); @@ -5538,7 +5538,7 @@ const std::vector &trktree::see_dz() { } return *see_dz_; } -const std::vector &trktree::see_stateTrajPz() { +const std::vector &Trktree::see_stateTrajPz() { if (not see_stateTrajPz_isLoaded) { if (see_stateTrajPz_branch != 0) { see_stateTrajPz_branch->GetEntry(index); @@ -5550,7 +5550,7 @@ const std::vector &trktree::see_stateTrajPz() { } return *see_stateTrajPz_; } -const std::vector &trktree::trk_bestSimTrkShareFrac() { +const std::vector &Trktree::trk_bestSimTrkShareFrac() { if (not trk_bestSimTrkShareFrac_isLoaded) { if (trk_bestSimTrkShareFrac_branch != 0) { trk_bestSimTrkShareFrac_branch->GetEntry(index); @@ -5562,7 +5562,7 @@ const std::vector &trktree::trk_bestSimTrkShareFrac() { } return *trk_bestSimTrkShareFrac_; } -const std::vector &trktree::trk_lambdaErr() { +const std::vector &Trktree::trk_lambdaErr() { if (not trk_lambdaErr_isLoaded) { if (trk_lambdaErr_branch != 0) { trk_lambdaErr_branch->GetEntry(index); @@ -5574,7 +5574,7 @@ const std::vector &trktree::trk_lambdaErr() { } return *trk_lambdaErr_; } -const std::vector > &trktree::see_simTrkShareFrac() { +const std::vector > &Trktree::see_simTrkShareFrac() { if (not see_simTrkShareFrac_isLoaded) { if (see_simTrkShareFrac_branch != 0) { see_simTrkShareFrac_branch->GetEntry(index); @@ -5586,7 +5586,7 @@ const std::vector > &trktree::see_simTrkShareFrac() { } return *see_simTrkShareFrac_; } -const std::vector > &trktree::pix_simHitIdx() { +const std::vector > &Trktree::pix_simHitIdx() { if (not pix_simHitIdx_isLoaded) { if (pix_simHitIdx_branch != 0) { pix_simHitIdx_branch->GetEntry(index); @@ -5598,7 +5598,7 @@ const std::vector > &trktree::pix_simHitIdx() { } return *pix_simHitIdx_; } -const std::vector > &trktree::vtx_trkIdx() { +const std::vector > &Trktree::vtx_trkIdx() { if (not vtx_trkIdx_isLoaded) { if (vtx_trkIdx_branch != 0) { vtx_trkIdx_branch->GetEntry(index); @@ -5610,7 +5610,7 @@ const std::vector > &trktree::vtx_trkIdx() { } return *vtx_trkIdx_; } -const std::vector &trktree::ph2_rod() { +const std::vector &Trktree::ph2_rod() { if (not ph2_rod_isLoaded) { if (ph2_rod_branch != 0) { ph2_rod_branch->GetEntry(index); @@ -5622,7 +5622,7 @@ const std::vector &trktree::ph2_rod() { } return *ph2_rod_; } -const std::vector &trktree::vtx_ndof() { +const std::vector &Trktree::vtx_ndof() { if (not vtx_ndof_isLoaded) { if (vtx_ndof_branch != 0) { vtx_ndof_branch->GetEntry(index); @@ -5634,7 +5634,7 @@ const std::vector &trktree::vtx_ndof() { } return *vtx_ndof_; } -const std::vector &trktree::see_nPixel() { +const std::vector &Trktree::see_nPixel() { if (not see_nPixel_isLoaded) { if (see_nPixel_branch != 0) { see_nPixel_branch->GetEntry(index); @@ -5646,7 +5646,7 @@ const std::vector &trktree::see_nPixel() { } return *see_nPixel_; } -const std::vector &trktree::sim_nStrip() { +const std::vector &Trktree::sim_nStrip() { if (not sim_nStrip_isLoaded) { if (sim_nStrip_branch != 0) { sim_nStrip_branch->GetEntry(index); @@ -5658,7 +5658,7 @@ const std::vector &trktree::sim_nStrip() { } return *sim_nStrip_; } -const std::vector &trktree::sim_bunchCrossing() { +const std::vector &Trktree::sim_bunchCrossing() { if (not sim_bunchCrossing_isLoaded) { if (sim_bunchCrossing_branch != 0) { sim_bunchCrossing_branch->GetEntry(index); @@ -5670,7 +5670,7 @@ const std::vector &trktree::sim_bunchCrossing() { } return *sim_bunchCrossing_; } -const std::vector &trktree::see_stateCcov45() { +const std::vector &Trktree::see_stateCcov45() { if (not see_stateCcov45_isLoaded) { if (see_stateCcov45_branch != 0) { see_stateCcov45_branch->GetEntry(index); @@ -5682,7 +5682,7 @@ const std::vector &trktree::see_stateCcov45() { } return *see_stateCcov45_; } -const std::vector &trktree::ph2_isStack() { +const std::vector &Trktree::ph2_isStack() { if (not ph2_isStack_isLoaded) { if (ph2_isStack_branch != 0) { ph2_isStack_branch->GetEntry(index); @@ -5694,7 +5694,7 @@ const std::vector &trktree::ph2_isStack() { } return *ph2_isStack_; } -const std::vector > &trktree::sim_trkShareFrac() { +const std::vector > &Trktree::sim_trkShareFrac() { if (not sim_trkShareFrac_isLoaded) { if (sim_trkShareFrac_branch != 0) { sim_trkShareFrac_branch->GetEntry(index); @@ -5706,7 +5706,7 @@ const std::vector > &trktree::sim_trkShareFrac() { } return *sim_trkShareFrac_; } -const std::vector > &trktree::trk_simTrkShareFrac() { +const std::vector > &Trktree::trk_simTrkShareFrac() { if (not trk_simTrkShareFrac_isLoaded) { if (trk_simTrkShareFrac_branch != 0) { trk_simTrkShareFrac_branch->GetEntry(index); @@ -5718,7 +5718,7 @@ const std::vector > &trktree::trk_simTrkShareFrac() { } return *trk_simTrkShareFrac_; } -const std::vector &trktree::sim_phi() { +const std::vector &Trktree::sim_phi() { if (not sim_phi_isLoaded) { if (sim_phi_branch != 0) { sim_phi_branch->GetEntry(index); @@ -5730,7 +5730,7 @@ const std::vector &trktree::sim_phi() { } return *sim_phi_; } -const std::vector &trktree::inv_side() { +const std::vector &Trktree::inv_side() { if (not inv_side_isLoaded) { if (inv_side_branch != 0) { inv_side_branch->GetEntry(index); @@ -5742,7 +5742,7 @@ const std::vector &trktree::inv_side() { } return *inv_side_; } -const std::vector &trktree::vtx_fake() { +const std::vector &Trktree::vtx_fake() { if (not vtx_fake_isLoaded) { if (vtx_fake_branch != 0) { vtx_fake_branch->GetEntry(index); @@ -5754,7 +5754,7 @@ const std::vector &trktree::vtx_fake() { } return *vtx_fake_; } -const std::vector &trktree::trk_nInactive() { +const std::vector &Trktree::trk_nInactive() { if (not trk_nInactive_isLoaded) { if (trk_nInactive_branch != 0) { trk_nInactive_branch->GetEntry(index); @@ -5766,7 +5766,7 @@ const std::vector &trktree::trk_nInactive() { } return *trk_nInactive_; } -const std::vector &trktree::trk_nPixelLay() { +const std::vector &Trktree::trk_nPixelLay() { if (not trk_nPixelLay_isLoaded) { if (trk_nPixelLay_branch != 0) { trk_nPixelLay_branch->GetEntry(index); @@ -5778,7 +5778,7 @@ const std::vector &trktree::trk_nPixelLay() { } return *trk_nPixelLay_; } -const std::vector &trktree::ph2_bbxi() { +const std::vector &Trktree::ph2_bbxi() { if (not ph2_bbxi_isLoaded) { if (ph2_bbxi_branch != 0) { ph2_bbxi_branch->GetEntry(index); @@ -5790,7 +5790,7 @@ const std::vector &trktree::ph2_bbxi() { } return *ph2_bbxi_; } -const std::vector &trktree::vtx_xErr() { +const std::vector &Trktree::vtx_xErr() { if (not vtx_xErr_isLoaded) { if (vtx_xErr_branch != 0) { vtx_xErr_branch->GetEntry(index); @@ -5802,7 +5802,7 @@ const std::vector &trktree::vtx_xErr() { } return *vtx_xErr_; } -const std::vector &trktree::see_stateCcov25() { +const std::vector &Trktree::see_stateCcov25() { if (not see_stateCcov25_isLoaded) { if (see_stateCcov25_branch != 0) { see_stateCcov25_branch->GetEntry(index); @@ -5814,7 +5814,7 @@ const std::vector &trktree::see_stateCcov25() { } return *see_stateCcov25_; } -const std::vector &trktree::sim_parentVtxIdx() { +const std::vector &Trktree::sim_parentVtxIdx() { if (not sim_parentVtxIdx_isLoaded) { if (sim_parentVtxIdx_branch != 0) { sim_parentVtxIdx_branch->GetEntry(index); @@ -5826,7 +5826,7 @@ const std::vector &trktree::sim_parentVtxIdx() { } return *sim_parentVtxIdx_; } -const std::vector &trktree::see_stateCcov23() { +const std::vector &Trktree::see_stateCcov23() { if (not see_stateCcov23_isLoaded) { if (see_stateCcov23_branch != 0) { see_stateCcov23_branch->GetEntry(index); @@ -5838,7 +5838,7 @@ const std::vector &trktree::see_stateCcov23() { } return *see_stateCcov23_; } -const std::vector &trktree::trk_algoMask() { +const std::vector &Trktree::trk_algoMask() { if (not trk_algoMask_isLoaded) { if (trk_algoMask_branch != 0) { trk_algoMask_branch->GetEntry(index); @@ -5850,7 +5850,7 @@ const std::vector &trktree::trk_algoMask() { } return *trk_algoMask_; } -const std::vector > &trktree::trk_simTrkIdx() { +const std::vector > &Trktree::trk_simTrkIdx() { if (not trk_simTrkIdx_isLoaded) { if (trk_simTrkIdx_branch != 0) { trk_simTrkIdx_branch->GetEntry(index); @@ -5862,7 +5862,7 @@ const std::vector > &trktree::trk_simTrkIdx() { } return *trk_simTrkIdx_; } -const std::vector &trktree::see_phiErr() { +const std::vector &Trktree::see_phiErr() { if (not see_phiErr_isLoaded) { if (see_phiErr_branch != 0) { see_phiErr_branch->GetEntry(index); @@ -5874,7 +5874,7 @@ const std::vector &trktree::see_phiErr() { } return *see_phiErr_; } -const std::vector &trktree::trk_cotTheta() { +const std::vector &Trktree::trk_cotTheta() { if (not trk_cotTheta_isLoaded) { if (trk_cotTheta_branch != 0) { trk_cotTheta_branch->GetEntry(index); @@ -5886,7 +5886,7 @@ const std::vector &trktree::trk_cotTheta() { } return *trk_cotTheta_; } -const std::vector &trktree::see_algo() { +const std::vector &Trktree::see_algo() { if (not see_algo_isLoaded) { if (see_algo_branch != 0) { see_algo_branch->GetEntry(index); @@ -5898,7 +5898,7 @@ const std::vector &trktree::see_algo() { } return *see_algo_; } -const std::vector &trktree::simhit_module() { +const std::vector &Trktree::simhit_module() { if (not simhit_module_isLoaded) { if (simhit_module_branch != 0) { simhit_module_branch->GetEntry(index); @@ -5910,7 +5910,7 @@ const std::vector &trktree::simhit_module() { } return *simhit_module_; } -const std::vector > &trktree::simvtx_daughterSimIdx() { +const std::vector > &Trktree::simvtx_daughterSimIdx() { if (not simvtx_daughterSimIdx_isLoaded) { if (simvtx_daughterSimIdx_branch != 0) { simvtx_daughterSimIdx_branch->GetEntry(index); @@ -5922,7 +5922,7 @@ const std::vector > &trktree::simvtx_daughterSimIdx() { } return *simvtx_daughterSimIdx_; } -const std::vector &trktree::vtx_x() { +const std::vector &Trktree::vtx_x() { if (not vtx_x_isLoaded) { if (vtx_x_branch != 0) { vtx_x_branch->GetEntry(index); @@ -5934,7 +5934,7 @@ const std::vector &trktree::vtx_x() { } return *vtx_x_; } -const std::vector &trktree::trk_seedIdx() { +const std::vector &Trktree::trk_seedIdx() { if (not trk_seedIdx_isLoaded) { if (trk_seedIdx_branch != 0) { trk_seedIdx_branch->GetEntry(index); @@ -5946,7 +5946,7 @@ const std::vector &trktree::trk_seedIdx() { } return *trk_seedIdx_; } -const std::vector &trktree::simhit_y() { +const std::vector &Trktree::simhit_y() { if (not simhit_y_isLoaded) { if (simhit_y_branch != 0) { simhit_y_branch->GetEntry(index); @@ -5958,7 +5958,7 @@ const std::vector &trktree::simhit_y() { } return *simhit_y_; } -const std::vector &trktree::inv_layer() { +const std::vector &Trktree::inv_layer() { if (not inv_layer_isLoaded) { if (inv_layer_branch != 0) { inv_layer_branch->GetEntry(index); @@ -5970,7 +5970,7 @@ const std::vector &trktree::inv_layer() { } return *inv_layer_; } -const std::vector &trktree::trk_nLostLay() { +const std::vector &Trktree::trk_nLostLay() { if (not trk_nLostLay_isLoaded) { if (trk_nLostLay_branch != 0) { trk_nLostLay_branch->GetEntry(index); @@ -5982,7 +5982,7 @@ const std::vector &trktree::trk_nLostLay() { } return *trk_nLostLay_; } -const std::vector &trktree::ph2_isLower() { +const std::vector &Trktree::ph2_isLower() { if (not ph2_isLower_isLoaded) { if (ph2_isLower_branch != 0) { ph2_isLower_branch->GetEntry(index); @@ -5994,7 +5994,7 @@ const std::vector &trktree::ph2_isLower() { } return *ph2_isLower_; } -const std::vector &trktree::pix_side() { +const std::vector &Trktree::pix_side() { if (not pix_side_isLoaded) { if (pix_side_branch != 0) { pix_side_branch->GetEntry(index); @@ -6006,7 +6006,7 @@ const std::vector &trktree::pix_side() { } return *pix_side_; } -const std::vector &trktree::inv_isLower() { +const std::vector &Trktree::inv_isLower() { if (not inv_isLower_isLoaded) { if (inv_isLower_branch != 0) { inv_isLower_branch->GetEntry(index); @@ -6018,7 +6018,7 @@ const std::vector &trktree::inv_isLower() { } return *inv_isLower_; } -const std::vector > &trktree::ph2_trkIdx() { +const std::vector > &Trktree::ph2_trkIdx() { if (not ph2_trkIdx_isLoaded) { if (ph2_trkIdx_branch != 0) { ph2_trkIdx_branch->GetEntry(index); @@ -6030,7 +6030,7 @@ const std::vector > &trktree::ph2_trkIdx() { } return *ph2_trkIdx_; } -const std::vector &trktree::sim_nValid() { +const std::vector &Trktree::sim_nValid() { if (not sim_nValid_isLoaded) { if (sim_nValid_branch != 0) { sim_nValid_branch->GetEntry(index); @@ -6042,7 +6042,7 @@ const std::vector &trktree::sim_nValid() { } return *sim_nValid_; } -const std::vector &trktree::simhit_simTrkIdx() { +const std::vector &Trktree::simhit_simTrkIdx() { if (not simhit_simTrkIdx_isLoaded) { if (simhit_simTrkIdx_branch != 0) { simhit_simTrkIdx_branch->GetEntry(index); @@ -6054,7 +6054,7 @@ const std::vector &trktree::simhit_simTrkIdx() { } return *simhit_simTrkIdx_; } -const std::vector &trktree::see_nCands() { +const std::vector &Trktree::see_nCands() { if (not see_nCands_isLoaded) { if (see_nCands_branch != 0) { see_nCands_branch->GetEntry(index); @@ -6066,7 +6066,7 @@ const std::vector &trktree::see_nCands() { } return *see_nCands_; } -const std::vector &trktree::see_bestSimTrkIdx() { +const std::vector &Trktree::see_bestSimTrkIdx() { if (not see_bestSimTrkIdx_isLoaded) { if (see_bestSimTrkIdx_branch != 0) { see_bestSimTrkIdx_branch->GetEntry(index); @@ -6078,7 +6078,7 @@ const std::vector &trktree::see_bestSimTrkIdx() { } return *see_bestSimTrkIdx_; } -const std::vector &trktree::vtx_yErr() { +const std::vector &Trktree::vtx_yErr() { if (not vtx_yErr_isLoaded) { if (vtx_yErr_branch != 0) { vtx_yErr_branch->GetEntry(index); @@ -6090,7 +6090,7 @@ const std::vector &trktree::vtx_yErr() { } return *vtx_yErr_; } -const std::vector &trktree::trk_dzPV() { +const std::vector &Trktree::trk_dzPV() { if (not trk_dzPV_isLoaded) { if (trk_dzPV_branch != 0) { trk_dzPV_branch->GetEntry(index); @@ -6102,7 +6102,7 @@ const std::vector &trktree::trk_dzPV() { } return *trk_dzPV_; } -const std::vector &trktree::ph2_xy() { +const std::vector &Trktree::ph2_xy() { if (not ph2_xy_isLoaded) { if (ph2_xy_branch != 0) { ph2_xy_branch->GetEntry(index); @@ -6114,7 +6114,7 @@ const std::vector &trktree::ph2_xy() { } return *ph2_xy_; } -const std::vector &trktree::inv_module() { +const std::vector &Trktree::inv_module() { if (not inv_module_isLoaded) { if (inv_module_branch != 0) { inv_module_branch->GetEntry(index); @@ -6126,7 +6126,7 @@ const std::vector &trktree::inv_module() { } return *inv_module_; } -const std::vector &trktree::see_stateCcov55() { +const std::vector &Trktree::see_stateCcov55() { if (not see_stateCcov55_isLoaded) { if (see_stateCcov55_branch != 0) { see_stateCcov55_branch->GetEntry(index); @@ -6138,7 +6138,7 @@ const std::vector &trktree::see_stateCcov55() { } return *see_stateCcov55_; } -const std::vector &trktree::pix_panel() { +const std::vector &Trktree::pix_panel() { if (not pix_panel_isLoaded) { if (pix_panel_branch != 0) { pix_panel_branch->GetEntry(index); @@ -6150,7 +6150,7 @@ const std::vector &trktree::pix_panel() { } return *pix_panel_; } -const std::vector &trktree::inv_ladder() { +const std::vector &Trktree::inv_ladder() { if (not inv_ladder_isLoaded) { if (inv_ladder_branch != 0) { inv_ladder_branch->GetEntry(index); @@ -6162,7 +6162,7 @@ const std::vector &trktree::inv_ladder() { } return *inv_ladder_; } -const std::vector &trktree::ph2_xx() { +const std::vector &Trktree::ph2_xx() { if (not ph2_xx_isLoaded) { if (ph2_xx_branch != 0) { ph2_xx_branch->GetEntry(index); @@ -6174,7 +6174,7 @@ const std::vector &trktree::ph2_xx() { } return *ph2_xx_; } -const std::vector &trktree::sim_pca_cotTheta() { +const std::vector &Trktree::sim_pca_cotTheta() { if (not sim_pca_cotTheta_isLoaded) { if (sim_pca_cotTheta_branch != 0) { sim_pca_cotTheta_branch->GetEntry(index); @@ -6186,7 +6186,7 @@ const std::vector &trktree::sim_pca_cotTheta() { } return *sim_pca_cotTheta_; } -const std::vector &trktree::simpv_idx() { +const std::vector &Trktree::simpv_idx() { if (not simpv_idx_isLoaded) { if (simpv_idx_branch != 0) { simpv_idx_branch->GetEntry(index); @@ -6198,7 +6198,7 @@ const std::vector &trktree::simpv_idx() { } return *simpv_idx_; } -const std::vector &trktree::trk_inner_pz() { +const std::vector &Trktree::trk_inner_pz() { if (not trk_inner_pz_isLoaded) { if (trk_inner_pz_branch != 0) { trk_inner_pz_branch->GetEntry(index); @@ -6210,7 +6210,7 @@ const std::vector &trktree::trk_inner_pz() { } return *trk_inner_pz_; } -const std::vector &trktree::see_chi2() { +const std::vector &Trktree::see_chi2() { if (not see_chi2_isLoaded) { if (see_chi2_branch != 0) { see_chi2_branch->GetEntry(index); @@ -6222,7 +6222,7 @@ const std::vector &trktree::see_chi2() { } return *see_chi2_; } -const std::vector &trktree::see_stateCcov35() { +const std::vector &Trktree::see_stateCcov35() { if (not see_stateCcov35_isLoaded) { if (see_stateCcov35_branch != 0) { see_stateCcov35_branch->GetEntry(index); @@ -6234,7 +6234,7 @@ const std::vector &trktree::see_stateCcov35() { } return *see_stateCcov35_; } -const std::vector &trktree::see_stateCcov33() { +const std::vector &Trktree::see_stateCcov33() { if (not see_stateCcov33_isLoaded) { if (see_stateCcov33_branch != 0) { see_stateCcov33_branch->GetEntry(index); @@ -6246,7 +6246,7 @@ const std::vector &trktree::see_stateCcov33() { } return *see_stateCcov33_; } -const std::vector &trktree::inv_detId() { +const std::vector &Trktree::inv_detId() { if (not inv_detId_isLoaded) { if (inv_detId_branch != 0) { inv_detId_branch->GetEntry(index); @@ -6258,7 +6258,7 @@ const std::vector &trktree::inv_detId() { } return *inv_detId_; } -const std::vector &trktree::see_offset() { +const std::vector &Trktree::see_offset() { if (not see_offset_isLoaded) { if (see_offset_branch != 0) { see_offset_branch->GetEntry(index); @@ -6270,7 +6270,7 @@ const std::vector &trktree::see_offset() { } return *see_offset_; } -const std::vector &trktree::sim_nLay() { +const std::vector &Trktree::sim_nLay() { if (not sim_nLay_isLoaded) { if (sim_nLay_branch != 0) { sim_nLay_branch->GetEntry(index); @@ -6282,7 +6282,7 @@ const std::vector &trktree::sim_nLay() { } return *sim_nLay_; } -const std::vector > &trktree::sim_simHitIdx() { +const std::vector > &Trktree::sim_simHitIdx() { if (not sim_simHitIdx_isLoaded) { if (sim_simHitIdx_branch != 0) { sim_simHitIdx_branch->GetEntry(index); @@ -6294,7 +6294,7 @@ const std::vector > &trktree::sim_simHitIdx() { } return *sim_simHitIdx_; } -const std::vector &trktree::simhit_isUpper() { +const std::vector &Trktree::simhit_isUpper() { if (not simhit_isUpper_isLoaded) { if (simhit_isUpper_branch != 0) { simhit_isUpper_branch->GetEntry(index); @@ -6306,7 +6306,7 @@ const std::vector &trktree::simhit_isUpper() { } return *simhit_isUpper_; } -const std::vector &trktree::see_stateCcov00() { +const std::vector &Trktree::see_stateCcov00() { if (not see_stateCcov00_isLoaded) { if (see_stateCcov00_branch != 0) { see_stateCcov00_branch->GetEntry(index); @@ -6318,7 +6318,7 @@ const std::vector &trktree::see_stateCcov00() { } return *see_stateCcov00_; } -const std::vector &trktree::see_stopReason() { +const std::vector &Trktree::see_stopReason() { if (not see_stopReason_isLoaded) { if (see_stopReason_branch != 0) { see_stopReason_branch->GetEntry(index); @@ -6330,7 +6330,7 @@ const std::vector &trktree::see_stopReason() { } return *see_stopReason_; } -const std::vector &trktree::vtx_valid() { +const std::vector &Trktree::vtx_valid() { if (not vtx_valid_isLoaded) { if (vtx_valid_branch != 0) { vtx_valid_branch->GetEntry(index); @@ -6342,7 +6342,7 @@ const std::vector &trktree::vtx_valid() { } return *vtx_valid_; } -const unsigned int &trktree::lumi() { +const unsigned int &Trktree::lumi() { if (not lumi_isLoaded) { if (lumi_branch != 0) { lumi_branch->GetEntry(index); @@ -6354,7 +6354,7 @@ const unsigned int &trktree::lumi() { } return lumi_; } -const std::vector &trktree::trk_refpoint_x() { +const std::vector &Trktree::trk_refpoint_x() { if (not trk_refpoint_x_isLoaded) { if (trk_refpoint_x_branch != 0) { trk_refpoint_x_branch->GetEntry(index); @@ -6366,7 +6366,7 @@ const std::vector &trktree::trk_refpoint_x() { } return *trk_refpoint_x_; } -const std::vector &trktree::trk_refpoint_y() { +const std::vector &Trktree::trk_refpoint_y() { if (not trk_refpoint_y_isLoaded) { if (trk_refpoint_y_branch != 0) { trk_refpoint_y_branch->GetEntry(index); @@ -6378,7 +6378,7 @@ const std::vector &trktree::trk_refpoint_y() { } return *trk_refpoint_y_; } -const std::vector &trktree::trk_refpoint_z() { +const std::vector &Trktree::trk_refpoint_z() { if (not trk_refpoint_z_isLoaded) { if (trk_refpoint_z_branch != 0) { trk_refpoint_z_branch->GetEntry(index); @@ -6390,7 +6390,7 @@ const std::vector &trktree::trk_refpoint_z() { } return *trk_refpoint_z_; } -const std::vector &trktree::sim_n3DLay() { +const std::vector &Trktree::sim_n3DLay() { if (not sim_n3DLay_isLoaded) { if (sim_n3DLay_branch != 0) { sim_n3DLay_branch->GetEntry(index); @@ -6402,7 +6402,7 @@ const std::vector &trktree::sim_n3DLay() { } return *sim_n3DLay_; } -const std::vector &trktree::see_nPhase2OT() { +const std::vector &Trktree::see_nPhase2OT() { if (not see_nPhase2OT_isLoaded) { if (see_nPhase2OT_branch != 0) { see_nPhase2OT_branch->GetEntry(index); @@ -6414,7 +6414,7 @@ const std::vector &trktree::see_nPhase2OT() { } return *see_nPhase2OT_; } -const std::vector &trktree::trk_bestFromFirstHitSimTrkShareFracSimDenom() { +const std::vector &Trktree::trk_bestFromFirstHitSimTrkShareFracSimDenom() { if (not trk_bestFromFirstHitSimTrkShareFracSimDenom_isLoaded) { if (trk_bestFromFirstHitSimTrkShareFracSimDenom_branch != 0) { trk_bestFromFirstHitSimTrkShareFracSimDenom_branch->GetEntry(index); @@ -6426,7 +6426,7 @@ const std::vector &trktree::trk_bestFromFirstHitSimTrkShareFracSimDenom() } return *trk_bestFromFirstHitSimTrkShareFracSimDenom_; } -const std::vector &trktree::ph2_yy() { +const std::vector &Trktree::ph2_yy() { if (not ph2_yy_isLoaded) { if (ph2_yy_branch != 0) { ph2_yy_branch->GetEntry(index); @@ -6438,7 +6438,7 @@ const std::vector &trktree::ph2_yy() { } return *ph2_yy_; } -const std::vector &trktree::ph2_yz() { +const std::vector &Trktree::ph2_yz() { if (not ph2_yz_isLoaded) { if (ph2_yz_branch != 0) { ph2_yz_branch->GetEntry(index); @@ -6450,7 +6450,7 @@ const std::vector &trktree::ph2_yz() { } return *ph2_yz_; } -const std::vector &trktree::inv_blade() { +const std::vector &Trktree::inv_blade() { if (not inv_blade_isLoaded) { if (inv_blade_branch != 0) { inv_blade_branch->GetEntry(index); @@ -6462,7 +6462,7 @@ const std::vector &trktree::inv_blade() { } return *inv_blade_; } -const std::vector &trktree::trk_ptErr() { +const std::vector &Trktree::trk_ptErr() { if (not trk_ptErr_isLoaded) { if (trk_ptErr_branch != 0) { trk_ptErr_branch->GetEntry(index); @@ -6474,7 +6474,7 @@ const std::vector &trktree::trk_ptErr() { } return *trk_ptErr_; } -const std::vector &trktree::pix_zx() { +const std::vector &Trktree::pix_zx() { if (not pix_zx_isLoaded) { if (pix_zx_branch != 0) { pix_zx_branch->GetEntry(index); @@ -6486,7 +6486,7 @@ const std::vector &trktree::pix_zx() { } return *pix_zx_; } -const std::vector &trktree::simvtx_z() { +const std::vector &Trktree::simvtx_z() { if (not simvtx_z_isLoaded) { if (simvtx_z_branch != 0) { simvtx_z_branch->GetEntry(index); @@ -6498,7 +6498,7 @@ const std::vector &trktree::simvtx_z() { } return *simvtx_z_; } -const std::vector &trktree::sim_nTrackerHits() { +const std::vector &Trktree::sim_nTrackerHits() { if (not sim_nTrackerHits_isLoaded) { if (sim_nTrackerHits_branch != 0) { sim_nTrackerHits_branch->GetEntry(index); @@ -6510,7 +6510,7 @@ const std::vector &trktree::sim_nTrackerHits() { } return *sim_nTrackerHits_; } -const std::vector &trktree::ph2_subdet() { +const std::vector &Trktree::ph2_subdet() { if (not ph2_subdet_isLoaded) { if (ph2_subdet_branch != 0) { ph2_subdet_branch->GetEntry(index); @@ -6522,7 +6522,7 @@ const std::vector &trktree::ph2_subdet() { } return *ph2_subdet_; } -const std::vector &trktree::see_stateTrajPx() { +const std::vector &Trktree::see_stateTrajPx() { if (not see_stateTrajPx_isLoaded) { if (see_stateTrajPx_branch != 0) { see_stateTrajPx_branch->GetEntry(index); @@ -6534,7 +6534,7 @@ const std::vector &trktree::see_stateTrajPx() { } return *see_stateTrajPx_; } -const std::vector > &trktree::simhit_hitIdx() { +const std::vector > &Trktree::simhit_hitIdx() { if (not simhit_hitIdx_isLoaded) { if (simhit_hitIdx_branch != 0) { simhit_hitIdx_branch->GetEntry(index); @@ -6546,7 +6546,7 @@ const std::vector > &trktree::simhit_hitIdx() { } return *simhit_hitIdx_; } -const std::vector &trktree::simhit_ladder() { +const std::vector &Trktree::simhit_ladder() { if (not simhit_ladder_isLoaded) { if (simhit_ladder_branch != 0) { simhit_ladder_branch->GetEntry(index); @@ -6558,7 +6558,7 @@ const std::vector &trktree::simhit_ladder() { } return *simhit_ladder_; } -const std::vector &trktree::ph2_layer() { +const std::vector &Trktree::ph2_layer() { if (not ph2_layer_isLoaded) { if (ph2_layer_branch != 0) { ph2_layer_branch->GetEntry(index); @@ -6570,7 +6570,7 @@ const std::vector &trktree::ph2_layer() { } return *ph2_layer_; } -const std::vector &trktree::see_phi() { +const std::vector &Trktree::see_phi() { if (not see_phi_isLoaded) { if (see_phi_branch != 0) { see_phi_branch->GetEntry(index); @@ -6582,7 +6582,7 @@ const std::vector &trktree::see_phi() { } return *see_phi_; } -const std::vector &trktree::trk_nChi2_1Dmod() { +const std::vector &Trktree::trk_nChi2_1Dmod() { if (not trk_nChi2_1Dmod_isLoaded) { if (trk_nChi2_1Dmod_branch != 0) { trk_nChi2_1Dmod_branch->GetEntry(index); @@ -6594,7 +6594,7 @@ const std::vector &trktree::trk_nChi2_1Dmod() { } return *trk_nChi2_1Dmod_; } -const std::vector &trktree::trk_inner_py() { +const std::vector &Trktree::trk_inner_py() { if (not trk_inner_py_isLoaded) { if (trk_inner_py_branch != 0) { trk_inner_py_branch->GetEntry(index); @@ -6606,7 +6606,7 @@ const std::vector &trktree::trk_inner_py() { } return *trk_inner_py_; } -const std::vector &trktree::trk_inner_px() { +const std::vector &Trktree::trk_inner_px() { if (not trk_inner_px_isLoaded) { if (trk_inner_px_branch != 0) { trk_inner_px_branch->GetEntry(index); @@ -6618,7 +6618,7 @@ const std::vector &trktree::trk_inner_px() { } return *trk_inner_px_; } -const std::vector &trktree::trk_dxyErr() { +const std::vector &Trktree::trk_dxyErr() { if (not trk_dxyErr_isLoaded) { if (trk_dxyErr_branch != 0) { trk_dxyErr_branch->GetEntry(index); @@ -6630,7 +6630,7 @@ const std::vector &trktree::trk_dxyErr() { } return *trk_dxyErr_; } -const std::vector &trktree::sim_nPixelLay() { +const std::vector &Trktree::sim_nPixelLay() { if (not sim_nPixelLay_isLoaded) { if (sim_nPixelLay_branch != 0) { sim_nPixelLay_branch->GetEntry(index); @@ -6642,7 +6642,7 @@ const std::vector &trktree::sim_nPixelLay() { } return *sim_nPixelLay_; } -const std::vector &trktree::see_nValid() { +const std::vector &Trktree::see_nValid() { if (not see_nValid_isLoaded) { if (see_nValid_branch != 0) { see_nValid_branch->GetEntry(index); @@ -6654,7 +6654,7 @@ const std::vector &trktree::see_nValid() { } return *see_nValid_; } -const std::vector &trktree::trk_inner_pt() { +const std::vector &Trktree::trk_inner_pt() { if (not trk_inner_pt_isLoaded) { if (trk_inner_pt_branch != 0) { trk_inner_pt_branch->GetEntry(index); @@ -6666,7 +6666,7 @@ const std::vector &trktree::trk_inner_pt() { } return *trk_inner_pt_; } -const std::vector &trktree::see_stateTrajGlbPy() { +const std::vector &Trktree::see_stateTrajGlbPy() { if (not see_stateTrajGlbPy_isLoaded) { if (see_stateTrajGlbPy_branch != 0) { see_stateTrajGlbPy_branch->GetEntry(index); @@ -6678,7 +6678,7 @@ const std::vector &trktree::see_stateTrajGlbPy() { } return *see_stateTrajGlbPy_; } -void trktree::progress(int nEventsTotal, int nEventsChain) { +void Trktree::progress(int nEventsTotal, int nEventsChain) { int period = 1000; if (nEventsTotal % 1000 == 0) { if (isatty(1)) { diff --git a/RecoTracker/LSTCore/standalone/code/core/trktree.h b/RecoTracker/LSTCore/standalone/code/core/Trktree.h similarity index 99% rename from RecoTracker/LSTCore/standalone/code/core/trktree.h rename to RecoTracker/LSTCore/standalone/code/core/Trktree.h index 0ede2ddd105d4..fcb61aababb9f 100644 --- a/RecoTracker/LSTCore/standalone/code/core/trktree.h +++ b/RecoTracker/LSTCore/standalone/code/core/Trktree.h @@ -1,6 +1,6 @@ // -*- C++ -*- -#ifndef trktree_H -#define trktree_H +#ifndef Trktree_H +#define Trktree_H #include "Math/LorentzVector.h" #include "Math/Point3D.h" #include "TMath.h" @@ -13,7 +13,7 @@ #include typedef ROOT::Math::LorentzVector > LorentzVector; -class trktree { +class Trktree { private: protected: unsigned int index; @@ -1238,7 +1238,7 @@ class trktree { }; #ifndef __CINT__ -extern trktree trk; +extern Trktree trk; #endif namespace tas { diff --git a/RecoTracker/LSTCore/standalone/code/core/trkCore.h b/RecoTracker/LSTCore/standalone/code/core/trkCore.h index 57c8e31886585..0a2fddaba9d5c 100644 --- a/RecoTracker/LSTCore/standalone/code/core/trkCore.h +++ b/RecoTracker/LSTCore/standalone/code/core/trkCore.h @@ -1,7 +1,7 @@ #ifndef trkCore_h #define trkCore_h -#include "trktree.h" +#include "Trktree.h" #include "TCanvas.h" #include "TSystem.h" #include "AnalysisConfig.h" diff --git a/RecoTracker/LSTCore/standalone/code/rooutil/cxxopts.h b/RecoTracker/LSTCore/standalone/code/rooutil/cxxopts.h index f723f6bdcba7f..b799708f0f39f 100644 --- a/RecoTracker/LSTCore/standalone/code/rooutil/cxxopts.h +++ b/RecoTracker/LSTCore/standalone/code/rooutil/cxxopts.h @@ -223,65 +223,65 @@ namespace cxxopts { OptionParseException(const std::string& message) : OptionException(message) {} }; - class option_exists_error : public OptionSpecException { + class Option_exists_error : public OptionSpecException { public: - option_exists_error(const std::string& option) + Option_exists_error(const std::string& option) : OptionSpecException(u8"Option " + LQUOTE + option + RQUOTE + u8" already exists") {} }; - class invalid_option_format_error : public OptionSpecException { + class Invalid_option_format_error : public OptionSpecException { public: - invalid_option_format_error(const std::string& format) + Invalid_option_format_error(const std::string& format) : OptionSpecException(u8"Invalid option format " + LQUOTE + format + RQUOTE) {} }; - class option_syntax_exception : public OptionParseException { + class Option_syntax_exception : public OptionParseException { public: - option_syntax_exception(const std::string& text) + Option_syntax_exception(const std::string& text) : OptionParseException(u8"Argument " + LQUOTE + text + RQUOTE + u8" starts with a - but has incorrect syntax") { } }; - class option_not_exists_exception : public OptionParseException { + class Option_not_exists_exception : public OptionParseException { public: - option_not_exists_exception(const std::string& option) + Option_not_exists_exception(const std::string& option) : OptionParseException(u8"Option " + LQUOTE + option + RQUOTE + u8" does not exist") {} }; - class missing_argument_exception : public OptionParseException { + class Missing_argument_exception : public OptionParseException { public: - missing_argument_exception(const std::string& option) + Missing_argument_exception(const std::string& option) : OptionParseException(u8"Option " + LQUOTE + option + RQUOTE + u8" is missing an argument") {} }; - class option_requires_argument_exception : public OptionParseException { + class Option_requires_argument_exception : public OptionParseException { public: - option_requires_argument_exception(const std::string& option) + Option_requires_argument_exception(const std::string& option) : OptionParseException(u8"Option " + LQUOTE + option + RQUOTE + u8" requires an argument") {} }; - class option_not_has_argument_exception : public OptionParseException { + class Option_not_has_argument_exception : public OptionParseException { public: - option_not_has_argument_exception(const std::string& option, const std::string& arg) + Option_not_has_argument_exception(const std::string& option, const std::string& arg) : OptionParseException(u8"Option " + LQUOTE + option + RQUOTE + u8" does not take an argument, but argument " + LQUOTE + arg + RQUOTE + " given") {} }; - class option_not_present_exception : public OptionParseException { + class Option_not_present_exception : public OptionParseException { public: - option_not_present_exception(const std::string& option) + Option_not_present_exception(const std::string& option) : OptionParseException(u8"Option " + LQUOTE + option + RQUOTE + u8" not present") {} }; - class argument_incorrect_type : public OptionParseException { + class Argument_incorrect_type : public OptionParseException { public: - argument_incorrect_type(const std::string& arg) + Argument_incorrect_type(const std::string& arg) : OptionParseException(u8"Argument " + LQUOTE + arg + RQUOTE + u8" failed to parse") {} }; - class option_required_exception : public OptionParseException { + class Option_required_exception : public OptionParseException { public: - option_required_exception(const std::string& option) + Option_required_exception(const std::string& option) : OptionParseException(u8"Option " + LQUOTE + option + RQUOTE + u8" is required but not present") {} }; @@ -302,11 +302,11 @@ namespace cxxopts { void operator()(bool negative, U u, const std::string& text) { if (negative) { if (u > static_cast(-(std::numeric_limits::min)())) { - throw argument_incorrect_type(text); + throw Argument_incorrect_type(text); } } else { if (u > static_cast((std::numeric_limits::max)())) { - throw argument_incorrect_type(text); + throw Argument_incorrect_type(text); } } } @@ -334,7 +334,7 @@ namespace cxxopts { template T checked_negate(T&&, const std::string& text, std::false_type) { - throw argument_incorrect_type(text); + throw Argument_incorrect_type(text); } template @@ -343,7 +343,7 @@ namespace cxxopts { std::regex_match(text, match, integer_pattern); if (match.length() == 0) { - throw argument_incorrect_type(text); + throw Argument_incorrect_type(text); } if (match.length(4) > 0) { @@ -372,11 +372,11 @@ namespace cxxopts { } else if (base == 16 && *iter >= 'A' && *iter <= 'F') { digit = *iter - 'A' + 10; } else { - throw argument_incorrect_type(text); + throw Argument_incorrect_type(text); } if (umax - digit < result * base) { - throw argument_incorrect_type(text); + throw Argument_incorrect_type(text); } result = result * base + digit; @@ -396,7 +396,7 @@ namespace cxxopts { std::stringstream in(text); in >> value; if (!in) { - throw argument_incorrect_type(text); + throw Argument_incorrect_type(text); } } @@ -431,7 +431,7 @@ namespace cxxopts { return; } - throw argument_incorrect_type(text); + throw Argument_incorrect_type(text); } inline void parse_value(const std::string& text, std::string& value) { value = text; } @@ -461,27 +461,27 @@ namespace cxxopts { #endif template - struct type_is_container { + struct Type_is_container { static constexpr bool value = false; }; template - struct type_is_container> { + struct Type_is_container> { static constexpr bool value = true; }; template - class abstract_value : public Value { - using Self = abstract_value; + class Abstract_value : public Value { + using Self = Abstract_value; public: - abstract_value() : m_result(std::make_shared()), m_store(m_result.get()) {} + Abstract_value() : m_result(std::make_shared()), m_store(m_result.get()) {} - abstract_value(T* t) : m_store(t) {} + Abstract_value(T* t) : m_store(t) {} - virtual ~abstract_value() = default; + virtual ~Abstract_value() = default; - abstract_value(const abstract_value& rhs) { + Abstract_value(const Abstract_value& rhs) { if (rhs.m_result) { m_result = std::make_shared(); m_store = m_result.get(); @@ -497,7 +497,7 @@ namespace cxxopts { void parse(const std::string& text) const { parse_value(text, *m_store); } - bool is_container() const { return type_is_container::value; } + bool is_container() const { return Type_is_container::value; } void parse() const { parse_value(m_default_value, *m_store); } @@ -543,23 +543,23 @@ namespace cxxopts { }; template - class standard_value : public abstract_value { + class Standard_value : public Abstract_value { public: - using abstract_value::abstract_value; + using Abstract_value::Abstract_value; - std::shared_ptr clone() const { return std::make_shared>(*this); } + std::shared_ptr clone() const { return std::make_shared>(*this); } }; template <> - class standard_value : public abstract_value { + class Standard_value : public Abstract_value { public: - ~standard_value() = default; + ~Standard_value() = default; - standard_value() { set_default_and_implicit(); } + Standard_value() { set_default_and_implicit(); } - standard_value(bool* b) : abstract_value(b) { set_default_and_implicit(); } + Standard_value(bool* b) : Abstract_value(b) { set_default_and_implicit(); } - std::shared_ptr clone() const { return std::make_shared>(*this); } + std::shared_ptr clone() const { return std::make_shared>(*this); } private: void set_default_and_implicit() { @@ -573,12 +573,12 @@ namespace cxxopts { template std::shared_ptr value() { - return std::make_shared>(); + return std::make_shared>(); } template std::shared_ptr value(T& t) { - return std::make_shared>(&t); + return std::make_shared>(&t); } class OptionAdder; @@ -656,9 +656,9 @@ namespace cxxopts { } #ifdef CXXOPTS_NO_RTTI - return static_cast&>(*m_value).get(); + return static_cast&>(*m_value).get(); #else - return dynamic_cast&>(*m_value).get(); + return dynamic_cast&>(*m_value).get(); #endif } @@ -716,7 +716,7 @@ namespace cxxopts { auto iter = m_options->find(option); if (iter == m_options->end()) { - throw option_not_present_exception(option); + throw Option_not_present_exception(option); } auto riter = m_results.find(iter->second); @@ -964,16 +964,16 @@ namespace cxxopts { std::regex_match(opts.c_str(), result, option_specifier); if (result.empty()) { - throw invalid_option_format_error(opts); + throw Invalid_option_format_error(opts); } const auto& short_match = result[2]; const auto& long_match = result[3]; if (!short_match.length() && !long_match.length()) { - throw invalid_option_format_error(opts); + throw Invalid_option_format_error(opts); } else if (long_match.length() == 1 && short_match.length()) { - throw invalid_option_format_error(opts); + throw Invalid_option_format_error(opts); } auto option_names = [](const std::sub_match& short_, const std::sub_match& long_) { @@ -1009,7 +1009,7 @@ namespace cxxopts { if (value->value().has_implicit()) { parse_option(value, name, value->value().get_implicit_value()); } else { - throw missing_argument_exception(name); + throw Missing_argument_exception(name); } } else { if (value->value().has_implicit()) { @@ -1025,7 +1025,7 @@ namespace cxxopts { auto iter = m_options->find(option); if (iter == m_options->end()) { - throw option_not_exists_exception(option); + throw Option_not_exists_exception(option); } parse_option(iter->second, option, arg); @@ -1098,7 +1098,7 @@ namespace cxxopts { // but if it starts with a `-`, then it's an error if (argv[current][0] == '-' && argv[current][1] != '\0') { - throw option_syntax_exception(argv[current]); + throw Option_syntax_exception(argv[current]); } //if true is returned here then it was consumed, otherwise it is @@ -1123,7 +1123,7 @@ namespace cxxopts { continue; } else { //error - throw option_not_exists_exception(name); + throw Option_not_exists_exception(name); } } @@ -1136,7 +1136,7 @@ namespace cxxopts { parse_option(value, name, value->value().get_implicit_value()); } else { //error - throw option_requires_argument_exception(name); + throw Option_requires_argument_exception(name); } } } else if (result[1].length() != 0) { @@ -1153,7 +1153,7 @@ namespace cxxopts { continue; } else { //error - throw option_not_exists_exception(name); + throw Option_not_exists_exception(name); } } @@ -1240,7 +1240,7 @@ namespace cxxopts { auto in = m_options->emplace(option, details); if (!in.second) { - throw option_exists_error(option); + throw Option_exists_error(option); } } From 69debc2bac724a1baf6a9aadfd60e396c862c975 Mon Sep 17 00:00:00 2001 From: Slava Krutelyov Date: Tue, 23 Jul 2024 15:58:55 -0700 Subject: [PATCH 16/35] use cms::alpakatools::once_per_block --- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 8 ++++++-- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 8 ++++++-- RecoTracker/LSTCore/src/alpaka/Segment.h | 6 +++++- RecoTracker/LSTCore/src/alpaka/Triplet.h | 6 +++++- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index b189fde578d5b..28c525a68a218 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -1,6 +1,8 @@ #ifndef RecoTracker_LSTCore_src_alpaka_MiniDoublet_h #define RecoTracker_LSTCore_src_alpaka_MiniDoublet_h +#include "HeterogeneousCore/AlpakaInterface/interface/workdivision.h" + #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" #include "RecoTracker/LSTCore/interface/EndcapGeometry.h" @@ -994,7 +996,9 @@ namespace lst { // Declare variables in shared memory and set to 0 int& nTotalMDs = alpaka::declareSharedVar(acc); - nTotalMDs = 0; + if (cms::alpakatools::once_per_block(acc)) { + nTotalMDs = 0; + } alpaka::syncBlockThreads(acc); // Initialize variables outside of the for loop. @@ -1067,7 +1071,7 @@ namespace lst { // Wait for all threads to finish before reporting final values alpaka::syncBlockThreads(acc); - if (globalThreadIdx[2] == 0) { + if (cms::alpakatools::once_per_block(acc)) { rangesInGPU.miniDoubletModuleIndices[*modulesInGPU.nLowerModules] = nTotalMDs; *rangesInGPU.device_nTotalMDs = nTotalMDs; } diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 050fefd2f29f6..08ff1067642b9 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -1,6 +1,8 @@ #ifndef RecoTracker_LSTCore_src_alpaka_Quintuplet_h #define RecoTracker_LSTCore_src_alpaka_Quintuplet_h +#include "HeterogeneousCore/AlpakaInterface/interface/workdivision.h" + #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" #include "RecoTracker/LSTCore/interface/EndcapGeometry.h" @@ -3109,8 +3111,10 @@ namespace lst { // Initialize variables in shared memory and set to 0 int& nEligibleT5Modulesx = alpaka::declareSharedVar(acc); int& nTotalQuintupletsx = alpaka::declareSharedVar(acc); - nTotalQuintupletsx = 0; - nEligibleT5Modulesx = 0; + if (cms::alpakatools::once_per_block(acc)) { + nTotalQuintupletsx = 0; + nEligibleT5Modulesx = 0; + } alpaka::syncBlockThreads(acc); // Initialize variables outside of the for loop. diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index 7716c9f2ccf5b..83ef396a64746 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -1,6 +1,8 @@ #ifndef RecoTracker_LSTCore_src_alpaka_Segment_h #define RecoTracker_LSTCore_src_alpaka_Segment_h +#include "HeterogeneousCore/AlpakaInterface/interface/workdivision.h" + #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" #include "RecoTracker/LSTCore/interface/EndcapGeometry.h" @@ -900,7 +902,9 @@ namespace lst { // Initialize variables in shared memory and set to 0 int& nTotalSegments = alpaka::declareSharedVar(acc); - nTotalSegments = 0; + if (cms::alpakatools::once_per_block(acc)) { + nTotalSegments = 0; + } alpaka::syncBlockThreads(acc); // Initialize variables outside of the for loop. diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index 4b9606b3ca2e7..4f98f2f205a69 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -1,6 +1,8 @@ #ifndef RecoTracker_LSTCore_src_alpaka_Triplet_h #define RecoTracker_LSTCore_src_alpaka_Triplet_h +#include "HeterogeneousCore/AlpakaInterface/interface/workdivision.h" + #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" @@ -997,7 +999,9 @@ namespace lst { // Initialize variables in shared memory and set to 0 int& nTotalTriplets = alpaka::declareSharedVar(acc); - nTotalTriplets = 0; + if (cms::alpakatools::once_per_block(acc)) { + nTotalTriplets = 0; + } alpaka::syncBlockThreads(acc); // Initialize variables outside of the for loop. From 375a06c135e011cd1a5bc0db2bbd23ebd3a66086 Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Wed, 24 Jul 2024 06:45:27 -0700 Subject: [PATCH 17/35] Renaming of constants and removal of custom functions now implemented in alpaka --- .../LSTCore/interface/alpaka/Constants.h | 51 ++--- RecoTracker/LSTCore/src/alpaka/Hit.h | 14 -- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 12 +- .../LSTCore/src/alpaka/NeuralNetwork.h | 16 +- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 136 +++++++------ RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 183 ++++++++++-------- RecoTracker/LSTCore/src/alpaka/Segment.h | 36 ++-- RecoTracker/LSTCore/src/alpaka/Triplet.h | 44 ++--- 8 files changed, 251 insertions(+), 241 deletions(-) diff --git a/RecoTracker/LSTCore/interface/alpaka/Constants.h b/RecoTracker/LSTCore/interface/alpaka/Constants.h index cee32daf8536c..576c09e0d0849 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Constants.h +++ b/RecoTracker/LSTCore/interface/alpaka/Constants.h @@ -62,45 +62,48 @@ namespace lst { return WorkDiv3D(adjustedBlocks, adjustedThreads, elementsPerThreadArg); } + // The constants below are usually used in functions like alpaka::math::min(), + // expecting a reference (T const&) in the arguments. Hence, + // ALPAKA_STATIC_ACC_MEM_GLOBAL needs to be used in addition to constexpr. + // 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] = { + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniMulsPtScaleBarrel[6] = { 0.0052, 0.0038, 0.0034, 0.0034, 0.0032, 0.0034}; - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float miniMulsPtScaleEndcap[5] = {0.006, 0.006, 0.006, 0.006, 0.006}; - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float miniRminMeanBarrel[6] = { + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniMulsPtScaleEndcap[5] = {0.006, 0.006, 0.006, 0.006, 0.006}; + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniRminMeanBarrel[6] = { 25.007152356, 37.2186993757, 52.3104270826, 68.6658656666, 85.9770373007, 108.301772384}; - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float miniRminMeanEndcap[5] = { + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniRminMeanEndcap[5] = { 130.992832231, 154.813883559, 185.352604327, 221.635123002, 265.022076742}; 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; + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kSinAlphaMax = 0.95; ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float ptCut = PT_CUT; - 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; - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float strip2SZpitch = 5.0; - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float width2S = 0.009; - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float widthPS = 0.01; - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float pt_betaMax = 7.0; - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float magnetic_field = 3.8112; + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kDeltaZLum = 15.0; + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kPixelPSZpitch = 0.15; + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kStripPSZpitch = 2.4; + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kStrip2SZpitch = 5.0; + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kWidth2S = 0.009; + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kWidthPS = 0.01; + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kPt_betaMax = 7.0; // Since C++ can't represent infinity, lst_INF = 123456789 was used to represent infinity in the data table ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float lst_INF = 123456789.0; 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 + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kLSTWp1 = 0.3418833f; // 94.0% TPR, 43.9% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kLSTWp2 = 0.6177366f; // 82.0% TPR, 20.0% FPR // Other working points - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp70 = 0.7776195f; // 70.0% TPR, 10.0% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp75 = 0.7181118f; // 75.0% TPR, 13.5% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp80 = 0.6492643f; // 80.0% TPR, 17.9% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp85 = 0.5655319f; // 85.0% TPR, 23.8% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp90 = 0.4592205f; // 90.0% TPR, 32.6% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp95 = 0.3073708f; // 95.0% TPR, 47.7% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp97p5 = 0.2001348f; // 97.5% TPR, 61.2% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp99 = 0.1120605f; // 99.0% TPR, 75.9% FPR - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float wp99p9 = 0.0218196f; // 99.9% TPR, 95.4% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kWp70 = 0.7776195f; // 70.0% TPR, 10.0% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kWp75 = 0.7181118f; // 75.0% TPR, 13.5% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kWp80 = 0.6492643f; // 80.0% TPR, 17.9% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kWp85 = 0.5655319f; // 85.0% TPR, 23.8% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kWp90 = 0.4592205f; // 90.0% TPR, 32.6% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kWp95 = 0.3073708f; // 95.0% TPR, 47.7% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kWp97p5 = 0.2001348f; // 97.5% TPR, 61.2% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kWp99 = 0.1120605f; // 99.0% TPR, 75.9% FPR + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kWp99p9 = 0.0218196f; // 99.9% TPR, 95.4% FPR } // namespace t5dnn diff --git a/RecoTracker/LSTCore/src/alpaka/Hit.h b/RecoTracker/LSTCore/src/alpaka/Hit.h index 493eefd71f057..7cca2a2fc5f30 100644 --- a/RecoTracker/LSTCore/src/alpaka/Hit.h +++ b/RecoTracker/LSTCore/src/alpaka/Hit.h @@ -107,13 +107,6 @@ namespace lst { inline void setData(HitsBuffer& buf) { data_.setData(buf); } }; - // Alpaka does not support log10 natively right now. - template - ALPAKA_FN_ACC ALPAKA_FN_INLINE float temp_log10(TAcc const& acc, float val) { - constexpr float ln10 = 2.302585093f; // precomputed ln(10) - return alpaka::math::log(acc, val) / ln10; - }; - template ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float eta(TAcc const& acc, float x, float y, float z) { float r3 = alpaka::math::sqrt(acc, x * x + y * y + z * z); @@ -149,13 +142,6 @@ namespace lst { return deltaPhi(acc, x1, y1, x2 - x1, y2 - y1); }; - // Alpaka: This function is not yet implemented directly in Alpaka. - ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float copysignf(float a, float b) { - int sign_a = (a < 0) ? -1 : 1; - int sign_b = (b < 0) ? -1 : 1; - return sign_a * sign_b * a; - }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float calculate_dPhi(float phi1, float phi2) { // Calculate dPhi float dPhi = phi1 - phi2; diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index b189fde578d5b..02ac92ebc841b 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -355,12 +355,12 @@ namespace lst { // ================================================================= unsigned int iL = modulesInGPU.layers[moduleIndex] - 1; - const float miniSlope = alpaka::math::asin(acc, alpaka::math::min(acc, rt * k2Rinv1GeVf / ptCut, sinAlphaMax)); + const float miniSlope = alpaka::math::asin(acc, alpaka::math::min(acc, rt * k2Rinv1GeVf / ptCut, kSinAlphaMax)); const float rLayNominal = - ((modulesInGPU.subdets[moduleIndex] == Barrel) ? miniRminMeanBarrel[iL] : miniRminMeanEndcap[iL]); + ((modulesInGPU.subdets[moduleIndex] == Barrel) ? kMiniRminMeanBarrel[iL] : kMiniRminMeanEndcap[iL]); const float miniPVoff = 0.1f / rLayNominal; - const float miniMuls = ((modulesInGPU.subdets[moduleIndex] == Barrel) ? miniMulsPtScaleBarrel[iL] * 3.f / ptCut - : miniMulsPtScaleEndcap[iL] * 3.f / ptCut); + const float miniMuls = ((modulesInGPU.subdets[moduleIndex] == Barrel) ? kMiniMulsPtScaleBarrel[iL] * 3.f / ptCut + : kMiniMulsPtScaleEndcap[iL] * 3.f / ptCut); const bool isTilted = modulesInGPU.subdets[moduleIndex] == Barrel and modulesInGPU.sides[moduleIndex] != Center; //the lower module is sent in irrespective of its layer type. We need to fetch the drdz properly @@ -374,12 +374,12 @@ namespace lst { } else { drdz = 0; } - const float miniTilt2 = ((isTilted) ? (0.5f * 0.5f) * (pixelPSZpitch * pixelPSZpitch) * (drdz * drdz) / + const float miniTilt2 = ((isTilted) ? (0.5f * 0.5f) * (kPixelPSZpitch * kPixelPSZpitch) * (drdz * drdz) / (1.f + drdz * drdz) / moduleGapSize(modulesInGPU, moduleIndex) : 0); // Compute luminous region requirement for endcap - const float miniLum = alpaka::math::abs(acc, dPhi * deltaZLum / dz); // Balaji's new error + const float miniLum = alpaka::math::abs(acc, dPhi * kDeltaZLum / dz); // Balaji's new error // ================================================================= // Return the threshold value diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h index bcfa914fbfe80..79fdf7d2c8ccc 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h @@ -66,7 +66,7 @@ namespace lst::t5dnn { // Build DNN input vector (corresponding output N-tuple branch noted in parenthetical in comment) float x[38] = { - lst::temp_log10(acc, 2 * lst::k2Rinv1GeVf * innerRadius), // inner T3 pT (t3_pt) + alpaka::math::log10(acc, 2 * lst::k2Rinv1GeVf * innerRadius), // inner T3 pT (t3_pt) mdsInGPU.anchorEta[mdIndex1], // inner T3 anchor hit 1 eta (t3_0_eta) mdsInGPU.anchorPhi[mdIndex1], // inner T3 anchor hit 1 phi (t3_0_phi) mdsInGPU.anchorZ[mdIndex1], // inner T3 anchor hit 1 z (t3_0_z) @@ -82,7 +82,7 @@ namespace lst::t5dnn { mdsInGPU.anchorZ[mdIndex3], // inner T3 anchor hit 3 z (t3_4_z) alpaka::math::sqrt(acc, x3 * x3 + y3 * y3), // inner T3 anchor hit 3 r (t3_4_r) float(modulesInGPU.layers[lowerModuleIndex3] + 6 * is_endcap3), // inner T3 anchor hit 3 layer (t3_4_layer) - lst::temp_log10(acc, 2 * lst::k2Rinv1GeVf * outerRadius), // outer T3 pT (t3_pt) + alpaka::math::log10(acc, 2 * lst::k2Rinv1GeVf * outerRadius), // outer T3 pT (t3_pt) mdsInGPU.anchorEta[mdIndex3], // outer T3 anchor hit 4 eta (t3_0_eta) mdsInGPU.anchorPhi[mdIndex3], // outer T3 anchor hit 4 phi (t3_0_phi) mdsInGPU.anchorZ[mdIndex3], // outer T3 anchor hit 3 eta (t3_0_z) @@ -98,12 +98,12 @@ namespace lst::t5dnn { mdsInGPU.anchorZ[mdIndex5], // outer T3 anchor hit 5 z (t3_4_z) alpaka::math::sqrt(acc, x5 * x5 + y5 * y5), // outer T3 anchor hit 5 r (t3_4_r) float(modulesInGPU.layers[lowerModuleIndex5] + 6 * is_endcap5), // outer T3 anchor hit 5 layer (t3_4_layer) - lst::temp_log10(acc, (innerRadius + outerRadius) * lst::k2Rinv1GeVf), // T5 pT (t5_pt) - mdsInGPU.anchorEta[md_idx_for_t5_eta_phi], // T5 eta (t5_eta) - mdsInGPU.anchorPhi[md_idx_for_t5_eta_phi], // T5 phi (t5_phi) - lst::temp_log10(acc, innerRadius), // T5 inner radius (t5_innerRadius) - lst::temp_log10(acc, bridgeRadius), // T5 bridge radius (t5_bridgeRadius) - lst::temp_log10(acc, outerRadius) // T5 outer radius (t5_outerRadius) + alpaka::math::log10(acc, (innerRadius + outerRadius) * lst::k2Rinv1GeVf), // T5 pT (t5_pt) + mdsInGPU.anchorEta[md_idx_for_t5_eta_phi], // T5 eta (t5_eta) + mdsInGPU.anchorPhi[md_idx_for_t5_eta_phi], // T5 phi (t5_phi) + alpaka::math::log10(acc, innerRadius), // T5 inner radius (t5_innerRadius) + alpaka::math::log10(acc, bridgeRadius), // T5 bridge radius (t5_bridgeRadius) + alpaka::math::log10(acc, outerRadius) // T5 outer radius (t5_outerRadius) }; // (0): Linear(in_features=38, out_features=32, bias=True) => x = x*W_T + b diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index ae0412c3e0bb4..14c1fd36aa17a 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -436,8 +436,8 @@ namespace lst { float delta1[3]{}, delta2[3]{}, slopes[3]; bool isFlat[3]{}; float chiSquared = 0; - float inv1 = widthPS / width2S; - float inv2 = pixelPSZpitch / width2S; + float inv1 = kWidthPS / kWidth2S; + float inv2 = kPixelPSZpitch / kWidth2S; for (size_t i = 0; i < 3; i++) { ModuleType moduleType = modulesInGPU.moduleType[lowerModuleIndices[i]]; short moduleSubdet = modulesInGPU.subdets[lowerModuleIndices[i]]; @@ -811,10 +811,10 @@ namespace lst { //PS Modules if (moduleType == 0) { - error2 = pixelPSZpitch * pixelPSZpitch; + error2 = kPixelPSZpitch * kPixelPSZpitch; } else //2S modules { - error2 = strip2SZpitch * strip2SZpitch; + error2 = kStrip2SZpitch * kStrip2SZpitch; } //special dispensation to tilted PS modules! @@ -1177,68 +1177,75 @@ namespace lst { float dr, float lIn) { if (lIn == 0) { - betaOut += lst::copysignf( + betaOut += alpaka::math::copysign( + acc, alpaka::math::asin( acc, - alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), + alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::kSinAlphaMax)), betaOut); return; } if (betaIn * betaOut > 0.f and - (alpaka::math::abs(acc, pt_beta) < 4.f * lst::pt_betaMax or + (alpaka::math::abs(acc, pt_beta) < 4.f * lst::kPt_betaMax or (lIn >= 11 and alpaka::math::abs(acc, pt_beta) < - 8.f * lst::pt_betaMax))) //and the pt_beta is well-defined; less strict for endcap-endcap + 8.f * lst::kPt_betaMax))) //and the pt_beta is well-defined; less strict for endcap-endcap { const float betaInUpd = - betaIn + - lst::copysignf(alpaka::math::asin( - acc, - alpaka::math::min( - acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), - betaIn); //FIXME: need a faster version + betaIn + alpaka::math::copysign( + acc, + alpaka::math::asin( + acc, + alpaka::math::min( + acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::kSinAlphaMax)), + betaIn); //FIXME: need a faster version const float betaOutUpd = - betaOut + - lst::copysignf(alpaka::math::asin( - acc, - alpaka::math::min( - acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), - betaOut); //FIXME: need a faster version + betaOut + alpaka::math::copysign( + acc, + alpaka::math::asin( + acc, + alpaka::math::min( + acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::kSinAlphaMax)), + betaOut); //FIXME: need a faster version betaAv = 0.5f * (betaInUpd + betaOutUpd); //1st update const float pt_beta_inv = 1.f / alpaka::math::abs(acc, dr * k2Rinv1GeVf / alpaka::math::sin(acc, betaAv)); //get a better pt estimate - betaIn += lst::copysignf( - alpaka::math::asin(acc, alpaka::math::min(acc, sdIn_dr * lst::k2Rinv1GeVf * pt_beta_inv, lst::sinAlphaMax)), + betaIn += alpaka::math::copysign( + acc, + alpaka::math::asin(acc, alpaka::math::min(acc, sdIn_dr * lst::k2Rinv1GeVf * pt_beta_inv, lst::kSinAlphaMax)), betaIn); //FIXME: need a faster version - betaOut += lst::copysignf( - alpaka::math::asin(acc, alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf * pt_beta_inv, lst::sinAlphaMax)), + betaOut += alpaka::math::copysign( + acc, + alpaka::math::asin(acc, alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf * pt_beta_inv, lst::kSinAlphaMax)), betaOut); //FIXME: need a faster version //update the av and pt betaAv = 0.5f * (betaIn + betaOut); //2nd update pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate } else if (lIn < 11 && alpaka::math::abs(acc, betaOut) < 0.2f * alpaka::math::abs(acc, betaIn) && - alpaka::math::abs(acc, pt_beta) < 12.f * lst::pt_betaMax) //use betaIn sign as ref + alpaka::math::abs(acc, pt_beta) < 12.f * lst::kPt_betaMax) //use betaIn sign as ref { const float pt_betaIn = dr * k2Rinv1GeVf / alpaka::math::sin(acc, betaIn); const float betaInUpd = - betaIn + lst::copysignf( + betaIn + alpaka::math::copysign( + acc, alpaka::math::asin( acc, alpaka::math::min( - acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), lst::sinAlphaMax)), + acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), lst::kSinAlphaMax)), betaIn); //FIXME: need a faster version const float betaOutUpd = betaOut + - lst::copysignf( + alpaka::math::copysign( + acc, alpaka::math::asin( acc, alpaka::math::min( - acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), lst::sinAlphaMax)), + acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), lst::kSinAlphaMax)), betaIn); //FIXME: need a faster version betaAv = (alpaka::math::abs(acc, betaOut) > 0.2f * alpaka::math::abs(acc, betaIn)) ? (0.5f * (betaInUpd + betaOutUpd)) @@ -1246,15 +1253,17 @@ namespace lst { //1st update pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate - betaIn += lst::copysignf( + betaIn += alpaka::math::copysign( + acc, alpaka::math::asin( acc, - alpaka::math::min(acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), + alpaka::math::min(acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::kSinAlphaMax)), betaIn); //FIXME: need a faster version - betaOut += lst::copysignf( + betaOut += alpaka::math::copysign( + acc, alpaka::math::asin( acc, - alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), + alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::kSinAlphaMax)), betaIn); //FIXME: need a faster version //update the av and pt betaAv = 0.5f * (betaIn + betaOut); @@ -1330,7 +1339,7 @@ namespace lst { ptSLo = alpaka::math::min(acc, 10.0f, ptSLo); float alpha1GeV_OutLo = - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / ptCut, sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / ptCut, kSinAlphaMax)); const float rtRatio_OutLoInOut = rt_OutLo / rt_InOut; // Outer segment beginning rt divided by inner segment beginning rt; @@ -1338,11 +1347,11 @@ namespace lst { alpaka::math::tan(acc, alpha1GeV_OutLo) / alpha1GeV_OutLo; // The track can bend in r-z plane slightly const float zpitch_InLo = 0.05f; const float zpitch_InOut = 0.05f; - float zpitch_OutLo = (isPS_OutLo ? pixelPSZpitch : strip2SZpitch); + float zpitch_OutLo = (isPS_OutLo ? kPixelPSZpitch : kStrip2SZpitch); float zGeom = zpitch_InLo + zpitch_OutLo; - zHi = z_InUp + (z_InUp + deltaZLum) * (rtRatio_OutLoInOut - 1.f) * (z_InUp < 0.f ? 1.f : dzDrtScale) + + zHi = z_InUp + (z_InUp + kDeltaZLum) * (rtRatio_OutLoInOut - 1.f) * (z_InUp < 0.f ? 1.f : dzDrtScale) + (zpitch_InOut + zpitch_OutLo); - zLo = z_InUp + (z_InUp - deltaZLum) * (rtRatio_OutLoInOut - 1.f) * (z_InUp > 0.f ? 1.f : dzDrtScale) - + zLo = z_InUp + (z_InUp - kDeltaZLum) * (rtRatio_OutLoInOut - 1.f) * (z_InUp > 0.f ? 1.f : dzDrtScale) - (zpitch_InOut + zpitch_OutLo); //slope-correction only on outer end if ((z_OutLo < zLo) || (z_OutLo > zHi)) @@ -1490,18 +1499,18 @@ namespace lst { betaOutRHmax *= betaOutMMSF; float min_ptBeta_ptBetaMax = alpaka::math::min( - acc, alpaka::math::abs(acc, pt_beta), lst::pt_betaMax); //need to confirm the range-out value of 7 GeV + acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confirm the range-out value of 7 GeV const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_ptBetaMax * min_ptBeta_ptBetaMax); const float alphaInAbsReg = alpaka::math::max(acc, alpaka::math::abs(acc, alpha_InLo), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_InUp * k2Rinv1GeVf / 3.0f, sinAlphaMax))); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_InUp * k2Rinv1GeVf / 3.0f, kSinAlphaMax))); const float alphaOutAbsReg = alpaka::math::max(acc, alpaka::math::abs(acc, alpha_OutLo), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / 3.0f, sinAlphaMax))); - const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * deltaZLum / z_InUp); - const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * deltaZLum / z_OutLo); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / 3.0f, kSinAlphaMax))); + const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * kDeltaZLum / z_InUp); + const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * kDeltaZLum / z_OutLo); const float dBetaLum2 = (dBetaInLum + dBetaOutLum) * (dBetaInLum + dBetaOutLum); const float sinDPhi = alpaka::math::sin(acc, dPhi); @@ -1522,7 +1531,7 @@ namespace lst { const float dBetaROut2 = dBetaROut * dBetaROut; //FIXME: need faster version - betaOutCut = alpaka::math::asin(acc, alpaka::math::min(acc, drt_tl_axis * k2Rinv1GeVf / ptCut, sinAlphaMax)) + + betaOutCut = alpaka::math::asin(acc, alpaka::math::min(acc, drt_tl_axis * k2Rinv1GeVf / ptCut, kSinAlphaMax)) + (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); //Cut #6: The real beta cut @@ -1611,27 +1620,28 @@ namespace lst { float rtOut_o_rtIn = rt_OutLo / rt_InUp; const float zpitch_InLo = 0.05f; - float zpitch_OutLo = (isPS_OutLo ? pixelPSZpitch : strip2SZpitch); + float zpitch_OutLo = (isPS_OutLo ? kPixelPSZpitch : kStrip2SZpitch); float zGeom = zpitch_InLo + zpitch_OutLo; - const float sdlSlope = alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / ptCut, sinAlphaMax)); + const float sdlSlope = + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / ptCut, kSinAlphaMax)); const float dzDrtScale = alpaka::math::tan(acc, sdlSlope) / sdlSlope; //FIXME: need approximate value - zLo = z_InUp + (z_InUp - deltaZLum) * (rtOut_o_rtIn - 1.f) * (z_InUp > 0.f ? 1.f : dzDrtScale) - + zLo = z_InUp + (z_InUp - kDeltaZLum) * (rtOut_o_rtIn - 1.f) * (z_InUp > 0.f ? 1.f : dzDrtScale) - zGeom; //slope-correction only on outer end - const float dLum = lst::copysignf(deltaZLum, z_InUp); + const float dLum = alpaka::math::copysign(acc, kDeltaZLum, z_InUp); bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS; const float rtGeom1 = isOutSgInnerMDPS - ? pixelPSZpitch - : strip2SZpitch; //FIXME: make this chosen by configuration for lay11,12 full PS - const float zGeom1 = lst::copysignf(zGeom, z_InUp); //used in B-E region + ? kPixelPSZpitch + : kStrip2SZpitch; //FIXME: make this chosen by configuration for lay11,12 full PS + const float zGeom1 = alpaka::math::copysign(acc, zGeom, z_InUp); //used in B-E region rtLo = rt_InUp * (1.f + (z_OutLo - z_InUp - zGeom1) / (z_InUp + zGeom1 + dLum) / dzDrtScale) - rtGeom1; //slope correction only on the lower end float zInForHi = z_InUp - zGeom1 - dLum; if (zInForHi * z_InUp < 0) - zInForHi = lst::copysignf(0.1f, z_InUp); + zInForHi = alpaka::math::copysign(acc, 0.1f, z_InUp); rtHi = rt_InUp * (1.f + (z_OutLo - z_InUp + zGeom1) / zInForHi) + rtGeom1; // Cut #2: rt condition @@ -1667,7 +1677,7 @@ namespace lst { return false; const float alpha1GeV_OutLo = - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / ptCut, sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / ptCut, kSinAlphaMax)); const float sdlPVoff = 0.1f / rt_OutLo; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); @@ -1772,19 +1782,19 @@ namespace lst { betaOutRHmax *= betaOutMMSF; float min_ptBeta_ptBetaMax = alpaka::math::min( - acc, alpaka::math::abs(acc, pt_beta), lst::pt_betaMax); //need to confirm the range-out value of 7 GeV + acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confirm the range-out value of 7 GeV const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_ptBetaMax * min_ptBeta_ptBetaMax); const float alphaInAbsReg = alpaka::math::max(acc, alpaka::math::abs(acc, alpha_InLo), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_InUp * k2Rinv1GeVf / 3.0f, sinAlphaMax))); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_InUp * k2Rinv1GeVf / 3.0f, kSinAlphaMax))); const float alphaOutAbsReg = alpaka::math::max(acc, alpaka::math::abs(acc, alpha_OutLo), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / 3.0f, sinAlphaMax))); - const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * deltaZLum / z_InUp); - const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * deltaZLum / z_OutLo); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / 3.0f, kSinAlphaMax))); + const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * kDeltaZLum / z_InUp); + const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * kDeltaZLum / z_OutLo); const float dBetaLum2 = (dBetaInLum + dBetaOutLum) * (dBetaInLum + dBetaOutLum); const float sinDPhi = alpaka::math::sin(acc, dPhi); @@ -1806,7 +1816,7 @@ namespace lst { betaOutCut = alpaka::math::asin( - acc, alpaka::math::min(acc, drt_tl_axis * k2Rinv1GeVf / ptCut, sinAlphaMax)) //FIXME: need faster version + acc, alpaka::math::min(acc, drt_tl_axis * k2Rinv1GeVf / ptCut, kSinAlphaMax)) //FIXME: need faster version + (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); //Cut #6: The real beta cut @@ -2281,9 +2291,9 @@ namespace lst { */ ModuleType moduleType; short moduleSubdet, moduleSide; - float inv1 = widthPS / width2S; - float inv2 = pixelPSZpitch / width2S; - float inv3 = stripPSZpitch / width2S; + float inv1 = kWidthPS / kWidth2S; + float inv2 = kPixelPSZpitch / kWidth2S; + float inv3 = kStripPSZpitch / kWidth2S; for (size_t i = 0; i < nPoints; i++) { moduleType = modulesInGPU.moduleType[lowerModuleIndices[i]]; moduleSubdet = modulesInGPU.subdets[lowerModuleIndices[i]]; @@ -2650,10 +2660,10 @@ namespace lst { const float& drdz = modulesInGPU.drdzs[lowerModuleIndex]; //PS Modules if (moduleType == 0) { - error2 = pixelPSZpitch * pixelPSZpitch; + error2 = kPixelPSZpitch * kPixelPSZpitch; } else //2S modules { - error2 = strip2SZpitch * strip2SZpitch; + error2 = kStrip2SZpitch * kStrip2SZpitch; } //special dispensation to tilted PS modules! diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 050fefd2f29f6..d0270c4a7803f 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -565,10 +565,10 @@ namespace lst { //PS Modules if (moduleTypei == 0) { - error2 = pixelPSZpitch * pixelPSZpitch; + error2 = kPixelPSZpitch * kPixelPSZpitch; } else //2S modules { - error2 = strip2SZpitch * strip2SZpitch; + error2 = kStrip2SZpitch * kStrip2SZpitch; } //check the tilted module, side: PosZ, NegZ, Center(for not tilted) @@ -615,8 +615,8 @@ namespace lst { // creating a chi squared type quantity // 0-> PS, 1->2S - residual4_linear = (moduleType4 == 0) ? residual4_linear / pixelPSZpitch : residual4_linear / strip2SZpitch; - residual5_linear = (moduleType5 == 0) ? residual5_linear / pixelPSZpitch : residual5_linear / strip2SZpitch; + residual4_linear = (moduleType4 == 0) ? residual4_linear / kPixelPSZpitch : residual4_linear / kStrip2SZpitch; + residual5_linear = (moduleType5 == 0) ? residual5_linear / kPixelPSZpitch : residual5_linear / kStrip2SZpitch; residual4_linear = residual4_linear * 100; residual5_linear = residual5_linear * 100; @@ -1168,9 +1168,9 @@ namespace lst { ModuleType moduleType; short moduleSubdet, moduleSide; - float inv1 = widthPS / width2S; - float inv2 = pixelPSZpitch / width2S; - float inv3 = stripPSZpitch / width2S; + float inv1 = kWidthPS / kWidth2S; + float inv2 = kPixelPSZpitch / kWidth2S; + float inv3 = kStripPSZpitch / kWidth2S; for (size_t i = 0; i < nPoints; i++) { moduleType = modulesInGPU.moduleType[lowerModuleIndices[i]]; moduleSubdet = modulesInGPU.subdets[lowerModuleIndices[i]]; @@ -1389,68 +1389,75 @@ namespace lst { float dr, float lIn) { if (lIn == 0) { - betaOut += lst::copysignf( + betaOut += alpaka::math::copysign( + acc, alpaka::math::asin( acc, - alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), + alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::kSinAlphaMax)), betaOut); return; } if (betaIn * betaOut > 0.f and - (alpaka::math::abs(acc, pt_beta) < 4.f * lst::pt_betaMax or + (alpaka::math::abs(acc, pt_beta) < 4.f * lst::kPt_betaMax or (lIn >= 11 and alpaka::math::abs(acc, pt_beta) < - 8.f * lst::pt_betaMax))) //and the pt_beta is well-defined; less strict for endcap-endcap + 8.f * lst::kPt_betaMax))) //and the pt_beta is well-defined; less strict for endcap-endcap { const float betaInUpd = - betaIn + - lst::copysignf(alpaka::math::asin( - acc, - alpaka::math::min( - acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), - betaIn); //FIXME: need a faster version + betaIn + alpaka::math::copysign( + acc, + alpaka::math::asin( + acc, + alpaka::math::min( + acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::kSinAlphaMax)), + betaIn); //FIXME: need a faster version const float betaOutUpd = - betaOut + - lst::copysignf(alpaka::math::asin( - acc, - alpaka::math::min( - acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), - betaOut); //FIXME: need a faster version + betaOut + alpaka::math::copysign( + acc, + alpaka::math::asin( + acc, + alpaka::math::min( + acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::kSinAlphaMax)), + betaOut); //FIXME: need a faster version betaAv = 0.5f * (betaInUpd + betaOutUpd); //1st update const float pt_beta_inv = 1.f / alpaka::math::abs(acc, dr * k2Rinv1GeVf / alpaka::math::sin(acc, betaAv)); //get a better pt estimate - betaIn += lst::copysignf( - alpaka::math::asin(acc, alpaka::math::min(acc, sdIn_dr * lst::k2Rinv1GeVf * pt_beta_inv, lst::sinAlphaMax)), + betaIn += alpaka::math::copysign( + acc, + alpaka::math::asin(acc, alpaka::math::min(acc, sdIn_dr * lst::k2Rinv1GeVf * pt_beta_inv, lst::kSinAlphaMax)), betaIn); //FIXME: need a faster version - betaOut += lst::copysignf( - alpaka::math::asin(acc, alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf * pt_beta_inv, lst::sinAlphaMax)), + betaOut += alpaka::math::copysign( + acc, + alpaka::math::asin(acc, alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf * pt_beta_inv, lst::kSinAlphaMax)), betaOut); //FIXME: need a faster version //update the av and pt betaAv = 0.5f * (betaIn + betaOut); //2nd update pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate } else if (lIn < 11 && alpaka::math::abs(acc, betaOut) < 0.2f * alpaka::math::abs(acc, betaIn) && - alpaka::math::abs(acc, pt_beta) < 12.f * lst::pt_betaMax) //use betaIn sign as ref + alpaka::math::abs(acc, pt_beta) < 12.f * lst::kPt_betaMax) //use betaIn sign as ref { const float pt_betaIn = dr * k2Rinv1GeVf / alpaka::math::sin(acc, betaIn); const float betaInUpd = - betaIn + lst::copysignf( + betaIn + alpaka::math::copysign( + acc, alpaka::math::asin( acc, alpaka::math::min( - acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), lst::sinAlphaMax)), + acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), lst::kSinAlphaMax)), betaIn); //FIXME: need a faster version const float betaOutUpd = betaOut + - lst::copysignf( + alpaka::math::copysign( + acc, alpaka::math::asin( acc, alpaka::math::min( - acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), lst::sinAlphaMax)), + acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), lst::kSinAlphaMax)), betaIn); //FIXME: need a faster version betaAv = (alpaka::math::abs(acc, betaOut) > 0.2f * alpaka::math::abs(acc, betaIn)) ? (0.5f * (betaInUpd + betaOutUpd)) @@ -1458,15 +1465,17 @@ namespace lst { //1st update pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate - betaIn += lst::copysignf( + betaIn += alpaka::math::copysign( + acc, alpaka::math::asin( acc, - alpaka::math::min(acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), + alpaka::math::min(acc, sdIn_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::kSinAlphaMax)), betaIn); //FIXME: need a faster version - betaOut += lst::copysignf( + betaOut += alpaka::math::copysign( + acc, alpaka::math::asin( acc, - alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::sinAlphaMax)), + alpaka::math::min(acc, sdOut_dr * lst::k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), lst::kSinAlphaMax)), betaIn); //FIXME: need a faster version //update the av and pt betaAv = 0.5f * (betaIn + betaOut); @@ -1517,17 +1526,17 @@ namespace lst { float z_OutLo = mdsInGPU.anchorZ[thirdMDIndex]; float alpha1GeV_OutLo = - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)); float rtRatio_OutLoInLo = rt_OutLo / rt_InLo; // Outer segment beginning rt divided by inner segment beginning rt; float dzDrtScale = alpaka::math::tan(acc, alpha1GeV_OutLo) / alpha1GeV_OutLo; // The track can bend in r-z plane slightly - float zpitch_InLo = (isPS_InLo ? lst::pixelPSZpitch : lst::strip2SZpitch); - float zpitch_OutLo = (isPS_OutLo ? lst::pixelPSZpitch : lst::strip2SZpitch); + float zpitch_InLo = (isPS_InLo ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); + float zpitch_OutLo = (isPS_OutLo ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); - zHi = z_InLo + (z_InLo + lst::deltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo < 0.f ? 1.f : dzDrtScale) + + zHi = z_InLo + (z_InLo + lst::kDeltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo < 0.f ? 1.f : dzDrtScale) + (zpitch_InLo + zpitch_OutLo); - zLo = z_InLo + (z_InLo - lst::deltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - + zLo = z_InLo + (z_InLo - lst::kDeltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - (zpitch_InLo + zpitch_OutLo); //Cut 1 - z compatibility @@ -1660,7 +1669,7 @@ namespace lst { betaInCut = alpaka::math::asin( acc, alpaka::math::min( - acc, (-rt_InSeg * corrF + drt_tl_axis) * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + + acc, (-rt_InSeg * corrF + drt_tl_axis) * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + (0.02f / drt_InSeg); //Cut #5: first beta cut @@ -1692,19 +1701,19 @@ namespace lst { betaOutRHmax *= betaOutMMSF; float min_ptBeta_maxPtBeta = alpaka::math::min( - acc, alpaka::math::abs(acc, pt_beta), lst::pt_betaMax); //need to confimm the range-out value of 7 GeV + acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confimm the range-out value of 7 GeV const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); const float alphaInAbsReg = alpaka::math::max( acc, alpaka::math::abs(acc, alpha_InLo), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_InLo * lst::k2Rinv1GeVf / 3.0f, lst::sinAlphaMax))); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_InLo * lst::k2Rinv1GeVf / 3.0f, lst::kSinAlphaMax))); const float alphaOutAbsReg = alpaka::math::max( acc, alpaka::math::abs(acc, alpha_OutLo), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / 3.0f, lst::sinAlphaMax))); - const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * lst::deltaZLum / z_InLo); - const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * lst::deltaZLum / z_OutLo); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / 3.0f, lst::kSinAlphaMax))); + const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * lst::kDeltaZLum / z_InLo); + const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * lst::kDeltaZLum / z_OutLo); const float dBetaLum2 = (dBetaInLum + dBetaOutLum) * (dBetaInLum + dBetaOutLum); const float sinDPhi = alpaka::math::sin(acc, dPhi); @@ -1724,9 +1733,9 @@ namespace lst { const float dBetaROut2 = dBetaROut * dBetaROut; //FIXME: need faster version - betaOutCut = - alpaka::math::asin(acc, alpaka::math::min(acc, drt_tl_axis * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + - (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); + betaOutCut = alpaka::math::asin( + acc, alpaka::math::min(acc, drt_tl_axis * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + + (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); //Cut #6: The real beta cut if (alpaka::math::abs(acc, betaOut) >= betaOutCut) @@ -1786,25 +1795,25 @@ namespace lst { float z_OutLo = mdsInGPU.anchorZ[thirdMDIndex]; float alpha1GeV_OutLo = - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)); float rtRatio_OutLoInLo = rt_OutLo / rt_InLo; // Outer segment beginning rt divided by inner segment beginning rt; float dzDrtScale = alpaka::math::tan(acc, alpha1GeV_OutLo) / alpha1GeV_OutLo; // The track can bend in r-z plane slightly - float zpitch_InLo = (isPS_InLo ? lst::pixelPSZpitch : lst::strip2SZpitch); - float zpitch_OutLo = (isPS_OutLo ? lst::pixelPSZpitch : lst::strip2SZpitch); + float zpitch_InLo = (isPS_InLo ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); + float zpitch_OutLo = (isPS_OutLo ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); float zGeom = zpitch_InLo + zpitch_OutLo; - zLo = z_InLo + (z_InLo - lst::deltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - zGeom; + zLo = z_InLo + (z_InLo - lst::kDeltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - zGeom; // Cut #0: Preliminary (Only here in endcap case) if (z_InLo * z_OutLo <= 0) return false; - float dLum = lst::copysignf(lst::deltaZLum, z_InLo); + float dLum = alpaka::math::copysign(acc, lst::kDeltaZLum, z_InLo); bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS; - float rtGeom1 = isOutSgInnerMDPS ? lst::pixelPSZpitch : lst::strip2SZpitch; - float zGeom1 = lst::copysignf(zGeom, z_InLo); + float rtGeom1 = isOutSgInnerMDPS ? lst::kPixelPSZpitch : lst::kStrip2SZpitch; + float zGeom1 = alpaka::math::copysign(acc, zGeom, z_InLo); rtLo = rt_InLo * (1.f + (z_OutLo - z_InLo - zGeom1) / (z_InLo + zGeom1 + dLum) / dzDrtScale) - rtGeom1; //slope correction only on the lower end zOut = z_OutLo; @@ -1816,7 +1825,7 @@ namespace lst { float zInForHi = z_InLo - zGeom1 - dLum; if (zInForHi * z_InLo < 0) { - zInForHi = lst::copysignf(0.1f, z_InLo); + zInForHi = alpaka::math::copysign(acc, 0.1f, z_InLo); } rtHi = rt_InLo * (1.f + (z_OutLo - z_InLo + zGeom1) / zInForHi) + rtGeom1; @@ -1833,7 +1842,7 @@ namespace lst { const float coshEta = dr3SDIn / drtSDIn; //direction estimate const float dzOutInAbs = alpaka::math::abs(acc, z_OutLo - z_InLo); const float multDzDr = dzOutInAbs * coshEta / (coshEta * coshEta - 1.f); - const float zGeom1_another = lst::pixelPSZpitch; + const float zGeom1_another = lst::kPixelPSZpitch; kZ = (z_OutLo - z_InLo) / dzSDIn; float drtErr = zGeom1_another * zGeom1_another * drtSDIn * drtSDIn / dzSDIn / dzSDIn * (1.f - 2.f * kZ + 2.f * kZ * kZ); @@ -1930,7 +1939,7 @@ namespace lst { const float corrF = 1.f; betaInCut = alpaka::math::asin( - acc, alpaka::math::min(acc, (-sdIn_dr * corrF + dr) * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + + acc, alpaka::math::min(acc, (-sdIn_dr * corrF + dr) * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + (0.02f / sdIn_d); //Cut #6: first beta cut @@ -1964,19 +1973,19 @@ namespace lst { betaOutRHmax *= betaOutMMSF; float min_ptBeta_maxPtBeta = alpaka::math::min( - acc, alpaka::math::abs(acc, pt_beta), lst::pt_betaMax); //need to confirm the range-out value of 7 GeV + acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confirm the range-out value of 7 GeV const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); const float alphaInAbsReg = alpaka::math::max( acc, alpaka::math::abs(acc, sdIn_alpha), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_InLo * lst::k2Rinv1GeVf / 3.0f, lst::sinAlphaMax))); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_InLo * lst::k2Rinv1GeVf / 3.0f, lst::kSinAlphaMax))); const float alphaOutAbsReg = alpaka::math::max( acc, alpaka::math::abs(acc, sdOut_alpha), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / 3.0f, lst::sinAlphaMax))); - const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * lst::deltaZLum / z_InLo); - const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * lst::deltaZLum / z_OutLo); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / 3.0f, lst::kSinAlphaMax))); + const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * lst::kDeltaZLum / z_InLo); + const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * lst::kDeltaZLum / z_OutLo); const float dBetaLum2 = (dBetaInLum + dBetaOutLum) * (dBetaInLum + dBetaOutLum); const float sinDPhi = alpaka::math::sin(acc, dPhi); @@ -1995,8 +2004,9 @@ namespace lst { const float dBetaROut2 = dBetaROut * dBetaROut; //FIXME: need faster version - betaOutCut = alpaka::math::asin(acc, alpaka::math::min(acc, dr * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + - (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); + betaOutCut = + alpaka::math::asin(acc, alpaka::math::min(acc, dr * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + + (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); //Cut #6: The real beta cut if (alpaka::math::abs(acc, betaOut) >= betaOutCut) @@ -2056,29 +2066,29 @@ namespace lst { float z_OutLo = mdsInGPU.anchorZ[thirdMDIndex]; float alpha1GeV_OutLo = - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)); float rtRatio_OutLoInLo = rt_OutLo / rt_InLo; // Outer segment beginning rt divided by inner segment beginning rt; float dzDrtScale = alpaka::math::tan(acc, alpha1GeV_OutLo) / alpha1GeV_OutLo; // The track can bend in r-z plane slightly - float zpitch_InLo = (isPS_InLo ? lst::pixelPSZpitch : lst::strip2SZpitch); - float zpitch_OutLo = (isPS_OutLo ? lst::pixelPSZpitch : lst::strip2SZpitch); + float zpitch_InLo = (isPS_InLo ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); + float zpitch_OutLo = (isPS_OutLo ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); float zGeom = zpitch_InLo + zpitch_OutLo; - zLo = z_InLo + (z_InLo - lst::deltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - + zLo = z_InLo + (z_InLo - lst::kDeltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - zGeom; //slope-correction only on outer end // Cut #0: Preliminary (Only here in endcap case) if ((z_InLo * z_OutLo) <= 0) return false; - float dLum = lst::copysignf(lst::deltaZLum, z_InLo); + float dLum = alpaka::math::copysign(acc, lst::kDeltaZLum, z_InLo); bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS; bool isInSgInnerMDPS = modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS; - float rtGeom = (isInSgInnerMDPS and isOutSgInnerMDPS) ? 2.f * lst::pixelPSZpitch - : (isInSgInnerMDPS or isOutSgInnerMDPS) ? lst::pixelPSZpitch + lst::strip2SZpitch - : 2.f * lst::strip2SZpitch; + float rtGeom = (isInSgInnerMDPS and isOutSgInnerMDPS) ? 2.f * lst::kPixelPSZpitch + : (isInSgInnerMDPS or isOutSgInnerMDPS) ? lst::kPixelPSZpitch + lst::kStrip2SZpitch + : 2.f * lst::kStrip2SZpitch; float dz = z_OutLo - z_InLo; rtLo = rt_InLo * (1.f + dz / (z_InLo + dLum) / dzDrtScale) - rtGeom; //slope correction only on the lower end @@ -2110,7 +2120,7 @@ namespace lst { float drtErr = alpaka::math::sqrt( acc, - lst::pixelPSZpitch * lst::pixelPSZpitch * 2.f / (dzSDIn * dzSDIn) * (dzOutInAbs * dzOutInAbs) + + lst::kPixelPSZpitch * lst::kPixelPSZpitch * 2.f / (dzSDIn * dzSDIn) * (dzOutInAbs * dzOutInAbs) + sdlMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta); float drtMean = drtSDIn * dzOutInAbs / alpaka::math::abs(acc, dzSDIn); @@ -2197,7 +2207,7 @@ namespace lst { const float corrF = 1.f; betaInCut = alpaka::math::asin( - acc, alpaka::math::min(acc, (-sdIn_dr * corrF + dr) * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + + acc, alpaka::math::min(acc, (-sdIn_dr * corrF + dr) * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + (0.02f / sdIn_d); //Cut #6: first beta cut @@ -2231,27 +2241,28 @@ namespace lst { betaOutRHmax *= betaOutMMSF; float min_ptBeta_maxPtBeta = alpaka::math::min( - acc, alpaka::math::abs(acc, pt_beta), lst::pt_betaMax); //need to confirm the range-out value of 7 GeV + acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confirm the range-out value of 7 GeV const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); const float alphaInAbsReg = alpaka::math::max( acc, alpaka::math::abs(acc, sdIn_alpha), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_InLo * lst::k2Rinv1GeVf / 3.0f, lst::sinAlphaMax))); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_InLo * lst::k2Rinv1GeVf / 3.0f, lst::kSinAlphaMax))); const float alphaOutAbsReg = alpaka::math::max( acc, alpaka::math::abs(acc, sdOut_alpha), - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / 3.0f, lst::sinAlphaMax))); - const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * lst::deltaZLum / z_InLo); - const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * lst::deltaZLum / z_OutLo); + alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / 3.0f, lst::kSinAlphaMax))); + const float dBetaInLum = lIn < 11 ? 0.0f : alpaka::math::abs(acc, alphaInAbsReg * lst::kDeltaZLum / z_InLo); + const float dBetaOutLum = lOut < 11 ? 0.0f : alpaka::math::abs(acc, alphaOutAbsReg * lst::kDeltaZLum / z_OutLo); const float dBetaLum2 = (dBetaInLum + dBetaOutLum) * (dBetaInLum + dBetaOutLum); const float dBetaRIn2 = 0; // TODO-RH float dBetaROut2 = 0; //TODO-RH //FIXME: need faster version - betaOutCut = alpaka::math::asin(acc, alpaka::math::min(acc, dr * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + - (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); + betaOutCut = + alpaka::math::asin(acc, alpaka::math::min(acc, dr * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + + (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); //Cut #6: The real beta cut if (alpaka::math::abs(acc, betaOut) >= betaOutCut) @@ -2912,8 +2923,8 @@ namespace lst { innerRadius, outerRadius, bridgeRadius); - TightCutFlag = TightCutFlag and (inference > lst::t5dnn::lstwp2); // T5-in-TC cut - if (inference <= lst::t5dnn::lstwp2) // T5-building cut + TightCutFlag = TightCutFlag and (inference > lst::t5dnn::kLSTWp2); // T5-in-TC cut + if (inference <= lst::t5dnn::kLSTWp2) // T5-building cut return false; #endif diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index 7716c9f2ccf5b..9d725b51a7cba 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -279,14 +279,14 @@ namespace lst { unsigned int& innerMDIndex, unsigned int& outerMDIndex) { float sdMuls = (modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel) - ? miniMulsPtScaleBarrel[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut - : miniMulsPtScaleEndcap[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut; + ? kMiniMulsPtScaleBarrel[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut + : kMiniMulsPtScaleEndcap[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut; //more accurate then outer rt - inner rt float segmentDr = alpaka::math::sqrt(acc, (yOut - yIn) * (yOut - yIn) + (xOut - xIn) * (xOut - xIn)); const float dAlpha_Bfield = - alpaka::math::asin(acc, alpaka::math::min(acc, segmentDr * k2Rinv1GeVf / ptCut, sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, segmentDr * k2Rinv1GeVf / ptCut, kSinAlphaMax)); bool isInnerTilted = modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel and modulesInGPU.sides[innerLowerModuleIndex] != lst::Center; @@ -298,12 +298,12 @@ namespace lst { float innerModuleGapSize = lst::moduleGapSize_seg(modulesInGPU, innerLowerModuleIndex); float outerModuleGapSize = lst::moduleGapSize_seg(modulesInGPU, outerLowerModuleIndex); const float innerminiTilt2 = isInnerTilted - ? ((0.5f * 0.5f) * (pixelPSZpitch * pixelPSZpitch) * (drdzInner * drdzInner) / + ? ((0.5f * 0.5f) * (kPixelPSZpitch * kPixelPSZpitch) * (drdzInner * drdzInner) / (1.f + drdzInner * drdzInner) / (innerModuleGapSize * innerModuleGapSize)) : 0; const float outerminiTilt2 = isOuterTilted - ? ((0.5f * 0.5f) * (pixelPSZpitch * pixelPSZpitch) * (drdzOuter * drdzOuter) / + ? ((0.5f * 0.5f) * (kPixelPSZpitch * kPixelPSZpitch) * (drdzOuter * drdzOuter) / (1.f + drdzOuter * drdzOuter) / (outerModuleGapSize * outerModuleGapSize)) : 0; @@ -315,14 +315,14 @@ namespace lst { if (modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel) { sdLumForInnerMini2 = innerminiTilt2 * (dAlpha_Bfield * dAlpha_Bfield); } else { - sdLumForInnerMini2 = (mdsInGPU.dphis[innerMDIndex] * mdsInGPU.dphis[innerMDIndex]) * (deltaZLum * deltaZLum) / + sdLumForInnerMini2 = (mdsInGPU.dphis[innerMDIndex] * mdsInGPU.dphis[innerMDIndex]) * (kDeltaZLum * kDeltaZLum) / (mdsInGPU.dzs[innerMDIndex] * mdsInGPU.dzs[innerMDIndex]); } if (modulesInGPU.subdets[outerLowerModuleIndex] == lst::Barrel) { sdLumForOuterMini2 = outerminiTilt2 * (dAlpha_Bfield * dAlpha_Bfield); } else { - sdLumForOuterMini2 = (mdsInGPU.dphis[outerMDIndex] * mdsInGPU.dphis[outerMDIndex]) * (deltaZLum * deltaZLum) / + sdLumForOuterMini2 = (mdsInGPU.dphis[outerMDIndex] * mdsInGPU.dphis[outerMDIndex]) * (kDeltaZLum * kDeltaZLum) / (mdsInGPU.dzs[outerMDIndex] * mdsInGPU.dzs[outerMDIndex]); } @@ -480,8 +480,8 @@ namespace lst { float& dAlphaOuterMDSegmentThreshold, float& dAlphaInnerMDOuterMDThreshold) { float sdMuls = (modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel) - ? miniMulsPtScaleBarrel[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut - : miniMulsPtScaleEndcap[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut; + ? kMiniMulsPtScaleBarrel[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut + : kMiniMulsPtScaleEndcap[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut; float xIn, yIn, xOut, yOut; @@ -495,15 +495,15 @@ namespace lst { zOut = mdsInGPU.anchorZ[outerMDIndex]; rtOut = mdsInGPU.anchorRt[outerMDIndex]; - float sdSlope = alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * k2Rinv1GeVf / ptCut, sinAlphaMax)); + float sdSlope = alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * k2Rinv1GeVf / ptCut, kSinAlphaMax)); float sdPVoff = 0.1f / rtOut; float dzDrtScale = alpaka::math::tan(acc, sdSlope) / sdSlope; //FIXME: need appropriate value - const float zGeom = modulesInGPU.layers[innerLowerModuleIndex] <= 2 ? 2.f * pixelPSZpitch : 2.f * strip2SZpitch; + const float zGeom = modulesInGPU.layers[innerLowerModuleIndex] <= 2 ? 2.f * kPixelPSZpitch : 2.f * kStrip2SZpitch; - zLo = zIn + (zIn - deltaZLum) * (rtOut / rtIn - 1.f) * (zIn > 0.f ? 1.f : dzDrtScale) - + zLo = zIn + (zIn - kDeltaZLum) * (rtOut / rtIn - 1.f) * (zIn > 0.f ? 1.f : dzDrtScale) - zGeom; //slope-correction only on outer end - zHi = zIn + (zIn + deltaZLum) * (rtOut / rtIn - 1.f) * (zIn < 0.f ? 1.f : dzDrtScale) + zGeom; + zHi = zIn + (zIn + kDeltaZLum) * (rtOut / rtIn - 1.f) * (zIn < 0.f ? 1.f : dzDrtScale) + zGeom; if ((zOut < zLo) || (zOut > zHi)) return false; @@ -598,13 +598,13 @@ namespace lst { bool outerLayerEndcapTwoS = (modulesInGPU.subdets[outerLowerModuleIndex] == lst::Endcap) && (modulesInGPU.moduleType[outerLowerModuleIndex] == lst::TwoS); - float sdSlope = alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * k2Rinv1GeVf / ptCut, sinAlphaMax)); + float sdSlope = alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * k2Rinv1GeVf / ptCut, kSinAlphaMax)); float disks2SMinRadius = 60.f; float rtGeom = ((rtIn < disks2SMinRadius && rtOut < disks2SMinRadius) - ? (2.f * pixelPSZpitch) - : ((rtIn < disks2SMinRadius || rtOut < disks2SMinRadius) ? (pixelPSZpitch + strip2SZpitch) - : (2.f * strip2SZpitch))); + ? (2.f * kPixelPSZpitch) + : ((rtIn < disks2SMinRadius || rtOut < disks2SMinRadius) ? (kPixelPSZpitch + kStrip2SZpitch) + : (2.f * kStrip2SZpitch))); //cut 0 - z compatibility if (zIn * zOut < 0) @@ -612,7 +612,7 @@ namespace lst { float dz = zOut - zIn; // Alpaka: Needs to be moved over - float dLum = lst::copysignf(deltaZLum, zIn); + float dLum = alpaka::math::copysign(acc, kDeltaZLum, zIn); float drtDzScale = sdSlope / alpaka::math::tan(acc, sdSlope); rtLo = alpaka::math::max( diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index 4b9606b3ca2e7..d67e72369d896 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -326,16 +326,16 @@ namespace lst { zOut = mdsInGPU.anchorZ[thirdMDIndex]; float alpha1GeVOut = - alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)); float rtRatio_OutIn = rtOut / rtIn; // Outer segment beginning rt divided by inner segment beginning rt; float dzDrtScale = alpaka::math::tan(acc, alpha1GeVOut) / alpha1GeVOut; // The track can bend in r-z plane slightly - float zpitchIn = (isPSIn ? lst::pixelPSZpitch : lst::strip2SZpitch); - float zpitchOut = (isPSOut ? lst::pixelPSZpitch : lst::strip2SZpitch); + float zpitchIn = (isPSIn ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); + float zpitchOut = (isPSOut ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); const float zHi = - zIn + (zIn + lst::deltaZLum) * (rtRatio_OutIn - 1.f) * (zIn < 0.f ? 1.f : dzDrtScale) + (zpitchIn + zpitchOut); - const float zLo = zIn + (zIn - lst::deltaZLum) * (rtRatio_OutIn - 1.f) * (zIn > 0.f ? 1.f : dzDrtScale) - + zIn + (zIn + lst::kDeltaZLum) * (rtRatio_OutIn - 1.f) * (zIn < 0.f ? 1.f : dzDrtScale) + (zpitchIn + zpitchOut); + const float zLo = zIn + (zIn - lst::kDeltaZLum) * (rtRatio_OutIn - 1.f) * (zIn > 0.f ? 1.f : dzDrtScale) - (zpitchIn + zpitchOut); //slope-correction only on outer end //Cut 1 - z compatibility @@ -390,7 +390,7 @@ namespace lst { (mdsInGPU.anchorY[secondMDIndex] - mdsInGPU.anchorY[firstMDIndex])); betaInCut = alpaka::math::asin( - acc, alpaka::math::min(acc, (-rt_InSeg + drt_tl_axis) * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + + acc, alpaka::math::min(acc, (-rt_InSeg + drt_tl_axis) * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + (0.02f / drt_InSeg); //Cut #3: first beta cut @@ -427,29 +427,29 @@ namespace lst { zOut = mdsInGPU.anchorZ[thirdMDIndex]; float alpha1GeV_OutLo = - alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)); float dzDrtScale = alpaka::math::tan(acc, alpha1GeV_OutLo) / alpha1GeV_OutLo; // The track can bend in r-z plane slightly - float zpitchIn = (isPSIn ? lst::pixelPSZpitch : lst::strip2SZpitch); - float zpitchOut = (isPSOut ? lst::pixelPSZpitch : lst::strip2SZpitch); + float zpitchIn = (isPSIn ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); + float zpitchOut = (isPSOut ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); float zGeom = zpitchIn + zpitchOut; // Cut #0: Preliminary (Only here in endcap case) if (zIn * zOut <= 0) return false; - float dLum = lst::copysignf(lst::deltaZLum, zIn); + float dLum = alpaka::math::copysign(acc, lst::kDeltaZLum, zIn); bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerOuterLowerModuleIndex] == lst::PS; - float rtGeom1 = isOutSgInnerMDPS ? lst::pixelPSZpitch : lst::strip2SZpitch; - float zGeom1 = lst::copysignf(zGeom, zIn); + float rtGeom1 = isOutSgInnerMDPS ? lst::kPixelPSZpitch : lst::kStrip2SZpitch; + float zGeom1 = alpaka::math::copysign(acc, zGeom, zIn); float rtLo = rtIn * (1.f + (zOut - zIn - zGeom1) / (zIn + zGeom1 + dLum) / dzDrtScale) - rtGeom1; //slope correction only on the lower end //Cut #1: rt condition float zInForHi = zIn - zGeom1 - dLum; if (zInForHi * zIn < 0) { - zInForHi = lst::copysignf(0.1f, zIn); + zInForHi = alpaka::math::copysign(acc, 0.1f, zIn); } float rtHi = rtIn * (1.f + (zOut - zIn + zGeom1) / zInForHi) + rtGeom1; @@ -467,7 +467,7 @@ namespace lst { const float coshEta = dr3SDIn / drtSDIn; //direction estimate const float dzOutInAbs = alpaka::math::abs(acc, zOut - zIn); const float multDzDr = dzOutInAbs * coshEta / (coshEta * coshEta - 1.f); - const float zGeom1_another = lst::pixelPSZpitch; + const float zGeom1_another = lst::kPixelPSZpitch; const float kZ = (zOut - zIn) / dzSDIn; float drtErr = zGeom1_another * zGeom1_another * drtSDIn * drtSDIn / dzSDIn / dzSDIn * (1.f - 2.f * kZ + 2.f * kZ * kZ); @@ -511,7 +511,7 @@ namespace lst { float dr = alpaka::math::sqrt(acc, tl_axis_x * tl_axis_x + tl_axis_y * tl_axis_y); betaInCut = alpaka::math::asin( - acc, alpaka::math::min(acc, (-sdIn_dr + dr) * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + + acc, alpaka::math::min(acc, (-sdIn_dr + dr) * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + (0.02f / sdIn_d); //Cut #4: first beta cut @@ -544,7 +544,7 @@ namespace lst { zOut = mdsInGPU.anchorZ[thirdMDIndex]; float alpha1GeV_Out = - alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)); + alpaka::math::asin(acc, alpaka::math::min(acc, rtOut * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)); float dzDrtScale = alpaka::math::tan(acc, alpha1GeV_Out) / alpha1GeV_Out; // The track can bend in r-z plane slightly @@ -553,13 +553,13 @@ namespace lst { if (zIn * zOut <= 0) return false; - float dLum = lst::copysignf(lst::deltaZLum, zIn); + float dLum = alpaka::math::copysign(acc, lst::kDeltaZLum, zIn); bool isOutSgOuterMDPS = modulesInGPU.moduleType[outerOuterLowerModuleIndex] == lst::PS; bool isInSgInnerMDPS = modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS; - float rtGeom = (isInSgInnerMDPS and isOutSgOuterMDPS) ? 2.f * lst::pixelPSZpitch - : (isInSgInnerMDPS or isOutSgOuterMDPS) ? lst::pixelPSZpitch + lst::strip2SZpitch - : 2.f * lst::strip2SZpitch; + float rtGeom = (isInSgInnerMDPS and isOutSgOuterMDPS) ? 2.f * lst::kPixelPSZpitch + : (isInSgInnerMDPS or isOutSgOuterMDPS) ? lst::kPixelPSZpitch + lst::kStrip2SZpitch + : 2.f * lst::kStrip2SZpitch; float dz = zOut - zIn; const float rtLo = rtIn * (1.f + dz / (zIn + dLum) / dzDrtScale) - rtGeom; //slope correction only on the lower end @@ -587,7 +587,7 @@ namespace lst { float drtErr = alpaka::math::sqrt( acc, - lst::pixelPSZpitch * lst::pixelPSZpitch * 2.f / (dzSDIn * dzSDIn) * (dzOutInAbs * dzOutInAbs) + + lst::kPixelPSZpitch * lst::kPixelPSZpitch * 2.f / (dzSDIn * dzSDIn) * (dzOutInAbs * dzOutInAbs) + sdlMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta); float drtMean = drtSDIn * dzOutInAbs / alpaka::math::abs(acc, dzSDIn); @@ -634,7 +634,7 @@ namespace lst { float dr = alpaka::math::sqrt(acc, tl_axis_x * tl_axis_x + tl_axis_y * tl_axis_y); betaInCut = alpaka::math::asin( - acc, alpaka::math::min(acc, (-sdIn_dr + dr) * lst::k2Rinv1GeVf / lst::ptCut, lst::sinAlphaMax)) + + acc, alpaka::math::min(acc, (-sdIn_dr + dr) * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + (0.02f / sdIn_d); //Cut #4: first beta cut From 77e6b9a450853457ea6e351da5ac39ae94350ff3 Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Wed, 24 Jul 2024 09:44:52 -0700 Subject: [PATCH 18/35] Removal of vector copies, as per comments --- .../plugins/LSTPhase2OTHitsInputProducer.cc | 3 +- .../LST/plugins/LSTPixelSeedInputProducer.cc | 30 ++++++------ .../LSTCore/interface/EndcapGeometry.h | 4 +- RecoTracker/LSTCore/interface/LST.h | 46 +++++++++--------- .../LSTCore/interface/ModuleConnectionMap.h | 6 +-- .../LSTCore/interface/TiltedGeometry.h | 4 +- RecoTracker/LSTCore/src/EndcapGeometry.cc | 4 +- RecoTracker/LSTCore/src/LSTESData.cc | 2 +- .../LSTCore/src/ModuleConnectionMap.cc | 6 +-- RecoTracker/LSTCore/src/TiltedGeometry.cc | 4 +- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 46 +++++++++--------- RecoTracker/LSTCore/src/alpaka/Event.h | 48 +++++++++---------- RecoTracker/LSTCore/src/alpaka/LST.dev.cc | 38 +++++++-------- 13 files changed, 121 insertions(+), 120 deletions(-) diff --git a/RecoTracker/LST/plugins/LSTPhase2OTHitsInputProducer.cc b/RecoTracker/LST/plugins/LSTPhase2OTHitsInputProducer.cc index 4b0d797db0d4f..02d6e76018cca 100644 --- a/RecoTracker/LST/plugins/LSTPhase2OTHitsInputProducer.cc +++ b/RecoTracker/LST/plugins/LSTPhase2OTHitsInputProducer.cc @@ -55,7 +55,8 @@ void LSTPhase2OTHitsInputProducer::produce(edm::StreamID iID, edm::Event& iEvent } } - LSTPhase2OTHitsInput phase2OTHitsInput(ph2_detId, ph2_x, ph2_y, ph2_z, ph2_hits); + LSTPhase2OTHitsInput phase2OTHitsInput( + std::move(ph2_detId), std::move(ph2_x), std::move(ph2_y), std::move(ph2_z), std::move(ph2_hits)); iEvent.emplace(lstPhase2OTHitsInputPutToken_, std::move(phase2OTHitsInput)); } diff --git a/RecoTracker/LST/plugins/LSTPixelSeedInputProducer.cc b/RecoTracker/LST/plugins/LSTPixelSeedInputProducer.cc index b4f42476b1ce9..2839270c9b59e 100644 --- a/RecoTracker/LST/plugins/LSTPixelSeedInputProducer.cc +++ b/RecoTracker/LST/plugins/LSTPixelSeedInputProducer.cc @@ -149,21 +149,21 @@ void LSTPixelSeedInputProducer::produce(edm::StreamID iID, edm::Event& iEvent, c } } - LSTPixelSeedInput pixelSeedInput(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); + LSTPixelSeedInput pixelSeedInput(std::move(see_px), + std::move(see_py), + std::move(see_pz), + std::move(see_dxy), + std::move(see_dz), + std::move(see_ptErr), + std::move(see_etaErr), + std::move(see_stateTrajGlbX), + std::move(see_stateTrajGlbY), + std::move(see_stateTrajGlbZ), + std::move(see_stateTrajGlbPx), + std::move(see_stateTrajGlbPy), + std::move(see_stateTrajGlbPz), + std::move(see_q), + std::move(see_hitIdx)); iEvent.emplace(lstPixelSeedInputPutToken_, std::move(pixelSeedInput)); iEvent.emplace(lstPixelSeedsPutToken_, std::move(see_seeds)); } diff --git a/RecoTracker/LSTCore/interface/EndcapGeometry.h b/RecoTracker/LSTCore/interface/EndcapGeometry.h index 09bab83238754..555955d83941c 100644 --- a/RecoTracker/LSTCore/interface/EndcapGeometry.h +++ b/RecoTracker/LSTCore/interface/EndcapGeometry.h @@ -22,10 +22,10 @@ namespace lst { unsigned int nEndCapMap; EndcapGeometry() = default; - EndcapGeometry(std::string filename); + EndcapGeometry(std::string const& filename); ~EndcapGeometry() = default; - void load(std::string); + void load(std::string const&); void fillGeoMapArraysExplicit(); float getdxdy_slope(unsigned int detid) const; }; diff --git a/RecoTracker/LSTCore/interface/LST.h b/RecoTracker/LSTCore/interface/LST.h index cb5d8c912166c..f5b32b295c17c 100644 --- a/RecoTracker/LSTCore/interface/LST.h +++ b/RecoTracker/LSTCore/interface/LST.h @@ -45,31 +45,31 @@ namespace lst { const std::vector ph2_z, bool no_pls_dupclean, bool tc_pls_triplets); - std::vector> hits() { return out_tc_hitIdxs_; } - std::vector len() { return out_tc_len_; } - std::vector seedIdx() { return out_tc_seedIdx_; } - std::vector trackCandidateType() { return out_tc_trackCandidateType_; } + const std::vector>& hits() const { return out_tc_hitIdxs_; } + const std::vector& len() const { return out_tc_len_; } + const std::vector& seedIdx() const { return out_tc_seedIdx_; } + const std::vector& trackCandidateType() const { return out_tc_trackCandidateType_; } private: - void 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); + void prepareInput(std::vector const& see_px, + std::vector const& see_py, + std::vector const& see_pz, + std::vector const& see_dxy, + std::vector const& see_dz, + std::vector const& see_ptErr, + std::vector const& see_etaErr, + std::vector const& see_stateTrajGlbX, + std::vector const& see_stateTrajGlbY, + std::vector const& see_stateTrajGlbZ, + std::vector const& see_stateTrajGlbPx, + std::vector const& see_stateTrajGlbPy, + std::vector const& see_stateTrajGlbPz, + std::vector const& see_q, + std::vector> const& see_hitIdx, + std::vector const& ph2_detId, + std::vector const& ph2_x, + std::vector const& ph2_y, + std::vector const& ph2_z); void getOutput(lst::Event& event); std::vector getHitIdxs(const short trackCandidateType, diff --git a/RecoTracker/LSTCore/interface/ModuleConnectionMap.h b/RecoTracker/LSTCore/interface/ModuleConnectionMap.h index 99600faeece13..b3a931345b3a5 100644 --- a/RecoTracker/LSTCore/interface/ModuleConnectionMap.h +++ b/RecoTracker/LSTCore/interface/ModuleConnectionMap.h @@ -15,11 +15,11 @@ namespace lst { public: ModuleConnectionMap(); - ModuleConnectionMap(std::string filename); + ModuleConnectionMap(std::string const& filename); ~ModuleConnectionMap(); - void load(std::string); - void add(std::string); + void load(std::string const&); + void add(std::string const&); void print(); const std::vector& getConnectedModuleDetIds(unsigned int detid) const; diff --git a/RecoTracker/LSTCore/interface/TiltedGeometry.h b/RecoTracker/LSTCore/interface/TiltedGeometry.h index 6a8c6bab902b8..b70a1d95a357b 100644 --- a/RecoTracker/LSTCore/interface/TiltedGeometry.h +++ b/RecoTracker/LSTCore/interface/TiltedGeometry.h @@ -17,10 +17,10 @@ namespace lst { public: TiltedGeometry() = default; - TiltedGeometry(std::string filename); + TiltedGeometry(std::string const& filename); ~TiltedGeometry() = default; - void load(std::string); + void load(std::string const&); float getDrDz(unsigned int detid) const; float getDxDy(unsigned int detid) const; diff --git a/RecoTracker/LSTCore/src/EndcapGeometry.cc b/RecoTracker/LSTCore/src/EndcapGeometry.cc index cf659f38246b8..a95e8c34de248 100644 --- a/RecoTracker/LSTCore/src/EndcapGeometry.cc +++ b/RecoTracker/LSTCore/src/EndcapGeometry.cc @@ -1,8 +1,8 @@ #include "RecoTracker/LSTCore/interface/EndcapGeometry.h" -lst::EndcapGeometry::EndcapGeometry(std::string filename) { load(filename); } +lst::EndcapGeometry::EndcapGeometry(std::string const& filename) { load(filename); } -void lst::EndcapGeometry::load(std::string filename) { +void lst::EndcapGeometry::load(std::string const& filename) { dxdy_slope_.clear(); centroid_phis_.clear(); diff --git a/RecoTracker/LSTCore/src/LSTESData.cc b/RecoTracker/LSTCore/src/LSTESData.cc index 414834e78c70c..c4a255f61f8cc 100644 --- a/RecoTracker/LSTCore/src/LSTESData.cc +++ b/RecoTracker/LSTCore/src/LSTESData.cc @@ -30,7 +30,7 @@ namespace { return path_str; } - std::string get_absolute_path_after_check_file_exists(const std::string name) { + std::string get_absolute_path_after_check_file_exists(std::string const& name) { std::filesystem::path fullpath = std::filesystem::absolute(name.c_str()); if (not std::filesystem::exists(fullpath)) { std::cout << "ERROR: Could not find the file = " << fullpath << std::endl; diff --git a/RecoTracker/LSTCore/src/ModuleConnectionMap.cc b/RecoTracker/LSTCore/src/ModuleConnectionMap.cc index 3049399b92386..732b8e155fb4e 100644 --- a/RecoTracker/LSTCore/src/ModuleConnectionMap.cc +++ b/RecoTracker/LSTCore/src/ModuleConnectionMap.cc @@ -2,11 +2,11 @@ lst::ModuleConnectionMap::ModuleConnectionMap() {} -lst::ModuleConnectionMap::ModuleConnectionMap(std::string filename) { load(filename); } +lst::ModuleConnectionMap::ModuleConnectionMap(std::string const& filename) { load(filename); } lst::ModuleConnectionMap::~ModuleConnectionMap() {} -void lst::ModuleConnectionMap::load(std::string filename) { +void lst::ModuleConnectionMap::load(std::string const& filename) { moduleConnections_.clear(); std::ifstream ifile(filename, std::ios::binary); @@ -49,7 +49,7 @@ void lst::ModuleConnectionMap::load(std::string filename) { } } -void lst::ModuleConnectionMap::add(std::string filename) { +void lst::ModuleConnectionMap::add(std::string const& filename) { std::ifstream ifile; ifile.open(filename.c_str()); std::string line; diff --git a/RecoTracker/LSTCore/src/TiltedGeometry.cc b/RecoTracker/LSTCore/src/TiltedGeometry.cc index a68a9e223f45b..96db807240f69 100644 --- a/RecoTracker/LSTCore/src/TiltedGeometry.cc +++ b/RecoTracker/LSTCore/src/TiltedGeometry.cc @@ -1,8 +1,8 @@ #include "RecoTracker/LSTCore/interface/TiltedGeometry.h" -lst::TiltedGeometry::TiltedGeometry(std::string filename) { load(filename); } +lst::TiltedGeometry::TiltedGeometry(std::string const& filename) { load(filename); } -void lst::TiltedGeometry::load(std::string filename) { +void lst::TiltedGeometry::load(std::string const& filename) { drdzs_.clear(); dxdys_.clear(); diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index 1ac2cc9cf0487..b2fa20e03fae9 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc @@ -150,11 +150,11 @@ void lst::Event::resetEvent() { } } -void lst::Event::addHitToEvent(std::vector x, - std::vector y, - std::vector z, - std::vector detId, - std::vector idxInNtuple) { +void lst::Event::addHitToEvent(std::vector const& x, + std::vector const& y, + std::vector const& z, + std::vector const& detId, + std::vector const& idxInNtuple) { // Use the actual number of hits instead of a max. unsigned int nHits = x.size(); @@ -217,24 +217,24 @@ void lst::Event::addHitToEvent(std::vector x, alpaka::enqueue(queue, module_ranges_task); } -void lst::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) { +void lst::Event::addPixelSegmentToEvent(std::vector const& hitIndices0, + std::vector const& hitIndices1, + std::vector const& hitIndices2, + std::vector const& hitIndices3, + std::vector const& dPhiChange, + std::vector const& ptIn, + std::vector const& ptErr, + std::vector const& px, + std::vector const& py, + std::vector const& pz, + std::vector const& eta, + std::vector const& etaErr, + std::vector const& phi, + std::vector const& charge, + std::vector const& seedIdx, + std::vector const& superbin, + std::vector const& pixelType, + std::vector const& isQuad) { unsigned int size = ptIn.size(); if (size > n_max_pixel_segments_per_module) { diff --git a/RecoTracker/LSTCore/src/alpaka/Event.h b/RecoTracker/LSTCore/src/alpaka/Event.h index 57c99123e2ee1..e947d40dd0d56 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.h +++ b/RecoTracker/LSTCore/src/alpaka/Event.h @@ -109,30 +109,30 @@ namespace lst { } void resetEvent(); - void addHitToEvent( - std::vector x, - std::vector y, - std::vector z, - std::vector detId, - std::vector idxInNtuple); //call the appropriate hit function, then increment the counter here - void 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); + void addHitToEvent(std::vector const& x, + std::vector const& y, + std::vector const& z, + std::vector const& detId, + std::vector const& + idxInNtuple); //call the appropriate hit function, then increment the counter here + void addPixelSegmentToEvent(std::vector const& hitIndices0, + std::vector const& hitIndices1, + std::vector const& hitIndices2, + std::vector const& hitIndices3, + std::vector const& dPhiChange, + std::vector const& ptIn, + std::vector const& ptErr, + std::vector const& px, + std::vector const& py, + std::vector const& pz, + std::vector const& eta, + std::vector const& etaErr, + std::vector const& phi, + std::vector const& charge, + std::vector const& seedIdx, + std::vector const& superbin, + std::vector const& pixelType, + std::vector const& isQuad); // functions that map the objects to the appropriate modules void addMiniDoubletsToEventExplicit(); diff --git a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc index c03007b3d273c..6c3f2f5f34945 100644 --- a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc @@ -20,25 +20,25 @@ namespace { } // namespace template <> -void lst::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) { +void lst::LST::prepareInput(std::vector const& see_px, + std::vector const& see_py, + std::vector const& see_pz, + std::vector const& see_dxy, + std::vector const& see_dz, + std::vector const& see_ptErr, + std::vector const& see_etaErr, + std::vector const& see_stateTrajGlbX, + std::vector const& see_stateTrajGlbY, + std::vector const& see_stateTrajGlbZ, + std::vector const& see_stateTrajGlbPx, + std::vector const& see_stateTrajGlbPy, + std::vector const& see_stateTrajGlbPz, + std::vector const& see_q, + std::vector> const& see_hitIdx, + std::vector const& ph2_detId, + std::vector const& ph2_x, + std::vector const& ph2_y, + std::vector const& ph2_z) { unsigned int count = 0; auto n_see = see_stateTrajGlbPx.size(); std::vector px_vec; From 07e0f4013fa4169aa33b88cf55c1b36933bce154 Mon Sep 17 00:00:00 2001 From: Slava Krutelyov Date: Wed, 24 Jul 2024 15:55:20 -0700 Subject: [PATCH 19/35] geometry ::get single search --- RecoTracker/LSTCore/src/EndcapGeometry.cc | 7 ++----- RecoTracker/LSTCore/src/TiltedGeometry.cc | 14 ++++---------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/RecoTracker/LSTCore/src/EndcapGeometry.cc b/RecoTracker/LSTCore/src/EndcapGeometry.cc index cf659f38246b8..3b0041086b040 100644 --- a/RecoTracker/LSTCore/src/EndcapGeometry.cc +++ b/RecoTracker/LSTCore/src/EndcapGeometry.cc @@ -49,9 +49,6 @@ void lst::EndcapGeometry::fillGeoMapArraysExplicit() { } float lst::EndcapGeometry::getdxdy_slope(unsigned int detid) const { - if (dxdy_slope_.find(detid) != dxdy_slope_.end()) { - return dxdy_slope_.at(detid); - } else { - return 0; - } + auto res = dxdy_slope_.find(detid); + return res == dxdy_slope_.end() ? 0.f : res->second; } diff --git a/RecoTracker/LSTCore/src/TiltedGeometry.cc b/RecoTracker/LSTCore/src/TiltedGeometry.cc index a68a9e223f45b..a288409c2a9e8 100644 --- a/RecoTracker/LSTCore/src/TiltedGeometry.cc +++ b/RecoTracker/LSTCore/src/TiltedGeometry.cc @@ -33,17 +33,11 @@ void lst::TiltedGeometry::load(std::string filename) { } float lst::TiltedGeometry::getDrDz(unsigned int detid) const { - if (drdzs_.find(detid) != drdzs_.end()) { - return drdzs_.at(detid); - } else { - return 0; - } + auto res = drdzs_.find(detid); + return res == drdzs_.end() ? 0.f : res->second; } float lst::TiltedGeometry::getDxDy(unsigned int detid) const { - if (dxdys_.find(detid) != dxdys_.end()) { - return dxdys_.at(detid); - } else { - return 0; - } + auto res = dxdys_.find(detid); + return res == dxdys_.end() ? 0.f : res->second; } From d5e0b699a4fe8cf0aa72b462d623f26018f37d2e Mon Sep 17 00:00:00 2001 From: Slava Krutelyov Date: Wed, 24 Jul 2024 16:12:31 -0700 Subject: [PATCH 20/35] remove Vec3D createVec --- .../LSTCore/interface/alpaka/Constants.h | 5 - RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 125 +++++++++--------- 2 files changed, 62 insertions(+), 68 deletions(-) diff --git a/RecoTracker/LSTCore/interface/alpaka/Constants.h b/RecoTracker/LSTCore/interface/alpaka/Constants.h index cee32daf8536c..218d0f5552c02 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Constants.h +++ b/RecoTracker/LSTCore/interface/alpaka/Constants.h @@ -35,11 +35,6 @@ namespace lst { }; #endif - // 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)); - } - // Adjust grid and block sizes based on backend configuration template ALPAKA_FN_HOST ALPAKA_FN_INLINE WorkDiv3D createWorkDiv(const Vec& blocksPerGrid, diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index 1ac2cc9cf0487..862e6e355b694 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc @@ -183,8 +183,8 @@ void lst::Event::addHitToEvent(std::vector x, alpaka::memcpy(queue, hitsBuffers->nHits_buf, nHits_view); alpaka::wait(queue); - Vec3D const threadsPerBlock1 = createVec(1, 1, 256); - Vec3D const blocksPerGrid1 = createVec(1, 1, max_blocks); + Vec3D const threadsPerBlock1{1, 1, 256}; + Vec3D const blocksPerGrid1{1, 1, max_blocks}; WorkDiv3D const hit_loop_workdiv = createWorkDiv(blocksPerGrid1, threadsPerBlock1, elementsPerThread); hitLoopKernel hit_loop_kernel; @@ -203,8 +203,8 @@ void lst::Event::addHitToEvent(std::vector x, alpaka::enqueue(queue, hit_loop_task); - Vec3D const threadsPerBlock2 = createVec(1, 1, 256); - Vec3D const blocksPerGrid2 = createVec(1, 1, max_blocks); + Vec3D const threadsPerBlock2{1, 1, 256}; + Vec3D const blocksPerGrid2{1, 1, max_blocks}; WorkDiv3D const module_ranges_workdiv = createWorkDiv(blocksPerGrid2, threadsPerBlock2, elementsPerThread); moduleRangesKernel module_ranges_kernel; @@ -261,8 +261,8 @@ void lst::Event::addPixelSegmentToEvent(std::vector hitIndi alpaka::memcpy(queue, dst_view_miniDoubletModuleOccupancy, src_view_value); alpaka::wait(queue); - Vec3D const threadsPerBlockCreateMD = createVec(1, 1, 1024); - Vec3D const blocksPerGridCreateMD = createVec(1, 1, 1); + Vec3D const threadsPerBlockCreateMD{1, 1, 1024}; + Vec3D const blocksPerGridCreateMD{1, 1, 1}; WorkDiv3D const createMDArrayRangesGPU_workDiv = createWorkDiv(blocksPerGridCreateMD, threadsPerBlockCreateMD, elementsPerThread); @@ -292,8 +292,8 @@ void lst::Event::addPixelSegmentToEvent(std::vector hitIndi // 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 - Vec3D const threadsPerBlockCreateSeg = createVec(1, 1, 1024); - Vec3D const blocksPerGridCreateSeg = createVec(1, 1, 1); + Vec3D const threadsPerBlockCreateSeg{1, 1, 1024}; + Vec3D const blocksPerGridCreateSeg{1, 1, 1}; WorkDiv3D const createSegmentArrayRanges_workDiv = createWorkDiv(blocksPerGridCreateSeg, threadsPerBlockCreateSeg, elementsPerThread); @@ -369,8 +369,8 @@ void lst::Event::addPixelSegmentToEvent(std::vector hitIndi alpaka::wait(queue); - Vec3D const threadsPerBlock = createVec(1, 1, 256); - Vec3D const blocksPerGrid = createVec(1, 1, max_blocks); + Vec3D const threadsPerBlock{1, 1, 256}; + Vec3D const blocksPerGrid{1, 1, max_blocks}; WorkDiv3D const addPixelSegmentToEvent_workdiv = createWorkDiv(blocksPerGrid, threadsPerBlock, elementsPerThread); addPixelSegmentToEventKernel addPixelSegmentToEvent_kernel; @@ -405,8 +405,8 @@ void lst::Event::createMiniDoublets() { alpaka::memcpy(queue, dst_view_miniDoubletModuleOccupancy, src_view_value); alpaka::wait(queue); - Vec3D const threadsPerBlockCreateMD = createVec(1, 1, 1024); - Vec3D const blocksPerGridCreateMD = createVec(1, 1, 1); + Vec3D const threadsPerBlockCreateMD{1, 1, 1024}; + Vec3D const blocksPerGridCreateMD{1, 1, 1}; WorkDiv3D const createMDArrayRangesGPU_workDiv = createWorkDiv(blocksPerGridCreateMD, threadsPerBlockCreateMD, elementsPerThread); @@ -432,8 +432,8 @@ void lst::Event::createMiniDoublets() { mdsInGPU->setData(*miniDoubletsBuffers); } - Vec3D const threadsPerBlockCreateMDInGPU = createVec(1, 16, 32); - Vec3D const blocksPerGridCreateMDInGPU = createVec(1, nLowerModules_ / threadsPerBlockCreateMDInGPU[1], 1); + Vec3D const threadsPerBlockCreateMDInGPU{1, 16, 32}; + Vec3D const blocksPerGridCreateMDInGPU{1, nLowerModules_ / threadsPerBlockCreateMDInGPU[1], 1}; WorkDiv3D const createMiniDoubletsInGPUv2_workDiv = createWorkDiv(blocksPerGridCreateMDInGPU, threadsPerBlockCreateMDInGPU, elementsPerThread); @@ -447,8 +447,8 @@ void lst::Event::createMiniDoublets() { alpaka::enqueue(queue, createMiniDoubletsInGPUv2Task); - Vec3D const threadsPerBlockAddMD = createVec(1, 1, 1024); - Vec3D const blocksPerGridAddMD = createVec(1, 1, 1); + Vec3D const threadsPerBlockAddMD{1, 1, 1024}; + Vec3D const blocksPerGridAddMD{1, 1, 1}; WorkDiv3D const addMiniDoubletRangesToEventExplicit_workDiv = createWorkDiv(blocksPerGridAddMD, threadsPerBlockAddMD, elementsPerThread); @@ -477,8 +477,8 @@ void lst::Event::createSegmentsWithModuleMap() { segmentsInGPU->setData(*segmentsBuffers); } - Vec3D const threadsPerBlockCreateSeg = createVec(1, 1, 64); - Vec3D const blocksPerGridCreateSeg = createVec(1, 1, nLowerModules_); + Vec3D const threadsPerBlockCreateSeg{1, 1, 64}; + Vec3D const blocksPerGridCreateSeg{1, 1, nLowerModules_}; WorkDiv3D const createSegmentsInGPUv2_workDiv = createWorkDiv(blocksPerGridCreateSeg, threadsPerBlockCreateSeg, elementsPerThread); @@ -492,8 +492,8 @@ void lst::Event::createSegmentsWithModuleMap() { alpaka::enqueue(queue, createSegmentsInGPUv2Task); - Vec3D const threadsPerBlockAddSeg = createVec(1, 1, 1024); - Vec3D const blocksPerGridAddSeg = createVec(1, 1, 1); + Vec3D const threadsPerBlockAddSeg{1, 1, 1024}; + Vec3D const blocksPerGridAddSeg{1, 1, 1}; WorkDiv3D const addSegmentRangesToEventExplicit_workDiv = createWorkDiv(blocksPerGridAddSeg, threadsPerBlockAddSeg, elementsPerThread); @@ -515,8 +515,8 @@ void lst::Event::createSegmentsWithModuleMap() { void lst::Event::createTriplets() { if (tripletsInGPU == nullptr) { - Vec3D const threadsPerBlockCreateTrip = createVec(1, 1, 1024); - Vec3D const blocksPerGridCreateTrip = createVec(1, 1, 1); + Vec3D const threadsPerBlockCreateTrip{1, 1, 1024}; + Vec3D const blocksPerGridCreateTrip{1, 1, 1}; WorkDiv3D const createTripletArrayRanges_workDiv = createWorkDiv(blocksPerGridCreateTrip, threadsPerBlockCreateTrip, elementsPerThread); @@ -583,8 +583,8 @@ void lst::Event::createTriplets() { alpaka::memcpy(queue, index_gpu_buf, index_buf, nonZeroModules); alpaka::wait(queue); - Vec3D const threadsPerBlockCreateTrip = createVec(1, 16, 16); - Vec3D const blocksPerGridCreateTrip = createVec(max_blocks, 1, 1); + Vec3D const threadsPerBlockCreateTrip{1, 16, 16}; + Vec3D const blocksPerGridCreateTrip{max_blocks, 1, 1}; WorkDiv3D const createTripletsInGPUv2_workDiv = createWorkDiv(blocksPerGridCreateTrip, threadsPerBlockCreateTrip, elementsPerThread); @@ -601,8 +601,8 @@ void lst::Event::createTriplets() { alpaka::enqueue(queue, createTripletsInGPUv2Task); - Vec3D const threadsPerBlockAddTrip = createVec(1, 1, 1024); - Vec3D const blocksPerGridAddTrip = createVec(1, 1, 1); + Vec3D const threadsPerBlockAddTrip{1, 1, 1024}; + Vec3D const blocksPerGridAddTrip{1, 1, 1}; WorkDiv3D const addTripletRangesToEventExplicit_workDiv = createWorkDiv(blocksPerGridAddTrip, threadsPerBlockAddTrip, elementsPerThread); @@ -636,8 +636,8 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ alpaka::wait(queue); uint16_t nEligibleModules = *alpaka::getPtrNative(nEligibleModules_buf); - Vec3D const threadsPerBlock_crossCleanpT3 = createVec(1, 16, 64); - Vec3D const blocksPerGrid_crossCleanpT3 = createVec(1, 4, 20); + Vec3D const threadsPerBlock_crossCleanpT3{1, 16, 64}; + Vec3D const blocksPerGrid_crossCleanpT3{1, 4, 20}; WorkDiv3D const crossCleanpT3_workDiv = createWorkDiv(blocksPerGrid_crossCleanpT3, threadsPerBlock_crossCleanpT3, elementsPerThread); @@ -652,8 +652,8 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ alpaka::enqueue(queue, crossCleanpT3Task); - Vec3D const threadsPerBlock_addpT3asTrackCandidatesInGPU = createVec(1, 1, 512); - Vec3D const blocksPerGrid_addpT3asTrackCandidatesInGPU = createVec(1, 1, 1); + Vec3D const threadsPerBlock_addpT3asTrackCandidatesInGPU{1, 1, 512}; + Vec3D const blocksPerGrid_addpT3asTrackCandidatesInGPU{1, 1, 1}; WorkDiv3D const addpT3asTrackCandidatesInGPU_workDiv = createWorkDiv( blocksPerGrid_addpT3asTrackCandidatesInGPU, threadsPerBlock_addpT3asTrackCandidatesInGPU, elementsPerThread); @@ -668,9 +668,8 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ alpaka::enqueue(queue, addpT3asTrackCandidatesInGPUTask); - Vec3D const threadsPerBlockRemoveDupQuints = createVec(1, 16, 32); - Vec3D const blocksPerGridRemoveDupQuints = - createVec(1, std::max(nEligibleModules / 16, 1), std::max(nEligibleModules / 32, 1)); + Vec3D const threadsPerBlockRemoveDupQuints{1, 16, 32}; + Vec3D const blocksPerGridRemoveDupQuints{1, std::max(nEligibleModules / 16, 1), std::max(nEligibleModules / 32, 1)}; WorkDiv3D const removeDupQuintupletsInGPUBeforeTC_workDiv = createWorkDiv(blocksPerGridRemoveDupQuints, threadsPerBlockRemoveDupQuints, elementsPerThread); @@ -683,8 +682,8 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ alpaka::enqueue(queue, removeDupQuintupletsInGPUBeforeTCTask); - Vec3D const threadsPerBlock_crossCleanT5 = createVec(32, 1, 32); - Vec3D const blocksPerGrid_crossCleanT5 = createVec((13296 / 32) + 1, 1, max_blocks); + Vec3D const threadsPerBlock_crossCleanT5{32, 1, 32}; + Vec3D const blocksPerGrid_crossCleanT5{(13296 / 32) + 1, 1, max_blocks}; WorkDiv3D const crossCleanT5_workDiv = createWorkDiv(blocksPerGrid_crossCleanT5, threadsPerBlock_crossCleanT5, elementsPerThread); @@ -699,8 +698,8 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ alpaka::enqueue(queue, crossCleanT5Task); - Vec3D const threadsPerBlock_addT5asTrackCandidateInGPU = createVec(1, 8, 128); - Vec3D const blocksPerGrid_addT5asTrackCandidateInGPU = createVec(1, 8, 10); + Vec3D const threadsPerBlock_addT5asTrackCandidateInGPU{1, 8, 128}; + Vec3D const blocksPerGrid_addT5asTrackCandidateInGPU{1, 8, 10}; WorkDiv3D const addT5asTrackCandidateInGPU_workDiv = createWorkDiv( blocksPerGrid_addT5asTrackCandidateInGPU, threadsPerBlock_addT5asTrackCandidateInGPU, elementsPerThread); @@ -715,8 +714,8 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ alpaka::enqueue(queue, addT5asTrackCandidateInGPUTask); if (!no_pls_dupclean) { - Vec3D const threadsPerBlockCheckHitspLS = createVec(1, 16, 16); - Vec3D const blocksPerGridCheckHitspLS = createVec(1, max_blocks * 4, max_blocks / 4); + Vec3D const threadsPerBlockCheckHitspLS{1, 16, 16}; + Vec3D const blocksPerGridCheckHitspLS{1, max_blocks * 4, max_blocks / 4}; WorkDiv3D const checkHitspLS_workDiv = createWorkDiv(blocksPerGridCheckHitspLS, threadsPerBlockCheckHitspLS, elementsPerThread); @@ -727,8 +726,8 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ alpaka::enqueue(queue, checkHitspLSTask); } - Vec3D const threadsPerBlock_crossCleanpLS = createVec(1, 16, 32); - Vec3D const blocksPerGrid_crossCleanpLS = createVec(1, 4, 20); + Vec3D const threadsPerBlock_crossCleanpLS{1, 16, 32}; + Vec3D const blocksPerGrid_crossCleanpLS{1, 4, 20}; WorkDiv3D const crossCleanpLS_workDiv = createWorkDiv(blocksPerGrid_crossCleanpLS, threadsPerBlock_crossCleanpLS, elementsPerThread); @@ -746,8 +745,8 @@ void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_ alpaka::enqueue(queue, crossCleanpLSTask); - Vec3D const threadsPerBlock_addpLSasTrackCandidateInGPU = createVec(1, 1, 384); - Vec3D const blocksPerGrid_addpLSasTrackCandidateInGPU = createVec(1, 1, max_blocks); + Vec3D const threadsPerBlock_addpLSasTrackCandidateInGPU{1, 1, 384}; + Vec3D const blocksPerGrid_addpLSasTrackCandidateInGPU{1, 1, max_blocks}; WorkDiv3D const addpLSasTrackCandidateInGPU_workDiv = createWorkDiv( blocksPerGrid_addpLSasTrackCandidateInGPU, threadsPerBlock_addpLSasTrackCandidateInGPU, elementsPerThread); @@ -860,8 +859,8 @@ void lst::Event::createPixelTriplets() { alpaka::memcpy(queue, connectedPixelIndex_dev_buf, connectedPixelIndex_host_buf, nInnerSegments); alpaka::wait(queue); - Vec3D const threadsPerBlock = createVec(1, 4, 32); - Vec3D const blocksPerGrid = createVec(16 /* above median of connected modules*/, 4096, 1); + Vec3D const threadsPerBlock{1, 4, 32}; + Vec3D const blocksPerGrid{16 /* above median of connected modules*/, 4096, 1}; WorkDiv3D const createPixelTripletsInGPUFromMapv2_workDiv = createWorkDiv(blocksPerGrid, threadsPerBlock, elementsPerThread); @@ -892,9 +891,9 @@ void lst::Event::createPixelTriplets() { #endif //pT3s can be cleaned here because they're not used in making pT5s! - Vec3D const threadsPerBlockDupPixTrip = createVec(1, 16, 16); + Vec3D const threadsPerBlockDupPixTrip{1, 16, 16}; //seems like more blocks lead to conflicting writes - Vec3D const blocksPerGridDupPixTrip = createVec(1, 40, 1); + Vec3D const blocksPerGridDupPixTrip{1, 40, 1}; WorkDiv3D const removeDupPixelTripletsInGPUFromMap_workDiv = createWorkDiv(blocksPerGridDupPixTrip, threadsPerBlockDupPixTrip, elementsPerThread); @@ -907,8 +906,8 @@ void lst::Event::createPixelTriplets() { } void lst::Event::createQuintuplets() { - Vec3D const threadsPerBlockCreateQuints = createVec(1, 1, 1024); - Vec3D const blocksPerGridCreateQuints = createVec(1, 1, 1); + Vec3D const threadsPerBlockCreateQuints{1, 1, 1024}; + Vec3D const blocksPerGridCreateQuints{1, 1, 1}; WorkDiv3D const createEligibleModulesListForQuintupletsGPU_workDiv = createWorkDiv(blocksPerGridCreateQuints, threadsPerBlockCreateQuints, elementsPerThread); @@ -942,8 +941,8 @@ void lst::Event::createQuintuplets() { alpaka::wait(queue); } - Vec3D const threadsPerBlockQuints = createVec(1, 8, 32); - Vec3D const blocksPerGridQuints = createVec(std::max((int)nEligibleT5Modules, 1), 1, 1); + Vec3D const threadsPerBlockQuints{1, 8, 32}; + Vec3D const blocksPerGridQuints{std::max((int)nEligibleT5Modules, 1), 1, 1}; WorkDiv3D const createQuintupletsInGPUv2_workDiv = createWorkDiv(blocksPerGridQuints, threadsPerBlockQuints, elementsPerThread); @@ -960,8 +959,8 @@ void lst::Event::createQuintuplets() { alpaka::enqueue(queue, createQuintupletsInGPUv2Task); - Vec3D const threadsPerBlockDupQuint = createVec(1, 16, 16); - Vec3D const blocksPerGridDupQuint = createVec(max_blocks, 1, 1); + Vec3D const threadsPerBlockDupQuint{1, 16, 16}; + Vec3D const blocksPerGridDupQuint{max_blocks, 1, 1}; WorkDiv3D const removeDupQuintupletsInGPUAfterBuild_workDiv = createWorkDiv(blocksPerGridDupQuint, threadsPerBlockDupQuint, elementsPerThread); @@ -975,8 +974,8 @@ void lst::Event::createQuintuplets() { alpaka::enqueue(queue, removeDupQuintupletsInGPUAfterBuildTask); - Vec3D const threadsPerBlockAddQuint = createVec(1, 1, 1024); - Vec3D const blocksPerGridAddQuint = createVec(1, 1, 1); + Vec3D const threadsPerBlockAddQuint{1, 1, 1024}; + Vec3D const blocksPerGridAddQuint{1, 1, 1}; WorkDiv3D const addQuintupletRangesToEventExplicit_workDiv = createWorkDiv(blocksPerGridAddQuint, threadsPerBlockAddQuint, elementsPerThread); @@ -998,8 +997,8 @@ void lst::Event::createQuintuplets() { void lst::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); + Vec3D const threadsPerBlockCheckHitspLS{1, 16, 16}; + Vec3D const blocksPerGridCheckHitspLS{1, max_blocks * 4, max_blocks / 4}; WorkDiv3D const checkHitspLS_workDiv = createWorkDiv(blocksPerGridCheckHitspLS, threadsPerBlockCheckHitspLS, elementsPerThread); @@ -1089,8 +1088,8 @@ void lst::Event::createPixelQuintuplets() { alpaka::memcpy(queue, connectedPixelIndex_dev_buf, connectedPixelIndex_host_buf, nInnerSegments); alpaka::wait(queue); - Vec3D const threadsPerBlockCreatePixQuints = createVec(1, 16, 16); - Vec3D const blocksPerGridCreatePixQuints = createVec(16, max_blocks, 1); + Vec3D const threadsPerBlockCreatePixQuints{1, 16, 16}; + Vec3D const blocksPerGridCreatePixQuints{16, max_blocks, 1}; WorkDiv3D const createPixelQuintupletsInGPUFromMapv2_workDiv = createWorkDiv(blocksPerGridCreatePixQuints, threadsPerBlockCreatePixQuints, elementsPerThread); @@ -1111,8 +1110,8 @@ void lst::Event::createPixelQuintuplets() { alpaka::enqueue(queue, createPixelQuintupletsInGPUFromMapv2Task); - Vec3D const threadsPerBlockDupPix = createVec(1, 16, 16); - Vec3D const blocksPerGridDupPix = createVec(1, max_blocks, 1); + Vec3D const threadsPerBlockDupPix{1, 16, 16}; + Vec3D const blocksPerGridDupPix{1, max_blocks, 1}; WorkDiv3D const removeDupPixelQuintupletsInGPUFromMap_workDiv = createWorkDiv(blocksPerGridDupPix, threadsPerBlockDupPix, elementsPerThread); @@ -1124,8 +1123,8 @@ void lst::Event::createPixelQuintuplets() { alpaka::enqueue(queue, removeDupPixelQuintupletsInGPUFromMapTask); - Vec3D const threadsPerBlockAddpT5asTrackCan = createVec(1, 1, 256); - Vec3D const blocksPerGridAddpT5asTrackCan = createVec(1, 1, 1); + Vec3D const threadsPerBlockAddpT5asTrackCan{1, 1, 256}; + Vec3D const blocksPerGridAddpT5asTrackCan{1, 1, 1}; WorkDiv3D const addpT5asTrackCandidateInGPU_workDiv = createWorkDiv(blocksPerGridAddpT5asTrackCan, threadsPerBlockAddpT5asTrackCan, elementsPerThread); From 9268f4998ffe10e32366223032c966b259bb83ed Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Fri, 26 Jul 2024 06:27:32 -0700 Subject: [PATCH 21/35] More constness, removal of vector copies, and movement of general-purpose alpaka functions --- .../AlpakaInterface/interface/binarySearch.h | 29 ++ .../AlpakaInterface/interface/geomFunctions.h | 57 +++ RecoTracker/LST/interface/LSTOutput.h | 13 +- .../LST/interface/LSTPhase2OTHitsInput.h | 10 +- RecoTracker/LST/interface/LSTPixelSeedInput.h | 30 +- .../plugins/LSTPhase2OTHitsInputProducer.cc | 21 +- .../LSTCore/interface/EndcapGeometry.h | 2 +- .../LSTCore/interface/EndcapGeometryBuffer.h | 8 +- RecoTracker/LSTCore/interface/LST.h | 50 +-- RecoTracker/LSTCore/interface/Module.h | 14 +- .../LSTCore/interface/ModuleConnectionMap.h | 2 +- RecoTracker/LSTCore/interface/PixelMap.h | 2 +- .../LSTCore/interface/TiltedGeometry.h | 4 +- RecoTracker/LSTCore/src/EndcapGeometry.cc | 2 +- RecoTracker/LSTCore/src/LSTESData.cc | 3 +- .../LSTCore/src/ModuleConnectionMap.cc | 2 +- RecoTracker/LSTCore/src/TiltedGeometry.cc | 4 +- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 38 +- RecoTracker/LSTCore/src/alpaka/Event.h | 43 +-- RecoTracker/LSTCore/src/alpaka/Hit.h | 92 +---- RecoTracker/LSTCore/src/alpaka/Kernels.h | 32 +- RecoTracker/LSTCore/src/alpaka/LST.dev.cc | 50 +-- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 197 +++++----- .../LSTCore/src/alpaka/NeuralNetwork.h | 10 +- RecoTracker/LSTCore/src/alpaka/ObjectRanges.h | 2 +- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 362 +++++++++--------- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 313 ++++++++------- RecoTracker/LSTCore/src/alpaka/Segment.h | 97 ++--- .../LSTCore/src/alpaka/TrackCandidate.h | 50 +-- RecoTracker/LSTCore/src/alpaka/Triplet.h | 139 ++++--- 30 files changed, 863 insertions(+), 815 deletions(-) create mode 100644 HeterogeneousCore/AlpakaInterface/interface/binarySearch.h create mode 100644 HeterogeneousCore/AlpakaInterface/interface/geomFunctions.h diff --git a/HeterogeneousCore/AlpakaInterface/interface/binarySearch.h b/HeterogeneousCore/AlpakaInterface/interface/binarySearch.h new file mode 100644 index 0000000000000..abf9b49f48496 --- /dev/null +++ b/HeterogeneousCore/AlpakaInterface/interface/binarySearch.h @@ -0,0 +1,29 @@ +#ifndef HeterogeneousCore_AlpakaInterface_interface_binarySearch_h +#define HeterogeneousCore_AlpakaInterface_interface_binarySearch_h + +namespace cms::alpakatools { + + ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE int binary_search(const unsigned int* data, // Array that we are searching over + const unsigned int search_val, // Value we want to find in data array + const unsigned int ndata) // Number of elements in data array + { + unsigned int low = 0; + unsigned int high = ndata - 1; + + while (low <= high) { + unsigned int mid = (low + high) / 2; + unsigned int test_val = data[mid]; + if (test_val == search_val) + return mid; + else if (test_val > search_val) + high = mid - 1; + else + low = mid + 1; + } + // Couldn't find search value in array. + return -1; + }; + +} // namespace cms::alpakatools + +#endif // HeterogeneousCore_AlpakaInterface_interface_binarySearch_h diff --git a/HeterogeneousCore/AlpakaInterface/interface/geomFunctions.h b/HeterogeneousCore/AlpakaInterface/interface/geomFunctions.h new file mode 100644 index 0000000000000..c1f83c4d2eeaf --- /dev/null +++ b/HeterogeneousCore/AlpakaInterface/interface/geomFunctions.h @@ -0,0 +1,57 @@ +#ifndef HeterogeneousCore_AlpakaInterface_interface_geomFunctions_h +#define HeterogeneousCore_AlpakaInterface_interface_geomFunctions_h + +namespace cms::alpakatools { + + template + ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float eta(TAcc const& acc, const float x, const float y, const float z) { + float r3 = alpaka::math::sqrt(acc, x * x + y * y + z * z); + float rt = alpaka::math::sqrt(acc, x * x + y * y); + float eta = ((z > 0) - (z < 0)) * alpaka::math::acosh(acc, r3 / rt); + return eta; + }; + + template + ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float phi_mpi_pi(TAcc const& acc, const float x) { + if (alpaka::math::abs(acc, x) <= float(M_PI)) + return x; + + constexpr float o2pi = 1.f / (2.f * float(M_PI)); + float n = alpaka::math::round(acc, x * o2pi); + return x - n * float(2.f * float(M_PI)); + }; + + template + ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float phi(TAcc const& acc, const float x, const float y) { + return phi_mpi_pi(acc, float(M_PI) + alpaka::math::atan2(acc, -y, -x)); + }; + + template + ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float deltaPhi(TAcc const& acc, const float x1, const float y1, const float x2, const float y2) { + float phi1 = phi(acc, x1, y1); + float phi2 = phi(acc, x2, y2); + return phi_mpi_pi(acc, (phi2 - phi1)); + }; + + template + ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float deltaPhiChange(TAcc const& acc, const float x1, const float y1, const float x2, const float y2) { + return deltaPhi(acc, x1, y1, x2 - x1, y2 - y1); + }; + + ALPAKA_FN_ACC ALPAKA_FN_INLINE float calculate_dPhi(const float phi1, const float phi2) { + // Calculate dPhi + float dPhi = phi1 - phi2; + + // Normalize dPhi to be between -pi and pi + if (dPhi > float(M_PI)) { + dPhi -= 2 * float(M_PI); + } else if (dPhi < -float(M_PI)) { + dPhi += 2 * float(M_PI); + } + + return dPhi; + }; + +} // namespace cms::alpakatools + +#endif // HeterogeneousCore_AlpakaInterface_interface_geomFunctions_h diff --git a/RecoTracker/LST/interface/LSTOutput.h b/RecoTracker/LST/interface/LSTOutput.h index 7a581cc3299f9..a337f107e35ba 100644 --- a/RecoTracker/LST/interface/LSTOutput.h +++ b/RecoTracker/LST/interface/LSTOutput.h @@ -7,10 +7,10 @@ class LSTOutput { public: LSTOutput() = default; - LSTOutput(std::vector> hitIdx, - std::vector len, - std::vector seedIdx, - std::vector trackCandidateType) { + LSTOutput(std::vector> const& hitIdx, + std::vector const& len, + std::vector const& seedIdx, + std::vector const& trackCandidateType) { hitIdx_ = std::move(hitIdx); len_ = std::move(len); seedIdx_ = std::move(seedIdx); @@ -21,9 +21,14 @@ class LSTOutput { enum LSTTCType { T5 = 4, pT3 = 5, pT5 = 7, pLS = 8 }; + // Hit indices of each of the LST track candidates. std::vector> const& hitIdx() const { return hitIdx_; } + // Number of hits of each of the LST track candidates. std::vector const& len() const { return len_; } + // Index of the pixel track associated to each of the LST track candidates. + // If not associated to a pixel track, which is the case for T5s, it defaults to -1. std::vector const& seedIdx() const { return seedIdx_; } + // LSTTCType as per the enum above. std::vector const& trackCandidateType() const { return trackCandidateType_; } private: diff --git a/RecoTracker/LST/interface/LSTPhase2OTHitsInput.h b/RecoTracker/LST/interface/LSTPhase2OTHitsInput.h index 6a65d09dd30d7..40b265db3edb7 100644 --- a/RecoTracker/LST/interface/LSTPhase2OTHitsInput.h +++ b/RecoTracker/LST/interface/LSTPhase2OTHitsInput.h @@ -9,11 +9,11 @@ class LSTPhase2OTHitsInput { public: LSTPhase2OTHitsInput() = default; - LSTPhase2OTHitsInput(std::vector detId, - std::vector x, - std::vector y, - std::vector z, - std::vector hits) { + LSTPhase2OTHitsInput(std::vector const& detId, + std::vector const& x, + std::vector const& y, + std::vector const& z, + std::vector const& hits) { detId_ = std::move(detId); x_ = std::move(x); y_ = std::move(y); diff --git a/RecoTracker/LST/interface/LSTPixelSeedInput.h b/RecoTracker/LST/interface/LSTPixelSeedInput.h index 69fa1ed0d4ece..2fb6a244a5648 100644 --- a/RecoTracker/LST/interface/LSTPixelSeedInput.h +++ b/RecoTracker/LST/interface/LSTPixelSeedInput.h @@ -7,21 +7,21 @@ class LSTPixelSeedInput { public: LSTPixelSeedInput() = default; - LSTPixelSeedInput(std::vector px, - std::vector py, - std::vector pz, - std::vector dxy, - std::vector dz, - std::vector ptErr, - std::vector etaErr, - std::vector stateTrajGlbX, - std::vector stateTrajGlbY, - std::vector stateTrajGlbZ, - std::vector stateTrajGlbPx, - std::vector stateTrajGlbPy, - std::vector stateTrajGlbPz, - std::vector q, - std::vector> hitIdx) { + LSTPixelSeedInput(std::vector const& px, + std::vector const& py, + std::vector const& pz, + std::vector const& dxy, + std::vector const& dz, + std::vector const& ptErr, + std::vector const& etaErr, + std::vector const& stateTrajGlbX, + std::vector const& stateTrajGlbY, + std::vector const& stateTrajGlbZ, + std::vector const& stateTrajGlbPx, + std::vector const& stateTrajGlbPy, + std::vector const& stateTrajGlbPz, + std::vector const& q, + std::vector> const& hitIdx) { px_ = std::move(px); py_ = std::move(py); pz_ = std::move(pz); diff --git a/RecoTracker/LST/plugins/LSTPhase2OTHitsInputProducer.cc b/RecoTracker/LST/plugins/LSTPhase2OTHitsInputProducer.cc index 02d6e76018cca..dd776814e286f 100644 --- a/RecoTracker/LST/plugins/LSTPhase2OTHitsInputProducer.cc +++ b/RecoTracker/LST/plugins/LSTPhase2OTHitsInputProducer.cc @@ -39,19 +39,26 @@ void LSTPhase2OTHitsInputProducer::produce(edm::StreamID iID, edm::Event& iEvent // Vector definitions std::vector ph2_detId; + ph2_detId.reserve(phase2OTHits.dataSize()); std::vector ph2_x; + ph2_x.reserve(phase2OTHits.dataSize()); std::vector ph2_y; + ph2_y.reserve(phase2OTHits.dataSize()); std::vector ph2_z; + ph2_z.reserve(phase2OTHits.dataSize()); std::vector ph2_hits; + ph2_hits.reserve(phase2OTHits.dataSize()); - for (auto it = phase2OTHits.begin(); it != phase2OTHits.end(); it++) { - const DetId hitId = it->detId(); - for (auto hit = it->begin(); hit != it->end(); hit++) { + for (auto const& it : phase2OTHits) { + //for (auto it = phase2OTHits.begin(); it != phase2OTHits.end(); it++) { + const DetId hitId = it.detId(); + for (auto const& hit : it) { + //for (auto hit = it->begin(); hit != it->end(); hit++) { ph2_detId.push_back(hitId.rawId()); - ph2_x.push_back(hit->globalPosition().x()); - ph2_y.push_back(hit->globalPosition().y()); - ph2_z.push_back(hit->globalPosition().z()); - ph2_hits.push_back(hit); + ph2_x.push_back(hit.globalPosition().x()); + ph2_y.push_back(hit.globalPosition().y()); + ph2_z.push_back(hit.globalPosition().z()); + ph2_hits.push_back(&hit); } } diff --git a/RecoTracker/LSTCore/interface/EndcapGeometry.h b/RecoTracker/LSTCore/interface/EndcapGeometry.h index 555955d83941c..12233e0b40cde 100644 --- a/RecoTracker/LSTCore/interface/EndcapGeometry.h +++ b/RecoTracker/LSTCore/interface/EndcapGeometry.h @@ -27,7 +27,7 @@ namespace lst { void load(std::string const&); void fillGeoMapArraysExplicit(); - float getdxdy_slope(unsigned int detid) const; + float getdxdy_slope(const unsigned int detid) const; }; } // namespace lst diff --git a/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h b/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h index 1f1333d89f002..54a78707c4aa9 100644 --- a/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h +++ b/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h @@ -18,7 +18,7 @@ namespace lst { const float* geoMapPhi; template - void setData(const TBuff& buf) { + void setData(TBuff const& buf) { geoMapDetId = alpaka::getPtrNative(buf.geoMapDetId_buf); geoMapPhi = alpaka::getPtrNative(buf.geoMapPhi_buf); } @@ -30,20 +30,20 @@ namespace lst { Buf geoMapPhi_buf; EndcapGeometryDev data_; - EndcapGeometryBuffer(TDev const& dev, unsigned int nEndCapMap) + EndcapGeometryBuffer(TDev const& dev, const unsigned int nEndCapMap) : geoMapDetId_buf(allocBufWrapper(dev, nEndCapMap)), geoMapPhi_buf(allocBufWrapper(dev, nEndCapMap)) { data_.setData(*this); } template - inline void copyFromSrc(TQueue queue, const EndcapGeometryBuffer& src) { + inline void copyFromSrc(TQueue queue, EndcapGeometryBuffer const& src) { alpaka::memcpy(queue, geoMapDetId_buf, src.geoMapDetId_buf); alpaka::memcpy(queue, geoMapPhi_buf, src.geoMapPhi_buf); } template - EndcapGeometryBuffer(TQueue queue, const EndcapGeometryBuffer& src, unsigned int nEndCapMap) + EndcapGeometryBuffer(TQueue queue, EndcapGeometryBuffer const& src, const unsigned int nEndCapMap) : EndcapGeometryBuffer(alpaka::getDev(queue), nEndCapMap) { copyFromSrc(queue, src); } diff --git a/RecoTracker/LSTCore/interface/LST.h b/RecoTracker/LSTCore/interface/LST.h index f5b32b295c17c..04dfc694eb80d 100644 --- a/RecoTracker/LSTCore/interface/LST.h +++ b/RecoTracker/LSTCore/interface/LST.h @@ -22,29 +22,29 @@ namespace lst { template void run(TQueue& 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); + const bool verbose, + LSTESData> const* deviceESData, + std::vector const& see_px, + std::vector const& see_py, + std::vector const& see_pz, + std::vector const& see_dxy, + std::vector const& see_dz, + std::vector const& see_ptErr, + std::vector const& see_etaErr, + std::vector const& see_stateTrajGlbX, + std::vector const& see_stateTrajGlbY, + std::vector const& see_stateTrajGlbZ, + std::vector const& see_stateTrajGlbPx, + std::vector const& see_stateTrajGlbPy, + std::vector const& see_stateTrajGlbPz, + std::vector const& see_q, + std::vector> const& see_hitIdx, + std::vector const& ph2_detId, + std::vector const& ph2_x, + std::vector const& ph2_y, + std::vector const& ph2_z, + const bool no_pls_dupclean, + const bool tc_pls_triplets); const std::vector>& hits() const { return out_tc_hitIdxs_; } const std::vector& len() const { return out_tc_len_; } const std::vector& seedIdx() const { return out_tc_seedIdx_; } @@ -74,8 +74,8 @@ namespace lst { void getOutput(lst::Event& event); std::vector getHitIdxs(const short trackCandidateType, const unsigned int TCIdx, - const unsigned int* TCHitIndices, - const unsigned int* hitIndices); + unsigned int const* TCHitIndices, + unsigned int const* hitIndices); // Input and output vectors std::vector in_trkX_; diff --git a/RecoTracker/LSTCore/interface/Module.h b/RecoTracker/LSTCore/interface/Module.h index c50e5c4c6c2a5..f9210e6578202 100644 --- a/RecoTracker/LSTCore/interface/Module.h +++ b/RecoTracker/LSTCore/interface/Module.h @@ -40,7 +40,7 @@ namespace lst { const int* sdlLayers; const unsigned int* connectedPixels; - static bool parseIsInverted(short subdet, short side, short module, short layer) { + static bool parseIsInverted(const short subdet, const short side, const short module, const short layer) { if (subdet == Endcap) { if (side == NegZ) { return module % 2 == 1; @@ -74,16 +74,16 @@ namespace lst { } }; - static bool parseIsLower(bool isInvertedx, unsigned int detId) { + static bool parseIsLower(const bool isInvertedx, const unsigned int detId) { return (isInvertedx) ? !(detId & 1) : (detId & 1); }; - static unsigned int parsePartnerModuleId(unsigned int detId, bool isLowerx, bool isInvertedx) { + static unsigned int parsePartnerModuleId(const unsigned int detId, const bool isLowerx, const bool isInvertedx) { return isLowerx ? (isInvertedx ? detId - 1 : detId + 1) : (isInvertedx ? detId + 1 : detId - 1); }; template - void setData(const TBuff& buf) { + void setData(TBuff const& buf) { detIds = alpaka::getPtrNative(buf.detIds_buf); moduleMap = alpaka::getPtrNative(buf.moduleMap_buf); mapdetId = alpaka::getPtrNative(buf.mapdetId_buf); @@ -144,7 +144,7 @@ namespace lst { Modules data_; - ModulesBuffer(TDev const& dev, unsigned int nMod, unsigned int nPixs) + ModulesBuffer(TDev const& dev, const unsigned int nMod, const unsigned int nPixs) : detIds_buf(allocBufWrapper(dev, nMod)), moduleMap_buf(allocBufWrapper(dev, nMod * max_connected_modules)), mapdetId_buf(allocBufWrapper(dev, nMod)), @@ -175,7 +175,7 @@ namespace lst { } template - inline void copyFromSrc(TQueue queue, const ModulesBuffer& src, bool isFull = true) { + inline void copyFromSrc(TQueue queue, ModulesBuffer const& src, const bool isFull = true) { alpaka::memcpy(queue, detIds_buf, src.detIds_buf); if (isFull) { alpaka::memcpy(queue, moduleMap_buf, src.moduleMap_buf); @@ -216,7 +216,7 @@ namespace lst { } template - ModulesBuffer(TQueue queue, const ModulesBuffer& src, unsigned int nMod, unsigned int nPixs) + ModulesBuffer(TQueue queue, ModulesBuffer const& src, const unsigned int nMod, const unsigned int nPixs) : ModulesBuffer(alpaka::getDev(queue), nMod, nPixs) { copyFromSrc(queue, src); } diff --git a/RecoTracker/LSTCore/interface/ModuleConnectionMap.h b/RecoTracker/LSTCore/interface/ModuleConnectionMap.h index b3a931345b3a5..b1482fd31cc12 100644 --- a/RecoTracker/LSTCore/interface/ModuleConnectionMap.h +++ b/RecoTracker/LSTCore/interface/ModuleConnectionMap.h @@ -22,7 +22,7 @@ namespace lst { void add(std::string const&); void print(); - const std::vector& getConnectedModuleDetIds(unsigned int detid) const; + const std::vector& getConnectedModuleDetIds(const unsigned int detid) const; int size() const; }; diff --git a/RecoTracker/LSTCore/interface/PixelMap.h b/RecoTracker/LSTCore/interface/PixelMap.h index 73d88bc64f7ec..7edbca0943fe8 100644 --- a/RecoTracker/LSTCore/interface/PixelMap.h +++ b/RecoTracker/LSTCore/interface/PixelMap.h @@ -19,7 +19,7 @@ namespace lst { int* pixelType; - PixelMap(unsigned int sizef = size_superbins) + PixelMap(const unsigned int sizef = size_superbins) : pixelModuleIndex(0), connectedPixelsIndex(sizef), connectedPixelsSizes(sizef), diff --git a/RecoTracker/LSTCore/interface/TiltedGeometry.h b/RecoTracker/LSTCore/interface/TiltedGeometry.h index b70a1d95a357b..37012f6465597 100644 --- a/RecoTracker/LSTCore/interface/TiltedGeometry.h +++ b/RecoTracker/LSTCore/interface/TiltedGeometry.h @@ -22,8 +22,8 @@ namespace lst { void load(std::string const&); - float getDrDz(unsigned int detid) const; - float getDxDy(unsigned int detid) const; + float getDrDz(const unsigned int detid) const; + float getDxDy(const unsigned int detid) const; }; } // namespace lst diff --git a/RecoTracker/LSTCore/src/EndcapGeometry.cc b/RecoTracker/LSTCore/src/EndcapGeometry.cc index a95e8c34de248..028be82183837 100644 --- a/RecoTracker/LSTCore/src/EndcapGeometry.cc +++ b/RecoTracker/LSTCore/src/EndcapGeometry.cc @@ -48,7 +48,7 @@ void lst::EndcapGeometry::fillGeoMapArraysExplicit() { } } -float lst::EndcapGeometry::getdxdy_slope(unsigned int detid) const { +float lst::EndcapGeometry::getdxdy_slope(const unsigned int detid) const { if (dxdy_slope_.find(detid) != dxdy_slope_.end()) { return dxdy_slope_.at(detid); } else { diff --git a/RecoTracker/LSTCore/src/LSTESData.cc b/RecoTracker/LSTCore/src/LSTESData.cc index c4a255f61f8cc..482d97d34249c 100644 --- a/RecoTracker/LSTCore/src/LSTESData.cc +++ b/RecoTracker/LSTCore/src/LSTESData.cc @@ -33,8 +33,7 @@ namespace { std::string get_absolute_path_after_check_file_exists(std::string const& name) { std::filesystem::path fullpath = std::filesystem::absolute(name.c_str()); if (not std::filesystem::exists(fullpath)) { - std::cout << "ERROR: Could not find the file = " << fullpath << std::endl; - exit(2); + throw std::runtime_error("Could not find the file = " + fullpath.string()); } return fullpath.string(); } diff --git a/RecoTracker/LSTCore/src/ModuleConnectionMap.cc b/RecoTracker/LSTCore/src/ModuleConnectionMap.cc index 732b8e155fb4e..1f10bed091a27 100644 --- a/RecoTracker/LSTCore/src/ModuleConnectionMap.cc +++ b/RecoTracker/LSTCore/src/ModuleConnectionMap.cc @@ -93,7 +93,7 @@ void lst::ModuleConnectionMap::print() { } } -const std::vector& lst::ModuleConnectionMap::getConnectedModuleDetIds(unsigned int detid) const { +const std::vector& lst::ModuleConnectionMap::getConnectedModuleDetIds(const unsigned int detid) const { static const std::vector dummy; auto const mList = moduleConnections_.find(detid); return mList != moduleConnections_.end() ? mList->second : dummy; diff --git a/RecoTracker/LSTCore/src/TiltedGeometry.cc b/RecoTracker/LSTCore/src/TiltedGeometry.cc index 96db807240f69..f537cb93222b1 100644 --- a/RecoTracker/LSTCore/src/TiltedGeometry.cc +++ b/RecoTracker/LSTCore/src/TiltedGeometry.cc @@ -32,7 +32,7 @@ void lst::TiltedGeometry::load(std::string const& filename) { } } -float lst::TiltedGeometry::getDrDz(unsigned int detid) const { +float lst::TiltedGeometry::getDrDz(const unsigned int detid) const { if (drdzs_.find(detid) != drdzs_.end()) { return drdzs_.at(detid); } else { @@ -40,7 +40,7 @@ float lst::TiltedGeometry::getDrDz(unsigned int detid) const { } } -float lst::TiltedGeometry::getDxDy(unsigned int detid) const { +float lst::TiltedGeometry::getDxDy(const unsigned int detid) const { if (dxdys_.find(detid) != dxdys_.end()) { return dxdys_.at(detid); } else { diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index b2fa20e03fae9..38a1a5586751f 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 lst::Event::init(bool verbose) { +void lst::Event::init(const bool verbose) { addObjects = verbose; hitsInGPU = nullptr; mdsInGPU = nullptr; @@ -622,7 +622,7 @@ void lst::Event::createTriplets() { } } -void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_triplets) { +void lst::Event::createTrackCandidates(const bool no_pls_dupclean, const bool tc_pls_triplets) { if (trackCandidatesInGPU == nullptr) { trackCandidatesInGPU = new lst::TrackCandidates(); trackCandidatesBuffers = new lst::TrackCandidatesBuffer( @@ -996,7 +996,7 @@ void lst::Event::createQuintuplets() { } } -void lst::Event::pixelLineSegmentCleaning(bool no_pls_dupclean) { +void lst::Event::pixelLineSegmentCleaning(const 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); @@ -1278,18 +1278,18 @@ unsigned int lst::Event::getNumberOfHits() { return hits; } -unsigned int lst::Event::getNumberOfHitsByLayer(unsigned int layer) { +unsigned int lst::Event::getNumberOfHitsByLayer(const 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 lst::Event::getNumberOfHitsByLayerBarrel(unsigned int layer) { +unsigned int lst::Event::getNumberOfHitsByLayerBarrel(const unsigned int layer) { return n_hits_by_layer_barrel_[layer]; } -unsigned int lst::Event::getNumberOfHitsByLayerEndcap(unsigned int layer) { +unsigned int lst::Event::getNumberOfHitsByLayerEndcap(const unsigned int layer) { return n_hits_by_layer_endcap_[layer]; } @@ -1305,18 +1305,18 @@ unsigned int lst::Event::getNumberOfMiniDoublets() { return miniDoublets; } -unsigned int lst::Event::getNumberOfMiniDoubletsByLayer(unsigned int layer) { +unsigned int lst::Event::getNumberOfMiniDoubletsByLayer(const 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 lst::Event::getNumberOfMiniDoubletsByLayerBarrel(unsigned int layer) { +unsigned int lst::Event::getNumberOfMiniDoubletsByLayerBarrel(const unsigned int layer) { return n_minidoublets_by_layer_barrel_[layer]; } -unsigned int lst::Event::getNumberOfMiniDoubletsByLayerEndcap(unsigned int layer) { +unsigned int lst::Event::getNumberOfMiniDoubletsByLayerEndcap(const unsigned int layer) { return n_minidoublets_by_layer_endcap_[layer]; } @@ -1332,18 +1332,18 @@ unsigned int lst::Event::getNumberOfSegments() { return segments; } -unsigned int lst::Event::getNumberOfSegmentsByLayer(unsigned int layer) { +unsigned int lst::Event::getNumberOfSegmentsByLayer(const 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 lst::Event::getNumberOfSegmentsByLayerBarrel(unsigned int layer) { +unsigned int lst::Event::getNumberOfSegmentsByLayerBarrel(const unsigned int layer) { return n_segments_by_layer_barrel_[layer]; } -unsigned int lst::Event::getNumberOfSegmentsByLayerEndcap(unsigned int layer) { +unsigned int lst::Event::getNumberOfSegmentsByLayerEndcap(const unsigned int layer) { return n_segments_by_layer_endcap_[layer]; } @@ -1359,18 +1359,18 @@ unsigned int lst::Event::getNumberOfTriplets() { return triplets; } -unsigned int lst::Event::getNumberOfTripletsByLayer(unsigned int layer) { +unsigned int lst::Event::getNumberOfTripletsByLayer(const 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 lst::Event::getNumberOfTripletsByLayerBarrel(unsigned int layer) { +unsigned int lst::Event::getNumberOfTripletsByLayerBarrel(const unsigned int layer) { return n_triplets_by_layer_barrel_[layer]; } -unsigned int lst::Event::getNumberOfTripletsByLayerEndcap(unsigned int layer) { +unsigned int lst::Event::getNumberOfTripletsByLayerEndcap(const unsigned int layer) { return n_triplets_by_layer_endcap_[layer]; } @@ -1408,18 +1408,18 @@ unsigned int lst::Event::getNumberOfQuintuplets() { return quintuplets; } -unsigned int lst::Event::getNumberOfQuintupletsByLayer(unsigned int layer) { +unsigned int lst::Event::getNumberOfQuintupletsByLayer(const 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 lst::Event::getNumberOfQuintupletsByLayerBarrel(unsigned int layer) { +unsigned int lst::Event::getNumberOfQuintupletsByLayerBarrel(const unsigned int layer) { return n_quintuplets_by_layer_barrel_[layer]; } -unsigned int lst::Event::getNumberOfQuintupletsByLayerEndcap(unsigned int layer) { +unsigned int lst::Event::getNumberOfQuintupletsByLayerEndcap(const unsigned int layer) { return n_quintuplets_by_layer_endcap_[layer]; } @@ -1818,7 +1818,7 @@ lst::TrackCandidatesBuffer* lst::Event::getTrackCandidatesInCMSS return trackCandidatesInCPU; } -lst::ModulesBuffer* lst::Event::getModules(bool isFull) { +lst::ModulesBuffer* lst::Event::getModules(const bool isFull) { if (modulesInCPU == nullptr) { // The last input here is just a small placeholder for the allocation. modulesInCPU = new lst::ModulesBuffer(devHost, nModules_, nPixels_); diff --git a/RecoTracker/LSTCore/src/alpaka/Event.h b/RecoTracker/LSTCore/src/alpaka/Event.h index e947d40dd0d56..e978a5ac5ecec 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.h +++ b/RecoTracker/LSTCore/src/alpaka/Event.h @@ -82,7 +82,6 @@ namespace lst { int* superbinCPU; int8_t* pixelTypeCPU; - // Stuff that used to be global const uint16_t nModules_; const uint16_t nLowerModules_; const unsigned int nPixels_; @@ -94,7 +93,7 @@ namespace lst { public: // Constructor used for CMSSW integration. Uses an external queue. template - Event(bool verbose, TQueue const& q, const LSTESData* deviceESData) + Event(const bool verbose, TQueue const& q, const LSTESData* deviceESData) : queue(q), devAcc(alpaka::getDev(q)), devHost(cms::alpakatools::host()), @@ -109,12 +108,12 @@ namespace lst { } void resetEvent(); + // Calls the appropriate hit function, then increments the counter void addHitToEvent(std::vector const& x, std::vector const& y, std::vector const& z, std::vector const& detId, - std::vector const& - idxInNtuple); //call the appropriate hit function, then increment the counter here + std::vector const& idxInNtuple); void addPixelSegmentToEvent(std::vector const& hitIndices0, std::vector const& hitIndices1, std::vector const& hitIndices2, @@ -146,32 +145,32 @@ namespace lst { void createTriplets(); void createPixelTracklets(); void createPixelTrackletsWithMap(); - void createTrackCandidates(bool no_pls_dupclean, bool tc_pls_triplets); + void createTrackCandidates(const bool no_pls_dupclean, const bool tc_pls_triplets); void createExtendedTracks(); void createQuintuplets(); void createPixelTriplets(); void createPixelQuintuplets(); - void pixelLineSegmentCleaning(bool no_pls_dupclean); + void pixelLineSegmentCleaning(const bool no_pls_dupclean); unsigned int getNumberOfHits(); - unsigned int getNumberOfHitsByLayer(unsigned int layer); - unsigned int getNumberOfHitsByLayerBarrel(unsigned int layer); - unsigned int getNumberOfHitsByLayerEndcap(unsigned int layer); + unsigned int getNumberOfHitsByLayer(const unsigned int layer); + unsigned int getNumberOfHitsByLayerBarrel(const unsigned int layer); + unsigned int getNumberOfHitsByLayerEndcap(const unsigned int layer); unsigned int getNumberOfMiniDoublets(); - unsigned int getNumberOfMiniDoubletsByLayer(unsigned int layer); - unsigned int getNumberOfMiniDoubletsByLayerBarrel(unsigned int layer); - unsigned int getNumberOfMiniDoubletsByLayerEndcap(unsigned int layer); + unsigned int getNumberOfMiniDoubletsByLayer(const unsigned int layer); + unsigned int getNumberOfMiniDoubletsByLayerBarrel(const unsigned int layer); + unsigned int getNumberOfMiniDoubletsByLayerEndcap(const unsigned int layer); unsigned int getNumberOfSegments(); - unsigned int getNumberOfSegmentsByLayer(unsigned int layer); - unsigned int getNumberOfSegmentsByLayerBarrel(unsigned int layer); - unsigned int getNumberOfSegmentsByLayerEndcap(unsigned int layer); + unsigned int getNumberOfSegmentsByLayer(const unsigned int layer); + unsigned int getNumberOfSegmentsByLayerBarrel(const unsigned int layer); + unsigned int getNumberOfSegmentsByLayerEndcap(const unsigned int layer); unsigned int getNumberOfTriplets(); - unsigned int getNumberOfTripletsByLayer(unsigned int layer); - unsigned int getNumberOfTripletsByLayerBarrel(unsigned int layer); - unsigned int getNumberOfTripletsByLayerEndcap(unsigned int layer); + unsigned int getNumberOfTripletsByLayer(const unsigned int layer); + unsigned int getNumberOfTripletsByLayerBarrel(const unsigned int layer); + unsigned int getNumberOfTripletsByLayerEndcap(const unsigned int layer); int getNumberOfTrackCandidates(); int getNumberOfPixelTrackCandidates(); @@ -181,9 +180,9 @@ namespace lst { int getNumberOfPLSTrackCandidates(); unsigned int getNumberOfQuintuplets(); - unsigned int getNumberOfQuintupletsByLayer(unsigned int layer); - unsigned int getNumberOfQuintupletsByLayerBarrel(unsigned int layer); - unsigned int getNumberOfQuintupletsByLayerEndcap(unsigned int layer); + unsigned int getNumberOfQuintupletsByLayer(const unsigned int layer); + unsigned int getNumberOfQuintupletsByLayerBarrel(const unsigned int layer); + unsigned int getNumberOfQuintupletsByLayerEndcap(const unsigned int layer); int getNumberOfPixelTriplets(); int getNumberOfPixelQuintuplets(); @@ -199,7 +198,7 @@ namespace lst { TrackCandidatesBuffer* getTrackCandidatesInCMSSW(); PixelTripletsBuffer* getPixelTriplets(); PixelQuintupletsBuffer* getPixelQuintuplets(); - ModulesBuffer* getModules(bool isFull = false); + ModulesBuffer* getModules(const bool isFull = false); }; } // namespace lst diff --git a/RecoTracker/LSTCore/src/alpaka/Hit.h b/RecoTracker/LSTCore/src/alpaka/Hit.h index 7cca2a2fc5f30..8084aef169f8b 100644 --- a/RecoTracker/LSTCore/src/alpaka/Hit.h +++ b/RecoTracker/LSTCore/src/alpaka/Hit.h @@ -1,6 +1,8 @@ #ifndef RecoTracker_LSTCore_src_alpaka_Hit_h #define RecoTracker_LSTCore_src_alpaka_Hit_h +#include "HeterogeneousCore/AlpakaInterface/interface/binarySearch.h" +#include "HeterogeneousCore/AlpakaInterface/interface/geomFunctions.h" #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" @@ -75,7 +77,7 @@ namespace lst { Hits data_; template - HitsBuffer(unsigned int nModules, unsigned int nMaxHits, TDevAcc const& devAccIn, TQueue& queue) + HitsBuffer(const unsigned int nModules, const unsigned int nMaxHits, TDevAcc const& devAccIn, TQueue& queue) : nHits_buf(allocBufWrapper(devAccIn, 1u, queue)), xs_buf(allocBufWrapper(devAccIn, nMaxHits, queue)), ys_buf(allocBufWrapper(devAccIn, nMaxHits, queue)), @@ -107,82 +109,12 @@ namespace lst { inline void setData(HitsBuffer& buf) { data_.setData(buf); } }; - template - ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float eta(TAcc const& acc, float x, float y, float z) { - float r3 = alpaka::math::sqrt(acc, x * x + y * y + z * z); - float rt = alpaka::math::sqrt(acc, x * x + y * y); - float eta = ((z > 0) - (z < 0)) * alpaka::math::acosh(acc, r3 / rt); - return eta; - }; - - template - ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float phi_mpi_pi(TAcc const& acc, float x) { - if (alpaka::math::abs(acc, x) <= float(M_PI)) - return x; - - constexpr float o2pi = 1.f / (2.f * float(M_PI)); - float n = alpaka::math::round(acc, x * o2pi); - return x - n * float(2.f * float(M_PI)); - }; - - template - ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float phi(TAcc const& acc, float x, float y) { - return phi_mpi_pi(acc, float(M_PI) + alpaka::math::atan2(acc, -y, -x)); - }; - - template - ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float deltaPhi(TAcc const& acc, float x1, float y1, float x2, float y2) { - float phi1 = phi(acc, x1, y1); - float phi2 = phi(acc, x2, y2); - return phi_mpi_pi(acc, (phi2 - phi1)); - }; - - template - ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float deltaPhiChange(TAcc const& acc, float x1, float y1, float x2, float y2) { - return deltaPhi(acc, x1, y1, x2 - x1, y2 - y1); - }; - - ALPAKA_FN_ACC ALPAKA_FN_INLINE float calculate_dPhi(float phi1, float phi2) { - // Calculate dPhi - float dPhi = phi1 - phi2; - - // Normalize dPhi to be between -pi and pi - if (dPhi > float(M_PI)) { - dPhi -= 2 * float(M_PI); - } else if (dPhi < -float(M_PI)) { - dPhi += 2 * float(M_PI); - } - - return dPhi; - }; - - ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE int binary_search(const unsigned int* data, // Array that we are searching over - unsigned int search_val, // Value we want to find in data array - unsigned int ndata) // Number of elements in data array - { - unsigned int low = 0; - unsigned int high = ndata - 1; - - while (low <= high) { - unsigned int mid = (low + high) / 2; - unsigned int test_val = data[mid]; - if (test_val == search_val) - return mid; - else if (test_val > search_val) - high = mid - 1; - else - low = mid + 1; - } - // Couldn't find search value in array. - return -1; - }; - struct moduleRangesKernel { template ALPAKA_FN_ACC void operator()(TAcc const& acc, struct lst::Modules modulesInGPU, struct lst::Hits hitsInGPU, - int const& nLowerModules) const { + const int nLowerModules) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -203,15 +135,15 @@ namespace lst { struct hitLoopKernel { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - uint16_t Endcap, // Integer corresponding to endcap in module subdets - uint16_t TwoS, // Integer corresponding to TwoS in moduleType - unsigned int nModules, // Number of modules - unsigned int nEndCapMap, // Number of elements in endcap map + const uint16_t Endcap, // Integer corresponding to endcap in module subdets + const uint16_t TwoS, // Integer corresponding to TwoS in moduleType + const unsigned int nModules, // Number of modules + const unsigned int nEndCapMap, // Number of elements in endcap map const unsigned int* geoMapDetId, // DetId's from endcap map const float* geoMapPhi, // Phi values from endcap map struct lst::Modules modulesInGPU, struct lst::Hits hitsInGPU, - unsigned int const& nHits) const // Total number of hits in event + const unsigned int nHits) const // Total number of hits in event { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -222,19 +154,19 @@ namespace lst { int iDetId = hitsInGPU.detid[ihit]; hitsInGPU.rts[ihit] = alpaka::math::sqrt(acc, ihit_x * ihit_x + ihit_y * ihit_y); - hitsInGPU.phis[ihit] = lst::phi(acc, ihit_x, ihit_y); + hitsInGPU.phis[ihit] = cms::alpakatools::phi(acc, ihit_x, ihit_y); hitsInGPU.etas[ihit] = ((ihit_z > 0) - (ihit_z < 0)) * alpaka::math::acosh( acc, alpaka::math::sqrt(acc, ihit_x * ihit_x + ihit_y * ihit_y + ihit_z * ihit_z) / hitsInGPU.rts[ihit]); - int found_index = binary_search(modulesInGPU.mapdetId, iDetId, nModules); + int found_index = cms::alpakatools::binary_search(modulesInGPU.mapdetId, iDetId, nModules); uint16_t lastModuleIndex = modulesInGPU.mapIdx[found_index]; hitsInGPU.moduleIndices[ihit] = lastModuleIndex; if (modulesInGPU.subdets[lastModuleIndex] == Endcap && modulesInGPU.moduleType[lastModuleIndex] == TwoS) { - found_index = binary_search(geoMapDetId, iDetId, nEndCapMap); + found_index = cms::alpakatools::binary_search(geoMapDetId, iDetId, nEndCapMap); float phi = geoMapPhi[found_index]; float cos_phi = alpaka::math::cos(acc, phi); hitsInGPU.highEdgeXs[ihit] = ihit_x + 2.5f * cos_phi; diff --git a/RecoTracker/LSTCore/src/alpaka/Kernels.h b/RecoTracker/LSTCore/src/alpaka/Kernels.h index b95d4ce24055f..591567d258e3c 100644 --- a/RecoTracker/LSTCore/src/alpaka/Kernels.h +++ b/RecoTracker/LSTCore/src/alpaka/Kernels.h @@ -14,29 +14,29 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmQuintupletFromMemory(struct lst::Quintuplets& quintupletsInGPU, - unsigned int quintupletIndex, - bool secondpass = false) { + const unsigned int quintupletIndex, + const bool secondpass = false) { quintupletsInGPU.isDup[quintupletIndex] |= 1 + secondpass; }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelTripletFromMemory(struct lst::PixelTriplets& pixelTripletsInGPU, - unsigned int pixelTripletIndex) { + const unsigned int pixelTripletIndex) { pixelTripletsInGPU.isDup[pixelTripletIndex] = true; }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelQuintupletFromMemory(struct lst::PixelQuintuplets& pixelQuintupletsInGPU, - unsigned int pixelQuintupletIndex) { + const unsigned int pixelQuintupletIndex) { pixelQuintupletsInGPU.isDup[pixelQuintupletIndex] = true; }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelSegmentFromMemory(struct lst::Segments& segmentsInGPU, - unsigned int pixelSegmentArrayIndex, - bool secondpass = false) { + const unsigned int pixelSegmentArrayIndex, + const bool secondpass = false) { segmentsInGPU.isDup[pixelSegmentArrayIndex] |= 1 + secondpass; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitsT5(unsigned int ix, - unsigned int jx, + ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitsT5(const unsigned int ix, + const unsigned int jx, struct lst::Quintuplets& quintupletsInGPU) { unsigned int hits1[Params_T5::kHits]; unsigned int hits2[Params_T5::kHits]; @@ -62,8 +62,8 @@ namespace lst { return nMatched; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitspT5(unsigned int ix, - unsigned int jx, + ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitspT5(const unsigned int ix, + const unsigned int jx, struct lst::PixelQuintuplets& pixelQuintupletsInGPU) { unsigned int hits1[Params_pT5::kHits]; unsigned int hits2[Params_pT5::kHits]; @@ -89,8 +89,8 @@ namespace lst { return nMatched; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void checkHitspT3(unsigned int ix, - unsigned int jx, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void checkHitspT3(const unsigned int ix, + const unsigned int jx, struct lst::PixelTriplets& pixelTripletsInGPU, int* matched) { int phits1[Params_pLS::kHits]; @@ -167,7 +167,7 @@ namespace lst { float eta2 = __H2F(quintupletsInGPU.eta[jx]); float phi2 = __H2F(quintupletsInGPU.phi[jx]); float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = lst::calculate_dPhi(phi1, phi2); + float dPhi = cms::alpakatools::calculate_dPhi(phi1, phi2); float score_rphisum2 = __H2F(quintupletsInGPU.score_rphisum[jx]); if (dEta > 0.1f) @@ -239,7 +239,7 @@ namespace lst { float score_rphisum2 = __H2F(quintupletsInGPU.score_rphisum[jx]); float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = lst::calculate_dPhi(phi1, phi2); + float dPhi = cms::alpakatools::calculate_dPhi(phi1, phi2); if (dEta > 0.1f) continue; @@ -335,7 +335,7 @@ namespace lst { ALPAKA_FN_ACC void operator()(TAcc const& acc, struct lst::Modules modulesInGPU, struct lst::Segments segmentsInGPU, - bool secondpass) const { + const bool secondpass) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -410,7 +410,7 @@ namespace lst { } if (secondpass) { float dEta = alpaka::math::abs(acc, eta_pix1 - eta_pix2); - float dPhi = lst::calculate_dPhi(phi_pix1, phi_pix2); + float dPhi = cms::alpakatools::calculate_dPhi(phi_pix1, phi_pix2); float dR2 = dEta * dEta + dPhi * dPhi; if ((npMatched >= 1) || (dR2 < 1e-5f)) { diff --git a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc index 6c3f2f5f34945..64c2a505239a9 100644 --- a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc @@ -215,8 +215,8 @@ void lst::LST::prepareInput(std::vector const& see_px, template <> std::vector lst::LST::getHitIdxs(const short trackCandidateType, const unsigned int TCIdx, - const unsigned int* TCHitIndices, - const unsigned int* hitIndices) { + unsigned int const* TCHitIndices, + unsigned int const* hitIndices) { std::vector hits; unsigned int maxNHits = 0; @@ -279,29 +279,29 @@ void lst::LST::getOutput(lst::Event& event) { template <> template <> void lst::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) { + const bool verbose, + LSTESData const* deviceESData, + std::vector const& see_px, + std::vector const& see_py, + std::vector const& see_pz, + std::vector const& see_dxy, + std::vector const& see_dz, + std::vector const& see_ptErr, + std::vector const& see_etaErr, + std::vector const& see_stateTrajGlbX, + std::vector const& see_stateTrajGlbY, + std::vector const& see_stateTrajGlbZ, + std::vector const& see_stateTrajGlbPx, + std::vector const& see_stateTrajGlbPy, + std::vector const& see_stateTrajGlbPz, + std::vector const& see_q, + std::vector> const& see_hitIdx, + std::vector const& ph2_detId, + std::vector const& ph2_x, + std::vector const& ph2_y, + std::vector const& ph2_z, + const bool no_pls_dupclean, + const bool tc_pls_triplets) { auto event = lst::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 02ac92ebc841b..9ef128f0f7c67 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -25,7 +25,6 @@ namespace lst { float* shiftedXs; float* shiftedYs; float* shiftedZs; - float* noShiftedDzs; //if shifted module float* noShiftedDphis; //if shifted module float* noShiftedDphiChanges; //if shifted module @@ -67,7 +66,6 @@ namespace lst { shiftedXs = alpaka::getPtrNative(buf.shiftedXs_buf); shiftedYs = alpaka::getPtrNative(buf.shiftedYs_buf); shiftedZs = alpaka::getPtrNative(buf.shiftedZs_buf); - noShiftedDzs = alpaka::getPtrNative(buf.noShiftedDzs_buf); noShiftedDphis = alpaka::getPtrNative(buf.noShiftedDphis_buf); noShiftedDphiChanges = alpaka::getPtrNative(buf.noShiftedDphiChanges_buf); anchorX = alpaka::getPtrNative(buf.anchorX_buf); @@ -112,7 +110,6 @@ namespace lst { Buf shiftedXs_buf; Buf shiftedYs_buf; Buf shiftedZs_buf; - Buf noShiftedDzs_buf; Buf noShiftedDphis_buf; Buf noShiftedDphiChanges_buf; @@ -143,7 +140,10 @@ namespace lst { MiniDoublets data_; template - MiniDoubletsBuffer(unsigned int nMemoryLoc, uint16_t nLowerModules, TDevAcc const& devAccIn, TQueue& queue) + MiniDoubletsBuffer(const unsigned int nMemoryLoc, + const uint16_t nLowerModules, + TDevAcc const& devAccIn, + TQueue& queue) : nMemoryLocations_buf(allocBufWrapper(devAccIn, 1, queue)), anchorHitIndices_buf(allocBufWrapper(devAccIn, nMemoryLoc, queue)), outerHitIndices_buf(allocBufWrapper(devAccIn, nMemoryLoc, queue)), @@ -156,7 +156,6 @@ namespace lst { shiftedXs_buf(allocBufWrapper(devAccIn, nMemoryLoc, queue)), shiftedYs_buf(allocBufWrapper(devAccIn, nMemoryLoc, queue)), shiftedZs_buf(allocBufWrapper(devAccIn, nMemoryLoc, queue)), - noShiftedDzs_buf(allocBufWrapper(devAccIn, nMemoryLoc, queue)), noShiftedDphis_buf(allocBufWrapper(devAccIn, nMemoryLoc, queue)), noShiftedDphiChanges_buf(allocBufWrapper(devAccIn, nMemoryLoc, queue)), anchorX_buf(allocBufWrapper(devAccIn, nMemoryLoc, queue)), @@ -195,19 +194,18 @@ namespace lst { struct lst::MiniDoublets& mdsInGPU, struct lst::Hits& hitsInGPU, struct lst::Modules& modulesInGPU, - unsigned int lowerHitIdx, - unsigned int upperHitIdx, - uint16_t& lowerModuleIdx, - float dz, - float dPhi, - float dPhiChange, - float shiftedX, - float shiftedY, - float shiftedZ, - float noShiftedDz, - float noShiftedDphi, - float noShiftedDPhiChange, - unsigned int idx) { + const unsigned int lowerHitIdx, + const unsigned int upperHitIdx, + const uint16_t& lowerModuleIdx, + const float dz, + const float dPhi, + const float dPhiChange, + const float shiftedX, + const float shiftedY, + const float shiftedZ, + const float noShiftedDphi, + const float noShiftedDPhiChange, + const unsigned int idx) { //the index into which this MD needs to be written will be computed in the kernel //nMDs variable will be incremented in the kernel, no need to worry about that here @@ -235,7 +233,6 @@ namespace lst { mdsInGPU.shiftedYs[idx] = shiftedY; mdsInGPU.shiftedZs[idx] = shiftedZ; - mdsInGPU.noShiftedDzs[idx] = noShiftedDz; mdsInGPU.noShiftedDphis[idx] = noShiftedDphi; mdsInGPU.noShiftedDphiChanges[idx] = noShiftedDPhiChange; @@ -267,7 +264,7 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules(struct lst::Modules& modulesInGPU, - uint16_t& moduleIndex) { + const uint16_t moduleIndex) { // The "tighter" tilted modules are the subset of tilted modules that have smaller spacing // This is the same as what was previously considered as"isNormalTiltedModules" // See Figure 9.1 of https://cds.cern.ch/record/2272264/files/CMS-TDR-014.pdf @@ -287,7 +284,7 @@ namespace lst { return false; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize(struct lst::Modules& modulesInGPU, uint16_t& moduleIndex) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize(struct lst::Modules& modulesInGPU, const uint16_t moduleIndex) { float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; @@ -340,11 +337,11 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float dPhiThreshold(TAcc const& acc, - float rt, + const float rt, struct lst::Modules& modulesInGPU, - uint16_t& moduleIndex, - float dPhi = 0, - float dz = 0) { + const uint16_t moduleIndex, + const float dPhi = 0, + const float dz = 0) { // ================================================================= // Various constants // ================================================================= @@ -404,19 +401,19 @@ namespace lst { template ALPAKA_FN_INLINE ALPAKA_FN_ACC void shiftStripHits(TAcc const& acc, struct lst::Modules& modulesInGPU, - uint16_t& lowerModuleIndex, - uint16_t& upperModuleIndex, - unsigned int lowerHitIndex, - unsigned int upperHitIndex, + const uint16_t lowerModuleIndex, + const uint16_t upperModuleIndex, + const unsigned int lowerHitIndex, + const unsigned int upperHitIndex, float* shiftedCoords, - float xLower, - float yLower, - float zLower, - float rtLower, - float xUpper, - float yUpper, - float zUpper, - float rtUpper) { + const float xLower, + const float yLower, + const float zLower, + const float rtLower, + const float xUpper, + const float yUpper, + const float zUpper, + const float rtUpper) { // This is the strip shift scheme that is explained in http://uaf-10.t2.ucsd.edu/~phchang/talks/PhilipChang20190607_SDL_Update.pdf (see backup slides) // The main feature of this shifting is that the strip hits are shifted to be "aligned" in the line of sight from interaction point to the the pixel hit. // (since pixel hit is well defined in 3-d) @@ -570,27 +567,26 @@ namespace lst { template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgo(TAcc const& acc, struct lst::Modules& modulesInGPU, - uint16_t& lowerModuleIndex, - uint16_t& upperModuleIndex, - unsigned int lowerHitIndex, - unsigned int upperHitIndex, + const uint16_t lowerModuleIndex, + const uint16_t upperModuleIndex, + const unsigned int lowerHitIndex, + const unsigned int upperHitIndex, float& dz, float& dPhi, float& dPhiChange, float& shiftedX, float& shiftedY, float& shiftedZ, - float& noShiftedDz, float& noShiftedDphi, float& noShiftedDphiChange, - float xLower, - float yLower, - float zLower, - float rtLower, - float xUpper, - float yUpper, - float zUpper, - float rtUpper) { + const float xLower, + const float yLower, + const float zLower, + const float rtLower, + const float xUpper, + const float yUpper, + const float zUpper, + const float rtUpper) { if (modulesInGPU.subdets[lowerModuleIndex] == lst::Barrel) { return runMiniDoubletDefaultAlgoBarrel(acc, modulesInGPU, @@ -604,7 +600,6 @@ namespace lst { shiftedX, shiftedY, shiftedZ, - noShiftedDz, noShiftedDphi, noShiftedDphiChange, xLower, @@ -628,7 +623,6 @@ namespace lst { shiftedX, shiftedY, shiftedZ, - noShiftedDz, noShiftedDphi, noShiftedDphiChange, xLower, @@ -645,27 +639,26 @@ namespace lst { template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgoBarrel(TAcc const& acc, struct lst::Modules& modulesInGPU, - uint16_t& lowerModuleIndex, - uint16_t& upperModuleIndex, - unsigned int lowerHitIndex, - unsigned int upperHitIndex, + const uint16_t lowerModuleIndex, + const uint16_t upperModuleIndex, + const unsigned int lowerHitIndex, + const unsigned int upperHitIndex, float& dz, float& dPhi, float& dPhiChange, float& shiftedX, float& shiftedY, float& shiftedZ, - float& noShiftedDz, float& noShiftedDphi, float& noShiftedDphiChange, - float xLower, - float yLower, - float zLower, - float rtLower, - float xUpper, - float yUpper, - float zUpper, - float rtUpper) { + const float xLower, + const float yLower, + const float zLower, + const float rtLower, + const float xUpper, + const float yUpper, + const float zUpper, + const float rtUpper) { dz = zLower - zUpper; const float dzCut = modulesInGPU.moduleType[lowerModuleIndex] == lst::PS ? 2.f : 10.f; //const float sign = ((dz > 0) - (dz < 0)) * ((hitsInGPU.zs[lowerHitIndex] > 0) - (hitsInGPU.zs[lowerHitIndex] < 0)); @@ -714,21 +707,21 @@ namespace lst { shiftedZ = zUpper; shiftedRt2 = xn * xn + yn * yn; - dPhi = lst::deltaPhi(acc, xLower, yLower, shiftedX, shiftedY); //function from Hit.cc - noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = cms::alpakatools::deltaPhi(acc, xLower, yLower, shiftedX, shiftedY); //function from Hit.cc + noShiftedDphi = cms::alpakatools::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } else { shiftedX = xn; shiftedY = yn; shiftedZ = zLower; shiftedRt2 = xn * xn + yn * yn; - dPhi = lst::deltaPhi(acc, shiftedX, shiftedY, xUpper, yUpper); - noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = cms::alpakatools::deltaPhi(acc, shiftedX, shiftedY, xUpper, yUpper); + noShiftedDphi = cms::alpakatools::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } } else { shiftedX = 0; shiftedY = 0; shiftedZ = 0; - dPhi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = cms::alpakatools::deltaPhi(acc, xLower, yLower, xUpper, yUpper); noShiftedDphi = dPhi; } @@ -747,56 +740,55 @@ namespace lst { // But I still placed this check for safety. (TODO: After checking explicitly if not needed remove later?) // setdeltaPhiChange(lowerHit.rt() < upperHitMod.rt() ? lowerHit.deltaPhiChange(upperHitMod) : upperHitMod.deltaPhiChange(lowerHit)); - dPhiChange = (rtLower * rtLower < shiftedRt2) ? lst::deltaPhiChange(acc, xLower, yLower, shiftedX, shiftedY) - : lst::deltaPhiChange(acc, shiftedX, shiftedY, xLower, yLower); - noShiftedDphiChange = rtLower < rtUpper ? lst::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper) - : lst::deltaPhiChange(acc, xUpper, yUpper, xLower, yLower); + dPhiChange = (rtLower * rtLower < shiftedRt2) + ? cms::alpakatools::deltaPhiChange(acc, xLower, yLower, shiftedX, shiftedY) + : cms::alpakatools::deltaPhiChange(acc, shiftedX, shiftedY, xLower, yLower); + noShiftedDphiChange = rtLower < rtUpper ? cms::alpakatools::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper) + : cms::alpakatools::deltaPhiChange(acc, xUpper, yUpper, xLower, yLower); } else { // dPhi Change should be calculated so that the upper hit has higher rt. // In principle, this kind of check rt_lower < rt_upper should not be necessary because the hit shifting should have taken care of this. // (i.e. the strip hit is shifted to be aligned in the line of sight from interaction point to pixel hit of PS module guaranteeing rt ordering) // But I still placed this check for safety. (TODO: After checking explicitly if not needed remove later?) - dPhiChange = (shiftedRt2 < rtUpper * rtUpper) ? lst::deltaPhiChange(acc, shiftedX, shiftedY, xUpper, yUpper) - : lst::deltaPhiChange(acc, xUpper, yUpper, shiftedX, shiftedY); - noShiftedDphiChange = rtLower < rtUpper ? lst::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper) - : lst::deltaPhiChange(acc, xUpper, yUpper, xLower, yLower); + dPhiChange = (shiftedRt2 < rtUpper * rtUpper) + ? cms::alpakatools::deltaPhiChange(acc, shiftedX, shiftedY, xUpper, yUpper) + : cms::alpakatools::deltaPhiChange(acc, xUpper, yUpper, shiftedX, shiftedY); + noShiftedDphiChange = rtLower < rtUpper ? cms::alpakatools::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper) + : cms::alpakatools::deltaPhiChange(acc, xUpper, yUpper, xLower, yLower); } } else { // When it is flat lying module, whichever is the lowerSide will always have rt lower - dPhiChange = lst::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper); + dPhiChange = cms::alpakatools::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper); noShiftedDphiChange = dPhiChange; } - noShiftedDz = 0; // not used anywhere - return alpaka::math::abs(acc, dPhiChange) < miniCut; }; template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgoEndcap(TAcc const& acc, struct lst::Modules& modulesInGPU, - uint16_t& lowerModuleIndex, - uint16_t& upperModuleIndex, - unsigned int lowerHitIndex, - unsigned int upperHitIndex, + const uint16_t lowerModuleIndex, + const uint16_t upperModuleIndex, + const unsigned int lowerHitIndex, + const unsigned int upperHitIndex, float& drt, float& dPhi, float& dPhiChange, float& shiftedX, float& shiftedY, float& shiftedZ, - float& noShiftedDz, float& noShiftedDphi, float& noShiftedDphichange, - float xLower, - float yLower, - float zLower, - float rtLower, - float xUpper, - float yUpper, - float zUpper, - float rtUpper) { + const float xLower, + const float yLower, + const float zLower, + const float rtLower, + const float xUpper, + const float yUpper, + const float zUpper, + const float rtUpper) { // There are series of cuts that applies to mini-doublet in a "endcap" region // Cut #1 : dz cut. The dz difference can't be larger than 1cm. (max separation is 4mm for modules in the endcap) // Ref to original code: https://github.com/slava77/cms-tkph2-ntuple/blob/184d2325147e6930030d3d1f780136bc2dd29ce6/doubletAnalysis.C#L3093 @@ -844,21 +836,21 @@ namespace lst { shiftedX = xn; shiftedY = yn; shiftedZ = zUpper; - dPhi = lst::deltaPhi(acc, xLower, yLower, shiftedX, shiftedY); - noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = cms::alpakatools::deltaPhi(acc, xLower, yLower, shiftedX, shiftedY); + noShiftedDphi = cms::alpakatools::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } else { shiftedX = xn; shiftedY = yn; shiftedZ = zLower; - dPhi = lst::deltaPhi(acc, shiftedX, shiftedY, xUpper, yUpper); - noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = cms::alpakatools::deltaPhi(acc, shiftedX, shiftedY, xUpper, yUpper); + noShiftedDphi = cms::alpakatools::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } } else { shiftedX = xn; shiftedY = yn; shiftedZ = zUpper; - dPhi = lst::deltaPhi(acc, xLower, yLower, xn, yn); - noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = cms::alpakatools::deltaPhi(acc, xLower, yLower, xn, yn); + noShiftedDphi = cms::alpakatools::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } // dz needs to change if it is a PS module where the strip hits are shifted in order to properly account for the case when a tilted module falls under "endcap logic" @@ -881,7 +873,6 @@ namespace lst { float dzFrac = alpaka::math::abs(acc, dz) / alpaka::math::abs(acc, zLower); dPhiChange = dPhi / dzFrac * (1.f + dzFrac); noShiftedDphichange = noShiftedDphi / dzFrac * (1.f + dzFrac); - noShiftedDz = 0; // not used anywhere return alpaka::math::abs(acc, dPhiChange) < miniCut; }; @@ -925,7 +916,7 @@ namespace lst { float zUpper = hitsInGPU.zs[upperHitArrayIndex]; float rtUpper = hitsInGPU.rts[upperHitArrayIndex]; - float dz, dphi, dphichange, shiftedX, shiftedY, shiftedZ, noShiftedDz, noShiftedDphi, noShiftedDphiChange; + float dz, dphi, dphichange, shiftedX, shiftedY, shiftedZ, noShiftedDphi, noShiftedDphiChange; bool success = runMiniDoubletDefaultAlgo(acc, modulesInGPU, lowerModuleIndex, @@ -938,7 +929,6 @@ namespace lst { shiftedX, shiftedY, shiftedZ, - noShiftedDz, noShiftedDphi, noShiftedDphiChange, xLower, @@ -973,7 +963,6 @@ namespace lst { shiftedX, shiftedY, shiftedZ, - noShiftedDz, noShiftedDphi, noShiftedDphiChange, mdIndex); diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h index 79fdf7d2c8ccc..45883d0fd9454 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h @@ -22,11 +22,11 @@ namespace lst::t5dnn { const float* yVec, const unsigned int* mdIndices, const uint16_t* lowerModuleIndices, - const unsigned int& innerTripletIndex, - const unsigned int& outerTripletIndex, - const float& innerRadius, - const float& outerRadius, - const float& bridgeRadius) { + const unsigned int innerTripletIndex, + const unsigned int outerTripletIndex, + const float innerRadius, + const float outerRadius, + const float bridgeRadius) { // Unpack x-coordinates of hits float x1 = xVec[0]; float x2 = xVec[1]; diff --git a/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h b/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h index 1e1ccf8df12bc..7129f5b155574 100644 --- a/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h +++ b/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h @@ -105,7 +105,7 @@ namespace lst { ObjectRanges data_; template - ObjectRangesBuffer(unsigned int nMod, unsigned int nLowerMod, TDevAcc const& devAccIn, TQueue& queue) + ObjectRangesBuffer(const unsigned int nMod, const unsigned int nLowerMod, TDevAcc const& devAccIn, TQueue& queue) : hitRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), hitRangesLower_buf(allocBufWrapper(devAccIn, nMod, queue)), hitRangesUpper_buf(allocBufWrapper(devAccIn, nMod, queue)), diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index 14c1fd36aa17a..723521d4fdeaf 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -98,7 +98,7 @@ namespace lst { PixelTriplets data_; template - PixelTripletsBuffer(unsigned int maxPixelTriplets, TDevAcc const& devAccIn, TQueue& queue) + PixelTripletsBuffer(const unsigned int maxPixelTriplets, TDevAcc const& devAccIn, TQueue& queue) : pixelSegmentIndices_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), tripletIndices_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), nPixelTriplets_buf(allocBufWrapper(devAccIn, 1, queue)), @@ -137,22 +137,22 @@ namespace lst { struct lst::Segments& segmentsInGPU, struct lst::Triplets& tripletsInGPU, struct lst::PixelTriplets& pixelTripletsInGPU, - unsigned int pixelSegmentIndex, - unsigned int tripletIndex, - float pixelRadius, - float tripletRadius, - float centerX, - float centerY, - float rPhiChiSquared, - float rPhiChiSquaredInwards, - float rzChiSquared, - unsigned int pixelTripletIndex, - float pt, - float eta, - float phi, - float eta_pix, - float phi_pix, - float score) { + const unsigned int pixelSegmentIndex, + const unsigned int tripletIndex, + const float pixelRadius, + const float tripletRadius, + const float centerX, + const float centerY, + const float rPhiChiSquared, + const float rPhiChiSquaredInwards, + const float rzChiSquared, + const unsigned int pixelTripletIndex, + const float pt, + const float eta, + const float phi, + const float eta_pix, + const float phi_pix, + const float score) { pixelTripletsInGPU.pixelSegmentIndices[pixelTripletIndex] = pixelSegmentIndex; pixelTripletsInGPU.tripletIndices[pixelTripletIndex] = tripletIndex; pixelTripletsInGPU.pixelRadius[pixelTripletIndex] = __F2H(pixelRadius); @@ -218,11 +218,11 @@ namespace lst { struct lst::ObjectRanges& rangesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - uint16_t& pixelLowerModuleIndex, - uint16_t& outerInnerLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, - unsigned int& innerSegmentIndex, - unsigned int& outerSegmentIndex, + const uint16_t pixelLowerModuleIndex, + const uint16_t outerInnerLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, + const unsigned int innerSegmentIndex, + const unsigned int outerSegmentIndex, float& zOut, float& rtOut, float& deltaPhiPos, @@ -324,10 +324,10 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RZChiSquaredCuts(struct lst::Modules& modulesInGPU, - uint16_t& lowerModuleIndex1, - uint16_t& lowerModuleIndex2, - uint16_t& lowerModuleIndex3, - float& rzChiSquared) { + const uint16_t lowerModuleIndex1, + const uint16_t lowerModuleIndex2, + const uint16_t lowerModuleIndex3, + const float rzChiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and @@ -386,9 +386,9 @@ namespace lst { float* delta2, float* slopes, bool* isFlat, - float g, - float f, - float radius) { + const float g, + const float f, + const float radius) { //given values of (g, f, radius) and a set of points (and its uncertainties) //compute chi squared float c = g * g + f * f - radius * radius; @@ -428,9 +428,9 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT3RPhiChiSquared(TAcc const& acc, struct lst::Modules& modulesInGPU, uint16_t* lowerModuleIndices, - float& g, - float& f, - float& radius, + const float g, + const float f, + const float radius, float* xs, float* ys) { float delta1[3]{}, delta2[3]{}, slopes[3]; @@ -496,7 +496,7 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT3RPhiChiSquaredInwards( - struct lst::Modules& modulesInGPU, float& g, float& f, float& r, float* xPix, float* yPix) { + struct lst::Modules& modulesInGPU, const float g, const float f, const float r, float* xPix, float* yPix) { float residual = (xPix[0] - g) * (xPix[0] - g) + (yPix[0] - f) * (yPix[0] - f) - r * r; float chiSquared = residual * residual; residual = (xPix[1] - g) * (xPix[1] - g) + (yPix[1] - f) * (yPix[1] - f) - r * r; @@ -508,10 +508,10 @@ namespace lst { //90pc threshold ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredCuts(struct lst::Modules& modulesInGPU, - uint16_t& lowerModuleIndex1, - uint16_t& lowerModuleIndex2, - uint16_t& lowerModuleIndex3, - float& chiSquared) { + const uint16_t lowerModuleIndex1, + const uint16_t lowerModuleIndex2, + const uint16_t lowerModuleIndex3, + const float chiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and @@ -555,9 +555,9 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredInwardsCuts(struct lst::Modules& modulesInGPU, - uint16_t& lowerModuleIndex1, - uint16_t& lowerModuleIndex2, - uint16_t& lowerModuleIndex3, + const uint16_t lowerModuleIndex1, + const uint16_t lowerModuleIndex2, + const uint16_t lowerModuleIndex3, float& chiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + @@ -613,19 +613,19 @@ namespace lst { return true; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool checkIntervalOverlappT3(const float& firstMin, - const float& firstMax, - const float& secondMin, - const float& secondMax) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool checkIntervalOverlappT3(const float firstMin, + const float firstMax, + const float secondMin, + const float secondMax) { return ((firstMin <= secondMin) && (secondMin < firstMax)) || ((secondMin < firstMin) && (firstMin < secondMax)); }; /*bounds for high Pt taken from : http://uaf-10.t2.ucsd.edu/~bsathian/SDL/T5_efficiency/efficiencies/new_efficiencies/efficiencies_20210513_T5_recovering_high_Pt_efficiencies/highE_radius_matching/highE_bounds.txt */ template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRadiusCriterionBBB(TAcc const& acc, - float const& pixelRadius, - float const& pixelRadiusError, - float const& tripletRadius) { + const float pixelRadius, + const float pixelRadiusError, + const float tripletRadius) { float tripletInvRadiusErrorBound = 0.15624f; float pixelInvRadiusErrorBound = 0.17235f; @@ -647,9 +647,9 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRadiusCriterionBBE(TAcc const& acc, - float const& pixelRadius, - float const& pixelRadiusError, - float const& tripletRadius) { + const float pixelRadius, + const float pixelRadiusError, + const float tripletRadius) { float tripletInvRadiusErrorBound = 0.45972f; float pixelInvRadiusErrorBound = 0.19644f; @@ -671,9 +671,9 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRadiusCriterionBEE(TAcc const& acc, - float const& pixelRadius, - float const& pixelRadiusError, - float const& tripletRadius) { + const float pixelRadius, + const float pixelRadiusError, + const float tripletRadius) { float tripletInvRadiusErrorBound = 1.59294f; float pixelInvRadiusErrorBound = 0.255181f; @@ -697,9 +697,9 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRadiusCriterionEEE(TAcc const& acc, - float const& pixelRadius, - float const& pixelRadiusError, - float const& tripletRadius) { + const float pixelRadius, + const float pixelRadiusError, + const float tripletRadius) { float tripletInvRadiusErrorBound = 1.7006f; float pixelInvRadiusErrorBound = 0.26367f; @@ -724,12 +724,12 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRadiusCriterion(TAcc const& acc, struct lst::Modules const& modulesInGPU, - float const& pixelRadius, - float const& pixelRadiusError, - float const& tripletRadius, - uint16_t const& lowerModuleIndex, - uint16_t const& middleModuleIndex, - uint16_t const& upperModuleIndex) { + const float pixelRadius, + const float pixelRadiusError, + const float tripletRadius, + const int16_t lowerModuleIndex, + const uint16_t middleModuleIndex, + const uint16_t upperModuleIndex) { if (modulesInGPU.subdets[lowerModuleIndex] == lst::Endcap) { return passRadiusCriterionEEE(acc, pixelRadius, pixelRadiusError, tripletRadius); } else if (modulesInGPU.subdets[middleModuleIndex] == lst::Endcap) { @@ -753,11 +753,11 @@ namespace lst { const float* xs, const float* ys, const float* zs, - float pixelSegmentPt, - float pixelSegmentPx, - float pixelSegmentPy, - float pixelSegmentPz, - int pixelSegmentCharge) { + const float pixelSegmentPt, + const float pixelSegmentPx, + const float pixelSegmentPy, + const float pixelSegmentPz, + const int pixelSegmentCharge) { float residual = 0; float error2 = 0; float RMSE = 0; @@ -837,8 +837,8 @@ namespace lst { struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, struct lst::Triplets& tripletsInGPU, - unsigned int& pixelSegmentIndex, - unsigned int tripletIndex, + const unsigned int pixelSegmentIndex, + const unsigned int tripletIndex, float& pixelRadius, float& pixelRadiusError, float& tripletRadius, @@ -847,7 +847,7 @@ namespace lst { float& rzChiSquared, float& rPhiChiSquared, float& rPhiChiSquaredInwards, - bool runChiSquaredCuts = true) { + const bool runChiSquaredCuts = true) { //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]; @@ -1037,7 +1037,7 @@ namespace lst { struct lst::PixelTriplets pixelTripletsInGPU, unsigned int* connectedPixelSize, unsigned int* connectedPixelIndex, - unsigned int nPixelSegments) const { + const unsigned int nPixelSegments) const { auto const globalBlockIdx = alpaka::getIdx(acc); auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridBlockExtent = alpaka::getWorkDiv(acc); @@ -1172,10 +1172,10 @@ namespace lst { float& betaOut, float& betaAv, float& pt_beta, - float sdIn_dr, - float sdOut_dr, - float dr, - float lIn) { + const float sdIn_dr, + const float sdOut_dr, + const float dr, + const float lIn) { if (lIn == 0) { betaOut += alpaka::math::copysign( acc, @@ -1278,15 +1278,15 @@ namespace lst { struct lst::ObjectRanges& rangesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - uint16_t& pixelModuleIndex, - uint16_t& outerInnerLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, - unsigned int& innerSegmentIndex, - unsigned int& outerSegmentIndex, - unsigned int& firstMDIndex, - unsigned int& secondMDIndex, - unsigned int thirdMDIndex, - unsigned int& fourthMDIndex, + const uint16_t pixelModuleIndex, + const uint16_t outerInnerLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, + const unsigned int innerSegmentIndex, + const unsigned int outerSegmentIndex, + const unsigned int firstMDIndex, + const unsigned int secondMDIndex, + const unsigned int thirdMDIndex, + const unsigned int fourthMDIndex, float& /*z_OutLo*/, float& /*rt_OutLo*/, float& dPhiPos, @@ -1324,7 +1324,7 @@ namespace lst { float rt_InOut = rt_InUp; - if (alpaka::math::abs(acc, lst::deltaPhi(acc, x_InUp, y_InUp, x_OutLo, y_OutLo)) > 0.5f * float(M_PI)) + if (alpaka::math::abs(acc, cms::alpakatools::deltaPhi(acc, x_InUp, y_InUp, x_OutLo, y_OutLo)) > 0.5f * float(M_PI)) return false; unsigned int pixelSegmentArrayIndex = innerSegmentIndex - rangesInGPU.segmentModuleIndices[pixelModuleIndex]; @@ -1392,7 +1392,7 @@ namespace lst { sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); #ifdef CUT_VALUE_DEBUG - dPhiPos = lst::deltaPhi(acc, x_InUp, y_InUp, x_OutUp, y_OutUp); + dPhiPos = cms::alpakatools::deltaPhi(acc, x_InUp, y_InUp, x_OutUp, y_OutUp); #endif //no dphipos cut @@ -1402,7 +1402,7 @@ namespace lst { float diffX = x_OutLo - x_InLo; float diffY = y_OutLo - y_InLo; - dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = cms::alpakatools::deltaPhi(acc, midPointX, midPointY, diffX, diffY); if (alpaka::math::abs(acc, dPhi) > sdlCut) return false; @@ -1416,7 +1416,7 @@ namespace lst { modulesInGPU.moduleType[outerOuterLowerModuleIndex] == lst::TwoS; float alpha_OutUp, alpha_OutUp_highEdge, alpha_OutUp_lowEdge; - alpha_OutUp = lst::deltaPhi(acc, x_OutUp, y_OutUp, x_OutUp - x_OutLo, y_OutUp - y_OutLo); + alpha_OutUp = cms::alpakatools::deltaPhi(acc, x_OutUp, y_OutUp, x_OutUp - x_OutLo, y_OutUp - y_OutLo); alpha_OutUp_highEdge = alpha_OutUp; alpha_OutUp_lowEdge = alpha_OutUp; @@ -1430,42 +1430,42 @@ namespace lst { float tl_axis_lowEdge_x = tl_axis_x; float tl_axis_lowEdge_y = tl_axis_y; - betaIn = -lst::deltaPhi(acc, px, py, tl_axis_x, tl_axis_y); + betaIn = -cms::alpakatools::deltaPhi(acc, px, py, tl_axis_x, tl_axis_y); float betaInRHmin = betaIn; float betaInRHmax = betaIn; - betaOut = -alpha_OutUp + lst::deltaPhi(acc, x_OutUp, y_OutUp, tl_axis_x, tl_axis_y); + betaOut = -alpha_OutUp + cms::alpakatools::deltaPhi(acc, x_OutUp, y_OutUp, tl_axis_x, tl_axis_y); float betaOutRHmin = betaOut; float betaOutRHmax = betaOut; if (isEC_lastLayer) { - alpha_OutUp_highEdge = lst::deltaPhi(acc, - mdsInGPU.anchorHighEdgeX[fourthMDIndex], - mdsInGPU.anchorHighEdgeY[fourthMDIndex], - mdsInGPU.anchorHighEdgeX[fourthMDIndex] - x_OutLo, - mdsInGPU.anchorHighEdgeY[fourthMDIndex] - y_OutLo); - alpha_OutUp_lowEdge = lst::deltaPhi(acc, - mdsInGPU.anchorLowEdgeX[fourthMDIndex], - mdsInGPU.anchorLowEdgeY[fourthMDIndex], - mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_OutLo, - mdsInGPU.anchorLowEdgeY[fourthMDIndex] - y_OutLo); + alpha_OutUp_highEdge = cms::alpakatools::deltaPhi(acc, + mdsInGPU.anchorHighEdgeX[fourthMDIndex], + mdsInGPU.anchorHighEdgeY[fourthMDIndex], + mdsInGPU.anchorHighEdgeX[fourthMDIndex] - x_OutLo, + mdsInGPU.anchorHighEdgeY[fourthMDIndex] - y_OutLo); + alpha_OutUp_lowEdge = cms::alpakatools::deltaPhi(acc, + mdsInGPU.anchorLowEdgeX[fourthMDIndex], + mdsInGPU.anchorLowEdgeY[fourthMDIndex], + mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_OutLo, + mdsInGPU.anchorLowEdgeY[fourthMDIndex] - y_OutLo); tl_axis_highEdge_x = mdsInGPU.anchorHighEdgeX[fourthMDIndex] - x_InUp; tl_axis_highEdge_y = mdsInGPU.anchorHighEdgeY[fourthMDIndex] - y_InUp; tl_axis_lowEdge_x = mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_InUp; tl_axis_lowEdge_y = mdsInGPU.anchorLowEdgeY[fourthMDIndex] - y_InUp; - betaOutRHmin = -alpha_OutUp_highEdge + lst::deltaPhi(acc, - mdsInGPU.anchorHighEdgeX[fourthMDIndex], - mdsInGPU.anchorHighEdgeY[fourthMDIndex], - tl_axis_highEdge_x, - tl_axis_highEdge_y); - betaOutRHmax = -alpha_OutUp_lowEdge + lst::deltaPhi(acc, - mdsInGPU.anchorLowEdgeX[fourthMDIndex], - mdsInGPU.anchorLowEdgeY[fourthMDIndex], - tl_axis_lowEdge_x, - tl_axis_lowEdge_y); + betaOutRHmin = -alpha_OutUp_highEdge + cms::alpakatools::deltaPhi(acc, + mdsInGPU.anchorHighEdgeX[fourthMDIndex], + mdsInGPU.anchorHighEdgeY[fourthMDIndex], + tl_axis_highEdge_x, + tl_axis_highEdge_y); + betaOutRHmax = -alpha_OutUp_lowEdge + cms::alpakatools::deltaPhi(acc, + mdsInGPU.anchorLowEdgeX[fourthMDIndex], + mdsInGPU.anchorLowEdgeY[fourthMDIndex], + tl_axis_lowEdge_x, + tl_axis_lowEdge_y); } //beta computation @@ -1557,15 +1557,15 @@ namespace lst { struct lst::ObjectRanges& rangesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - uint16_t& pixelModuleIndex, - uint16_t& outerInnerLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, - unsigned int& innerSegmentIndex, - unsigned int& outerSegmentIndex, - unsigned int& firstMDIndex, - unsigned int& secondMDIndex, - unsigned int& thirdMDIndex, - unsigned int& fourthMDIndex, + const uint16_t pixelModuleIndex, + const uint16_t outerInnerLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, + const unsigned int innerSegmentIndex, + const unsigned int outerSegmentIndex, + const unsigned int firstMDIndex, + const unsigned int secondMDIndex, + const unsigned int thirdMDIndex, + const unsigned int fourthMDIndex, float& /*z_OutLo*/, float& /*rt_OutLo*/, float& deltaPhiPos, @@ -1681,7 +1681,7 @@ namespace lst { const float sdlPVoff = 0.1f / rt_OutLo; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = lst::deltaPhi(acc, x_InUp, y_InUp, x_OutUp, y_OutUp); + deltaPhiPos = cms::alpakatools::deltaPhi(acc, x_InUp, y_InUp, x_OutUp, y_OutUp); float midPointX = 0.5f * (x_InLo + x_OutLo); float midPointY = 0.5f * (y_InLo + y_OutLo); @@ -1689,7 +1689,7 @@ namespace lst { float diffX = x_OutLo - x_InLo; float diffY = y_OutLo - y_InLo; - dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = cms::alpakatools::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) @@ -1703,7 +1703,7 @@ namespace lst { float alpha_OutUp, alpha_OutUp_highEdge, alpha_OutUp_lowEdge; - alpha_OutUp = lst::deltaPhi(acc, x_OutUp, y_OutUp, x_OutUp - x_OutLo, y_OutUp - y_OutLo); + alpha_OutUp = cms::alpakatools::deltaPhi(acc, x_OutUp, y_OutUp, x_OutUp - x_OutLo, y_OutUp - y_OutLo); alpha_OutUp_highEdge = alpha_OutUp; alpha_OutUp_lowEdge = alpha_OutUp; @@ -1716,41 +1716,41 @@ namespace lst { float tl_axis_lowEdge_x = tl_axis_x; float tl_axis_lowEdge_y = tl_axis_y; - betaIn = -lst::deltaPhi(acc, px, py, tl_axis_x, tl_axis_y); + betaIn = -cms::alpakatools::deltaPhi(acc, px, py, tl_axis_x, tl_axis_y); float betaInRHmin = betaIn; float betaInRHmax = betaIn; - betaOut = -alpha_OutUp + lst::deltaPhi(acc, x_OutUp, y_OutUp, tl_axis_x, tl_axis_y); + betaOut = -alpha_OutUp + cms::alpakatools::deltaPhi(acc, x_OutUp, y_OutUp, tl_axis_x, tl_axis_y); float betaOutRHmin = betaOut; float betaOutRHmax = betaOut; if (isEC_lastLayer) { - alpha_OutUp_highEdge = lst::deltaPhi(acc, - mdsInGPU.anchorHighEdgeX[fourthMDIndex], - mdsInGPU.anchorHighEdgeY[fourthMDIndex], - mdsInGPU.anchorHighEdgeX[fourthMDIndex] - x_OutLo, - mdsInGPU.anchorHighEdgeY[fourthMDIndex] - y_OutLo); - alpha_OutUp_lowEdge = lst::deltaPhi(acc, - mdsInGPU.anchorLowEdgeX[fourthMDIndex], - mdsInGPU.anchorLowEdgeY[fourthMDIndex], - mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_OutLo, - mdsInGPU.anchorLowEdgeY[fourthMDIndex] - y_OutLo); + alpha_OutUp_highEdge = cms::alpakatools::deltaPhi(acc, + mdsInGPU.anchorHighEdgeX[fourthMDIndex], + mdsInGPU.anchorHighEdgeY[fourthMDIndex], + mdsInGPU.anchorHighEdgeX[fourthMDIndex] - x_OutLo, + mdsInGPU.anchorHighEdgeY[fourthMDIndex] - y_OutLo); + alpha_OutUp_lowEdge = cms::alpakatools::deltaPhi(acc, + mdsInGPU.anchorLowEdgeX[fourthMDIndex], + mdsInGPU.anchorLowEdgeY[fourthMDIndex], + mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_OutLo, + mdsInGPU.anchorLowEdgeY[fourthMDIndex] - y_OutLo); tl_axis_highEdge_x = mdsInGPU.anchorHighEdgeX[fourthMDIndex] - x_InUp; tl_axis_highEdge_y = mdsInGPU.anchorHighEdgeY[fourthMDIndex] - y_InUp; tl_axis_lowEdge_x = mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_InUp; tl_axis_lowEdge_y = mdsInGPU.anchorLowEdgeY[fourthMDIndex] - y_InUp; - betaOutRHmin = -alpha_OutUp_highEdge + lst::deltaPhi(acc, - mdsInGPU.anchorHighEdgeX[fourthMDIndex], - mdsInGPU.anchorHighEdgeY[fourthMDIndex], - tl_axis_highEdge_x, - tl_axis_highEdge_y); - betaOutRHmax = -alpha_OutUp_lowEdge + lst::deltaPhi(acc, - mdsInGPU.anchorLowEdgeX[fourthMDIndex], - mdsInGPU.anchorLowEdgeY[fourthMDIndex], - tl_axis_lowEdge_x, - tl_axis_lowEdge_y); + betaOutRHmin = -alpha_OutUp_highEdge + cms::alpakatools::deltaPhi(acc, + mdsInGPU.anchorHighEdgeX[fourthMDIndex], + mdsInGPU.anchorHighEdgeY[fourthMDIndex], + tl_axis_highEdge_x, + tl_axis_highEdge_y); + betaOutRHmax = -alpha_OutUp_lowEdge + cms::alpakatools::deltaPhi(acc, + mdsInGPU.anchorLowEdgeX[fourthMDIndex], + mdsInGPU.anchorLowEdgeY[fourthMDIndex], + tl_axis_lowEdge_x, + tl_axis_lowEdge_y); } //beta computation @@ -1921,7 +1921,7 @@ namespace lst { PixelQuintuplets data_; template - PixelQuintupletsBuffer(unsigned int maxPixelQuintuplets, TDevAcc const& devAccIn, TQueue& queue) + PixelQuintupletsBuffer(const unsigned int maxPixelQuintuplets, TDevAcc const& devAccIn, TQueue& queue) : pixelIndices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), T5Indices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), nPixelQuintuplets_buf(allocBufWrapper(devAccIn, 1, queue)), @@ -1954,15 +1954,15 @@ namespace lst { struct lst::Segments& segmentsInGPU, struct lst::Quintuplets& quintupletsInGPU, struct lst::PixelQuintuplets& pixelQuintupletsInGPU, - unsigned int pixelIndex, - unsigned int T5Index, - unsigned int pixelQuintupletIndex, + const unsigned int pixelIndex, + const unsigned int T5Index, + const unsigned int pixelQuintupletIndex, float& rzChiSquared, float& rPhiChiSquared, float& rPhiChiSquaredInwards, - float score, - float eta, - float phi, + const float score, + const float eta, + const float phi, float& pixelRadius, float& quintupletRadius, float& centerX, @@ -2046,12 +2046,12 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RZChiSquaredCuts(struct lst::Modules& modulesInGPU, - uint16_t& lowerModuleIndex1, - uint16_t& lowerModuleIndex2, - uint16_t& lowerModuleIndex3, - uint16_t& lowerModuleIndex4, - uint16_t& lowerModuleIndex5, - float& rzChiSquared) { + const uint16_t lowerModuleIndex1, + const uint16_t lowerModuleIndex2, + const uint16_t lowerModuleIndex3, + const uint16_t lowerModuleIndex4, + const uint16_t lowerModuleIndex5, + const float rzChiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and @@ -2136,12 +2136,12 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredCuts(struct lst::Modules& modulesInGPU, - uint16_t& lowerModuleIndex1, - uint16_t& lowerModuleIndex2, - uint16_t& lowerModuleIndex3, - uint16_t& lowerModuleIndex4, - uint16_t& lowerModuleIndex5, - float rPhiChiSquared) { + const uint16_t lowerModuleIndex1, + const uint16_t lowerModuleIndex2, + const uint16_t lowerModuleIndex3, + const uint16_t lowerModuleIndex4, + const uint16_t lowerModuleIndex5, + const float rPhiChiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and @@ -2227,16 +2227,16 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeChiSquaredpT5(TAcc const& acc, - unsigned int nPoints, + const unsigned int nPoints, float* xs, float* ys, float* delta1, float* delta2, float* slopes, bool* isFlat, - float g, - float f, - float radius) { + const float g, + const float f, + const float radius) { /* Given values of (g, f, radius) and a set of points (and its uncertainties) compute chi squared */ @@ -2279,8 +2279,8 @@ namespace lst { float* delta2, float* slopes, bool* isFlat, - unsigned int nPoints = 5, - bool anchorHits = true) { + const unsigned int nPoints = 5, + const bool anchorHits = true) { /* bool anchorHits required to deal with a weird edge case wherein the hits ultimately used in the regression are anchor hits, but the @@ -2361,9 +2361,9 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RPhiChiSquared(TAcc const& acc, struct lst::Modules& modulesInGPU, uint16_t* lowerModuleIndices, - float& g, - float& f, - float& radius, + const float g, + const float f, + const float radius, float* xs, float* ys) { /* @@ -2396,12 +2396,12 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredInwardsCuts(struct lst::Modules& modulesInGPU, - uint16_t& lowerModuleIndex1, - uint16_t& lowerModuleIndex2, - uint16_t& lowerModuleIndex3, - uint16_t& lowerModuleIndex4, - uint16_t& lowerModuleIndex5, - float rPhiChiSquared) { + const uint16_t lowerModuleIndex1, + const uint16_t lowerModuleIndex2, + const uint16_t lowerModuleIndex3, + const uint16_t lowerModuleIndex4, + const uint16_t lowerModuleIndex5, + const float rPhiChiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and @@ -2493,8 +2493,8 @@ namespace lst { struct lst::Segments& segmentsInGPU, struct lst::Triplets& tripletsInGPU, struct lst::Quintuplets& quintupletsInGPU, - unsigned int& pixelSegmentIndex, - unsigned int& quintupletIndex, + const unsigned int pixelSegmentIndex, + const unsigned int quintupletIndex, float& rzChiSquared, float& rPhiChiSquared, float& rPhiChiSquaredInwards, @@ -2502,7 +2502,7 @@ namespace lst { float& quintupletRadius, float& centerX, float& centerY, - unsigned int pixelSegmentArrayIndex) { + const unsigned int pixelSegmentArrayIndex) { unsigned int T5InnerT3Index = quintupletsInGPU.tripletIndices[2 * quintupletIndex]; unsigned int T5OuterT3Index = quintupletsInGPU.tripletIndices[2 * quintupletIndex + 1]; diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index d0270c4a7803f..a104d178e85f6 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -104,7 +104,10 @@ namespace lst { Quintuplets data_; template - QuintupletsBuffer(unsigned int nTotalQuintuplets, unsigned int nLowerModules, TDevAcc const& devAccIn, TQueue& queue) + QuintupletsBuffer(const unsigned int nTotalQuintuplets, + const unsigned int nLowerModules, + TDevAcc const& devAccIn, + TQueue& queue) : tripletIndices_buf(allocBufWrapper(devAccIn, 2 * nTotalQuintuplets, queue)), lowerModuleIndices_buf(allocBufWrapper(devAccIn, Params_T5::kLayers * nTotalQuintuplets, queue)), nQuintuplets_buf(allocBufWrapper(devAccIn, nLowerModules, queue)), @@ -141,22 +144,22 @@ namespace lst { inline void setData(QuintupletsBuffer& buf) { data_.setData(buf); } }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool checkIntervalOverlap(const float& firstMin, - const float& firstMax, - const float& secondMin, - const float& secondMax) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool checkIntervalOverlap(const float firstMin, + const float firstMax, + const float secondMin, + const float secondMax) { return ((firstMin <= secondMin) && (secondMin < firstMax)) || ((secondMin < firstMin) && (firstMin < secondMax)); }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void addQuintupletToMemory(struct lst::Triplets& tripletsInGPU, struct lst::Quintuplets& quintupletsInGPU, - unsigned int innerTripletIndex, - unsigned int outerTripletIndex, - uint16_t& lowerModule1, - uint16_t& lowerModule2, - uint16_t& lowerModule3, - uint16_t& lowerModule4, - uint16_t& lowerModule5, + const unsigned int innerTripletIndex, + const unsigned int outerTripletIndex, + const uint16_t lowerModule1, + const uint16_t lowerModule2, + const uint16_t lowerModule3, + const uint16_t lowerModule4, + const uint16_t lowerModule5, float& innerRadius, float& bridgeRadius, float& outerRadius, @@ -166,13 +169,13 @@ namespace lst { float& rzChiSquared, float& rPhiChiSquared, float& nonAnchorChiSquared, - float pt, - float eta, - float phi, - float scores, - uint8_t layer, - unsigned int quintupletIndex, - bool TightCutFlag) { + const float pt, + const float eta, + const float phi, + const float scores, + const uint8_t layer, + const unsigned int quintupletIndex, + const bool TightCutFlag) { quintupletsInGPU.tripletIndices[2 * quintupletIndex] = innerTripletIndex; quintupletsInGPU.tripletIndices[2 * quintupletIndex + 1] = outerTripletIndex; @@ -232,12 +235,12 @@ namespace lst { //90% constraint ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passChiSquaredConstraint(struct lst::Modules& modulesInGPU, - uint16_t& lowerModuleIndex1, - uint16_t& lowerModuleIndex2, - uint16_t& lowerModuleIndex3, - uint16_t& lowerModuleIndex4, - uint16_t& lowerModuleIndex5, - float& chiSquared) { + const uint16_t lowerModuleIndex1, + const uint16_t lowerModuleIndex2, + const uint16_t lowerModuleIndex3, + const uint16_t lowerModuleIndex4, + const uint16_t lowerModuleIndex5, + const float chiSquared) { // Using sdlLayer numbering convention defined in ModuleMethods.h const int layer1 = modulesInGPU.sdlLayers[lowerModuleIndex1]; const int layer2 = modulesInGPU.sdlLayers[lowerModuleIndex2]; @@ -318,21 +321,21 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passT5RZConstraint(TAcc const& acc, struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, - unsigned int firstMDIndex, - unsigned int secondMDIndex, - unsigned int thirdMDIndex, - unsigned int fourthMDIndex, - unsigned int fifthMDIndex, - uint16_t& lowerModuleIndex1, - uint16_t& lowerModuleIndex2, - uint16_t& lowerModuleIndex3, - uint16_t& lowerModuleIndex4, - uint16_t& lowerModuleIndex5, + const unsigned int firstMDIndex, + const unsigned int secondMDIndex, + const unsigned int thirdMDIndex, + const unsigned int fourthMDIndex, + const unsigned int fifthMDIndex, + const uint16_t lowerModuleIndex1, + const uint16_t lowerModuleIndex2, + const uint16_t lowerModuleIndex3, + const uint16_t lowerModuleIndex4, + const uint16_t lowerModuleIndex5, float& rzChiSquared, - float inner_pt, - float innerRadius, - float g, - float f, + const float inner_pt, + const float innerRadius, + const float g, + const float f, bool& TightCutFlag) { //(g,f) is the center of the circle fitted by the innermost 3 points on x,y coordinates const float& rt1 = mdsInGPU.anchorRt[firstMDIndex] / 100; //in the unit of m instead of cm @@ -752,8 +755,8 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool T5HasCommonMiniDoublet(struct lst::Triplets& tripletsInGPU, struct lst::Segments& segmentsInGPU, - unsigned int innerTripletIndex, - unsigned int outerTripletIndex) { + const unsigned int innerTripletIndex, + const unsigned int outerTripletIndex) { unsigned int innerOuterSegmentIndex = tripletsInGPU.segmentIndices[2 * innerTripletIndex + 1]; unsigned int outerInnerSegmentIndex = tripletsInGPU.segmentIndices[2 * outerTripletIndex]; unsigned int innerOuterOuterMiniDoubletIndex = @@ -1155,8 +1158,8 @@ namespace lst { float* delta2, float* slopes, bool* isFlat, - unsigned int nPoints = 5, - bool anchorHits = true) { + const unsigned int nPoints = 5, + const bool anchorHits = true) { /* Bool anchorHits required to deal with a weird edge case wherein the hits ultimately used in the regression are anchor hits, but the @@ -1236,7 +1239,7 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeRadiusUsingRegression(TAcc const& acc, - unsigned int nPoints, + const unsigned int nPoints, float* xs, float* ys, float* delta1, @@ -1334,16 +1337,16 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeChiSquared(TAcc const& acc, - unsigned int nPoints, + const unsigned int nPoints, float* xs, float* ys, float* delta1, float* delta2, float* slopes, bool* isFlat, - float g, - float f, - float radius) { + const float g, + const float f, + const float radius) { // given values of (g, f, radius) and a set of points (and its uncertainties) // compute chi squared float c = g * g + f * f - radius * radius; @@ -1384,10 +1387,10 @@ namespace lst { float& betaOut, float& betaAv, float& pt_beta, - float sdIn_dr, - float sdOut_dr, - float dr, - float lIn) { + const float sdIn_dr, + const float sdOut_dr, + const float dr, + const float lIn) { if (lIn == 0) { betaOut += alpaka::math::copysign( acc, @@ -1489,16 +1492,16 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - uint16_t& innerInnerLowerModuleIndex, - uint16_t& innerOuterLowerModuleIndex, - uint16_t& outerInnerLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, - unsigned int& innerSegmentIndex, - unsigned int& outerSegmentIndex, - unsigned int& firstMDIndex, - unsigned int& secondMDIndex, - unsigned int& thirdMDIndex, - unsigned int& fourthMDIndex, + const uint16_t innerInnerLowerModuleIndex, + const uint16_t innerOuterLowerModuleIndex, + const uint16_t outerInnerLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, + const unsigned int innerSegmentIndex, + const unsigned int outerSegmentIndex, + const unsigned int firstMDIndex, + const unsigned int secondMDIndex, + const unsigned int thirdMDIndex, + const unsigned int fourthMDIndex, float& zOut, float& rtOut, float& deltaPhiPos, @@ -1576,7 +1579,8 @@ namespace lst { float sdlPVoff = 0.1f / rt_OutLo; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); + deltaPhiPos = + cms::alpakatools::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); // Cut #3: FIXME:deltaPhiPos can be tighter if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) return false; @@ -1586,7 +1590,7 @@ namespace lst { float diffX = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float diffY = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = cms::alpakatools::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #4: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) @@ -1602,11 +1606,12 @@ namespace lst { float alpha_OutUp, alpha_OutUp_highEdge, alpha_OutUp_lowEdge; - alpha_OutUp = lst::phi_mpi_pi(acc, - lst::phi(acc, - mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], - mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - - mdsInGPU.anchorPhi[fourthMDIndex]); + alpha_OutUp = cms::alpakatools::phi_mpi_pi( + acc, + cms::alpakatools::phi(acc, + mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], + mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - + mdsInGPU.anchorPhi[fourthMDIndex]); alpha_OutUp_highEdge = alpha_OutUp; alpha_OutUp_lowEdge = alpha_OutUp; @@ -1618,41 +1623,45 @@ namespace lst { float tl_axis_lowEdge_x = tl_axis_x; float tl_axis_lowEdge_y = tl_axis_y; - betaIn = alpha_InLo - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = alpha_InLo - cms::alpakatools::phi_mpi_pi( + acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float betaInRHmin = betaIn; float betaInRHmax = betaIn; betaOut = - -alpha_OutUp + lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); + -alpha_OutUp + cms::alpakatools::phi_mpi_pi( + acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); float betaOutRHmin = betaOut; float betaOutRHmax = betaOut; if (isEC_lastLayer) { - alpha_OutUp_highEdge = - lst::phi_mpi_pi(acc, - lst::phi(acc, - mdsInGPU.anchorHighEdgeX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], - mdsInGPU.anchorHighEdgeY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - - mdsInGPU.anchorHighEdgePhi[fourthMDIndex]); - alpha_OutUp_lowEdge = - lst::phi_mpi_pi(acc, - lst::phi(acc, - mdsInGPU.anchorLowEdgeX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], - mdsInGPU.anchorLowEdgeY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - - mdsInGPU.anchorLowEdgePhi[fourthMDIndex]); + alpha_OutUp_highEdge = cms::alpakatools::phi_mpi_pi( + acc, + cms::alpakatools::phi(acc, + mdsInGPU.anchorHighEdgeX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], + mdsInGPU.anchorHighEdgeY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - + mdsInGPU.anchorHighEdgePhi[fourthMDIndex]); + alpha_OutUp_lowEdge = cms::alpakatools::phi_mpi_pi( + acc, + cms::alpakatools::phi(acc, + mdsInGPU.anchorLowEdgeX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], + mdsInGPU.anchorLowEdgeY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - + mdsInGPU.anchorLowEdgePhi[fourthMDIndex]); tl_axis_highEdge_x = mdsInGPU.anchorHighEdgeX[fourthMDIndex] - mdsInGPU.anchorX[firstMDIndex]; tl_axis_highEdge_y = mdsInGPU.anchorHighEdgeY[fourthMDIndex] - mdsInGPU.anchorY[firstMDIndex]; tl_axis_lowEdge_x = mdsInGPU.anchorLowEdgeX[fourthMDIndex] - mdsInGPU.anchorX[firstMDIndex]; tl_axis_lowEdge_y = mdsInGPU.anchorLowEdgeY[fourthMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaOutRHmin = -alpha_OutUp_highEdge + lst::phi_mpi_pi(acc, - lst::phi(acc, tl_axis_highEdge_x, tl_axis_highEdge_y) - - mdsInGPU.anchorHighEdgePhi[fourthMDIndex]); - betaOutRHmax = -alpha_OutUp_lowEdge + lst::phi_mpi_pi(acc, - lst::phi(acc, tl_axis_lowEdge_x, tl_axis_lowEdge_y) - - mdsInGPU.anchorLowEdgePhi[fourthMDIndex]); + betaOutRHmin = -alpha_OutUp_highEdge + + cms::alpakatools::phi_mpi_pi(acc, + cms::alpakatools::phi(acc, tl_axis_highEdge_x, tl_axis_highEdge_y) - + mdsInGPU.anchorHighEdgePhi[fourthMDIndex]); + betaOutRHmax = -alpha_OutUp_lowEdge + + cms::alpakatools::phi_mpi_pi(acc, + cms::alpakatools::phi(acc, tl_axis_lowEdge_x, tl_axis_lowEdge_y) - + mdsInGPU.anchorLowEdgePhi[fourthMDIndex]); } //beta computation @@ -1758,16 +1767,16 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - uint16_t& innerInnerLowerModuleIndex, - uint16_t& innerOuterLowerModuleIndex, - uint16_t& outerInnerLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, - unsigned int& innerSegmentIndex, - unsigned int& outerSegmentIndex, - unsigned int& firstMDIndex, - unsigned int& secondMDIndex, - unsigned int& thirdMDIndex, - unsigned int& fourthMDIndex, + const uint16_t innerInnerLowerModuleIndex, + const uint16_t innerOuterLowerModuleIndex, + const uint16_t outerInnerLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, + const unsigned int innerSegmentIndex, + const unsigned int outerSegmentIndex, + const unsigned int firstMDIndex, + const unsigned int secondMDIndex, + const unsigned int thirdMDIndex, + const unsigned int fourthMDIndex, float& zOut, float& rtOut, float& deltaPhiPos, @@ -1859,7 +1868,8 @@ namespace lst { const float sdlPVoff = 0.1f / rt_OutLo; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); + deltaPhiPos = + cms::alpakatools::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); //Cut #4: deltaPhiPos can be tighter if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) @@ -1870,7 +1880,7 @@ namespace lst { float diffX = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float diffY = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = cms::alpakatools::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) return false; @@ -1880,26 +1890,29 @@ namespace lst { float sdIn_alpha_max = __H2F(segmentsInGPU.dPhiChangeMaxs[innerSegmentIndex]); float sdOut_alpha = sdIn_alpha; - float sdOut_alphaOut = lst::phi_mpi_pi(acc, - lst::phi(acc, - mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], - mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - - mdsInGPU.anchorPhi[fourthMDIndex]); + float sdOut_alphaOut = cms::alpakatools::phi_mpi_pi( + acc, + cms::alpakatools::phi(acc, + mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], + mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - + mdsInGPU.anchorPhi[fourthMDIndex]); - float sdOut_alphaOut_min = lst::phi_mpi_pi( + float sdOut_alphaOut_min = cms::alpakatools::phi_mpi_pi( acc, __H2F(segmentsInGPU.dPhiChangeMins[outerSegmentIndex]) - __H2F(segmentsInGPU.dPhiMins[outerSegmentIndex])); - float sdOut_alphaOut_max = lst::phi_mpi_pi( + float sdOut_alphaOut_max = cms::alpakatools::phi_mpi_pi( acc, __H2F(segmentsInGPU.dPhiChangeMaxs[outerSegmentIndex]) - __H2F(segmentsInGPU.dPhiMaxs[outerSegmentIndex])); float tl_axis_x = mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = sdIn_alpha - cms::alpakatools::phi_mpi_pi( + acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float betaInRHmin = betaIn; float betaInRHmax = betaIn; - betaOut = - -sdOut_alphaOut + lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); + betaOut = -sdOut_alphaOut + + cms::alpakatools::phi_mpi_pi( + acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); float betaOutRHmin = betaOut; float betaOutRHmax = betaOut; @@ -2029,16 +2042,16 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - uint16_t& innerInnerLowerModuleIndex, - uint16_t& innerOuterLowerModuleIndex, - uint16_t& outerInnerLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, - unsigned int& innerSegmentIndex, - unsigned int& outerSegmentIndex, - unsigned int& firstMDIndex, - unsigned int& secondMDIndex, - unsigned int& thirdMDIndex, - unsigned int& fourthMDIndex, + const uint16_t innerInnerLowerModuleIndex, + const uint16_t innerOuterLowerModuleIndex, + const uint16_t outerInnerLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, + const unsigned int innerSegmentIndex, + const unsigned int outerSegmentIndex, + const unsigned int firstMDIndex, + const unsigned int secondMDIndex, + const unsigned int thirdMDIndex, + const unsigned int fourthMDIndex, float& zOut, float& rtOut, float& deltaPhiPos, @@ -2140,7 +2153,8 @@ namespace lst { float sdlPVoff = 0.1f / rtOut; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); + deltaPhiPos = + cms::alpakatools::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) return false; @@ -2150,7 +2164,7 @@ namespace lst { float diffX = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float diffY = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = cms::alpakatools::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) @@ -2158,28 +2172,31 @@ namespace lst { float sdIn_alpha = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); float sdOut_alpha = sdIn_alpha; //weird - float sdOut_dPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[thirdMDIndex]); + float sdOut_dPhiPos = + cms::alpakatools::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[thirdMDIndex]); float sdOut_dPhiChange = __H2F(segmentsInGPU.dPhiChanges[outerSegmentIndex]); float sdOut_dPhiChange_min = __H2F(segmentsInGPU.dPhiChangeMins[outerSegmentIndex]); float sdOut_dPhiChange_max = __H2F(segmentsInGPU.dPhiChangeMaxs[outerSegmentIndex]); - float sdOut_alphaOutRHmin = lst::phi_mpi_pi(acc, sdOut_dPhiChange_min - sdOut_dPhiPos); - float sdOut_alphaOutRHmax = lst::phi_mpi_pi(acc, sdOut_dPhiChange_max - sdOut_dPhiPos); - float sdOut_alphaOut = lst::phi_mpi_pi(acc, sdOut_dPhiChange - sdOut_dPhiPos); + float sdOut_alphaOutRHmin = cms::alpakatools::phi_mpi_pi(acc, sdOut_dPhiChange_min - sdOut_dPhiPos); + float sdOut_alphaOutRHmax = cms::alpakatools::phi_mpi_pi(acc, sdOut_dPhiChange_max - sdOut_dPhiPos); + float sdOut_alphaOut = cms::alpakatools::phi_mpi_pi(acc, sdOut_dPhiChange - sdOut_dPhiPos); float tl_axis_x = mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = sdIn_alpha - cms::alpakatools::phi_mpi_pi( + acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float sdIn_alphaRHmin = __H2F(segmentsInGPU.dPhiChangeMins[innerSegmentIndex]); float sdIn_alphaRHmax = __H2F(segmentsInGPU.dPhiChangeMaxs[innerSegmentIndex]); float betaInRHmin = betaIn + sdIn_alphaRHmin - sdIn_alpha; float betaInRHmax = betaIn + sdIn_alphaRHmax - sdIn_alpha; - betaOut = - -sdOut_alphaOut + lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); + betaOut = -sdOut_alphaOut + + cms::alpakatools::phi_mpi_pi( + acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); float betaOutRHmin = betaOut - sdOut_alphaOutRHmin + sdOut_alphaOut; float betaOutRHmax = betaOut - sdOut_alphaOutRHmax + sdOut_alphaOut; @@ -2286,16 +2303,16 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - uint16_t& innerInnerLowerModuleIndex, - uint16_t& innerOuterLowerModuleIndex, - uint16_t& outerInnerLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, - unsigned int& innerSegmentIndex, - unsigned int& outerSegmentIndex, - unsigned int& firstMDIndex, - unsigned int& secondMDIndex, - unsigned int& thirdMDIndex, - unsigned int& fourthMDIndex, + const uint16_t innerInnerLowerModuleIndex, + const uint16_t innerOuterLowerModuleIndex, + const uint16_t outerInnerLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, + const unsigned int innerSegmentIndex, + const unsigned int outerSegmentIndex, + const unsigned int firstMDIndex, + const unsigned int secondMDIndex, + const unsigned int thirdMDIndex, + const unsigned int fourthMDIndex, float& zOut, float& rtOut, float& deltaPhiPos, @@ -2494,13 +2511,13 @@ namespace lst { struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, struct lst::Triplets& tripletsInGPU, - uint16_t& lowerModuleIndex1, - uint16_t& lowerModuleIndex2, - uint16_t& lowerModuleIndex3, - uint16_t& lowerModuleIndex4, - uint16_t& lowerModuleIndex5, - unsigned int& innerTripletIndex, - unsigned int& outerTripletIndex, + const uint16_t lowerModuleIndex1, + const uint16_t lowerModuleIndex2, + const uint16_t lowerModuleIndex3, + const uint16_t lowerModuleIndex4, + const uint16_t lowerModuleIndex5, + const unsigned int innerTripletIndex, + const unsigned int outerTripletIndex, float& innerRadius, float& outerRadius, float& bridgeRadius, @@ -2988,7 +3005,7 @@ namespace lst { struct lst::Triplets tripletsInGPU, struct lst::Quintuplets quintupletsInGPU, struct lst::ObjectRanges rangesInGPU, - uint16_t nEligibleT5Modules) const { + const uint16_t nEligibleT5Modules) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index 9d725b51a7cba..0c4edf699f739 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -125,9 +125,9 @@ namespace lst { Segments data_; template - SegmentsBuffer(unsigned int nMemoryLocationsIn, - uint16_t nLowerModules, - unsigned int maxPixelSegments, + SegmentsBuffer(const unsigned int nMemoryLocationsIn, + const uint16_t nLowerModules, + const unsigned int maxPixelSegments, TDevAcc const& devAccIn, TQueue& queue) : dPhis_buf(allocBufWrapper(devAccIn, nMemoryLocationsIn, queue)), @@ -176,7 +176,7 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules_seg(struct lst::Modules& modulesInGPU, - unsigned int moduleIndex) { + const unsigned int moduleIndex) { // The "tighter" tilted modules are the subset of tilted modules that have smaller spacing // This is the same as what was previously considered as"isNormalTiltedModules" // See Figure 9.1 of https://cds.cern.ch/record/2272264/files/CMS-TDR-014.pdf @@ -199,7 +199,8 @@ namespace lst { ((side == PosZ) && (((layer == 2) && (rod < 8)) || ((layer == 1) && (rod < 4))))); }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg(short layer, short ring, short subdet, short side, short rod) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg( + const short layer, const short ring, const short subdet, const short side, const short rod) { static constexpr float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; static constexpr float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; static constexpr float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; @@ -229,7 +230,8 @@ namespace lst { return moduleSeparation; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg(struct lst::Modules& modulesInGPU, unsigned int moduleIndex) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg(struct lst::Modules& modulesInGPU, + const unsigned int moduleIndex) { static constexpr float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; static constexpr float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; static constexpr float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; @@ -274,10 +276,10 @@ namespace lst { float& yOut, float& zOut, float& rtOut, - uint16_t& innerLowerModuleIndex, - uint16_t& outerLowerModuleIndex, - unsigned int& innerMDIndex, - unsigned int& outerMDIndex) { + const uint16_t innerLowerModuleIndex, + const uint16_t outerLowerModuleIndex, + const unsigned int innerMDIndex, + const unsigned int outerMDIndex) { float sdMuls = (modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel) ? kMiniMulsPtScaleBarrel[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut : kMiniMulsPtScaleEndcap[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut; @@ -357,19 +359,19 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void addSegmentToMemory(struct lst::Segments& segmentsInGPU, - unsigned int lowerMDIndex, - unsigned int upperMDIndex, - uint16_t innerLowerModuleIndex, - uint16_t outerLowerModuleIndex, - unsigned int innerMDAnchorHitIndex, - unsigned int outerMDAnchorHitIndex, + const unsigned int lowerMDIndex, + const unsigned int upperMDIndex, + const uint16_t innerLowerModuleIndex, + const uint16_t outerLowerModuleIndex, + const unsigned int innerMDAnchorHitIndex, + const unsigned int outerMDAnchorHitIndex, float& dPhi, float& dPhiMin, float& dPhiMax, float& dPhiChange, float& dPhiChangeMin, float& dPhiChangeMax, - unsigned int idx) { + const unsigned int idx) { //idx will be computed in the kernel, which is the index into which the //segment will be written //nSegments will be incremented in the kernel @@ -393,16 +395,16 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelSegmentToMemory(TAcc const& acc, struct lst::Segments& segmentsInGPU, struct lst::MiniDoublets& mdsInGPU, - unsigned int innerMDIndex, - unsigned int outerMDIndex, - uint16_t pixelModuleIndex, - unsigned int hitIdxs[4], - unsigned int innerAnchorHitIndex, - unsigned int outerAnchorHitIndex, - float dPhiChange, - unsigned int idx, - unsigned int pixelSegmentArrayIndex, - float score) { + const unsigned int innerMDIndex, + const unsigned int outerMDIndex, + const uint16_t pixelModuleIndex, + const unsigned int hitIdxs[4], + const unsigned int innerAnchorHitIndex, + const unsigned int outerAnchorHitIndex, + const float dPhiChange, + const unsigned int idx, + const unsigned int pixelSegmentArrayIndex, + const float score) { segmentsInGPU.mdIndices[idx * 2] = innerMDIndex; segmentsInGPU.mdIndices[idx * 2 + 1] = outerMDIndex; segmentsInGPU.innerLowerModuleIndices[idx] = pixelModuleIndex; @@ -456,10 +458,10 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgoBarrel(TAcc const& acc, struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, - uint16_t& innerLowerModuleIndex, - uint16_t& outerLowerModuleIndex, - unsigned int& innerMDIndex, - unsigned int& outerMDIndex, + const uint16_t innerLowerModuleIndex, + const uint16_t outerLowerModuleIndex, + const unsigned int& innerMDIndex, + const unsigned int& outerMDIndex, float& zIn, float& zOut, float& rtIn, @@ -510,12 +512,13 @@ namespace lst { sdCut = sdSlope + alpaka::math::sqrt(acc, sdMuls * sdMuls + sdPVoff * sdPVoff); - dPhi = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); + dPhi = cms::alpakatools::phi_mpi_pi(acc, mdsInGPU.anchorPhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); if (alpaka::math::abs(acc, dPhi) > sdCut) return false; - dPhiChange = lst::phi_mpi_pi(acc, lst::phi(acc, xOut - xIn, yOut - yIn) - mdsInGPU.anchorPhi[innerMDIndex]); + dPhiChange = cms::alpakatools::phi_mpi_pi( + acc, cms::alpakatools::phi(acc, xOut - xIn, yOut - yIn) - mdsInGPU.anchorPhi[innerMDIndex]); if (alpaka::math::abs(acc, dPhiChange) > sdCut) return false; @@ -559,10 +562,10 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgoEndcap(TAcc const& acc, struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, - uint16_t& innerLowerModuleIndex, - uint16_t& outerLowerModuleIndex, - unsigned int& innerMDIndex, - unsigned int& outerMDIndex, + const uint16_t innerLowerModuleIndex, + const uint16_t outerLowerModuleIndex, + const unsigned int innerMDIndex, + const unsigned int outerMDIndex, float& zIn, float& zOut, float& rtIn, @@ -624,14 +627,14 @@ namespace lst { if ((rtOut < rtLo) || (rtOut > rtHi)) return false; - dPhi = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); + dPhi = cms::alpakatools::phi_mpi_pi(acc, mdsInGPU.anchorPhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); sdCut = sdSlope; if (outerLayerEndcapTwoS) { - float dPhiPos_high = - lst::phi_mpi_pi(acc, mdsInGPU.anchorHighEdgePhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); + float dPhiPos_high = cms::alpakatools::phi_mpi_pi( + acc, mdsInGPU.anchorHighEdgePhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); float dPhiPos_low = - lst::phi_mpi_pi(acc, mdsInGPU.anchorLowEdgePhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); + cms::alpakatools::phi_mpi_pi(acc, mdsInGPU.anchorLowEdgePhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); dPhiMax = alpaka::math::abs(acc, dPhiPos_high) > alpaka::math::abs(acc, dPhiPos_low) ? dPhiPos_high : dPhiPos_low; dPhiMin = alpaka::math::abs(acc, dPhiPos_high) > alpaka::math::abs(acc, dPhiPos_low) ? dPhiPos_low : dPhiPos_high; @@ -689,10 +692,10 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgo(TAcc const& acc, struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, - uint16_t& innerLowerModuleIndex, - uint16_t& outerLowerModuleIndex, - unsigned int& innerMDIndex, - unsigned int& outerMDIndex, + const uint16_t innerLowerModuleIndex, + const uint16_t outerLowerModuleIndex, + const unsigned int innerMDIndex, + const unsigned int outerMDIndex, float& zIn, float& zOut, float& rtIn, @@ -1021,7 +1024,7 @@ namespace lst { unsigned int* hitIndices2, unsigned int* hitIndices3, float* dPhiChange, - uint16_t pixelModuleIndex, + const uint16_t pixelModuleIndex, const int size) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -1046,7 +1049,6 @@ namespace lst { 0, 0, 0, - 0, innerMDIndex); addMDToMemory(acc, mdsInGPU, @@ -1063,7 +1065,6 @@ namespace lst { 0, 0, 0, - 0, outerMDIndex); //in outer hits - pt, eta, phi diff --git a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h index 7451f5e47dc80..6163e5dafead8 100644 --- a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h +++ b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h @@ -77,7 +77,7 @@ namespace lst { TrackCandidates data_; template - TrackCandidatesBuffer(unsigned int maxTrackCandidates, TDevAcc const& devAccIn, TQueue& queue) + TrackCandidatesBuffer(const unsigned int maxTrackCandidates, TDevAcc const& devAccIn, TQueue& queue) : trackCandidateType_buf(allocBufWrapper(devAccIn, maxTrackCandidates, queue)), directObjectIndices_buf(allocBufWrapper(devAccIn, maxTrackCandidates, queue)), objectIndices_buf(allocBufWrapper(devAccIn, 2 * maxTrackCandidates, queue)), @@ -110,10 +110,10 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void addpLSTrackCandidateToMemory(struct lst::TrackCandidates& trackCandidatesInGPU, - unsigned int trackletIndex, - unsigned int trackCandidateIndex, - uint4 hitIndices, - int pixelSeedIndex) { + const unsigned int trackletIndex, + const unsigned int trackCandidateIndex, + const uint4 hitIndices, + const int pixelSeedIndex) { trackCandidatesInGPU.trackCandidateType[trackCandidateIndex] = 8; // type for pLS trackCandidatesInGPU.directObjectIndices[trackCandidateIndex] = trackletIndex; trackCandidatesInGPU.pixelSeedIndex[trackCandidateIndex] = pixelSeedIndex; @@ -129,18 +129,18 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTrackCandidateToMemory(struct lst::TrackCandidates& trackCandidatesInGPU, - short trackCandidateType, - unsigned int innerTrackletIndex, - unsigned int outerTrackletIndex, + const short trackCandidateType, + const unsigned int innerTrackletIndex, + const unsigned int outerTrackletIndex, uint8_t* logicalLayerIndices, uint16_t* lowerModuleIndices, unsigned int* hitIndices, - int pixelSeedIndex, - float centerX, - float centerY, - float radius, - unsigned int trackCandidateIndex, - unsigned int directObjectIndex) { + const int pixelSeedIndex, + const float centerX, + const float centerY, + const float radius, + const unsigned int trackCandidateIndex, + const unsigned int directObjectIndex) { trackCandidatesInGPU.trackCandidateType[trackCandidateIndex] = trackCandidateType; trackCandidatesInGPU.directObjectIndices[trackCandidateIndex] = directObjectIndex; trackCandidatesInGPU.pixelSeedIndex[trackCandidateIndex] = pixelSeedIndex; @@ -165,8 +165,8 @@ namespace lst { trackCandidatesInGPU.radius[trackCandidateIndex] = __F2H(radius); }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkPixelHits(unsigned int ix, - unsigned int jx, + ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkPixelHits(const unsigned int ix, + const unsigned int jx, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, struct lst::Hits& hitsInGPU) { @@ -236,7 +236,7 @@ namespace lst { float eta2 = segmentsInGPU.eta[pLS_jx - prefix]; float phi2 = segmentsInGPU.phi[pLS_jx - prefix]; float dEta = alpaka::math::abs(acc, (eta1 - eta2)); - float dPhi = lst::calculate_dPhi(phi1, phi2); + float dPhi = cms::alpakatools::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 1e-5f) @@ -289,7 +289,7 @@ namespace lst { } float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = lst::calculate_dPhi(phi1, phi2); + float dPhi = cms::alpakatools::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 1e-3f) @@ -339,7 +339,7 @@ namespace lst { float eta2 = __H2F(quintupletsInGPU.eta[quintupletIndex]); float phi2 = __H2F(quintupletsInGPU.phi[quintupletIndex]); float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = lst::calculate_dPhi(phi1, phi2); + float dPhi = cms::alpakatools::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 1e-3f) @@ -356,7 +356,7 @@ namespace lst { float eta2 = __H2F(pixelTripletsInGPU.eta_pix[pT3Index]); float phi2 = __H2F(pixelTripletsInGPU.phi_pix[pT3Index]); float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = lst::calculate_dPhi(phi1, phi2); + float dPhi = cms::alpakatools::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 0.000001f) @@ -373,7 +373,7 @@ namespace lst { float eta2 = segmentsInGPU.eta[pLSIndex - prefix]; float phi2 = segmentsInGPU.phi[pLSIndex - prefix]; float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = lst::calculate_dPhi(phi1, phi2); + float dPhi = cms::alpakatools::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 0.000001f) @@ -439,7 +439,7 @@ namespace lst { struct addT5asTrackCandidateInGPU { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - uint16_t nLowerModules, + const uint16_t nLowerModules, struct lst::Quintuplets quintupletsInGPU, struct lst::TrackCandidates trackCandidatesInGPU, struct lst::ObjectRanges rangesInGPU) const { @@ -493,10 +493,10 @@ namespace lst { struct addpLSasTrackCandidateInGPU { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - uint16_t nLowerModules, + const uint16_t nLowerModules, struct lst::TrackCandidates trackCandidatesInGPU, struct lst::Segments segmentsInGPU, - bool tc_pls_triplets) const { + const bool tc_pls_triplets) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -532,7 +532,7 @@ namespace lst { struct addpT5asTrackCandidateInGPU { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - uint16_t nLowerModules, + const uint16_t nLowerModules, struct lst::PixelQuintuplets pixelQuintupletsInGPU, struct lst::TrackCandidates trackCandidatesInGPU, struct lst::Segments segmentsInGPU, diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index d67e72369d896..f03e412669be4 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -109,7 +109,10 @@ namespace lst { Triplets data_; template - TripletsBuffer(unsigned int maxTriplets, unsigned int nLowerModules, TDevAcc const& devAccIn, TQueue& queue) + TripletsBuffer(const unsigned int maxTriplets, + const unsigned int nLowerModules, + TDevAcc const& devAccIn, + TQueue& queue) : segmentIndices_buf(allocBufWrapper(devAccIn, 2 * maxTriplets, queue)), lowerModuleIndices_buf(allocBufWrapper(devAccIn, Params_T3::kLayers * maxTriplets, queue)), nTriplets_buf(allocBufWrapper(devAccIn, nLowerModules, queue)), @@ -156,11 +159,11 @@ namespace lst { struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, struct lst::Triplets& tripletsInGPU, - unsigned int& innerSegmentIndex, - unsigned int& outerSegmentIndex, - uint16_t& innerInnerLowerModuleIndex, - uint16_t& middleLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, + const unsigned int innerSegmentIndex, + const unsigned int outerSegmentIndex, + const uint16_t innerInnerLowerModuleIndex, + const uint16_t middleLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, float& zOut, float& rtOut, float& deltaPhiPos, @@ -177,22 +180,22 @@ namespace lst { float& zHiPointed, float& sdlCut, float& betaInCut, - unsigned int& tripletIndex) + const unsigned int tripletIndex) #else ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTripletToMemory(struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, struct lst::Triplets& tripletsInGPU, - unsigned int& innerSegmentIndex, - unsigned int& outerSegmentIndex, - uint16_t& innerInnerLowerModuleIndex, - uint16_t& middleLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, + const unsigned int innerSegmentIndex, + const unsigned int outerSegmentIndex, + const uint16_t innerInnerLowerModuleIndex, + const uint16_t middleLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, float& betaIn, float& circleRadius, float& circleCenterX, float& circleCenterY, - unsigned int& tripletIndex) + const unsigned int tripletIndex) #endif { tripletsInGPU.segmentIndices[tripletIndex * 2] = innerSegmentIndex; @@ -243,12 +246,12 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - uint16_t& innerInnerLowerModuleIndex, - uint16_t& middleLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, - unsigned int& firstMDIndex, - unsigned int& secondMDIndex, - unsigned int& thirdMDIndex) { + const uint16_t innerInnerLowerModuleIndex, + const uint16_t middleLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, + const unsigned int firstMDIndex, + const unsigned int secondMDIndex, + const unsigned int thirdMDIndex) { //get the rt and z const float& r1 = mdsInGPU.anchorRt[firstMDIndex]; const float& r2 = mdsInGPU.anchorRt[secondMDIndex]; @@ -303,15 +306,15 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - uint16_t& innerInnerLowerModuleIndex, - uint16_t& middleLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, - unsigned int& firstMDIndex, - unsigned int& secondMDIndex, - unsigned int& thirdMDIndex, + const uint16_t innerInnerLowerModuleIndex, + const uint16_t middleLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, + const unsigned int firstMDIndex, + const unsigned int secondMDIndex, + const unsigned int thirdMDIndex, float& zOut, float& rtOut, - unsigned int& innerSegmentIndex, + const unsigned int innerSegmentIndex, float& betaIn, float& betaInCut) { bool isPSIn = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS); @@ -376,7 +379,8 @@ namespace lst { float alpha_InLo = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); float tl_axis_x = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = alpha_InLo - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = alpha_InLo - cms::alpakatools::phi_mpi_pi( + acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); //beta computation float drt_tl_axis = alpaka::math::sqrt(acc, tl_axis_x * tl_axis_x + tl_axis_y * tl_axis_y); @@ -402,17 +406,17 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - uint16_t& innerInnerLowerModuleIndex, - uint16_t& middleLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, - unsigned int& firstMDIndex, - unsigned int& secondMDIndex, - unsigned int& thirdMDIndex, + const uint16_t innerInnerLowerModuleIndex, + const uint16_t middleLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, + const unsigned int firstMDIndex, + const unsigned int secondMDIndex, + const unsigned int thirdMDIndex, float& zOut, float& rtOut, - uint16_t& innerOuterLowerModuleIndex, - unsigned int& innerSegmentIndex, - unsigned int& outerSegmentIndex, + const uint16_t innerOuterLowerModuleIndex, + const unsigned int innerSegmentIndex, + const unsigned int outerSegmentIndex, float& betaIn, float& betaInCut) { bool isPSIn = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS); @@ -489,7 +493,8 @@ namespace lst { float tl_axis_x = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = sdIn_alpha - cms::alpakatools::phi_mpi_pi( + acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float betaInRHmin = betaIn; float betaInRHmax = betaIn; @@ -523,16 +528,16 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - uint16_t& innerInnerLowerModuleIndex, - uint16_t& middleLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, - unsigned int& firstMDIndex, - unsigned int& secondMDIndex, - unsigned int& thirdMDIndex, + const uint16_t innerInnerLowerModuleIndex, + const uint16_t middleLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, + const unsigned int firstMDIndex, + const unsigned int secondMDIndex, + const unsigned int thirdMDIndex, float& zOut, float& rtOut, - unsigned int& innerSegmentIndex, - unsigned int& outerSegmentIndex, + const unsigned int innerSegmentIndex, + const unsigned int outerSegmentIndex, float& betaIn, float& betaInCut) { float rtIn = mdsInGPU.anchorRt[firstMDIndex]; @@ -611,7 +616,8 @@ namespace lst { float tl_axis_x = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = sdIn_alpha - cms::alpakatools::phi_mpi_pi( + acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float sdIn_alphaRHmin = __H2F(segmentsInGPU.dPhiChangeMins[innerSegmentIndex]); float sdIn_alphaRHmax = __H2F(segmentsInGPU.dPhiChangeMaxs[innerSegmentIndex]); @@ -646,17 +652,17 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - uint16_t& innerInnerLowerModuleIndex, - uint16_t& middleLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, - unsigned int& firstMDIndex, - unsigned int& secondMDIndex, - unsigned int& thirdMDIndex, + const uint16_t innerInnerLowerModuleIndex, + const uint16_t middleLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, + const unsigned int firstMDIndex, + const unsigned int secondMDIndex, + const unsigned int thirdMDIndex, float& zOut, float& rtOut, - uint16_t& innerOuterLowerModuleIndex, - unsigned int& innerSegmentIndex, - unsigned int& outerSegmentIndex, + const uint16_t innerOuterLowerModuleIndex, + const unsigned int innerSegmentIndex, + const unsigned int outerSegmentIndex, float& betaIn, float& betaInCut) { short innerInnerLowerModuleSubdet = modulesInGPU.subdets[innerInnerLowerModuleIndex]; @@ -744,8 +750,15 @@ namespace lst { }; template - ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeRadiusFromThreeAnchorHits( - TAcc const& acc, float x1, float y1, float x2, float y2, float x3, float y3, float& g, float& f) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeRadiusFromThreeAnchorHits(TAcc const& acc, + const float x1, + const float y1, + const float x2, + const float y2, + const float x3, + const float y3, + float& g, + float& f) { float radius = 0.f; //writing manual code for computing radius, which obviously sucks @@ -783,11 +796,11 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - uint16_t& innerInnerLowerModuleIndex, - uint16_t& middleLowerModuleIndex, - uint16_t& outerOuterLowerModuleIndex, - unsigned int& innerSegmentIndex, - unsigned int& outerSegmentIndex, + const uint16_t innerInnerLowerModuleIndex, + const uint16_t middleLowerModuleIndex, + const uint16_t outerOuterLowerModuleIndex, + const unsigned int innerSegmentIndex, + const unsigned int outerSegmentIndex, float& zOut, float& rtOut, float& deltaPhiPos, @@ -862,7 +875,7 @@ namespace lst { struct lst::Triplets tripletsInGPU, struct lst::ObjectRanges rangesInGPU, uint16_t* index_gpu, - uint16_t nonZeroModules) const { + const uint16_t nonZeroModules) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); From e076050e099e1e1af41a9c8c25add98e14ca0976 Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Sat, 27 Jul 2024 14:51:16 -0700 Subject: [PATCH 22/35] Revert moving general purpose functions to common CMSSW file --- .../AlpakaInterface/interface/binarySearch.h | 29 ----- .../AlpakaInterface/interface/geomFunctions.h | 57 --------- .../plugins/LSTPhase2OTHitsInputProducer.cc | 2 - RecoTracker/LSTCore/src/alpaka/Hit.h | 78 ++++++++++++- RecoTracker/LSTCore/src/alpaka/Kernels.h | 6 +- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 42 ++++--- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 102 ++++++++-------- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 110 ++++++++---------- RecoTracker/LSTCore/src/alpaka/Segment.h | 13 +-- .../LSTCore/src/alpaka/TrackCandidate.h | 10 +- RecoTracker/LSTCore/src/alpaka/Triplet.h | 9 +- 11 files changed, 209 insertions(+), 249 deletions(-) delete mode 100644 HeterogeneousCore/AlpakaInterface/interface/binarySearch.h delete mode 100644 HeterogeneousCore/AlpakaInterface/interface/geomFunctions.h diff --git a/HeterogeneousCore/AlpakaInterface/interface/binarySearch.h b/HeterogeneousCore/AlpakaInterface/interface/binarySearch.h deleted file mode 100644 index abf9b49f48496..0000000000000 --- a/HeterogeneousCore/AlpakaInterface/interface/binarySearch.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef HeterogeneousCore_AlpakaInterface_interface_binarySearch_h -#define HeterogeneousCore_AlpakaInterface_interface_binarySearch_h - -namespace cms::alpakatools { - - ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE int binary_search(const unsigned int* data, // Array that we are searching over - const unsigned int search_val, // Value we want to find in data array - const unsigned int ndata) // Number of elements in data array - { - unsigned int low = 0; - unsigned int high = ndata - 1; - - while (low <= high) { - unsigned int mid = (low + high) / 2; - unsigned int test_val = data[mid]; - if (test_val == search_val) - return mid; - else if (test_val > search_val) - high = mid - 1; - else - low = mid + 1; - } - // Couldn't find search value in array. - return -1; - }; - -} // namespace cms::alpakatools - -#endif // HeterogeneousCore_AlpakaInterface_interface_binarySearch_h diff --git a/HeterogeneousCore/AlpakaInterface/interface/geomFunctions.h b/HeterogeneousCore/AlpakaInterface/interface/geomFunctions.h deleted file mode 100644 index c1f83c4d2eeaf..0000000000000 --- a/HeterogeneousCore/AlpakaInterface/interface/geomFunctions.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef HeterogeneousCore_AlpakaInterface_interface_geomFunctions_h -#define HeterogeneousCore_AlpakaInterface_interface_geomFunctions_h - -namespace cms::alpakatools { - - template - ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float eta(TAcc const& acc, const float x, const float y, const float z) { - float r3 = alpaka::math::sqrt(acc, x * x + y * y + z * z); - float rt = alpaka::math::sqrt(acc, x * x + y * y); - float eta = ((z > 0) - (z < 0)) * alpaka::math::acosh(acc, r3 / rt); - return eta; - }; - - template - ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float phi_mpi_pi(TAcc const& acc, const float x) { - if (alpaka::math::abs(acc, x) <= float(M_PI)) - return x; - - constexpr float o2pi = 1.f / (2.f * float(M_PI)); - float n = alpaka::math::round(acc, x * o2pi); - return x - n * float(2.f * float(M_PI)); - }; - - template - ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float phi(TAcc const& acc, const float x, const float y) { - return phi_mpi_pi(acc, float(M_PI) + alpaka::math::atan2(acc, -y, -x)); - }; - - template - ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float deltaPhi(TAcc const& acc, const float x1, const float y1, const float x2, const float y2) { - float phi1 = phi(acc, x1, y1); - float phi2 = phi(acc, x2, y2); - return phi_mpi_pi(acc, (phi2 - phi1)); - }; - - template - ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float deltaPhiChange(TAcc const& acc, const float x1, const float y1, const float x2, const float y2) { - return deltaPhi(acc, x1, y1, x2 - x1, y2 - y1); - }; - - ALPAKA_FN_ACC ALPAKA_FN_INLINE float calculate_dPhi(const float phi1, const float phi2) { - // Calculate dPhi - float dPhi = phi1 - phi2; - - // Normalize dPhi to be between -pi and pi - if (dPhi > float(M_PI)) { - dPhi -= 2 * float(M_PI); - } else if (dPhi < -float(M_PI)) { - dPhi += 2 * float(M_PI); - } - - return dPhi; - }; - -} // namespace cms::alpakatools - -#endif // HeterogeneousCore_AlpakaInterface_interface_geomFunctions_h diff --git a/RecoTracker/LST/plugins/LSTPhase2OTHitsInputProducer.cc b/RecoTracker/LST/plugins/LSTPhase2OTHitsInputProducer.cc index dd776814e286f..3fd0a76770e56 100644 --- a/RecoTracker/LST/plugins/LSTPhase2OTHitsInputProducer.cc +++ b/RecoTracker/LST/plugins/LSTPhase2OTHitsInputProducer.cc @@ -50,10 +50,8 @@ void LSTPhase2OTHitsInputProducer::produce(edm::StreamID iID, edm::Event& iEvent ph2_hits.reserve(phase2OTHits.dataSize()); for (auto const& it : phase2OTHits) { - //for (auto it = phase2OTHits.begin(); it != phase2OTHits.end(); it++) { const DetId hitId = it.detId(); for (auto const& hit : it) { - //for (auto hit = it->begin(); hit != it->end(); hit++) { ph2_detId.push_back(hitId.rawId()); ph2_x.push_back(hit.globalPosition().x()); ph2_y.push_back(hit.globalPosition().y()); diff --git a/RecoTracker/LSTCore/src/alpaka/Hit.h b/RecoTracker/LSTCore/src/alpaka/Hit.h index 8084aef169f8b..5acb255e03957 100644 --- a/RecoTracker/LSTCore/src/alpaka/Hit.h +++ b/RecoTracker/LSTCore/src/alpaka/Hit.h @@ -1,8 +1,6 @@ #ifndef RecoTracker_LSTCore_src_alpaka_Hit_h #define RecoTracker_LSTCore_src_alpaka_Hit_h -#include "HeterogeneousCore/AlpakaInterface/interface/binarySearch.h" -#include "HeterogeneousCore/AlpakaInterface/interface/geomFunctions.h" #include "RecoTracker/LSTCore/interface/alpaka/Constants.h" #include "RecoTracker/LSTCore/interface/Module.h" @@ -109,6 +107,76 @@ namespace lst { inline void setData(HitsBuffer& buf) { data_.setData(buf); } }; + template + ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float eta(TAcc const& acc, float x, float y, float z) { + float r3 = alpaka::math::sqrt(acc, x * x + y * y + z * z); + float rt = alpaka::math::sqrt(acc, x * x + y * y); + float eta = ((z > 0) - (z < 0)) * alpaka::math::acosh(acc, r3 / rt); + return eta; + }; + + template + ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float phi_mpi_pi(TAcc const& acc, float x) { + if (alpaka::math::abs(acc, x) <= float(M_PI)) + return x; + + constexpr float o2pi = 1.f / (2.f * float(M_PI)); + float n = alpaka::math::round(acc, x * o2pi); + return x - n * float(2.f * float(M_PI)); + }; + + template + ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float phi(TAcc const& acc, float x, float y) { + return phi_mpi_pi(acc, float(M_PI) + alpaka::math::atan2(acc, -y, -x)); + }; + + template + ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float deltaPhi(TAcc const& acc, float x1, float y1, float x2, float y2) { + float phi1 = phi(acc, x1, y1); + float phi2 = phi(acc, x2, y2); + return phi_mpi_pi(acc, (phi2 - phi1)); + }; + + template + ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE float deltaPhiChange(TAcc const& acc, float x1, float y1, float x2, float y2) { + return deltaPhi(acc, x1, y1, x2 - x1, y2 - y1); + }; + + ALPAKA_FN_ACC ALPAKA_FN_INLINE float calculate_dPhi(float phi1, float phi2) { + // Calculate dPhi + float dPhi = phi1 - phi2; + + // Normalize dPhi to be between -pi and pi + if (dPhi > float(M_PI)) { + dPhi -= 2 * float(M_PI); + } else if (dPhi < -float(M_PI)) { + dPhi += 2 * float(M_PI); + } + + return dPhi; + }; + + ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE int binary_search(const unsigned int* data, // Array that we are searching over + unsigned int search_val, // Value we want to find in data array + unsigned int ndata) // Number of elements in data array + { + unsigned int low = 0; + unsigned int high = ndata - 1; + + while (low <= high) { + unsigned int mid = (low + high) / 2; + unsigned int test_val = data[mid]; + if (test_val == search_val) + return mid; + else if (test_val > search_val) + high = mid - 1; + else + low = mid + 1; + } + // Couldn't find search value in array. + return -1; + }; + struct moduleRangesKernel { template ALPAKA_FN_ACC void operator()(TAcc const& acc, @@ -154,19 +222,19 @@ namespace lst { int iDetId = hitsInGPU.detid[ihit]; hitsInGPU.rts[ihit] = alpaka::math::sqrt(acc, ihit_x * ihit_x + ihit_y * ihit_y); - hitsInGPU.phis[ihit] = cms::alpakatools::phi(acc, ihit_x, ihit_y); + hitsInGPU.phis[ihit] = lst::phi(acc, ihit_x, ihit_y); hitsInGPU.etas[ihit] = ((ihit_z > 0) - (ihit_z < 0)) * alpaka::math::acosh( acc, alpaka::math::sqrt(acc, ihit_x * ihit_x + ihit_y * ihit_y + ihit_z * ihit_z) / hitsInGPU.rts[ihit]); - int found_index = cms::alpakatools::binary_search(modulesInGPU.mapdetId, iDetId, nModules); + int found_index = binary_search(modulesInGPU.mapdetId, iDetId, nModules); uint16_t lastModuleIndex = modulesInGPU.mapIdx[found_index]; hitsInGPU.moduleIndices[ihit] = lastModuleIndex; if (modulesInGPU.subdets[lastModuleIndex] == Endcap && modulesInGPU.moduleType[lastModuleIndex] == TwoS) { - found_index = cms::alpakatools::binary_search(geoMapDetId, iDetId, nEndCapMap); + found_index = binary_search(geoMapDetId, iDetId, nEndCapMap); float phi = geoMapPhi[found_index]; float cos_phi = alpaka::math::cos(acc, phi); hitsInGPU.highEdgeXs[ihit] = ihit_x + 2.5f * cos_phi; diff --git a/RecoTracker/LSTCore/src/alpaka/Kernels.h b/RecoTracker/LSTCore/src/alpaka/Kernels.h index 591567d258e3c..c2ee2570398f6 100644 --- a/RecoTracker/LSTCore/src/alpaka/Kernels.h +++ b/RecoTracker/LSTCore/src/alpaka/Kernels.h @@ -167,7 +167,7 @@ namespace lst { float eta2 = __H2F(quintupletsInGPU.eta[jx]); float phi2 = __H2F(quintupletsInGPU.phi[jx]); float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = cms::alpakatools::calculate_dPhi(phi1, phi2); + float dPhi = lst::calculate_dPhi(phi1, phi2); float score_rphisum2 = __H2F(quintupletsInGPU.score_rphisum[jx]); if (dEta > 0.1f) @@ -239,7 +239,7 @@ namespace lst { float score_rphisum2 = __H2F(quintupletsInGPU.score_rphisum[jx]); float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = cms::alpakatools::calculate_dPhi(phi1, phi2); + float dPhi = lst::calculate_dPhi(phi1, phi2); if (dEta > 0.1f) continue; @@ -410,7 +410,7 @@ namespace lst { } if (secondpass) { float dEta = alpaka::math::abs(acc, eta_pix1 - eta_pix2); - float dPhi = cms::alpakatools::calculate_dPhi(phi_pix1, phi_pix2); + float dPhi = lst::calculate_dPhi(phi_pix1, phi_pix2); float dR2 = dEta * dEta + dPhi * dPhi; if ((npMatched >= 1) || (dR2 < 1e-5f)) { diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index 9ef128f0f7c67..1e7474db90748 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -707,21 +707,21 @@ namespace lst { shiftedZ = zUpper; shiftedRt2 = xn * xn + yn * yn; - dPhi = cms::alpakatools::deltaPhi(acc, xLower, yLower, shiftedX, shiftedY); //function from Hit.cc - noShiftedDphi = cms::alpakatools::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = lst::deltaPhi(acc, xLower, yLower, shiftedX, shiftedY); //function from Hit.cc + noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } else { shiftedX = xn; shiftedY = yn; shiftedZ = zLower; shiftedRt2 = xn * xn + yn * yn; - dPhi = cms::alpakatools::deltaPhi(acc, shiftedX, shiftedY, xUpper, yUpper); - noShiftedDphi = cms::alpakatools::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = lst::deltaPhi(acc, shiftedX, shiftedY, xUpper, yUpper); + noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } } else { shiftedX = 0; shiftedY = 0; shiftedZ = 0; - dPhi = cms::alpakatools::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); noShiftedDphi = dPhi; } @@ -740,26 +740,24 @@ namespace lst { // But I still placed this check for safety. (TODO: After checking explicitly if not needed remove later?) // setdeltaPhiChange(lowerHit.rt() < upperHitMod.rt() ? lowerHit.deltaPhiChange(upperHitMod) : upperHitMod.deltaPhiChange(lowerHit)); - dPhiChange = (rtLower * rtLower < shiftedRt2) - ? cms::alpakatools::deltaPhiChange(acc, xLower, yLower, shiftedX, shiftedY) - : cms::alpakatools::deltaPhiChange(acc, shiftedX, shiftedY, xLower, yLower); - noShiftedDphiChange = rtLower < rtUpper ? cms::alpakatools::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper) - : cms::alpakatools::deltaPhiChange(acc, xUpper, yUpper, xLower, yLower); + dPhiChange = (rtLower * rtLower < shiftedRt2) ? lst::deltaPhiChange(acc, xLower, yLower, shiftedX, shiftedY) + : lst::deltaPhiChange(acc, shiftedX, shiftedY, xLower, yLower); + noShiftedDphiChange = rtLower < rtUpper ? lst::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper) + : lst::deltaPhiChange(acc, xUpper, yUpper, xLower, yLower); } else { // dPhi Change should be calculated so that the upper hit has higher rt. // In principle, this kind of check rt_lower < rt_upper should not be necessary because the hit shifting should have taken care of this. // (i.e. the strip hit is shifted to be aligned in the line of sight from interaction point to pixel hit of PS module guaranteeing rt ordering) // But I still placed this check for safety. (TODO: After checking explicitly if not needed remove later?) - dPhiChange = (shiftedRt2 < rtUpper * rtUpper) - ? cms::alpakatools::deltaPhiChange(acc, shiftedX, shiftedY, xUpper, yUpper) - : cms::alpakatools::deltaPhiChange(acc, xUpper, yUpper, shiftedX, shiftedY); - noShiftedDphiChange = rtLower < rtUpper ? cms::alpakatools::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper) - : cms::alpakatools::deltaPhiChange(acc, xUpper, yUpper, xLower, yLower); + dPhiChange = (shiftedRt2 < rtUpper * rtUpper) ? lst::deltaPhiChange(acc, shiftedX, shiftedY, xUpper, yUpper) + : lst::deltaPhiChange(acc, xUpper, yUpper, shiftedX, shiftedY); + noShiftedDphiChange = rtLower < rtUpper ? lst::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper) + : lst::deltaPhiChange(acc, xUpper, yUpper, xLower, yLower); } } else { // When it is flat lying module, whichever is the lowerSide will always have rt lower - dPhiChange = cms::alpakatools::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper); + dPhiChange = lst::deltaPhiChange(acc, xLower, yLower, xUpper, yUpper); noShiftedDphiChange = dPhiChange; } @@ -836,21 +834,21 @@ namespace lst { shiftedX = xn; shiftedY = yn; shiftedZ = zUpper; - dPhi = cms::alpakatools::deltaPhi(acc, xLower, yLower, shiftedX, shiftedY); - noShiftedDphi = cms::alpakatools::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = lst::deltaPhi(acc, xLower, yLower, shiftedX, shiftedY); + noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } else { shiftedX = xn; shiftedY = yn; shiftedZ = zLower; - dPhi = cms::alpakatools::deltaPhi(acc, shiftedX, shiftedY, xUpper, yUpper); - noShiftedDphi = cms::alpakatools::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = lst::deltaPhi(acc, shiftedX, shiftedY, xUpper, yUpper); + noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } } else { shiftedX = xn; shiftedY = yn; shiftedZ = zUpper; - dPhi = cms::alpakatools::deltaPhi(acc, xLower, yLower, xn, yn); - noShiftedDphi = cms::alpakatools::deltaPhi(acc, xLower, yLower, xUpper, yUpper); + dPhi = lst::deltaPhi(acc, xLower, yLower, xn, yn); + noShiftedDphi = lst::deltaPhi(acc, xLower, yLower, xUpper, yUpper); } // dz needs to change if it is a PS module where the strip hits are shifted in order to properly account for the case when a tilted module falls under "endcap logic" diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index 723521d4fdeaf..5bfc7f5aa7a8b 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -1324,7 +1324,7 @@ namespace lst { float rt_InOut = rt_InUp; - if (alpaka::math::abs(acc, cms::alpakatools::deltaPhi(acc, x_InUp, y_InUp, x_OutLo, y_OutLo)) > 0.5f * float(M_PI)) + if (alpaka::math::abs(acc, lst::deltaPhi(acc, x_InUp, y_InUp, x_OutLo, y_OutLo)) > 0.5f * float(M_PI)) return false; unsigned int pixelSegmentArrayIndex = innerSegmentIndex - rangesInGPU.segmentModuleIndices[pixelModuleIndex]; @@ -1392,7 +1392,7 @@ namespace lst { sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); #ifdef CUT_VALUE_DEBUG - dPhiPos = cms::alpakatools::deltaPhi(acc, x_InUp, y_InUp, x_OutUp, y_OutUp); + dPhiPos = lst::deltaPhi(acc, x_InUp, y_InUp, x_OutUp, y_OutUp); #endif //no dphipos cut @@ -1402,7 +1402,7 @@ namespace lst { float diffX = x_OutLo - x_InLo; float diffY = y_OutLo - y_InLo; - dPhi = cms::alpakatools::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); if (alpaka::math::abs(acc, dPhi) > sdlCut) return false; @@ -1416,7 +1416,7 @@ namespace lst { modulesInGPU.moduleType[outerOuterLowerModuleIndex] == lst::TwoS; float alpha_OutUp, alpha_OutUp_highEdge, alpha_OutUp_lowEdge; - alpha_OutUp = cms::alpakatools::deltaPhi(acc, x_OutUp, y_OutUp, x_OutUp - x_OutLo, y_OutUp - y_OutLo); + alpha_OutUp = lst::deltaPhi(acc, x_OutUp, y_OutUp, x_OutUp - x_OutLo, y_OutUp - y_OutLo); alpha_OutUp_highEdge = alpha_OutUp; alpha_OutUp_lowEdge = alpha_OutUp; @@ -1430,42 +1430,42 @@ namespace lst { float tl_axis_lowEdge_x = tl_axis_x; float tl_axis_lowEdge_y = tl_axis_y; - betaIn = -cms::alpakatools::deltaPhi(acc, px, py, tl_axis_x, tl_axis_y); + betaIn = -lst::deltaPhi(acc, px, py, tl_axis_x, tl_axis_y); float betaInRHmin = betaIn; float betaInRHmax = betaIn; - betaOut = -alpha_OutUp + cms::alpakatools::deltaPhi(acc, x_OutUp, y_OutUp, tl_axis_x, tl_axis_y); + betaOut = -alpha_OutUp + lst::deltaPhi(acc, x_OutUp, y_OutUp, tl_axis_x, tl_axis_y); float betaOutRHmin = betaOut; float betaOutRHmax = betaOut; if (isEC_lastLayer) { - alpha_OutUp_highEdge = cms::alpakatools::deltaPhi(acc, - mdsInGPU.anchorHighEdgeX[fourthMDIndex], - mdsInGPU.anchorHighEdgeY[fourthMDIndex], - mdsInGPU.anchorHighEdgeX[fourthMDIndex] - x_OutLo, - mdsInGPU.anchorHighEdgeY[fourthMDIndex] - y_OutLo); - alpha_OutUp_lowEdge = cms::alpakatools::deltaPhi(acc, - mdsInGPU.anchorLowEdgeX[fourthMDIndex], - mdsInGPU.anchorLowEdgeY[fourthMDIndex], - mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_OutLo, - mdsInGPU.anchorLowEdgeY[fourthMDIndex] - y_OutLo); + alpha_OutUp_highEdge = lst::deltaPhi(acc, + mdsInGPU.anchorHighEdgeX[fourthMDIndex], + mdsInGPU.anchorHighEdgeY[fourthMDIndex], + mdsInGPU.anchorHighEdgeX[fourthMDIndex] - x_OutLo, + mdsInGPU.anchorHighEdgeY[fourthMDIndex] - y_OutLo); + alpha_OutUp_lowEdge = lst::deltaPhi(acc, + mdsInGPU.anchorLowEdgeX[fourthMDIndex], + mdsInGPU.anchorLowEdgeY[fourthMDIndex], + mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_OutLo, + mdsInGPU.anchorLowEdgeY[fourthMDIndex] - y_OutLo); tl_axis_highEdge_x = mdsInGPU.anchorHighEdgeX[fourthMDIndex] - x_InUp; tl_axis_highEdge_y = mdsInGPU.anchorHighEdgeY[fourthMDIndex] - y_InUp; tl_axis_lowEdge_x = mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_InUp; tl_axis_lowEdge_y = mdsInGPU.anchorLowEdgeY[fourthMDIndex] - y_InUp; - betaOutRHmin = -alpha_OutUp_highEdge + cms::alpakatools::deltaPhi(acc, - mdsInGPU.anchorHighEdgeX[fourthMDIndex], - mdsInGPU.anchorHighEdgeY[fourthMDIndex], - tl_axis_highEdge_x, - tl_axis_highEdge_y); - betaOutRHmax = -alpha_OutUp_lowEdge + cms::alpakatools::deltaPhi(acc, - mdsInGPU.anchorLowEdgeX[fourthMDIndex], - mdsInGPU.anchorLowEdgeY[fourthMDIndex], - tl_axis_lowEdge_x, - tl_axis_lowEdge_y); + betaOutRHmin = -alpha_OutUp_highEdge + lst::deltaPhi(acc, + mdsInGPU.anchorHighEdgeX[fourthMDIndex], + mdsInGPU.anchorHighEdgeY[fourthMDIndex], + tl_axis_highEdge_x, + tl_axis_highEdge_y); + betaOutRHmax = -alpha_OutUp_lowEdge + lst::deltaPhi(acc, + mdsInGPU.anchorLowEdgeX[fourthMDIndex], + mdsInGPU.anchorLowEdgeY[fourthMDIndex], + tl_axis_lowEdge_x, + tl_axis_lowEdge_y); } //beta computation @@ -1681,7 +1681,7 @@ namespace lst { const float sdlPVoff = 0.1f / rt_OutLo; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = cms::alpakatools::deltaPhi(acc, x_InUp, y_InUp, x_OutUp, y_OutUp); + deltaPhiPos = lst::deltaPhi(acc, x_InUp, y_InUp, x_OutUp, y_OutUp); float midPointX = 0.5f * (x_InLo + x_OutLo); float midPointY = 0.5f * (y_InLo + y_OutLo); @@ -1689,7 +1689,7 @@ namespace lst { float diffX = x_OutLo - x_InLo; float diffY = y_OutLo - y_InLo; - dPhi = cms::alpakatools::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) @@ -1703,7 +1703,7 @@ namespace lst { float alpha_OutUp, alpha_OutUp_highEdge, alpha_OutUp_lowEdge; - alpha_OutUp = cms::alpakatools::deltaPhi(acc, x_OutUp, y_OutUp, x_OutUp - x_OutLo, y_OutUp - y_OutLo); + alpha_OutUp = lst::deltaPhi(acc, x_OutUp, y_OutUp, x_OutUp - x_OutLo, y_OutUp - y_OutLo); alpha_OutUp_highEdge = alpha_OutUp; alpha_OutUp_lowEdge = alpha_OutUp; @@ -1716,41 +1716,41 @@ namespace lst { float tl_axis_lowEdge_x = tl_axis_x; float tl_axis_lowEdge_y = tl_axis_y; - betaIn = -cms::alpakatools::deltaPhi(acc, px, py, tl_axis_x, tl_axis_y); + betaIn = -lst::deltaPhi(acc, px, py, tl_axis_x, tl_axis_y); float betaInRHmin = betaIn; float betaInRHmax = betaIn; - betaOut = -alpha_OutUp + cms::alpakatools::deltaPhi(acc, x_OutUp, y_OutUp, tl_axis_x, tl_axis_y); + betaOut = -alpha_OutUp + lst::deltaPhi(acc, x_OutUp, y_OutUp, tl_axis_x, tl_axis_y); float betaOutRHmin = betaOut; float betaOutRHmax = betaOut; if (isEC_lastLayer) { - alpha_OutUp_highEdge = cms::alpakatools::deltaPhi(acc, - mdsInGPU.anchorHighEdgeX[fourthMDIndex], - mdsInGPU.anchorHighEdgeY[fourthMDIndex], - mdsInGPU.anchorHighEdgeX[fourthMDIndex] - x_OutLo, - mdsInGPU.anchorHighEdgeY[fourthMDIndex] - y_OutLo); - alpha_OutUp_lowEdge = cms::alpakatools::deltaPhi(acc, - mdsInGPU.anchorLowEdgeX[fourthMDIndex], - mdsInGPU.anchorLowEdgeY[fourthMDIndex], - mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_OutLo, - mdsInGPU.anchorLowEdgeY[fourthMDIndex] - y_OutLo); + alpha_OutUp_highEdge = lst::deltaPhi(acc, + mdsInGPU.anchorHighEdgeX[fourthMDIndex], + mdsInGPU.anchorHighEdgeY[fourthMDIndex], + mdsInGPU.anchorHighEdgeX[fourthMDIndex] - x_OutLo, + mdsInGPU.anchorHighEdgeY[fourthMDIndex] - y_OutLo); + alpha_OutUp_lowEdge = lst::deltaPhi(acc, + mdsInGPU.anchorLowEdgeX[fourthMDIndex], + mdsInGPU.anchorLowEdgeY[fourthMDIndex], + mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_OutLo, + mdsInGPU.anchorLowEdgeY[fourthMDIndex] - y_OutLo); tl_axis_highEdge_x = mdsInGPU.anchorHighEdgeX[fourthMDIndex] - x_InUp; tl_axis_highEdge_y = mdsInGPU.anchorHighEdgeY[fourthMDIndex] - y_InUp; tl_axis_lowEdge_x = mdsInGPU.anchorLowEdgeX[fourthMDIndex] - x_InUp; tl_axis_lowEdge_y = mdsInGPU.anchorLowEdgeY[fourthMDIndex] - y_InUp; - betaOutRHmin = -alpha_OutUp_highEdge + cms::alpakatools::deltaPhi(acc, - mdsInGPU.anchorHighEdgeX[fourthMDIndex], - mdsInGPU.anchorHighEdgeY[fourthMDIndex], - tl_axis_highEdge_x, - tl_axis_highEdge_y); - betaOutRHmax = -alpha_OutUp_lowEdge + cms::alpakatools::deltaPhi(acc, - mdsInGPU.anchorLowEdgeX[fourthMDIndex], - mdsInGPU.anchorLowEdgeY[fourthMDIndex], - tl_axis_lowEdge_x, - tl_axis_lowEdge_y); + betaOutRHmin = -alpha_OutUp_highEdge + lst::deltaPhi(acc, + mdsInGPU.anchorHighEdgeX[fourthMDIndex], + mdsInGPU.anchorHighEdgeY[fourthMDIndex], + tl_axis_highEdge_x, + tl_axis_highEdge_y); + betaOutRHmax = -alpha_OutUp_lowEdge + lst::deltaPhi(acc, + mdsInGPU.anchorLowEdgeX[fourthMDIndex], + mdsInGPU.anchorLowEdgeY[fourthMDIndex], + tl_axis_lowEdge_x, + tl_axis_lowEdge_y); } //beta computation diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index a104d178e85f6..2c260876af268 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -1579,8 +1579,7 @@ namespace lst { float sdlPVoff = 0.1f / rt_OutLo; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = - cms::alpakatools::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); + deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); // Cut #3: FIXME:deltaPhiPos can be tighter if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) return false; @@ -1590,7 +1589,7 @@ namespace lst { float diffX = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float diffY = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - dPhi = cms::alpakatools::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #4: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) @@ -1606,12 +1605,11 @@ namespace lst { float alpha_OutUp, alpha_OutUp_highEdge, alpha_OutUp_lowEdge; - alpha_OutUp = cms::alpakatools::phi_mpi_pi( - acc, - cms::alpakatools::phi(acc, - mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], - mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - - mdsInGPU.anchorPhi[fourthMDIndex]); + alpha_OutUp = lst::phi_mpi_pi(acc, + lst::phi(acc, + mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], + mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - + mdsInGPU.anchorPhi[fourthMDIndex]); alpha_OutUp_highEdge = alpha_OutUp; alpha_OutUp_lowEdge = alpha_OutUp; @@ -1623,45 +1621,41 @@ namespace lst { float tl_axis_lowEdge_x = tl_axis_x; float tl_axis_lowEdge_y = tl_axis_y; - betaIn = alpha_InLo - cms::alpakatools::phi_mpi_pi( - acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = alpha_InLo - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float betaInRHmin = betaIn; float betaInRHmax = betaIn; betaOut = - -alpha_OutUp + cms::alpakatools::phi_mpi_pi( - acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); + -alpha_OutUp + lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); float betaOutRHmin = betaOut; float betaOutRHmax = betaOut; if (isEC_lastLayer) { - alpha_OutUp_highEdge = cms::alpakatools::phi_mpi_pi( - acc, - cms::alpakatools::phi(acc, - mdsInGPU.anchorHighEdgeX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], - mdsInGPU.anchorHighEdgeY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - - mdsInGPU.anchorHighEdgePhi[fourthMDIndex]); - alpha_OutUp_lowEdge = cms::alpakatools::phi_mpi_pi( - acc, - cms::alpakatools::phi(acc, - mdsInGPU.anchorLowEdgeX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], - mdsInGPU.anchorLowEdgeY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - - mdsInGPU.anchorLowEdgePhi[fourthMDIndex]); + alpha_OutUp_highEdge = + lst::phi_mpi_pi(acc, + lst::phi(acc, + mdsInGPU.anchorHighEdgeX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], + mdsInGPU.anchorHighEdgeY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - + mdsInGPU.anchorHighEdgePhi[fourthMDIndex]); + alpha_OutUp_lowEdge = + lst::phi_mpi_pi(acc, + lst::phi(acc, + mdsInGPU.anchorLowEdgeX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], + mdsInGPU.anchorLowEdgeY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - + mdsInGPU.anchorLowEdgePhi[fourthMDIndex]); tl_axis_highEdge_x = mdsInGPU.anchorHighEdgeX[fourthMDIndex] - mdsInGPU.anchorX[firstMDIndex]; tl_axis_highEdge_y = mdsInGPU.anchorHighEdgeY[fourthMDIndex] - mdsInGPU.anchorY[firstMDIndex]; tl_axis_lowEdge_x = mdsInGPU.anchorLowEdgeX[fourthMDIndex] - mdsInGPU.anchorX[firstMDIndex]; tl_axis_lowEdge_y = mdsInGPU.anchorLowEdgeY[fourthMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaOutRHmin = -alpha_OutUp_highEdge + - cms::alpakatools::phi_mpi_pi(acc, - cms::alpakatools::phi(acc, tl_axis_highEdge_x, tl_axis_highEdge_y) - - mdsInGPU.anchorHighEdgePhi[fourthMDIndex]); - betaOutRHmax = -alpha_OutUp_lowEdge + - cms::alpakatools::phi_mpi_pi(acc, - cms::alpakatools::phi(acc, tl_axis_lowEdge_x, tl_axis_lowEdge_y) - - mdsInGPU.anchorLowEdgePhi[fourthMDIndex]); + betaOutRHmin = -alpha_OutUp_highEdge + lst::phi_mpi_pi(acc, + lst::phi(acc, tl_axis_highEdge_x, tl_axis_highEdge_y) - + mdsInGPU.anchorHighEdgePhi[fourthMDIndex]); + betaOutRHmax = -alpha_OutUp_lowEdge + lst::phi_mpi_pi(acc, + lst::phi(acc, tl_axis_lowEdge_x, tl_axis_lowEdge_y) - + mdsInGPU.anchorLowEdgePhi[fourthMDIndex]); } //beta computation @@ -1868,8 +1862,7 @@ namespace lst { const float sdlPVoff = 0.1f / rt_OutLo; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = - cms::alpakatools::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); + deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); //Cut #4: deltaPhiPos can be tighter if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) @@ -1880,7 +1873,7 @@ namespace lst { float diffX = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float diffY = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - dPhi = cms::alpakatools::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) return false; @@ -1890,29 +1883,26 @@ namespace lst { float sdIn_alpha_max = __H2F(segmentsInGPU.dPhiChangeMaxs[innerSegmentIndex]); float sdOut_alpha = sdIn_alpha; - float sdOut_alphaOut = cms::alpakatools::phi_mpi_pi( - acc, - cms::alpakatools::phi(acc, - mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], - mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - - mdsInGPU.anchorPhi[fourthMDIndex]); + float sdOut_alphaOut = lst::phi_mpi_pi(acc, + lst::phi(acc, + mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[thirdMDIndex], + mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[thirdMDIndex]) - + mdsInGPU.anchorPhi[fourthMDIndex]); - float sdOut_alphaOut_min = cms::alpakatools::phi_mpi_pi( + float sdOut_alphaOut_min = lst::phi_mpi_pi( acc, __H2F(segmentsInGPU.dPhiChangeMins[outerSegmentIndex]) - __H2F(segmentsInGPU.dPhiMins[outerSegmentIndex])); - float sdOut_alphaOut_max = cms::alpakatools::phi_mpi_pi( + float sdOut_alphaOut_max = lst::phi_mpi_pi( acc, __H2F(segmentsInGPU.dPhiChangeMaxs[outerSegmentIndex]) - __H2F(segmentsInGPU.dPhiMaxs[outerSegmentIndex])); float tl_axis_x = mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = sdIn_alpha - cms::alpakatools::phi_mpi_pi( - acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float betaInRHmin = betaIn; float betaInRHmax = betaIn; - betaOut = -sdOut_alphaOut + - cms::alpakatools::phi_mpi_pi( - acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); + betaOut = + -sdOut_alphaOut + lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); float betaOutRHmin = betaOut; float betaOutRHmax = betaOut; @@ -2153,8 +2143,7 @@ namespace lst { float sdlPVoff = 0.1f / rtOut; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = - cms::alpakatools::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); + deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) return false; @@ -2164,7 +2153,7 @@ namespace lst { float diffX = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float diffY = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - dPhi = cms::alpakatools::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) @@ -2172,31 +2161,28 @@ namespace lst { float sdIn_alpha = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); float sdOut_alpha = sdIn_alpha; //weird - float sdOut_dPhiPos = - cms::alpakatools::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[thirdMDIndex]); + float sdOut_dPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[thirdMDIndex]); float sdOut_dPhiChange = __H2F(segmentsInGPU.dPhiChanges[outerSegmentIndex]); float sdOut_dPhiChange_min = __H2F(segmentsInGPU.dPhiChangeMins[outerSegmentIndex]); float sdOut_dPhiChange_max = __H2F(segmentsInGPU.dPhiChangeMaxs[outerSegmentIndex]); - float sdOut_alphaOutRHmin = cms::alpakatools::phi_mpi_pi(acc, sdOut_dPhiChange_min - sdOut_dPhiPos); - float sdOut_alphaOutRHmax = cms::alpakatools::phi_mpi_pi(acc, sdOut_dPhiChange_max - sdOut_dPhiPos); - float sdOut_alphaOut = cms::alpakatools::phi_mpi_pi(acc, sdOut_dPhiChange - sdOut_dPhiPos); + float sdOut_alphaOutRHmin = lst::phi_mpi_pi(acc, sdOut_dPhiChange_min - sdOut_dPhiPos); + float sdOut_alphaOutRHmax = lst::phi_mpi_pi(acc, sdOut_dPhiChange_max - sdOut_dPhiPos); + float sdOut_alphaOut = lst::phi_mpi_pi(acc, sdOut_dPhiChange - sdOut_dPhiPos); float tl_axis_x = mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = sdIn_alpha - cms::alpakatools::phi_mpi_pi( - acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float sdIn_alphaRHmin = __H2F(segmentsInGPU.dPhiChangeMins[innerSegmentIndex]); float sdIn_alphaRHmax = __H2F(segmentsInGPU.dPhiChangeMaxs[innerSegmentIndex]); float betaInRHmin = betaIn + sdIn_alphaRHmin - sdIn_alpha; float betaInRHmax = betaIn + sdIn_alphaRHmax - sdIn_alpha; - betaOut = -sdOut_alphaOut + - cms::alpakatools::phi_mpi_pi( - acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); + betaOut = + -sdOut_alphaOut + lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); float betaOutRHmin = betaOut - sdOut_alphaOutRHmin + sdOut_alphaOut; float betaOutRHmax = betaOut - sdOut_alphaOutRHmax + sdOut_alphaOut; diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index 0c4edf699f739..993d659844e23 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -512,13 +512,12 @@ namespace lst { sdCut = sdSlope + alpaka::math::sqrt(acc, sdMuls * sdMuls + sdPVoff * sdPVoff); - dPhi = cms::alpakatools::phi_mpi_pi(acc, mdsInGPU.anchorPhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); + dPhi = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); if (alpaka::math::abs(acc, dPhi) > sdCut) return false; - dPhiChange = cms::alpakatools::phi_mpi_pi( - acc, cms::alpakatools::phi(acc, xOut - xIn, yOut - yIn) - mdsInGPU.anchorPhi[innerMDIndex]); + dPhiChange = lst::phi_mpi_pi(acc, lst::phi(acc, xOut - xIn, yOut - yIn) - mdsInGPU.anchorPhi[innerMDIndex]); if (alpaka::math::abs(acc, dPhiChange) > sdCut) return false; @@ -627,14 +626,14 @@ namespace lst { if ((rtOut < rtLo) || (rtOut > rtHi)) return false; - dPhi = cms::alpakatools::phi_mpi_pi(acc, mdsInGPU.anchorPhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); + dPhi = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); sdCut = sdSlope; if (outerLayerEndcapTwoS) { - float dPhiPos_high = cms::alpakatools::phi_mpi_pi( - acc, mdsInGPU.anchorHighEdgePhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); + float dPhiPos_high = + lst::phi_mpi_pi(acc, mdsInGPU.anchorHighEdgePhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); float dPhiPos_low = - cms::alpakatools::phi_mpi_pi(acc, mdsInGPU.anchorLowEdgePhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); + lst::phi_mpi_pi(acc, mdsInGPU.anchorLowEdgePhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); dPhiMax = alpaka::math::abs(acc, dPhiPos_high) > alpaka::math::abs(acc, dPhiPos_low) ? dPhiPos_high : dPhiPos_low; dPhiMin = alpaka::math::abs(acc, dPhiPos_high) > alpaka::math::abs(acc, dPhiPos_low) ? dPhiPos_low : dPhiPos_high; diff --git a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h index 6163e5dafead8..d17ce8c347cbf 100644 --- a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h +++ b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h @@ -236,7 +236,7 @@ namespace lst { float eta2 = segmentsInGPU.eta[pLS_jx - prefix]; float phi2 = segmentsInGPU.phi[pLS_jx - prefix]; float dEta = alpaka::math::abs(acc, (eta1 - eta2)); - float dPhi = cms::alpakatools::calculate_dPhi(phi1, phi2); + float dPhi = lst::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 1e-5f) @@ -289,7 +289,7 @@ namespace lst { } float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = cms::alpakatools::calculate_dPhi(phi1, phi2); + float dPhi = lst::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 1e-3f) @@ -339,7 +339,7 @@ namespace lst { float eta2 = __H2F(quintupletsInGPU.eta[quintupletIndex]); float phi2 = __H2F(quintupletsInGPU.phi[quintupletIndex]); float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = cms::alpakatools::calculate_dPhi(phi1, phi2); + float dPhi = lst::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 1e-3f) @@ -356,7 +356,7 @@ namespace lst { float eta2 = __H2F(pixelTripletsInGPU.eta_pix[pT3Index]); float phi2 = __H2F(pixelTripletsInGPU.phi_pix[pT3Index]); float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = cms::alpakatools::calculate_dPhi(phi1, phi2); + float dPhi = lst::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 0.000001f) @@ -373,7 +373,7 @@ namespace lst { float eta2 = segmentsInGPU.eta[pLSIndex - prefix]; float phi2 = segmentsInGPU.phi[pLSIndex - prefix]; float dEta = alpaka::math::abs(acc, eta1 - eta2); - float dPhi = cms::alpakatools::calculate_dPhi(phi1, phi2); + float dPhi = lst::calculate_dPhi(phi1, phi2); float dR2 = dEta * dEta + dPhi * dPhi; if (dR2 < 0.000001f) diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index f03e412669be4..1936ecb495ff7 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -379,8 +379,7 @@ namespace lst { float alpha_InLo = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); float tl_axis_x = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = alpha_InLo - cms::alpakatools::phi_mpi_pi( - acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = alpha_InLo - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); //beta computation float drt_tl_axis = alpaka::math::sqrt(acc, tl_axis_x * tl_axis_x + tl_axis_y * tl_axis_y); @@ -493,8 +492,7 @@ namespace lst { float tl_axis_x = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = sdIn_alpha - cms::alpakatools::phi_mpi_pi( - acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float betaInRHmin = betaIn; float betaInRHmax = betaIn; @@ -616,8 +614,7 @@ namespace lst { float tl_axis_x = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = sdIn_alpha - cms::alpakatools::phi_mpi_pi( - acc, cms::alpakatools::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + betaIn = sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float sdIn_alphaRHmin = __H2F(segmentsInGPU.dPhiChangeMins[innerSegmentIndex]); float sdIn_alphaRHmax = __H2F(segmentsInGPU.dPhiChangeMaxs[innerSegmentIndex]); From 96aa7c0a97661d078ed9e03c891e1ebc8d3717ca Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Sat, 27 Jul 2024 17:11:01 -0700 Subject: [PATCH 23/35] Revert constness on arguments passed by value --- .../LSTCore/interface/EndcapGeometry.h | 2 +- .../LSTCore/interface/EndcapGeometryBuffer.h | 4 +- RecoTracker/LSTCore/interface/LST.h | 18 +- RecoTracker/LSTCore/interface/Module.h | 12 +- .../LSTCore/interface/ModuleConnectionMap.h | 2 +- RecoTracker/LSTCore/interface/PixelMap.h | 2 +- .../LSTCore/interface/TiltedGeometry.h | 4 +- RecoTracker/LSTCore/src/EndcapGeometry.cc | 2 +- .../LSTCore/src/ModuleConnectionMap.cc | 2 +- RecoTracker/LSTCore/src/TiltedGeometry.cc | 4 +- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 36 +-- RecoTracker/LSTCore/src/alpaka/Event.h | 36 +-- RecoTracker/LSTCore/src/alpaka/Hit.h | 14 +- RecoTracker/LSTCore/src/alpaka/Kernels.h | 26 +- RecoTracker/LSTCore/src/alpaka/LST.dev.cc | 12 +- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 137 +++++---- .../LSTCore/src/alpaka/NeuralNetwork.h | 10 +- RecoTracker/LSTCore/src/alpaka/ObjectRanges.h | 2 +- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 260 +++++++++--------- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 202 +++++++------- RecoTracker/LSTCore/src/alpaka/Segment.h | 82 +++--- .../LSTCore/src/alpaka/TrackCandidate.h | 40 +-- RecoTracker/LSTCore/src/alpaka/Triplet.h | 130 ++++----- 23 files changed, 519 insertions(+), 520 deletions(-) diff --git a/RecoTracker/LSTCore/interface/EndcapGeometry.h b/RecoTracker/LSTCore/interface/EndcapGeometry.h index 12233e0b40cde..555955d83941c 100644 --- a/RecoTracker/LSTCore/interface/EndcapGeometry.h +++ b/RecoTracker/LSTCore/interface/EndcapGeometry.h @@ -27,7 +27,7 @@ namespace lst { void load(std::string const&); void fillGeoMapArraysExplicit(); - float getdxdy_slope(const unsigned int detid) const; + float getdxdy_slope(unsigned int detid) const; }; } // namespace lst diff --git a/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h b/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h index 54a78707c4aa9..6a787a5ed95eb 100644 --- a/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h +++ b/RecoTracker/LSTCore/interface/EndcapGeometryBuffer.h @@ -30,7 +30,7 @@ namespace lst { Buf geoMapPhi_buf; EndcapGeometryDev data_; - EndcapGeometryBuffer(TDev const& dev, const unsigned int nEndCapMap) + EndcapGeometryBuffer(TDev const& dev, unsigned int nEndCapMap) : geoMapDetId_buf(allocBufWrapper(dev, nEndCapMap)), geoMapPhi_buf(allocBufWrapper(dev, nEndCapMap)) { data_.setData(*this); @@ -43,7 +43,7 @@ namespace lst { } template - EndcapGeometryBuffer(TQueue queue, EndcapGeometryBuffer const& src, const unsigned int nEndCapMap) + EndcapGeometryBuffer(TQueue queue, EndcapGeometryBuffer const& src, unsigned int nEndCapMap) : EndcapGeometryBuffer(alpaka::getDev(queue), nEndCapMap) { copyFromSrc(queue, src); } diff --git a/RecoTracker/LSTCore/interface/LST.h b/RecoTracker/LSTCore/interface/LST.h index 04dfc694eb80d..ac23bd09a7ecf 100644 --- a/RecoTracker/LSTCore/interface/LST.h +++ b/RecoTracker/LSTCore/interface/LST.h @@ -22,7 +22,7 @@ namespace lst { template void run(TQueue& queue, - const bool verbose, + bool verbose, LSTESData> const* deviceESData, std::vector const& see_px, std::vector const& see_py, @@ -43,12 +43,12 @@ namespace lst { std::vector const& ph2_x, std::vector const& ph2_y, std::vector const& ph2_z, - const bool no_pls_dupclean, - const bool tc_pls_triplets); - const std::vector>& hits() const { return out_tc_hitIdxs_; } - const std::vector& len() const { return out_tc_len_; } - const std::vector& seedIdx() const { return out_tc_seedIdx_; } - const std::vector& trackCandidateType() const { return out_tc_trackCandidateType_; } + bool no_pls_dupclean, + bool tc_pls_triplets); + std::vector> const& hits() const { return out_tc_hitIdxs_; } + std::vector const& len() const { return out_tc_len_; } + std::vector const& seedIdx() const { return out_tc_seedIdx_; } + std::vector const& trackCandidateType() const { return out_tc_trackCandidateType_; } private: void prepareInput(std::vector const& see_px, @@ -72,8 +72,8 @@ namespace lst { std::vector const& ph2_z); void getOutput(lst::Event& event); - std::vector getHitIdxs(const short trackCandidateType, - const unsigned int TCIdx, + std::vector getHitIdxs(short trackCandidateType, + unsigned int TCIdx, unsigned int const* TCHitIndices, unsigned int const* hitIndices); diff --git a/RecoTracker/LSTCore/interface/Module.h b/RecoTracker/LSTCore/interface/Module.h index f9210e6578202..56c560eaba04c 100644 --- a/RecoTracker/LSTCore/interface/Module.h +++ b/RecoTracker/LSTCore/interface/Module.h @@ -40,7 +40,7 @@ namespace lst { const int* sdlLayers; const unsigned int* connectedPixels; - static bool parseIsInverted(const short subdet, const short side, const short module, const short layer) { + static bool parseIsInverted(short subdet, short side, short module, short layer) { if (subdet == Endcap) { if (side == NegZ) { return module % 2 == 1; @@ -74,11 +74,11 @@ namespace lst { } }; - static bool parseIsLower(const bool isInvertedx, const unsigned int detId) { + static bool parseIsLower(bool isInvertedx, unsigned int detId) { return (isInvertedx) ? !(detId & 1) : (detId & 1); }; - static unsigned int parsePartnerModuleId(const unsigned int detId, const bool isLowerx, const bool isInvertedx) { + static unsigned int parsePartnerModuleId(unsigned int detId, bool isLowerx, bool isInvertedx) { return isLowerx ? (isInvertedx ? detId - 1 : detId + 1) : (isInvertedx ? detId + 1 : detId - 1); }; @@ -144,7 +144,7 @@ namespace lst { Modules data_; - ModulesBuffer(TDev const& dev, const unsigned int nMod, const unsigned int nPixs) + ModulesBuffer(TDev const& dev, unsigned int nMod, unsigned int nPixs) : detIds_buf(allocBufWrapper(dev, nMod)), moduleMap_buf(allocBufWrapper(dev, nMod * max_connected_modules)), mapdetId_buf(allocBufWrapper(dev, nMod)), @@ -175,7 +175,7 @@ namespace lst { } template - inline void copyFromSrc(TQueue queue, ModulesBuffer const& src, const bool isFull = true) { + inline void copyFromSrc(TQueue queue, ModulesBuffer const& src, bool isFull = true) { alpaka::memcpy(queue, detIds_buf, src.detIds_buf); if (isFull) { alpaka::memcpy(queue, moduleMap_buf, src.moduleMap_buf); @@ -216,7 +216,7 @@ namespace lst { } template - ModulesBuffer(TQueue queue, ModulesBuffer const& src, const unsigned int nMod, const unsigned int nPixs) + ModulesBuffer(TQueue queue, ModulesBuffer const& src, unsigned int nMod, unsigned int nPixs) : ModulesBuffer(alpaka::getDev(queue), nMod, nPixs) { copyFromSrc(queue, src); } diff --git a/RecoTracker/LSTCore/interface/ModuleConnectionMap.h b/RecoTracker/LSTCore/interface/ModuleConnectionMap.h index b1482fd31cc12..b3a931345b3a5 100644 --- a/RecoTracker/LSTCore/interface/ModuleConnectionMap.h +++ b/RecoTracker/LSTCore/interface/ModuleConnectionMap.h @@ -22,7 +22,7 @@ namespace lst { void add(std::string const&); void print(); - const std::vector& getConnectedModuleDetIds(const unsigned int detid) const; + const std::vector& getConnectedModuleDetIds(unsigned int detid) const; int size() const; }; diff --git a/RecoTracker/LSTCore/interface/PixelMap.h b/RecoTracker/LSTCore/interface/PixelMap.h index 7edbca0943fe8..73d88bc64f7ec 100644 --- a/RecoTracker/LSTCore/interface/PixelMap.h +++ b/RecoTracker/LSTCore/interface/PixelMap.h @@ -19,7 +19,7 @@ namespace lst { int* pixelType; - PixelMap(const unsigned int sizef = size_superbins) + PixelMap(unsigned int sizef = size_superbins) : pixelModuleIndex(0), connectedPixelsIndex(sizef), connectedPixelsSizes(sizef), diff --git a/RecoTracker/LSTCore/interface/TiltedGeometry.h b/RecoTracker/LSTCore/interface/TiltedGeometry.h index 37012f6465597..b70a1d95a357b 100644 --- a/RecoTracker/LSTCore/interface/TiltedGeometry.h +++ b/RecoTracker/LSTCore/interface/TiltedGeometry.h @@ -22,8 +22,8 @@ namespace lst { void load(std::string const&); - float getDrDz(const unsigned int detid) const; - float getDxDy(const unsigned int detid) const; + float getDrDz(unsigned int detid) const; + float getDxDy(unsigned int detid) const; }; } // namespace lst diff --git a/RecoTracker/LSTCore/src/EndcapGeometry.cc b/RecoTracker/LSTCore/src/EndcapGeometry.cc index 028be82183837..a95e8c34de248 100644 --- a/RecoTracker/LSTCore/src/EndcapGeometry.cc +++ b/RecoTracker/LSTCore/src/EndcapGeometry.cc @@ -48,7 +48,7 @@ void lst::EndcapGeometry::fillGeoMapArraysExplicit() { } } -float lst::EndcapGeometry::getdxdy_slope(const unsigned int detid) const { +float lst::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/ModuleConnectionMap.cc b/RecoTracker/LSTCore/src/ModuleConnectionMap.cc index 1f10bed091a27..732b8e155fb4e 100644 --- a/RecoTracker/LSTCore/src/ModuleConnectionMap.cc +++ b/RecoTracker/LSTCore/src/ModuleConnectionMap.cc @@ -93,7 +93,7 @@ void lst::ModuleConnectionMap::print() { } } -const std::vector& lst::ModuleConnectionMap::getConnectedModuleDetIds(const unsigned int detid) const { +const std::vector& lst::ModuleConnectionMap::getConnectedModuleDetIds(unsigned int detid) const { static const std::vector dummy; auto const mList = moduleConnections_.find(detid); return mList != moduleConnections_.end() ? mList->second : dummy; diff --git a/RecoTracker/LSTCore/src/TiltedGeometry.cc b/RecoTracker/LSTCore/src/TiltedGeometry.cc index f537cb93222b1..96db807240f69 100644 --- a/RecoTracker/LSTCore/src/TiltedGeometry.cc +++ b/RecoTracker/LSTCore/src/TiltedGeometry.cc @@ -32,7 +32,7 @@ void lst::TiltedGeometry::load(std::string const& filename) { } } -float lst::TiltedGeometry::getDrDz(const unsigned int detid) const { +float lst::TiltedGeometry::getDrDz(unsigned int detid) const { if (drdzs_.find(detid) != drdzs_.end()) { return drdzs_.at(detid); } else { @@ -40,7 +40,7 @@ float lst::TiltedGeometry::getDrDz(const unsigned int detid) const { } } -float lst::TiltedGeometry::getDxDy(const unsigned int detid) const { +float lst::TiltedGeometry::getDxDy(unsigned int detid) const { if (dxdys_.find(detid) != dxdys_.end()) { return dxdys_.at(detid); } else { diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index 38a1a5586751f..20a8a35dc00bf 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 lst::Event::init(const bool verbose) { +void lst::Event::init(bool verbose) { addObjects = verbose; hitsInGPU = nullptr; mdsInGPU = nullptr; @@ -622,7 +622,7 @@ void lst::Event::createTriplets() { } } -void lst::Event::createTrackCandidates(const bool no_pls_dupclean, const bool tc_pls_triplets) { +void lst::Event::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_triplets) { if (trackCandidatesInGPU == nullptr) { trackCandidatesInGPU = new lst::TrackCandidates(); trackCandidatesBuffers = new lst::TrackCandidatesBuffer( @@ -1278,18 +1278,18 @@ unsigned int lst::Event::getNumberOfHits() { return hits; } -unsigned int lst::Event::getNumberOfHitsByLayer(const unsigned int layer) { +unsigned int lst::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 lst::Event::getNumberOfHitsByLayerBarrel(const unsigned int layer) { +unsigned int lst::Event::getNumberOfHitsByLayerBarrel(unsigned int layer) { return n_hits_by_layer_barrel_[layer]; } -unsigned int lst::Event::getNumberOfHitsByLayerEndcap(const unsigned int layer) { +unsigned int lst::Event::getNumberOfHitsByLayerEndcap(unsigned int layer) { return n_hits_by_layer_endcap_[layer]; } @@ -1305,18 +1305,18 @@ unsigned int lst::Event::getNumberOfMiniDoublets() { return miniDoublets; } -unsigned int lst::Event::getNumberOfMiniDoubletsByLayer(const unsigned int layer) { +unsigned int lst::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 lst::Event::getNumberOfMiniDoubletsByLayerBarrel(const unsigned int layer) { +unsigned int lst::Event::getNumberOfMiniDoubletsByLayerBarrel(unsigned int layer) { return n_minidoublets_by_layer_barrel_[layer]; } -unsigned int lst::Event::getNumberOfMiniDoubletsByLayerEndcap(const unsigned int layer) { +unsigned int lst::Event::getNumberOfMiniDoubletsByLayerEndcap(unsigned int layer) { return n_minidoublets_by_layer_endcap_[layer]; } @@ -1332,18 +1332,18 @@ unsigned int lst::Event::getNumberOfSegments() { return segments; } -unsigned int lst::Event::getNumberOfSegmentsByLayer(const unsigned int layer) { +unsigned int lst::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 lst::Event::getNumberOfSegmentsByLayerBarrel(const unsigned int layer) { +unsigned int lst::Event::getNumberOfSegmentsByLayerBarrel(unsigned int layer) { return n_segments_by_layer_barrel_[layer]; } -unsigned int lst::Event::getNumberOfSegmentsByLayerEndcap(const unsigned int layer) { +unsigned int lst::Event::getNumberOfSegmentsByLayerEndcap(unsigned int layer) { return n_segments_by_layer_endcap_[layer]; } @@ -1359,18 +1359,18 @@ unsigned int lst::Event::getNumberOfTriplets() { return triplets; } -unsigned int lst::Event::getNumberOfTripletsByLayer(const unsigned int layer) { +unsigned int lst::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 lst::Event::getNumberOfTripletsByLayerBarrel(const unsigned int layer) { +unsigned int lst::Event::getNumberOfTripletsByLayerBarrel(unsigned int layer) { return n_triplets_by_layer_barrel_[layer]; } -unsigned int lst::Event::getNumberOfTripletsByLayerEndcap(const unsigned int layer) { +unsigned int lst::Event::getNumberOfTripletsByLayerEndcap(unsigned int layer) { return n_triplets_by_layer_endcap_[layer]; } @@ -1408,18 +1408,18 @@ unsigned int lst::Event::getNumberOfQuintuplets() { return quintuplets; } -unsigned int lst::Event::getNumberOfQuintupletsByLayer(const unsigned int layer) { +unsigned int lst::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 lst::Event::getNumberOfQuintupletsByLayerBarrel(const unsigned int layer) { +unsigned int lst::Event::getNumberOfQuintupletsByLayerBarrel(unsigned int layer) { return n_quintuplets_by_layer_barrel_[layer]; } -unsigned int lst::Event::getNumberOfQuintupletsByLayerEndcap(const unsigned int layer) { +unsigned int lst::Event::getNumberOfQuintupletsByLayerEndcap(unsigned int layer) { return n_quintuplets_by_layer_endcap_[layer]; } @@ -1818,7 +1818,7 @@ lst::TrackCandidatesBuffer* lst::Event::getTrackCandidatesInCMSS return trackCandidatesInCPU; } -lst::ModulesBuffer* lst::Event::getModules(const bool isFull) { +lst::ModulesBuffer* lst::Event::getModules(bool isFull) { if (modulesInCPU == nullptr) { // The last input here is just a small placeholder for the allocation. modulesInCPU = new lst::ModulesBuffer(devHost, nModules_, nPixels_); diff --git a/RecoTracker/LSTCore/src/alpaka/Event.h b/RecoTracker/LSTCore/src/alpaka/Event.h index e978a5ac5ecec..16002cfd5abd2 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.h +++ b/RecoTracker/LSTCore/src/alpaka/Event.h @@ -145,32 +145,32 @@ namespace lst { void createTriplets(); void createPixelTracklets(); void createPixelTrackletsWithMap(); - void createTrackCandidates(const bool no_pls_dupclean, const bool tc_pls_triplets); + void createTrackCandidates(bool no_pls_dupclean, bool tc_pls_triplets); void createExtendedTracks(); void createQuintuplets(); void createPixelTriplets(); void createPixelQuintuplets(); - void pixelLineSegmentCleaning(const bool no_pls_dupclean); + void pixelLineSegmentCleaning(bool no_pls_dupclean); unsigned int getNumberOfHits(); - unsigned int getNumberOfHitsByLayer(const unsigned int layer); - unsigned int getNumberOfHitsByLayerBarrel(const unsigned int layer); - unsigned int getNumberOfHitsByLayerEndcap(const unsigned int layer); + unsigned int getNumberOfHitsByLayer(unsigned int layer); + unsigned int getNumberOfHitsByLayerBarrel(unsigned int layer); + unsigned int getNumberOfHitsByLayerEndcap(unsigned int layer); unsigned int getNumberOfMiniDoublets(); - unsigned int getNumberOfMiniDoubletsByLayer(const unsigned int layer); - unsigned int getNumberOfMiniDoubletsByLayerBarrel(const unsigned int layer); - unsigned int getNumberOfMiniDoubletsByLayerEndcap(const unsigned int layer); + unsigned int getNumberOfMiniDoubletsByLayer(unsigned int layer); + unsigned int getNumberOfMiniDoubletsByLayerBarrel(unsigned int layer); + unsigned int getNumberOfMiniDoubletsByLayerEndcap(unsigned int layer); unsigned int getNumberOfSegments(); - unsigned int getNumberOfSegmentsByLayer(const unsigned int layer); - unsigned int getNumberOfSegmentsByLayerBarrel(const unsigned int layer); - unsigned int getNumberOfSegmentsByLayerEndcap(const unsigned int layer); + unsigned int getNumberOfSegmentsByLayer(unsigned int layer); + unsigned int getNumberOfSegmentsByLayerBarrel(unsigned int layer); + unsigned int getNumberOfSegmentsByLayerEndcap(unsigned int layer); unsigned int getNumberOfTriplets(); - unsigned int getNumberOfTripletsByLayer(const unsigned int layer); - unsigned int getNumberOfTripletsByLayerBarrel(const unsigned int layer); - unsigned int getNumberOfTripletsByLayerEndcap(const unsigned int layer); + unsigned int getNumberOfTripletsByLayer(unsigned int layer); + unsigned int getNumberOfTripletsByLayerBarrel(unsigned int layer); + unsigned int getNumberOfTripletsByLayerEndcap(unsigned int layer); int getNumberOfTrackCandidates(); int getNumberOfPixelTrackCandidates(); @@ -180,9 +180,9 @@ namespace lst { int getNumberOfPLSTrackCandidates(); unsigned int getNumberOfQuintuplets(); - unsigned int getNumberOfQuintupletsByLayer(const unsigned int layer); - unsigned int getNumberOfQuintupletsByLayerBarrel(const unsigned int layer); - unsigned int getNumberOfQuintupletsByLayerEndcap(const unsigned int layer); + unsigned int getNumberOfQuintupletsByLayer(unsigned int layer); + unsigned int getNumberOfQuintupletsByLayerBarrel(unsigned int layer); + unsigned int getNumberOfQuintupletsByLayerEndcap(unsigned int layer); int getNumberOfPixelTriplets(); int getNumberOfPixelQuintuplets(); @@ -198,7 +198,7 @@ namespace lst { TrackCandidatesBuffer* getTrackCandidatesInCMSSW(); PixelTripletsBuffer* getPixelTriplets(); PixelQuintupletsBuffer* getPixelQuintuplets(); - ModulesBuffer* getModules(const bool isFull = false); + ModulesBuffer* getModules(bool isFull = false); }; } // namespace lst diff --git a/RecoTracker/LSTCore/src/alpaka/Hit.h b/RecoTracker/LSTCore/src/alpaka/Hit.h index 5acb255e03957..3557750b11e2d 100644 --- a/RecoTracker/LSTCore/src/alpaka/Hit.h +++ b/RecoTracker/LSTCore/src/alpaka/Hit.h @@ -75,7 +75,7 @@ namespace lst { Hits data_; template - HitsBuffer(const unsigned int nModules, const unsigned int nMaxHits, TDevAcc const& devAccIn, TQueue& queue) + HitsBuffer(unsigned int nModules, unsigned int nMaxHits, TDevAcc const& devAccIn, TQueue& queue) : nHits_buf(allocBufWrapper(devAccIn, 1u, queue)), xs_buf(allocBufWrapper(devAccIn, nMaxHits, queue)), ys_buf(allocBufWrapper(devAccIn, nMaxHits, queue)), @@ -182,7 +182,7 @@ namespace lst { ALPAKA_FN_ACC void operator()(TAcc const& acc, struct lst::Modules modulesInGPU, struct lst::Hits hitsInGPU, - const int nLowerModules) const { + int nLowerModules) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -203,15 +203,15 @@ namespace lst { struct hitLoopKernel { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - const uint16_t Endcap, // Integer corresponding to endcap in module subdets - const uint16_t TwoS, // Integer corresponding to TwoS in moduleType - const unsigned int nModules, // Number of modules - const unsigned int nEndCapMap, // Number of elements in endcap map + uint16_t Endcap, // Integer corresponding to endcap in module subdets + uint16_t TwoS, // Integer corresponding to TwoS in moduleType + unsigned int nModules, // Number of modules + unsigned int nEndCapMap, // Number of elements in endcap map const unsigned int* geoMapDetId, // DetId's from endcap map const float* geoMapPhi, // Phi values from endcap map struct lst::Modules modulesInGPU, struct lst::Hits hitsInGPU, - const unsigned int nHits) const // Total number of hits in event + unsigned int nHits) const // Total number of hits in event { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); diff --git a/RecoTracker/LSTCore/src/alpaka/Kernels.h b/RecoTracker/LSTCore/src/alpaka/Kernels.h index c2ee2570398f6..b95d4ce24055f 100644 --- a/RecoTracker/LSTCore/src/alpaka/Kernels.h +++ b/RecoTracker/LSTCore/src/alpaka/Kernels.h @@ -14,29 +14,29 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmQuintupletFromMemory(struct lst::Quintuplets& quintupletsInGPU, - const unsigned int quintupletIndex, - const bool secondpass = false) { + unsigned int quintupletIndex, + bool secondpass = false) { quintupletsInGPU.isDup[quintupletIndex] |= 1 + secondpass; }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelTripletFromMemory(struct lst::PixelTriplets& pixelTripletsInGPU, - const unsigned int pixelTripletIndex) { + unsigned int pixelTripletIndex) { pixelTripletsInGPU.isDup[pixelTripletIndex] = true; }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelQuintupletFromMemory(struct lst::PixelQuintuplets& pixelQuintupletsInGPU, - const unsigned int pixelQuintupletIndex) { + unsigned int pixelQuintupletIndex) { pixelQuintupletsInGPU.isDup[pixelQuintupletIndex] = true; }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelSegmentFromMemory(struct lst::Segments& segmentsInGPU, - const unsigned int pixelSegmentArrayIndex, - const bool secondpass = false) { + unsigned int pixelSegmentArrayIndex, + bool secondpass = false) { segmentsInGPU.isDup[pixelSegmentArrayIndex] |= 1 + secondpass; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitsT5(const unsigned int ix, - const unsigned int jx, + ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitsT5(unsigned int ix, + unsigned int jx, struct lst::Quintuplets& quintupletsInGPU) { unsigned int hits1[Params_T5::kHits]; unsigned int hits2[Params_T5::kHits]; @@ -62,8 +62,8 @@ namespace lst { return nMatched; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitspT5(const unsigned int ix, - const unsigned int jx, + ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitspT5(unsigned int ix, + unsigned int jx, struct lst::PixelQuintuplets& pixelQuintupletsInGPU) { unsigned int hits1[Params_pT5::kHits]; unsigned int hits2[Params_pT5::kHits]; @@ -89,8 +89,8 @@ namespace lst { return nMatched; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void checkHitspT3(const unsigned int ix, - const unsigned int jx, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void checkHitspT3(unsigned int ix, + unsigned int jx, struct lst::PixelTriplets& pixelTripletsInGPU, int* matched) { int phits1[Params_pLS::kHits]; @@ -335,7 +335,7 @@ namespace lst { ALPAKA_FN_ACC void operator()(TAcc const& acc, struct lst::Modules modulesInGPU, struct lst::Segments segmentsInGPU, - const bool secondpass) const { + bool secondpass) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); diff --git a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc index 64c2a505239a9..940469e8682a2 100644 --- a/RecoTracker/LSTCore/src/alpaka/LST.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LST.dev.cc @@ -8,7 +8,7 @@ using namespace ALPAKA_ACCELERATOR_NAMESPACE; using XYZVector = ROOT::Math::XYZVector; namespace { - XYZVector calculateR3FromPCA(const XYZVector& p3, const float dxy, const float dz) { + XYZVector calculateR3FromPCA(const XYZVector& p3, float dxy, float dz) { const float pt = p3.rho(); const float p = p3.r(); const float vz = dz * pt * pt / p / p; @@ -213,8 +213,8 @@ void lst::LST::prepareInput(std::vector const& see_px, } template <> -std::vector lst::LST::getHitIdxs(const short trackCandidateType, - const unsigned int TCIdx, +std::vector lst::LST::getHitIdxs(short trackCandidateType, + unsigned int TCIdx, unsigned int const* TCHitIndices, unsigned int const* hitIndices) { std::vector hits; @@ -279,7 +279,7 @@ void lst::LST::getOutput(lst::Event& event) { template <> template <> void lst::LST::run(Queue& queue, - const bool verbose, + bool verbose, LSTESData const* deviceESData, std::vector const& see_px, std::vector const& see_py, @@ -300,8 +300,8 @@ void lst::LST::run(Queue& queue, std::vector const& ph2_x, std::vector const& ph2_y, std::vector const& ph2_z, - const bool no_pls_dupclean, - const bool tc_pls_triplets) { + bool no_pls_dupclean, + bool tc_pls_triplets) { auto event = lst::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 1e7474db90748..60662aaff6e23 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -140,8 +140,8 @@ namespace lst { MiniDoublets data_; template - MiniDoubletsBuffer(const unsigned int nMemoryLoc, - const uint16_t nLowerModules, + MiniDoubletsBuffer(unsigned int nMemoryLoc, + uint16_t nLowerModules, TDevAcc const& devAccIn, TQueue& queue) : nMemoryLocations_buf(allocBufWrapper(devAccIn, 1, queue)), @@ -194,18 +194,18 @@ namespace lst { struct lst::MiniDoublets& mdsInGPU, struct lst::Hits& hitsInGPU, struct lst::Modules& modulesInGPU, - const unsigned int lowerHitIdx, - const unsigned int upperHitIdx, - const uint16_t& lowerModuleIdx, - const float dz, - const float dPhi, - const float dPhiChange, - const float shiftedX, - const float shiftedY, - const float shiftedZ, - const float noShiftedDphi, - const float noShiftedDPhiChange, - const unsigned int idx) { + unsigned int lowerHitIdx, + unsigned int upperHitIdx, + uint16_t& lowerModuleIdx, + float dz, + float dPhi, + float dPhiChange, + float shiftedX, + float shiftedY, + float shiftedZ, + float noShiftedDphi, + float noShiftedDPhiChange, + unsigned int idx) { //the index into which this MD needs to be written will be computed in the kernel //nMDs variable will be incremented in the kernel, no need to worry about that here @@ -264,7 +264,7 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules(struct lst::Modules& modulesInGPU, - const uint16_t moduleIndex) { + uint16_t moduleIndex) { // The "tighter" tilted modules are the subset of tilted modules that have smaller spacing // This is the same as what was previously considered as"isNormalTiltedModules" // See Figure 9.1 of https://cds.cern.ch/record/2272264/files/CMS-TDR-014.pdf @@ -284,7 +284,7 @@ namespace lst { return false; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize(struct lst::Modules& modulesInGPU, const uint16_t moduleIndex) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize(struct lst::Modules& modulesInGPU, uint16_t moduleIndex) { float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; @@ -337,11 +337,11 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float dPhiThreshold(TAcc const& acc, - const float rt, + float rt, struct lst::Modules& modulesInGPU, - const uint16_t moduleIndex, - const float dPhi = 0, - const float dz = 0) { + uint16_t moduleIndex, + float dPhi = 0, + float dz = 0) { // ================================================================= // Various constants // ================================================================= @@ -401,19 +401,19 @@ namespace lst { template ALPAKA_FN_INLINE ALPAKA_FN_ACC void shiftStripHits(TAcc const& acc, struct lst::Modules& modulesInGPU, - const uint16_t lowerModuleIndex, - const uint16_t upperModuleIndex, - const unsigned int lowerHitIndex, - const unsigned int upperHitIndex, + uint16_t lowerModuleIndex, + uint16_t upperModuleIndex, + unsigned int lowerHitIndex, + unsigned int upperHitIndex, float* shiftedCoords, - const float xLower, - const float yLower, - const float zLower, - const float rtLower, - const float xUpper, - const float yUpper, - const float zUpper, - const float rtUpper) { + float xLower, + float yLower, + float zLower, + float rtLower, + float xUpper, + float yUpper, + float zUpper, + float rtUpper) { // This is the strip shift scheme that is explained in http://uaf-10.t2.ucsd.edu/~phchang/talks/PhilipChang20190607_SDL_Update.pdf (see backup slides) // The main feature of this shifting is that the strip hits are shifted to be "aligned" in the line of sight from interaction point to the the pixel hit. // (since pixel hit is well defined in 3-d) @@ -567,10 +567,10 @@ namespace lst { template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgo(TAcc const& acc, struct lst::Modules& modulesInGPU, - const uint16_t lowerModuleIndex, - const uint16_t upperModuleIndex, - const unsigned int lowerHitIndex, - const unsigned int upperHitIndex, + uint16_t lowerModuleIndex, + uint16_t upperModuleIndex, + unsigned int lowerHitIndex, + unsigned int upperHitIndex, float& dz, float& dPhi, float& dPhiChange, @@ -579,14 +579,14 @@ namespace lst { float& shiftedZ, float& noShiftedDphi, float& noShiftedDphiChange, - const float xLower, - const float yLower, - const float zLower, - const float rtLower, - const float xUpper, - const float yUpper, - const float zUpper, - const float rtUpper) { + float xLower, + float yLower, + float zLower, + float rtLower, + float xUpper, + float yUpper, + float zUpper, + float rtUpper) { if (modulesInGPU.subdets[lowerModuleIndex] == lst::Barrel) { return runMiniDoubletDefaultAlgoBarrel(acc, modulesInGPU, @@ -639,10 +639,10 @@ namespace lst { template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgoBarrel(TAcc const& acc, struct lst::Modules& modulesInGPU, - const uint16_t lowerModuleIndex, - const uint16_t upperModuleIndex, - const unsigned int lowerHitIndex, - const unsigned int upperHitIndex, + uint16_t lowerModuleIndex, + uint16_t upperModuleIndex, + unsigned int lowerHitIndex, + unsigned int upperHitIndex, float& dz, float& dPhi, float& dPhiChange, @@ -651,17 +651,16 @@ namespace lst { float& shiftedZ, float& noShiftedDphi, float& noShiftedDphiChange, - const float xLower, - const float yLower, - const float zLower, - const float rtLower, - const float xUpper, - const float yUpper, - const float zUpper, - const float rtUpper) { + float xLower, + float yLower, + float zLower, + float rtLower, + float xUpper, + float yUpper, + float zUpper, + float rtUpper) { dz = zLower - zUpper; const float dzCut = modulesInGPU.moduleType[lowerModuleIndex] == lst::PS ? 2.f : 10.f; - //const float sign = ((dz > 0) - (dz < 0)) * ((hitsInGPU.zs[lowerHitIndex] > 0) - (hitsInGPU.zs[lowerHitIndex] < 0)); const float sign = ((dz > 0) - (dz < 0)) * ((zLower > 0) - (zLower < 0)); const float invertedcrossercut = (alpaka::math::abs(acc, dz) > 2) * sign; @@ -767,10 +766,10 @@ namespace lst { template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgoEndcap(TAcc const& acc, struct lst::Modules& modulesInGPU, - const uint16_t lowerModuleIndex, - const uint16_t upperModuleIndex, - const unsigned int lowerHitIndex, - const unsigned int upperHitIndex, + uint16_t lowerModuleIndex, + uint16_t upperModuleIndex, + unsigned int lowerHitIndex, + unsigned int upperHitIndex, float& drt, float& dPhi, float& dPhiChange, @@ -779,14 +778,14 @@ namespace lst { float& shiftedZ, float& noShiftedDphi, float& noShiftedDphichange, - const float xLower, - const float yLower, - const float zLower, - const float rtLower, - const float xUpper, - const float yUpper, - const float zUpper, - const float rtUpper) { + float xLower, + float yLower, + float zLower, + float rtLower, + float xUpper, + float yUpper, + float zUpper, + float rtUpper) { // There are series of cuts that applies to mini-doublet in a "endcap" region // Cut #1 : dz cut. The dz difference can't be larger than 1cm. (max separation is 4mm for modules in the endcap) // Ref to original code: https://github.com/slava77/cms-tkph2-ntuple/blob/184d2325147e6930030d3d1f780136bc2dd29ce6/doubletAnalysis.C#L3093 diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h index 45883d0fd9454..a8b6f1761ebd4 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h @@ -22,11 +22,11 @@ namespace lst::t5dnn { const float* yVec, const unsigned int* mdIndices, const uint16_t* lowerModuleIndices, - const unsigned int innerTripletIndex, - const unsigned int outerTripletIndex, - const float innerRadius, - const float outerRadius, - const float bridgeRadius) { + unsigned int innerTripletIndex, + unsigned int outerTripletIndex, + float innerRadius, + float outerRadius, + float bridgeRadius) { // Unpack x-coordinates of hits float x1 = xVec[0]; float x2 = xVec[1]; diff --git a/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h b/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h index 7129f5b155574..1e1ccf8df12bc 100644 --- a/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h +++ b/RecoTracker/LSTCore/src/alpaka/ObjectRanges.h @@ -105,7 +105,7 @@ namespace lst { ObjectRanges data_; template - ObjectRangesBuffer(const unsigned int nMod, const unsigned int nLowerMod, TDevAcc const& devAccIn, TQueue& queue) + ObjectRangesBuffer(unsigned int nMod, unsigned int nLowerMod, TDevAcc const& devAccIn, TQueue& queue) : hitRanges_buf(allocBufWrapper(devAccIn, nMod * 2, queue)), hitRangesLower_buf(allocBufWrapper(devAccIn, nMod, queue)), hitRangesUpper_buf(allocBufWrapper(devAccIn, nMod, queue)), diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index 5bfc7f5aa7a8b..da5761b19c715 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -98,7 +98,7 @@ namespace lst { PixelTriplets data_; template - PixelTripletsBuffer(const unsigned int maxPixelTriplets, TDevAcc const& devAccIn, TQueue& queue) + PixelTripletsBuffer(unsigned int maxPixelTriplets, TDevAcc const& devAccIn, TQueue& queue) : pixelSegmentIndices_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), tripletIndices_buf(allocBufWrapper(devAccIn, maxPixelTriplets, queue)), nPixelTriplets_buf(allocBufWrapper(devAccIn, 1, queue)), @@ -137,22 +137,22 @@ namespace lst { struct lst::Segments& segmentsInGPU, struct lst::Triplets& tripletsInGPU, struct lst::PixelTriplets& pixelTripletsInGPU, - const unsigned int pixelSegmentIndex, - const unsigned int tripletIndex, - const float pixelRadius, - const float tripletRadius, - const float centerX, - const float centerY, - const float rPhiChiSquared, - const float rPhiChiSquaredInwards, - const float rzChiSquared, - const unsigned int pixelTripletIndex, - const float pt, - const float eta, - const float phi, - const float eta_pix, - const float phi_pix, - const float score) { + unsigned int pixelSegmentIndex, + unsigned int tripletIndex, + float pixelRadius, + float tripletRadius, + float centerX, + float centerY, + float rPhiChiSquared, + float rPhiChiSquaredInwards, + float rzChiSquared, + unsigned int pixelTripletIndex, + float pt, + float eta, + float phi, + float eta_pix, + float phi_pix, + float score) { pixelTripletsInGPU.pixelSegmentIndices[pixelTripletIndex] = pixelSegmentIndex; pixelTripletsInGPU.tripletIndices[pixelTripletIndex] = tripletIndex; pixelTripletsInGPU.pixelRadius[pixelTripletIndex] = __F2H(pixelRadius); @@ -218,11 +218,11 @@ namespace lst { struct lst::ObjectRanges& rangesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - const uint16_t pixelLowerModuleIndex, - const uint16_t outerInnerLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, - const unsigned int innerSegmentIndex, - const unsigned int outerSegmentIndex, + uint16_t pixelLowerModuleIndex, + uint16_t outerInnerLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, + unsigned int innerSegmentIndex, + unsigned int outerSegmentIndex, float& zOut, float& rtOut, float& deltaPhiPos, @@ -324,10 +324,10 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RZChiSquaredCuts(struct lst::Modules& modulesInGPU, - const uint16_t lowerModuleIndex1, - const uint16_t lowerModuleIndex2, - const uint16_t lowerModuleIndex3, - const float rzChiSquared) { + uint16_t lowerModuleIndex1, + uint16_t lowerModuleIndex2, + uint16_t lowerModuleIndex3, + float rzChiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and @@ -386,9 +386,9 @@ namespace lst { float* delta2, float* slopes, bool* isFlat, - const float g, - const float f, - const float radius) { + float g, + float f, + float radius) { //given values of (g, f, radius) and a set of points (and its uncertainties) //compute chi squared float c = g * g + f * f - radius * radius; @@ -428,9 +428,9 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT3RPhiChiSquared(TAcc const& acc, struct lst::Modules& modulesInGPU, uint16_t* lowerModuleIndices, - const float g, - const float f, - const float radius, + float g, + float f, + float radius, float* xs, float* ys) { float delta1[3]{}, delta2[3]{}, slopes[3]; @@ -496,7 +496,7 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT3RPhiChiSquaredInwards( - struct lst::Modules& modulesInGPU, const float g, const float f, const float r, float* xPix, float* yPix) { + struct lst::Modules& modulesInGPU, float g, float f, float r, float* xPix, float* yPix) { float residual = (xPix[0] - g) * (xPix[0] - g) + (yPix[0] - f) * (yPix[0] - f) - r * r; float chiSquared = residual * residual; residual = (xPix[1] - g) * (xPix[1] - g) + (yPix[1] - f) * (yPix[1] - f) - r * r; @@ -508,10 +508,10 @@ namespace lst { //90pc threshold ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredCuts(struct lst::Modules& modulesInGPU, - const uint16_t lowerModuleIndex1, - const uint16_t lowerModuleIndex2, - const uint16_t lowerModuleIndex3, - const float chiSquared) { + uint16_t lowerModuleIndex1, + uint16_t lowerModuleIndex2, + uint16_t lowerModuleIndex3, + float chiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and @@ -555,9 +555,9 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredInwardsCuts(struct lst::Modules& modulesInGPU, - const uint16_t lowerModuleIndex1, - const uint16_t lowerModuleIndex2, - const uint16_t lowerModuleIndex3, + uint16_t lowerModuleIndex1, + uint16_t lowerModuleIndex2, + uint16_t lowerModuleIndex3, float& chiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + @@ -613,19 +613,19 @@ namespace lst { return true; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool checkIntervalOverlappT3(const float firstMin, - const float firstMax, - const float secondMin, - const float secondMax) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool checkIntervalOverlappT3(float firstMin, + float firstMax, + float secondMin, + float secondMax) { return ((firstMin <= secondMin) && (secondMin < firstMax)) || ((secondMin < firstMin) && (firstMin < secondMax)); }; /*bounds for high Pt taken from : http://uaf-10.t2.ucsd.edu/~bsathian/SDL/T5_efficiency/efficiencies/new_efficiencies/efficiencies_20210513_T5_recovering_high_Pt_efficiencies/highE_radius_matching/highE_bounds.txt */ template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRadiusCriterionBBB(TAcc const& acc, - const float pixelRadius, - const float pixelRadiusError, - const float tripletRadius) { + float pixelRadius, + float pixelRadiusError, + float tripletRadius) { float tripletInvRadiusErrorBound = 0.15624f; float pixelInvRadiusErrorBound = 0.17235f; @@ -647,9 +647,9 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRadiusCriterionBBE(TAcc const& acc, - const float pixelRadius, - const float pixelRadiusError, - const float tripletRadius) { + float pixelRadius, + float pixelRadiusError, + float tripletRadius) { float tripletInvRadiusErrorBound = 0.45972f; float pixelInvRadiusErrorBound = 0.19644f; @@ -671,9 +671,9 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRadiusCriterionBEE(TAcc const& acc, - const float pixelRadius, - const float pixelRadiusError, - const float tripletRadius) { + float pixelRadius, + float pixelRadiusError, + float tripletRadius) { float tripletInvRadiusErrorBound = 1.59294f; float pixelInvRadiusErrorBound = 0.255181f; @@ -697,9 +697,9 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRadiusCriterionEEE(TAcc const& acc, - const float pixelRadius, - const float pixelRadiusError, - const float tripletRadius) { + float pixelRadius, + float pixelRadiusError, + float tripletRadius) { float tripletInvRadiusErrorBound = 1.7006f; float pixelInvRadiusErrorBound = 0.26367f; @@ -724,12 +724,12 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRadiusCriterion(TAcc const& acc, struct lst::Modules const& modulesInGPU, - const float pixelRadius, - const float pixelRadiusError, - const float tripletRadius, - const int16_t lowerModuleIndex, - const uint16_t middleModuleIndex, - const uint16_t upperModuleIndex) { + float pixelRadius, + float pixelRadiusError, + float tripletRadius, + int16_t lowerModuleIndex, + uint16_t middleModuleIndex, + uint16_t upperModuleIndex) { if (modulesInGPU.subdets[lowerModuleIndex] == lst::Endcap) { return passRadiusCriterionEEE(acc, pixelRadius, pixelRadiusError, tripletRadius); } else if (modulesInGPU.subdets[middleModuleIndex] == lst::Endcap) { @@ -753,11 +753,11 @@ namespace lst { const float* xs, const float* ys, const float* zs, - const float pixelSegmentPt, - const float pixelSegmentPx, - const float pixelSegmentPy, - const float pixelSegmentPz, - const int pixelSegmentCharge) { + float pixelSegmentPt, + float pixelSegmentPx, + float pixelSegmentPy, + float pixelSegmentPz, + int pixelSegmentCharge) { float residual = 0; float error2 = 0; float RMSE = 0; @@ -837,8 +837,8 @@ namespace lst { struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, struct lst::Triplets& tripletsInGPU, - const unsigned int pixelSegmentIndex, - const unsigned int tripletIndex, + unsigned int pixelSegmentIndex, + unsigned int tripletIndex, float& pixelRadius, float& pixelRadiusError, float& tripletRadius, @@ -847,7 +847,7 @@ namespace lst { float& rzChiSquared, float& rPhiChiSquared, float& rPhiChiSquaredInwards, - const bool runChiSquaredCuts = true) { + bool runChiSquaredCuts = true) { //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]; @@ -1037,7 +1037,7 @@ namespace lst { struct lst::PixelTriplets pixelTripletsInGPU, unsigned int* connectedPixelSize, unsigned int* connectedPixelIndex, - const unsigned int nPixelSegments) const { + unsigned int nPixelSegments) const { auto const globalBlockIdx = alpaka::getIdx(acc); auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridBlockExtent = alpaka::getWorkDiv(acc); @@ -1172,10 +1172,10 @@ namespace lst { float& betaOut, float& betaAv, float& pt_beta, - const float sdIn_dr, - const float sdOut_dr, - const float dr, - const float lIn) { + float sdIn_dr, + float sdOut_dr, + float dr, + float lIn) { if (lIn == 0) { betaOut += alpaka::math::copysign( acc, @@ -1278,15 +1278,15 @@ namespace lst { struct lst::ObjectRanges& rangesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - const uint16_t pixelModuleIndex, - const uint16_t outerInnerLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, - const unsigned int innerSegmentIndex, - const unsigned int outerSegmentIndex, - const unsigned int firstMDIndex, - const unsigned int secondMDIndex, - const unsigned int thirdMDIndex, - const unsigned int fourthMDIndex, + uint16_t pixelModuleIndex, + uint16_t outerInnerLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, + unsigned int innerSegmentIndex, + unsigned int outerSegmentIndex, + unsigned int firstMDIndex, + unsigned int secondMDIndex, + unsigned int thirdMDIndex, + unsigned int fourthMDIndex, float& /*z_OutLo*/, float& /*rt_OutLo*/, float& dPhiPos, @@ -1557,15 +1557,15 @@ namespace lst { struct lst::ObjectRanges& rangesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - const uint16_t pixelModuleIndex, - const uint16_t outerInnerLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, - const unsigned int innerSegmentIndex, - const unsigned int outerSegmentIndex, - const unsigned int firstMDIndex, - const unsigned int secondMDIndex, - const unsigned int thirdMDIndex, - const unsigned int fourthMDIndex, + uint16_t pixelModuleIndex, + uint16_t outerInnerLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, + unsigned int innerSegmentIndex, + unsigned int outerSegmentIndex, + unsigned int firstMDIndex, + unsigned int secondMDIndex, + unsigned int thirdMDIndex, + unsigned int fourthMDIndex, float& /*z_OutLo*/, float& /*rt_OutLo*/, float& deltaPhiPos, @@ -1921,7 +1921,7 @@ namespace lst { PixelQuintuplets data_; template - PixelQuintupletsBuffer(const unsigned int maxPixelQuintuplets, TDevAcc const& devAccIn, TQueue& queue) + PixelQuintupletsBuffer(unsigned int maxPixelQuintuplets, TDevAcc const& devAccIn, TQueue& queue) : pixelIndices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), T5Indices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), nPixelQuintuplets_buf(allocBufWrapper(devAccIn, 1, queue)), @@ -1954,15 +1954,15 @@ namespace lst { struct lst::Segments& segmentsInGPU, struct lst::Quintuplets& quintupletsInGPU, struct lst::PixelQuintuplets& pixelQuintupletsInGPU, - const unsigned int pixelIndex, - const unsigned int T5Index, - const unsigned int pixelQuintupletIndex, + unsigned int pixelIndex, + unsigned int T5Index, + unsigned int pixelQuintupletIndex, float& rzChiSquared, float& rPhiChiSquared, float& rPhiChiSquaredInwards, - const float score, - const float eta, - const float phi, + float score, + float eta, + float phi, float& pixelRadius, float& quintupletRadius, float& centerX, @@ -2046,12 +2046,12 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RZChiSquaredCuts(struct lst::Modules& modulesInGPU, - const uint16_t lowerModuleIndex1, - const uint16_t lowerModuleIndex2, - const uint16_t lowerModuleIndex3, - const uint16_t lowerModuleIndex4, - const uint16_t lowerModuleIndex5, - const float rzChiSquared) { + uint16_t lowerModuleIndex1, + uint16_t lowerModuleIndex2, + uint16_t lowerModuleIndex3, + uint16_t lowerModuleIndex4, + uint16_t lowerModuleIndex5, + float rzChiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and @@ -2136,12 +2136,12 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredCuts(struct lst::Modules& modulesInGPU, - const uint16_t lowerModuleIndex1, - const uint16_t lowerModuleIndex2, - const uint16_t lowerModuleIndex3, - const uint16_t lowerModuleIndex4, - const uint16_t lowerModuleIndex5, - const float rPhiChiSquared) { + uint16_t lowerModuleIndex1, + uint16_t lowerModuleIndex2, + uint16_t lowerModuleIndex3, + uint16_t lowerModuleIndex4, + uint16_t lowerModuleIndex5, + float rPhiChiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and @@ -2227,16 +2227,16 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeChiSquaredpT5(TAcc const& acc, - const unsigned int nPoints, + unsigned int nPoints, float* xs, float* ys, float* delta1, float* delta2, float* slopes, bool* isFlat, - const float g, - const float f, - const float radius) { + float g, + float f, + float radius) { /* Given values of (g, f, radius) and a set of points (and its uncertainties) compute chi squared */ @@ -2279,8 +2279,8 @@ namespace lst { float* delta2, float* slopes, bool* isFlat, - const unsigned int nPoints = 5, - const bool anchorHits = true) { + unsigned int nPoints = 5, + bool anchorHits = true) { /* bool anchorHits required to deal with a weird edge case wherein the hits ultimately used in the regression are anchor hits, but the @@ -2361,9 +2361,9 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RPhiChiSquared(TAcc const& acc, struct lst::Modules& modulesInGPU, uint16_t* lowerModuleIndices, - const float g, - const float f, - const float radius, + float g, + float f, + float radius, float* xs, float* ys) { /* @@ -2396,12 +2396,12 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredInwardsCuts(struct lst::Modules& modulesInGPU, - const uint16_t lowerModuleIndex1, - const uint16_t lowerModuleIndex2, - const uint16_t lowerModuleIndex3, - const uint16_t lowerModuleIndex4, - const uint16_t lowerModuleIndex5, - const float rPhiChiSquared) { + uint16_t lowerModuleIndex1, + uint16_t lowerModuleIndex2, + uint16_t lowerModuleIndex3, + uint16_t lowerModuleIndex4, + uint16_t lowerModuleIndex5, + float rPhiChiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and @@ -2493,8 +2493,8 @@ namespace lst { struct lst::Segments& segmentsInGPU, struct lst::Triplets& tripletsInGPU, struct lst::Quintuplets& quintupletsInGPU, - const unsigned int pixelSegmentIndex, - const unsigned int quintupletIndex, + unsigned int pixelSegmentIndex, + unsigned int quintupletIndex, float& rzChiSquared, float& rPhiChiSquared, float& rPhiChiSquaredInwards, @@ -2502,7 +2502,7 @@ namespace lst { float& quintupletRadius, float& centerX, float& centerY, - const unsigned int pixelSegmentArrayIndex) { + unsigned int pixelSegmentArrayIndex) { unsigned int T5InnerT3Index = quintupletsInGPU.tripletIndices[2 * quintupletIndex]; unsigned int T5OuterT3Index = quintupletsInGPU.tripletIndices[2 * quintupletIndex + 1]; diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 2c260876af268..1d796a6613824 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -104,8 +104,8 @@ namespace lst { Quintuplets data_; template - QuintupletsBuffer(const unsigned int nTotalQuintuplets, - const unsigned int nLowerModules, + QuintupletsBuffer(unsigned int nTotalQuintuplets, + unsigned int nLowerModules, TDevAcc const& devAccIn, TQueue& queue) : tripletIndices_buf(allocBufWrapper(devAccIn, 2 * nTotalQuintuplets, queue)), @@ -144,22 +144,22 @@ namespace lst { inline void setData(QuintupletsBuffer& buf) { data_.setData(buf); } }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool checkIntervalOverlap(const float firstMin, - const float firstMax, - const float secondMin, - const float secondMax) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool checkIntervalOverlap(float firstMin, + float firstMax, + float secondMin, + float secondMax) { return ((firstMin <= secondMin) && (secondMin < firstMax)) || ((secondMin < firstMin) && (firstMin < secondMax)); }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void addQuintupletToMemory(struct lst::Triplets& tripletsInGPU, struct lst::Quintuplets& quintupletsInGPU, - const unsigned int innerTripletIndex, - const unsigned int outerTripletIndex, - const uint16_t lowerModule1, - const uint16_t lowerModule2, - const uint16_t lowerModule3, - const uint16_t lowerModule4, - const uint16_t lowerModule5, + unsigned int innerTripletIndex, + unsigned int outerTripletIndex, + uint16_t lowerModule1, + uint16_t lowerModule2, + uint16_t lowerModule3, + uint16_t lowerModule4, + uint16_t lowerModule5, float& innerRadius, float& bridgeRadius, float& outerRadius, @@ -169,13 +169,13 @@ namespace lst { float& rzChiSquared, float& rPhiChiSquared, float& nonAnchorChiSquared, - const float pt, - const float eta, - const float phi, - const float scores, - const uint8_t layer, - const unsigned int quintupletIndex, - const bool TightCutFlag) { + float pt, + float eta, + float phi, + float scores, + uint8_t layer, + unsigned int quintupletIndex, + bool TightCutFlag) { quintupletsInGPU.tripletIndices[2 * quintupletIndex] = innerTripletIndex; quintupletsInGPU.tripletIndices[2 * quintupletIndex + 1] = outerTripletIndex; @@ -235,12 +235,12 @@ namespace lst { //90% constraint ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passChiSquaredConstraint(struct lst::Modules& modulesInGPU, - const uint16_t lowerModuleIndex1, - const uint16_t lowerModuleIndex2, - const uint16_t lowerModuleIndex3, - const uint16_t lowerModuleIndex4, - const uint16_t lowerModuleIndex5, - const float chiSquared) { + uint16_t lowerModuleIndex1, + uint16_t lowerModuleIndex2, + uint16_t lowerModuleIndex3, + uint16_t lowerModuleIndex4, + uint16_t lowerModuleIndex5, + float chiSquared) { // Using sdlLayer numbering convention defined in ModuleMethods.h const int layer1 = modulesInGPU.sdlLayers[lowerModuleIndex1]; const int layer2 = modulesInGPU.sdlLayers[lowerModuleIndex2]; @@ -321,21 +321,21 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passT5RZConstraint(TAcc const& acc, struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, - const unsigned int firstMDIndex, - const unsigned int secondMDIndex, - const unsigned int thirdMDIndex, - const unsigned int fourthMDIndex, - const unsigned int fifthMDIndex, - const uint16_t lowerModuleIndex1, - const uint16_t lowerModuleIndex2, - const uint16_t lowerModuleIndex3, - const uint16_t lowerModuleIndex4, - const uint16_t lowerModuleIndex5, + unsigned int firstMDIndex, + unsigned int secondMDIndex, + unsigned int thirdMDIndex, + unsigned int fourthMDIndex, + unsigned int fifthMDIndex, + uint16_t lowerModuleIndex1, + uint16_t lowerModuleIndex2, + uint16_t lowerModuleIndex3, + uint16_t lowerModuleIndex4, + uint16_t lowerModuleIndex5, float& rzChiSquared, - const float inner_pt, - const float innerRadius, - const float g, - const float f, + float inner_pt, + float innerRadius, + float g, + float f, bool& TightCutFlag) { //(g,f) is the center of the circle fitted by the innermost 3 points on x,y coordinates const float& rt1 = mdsInGPU.anchorRt[firstMDIndex] / 100; //in the unit of m instead of cm @@ -755,8 +755,8 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool T5HasCommonMiniDoublet(struct lst::Triplets& tripletsInGPU, struct lst::Segments& segmentsInGPU, - const unsigned int innerTripletIndex, - const unsigned int outerTripletIndex) { + unsigned int innerTripletIndex, + unsigned int outerTripletIndex) { unsigned int innerOuterSegmentIndex = tripletsInGPU.segmentIndices[2 * innerTripletIndex + 1]; unsigned int outerInnerSegmentIndex = tripletsInGPU.segmentIndices[2 * outerTripletIndex]; unsigned int innerOuterOuterMiniDoubletIndex = @@ -1158,8 +1158,8 @@ namespace lst { float* delta2, float* slopes, bool* isFlat, - const unsigned int nPoints = 5, - const bool anchorHits = true) { + unsigned int nPoints = 5, + bool anchorHits = true) { /* Bool anchorHits required to deal with a weird edge case wherein the hits ultimately used in the regression are anchor hits, but the @@ -1239,7 +1239,7 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeRadiusUsingRegression(TAcc const& acc, - const unsigned int nPoints, + unsigned int nPoints, float* xs, float* ys, float* delta1, @@ -1337,16 +1337,16 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeChiSquared(TAcc const& acc, - const unsigned int nPoints, + unsigned int nPoints, float* xs, float* ys, float* delta1, float* delta2, float* slopes, bool* isFlat, - const float g, - const float f, - const float radius) { + float g, + float f, + float radius) { // given values of (g, f, radius) and a set of points (and its uncertainties) // compute chi squared float c = g * g + f * f - radius * radius; @@ -1387,10 +1387,10 @@ namespace lst { float& betaOut, float& betaAv, float& pt_beta, - const float sdIn_dr, - const float sdOut_dr, - const float dr, - const float lIn) { + float sdIn_dr, + float sdOut_dr, + float dr, + float lIn) { if (lIn == 0) { betaOut += alpaka::math::copysign( acc, @@ -1492,16 +1492,16 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - const uint16_t innerInnerLowerModuleIndex, - const uint16_t innerOuterLowerModuleIndex, - const uint16_t outerInnerLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, - const unsigned int innerSegmentIndex, - const unsigned int outerSegmentIndex, - const unsigned int firstMDIndex, - const unsigned int secondMDIndex, - const unsigned int thirdMDIndex, - const unsigned int fourthMDIndex, + uint16_t innerInnerLowerModuleIndex, + uint16_t innerOuterLowerModuleIndex, + uint16_t outerInnerLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, + unsigned int innerSegmentIndex, + unsigned int outerSegmentIndex, + unsigned int firstMDIndex, + unsigned int secondMDIndex, + unsigned int thirdMDIndex, + unsigned int fourthMDIndex, float& zOut, float& rtOut, float& deltaPhiPos, @@ -1761,16 +1761,16 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - const uint16_t innerInnerLowerModuleIndex, - const uint16_t innerOuterLowerModuleIndex, - const uint16_t outerInnerLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, - const unsigned int innerSegmentIndex, - const unsigned int outerSegmentIndex, - const unsigned int firstMDIndex, - const unsigned int secondMDIndex, - const unsigned int thirdMDIndex, - const unsigned int fourthMDIndex, + uint16_t innerInnerLowerModuleIndex, + uint16_t innerOuterLowerModuleIndex, + uint16_t outerInnerLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, + unsigned int innerSegmentIndex, + unsigned int outerSegmentIndex, + unsigned int firstMDIndex, + unsigned int secondMDIndex, + unsigned int thirdMDIndex, + unsigned int fourthMDIndex, float& zOut, float& rtOut, float& deltaPhiPos, @@ -2032,16 +2032,16 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - const uint16_t innerInnerLowerModuleIndex, - const uint16_t innerOuterLowerModuleIndex, - const uint16_t outerInnerLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, - const unsigned int innerSegmentIndex, - const unsigned int outerSegmentIndex, - const unsigned int firstMDIndex, - const unsigned int secondMDIndex, - const unsigned int thirdMDIndex, - const unsigned int fourthMDIndex, + uint16_t innerInnerLowerModuleIndex, + uint16_t innerOuterLowerModuleIndex, + uint16_t outerInnerLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, + unsigned int innerSegmentIndex, + unsigned int outerSegmentIndex, + unsigned int firstMDIndex, + unsigned int secondMDIndex, + unsigned int thirdMDIndex, + unsigned int fourthMDIndex, float& zOut, float& rtOut, float& deltaPhiPos, @@ -2289,16 +2289,16 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - const uint16_t innerInnerLowerModuleIndex, - const uint16_t innerOuterLowerModuleIndex, - const uint16_t outerInnerLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, - const unsigned int innerSegmentIndex, - const unsigned int outerSegmentIndex, - const unsigned int firstMDIndex, - const unsigned int secondMDIndex, - const unsigned int thirdMDIndex, - const unsigned int fourthMDIndex, + uint16_t innerInnerLowerModuleIndex, + uint16_t innerOuterLowerModuleIndex, + uint16_t outerInnerLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, + unsigned int innerSegmentIndex, + unsigned int outerSegmentIndex, + unsigned int firstMDIndex, + unsigned int secondMDIndex, + unsigned int thirdMDIndex, + unsigned int fourthMDIndex, float& zOut, float& rtOut, float& deltaPhiPos, @@ -2497,13 +2497,13 @@ namespace lst { struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, struct lst::Triplets& tripletsInGPU, - const uint16_t lowerModuleIndex1, - const uint16_t lowerModuleIndex2, - const uint16_t lowerModuleIndex3, - const uint16_t lowerModuleIndex4, - const uint16_t lowerModuleIndex5, - const unsigned int innerTripletIndex, - const unsigned int outerTripletIndex, + uint16_t lowerModuleIndex1, + uint16_t lowerModuleIndex2, + uint16_t lowerModuleIndex3, + uint16_t lowerModuleIndex4, + uint16_t lowerModuleIndex5, + unsigned int innerTripletIndex, + unsigned int outerTripletIndex, float& innerRadius, float& outerRadius, float& bridgeRadius, @@ -2991,7 +2991,7 @@ namespace lst { struct lst::Triplets tripletsInGPU, struct lst::Quintuplets quintupletsInGPU, struct lst::ObjectRanges rangesInGPU, - const uint16_t nEligibleT5Modules) const { + uint16_t nEligibleT5Modules) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index 993d659844e23..93a17e3d72e46 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -125,9 +125,9 @@ namespace lst { Segments data_; template - SegmentsBuffer(const unsigned int nMemoryLocationsIn, - const uint16_t nLowerModules, - const unsigned int maxPixelSegments, + SegmentsBuffer(unsigned int nMemoryLocationsIn, + uint16_t nLowerModules, + unsigned int maxPixelSegments, TDevAcc const& devAccIn, TQueue& queue) : dPhis_buf(allocBufWrapper(devAccIn, nMemoryLocationsIn, queue)), @@ -176,7 +176,7 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules_seg(struct lst::Modules& modulesInGPU, - const unsigned int moduleIndex) { + unsigned int moduleIndex) { // The "tighter" tilted modules are the subset of tilted modules that have smaller spacing // This is the same as what was previously considered as"isNormalTiltedModules" // See Figure 9.1 of https://cds.cern.ch/record/2272264/files/CMS-TDR-014.pdf @@ -200,7 +200,7 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg( - const short layer, const short ring, const short subdet, const short side, const short rod) { + short layer, short ring, short subdet, short side, short rod) { static constexpr float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; static constexpr float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; static constexpr float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; @@ -231,7 +231,7 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg(struct lst::Modules& modulesInGPU, - const unsigned int moduleIndex) { + unsigned int moduleIndex) { static constexpr float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; static constexpr float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; static constexpr float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; @@ -276,10 +276,10 @@ namespace lst { float& yOut, float& zOut, float& rtOut, - const uint16_t innerLowerModuleIndex, - const uint16_t outerLowerModuleIndex, - const unsigned int innerMDIndex, - const unsigned int outerMDIndex) { + uint16_t innerLowerModuleIndex, + uint16_t outerLowerModuleIndex, + unsigned int innerMDIndex, + unsigned int outerMDIndex) { float sdMuls = (modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel) ? kMiniMulsPtScaleBarrel[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut : kMiniMulsPtScaleEndcap[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut; @@ -359,19 +359,19 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void addSegmentToMemory(struct lst::Segments& segmentsInGPU, - const unsigned int lowerMDIndex, - const unsigned int upperMDIndex, - const uint16_t innerLowerModuleIndex, - const uint16_t outerLowerModuleIndex, - const unsigned int innerMDAnchorHitIndex, - const unsigned int outerMDAnchorHitIndex, + unsigned int lowerMDIndex, + unsigned int upperMDIndex, + uint16_t innerLowerModuleIndex, + uint16_t outerLowerModuleIndex, + unsigned int innerMDAnchorHitIndex, + unsigned int outerMDAnchorHitIndex, float& dPhi, float& dPhiMin, float& dPhiMax, float& dPhiChange, float& dPhiChangeMin, float& dPhiChangeMax, - const unsigned int idx) { + unsigned int idx) { //idx will be computed in the kernel, which is the index into which the //segment will be written //nSegments will be incremented in the kernel @@ -395,16 +395,16 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelSegmentToMemory(TAcc const& acc, struct lst::Segments& segmentsInGPU, struct lst::MiniDoublets& mdsInGPU, - const unsigned int innerMDIndex, - const unsigned int outerMDIndex, - const uint16_t pixelModuleIndex, - const unsigned int hitIdxs[4], - const unsigned int innerAnchorHitIndex, - const unsigned int outerAnchorHitIndex, - const float dPhiChange, - const unsigned int idx, - const unsigned int pixelSegmentArrayIndex, - const float score) { + unsigned int innerMDIndex, + unsigned int outerMDIndex, + uint16_t pixelModuleIndex, + unsigned int hitIdxs[4], + unsigned int innerAnchorHitIndex, + unsigned int outerAnchorHitIndex, + float dPhiChange, + unsigned int idx, + unsigned int pixelSegmentArrayIndex, + float score) { segmentsInGPU.mdIndices[idx * 2] = innerMDIndex; segmentsInGPU.mdIndices[idx * 2 + 1] = outerMDIndex; segmentsInGPU.innerLowerModuleIndices[idx] = pixelModuleIndex; @@ -458,10 +458,10 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgoBarrel(TAcc const& acc, struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, - const uint16_t innerLowerModuleIndex, - const uint16_t outerLowerModuleIndex, - const unsigned int& innerMDIndex, - const unsigned int& outerMDIndex, + uint16_t innerLowerModuleIndex, + uint16_t outerLowerModuleIndex, + unsigned int& innerMDIndex, + unsigned int& outerMDIndex, float& zIn, float& zOut, float& rtIn, @@ -561,10 +561,10 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgoEndcap(TAcc const& acc, struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, - const uint16_t innerLowerModuleIndex, - const uint16_t outerLowerModuleIndex, - const unsigned int innerMDIndex, - const unsigned int outerMDIndex, + uint16_t innerLowerModuleIndex, + uint16_t outerLowerModuleIndex, + unsigned int innerMDIndex, + unsigned int outerMDIndex, float& zIn, float& zOut, float& rtIn, @@ -691,10 +691,10 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgo(TAcc const& acc, struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, - const uint16_t innerLowerModuleIndex, - const uint16_t outerLowerModuleIndex, - const unsigned int innerMDIndex, - const unsigned int outerMDIndex, + uint16_t innerLowerModuleIndex, + uint16_t outerLowerModuleIndex, + unsigned int innerMDIndex, + unsigned int outerMDIndex, float& zIn, float& zOut, float& rtIn, @@ -1023,8 +1023,8 @@ namespace lst { unsigned int* hitIndices2, unsigned int* hitIndices3, float* dPhiChange, - const uint16_t pixelModuleIndex, - const int size) const { + uint16_t pixelModuleIndex, + int size) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); diff --git a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h index d17ce8c347cbf..7451f5e47dc80 100644 --- a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h +++ b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h @@ -77,7 +77,7 @@ namespace lst { TrackCandidates data_; template - TrackCandidatesBuffer(const unsigned int maxTrackCandidates, TDevAcc const& devAccIn, TQueue& queue) + TrackCandidatesBuffer(unsigned int maxTrackCandidates, TDevAcc const& devAccIn, TQueue& queue) : trackCandidateType_buf(allocBufWrapper(devAccIn, maxTrackCandidates, queue)), directObjectIndices_buf(allocBufWrapper(devAccIn, maxTrackCandidates, queue)), objectIndices_buf(allocBufWrapper(devAccIn, 2 * maxTrackCandidates, queue)), @@ -110,10 +110,10 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void addpLSTrackCandidateToMemory(struct lst::TrackCandidates& trackCandidatesInGPU, - const unsigned int trackletIndex, - const unsigned int trackCandidateIndex, - const uint4 hitIndices, - const int pixelSeedIndex) { + unsigned int trackletIndex, + unsigned int trackCandidateIndex, + uint4 hitIndices, + int pixelSeedIndex) { trackCandidatesInGPU.trackCandidateType[trackCandidateIndex] = 8; // type for pLS trackCandidatesInGPU.directObjectIndices[trackCandidateIndex] = trackletIndex; trackCandidatesInGPU.pixelSeedIndex[trackCandidateIndex] = pixelSeedIndex; @@ -129,18 +129,18 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTrackCandidateToMemory(struct lst::TrackCandidates& trackCandidatesInGPU, - const short trackCandidateType, - const unsigned int innerTrackletIndex, - const unsigned int outerTrackletIndex, + short trackCandidateType, + unsigned int innerTrackletIndex, + unsigned int outerTrackletIndex, uint8_t* logicalLayerIndices, uint16_t* lowerModuleIndices, unsigned int* hitIndices, - const int pixelSeedIndex, - const float centerX, - const float centerY, - const float radius, - const unsigned int trackCandidateIndex, - const unsigned int directObjectIndex) { + int pixelSeedIndex, + float centerX, + float centerY, + float radius, + unsigned int trackCandidateIndex, + unsigned int directObjectIndex) { trackCandidatesInGPU.trackCandidateType[trackCandidateIndex] = trackCandidateType; trackCandidatesInGPU.directObjectIndices[trackCandidateIndex] = directObjectIndex; trackCandidatesInGPU.pixelSeedIndex[trackCandidateIndex] = pixelSeedIndex; @@ -165,8 +165,8 @@ namespace lst { trackCandidatesInGPU.radius[trackCandidateIndex] = __F2H(radius); }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkPixelHits(const unsigned int ix, - const unsigned int jx, + ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkPixelHits(unsigned int ix, + unsigned int jx, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, struct lst::Hits& hitsInGPU) { @@ -439,7 +439,7 @@ namespace lst { struct addT5asTrackCandidateInGPU { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - const uint16_t nLowerModules, + uint16_t nLowerModules, struct lst::Quintuplets quintupletsInGPU, struct lst::TrackCandidates trackCandidatesInGPU, struct lst::ObjectRanges rangesInGPU) const { @@ -493,10 +493,10 @@ namespace lst { struct addpLSasTrackCandidateInGPU { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - const uint16_t nLowerModules, + uint16_t nLowerModules, struct lst::TrackCandidates trackCandidatesInGPU, struct lst::Segments segmentsInGPU, - const bool tc_pls_triplets) const { + bool tc_pls_triplets) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -532,7 +532,7 @@ namespace lst { struct addpT5asTrackCandidateInGPU { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - const uint16_t nLowerModules, + uint16_t nLowerModules, struct lst::PixelQuintuplets pixelQuintupletsInGPU, struct lst::TrackCandidates trackCandidatesInGPU, struct lst::Segments segmentsInGPU, diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index 1936ecb495ff7..336724e8a8bee 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -109,8 +109,8 @@ namespace lst { Triplets data_; template - TripletsBuffer(const unsigned int maxTriplets, - const unsigned int nLowerModules, + TripletsBuffer(unsigned int maxTriplets, + unsigned int nLowerModules, TDevAcc const& devAccIn, TQueue& queue) : segmentIndices_buf(allocBufWrapper(devAccIn, 2 * maxTriplets, queue)), @@ -159,11 +159,11 @@ namespace lst { struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, struct lst::Triplets& tripletsInGPU, - const unsigned int innerSegmentIndex, - const unsigned int outerSegmentIndex, - const uint16_t innerInnerLowerModuleIndex, - const uint16_t middleLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, + unsigned int innerSegmentIndex, + unsigned int outerSegmentIndex, + uint16_t innerInnerLowerModuleIndex, + uint16_t middleLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, float& zOut, float& rtOut, float& deltaPhiPos, @@ -180,22 +180,22 @@ namespace lst { float& zHiPointed, float& sdlCut, float& betaInCut, - const unsigned int tripletIndex) + unsigned int tripletIndex) #else ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTripletToMemory(struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, struct lst::Triplets& tripletsInGPU, - const unsigned int innerSegmentIndex, - const unsigned int outerSegmentIndex, - const uint16_t innerInnerLowerModuleIndex, - const uint16_t middleLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, + unsigned int innerSegmentIndex, + unsigned int outerSegmentIndex, + uint16_t innerInnerLowerModuleIndex, + uint16_t middleLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, float& betaIn, float& circleRadius, float& circleCenterX, float& circleCenterY, - const unsigned int tripletIndex) + unsigned int tripletIndex) #endif { tripletsInGPU.segmentIndices[tripletIndex * 2] = innerSegmentIndex; @@ -246,12 +246,12 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - const uint16_t innerInnerLowerModuleIndex, - const uint16_t middleLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, - const unsigned int firstMDIndex, - const unsigned int secondMDIndex, - const unsigned int thirdMDIndex) { + uint16_t innerInnerLowerModuleIndex, + uint16_t middleLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, + unsigned int firstMDIndex, + unsigned int secondMDIndex, + unsigned int thirdMDIndex) { //get the rt and z const float& r1 = mdsInGPU.anchorRt[firstMDIndex]; const float& r2 = mdsInGPU.anchorRt[secondMDIndex]; @@ -306,15 +306,15 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - const uint16_t innerInnerLowerModuleIndex, - const uint16_t middleLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, - const unsigned int firstMDIndex, - const unsigned int secondMDIndex, - const unsigned int thirdMDIndex, + uint16_t innerInnerLowerModuleIndex, + uint16_t middleLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, + unsigned int firstMDIndex, + unsigned int secondMDIndex, + unsigned int thirdMDIndex, float& zOut, float& rtOut, - const unsigned int innerSegmentIndex, + unsigned int innerSegmentIndex, float& betaIn, float& betaInCut) { bool isPSIn = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS); @@ -405,17 +405,17 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - const uint16_t innerInnerLowerModuleIndex, - const uint16_t middleLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, - const unsigned int firstMDIndex, - const unsigned int secondMDIndex, - const unsigned int thirdMDIndex, + uint16_t innerInnerLowerModuleIndex, + uint16_t middleLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, + unsigned int firstMDIndex, + unsigned int secondMDIndex, + unsigned int thirdMDIndex, float& zOut, float& rtOut, - const uint16_t innerOuterLowerModuleIndex, - const unsigned int innerSegmentIndex, - const unsigned int outerSegmentIndex, + uint16_t innerOuterLowerModuleIndex, + unsigned int innerSegmentIndex, + unsigned int outerSegmentIndex, float& betaIn, float& betaInCut) { bool isPSIn = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS); @@ -526,16 +526,16 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - const uint16_t innerInnerLowerModuleIndex, - const uint16_t middleLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, - const unsigned int firstMDIndex, - const unsigned int secondMDIndex, - const unsigned int thirdMDIndex, + uint16_t innerInnerLowerModuleIndex, + uint16_t middleLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, + unsigned int firstMDIndex, + unsigned int secondMDIndex, + unsigned int thirdMDIndex, float& zOut, float& rtOut, - const unsigned int innerSegmentIndex, - const unsigned int outerSegmentIndex, + unsigned int innerSegmentIndex, + unsigned int outerSegmentIndex, float& betaIn, float& betaInCut) { float rtIn = mdsInGPU.anchorRt[firstMDIndex]; @@ -649,17 +649,17 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - const uint16_t innerInnerLowerModuleIndex, - const uint16_t middleLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, - const unsigned int firstMDIndex, - const unsigned int secondMDIndex, - const unsigned int thirdMDIndex, + uint16_t innerInnerLowerModuleIndex, + uint16_t middleLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, + unsigned int firstMDIndex, + unsigned int secondMDIndex, + unsigned int thirdMDIndex, float& zOut, float& rtOut, - const uint16_t innerOuterLowerModuleIndex, - const unsigned int innerSegmentIndex, - const unsigned int outerSegmentIndex, + uint16_t innerOuterLowerModuleIndex, + unsigned int innerSegmentIndex, + unsigned int outerSegmentIndex, float& betaIn, float& betaInCut) { short innerInnerLowerModuleSubdet = modulesInGPU.subdets[innerInnerLowerModuleIndex]; @@ -748,12 +748,12 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeRadiusFromThreeAnchorHits(TAcc const& acc, - const float x1, - const float y1, - const float x2, - const float y2, - const float x3, - const float y3, + float x1, + float y1, + float x2, + float y2, + float x3, + float y3, float& g, float& f) { float radius = 0.f; @@ -793,11 +793,11 @@ namespace lst { struct lst::Modules& modulesInGPU, struct lst::MiniDoublets& mdsInGPU, struct lst::Segments& segmentsInGPU, - const uint16_t innerInnerLowerModuleIndex, - const uint16_t middleLowerModuleIndex, - const uint16_t outerOuterLowerModuleIndex, - const unsigned int innerSegmentIndex, - const unsigned int outerSegmentIndex, + uint16_t innerInnerLowerModuleIndex, + uint16_t middleLowerModuleIndex, + uint16_t outerOuterLowerModuleIndex, + unsigned int innerSegmentIndex, + unsigned int outerSegmentIndex, float& zOut, float& rtOut, float& deltaPhiPos, @@ -872,7 +872,7 @@ namespace lst { struct lst::Triplets tripletsInGPU, struct lst::ObjectRanges rangesInGPU, uint16_t* index_gpu, - const uint16_t nonZeroModules) const { + uint16_t nonZeroModules) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); From ce79bc1f6d478a6173b82baf3182c390f0226c1b Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Mon, 29 Jul 2024 06:03:10 -0700 Subject: [PATCH 24/35] First batch of fixing function arguments --- RecoTracker/LST/plugins/LSTOutputConverter.cc | 8 ++--- .../LST/plugins/LSTPixelSeedInputProducer.cc | 12 +++---- RecoTracker/LSTCore/src/ModuleMethods.h | 10 +++--- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 2 +- RecoTracker/LSTCore/src/alpaka/Event.h | 2 +- RecoTracker/LSTCore/src/alpaka/Hit.h | 16 ++++----- RecoTracker/LSTCore/src/alpaka/Kernels.h | 32 ++++++++--------- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 34 +++++++------------ .../LSTCore/src/alpaka/NeuralNetwork.h | 8 ++--- 9 files changed, 58 insertions(+), 66 deletions(-) diff --git a/RecoTracker/LST/plugins/LSTOutputConverter.cc b/RecoTracker/LST/plugins/LSTOutputConverter.cc index de528395d7c46..e21b456962b84 100644 --- a/RecoTracker/LST/plugins/LSTOutputConverter.cc +++ b/RecoTracker/LST/plugins/LSTOutputConverter.cc @@ -117,10 +117,10 @@ void LSTOutputConverter::produce(edm::StreamID, edm::Event& iEvent, const edm::E auto const& lstOutput = iEvent.get(lstOutputToken_); auto const& phase2OTRecHits = iEvent.get(lstPhase2OTHitsInputToken_); auto const& pixelSeeds = iEvent.get(lstPixelSeedToken_); - const auto& mf = iSetup.getData(mfToken_); - const auto& propAlo = iSetup.getData(propagatorAlongToken_); - const auto& propOppo = iSetup.getData(propagatorOppositeToken_); - const auto& tracker = iSetup.getData(tGeomToken_); + auto const& mf = iSetup.getData(mfToken_); + auto const& propAlo = iSetup.getData(propagatorAlongToken_); + auto const& propOppo = iSetup.getData(propagatorOppositeToken_); + auto const& tracker = iSetup.getData(tGeomToken_); // Vector definitions std::vector> const& lstTC_hitIdx = lstOutput.hitIdx(); diff --git a/RecoTracker/LST/plugins/LSTPixelSeedInputProducer.cc b/RecoTracker/LST/plugins/LSTPixelSeedInputProducer.cc index 2839270c9b59e..098d8731d62c8 100644 --- a/RecoTracker/LST/plugins/LSTPixelSeedInputProducer.cc +++ b/RecoTracker/LST/plugins/LSTPixelSeedInputProducer.cc @@ -60,7 +60,7 @@ void LSTPixelSeedInputProducer::fillDescriptions(edm::ConfigurationDescriptions& void LSTPixelSeedInputProducer::produce(edm::StreamID iID, edm::Event& iEvent, const edm::EventSetup& iSetup) const { // Setup - const auto& mf = iSetup.getData(mfToken_); + auto const& mf = iSetup.getData(mfToken_); auto const& bs = iEvent.get(beamSpotToken_); // Vector definitions @@ -83,7 +83,7 @@ void LSTPixelSeedInputProducer::produce(edm::StreamID iID, edm::Event& iEvent, c for (size_t iColl = 0; iColl < seedTokens_.size(); ++iColl) { // Get seed tokens - const auto& seedToken = seedTokens_[iColl]; + auto const& seedToken = seedTokens_[iColl]; auto const& seedTracks = iEvent.get(seedToken); if (seedTracks.empty()) @@ -98,10 +98,10 @@ void LSTPixelSeedInputProducer::produce(edm::StreamID iID, edm::Event& iEvent, c edm::ProductID id = seedTracks[0].seedRef().id(); for (size_t iSeed = 0; iSeed < seedTrackRefs.size(); ++iSeed) { - const auto& seedTrackRef = seedTrackRefs[iSeed]; - const auto& seedTrack = *seedTrackRef; - const auto& seedRef = seedTrack.seedRef(); - const auto& seed = *seedRef; + auto const& seedTrackRef = seedTrackRefs[iSeed]; + auto const& seedTrack = *seedTrackRef; + auto const& seedRef = seedTrack.seedRef(); + auto const& seed = *seedRef; if (seedRef.id() != id) throw cms::Exception("LogicError") diff --git a/RecoTracker/LSTCore/src/ModuleMethods.h b/RecoTracker/LSTCore/src/ModuleMethods.h index 80389a67e7081..4faf61ac0048b 100644 --- a/RecoTracker/LSTCore/src/ModuleMethods.h +++ b/RecoTracker/LSTCore/src/ModuleMethods.h @@ -30,7 +30,7 @@ namespace lst { PixelMap& pixelMapping, TQueue queue, const MapPLStoLayer& pLStoLayer, - struct ModuleMetaData& mmd) { + ModuleMetaData& mmd) { pixelMapping.pixelModuleIndex = mmd.detIdToIndex[1]; std::vector connectedModuleDetIds; @@ -105,10 +105,10 @@ namespace lst { }; template - inline void fillConnectedModuleArrayExplicit(struct ModulesBuffer* modulesBuf, + inline void fillConnectedModuleArrayExplicit(ModulesBuffer* modulesBuf, unsigned int nMod, TQueue queue, - struct ModuleMetaData& mmd, + ModuleMetaData& mmd, const ModuleConnectionMap* moduleConnectionMap) { alpaka_common::DevHost const& devHost = cms::alpakatools::host(); auto moduleMap_buf = allocBufWrapper(devHost, nMod * max_connected_modules); @@ -133,10 +133,10 @@ namespace lst { }; template - inline void fillMapArraysExplicit(struct ModulesBuffer* modulesBuf, + inline void fillMapArraysExplicit(ModulesBuffer* modulesBuf, unsigned int nMod, TQueue queue, - struct ModuleMetaData& mmd) { + ModuleMetaData& mmd) { alpaka_common::DevHost const& devHost = cms::alpakatools::host(); auto mapIdx_buf = allocBufWrapper(devHost, nMod); uint16_t* mapIdx = alpaka::getPtrNative(mapIdx_buf); diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index 20a8a35dc00bf..b2fa20e03fae9 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc @@ -996,7 +996,7 @@ void lst::Event::createQuintuplets() { } } -void lst::Event::pixelLineSegmentCleaning(const bool no_pls_dupclean) { +void lst::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); diff --git a/RecoTracker/LSTCore/src/alpaka/Event.h b/RecoTracker/LSTCore/src/alpaka/Event.h index 16002cfd5abd2..58b152f43fb3f 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.h +++ b/RecoTracker/LSTCore/src/alpaka/Event.h @@ -93,7 +93,7 @@ namespace lst { public: // Constructor used for CMSSW integration. Uses an external queue. template - Event(const 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()), diff --git a/RecoTracker/LSTCore/src/alpaka/Hit.h b/RecoTracker/LSTCore/src/alpaka/Hit.h index 3557750b11e2d..c14ac26124e6d 100644 --- a/RecoTracker/LSTCore/src/alpaka/Hit.h +++ b/RecoTracker/LSTCore/src/alpaka/Hit.h @@ -180,8 +180,8 @@ namespace lst { struct moduleRangesKernel { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::Hits hitsInGPU, + lst::Modules modulesInGPU, + lst::Hits hitsInGPU, int nLowerModules) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -203,14 +203,14 @@ namespace lst { struct hitLoopKernel { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - uint16_t Endcap, // Integer corresponding to endcap in module subdets - uint16_t TwoS, // Integer corresponding to TwoS in moduleType - unsigned int nModules, // Number of modules - unsigned int nEndCapMap, // Number of elements in endcap map + uint16_t Endcap, // Integer corresponding to endcap in module subdets + uint16_t TwoS, // Integer corresponding to TwoS in moduleType + unsigned int nModules, // Number of modules + unsigned int nEndCapMap, // Number of elements in endcap map const unsigned int* geoMapDetId, // DetId's from endcap map const float* geoMapPhi, // Phi values from endcap map - struct lst::Modules modulesInGPU, - struct lst::Hits hitsInGPU, + lst::Modules modulesInGPU, + lst::Hits hitsInGPU, unsigned int nHits) const // Total number of hits in event { auto const globalThreadIdx = alpaka::getIdx(acc); diff --git a/RecoTracker/LSTCore/src/alpaka/Kernels.h b/RecoTracker/LSTCore/src/alpaka/Kernels.h index b95d4ce24055f..775aba02c500b 100644 --- a/RecoTracker/LSTCore/src/alpaka/Kernels.h +++ b/RecoTracker/LSTCore/src/alpaka/Kernels.h @@ -13,23 +13,23 @@ #include "PixelTriplet.h" namespace lst { - ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmQuintupletFromMemory(struct lst::Quintuplets& quintupletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmQuintupletFromMemory(lst::Quintuplets& quintupletsInGPU, unsigned int quintupletIndex, bool secondpass = false) { quintupletsInGPU.isDup[quintupletIndex] |= 1 + secondpass; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelTripletFromMemory(struct lst::PixelTriplets& pixelTripletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelTripletFromMemory(lst::PixelTriplets& pixelTripletsInGPU, unsigned int pixelTripletIndex) { pixelTripletsInGPU.isDup[pixelTripletIndex] = true; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelQuintupletFromMemory(struct lst::PixelQuintuplets& pixelQuintupletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelQuintupletFromMemory(lst::PixelQuintuplets& pixelQuintupletsInGPU, unsigned int pixelQuintupletIndex) { pixelQuintupletsInGPU.isDup[pixelQuintupletIndex] = true; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelSegmentFromMemory(struct lst::Segments& segmentsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void rmPixelSegmentFromMemory(lst::Segments& segmentsInGPU, unsigned int pixelSegmentArrayIndex, bool secondpass = false) { segmentsInGPU.isDup[pixelSegmentArrayIndex] |= 1 + secondpass; @@ -37,7 +37,7 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitsT5(unsigned int ix, unsigned int jx, - struct lst::Quintuplets& quintupletsInGPU) { + lst::Quintuplets const& quintupletsInGPU) { unsigned int hits1[Params_T5::kHits]; unsigned int hits2[Params_T5::kHits]; @@ -64,7 +64,7 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkHitspT5(unsigned int ix, unsigned int jx, - struct lst::PixelQuintuplets& pixelQuintupletsInGPU) { + lst::PixelQuintuplets const& pixelQuintupletsInGPU) { unsigned int hits1[Params_pT5::kHits]; unsigned int hits2[Params_pT5::kHits]; @@ -91,7 +91,7 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE void checkHitspT3(unsigned int ix, unsigned int jx, - struct lst::PixelTriplets& pixelTripletsInGPU, + lst::PixelTriplets const& pixelTripletsInGPU, int* matched) { int phits1[Params_pLS::kHits]; int phits2[Params_pLS::kHits]; @@ -144,9 +144,9 @@ namespace lst { struct removeDupQuintupletsInGPUAfterBuild { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::Quintuplets quintupletsInGPU, - struct lst::ObjectRanges rangesInGPU) const { + lst::Modules modulesInGPU, + lst::Quintuplets quintupletsInGPU, + lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -194,8 +194,8 @@ namespace lst { struct removeDupQuintupletsInGPUBeforeTC { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Quintuplets quintupletsInGPU, - struct lst::ObjectRanges rangesInGPU) const { + lst::Quintuplets quintupletsInGPU, + lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -268,7 +268,7 @@ namespace lst { struct removeDupPixelTripletsInGPUFromMap { template - ALPAKA_FN_ACC void operator()(TAcc const& acc, struct lst::PixelTriplets pixelTripletsInGPU) const { + ALPAKA_FN_ACC void operator()(TAcc const& acc, lst::PixelTriplets pixelTripletsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -305,7 +305,7 @@ namespace lst { struct removeDupPixelQuintupletsInGPUFromMap { template - ALPAKA_FN_ACC void operator()(TAcc const& acc, struct lst::PixelQuintuplets pixelQuintupletsInGPU) const { + ALPAKA_FN_ACC void operator()(TAcc const& acc, lst::PixelQuintuplets pixelQuintupletsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -333,8 +333,8 @@ namespace lst { struct checkHitspLS { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::Segments segmentsInGPU, + lst::Modules modulesInGPU, + lst::Segments segmentsInGPU, bool secondpass) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index 60662aaff6e23..a2361f6a89d55 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -140,10 +140,7 @@ namespace lst { MiniDoublets data_; template - MiniDoubletsBuffer(unsigned int nMemoryLoc, - uint16_t nLowerModules, - TDevAcc const& devAccIn, - TQueue& queue) + MiniDoubletsBuffer(unsigned int nMemoryLoc, uint16_t nLowerModules, TDevAcc const& devAccIn, TQueue& queue) : nMemoryLocations_buf(allocBufWrapper(devAccIn, 1, queue)), anchorHitIndices_buf(allocBufWrapper(devAccIn, nMemoryLoc, queue)), outerHitIndices_buf(allocBufWrapper(devAccIn, nMemoryLoc, queue)), @@ -191,12 +188,12 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE void addMDToMemory(TAcc const& acc, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Hits& hitsInGPU, - struct lst::Modules& modulesInGPU, + lst::MiniDoublets& mdsInGPU, + lst::Hits const& hitsInGPU, + lst::Modules const& modulesInGPU, unsigned int lowerHitIdx, unsigned int upperHitIdx, - uint16_t& lowerModuleIdx, + uint16_t lowerModuleIdx, float dz, float dPhi, float dPhiChange, @@ -263,8 +260,7 @@ namespace lst { mdsInGPU.outerLowEdgeY[idx] = hitsInGPU.lowEdgeYs[outerHitIndex]; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules(struct lst::Modules& modulesInGPU, - uint16_t moduleIndex) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules(lst::Modules const& modulesInGPU, uint16_t moduleIndex) { // The "tighter" tilted modules are the subset of tilted modules that have smaller spacing // This is the same as what was previously considered as"isNormalTiltedModules" // See Figure 9.1 of https://cds.cern.ch/record/2272264/files/CMS-TDR-014.pdf @@ -284,7 +280,7 @@ namespace lst { return false; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize(struct lst::Modules& modulesInGPU, uint16_t moduleIndex) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize(struct lst::Modules const& modulesInGPU, uint16_t moduleIndex) { float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; @@ -336,12 +332,8 @@ namespace lst { }; template - ALPAKA_FN_ACC ALPAKA_FN_INLINE float dPhiThreshold(TAcc const& acc, - float rt, - struct lst::Modules& modulesInGPU, - uint16_t moduleIndex, - float dPhi = 0, - float dz = 0) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float dPhiThreshold( + TAcc const& acc, float rt, lst::Modules const& modulesInGPU, uint16_t moduleIndex, float dPhi = 0, float dz = 0) { // ================================================================= // Various constants // ================================================================= @@ -400,7 +392,7 @@ namespace lst { template ALPAKA_FN_INLINE ALPAKA_FN_ACC void shiftStripHits(TAcc const& acc, - struct lst::Modules& modulesInGPU, + lst::Modules const& modulesInGPU, uint16_t lowerModuleIndex, uint16_t upperModuleIndex, unsigned int lowerHitIndex, @@ -566,7 +558,7 @@ namespace lst { template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgo(TAcc const& acc, - struct lst::Modules& modulesInGPU, + lst::Modules const& modulesInGPU, uint16_t lowerModuleIndex, uint16_t upperModuleIndex, unsigned int lowerHitIndex, @@ -638,7 +630,7 @@ namespace lst { template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgoBarrel(TAcc const& acc, - struct lst::Modules& modulesInGPU, + lst::Modules const& modulesInGPU, uint16_t lowerModuleIndex, uint16_t upperModuleIndex, unsigned int lowerHitIndex, @@ -765,7 +757,7 @@ namespace lst { template ALPAKA_FN_ACC bool runMiniDoubletDefaultAlgoEndcap(TAcc const& acc, - struct lst::Modules& modulesInGPU, + lst::Modules const& modulesInGPU, uint16_t lowerModuleIndex, uint16_t upperModuleIndex, unsigned int lowerHitIndex, diff --git a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h index a8b6f1761ebd4..b337b5f83f8ba 100644 --- a/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h +++ b/RecoTracker/LSTCore/src/alpaka/NeuralNetwork.h @@ -14,10 +14,10 @@ namespace lst::t5dnn { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float runInference(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, - struct lst::Triplets& tripletsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, + lst::Triplets const& tripletsInGPU, const float* xVec, const float* yVec, const unsigned int* mdIndices, From 2af068537c26492b1ff57b7d70f5a5b081d22334 Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Mon, 29 Jul 2024 08:01:16 -0700 Subject: [PATCH 25/35] Second batch of fixing function arguments --- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 321 +++++------------- 1 file changed, 87 insertions(+), 234 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index da5761b19c715..d57c866b49d8d 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -19,7 +19,6 @@ namespace lst { unsigned int* nPixelTriplets; unsigned int* totOccupancyPixelTriplets; - float* pixelRadiusError; float* rPhiChiSquared; float* rPhiChiSquaredInwards; float* rzChiSquared; @@ -62,7 +61,6 @@ namespace lst { lowerModuleIndices = alpaka::getPtrNative(buf.lowerModuleIndices_buf); centerX = alpaka::getPtrNative(buf.centerX_buf); centerY = alpaka::getPtrNative(buf.centerY_buf); - pixelRadiusError = alpaka::getPtrNative(buf.pixelRadiusError_buf); rPhiChiSquared = alpaka::getPtrNative(buf.rPhiChiSquared_buf); rPhiChiSquaredInwards = alpaka::getPtrNative(buf.rPhiChiSquaredInwards_buf); rzChiSquared = alpaka::getPtrNative(buf.rzChiSquared_buf); @@ -132,11 +130,10 @@ namespace lst { inline void setData(PixelTripletsBuffer& buf) { data_.setData(buf); } }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelTripletToMemory(struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, - struct lst::Triplets& tripletsInGPU, - struct lst::PixelTriplets& pixelTripletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelTripletToMemory(lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, + lst::Triplets const& tripletsInGPU, + lst::PixelTriplets& pixelTripletsInGPU, unsigned int pixelSegmentIndex, unsigned int tripletIndex, float pixelRadius, @@ -214,42 +211,15 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runPixelTrackletDefaultAlgopT3(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::ObjectRanges& rangesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, + lst::Modules const& modulesInGPU, + lst::ObjectRanges const& rangesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, uint16_t pixelLowerModuleIndex, uint16_t outerInnerLowerModuleIndex, uint16_t outerOuterLowerModuleIndex, unsigned int innerSegmentIndex, - unsigned int outerSegmentIndex, - float& zOut, - float& rtOut, - float& deltaPhiPos, - float& deltaPhi, - float& betaIn, - float& betaOut, - float& pt_beta, - float& zLo, - float& zHi, - float& rtLo, - float& rtHi, - float& zLoPointed, - float& zHiPointed, - float& sdlCut, - float& betaInCut, - float& betaOutCut, - float& deltaBetaCut, - float& kZ) { - zLo = -999; - zHi = -999; - rtLo = -999; - rtHi = -999; - zLoPointed = -999; - zHiPointed = -999; - kZ = -999; - betaInCut = -999; - + unsigned int outerSegmentIndex) { short outerInnerLowerModuleSubdet = modulesInGPU.subdets[outerInnerLowerModuleIndex]; short outerOuterLowerModuleSubdet = modulesInGPU.subdets[outerOuterLowerModuleIndex]; @@ -274,21 +244,7 @@ namespace lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex, - zOut, - rtOut, - deltaPhiPos, - deltaPhi, - betaIn, - betaOut, - pt_beta, - zLo, - zHi, - zLoPointed, - zHiPointed, - sdlCut, - betaOutCut, - deltaBetaCut); + fourthMDIndex); } else if (outerInnerLowerModuleSubdet == lst::Endcap and outerOuterLowerModuleSubdet == lst::Endcap) { return runTripletDefaultAlgoPPEE(acc, modulesInGPU, @@ -303,27 +259,12 @@ namespace lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex, - zOut, - rtOut, - deltaPhiPos, - deltaPhi, - betaIn, - betaOut, - pt_beta, - zLo, - rtLo, - rtHi, - sdlCut, - betaInCut, - betaOutCut, - deltaBetaCut, - kZ); + fourthMDIndex); } return false; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RZChiSquaredCuts(struct lst::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RZChiSquaredCuts(lst::Modules const& modulesInGPU, uint16_t lowerModuleIndex1, uint16_t lowerModuleIndex2, uint16_t lowerModuleIndex3, @@ -426,7 +367,7 @@ namespace lst { //TODO: merge this one and the pT5 function later into a single function template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT3RPhiChiSquared(TAcc const& acc, - struct lst::Modules& modulesInGPU, + lst::Modules const& modulesInGPU, uint16_t* lowerModuleIndices, float g, float f, @@ -496,7 +437,7 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT3RPhiChiSquaredInwards( - struct lst::Modules& modulesInGPU, float g, float f, float r, float* xPix, float* yPix) { + float g, float f, float r, float* xPix, float* yPix) { float residual = (xPix[0] - g) * (xPix[0] - g) + (yPix[0] - f) * (yPix[0] - f) - r * r; float chiSquared = residual * residual; residual = (xPix[1] - g) * (xPix[1] - g) + (yPix[1] - f) * (yPix[1] - f) - r * r; @@ -507,7 +448,7 @@ namespace lst { }; //90pc threshold - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredCuts(struct lst::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredCuts(lst::Modules const& modulesInGPU, uint16_t lowerModuleIndex1, uint16_t lowerModuleIndex2, uint16_t lowerModuleIndex3, @@ -554,11 +495,11 @@ namespace lst { return true; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredInwardsCuts(struct lst::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT3RPhiChiSquaredInwardsCuts(lst::Modules const& modulesInGPU, uint16_t lowerModuleIndex1, uint16_t lowerModuleIndex2, uint16_t lowerModuleIndex3, - float& chiSquared) { + float chiSquared) { const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and @@ -723,7 +664,7 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRadiusCriterion(TAcc const& acc, - struct lst::Modules const& modulesInGPU, + lst::Modules const& modulesInGPU, float pixelRadius, float pixelRadiusError, float tripletRadius, @@ -743,7 +684,7 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT3RZChiSquared(TAcc const& acc, - struct lst::Modules const& modulesInGPU, + lst::Modules const& modulesInGPU, const uint16_t* lowerModuleIndices, const float* rtPix, const float* xPix, @@ -832,15 +773,14 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runPixelTripletDefaultAlgo(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::ObjectRanges& rangesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, - struct lst::Triplets& tripletsInGPU, + lst::Modules const& modulesInGPU, + lst::ObjectRanges const& rangesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, + lst::Triplets const& tripletsInGPU, unsigned int pixelSegmentIndex, unsigned int tripletIndex, float& pixelRadius, - float& pixelRadiusError, float& tripletRadius, float& centerX, float& centerY, @@ -856,10 +796,6 @@ namespace lst { uint16_t upperModuleIndex = tripletsInGPU.lowerModuleIndices[Params_T3::kLayers * tripletIndex + 2]; { - //placeholder - float zOut, rtOut, deltaPhiPos, deltaPhi, betaIn, betaOut, pt_beta; //temp stuff - float zLo, zHi, rtLo, rtHi, zLoPointed, zHiPointed, sdlCut, betaInCut, betaOutCut, deltaBetaCut, kZ; - // pixel segment vs inner segment of the triplet if (not runPixelTrackletDefaultAlgopT3(acc, modulesInGPU, @@ -870,25 +806,7 @@ namespace lst { lowerModuleIndex, middleModuleIndex, pixelSegmentIndex, - tripletsInGPU.segmentIndices[Params_LS::kLayers * tripletIndex], - zOut, - rtOut, - deltaPhiPos, - deltaPhi, - betaIn, - betaOut, - pt_beta, - zLo, - zHi, - rtLo, - rtHi, - zLoPointed, - zHiPointed, - sdlCut, - betaInCut, - betaOutCut, - deltaBetaCut, - kZ)) + tripletsInGPU.segmentIndices[Params_LS::kLayers * tripletIndex])) return false; //pixel segment vs outer segment of triplet @@ -901,25 +819,7 @@ namespace lst { middleModuleIndex, upperModuleIndex, pixelSegmentIndex, - tripletsInGPU.segmentIndices[Params_LS::kLayers * tripletIndex + 1], - zOut, - rtOut, - deltaPhiPos, - deltaPhi, - betaIn, - betaOut, - pt_beta, - zLo, - zHi, - rtLo, - rtHi, - zLoPointed, - zHiPointed, - sdlCut, - betaInCut, - betaOutCut, - deltaBetaCut, - kZ)) + tripletsInGPU.segmentIndices[Params_LS::kLayers * tripletIndex + 1])) return false; } @@ -940,7 +840,7 @@ namespace lst { unsigned int pixelOuterMDIndex = segmentsInGPU.mdIndices[Params_pLS::kLayers * pixelSegmentIndex + 1]; pixelRadius = pixelSegmentPt * kR1GeVf; - pixelRadiusError = pixelSegmentPtError * kR1GeVf; + float pixelRadiusError = pixelSegmentPtError * kR1GeVf; unsigned int tripletInnerSegmentIndex = tripletsInGPU.segmentIndices[2 * tripletIndex]; unsigned int tripletOuterSegmentIndex = tripletsInGPU.segmentIndices[2 * tripletIndex + 1]; @@ -1014,7 +914,7 @@ namespace lst { 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); + rPhiChiSquaredInwards = computePT3RPhiChiSquaredInwards(g, f, tripletRadius, xPix, yPix); if (runChiSquaredCuts and pixelSegmentPt < 5.0f) { if (not passPT3RPhiChiSquaredInwardsCuts( @@ -1029,12 +929,12 @@ namespace lst { struct createPixelTripletsInGPUFromMapv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::ObjectRanges rangesInGPU, - struct lst::MiniDoublets mdsInGPU, - struct lst::Segments segmentsInGPU, - struct lst::Triplets tripletsInGPU, - struct lst::PixelTriplets pixelTripletsInGPU, + lst::Modules modulesInGPU, + lst::ObjectRanges rangesInGPU, + lst::MiniDoublets mdsInGPU, + lst::Segments segmentsInGPU, + lst::Triplets tripletsInGPU, + lst::PixelTriplets pixelTripletsInGPU, unsigned int* connectedPixelSize, unsigned int* connectedPixelIndex, unsigned int nPixelSegments) const { @@ -1097,8 +997,7 @@ namespace lst { if (tripletsInGPU.partOfPT5[outerTripletIndex]) continue; //don't create pT3s for T3s accounted in pT5s - float pixelRadius, pixelRadiusError, tripletRadius, rPhiChiSquared, rzChiSquared, rPhiChiSquaredInwards, - centerX, centerY; + float pixelRadius, tripletRadius, rPhiChiSquared, rzChiSquared, rPhiChiSquaredInwards, centerX, centerY; bool success = runPixelTripletDefaultAlgo(acc, modulesInGPU, rangesInGPU, @@ -1108,7 +1007,6 @@ namespace lst { pixelSegmentIndex, outerTripletIndex, pixelRadius, - pixelRadiusError, tripletRadius, centerX, centerY, @@ -1136,8 +1034,7 @@ namespace lst { } else { unsigned int pixelTripletIndex = alpaka::atomicOp(acc, pixelTripletsInGPU.nPixelTriplets, 1u); - addPixelTripletToMemory(modulesInGPU, - mdsInGPU, + addPixelTripletToMemory(mdsInGPU, segmentsInGPU, tripletsInGPU, pixelTripletsInGPU, @@ -1170,7 +1067,7 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE void runDeltaBetaIterationspT3(TAcc const& acc, float& betaIn, float& betaOut, - float& betaAv, + float betaAv, float& pt_beta, float sdIn_dr, float sdOut_dr, @@ -1274,10 +1171,10 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runTripletDefaultAlgoPPBB(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::ObjectRanges& rangesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, + lst::Modules const& modulesInGPU, + lst::ObjectRanges const& rangesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, uint16_t pixelModuleIndex, uint16_t outerInnerLowerModuleIndex, uint16_t outerOuterLowerModuleIndex, @@ -1286,22 +1183,9 @@ namespace lst { unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, - unsigned int fourthMDIndex, - float& /*z_OutLo*/, - float& /*rt_OutLo*/, - float& dPhiPos, - float& dPhi, - float& betaIn, - float& betaOut, - float& pt_beta, - float& zLo, - float& zHi, - float& zLoPointed, - float& zHiPointed, - float& sdlCut, - float& betaOutCut, - float& deltaBetaCut) // pixel to BB and BE segments - { + unsigned int fourthMDIndex) { + float dPhi, betaIn, betaOut, pt_beta, zLo, zHi, zLoPointed, zHiPointed, sdlCut, betaOutCut; + bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS); float rt_InLo = mdsInGPU.anchorRt[firstMDIndex]; @@ -1391,10 +1275,6 @@ namespace lst { const float sdlPVoff = 0.1f / rt_OutLo; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); -#ifdef CUT_VALUE_DEBUG - dPhiPos = lst::deltaPhi(acc, x_InUp, y_InUp, x_OutUp, y_OutUp); -#endif - //no dphipos cut float midPointX = 0.5f * (x_InLo + x_OutLo); float midPointY = 0.5f * (y_InLo + y_OutLo); @@ -1544,19 +1424,15 @@ namespace lst { (alpaka::math::abs(acc, betaInRHmin - betaInRHmax) + alpaka::math::abs(acc, betaOutRHmin - betaOutRHmax)) * (alpaka::math::abs(acc, betaInRHmin - betaInRHmax) + alpaka::math::abs(acc, betaOutRHmin - betaOutRHmax))); float dBeta = betaIn - betaOut; - -#ifdef CUT_VALUE_DEBUG - deltaBetaCut = alpaka::math::sqrt(acc, dBetaCut2); -#endif return dBeta * dBeta <= dBetaCut2; }; template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runTripletDefaultAlgoPPEE(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::ObjectRanges& rangesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, + lst::Modules const& modulesInGPU, + lst::ObjectRanges const& rangesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, uint16_t pixelModuleIndex, uint16_t outerInnerLowerModuleIndex, uint16_t outerOuterLowerModuleIndex, @@ -1565,23 +1441,9 @@ namespace lst { unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, - unsigned int fourthMDIndex, - float& /*z_OutLo*/, - float& /*rt_OutLo*/, - float& deltaPhiPos, - float& dPhi, - float& betaIn, - float& betaOut, - float& pt_beta, - float& zLo, - float& rtLo, - float& rtHi, - float& sdlCut, - float& betaInCut, - float& betaOutCut, - float& deltaBetaCut, - float& kZ) // pixel to EE segments - { + unsigned int fourthMDIndex) { + float dPhi, betaIn, betaOut, pt_beta, rtLo, rtHi, sdlCut, betaOutCut; + bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS); float z_InUp = mdsInGPU.anchorZ[secondMDIndex]; @@ -1618,7 +1480,6 @@ namespace lst { ptSLo = alpaka::math::max(acc, ptCut, ptSLo - 10.0f * alpaka::math::max(acc, ptErr, 0.005f * ptSLo)); ptSLo = alpaka::math::min(acc, 10.0f, ptSLo); - float rtOut_o_rtIn = rt_OutLo / rt_InUp; const float zpitch_InLo = 0.05f; float zpitch_OutLo = (isPS_OutLo ? kPixelPSZpitch : kStrip2SZpitch); float zGeom = zpitch_InLo + zpitch_OutLo; @@ -1626,8 +1487,6 @@ namespace lst { const float sdlSlope = alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / ptCut, kSinAlphaMax)); const float dzDrtScale = alpaka::math::tan(acc, sdlSlope) / sdlSlope; //FIXME: need approximate value - zLo = z_InUp + (z_InUp - kDeltaZLum) * (rtOut_o_rtIn - 1.f) * (z_InUp > 0.f ? 1.f : dzDrtScale) - - zGeom; //slope-correction only on outer end const float dLum = alpaka::math::copysign(acc, kDeltaZLum, z_InUp); bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS; @@ -1681,8 +1540,6 @@ namespace lst { const float sdlPVoff = 0.1f / rt_OutLo; sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = lst::deltaPhi(acc, x_InUp, y_InUp, x_OutUp, y_OutUp); - float midPointX = 0.5f * (x_InLo + x_OutLo); float midPointY = 0.5f * (y_InLo + y_OutLo); @@ -1832,11 +1689,9 @@ namespace lst { (alpaka::math::abs(acc, betaInRHmin - betaInRHmax) + alpaka::math::abs(acc, betaOutRHmin - betaOutRHmax)) * (alpaka::math::abs(acc, betaInRHmin - betaInRHmax) + alpaka::math::abs(acc, betaOutRHmin - betaOutRHmax))); float dBeta = betaIn - betaOut; -#ifdef CUT_VALUE_DEBUG - deltaBetaCut = alpaka::math::sqrt(acc, dBetaCut2); -#endif return dBeta * dBeta <= dBetaCut2; }; + } // namespace lst #endif @@ -1949,24 +1804,24 @@ namespace lst { inline void setData(PixelQuintupletsBuffer& buf) { data_.setData(buf); } }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelQuintupletToMemory(struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, - struct lst::Quintuplets& quintupletsInGPU, - struct lst::PixelQuintuplets& pixelQuintupletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelQuintupletToMemory(lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, + lst::Quintuplets const& quintupletsInGPU, + lst::PixelQuintuplets& pixelQuintupletsInGPU, unsigned int pixelIndex, unsigned int T5Index, unsigned int pixelQuintupletIndex, - float& rzChiSquared, - float& rPhiChiSquared, - float& rPhiChiSquaredInwards, + float rzChiSquared, + float rPhiChiSquared, + float rPhiChiSquaredInwards, float score, float eta, float phi, - float& pixelRadius, - float& quintupletRadius, - float& centerX, - float& centerY) { + float pixelRadius, + float quintupletRadius, + float centerX, + float centerY) { pixelQuintupletsInGPU.pixelIndices[pixelQuintupletIndex] = pixelIndex; pixelQuintupletsInGPU.T5Indices[pixelQuintupletIndex] = T5Index; pixelQuintupletsInGPU.isDup[pixelQuintupletIndex] = false; @@ -2045,7 +1900,7 @@ namespace lst { pixelQuintupletsInGPU.rPhiChiSquaredInwards[pixelQuintupletIndex] = rPhiChiSquaredInwards; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RZChiSquaredCuts(struct lst::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RZChiSquaredCuts(lst::Modules const& modulesInGPU, uint16_t lowerModuleIndex1, uint16_t lowerModuleIndex2, uint16_t lowerModuleIndex3, @@ -2135,7 +1990,7 @@ namespace lst { return true; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredCuts(struct lst::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredCuts(lst::Modules const& modulesInGPU, uint16_t lowerModuleIndex1, uint16_t lowerModuleIndex2, uint16_t lowerModuleIndex3, @@ -2273,7 +2128,7 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE void computeSigmasForRegression_pT5(TAcc const& acc, - lst::Modules& modulesInGPU, + lst::Modules const& modulesInGPU, const uint16_t* lowerModuleIndices, float* delta1, float* delta2, @@ -2359,7 +2214,7 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RPhiChiSquared(TAcc const& acc, - struct lst::Modules& modulesInGPU, + lst::Modules const& modulesInGPU, uint16_t* lowerModuleIndices, float g, float f, @@ -2381,7 +2236,7 @@ namespace lst { }; ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RPhiChiSquaredInwards( - struct lst::Modules& modulesInGPU, float& g, float& f, float& r, float* xPix, float* yPix) { + float g, float f, float r, float* xPix, float* yPix) { /* Using the computed regression center and radius, compute the chi squared for the pixels */ @@ -2395,7 +2250,7 @@ namespace lst { return chiSquared; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredInwardsCuts(struct lst::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredInwardsCuts(lst::Modules const& modulesInGPU, uint16_t lowerModuleIndex1, uint16_t lowerModuleIndex2, uint16_t lowerModuleIndex3, @@ -2487,12 +2342,12 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runPixelQuintupletDefaultAlgo(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::ObjectRanges& rangesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, - struct lst::Triplets& tripletsInGPU, - struct lst::Quintuplets& quintupletsInGPU, + lst::Modules const& modulesInGPU, + lst::ObjectRanges const& rangesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, + lst::Triplets const& tripletsInGPU, + lst::Quintuplets const& quintupletsInGPU, unsigned int pixelSegmentIndex, unsigned int quintupletIndex, float& rzChiSquared, @@ -2506,8 +2361,8 @@ namespace lst { unsigned int T5InnerT3Index = quintupletsInGPU.tripletIndices[2 * quintupletIndex]; unsigned int T5OuterT3Index = quintupletsInGPU.tripletIndices[2 * quintupletIndex + 1]; - float pixelRadiusTemp, pixelRadiusError, tripletRadius, rPhiChiSquaredTemp, rzChiSquaredTemp, - rPhiChiSquaredInwardsTemp, centerXTemp, centerYTemp; + float pixelRadiusTemp, tripletRadius, rPhiChiSquaredTemp, rzChiSquaredTemp, rPhiChiSquaredInwardsTemp, centerXTemp, + centerYTemp; if (not runPixelTripletDefaultAlgo(acc, modulesInGPU, @@ -2518,7 +2373,6 @@ namespace lst { pixelSegmentIndex, T5InnerT3Index, pixelRadiusTemp, - pixelRadiusError, tripletRadius, centerXTemp, centerYTemp, @@ -2613,8 +2467,7 @@ namespace lst { float xPix[] = {mdsInGPU.anchorX[pixelInnerMDIndex], mdsInGPU.anchorX[pixelOuterMDIndex]}; float yPix[] = {mdsInGPU.anchorY[pixelInnerMDIndex], mdsInGPU.anchorY[pixelOuterMDIndex]}; - rPhiChiSquaredInwards = - computePT5RPhiChiSquaredInwards(modulesInGPU, T5CenterX, T5CenterY, quintupletRadius, xPix, yPix); + rPhiChiSquaredInwards = computePT5RPhiChiSquaredInwards(T5CenterX, T5CenterY, quintupletRadius, xPix, yPix); if (quintupletsInGPU.regressionRadius[quintupletIndex] < 5.0f * kR1GeVf) { if (not passPT5RPhiChiSquaredInwardsCuts(modulesInGPU, @@ -2635,7 +2488,7 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RZChiSquared(TAcc const& acc, - struct lst::Modules& modulesInGPU, + lst::Modules const& modulesInGPU, uint16_t* lowerModuleIndices, float* rtPix, float* zPix, @@ -2680,16 +2533,16 @@ namespace lst { struct createPixelQuintupletsInGPUFromMapv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::MiniDoublets mdsInGPU, - struct lst::Segments segmentsInGPU, - struct lst::Triplets tripletsInGPU, - struct lst::Quintuplets quintupletsInGPU, - struct lst::PixelQuintuplets pixelQuintupletsInGPU, + lst::Modules modulesInGPU, + lst::MiniDoublets mdsInGPU, + lst::Segments segmentsInGPU, + lst::Triplets tripletsInGPU, + lst::Quintuplets quintupletsInGPU, + lst::PixelQuintuplets pixelQuintupletsInGPU, unsigned int* connectedPixelSize, unsigned int* connectedPixelIndex, unsigned int nPixelSegments, - struct lst::ObjectRanges rangesInGPU) const { + lst::ObjectRanges rangesInGPU) const { auto const globalBlockIdx = alpaka::getIdx(acc); auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridBlockExtent = alpaka::getWorkDiv(acc); From 954a22ab377638ddbaf3f2922d7d95c1e8fa0dba Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Tue, 30 Jul 2024 03:31:08 -0700 Subject: [PATCH 26/35] Third batch of fixing function arguments --- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 789 ++++-------------- RecoTracker/LSTCore/src/alpaka/Segment.h | 257 ++---- .../LSTCore/src/alpaka/TrackCandidate.h | 74 +- 3 files changed, 287 insertions(+), 833 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 1d796a6613824..66061ae427849 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -104,10 +104,7 @@ namespace lst { Quintuplets data_; template - QuintupletsBuffer(unsigned int nTotalQuintuplets, - unsigned int nLowerModules, - TDevAcc const& devAccIn, - TQueue& queue) + 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)), nQuintuplets_buf(allocBufWrapper(devAccIn, nLowerModules, queue)), @@ -151,8 +148,8 @@ namespace lst { return ((firstMin <= secondMin) && (secondMin < firstMax)) || ((secondMin < firstMin) && (firstMin < secondMax)); }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addQuintupletToMemory(struct lst::Triplets& tripletsInGPU, - struct lst::Quintuplets& quintupletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addQuintupletToMemory(lst::Triplets const& tripletsInGPU, + lst::Quintuplets& quintupletsInGPU, unsigned int innerTripletIndex, unsigned int outerTripletIndex, uint16_t lowerModule1, @@ -160,15 +157,15 @@ namespace lst { uint16_t lowerModule3, uint16_t lowerModule4, uint16_t lowerModule5, - float& innerRadius, - float& bridgeRadius, - float& outerRadius, - float& regressionG, - float& regressionF, - float& regressionRadius, - float& rzChiSquared, - float& rPhiChiSquared, - float& nonAnchorChiSquared, + float innerRadius, + float bridgeRadius, + float outerRadius, + float regressionG, + float regressionF, + float regressionRadius, + float rzChiSquared, + float rPhiChiSquared, + float nonAnchorChiSquared, float pt, float eta, float phi, @@ -234,7 +231,7 @@ namespace lst { }; //90% constraint - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passChiSquaredConstraint(struct lst::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passChiSquaredConstraint(lst::Modules const& modulesInGPU, uint16_t lowerModuleIndex1, uint16_t lowerModuleIndex2, uint16_t lowerModuleIndex3, @@ -319,8 +316,8 @@ namespace lst { //bounds can be found at http://uaf-10.t2.ucsd.edu/~bsathian/SDL/T5_RZFix/t5_rz_thresholds.txt template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passT5RZConstraint(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, @@ -753,8 +750,8 @@ namespace lst { }; template - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool T5HasCommonMiniDoublet(struct lst::Triplets& tripletsInGPU, - struct lst::Segments& segmentsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool T5HasCommonMiniDoublet(lst::Triplets const& tripletsInGPU, + lst::Segments const& segmentsInGPU, unsigned int innerTripletIndex, unsigned int outerTripletIndex) { unsigned int innerOuterSegmentIndex = tripletsInGPU.segmentIndices[2 * innerTripletIndex + 1]; @@ -801,24 +798,15 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool matchRadiiBBBEE12378(TAcc const& acc, - const float& innerRadius, - const float& bridgeRadius, - const float& outerRadius, - const float& innerRadiusMin2S, - const float& innerRadiusMax2S, - const float& bridgeRadiusMin2S, - const float& bridgeRadiusMax2S, - const float& outerRadiusMin2S, - const float& outerRadiusMax2S, - float& innerInvRadiusMin, - float& innerInvRadiusMax, - float& bridgeInvRadiusMin, - float& bridgeInvRadiusMax, - float& outerInvRadiusMin, - float& outerInvRadiusMax) { + float innerRadius, + float bridgeRadius, + float outerRadius, + float bridgeRadiusMin2S, + float bridgeRadiusMax2S) { + float innerInvRadiusMin, innerInvRadiusMax, bridgeInvRadiusMin, bridgeInvRadiusMax; + float innerInvRadiusErrorBound = 0.178f; float bridgeInvRadiusErrorBound = 0.507f; - float outerInvRadiusErrorBound = 7.655f; innerInvRadiusMax = (1.f + innerInvRadiusErrorBound) / innerRadius; innerInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - innerInvRadiusErrorBound) / innerRadius); @@ -826,9 +814,6 @@ namespace lst { bridgeInvRadiusMax = (1.f + bridgeInvRadiusErrorBound) / bridgeRadius; bridgeInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - bridgeInvRadiusErrorBound) / bridgeRadius); - outerInvRadiusMax = (1.f + outerInvRadiusErrorBound) / outerRadius; - outerInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - outerInvRadiusErrorBound) / outerRadius); - return checkIntervalOverlap(innerInvRadiusMin, innerInvRadiusMax, alpaka::math::min(acc, bridgeInvRadiusMin, 1.0f / bridgeRadiusMax2S), @@ -838,23 +823,17 @@ namespace lst { /*bounds for high Pt taken from : http://uaf-10.t2.ucsd.edu/~bsathian/SDL/T5_efficiency/efficiencies/new_efficiencies/efficiencies_20210513_T5_recovering_high_Pt_efficiencies/highE_radius_matching/highE_bounds.txt */ template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool matchRadiiBBBBB(TAcc const& acc, - const float& innerRadius, - const float& bridgeRadius, - const float& outerRadius, - float& innerInvRadiusMin, - float& innerInvRadiusMax, - float& bridgeInvRadiusMin, - float& bridgeInvRadiusMax, - float& outerInvRadiusMin, - float& outerInvRadiusMax) { + float innerRadius, + float bridgeRadius, + float outerRadius) { + float innerInvRadiusMin, innerInvRadiusMax, bridgeInvRadiusMin, bridgeInvRadiusMax; + float innerInvRadiusErrorBound = 0.1512f; float bridgeInvRadiusErrorBound = 0.1781f; - float outerInvRadiusErrorBound = 0.1840f; if (innerRadius > 2.0f / (2.f * k2Rinv1GeVf)) { innerInvRadiusErrorBound = 0.4449f; bridgeInvRadiusErrorBound = 0.4033f; - outerInvRadiusErrorBound = 0.8016f; } innerInvRadiusMax = (1.f + innerInvRadiusErrorBound) / innerRadius; @@ -863,37 +842,22 @@ namespace lst { bridgeInvRadiusMax = (1.f + bridgeInvRadiusErrorBound) / bridgeRadius; bridgeInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - bridgeInvRadiusErrorBound) / bridgeRadius); - outerInvRadiusMax = (1.f + outerInvRadiusErrorBound) / outerRadius; - outerInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - outerInvRadiusErrorBound) / outerRadius); - return checkIntervalOverlap(innerInvRadiusMin, innerInvRadiusMax, bridgeInvRadiusMin, bridgeInvRadiusMax); }; template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool matchRadiiBBBBE(TAcc const& acc, - const float& innerRadius, - const float& bridgeRadius, - const float& outerRadius, - const float& innerRadiusMin2S, - const float& innerRadiusMax2S, - const float& bridgeRadiusMin2S, - const float& bridgeRadiusMax2S, - const float& outerRadiusMin2S, - const float& outerRadiusMax2S, - float& innerInvRadiusMin, - float& innerInvRadiusMax, - float& bridgeInvRadiusMin, - float& bridgeInvRadiusMax, - float& outerInvRadiusMin, - float& outerInvRadiusMax) { + float innerRadius, + float bridgeRadius, + float outerRadius) { + float innerInvRadiusMin, innerInvRadiusMax, bridgeInvRadiusMin, bridgeInvRadiusMax; + float innerInvRadiusErrorBound = 0.1781f; float bridgeInvRadiusErrorBound = 0.2167f; - float outerInvRadiusErrorBound = 1.1116f; if (innerRadius > 2.0f / (2.f * k2Rinv1GeVf)) { innerInvRadiusErrorBound = 0.4750f; bridgeInvRadiusErrorBound = 0.3903f; - outerInvRadiusErrorBound = 15.2120f; } innerInvRadiusMax = (1.f + innerInvRadiusErrorBound) / innerRadius; @@ -902,75 +866,20 @@ namespace lst { bridgeInvRadiusMax = (1.f + bridgeInvRadiusErrorBound) / bridgeRadius; bridgeInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - bridgeInvRadiusErrorBound) / bridgeRadius); - outerInvRadiusMax = (1.f + outerInvRadiusErrorBound) / outerRadius; - outerInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - outerInvRadiusErrorBound) / outerRadius); - return checkIntervalOverlap(innerInvRadiusMin, innerInvRadiusMax, bridgeInvRadiusMin, bridgeInvRadiusMax); }; - template - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool matchRadiiBBBEE(TAcc const& acc, - const float& innerRadius, - const float& bridgeRadius, - const float& outerRadius, - const float& innerRadiusMin2S, - const float& innerRadiusMax2S, - const float& bridgeRadiusMin2S, - const float& bridgeRadiusMax2S, - const float& outerRadiusMin2S, - const float& outerRadiusMax2S, - float& innerInvRadiusMin, - float& innerInvRadiusMax, - float& bridgeInvRadiusMin, - float& bridgeInvRadiusMax, - float& outerInvRadiusMin, - float& outerInvRadiusMax) { - float innerInvRadiusErrorBound = 0.1840f; - float bridgeInvRadiusErrorBound = 0.5971f; - float outerInvRadiusErrorBound = 11.7102f; - - if (innerRadius > 2.0f / (2.f * k2Rinv1GeVf)) //as good as no selections - { - innerInvRadiusErrorBound = 1.0412f; - outerInvRadiusErrorBound = 32.2737f; - bridgeInvRadiusErrorBound = 10.9688f; - } - - innerInvRadiusMax = (1.f + innerInvRadiusErrorBound) / innerRadius; - innerInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - innerInvRadiusErrorBound) / innerRadius); - - bridgeInvRadiusMax = (1.f + bridgeInvRadiusErrorBound) / bridgeRadius; - bridgeInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - bridgeInvRadiusErrorBound) / bridgeRadius); - - outerInvRadiusMax = (1.f + outerInvRadiusErrorBound) / outerRadius; - outerInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - outerInvRadiusErrorBound) / outerRadius); - - return checkIntervalOverlap(innerInvRadiusMin, - innerInvRadiusMax, - alpaka::math::min(acc, bridgeInvRadiusMin, 1.0f / bridgeRadiusMax2S), - alpaka::math::max(acc, bridgeInvRadiusMax, 1.0f / bridgeRadiusMin2S)); - }; - template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool matchRadiiBBBEE23478(TAcc const& acc, - const float& innerRadius, - const float& bridgeRadius, - const float& outerRadius, - const float& innerRadiusMin2S, - const float& innerRadiusMax2S, - const float& bridgeRadiusMin2S, - const float& bridgeRadiusMax2S, - const float& outerRadiusMin2S, - const float& outerRadiusMax2S, - float& innerInvRadiusMin, - float& innerInvRadiusMax, - float& bridgeInvRadiusMin, - float& bridgeInvRadiusMax, - float& outerInvRadiusMin, - float& outerInvRadiusMax) { + float innerRadius, + float bridgeRadius, + float outerRadius, + float bridgeRadiusMin2S, + float bridgeRadiusMax2S) { + float innerInvRadiusMin, innerInvRadiusMax, bridgeInvRadiusMin, bridgeInvRadiusMax; + float innerInvRadiusErrorBound = 0.2097f; float bridgeInvRadiusErrorBound = 0.8557f; - float outerInvRadiusErrorBound = 24.0450f; innerInvRadiusMax = (1.f + innerInvRadiusErrorBound) / innerRadius; innerInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - innerInvRadiusErrorBound) / innerRadius); @@ -978,9 +887,6 @@ namespace lst { bridgeInvRadiusMax = (1.f + bridgeInvRadiusErrorBound) / bridgeRadius; bridgeInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - bridgeInvRadiusErrorBound) / bridgeRadius); - outerInvRadiusMax = (1.f + outerInvRadiusErrorBound) / outerRadius; - outerInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - outerInvRadiusErrorBound) / outerRadius); - return checkIntervalOverlap(innerInvRadiusMin, innerInvRadiusMax, alpaka::math::min(acc, bridgeInvRadiusMin, 1.0f / bridgeRadiusMax2S), @@ -989,24 +895,15 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool matchRadiiBBBEE34578(TAcc const& acc, - const float& innerRadius, - const float& bridgeRadius, - const float& outerRadius, - const float& innerRadiusMin2S, - const float& innerRadiusMax2S, - const float& bridgeRadiusMin2S, - const float& bridgeRadiusMax2S, - const float& outerRadiusMin2S, - const float& outerRadiusMax2S, - float& innerInvRadiusMin, - float& innerInvRadiusMax, - float& bridgeInvRadiusMin, - float& bridgeInvRadiusMax, - float& outerInvRadiusMin, - float& outerInvRadiusMax) { + float innerRadius, + float bridgeRadius, + float outerRadius, + float bridgeRadiusMin2S, + float bridgeRadiusMax2S) { + float innerInvRadiusMin, innerInvRadiusMax, bridgeInvRadiusMin, bridgeInvRadiusMax; + float innerInvRadiusErrorBound = 0.066f; float bridgeInvRadiusErrorBound = 0.617f; - float outerInvRadiusErrorBound = 2.688f; innerInvRadiusMax = (1.f + innerInvRadiusErrorBound) / innerRadius; innerInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - innerInvRadiusErrorBound) / innerRadius); @@ -1014,9 +911,6 @@ namespace lst { bridgeInvRadiusMax = (1.f + bridgeInvRadiusErrorBound) / bridgeRadius; bridgeInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - bridgeInvRadiusErrorBound) / bridgeRadius); - outerInvRadiusMax = (1.f + outerInvRadiusErrorBound) / outerRadius; - outerInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - outerInvRadiusErrorBound) / outerRadius); - return checkIntervalOverlap(innerInvRadiusMin, innerInvRadiusMax, alpaka::math::min(acc, bridgeInvRadiusMin, 1.0f / bridgeRadiusMax2S), @@ -1025,29 +919,19 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool matchRadiiBBEEE(TAcc const& acc, - const float& innerRadius, - const float& bridgeRadius, - const float& outerRadius, - const float& innerRadiusMin2S, - const float& innerRadiusMax2S, - const float& bridgeRadiusMin2S, - const float& bridgeRadiusMax2S, - const float& outerRadiusMin2S, - const float& outerRadiusMax2S, - float& innerInvRadiusMin, - float& innerInvRadiusMax, - float& bridgeInvRadiusMin, - float& bridgeInvRadiusMax, - float& outerInvRadiusMin, - float& outerInvRadiusMax) { + float innerRadius, + float bridgeRadius, + float outerRadius, + float bridgeRadiusMin2S, + float bridgeRadiusMax2S) { + float innerInvRadiusMin, innerInvRadiusMax, bridgeInvRadiusMin, bridgeInvRadiusMax; + float innerInvRadiusErrorBound = 0.6376f; float bridgeInvRadiusErrorBound = 2.1381f; - float outerInvRadiusErrorBound = 20.4179f; if (innerRadius > 2.0f / (2.f * k2Rinv1GeVf)) //as good as no selections! { innerInvRadiusErrorBound = 12.9173f; - outerInvRadiusErrorBound = 25.6702f; bridgeInvRadiusErrorBound = 5.1700f; } @@ -1057,9 +941,6 @@ namespace lst { bridgeInvRadiusMax = (1.f + bridgeInvRadiusErrorBound) / bridgeRadius; bridgeInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - bridgeInvRadiusErrorBound) / bridgeRadius); - outerInvRadiusMax = (1.f + outerInvRadiusErrorBound) / outerRadius; - outerInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - outerInvRadiusErrorBound) / outerRadius); - return checkIntervalOverlap(innerInvRadiusMin, innerInvRadiusMax, alpaka::math::min(acc, bridgeInvRadiusMin, 1.0f / bridgeRadiusMax2S), @@ -1068,28 +949,20 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool matchRadiiBEEEE(TAcc const& acc, - const float& innerRadius, - const float& bridgeRadius, - const float& outerRadius, - const float& innerRadiusMin2S, - const float& innerRadiusMax2S, - const float& bridgeRadiusMin2S, - const float& bridgeRadiusMax2S, - const float& outerRadiusMin2S, - const float& outerRadiusMax2S, - float& innerInvRadiusMin, - float& innerInvRadiusMax, - float& bridgeInvRadiusMin, - float& bridgeInvRadiusMax, - float& outerInvRadiusMin, - float& outerInvRadiusMax) { + float innerRadius, + float bridgeRadius, + float outerRadius, + float innerRadiusMin2S, + float innerRadiusMax2S, + float bridgeRadiusMin2S, + float bridgeRadiusMax2S) { + float innerInvRadiusMin, innerInvRadiusMax, bridgeInvRadiusMin, bridgeInvRadiusMax; + float innerInvRadiusErrorBound = 1.9382f; float bridgeInvRadiusErrorBound = 3.7280f; - float outerInvRadiusErrorBound = 5.7030f; if (innerRadius > 2.0f / (2.f * k2Rinv1GeVf)) { innerInvRadiusErrorBound = 23.2713f; - outerInvRadiusErrorBound = 24.0450f; bridgeInvRadiusErrorBound = 21.7980f; } @@ -1099,9 +972,6 @@ namespace lst { bridgeInvRadiusMax = (1.f + bridgeInvRadiusErrorBound) / bridgeRadius; bridgeInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - bridgeInvRadiusErrorBound) / bridgeRadius); - outerInvRadiusMax = (1.f + outerInvRadiusErrorBound) / outerRadius; - outerInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - outerInvRadiusErrorBound) / outerRadius); - return checkIntervalOverlap(alpaka::math::min(acc, innerInvRadiusMin, 1.0 / innerRadiusMax2S), alpaka::math::max(acc, innerInvRadiusMax, 1.0 / innerRadiusMin2S), alpaka::math::min(acc, bridgeInvRadiusMin, 1.0 / bridgeRadiusMax2S), @@ -1110,29 +980,21 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool matchRadiiEEEEE(TAcc const& acc, - const float& innerRadius, - const float& bridgeRadius, - const float& outerRadius, - const float& innerRadiusMin2S, - const float& innerRadiusMax2S, - const float& bridgeRadiusMin2S, - const float& bridgeRadiusMax2S, - const float& outerRadiusMin2S, - const float& outerRadiusMax2S, - float& innerInvRadiusMin, - float& innerInvRadiusMax, - float& bridgeInvRadiusMin, - float& bridgeInvRadiusMax, - float& outerInvRadiusMin, - float& outerInvRadiusMax) { + float innerRadius, + float bridgeRadius, + float outerRadius, + float innerRadiusMin2S, + float innerRadiusMax2S, + float bridgeRadiusMin2S, + float bridgeRadiusMax2S) { + float innerInvRadiusMin, innerInvRadiusMax, bridgeInvRadiusMin, bridgeInvRadiusMax; + float innerInvRadiusErrorBound = 1.9382f; float bridgeInvRadiusErrorBound = 2.2091f; - float outerInvRadiusErrorBound = 7.4084f; if (innerRadius > 2.0f / (2.f * k2Rinv1GeVf)) { innerInvRadiusErrorBound = 22.5226f; bridgeInvRadiusErrorBound = 21.0966f; - outerInvRadiusErrorBound = 19.1252f; } innerInvRadiusMax = (1.f + innerInvRadiusErrorBound) / innerRadius; @@ -1141,9 +1003,6 @@ namespace lst { bridgeInvRadiusMax = (1.f + bridgeInvRadiusErrorBound) / bridgeRadius; bridgeInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - bridgeInvRadiusErrorBound) / bridgeRadius); - outerInvRadiusMax = (1.f + outerInvRadiusErrorBound) / outerRadius; - outerInvRadiusMin = alpaka::math::max(acc, 0.f, (1.f - outerInvRadiusErrorBound) / outerRadius); - return checkIntervalOverlap(alpaka::math::min(acc, innerInvRadiusMin, 1.0 / innerRadiusMax2S), alpaka::math::max(acc, innerInvRadiusMax, 1.0 / innerRadiusMin2S), alpaka::math::min(acc, bridgeInvRadiusMin, 1.0 / bridgeRadiusMax2S), @@ -1152,7 +1011,7 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE void computeSigmasForRegression(TAcc const& acc, - lst::Modules& modulesInGPU, + lst::Modules const& modulesInGPU, const uint16_t* lowerModuleIndices, float* delta1, float* delta2, @@ -1385,7 +1244,7 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE void runDeltaBetaIterationsT5(TAcc const& acc, float& betaIn, float& betaOut, - float& betaAv, + float betaAv, float& pt_beta, float sdIn_dr, float sdOut_dr, @@ -1489,9 +1348,9 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runQuintupletDefaultAlgoBBBB(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, uint16_t innerInnerLowerModuleIndex, uint16_t innerOuterLowerModuleIndex, uint16_t outerInnerLowerModuleIndex, @@ -1501,22 +1360,7 @@ namespace lst { unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, - unsigned int fourthMDIndex, - float& zOut, - float& rtOut, - float& deltaPhiPos, - float& dPhi, - float& betaIn, - float& betaOut, - float& pt_beta, - float& zLo, - float& zHi, - float& zLoPointed, - float& zHiPointed, - float& sdlCut, - float& betaInCut, - float& betaOutCut, - float& deltaBetaCut) { + unsigned int fourthMDIndex) { bool isPS_InLo = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS); bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS); @@ -1537,14 +1381,12 @@ namespace lst { float zpitch_InLo = (isPS_InLo ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); float zpitch_OutLo = (isPS_OutLo ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); - zHi = z_InLo + (z_InLo + lst::kDeltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo < 0.f ? 1.f : dzDrtScale) + - (zpitch_InLo + zpitch_OutLo); - zLo = z_InLo + (z_InLo - lst::kDeltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - - (zpitch_InLo + zpitch_OutLo); + float zHi = z_InLo + (z_InLo + lst::kDeltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo < 0.f ? 1.f : dzDrtScale) + + (zpitch_InLo + zpitch_OutLo); + float zLo = z_InLo + (z_InLo - lst::kDeltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - + (zpitch_InLo + zpitch_OutLo); //Cut 1 - z compatibility - zOut = z_OutLo; - rtOut = rt_OutLo; if ((z_OutLo < zLo) || (z_OutLo > zHi)) return false; @@ -1569,17 +1411,17 @@ namespace lst { const float zWindow = dzErr / drt_InSeg * drt_OutLo_InLo + (zpitch_InLo + zpitch_OutLo); //FIXME for lst::ptCut lower than ~0.8 need to add curv path correction - zLoPointed = z_InLo + dzMean * (z_InLo > 0.f ? 1.f : dzDrtScale) - zWindow; - zHiPointed = z_InLo + dzMean * (z_InLo < 0.f ? 1.f : dzDrtScale) + zWindow; + float zLoPointed = z_InLo + dzMean * (z_InLo > 0.f ? 1.f : dzDrtScale) - zWindow; + float zHiPointed = z_InLo + dzMean * (z_InLo < 0.f ? 1.f : dzDrtScale) + zWindow; // Cut #2: Pointed Z (Inner segment two MD points to outer segment inner MD) if ((z_OutLo < zLoPointed) || (z_OutLo > zHiPointed)) return false; float sdlPVoff = 0.1f / rt_OutLo; - sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); + float sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); + float deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); // Cut #3: FIXME:deltaPhiPos can be tighter if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) return false; @@ -1589,7 +1431,7 @@ namespace lst { float diffX = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float diffY = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + float dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #4: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) @@ -1621,11 +1463,12 @@ namespace lst { float tl_axis_lowEdge_x = tl_axis_x; float tl_axis_lowEdge_y = tl_axis_y; - betaIn = alpha_InLo - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + float betaIn = + alpha_InLo - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float betaInRHmin = betaIn; float betaInRHmax = betaIn; - betaOut = + float betaOut = -alpha_OutUp + lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); float betaOutRHmin = betaOut; @@ -1669,18 +1512,19 @@ namespace lst { (mdsInGPU.anchorX[secondMDIndex] - mdsInGPU.anchorX[firstMDIndex]) + (mdsInGPU.anchorY[secondMDIndex] - mdsInGPU.anchorY[firstMDIndex]) * (mdsInGPU.anchorY[secondMDIndex] - mdsInGPU.anchorY[firstMDIndex])); - betaInCut = alpaka::math::asin( - acc, - alpaka::math::min( - acc, (-rt_InSeg * corrF + drt_tl_axis) * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + - (0.02f / drt_InSeg); + float betaInCut = + alpaka::math::asin( + acc, + alpaka::math::min( + acc, (-rt_InSeg * corrF + drt_tl_axis) * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + + (0.02f / drt_InSeg); //Cut #5: first beta cut if (alpaka::math::abs(acc, betaInRHmin) >= betaInCut) return false; float betaAv = 0.5f * (betaIn + betaOut); - pt_beta = drt_tl_axis * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); + float pt_beta = drt_tl_axis * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); int lIn = 5; int lOut = isEC_lastLayer ? 11 : 5; float sdOut_dr = alpaka::math::sqrt(acc, @@ -1735,10 +1579,10 @@ namespace lst { const float dBetaROut2 = dBetaROut * dBetaROut; - //FIXME: need faster version - betaOutCut = alpaka::math::asin( - acc, alpaka::math::min(acc, drt_tl_axis * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + - (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); + float betaOutCut = + alpaka::math::asin(acc, + alpaka::math::min(acc, drt_tl_axis * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + + (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); //Cut #6: The real beta cut if (alpaka::math::abs(acc, betaOut) >= betaOutCut) @@ -1752,15 +1596,14 @@ namespace lst { (alpaka::math::abs(acc, betaInRHmin - betaInRHmax) + alpaka::math::abs(acc, betaOutRHmin - betaOutRHmax))); float dBeta = betaIn - betaOut; - deltaBetaCut = alpaka::math::sqrt(acc, dBetaCut2); return dBeta * dBeta <= dBetaCut2; }; template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runQuintupletDefaultAlgoBBEE(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, uint16_t innerInnerLowerModuleIndex, uint16_t innerOuterLowerModuleIndex, uint16_t outerInnerLowerModuleIndex, @@ -1770,22 +1613,7 @@ namespace lst { unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, - unsigned int fourthMDIndex, - float& zOut, - float& rtOut, - float& deltaPhiPos, - float& dPhi, - float& betaIn, - float& betaOut, - float& pt_beta, - float& zLo, - float& rtLo, - float& rtHi, - float& sdlCut, - float& betaInCut, - float& betaOutCut, - float& deltaBetaCut, - float& kZ) { + unsigned int fourthMDIndex) { bool isPS_InLo = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS); bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS); @@ -1800,15 +1628,12 @@ namespace lst { float alpha1GeV_OutLo = alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)); - float rtRatio_OutLoInLo = rt_OutLo / rt_InLo; // Outer segment beginning rt divided by inner segment beginning rt; float dzDrtScale = alpaka::math::tan(acc, alpha1GeV_OutLo) / alpha1GeV_OutLo; // The track can bend in r-z plane slightly float zpitch_InLo = (isPS_InLo ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); float zpitch_OutLo = (isPS_OutLo ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); float zGeom = zpitch_InLo + zpitch_OutLo; - zLo = z_InLo + (z_InLo - lst::kDeltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - zGeom; - // Cut #0: Preliminary (Only here in endcap case) if (z_InLo * z_OutLo <= 0) return false; @@ -1817,10 +1642,9 @@ namespace lst { bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS; float rtGeom1 = isOutSgInnerMDPS ? lst::kPixelPSZpitch : lst::kStrip2SZpitch; float zGeom1 = alpaka::math::copysign(acc, zGeom, z_InLo); - rtLo = rt_InLo * (1.f + (z_OutLo - z_InLo - zGeom1) / (z_InLo + zGeom1 + dLum) / dzDrtScale) - - rtGeom1; //slope correction only on the lower end - zOut = z_OutLo; - rtOut = rt_OutLo; + float rtLo = rt_InLo * (1.f + (z_OutLo - z_InLo - zGeom1) / (z_InLo + zGeom1 + dLum) / dzDrtScale) - + rtGeom1; //slope correction only on the lower end + float rtOut = rt_OutLo; //Cut #1: rt condition if (rtOut < rtLo) @@ -1830,7 +1654,7 @@ namespace lst { if (zInForHi * z_InLo < 0) { zInForHi = alpaka::math::copysign(acc, 0.1f, z_InLo); } - rtHi = rt_InLo * (1.f + (z_OutLo - z_InLo + zGeom1) / zInForHi) + rtGeom1; + float rtHi = rt_InLo * (1.f + (z_OutLo - z_InLo + zGeom1) / zInForHi) + rtGeom1; //Cut #2: rt condition if ((rt_OutLo < rtLo) || (rt_OutLo > rtHi)) @@ -1846,7 +1670,7 @@ namespace lst { const float dzOutInAbs = alpaka::math::abs(acc, z_OutLo - z_InLo); const float multDzDr = dzOutInAbs * coshEta / (coshEta * coshEta - 1.f); const float zGeom1_another = lst::kPixelPSZpitch; - kZ = (z_OutLo - z_InLo) / dzSDIn; + float kZ = (z_OutLo - z_InLo) / dzSDIn; float drtErr = zGeom1_another * zGeom1_another * drtSDIn * drtSDIn / dzSDIn / dzSDIn * (1.f - 2.f * kZ + 2.f * kZ * kZ); const float sdlThetaMulsF2 = @@ -1860,9 +1684,9 @@ namespace lst { return false; const float sdlPVoff = 0.1f / rt_OutLo; - sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); + float sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); + float deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); //Cut #4: deltaPhiPos can be tighter if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) @@ -1873,7 +1697,7 @@ namespace lst { float diffX = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float diffY = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + float dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) return false; @@ -1897,11 +1721,12 @@ namespace lst { float tl_axis_x = mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + float betaIn = + sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float betaInRHmin = betaIn; float betaInRHmax = betaIn; - betaOut = + float betaOut = -sdOut_alphaOut + lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); float betaOutRHmin = betaOut; @@ -1940,7 +1765,7 @@ namespace lst { float dr = alpaka::math::sqrt(acc, tl_axis_x * tl_axis_x + tl_axis_y * tl_axis_y); const float corrF = 1.f; - betaInCut = + float betaInCut = alpaka::math::asin( acc, alpaka::math::min(acc, (-sdIn_dr * corrF + dr) * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + (0.02f / sdIn_d); @@ -1950,7 +1775,7 @@ namespace lst { return false; float betaAv = 0.5f * (betaIn + betaOut); - pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); + float pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); float lIn = 5; float lOut = 11; @@ -2006,8 +1831,7 @@ namespace lst { } const float dBetaROut2 = dBetaROut * dBetaROut; - //FIXME: need faster version - betaOutCut = + float betaOutCut = alpaka::math::asin(acc, alpaka::math::min(acc, dr * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); @@ -2022,16 +1846,15 @@ namespace lst { (alpaka::math::abs(acc, betaInRHmin - betaInRHmax) + alpaka::math::abs(acc, betaOutRHmin - betaOutRHmax)) * (alpaka::math::abs(acc, betaInRHmin - betaInRHmax) + alpaka::math::abs(acc, betaOutRHmin - betaOutRHmax))); float dBeta = betaIn - betaOut; - deltaBetaCut = alpaka::math::sqrt(acc, dBetaCut2); //Cut #7: Cut on dBet return dBeta * dBeta <= dBetaCut2; }; template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runQuintupletDefaultAlgoEEEE(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, uint16_t innerInnerLowerModuleIndex, uint16_t innerOuterLowerModuleIndex, uint16_t outerInnerLowerModuleIndex, @@ -2041,25 +1864,7 @@ namespace lst { unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, - unsigned int fourthMDIndex, - float& zOut, - float& rtOut, - float& deltaPhiPos, - float& dPhi, - float& betaIn, - float& betaOut, - float& pt_beta, - float& zLo, - float& rtLo, - float& rtHi, - float& sdlCut, - float& betaInCut, - float& betaOutCut, - float& deltaBetaCut, - float& kZ) { - bool isPS_InLo = (modulesInGPU.moduleType[innerInnerLowerModuleIndex] == lst::PS); - bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS); - + unsigned int fourthMDIndex) { float rt_InLo = mdsInGPU.anchorRt[firstMDIndex]; float rt_InOut = mdsInGPU.anchorRt[secondMDIndex]; float rt_OutLo = mdsInGPU.anchorRt[thirdMDIndex]; @@ -2071,15 +1876,8 @@ namespace lst { float alpha1GeV_OutLo = alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)); - float rtRatio_OutLoInLo = rt_OutLo / rt_InLo; // Outer segment beginning rt divided by inner segment beginning rt; float dzDrtScale = alpaka::math::tan(acc, alpha1GeV_OutLo) / alpha1GeV_OutLo; // The track can bend in r-z plane slightly - float zpitch_InLo = (isPS_InLo ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); - float zpitch_OutLo = (isPS_OutLo ? lst::kPixelPSZpitch : lst::kStrip2SZpitch); - float zGeom = zpitch_InLo + zpitch_OutLo; - - zLo = z_InLo + (z_InLo - lst::kDeltaZLum) * (rtRatio_OutLoInLo - 1.f) * (z_InLo > 0.f ? 1.f : dzDrtScale) - - zGeom; //slope-correction only on outer end // Cut #0: Preliminary (Only here in endcap case) if ((z_InLo * z_OutLo) <= 0) @@ -2094,14 +1892,13 @@ namespace lst { : 2.f * lst::kStrip2SZpitch; float dz = z_OutLo - z_InLo; - rtLo = rt_InLo * (1.f + dz / (z_InLo + dLum) / dzDrtScale) - rtGeom; //slope correction only on the lower end + float rtLo = rt_InLo * (1.f + dz / (z_InLo + dLum) / dzDrtScale) - rtGeom; //slope correction only on the lower end - zOut = z_OutLo; - rtOut = rt_OutLo; + float rtOut = rt_OutLo; //Cut #1: rt condition - rtHi = rt_InLo * (1.f + dz / (z_InLo - dLum)) + rtGeom; + float rtHi = rt_InLo * (1.f + dz / (z_InLo - dLum)) + rtGeom; if ((rtOut < rtLo) || (rtOut > rtHi)) return false; @@ -2116,7 +1913,7 @@ namespace lst { float dzOutInAbs = alpaka::math::abs(acc, z_OutLo - z_InLo); float multDzDr = dzOutInAbs * coshEta / (coshEta * coshEta - 1.f); - kZ = (z_OutLo - z_InLo) / dzSDIn; + float kZ = (z_OutLo - z_InLo) / dzSDIn; float sdlThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f); float sdlMuls2 = sdlThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; @@ -2141,9 +1938,9 @@ namespace lst { } float sdlPVoff = 0.1f / rtOut; - sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); + float sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); - deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); + float deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) return false; @@ -2153,7 +1950,7 @@ namespace lst { float diffX = mdsInGPU.anchorX[thirdMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float diffY = mdsInGPU.anchorY[thirdMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); + float dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange if (alpaka::math::abs(acc, dPhi) > sdlCut) @@ -2174,14 +1971,15 @@ namespace lst { float tl_axis_x = mdsInGPU.anchorX[fourthMDIndex] - mdsInGPU.anchorX[firstMDIndex]; float tl_axis_y = mdsInGPU.anchorY[fourthMDIndex] - mdsInGPU.anchorY[firstMDIndex]; - betaIn = sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); + float betaIn = + sdIn_alpha - lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[firstMDIndex]); float sdIn_alphaRHmin = __H2F(segmentsInGPU.dPhiChangeMins[innerSegmentIndex]); float sdIn_alphaRHmax = __H2F(segmentsInGPU.dPhiChangeMaxs[innerSegmentIndex]); float betaInRHmin = betaIn + sdIn_alphaRHmin - sdIn_alpha; float betaInRHmax = betaIn + sdIn_alphaRHmax - sdIn_alpha; - betaOut = + float betaOut = -sdOut_alphaOut + lst::phi_mpi_pi(acc, lst::phi(acc, tl_axis_x, tl_axis_y) - mdsInGPU.anchorPhi[fourthMDIndex]); float betaOutRHmin = betaOut - sdOut_alphaOutRHmin + sdOut_alphaOut; @@ -2208,7 +2006,7 @@ namespace lst { float dr = alpaka::math::sqrt(acc, tl_axis_x * tl_axis_x + tl_axis_y * tl_axis_y); const float corrF = 1.f; - betaInCut = + float betaInCut = alpaka::math::asin( acc, alpaka::math::min(acc, (-sdIn_dr * corrF + dr) * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + (0.02f / sdIn_d); @@ -2218,7 +2016,7 @@ namespace lst { return false; float betaAv = 0.5f * (betaIn + betaOut); - pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); + float pt_beta = dr * lst::k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); int lIn = 11; //endcap int lOut = 13; //endcap @@ -2262,8 +2060,7 @@ namespace lst { const float dBetaRIn2 = 0; // TODO-RH float dBetaROut2 = 0; //TODO-RH - //FIXME: need faster version - betaOutCut = + float betaOutCut = alpaka::math::asin(acc, alpaka::math::min(acc, dr * lst::k2Rinv1GeVf / lst::ptCut, lst::kSinAlphaMax)) + (0.02f / sdOut_d) + alpaka::math::sqrt(acc, dBetaLum2 + dBetaMuls2); @@ -2279,16 +2076,14 @@ namespace lst { (alpaka::math::abs(acc, betaInRHmin - betaInRHmax) + alpaka::math::abs(acc, betaOutRHmin - betaOutRHmax))); float dBeta = betaIn - betaOut; //Cut #7: Cut on dBeta - deltaBetaCut = alpaka::math::sqrt(acc, dBetaCut2); - return dBeta * dBeta <= dBetaCut2; }; template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runQuintupletAlgoSelector(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, uint16_t innerInnerLowerModuleIndex, uint16_t innerOuterLowerModuleIndex, uint16_t outerInnerLowerModuleIndex, @@ -2298,34 +2093,7 @@ namespace lst { unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, - unsigned int fourthMDIndex, - float& zOut, - float& rtOut, - float& deltaPhiPos, - float& deltaPhi, - float& betaIn, - float& betaOut, - float& pt_beta, - float& zLo, - float& zHi, - float& rtLo, - float& rtHi, - float& zLoPointed, - float& zHiPointed, - float& sdlCut, - float& betaInCut, - float& betaOutCut, - float& deltaBetaCut, - float& kZ) { - zLo = -999; - zHi = -999; - rtLo = -999; - rtHi = -999; - zLoPointed = -999; - zHiPointed = -999; - kZ = -999; - betaInCut = -999; - + unsigned int fourthMDIndex) { short innerInnerLowerModuleSubdet = modulesInGPU.subdets[innerInnerLowerModuleIndex]; short innerOuterLowerModuleSubdet = modulesInGPU.subdets[innerOuterLowerModuleIndex]; short outerInnerLowerModuleSubdet = modulesInGPU.subdets[outerInnerLowerModuleIndex]; @@ -2346,22 +2114,7 @@ namespace lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex, - zOut, - rtOut, - deltaPhiPos, - deltaPhi, - betaIn, - betaOut, - pt_beta, - zLo, - zHi, - zLoPointed, - zHiPointed, - sdlCut, - betaInCut, - betaOutCut, - deltaBetaCut); + fourthMDIndex); } else if (innerInnerLowerModuleSubdet == lst::Barrel and innerOuterLowerModuleSubdet == lst::Barrel and outerInnerLowerModuleSubdet == lst::Endcap and outerOuterLowerModuleSubdet == lst::Endcap) { return runQuintupletDefaultAlgoBBEE(acc, @@ -2377,22 +2130,7 @@ namespace lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex, - zOut, - rtOut, - deltaPhiPos, - deltaPhi, - betaIn, - betaOut, - pt_beta, - zLo, - rtLo, - rtHi, - sdlCut, - betaInCut, - betaOutCut, - deltaBetaCut, - kZ); + fourthMDIndex); } else if (innerInnerLowerModuleSubdet == lst::Barrel and innerOuterLowerModuleSubdet == lst::Barrel and outerInnerLowerModuleSubdet == lst::Barrel and outerOuterLowerModuleSubdet == lst::Endcap) { return runQuintupletDefaultAlgoBBBB(acc, @@ -2408,22 +2146,7 @@ namespace lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex, - zOut, - rtOut, - deltaPhiPos, - deltaPhi, - betaIn, - betaOut, - pt_beta, - zLo, - zHi, - zLoPointed, - zHiPointed, - sdlCut, - betaInCut, - betaOutCut, - deltaBetaCut); + fourthMDIndex); } else if (innerInnerLowerModuleSubdet == lst::Barrel and innerOuterLowerModuleSubdet == lst::Endcap and outerInnerLowerModuleSubdet == lst::Endcap and outerOuterLowerModuleSubdet == lst::Endcap) { return runQuintupletDefaultAlgoBBEE(acc, @@ -2439,22 +2162,7 @@ namespace lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex, - zOut, - rtOut, - deltaPhiPos, - deltaPhi, - betaIn, - betaOut, - pt_beta, - zLo, - rtLo, - rtHi, - sdlCut, - betaInCut, - betaOutCut, - deltaBetaCut, - kZ); + fourthMDIndex); } else if (innerInnerLowerModuleSubdet == lst::Endcap and innerOuterLowerModuleSubdet == lst::Endcap and outerInnerLowerModuleSubdet == lst::Endcap and outerOuterLowerModuleSubdet == lst::Endcap) { return runQuintupletDefaultAlgoEEEE(acc, @@ -2470,22 +2178,7 @@ namespace lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex, - zOut, - rtOut, - deltaPhiPos, - deltaPhi, - betaIn, - betaOut, - pt_beta, - zLo, - rtLo, - rtHi, - sdlCut, - betaInCut, - betaOutCut, - deltaBetaCut, - kZ); + fourthMDIndex); } return false; @@ -2528,10 +2221,6 @@ namespace lst { if (innerOuterOuterMiniDoubletIndex != outerInnerInnerMiniDoubletIndex) return false; - //apply T4 criteria between segments 1 and 3 - float zOut, rtOut, deltaPhiPos, deltaPhi, betaIn, betaOut, pt_beta; //temp stuff - float zLo, zHi, rtLo, rtHi, zLoPointed, zHiPointed, sdlCut, betaInCut, betaOutCut, deltaBetaCut, kZ; - unsigned int firstMDIndex = segmentsInGPU.mdIndices[2 * firstSegmentIndex]; unsigned int secondMDIndex = segmentsInGPU.mdIndices[2 * secondSegmentIndex]; unsigned int thirdMDIndex = segmentsInGPU.mdIndices[2 * secondSegmentIndex + 1]; @@ -2551,25 +2240,7 @@ namespace lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex, - zOut, - rtOut, - deltaPhiPos, - deltaPhi, - betaIn, - betaOut, - pt_beta, - zLo, - zHi, - rtLo, - rtHi, - zLoPointed, - zHiPointed, - sdlCut, - betaInCut, - betaOutCut, - deltaBetaCut, - kZ)) + fourthMDIndex)) return false; if (not runQuintupletAlgoSelector(acc, @@ -2585,25 +2256,7 @@ namespace lst { firstMDIndex, secondMDIndex, fourthMDIndex, - fifthMDIndex, - zOut, - rtOut, - deltaPhiPos, - deltaPhi, - betaIn, - betaOut, - pt_beta, - zLo, - zHi, - rtLo, - rtHi, - zLoPointed, - zHiPointed, - sdlCut, - betaInCut, - betaOutCut, - deltaBetaCut, - kZ)) + fifthMDIndex)) return false; float x1 = mdsInGPU.anchorX[firstMDIndex]; @@ -2722,9 +2375,6 @@ namespace lst { if (innerRadius < 0.95f * ptCut / (2.f * k2Rinv1GeVf)) return false; - float innerInvRadiusMin, innerInvRadiusMax, bridgeInvRadiusMin, bridgeInvRadiusMax, outerInvRadiusMin, - outerInvRadiusMax; - //split by category bool matchedRadii; if (modulesInGPU.subdets[lowerModuleIndex1] == lst::Barrel and @@ -2732,93 +2382,27 @@ namespace lst { modulesInGPU.subdets[lowerModuleIndex3] == lst::Barrel and modulesInGPU.subdets[lowerModuleIndex4] == lst::Barrel and modulesInGPU.subdets[lowerModuleIndex5] == lst::Barrel) { - matchedRadii = matchRadiiBBBBB(acc, - innerRadius, - bridgeRadius, - outerRadius, - innerInvRadiusMin, - innerInvRadiusMax, - bridgeInvRadiusMin, - bridgeInvRadiusMax, - outerInvRadiusMin, - outerInvRadiusMax); + matchedRadii = matchRadiiBBBBB(acc, innerRadius, bridgeRadius, outerRadius); } else if (modulesInGPU.subdets[lowerModuleIndex1] == lst::Barrel and modulesInGPU.subdets[lowerModuleIndex2] == lst::Barrel and modulesInGPU.subdets[lowerModuleIndex3] == lst::Barrel and modulesInGPU.subdets[lowerModuleIndex4] == lst::Barrel and modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) { - matchedRadii = matchRadiiBBBBE(acc, - innerRadius, - bridgeRadius, - outerRadius, - innerRadiusMin2S, - innerRadiusMax2S, - bridgeRadiusMin2S, - bridgeRadiusMax2S, - outerRadiusMin2S, - outerRadiusMax2S, - innerInvRadiusMin, - innerInvRadiusMax, - bridgeInvRadiusMin, - bridgeInvRadiusMax, - outerInvRadiusMin, - outerInvRadiusMax); + matchedRadii = matchRadiiBBBBE(acc, innerRadius, bridgeRadius, outerRadius); } else if (modulesInGPU.subdets[lowerModuleIndex1] == lst::Barrel and modulesInGPU.subdets[lowerModuleIndex2] == lst::Barrel and modulesInGPU.subdets[lowerModuleIndex3] == lst::Barrel and modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) { if (modulesInGPU.layers[lowerModuleIndex1] == 1) { - matchedRadii = matchRadiiBBBEE12378(acc, - innerRadius, - bridgeRadius, - outerRadius, - innerRadiusMin2S, - innerRadiusMax2S, - bridgeRadiusMin2S, - bridgeRadiusMax2S, - outerRadiusMin2S, - outerRadiusMax2S, - innerInvRadiusMin, - innerInvRadiusMax, - bridgeInvRadiusMin, - bridgeInvRadiusMax, - outerInvRadiusMin, - outerInvRadiusMax); + matchedRadii = + matchRadiiBBBEE12378(acc, innerRadius, bridgeRadius, outerRadius, bridgeRadiusMin2S, bridgeRadiusMax2S); } else if (modulesInGPU.layers[lowerModuleIndex1] == 2) { - matchedRadii = matchRadiiBBBEE23478(acc, - innerRadius, - bridgeRadius, - outerRadius, - innerRadiusMin2S, - innerRadiusMax2S, - bridgeRadiusMin2S, - bridgeRadiusMax2S, - outerRadiusMin2S, - outerRadiusMax2S, - innerInvRadiusMin, - innerInvRadiusMax, - bridgeInvRadiusMin, - bridgeInvRadiusMax, - outerInvRadiusMin, - outerInvRadiusMax); + matchedRadii = + matchRadiiBBBEE23478(acc, innerRadius, bridgeRadius, outerRadius, bridgeRadiusMin2S, bridgeRadiusMax2S); } else { - matchedRadii = matchRadiiBBBEE34578(acc, - innerRadius, - bridgeRadius, - outerRadius, - innerRadiusMin2S, - innerRadiusMax2S, - bridgeRadiusMin2S, - bridgeRadiusMax2S, - outerRadiusMin2S, - outerRadiusMax2S, - innerInvRadiusMin, - innerInvRadiusMax, - bridgeInvRadiusMin, - bridgeInvRadiusMax, - outerInvRadiusMin, - outerInvRadiusMax); + matchedRadii = + matchRadiiBBBEE34578(acc, innerRadius, bridgeRadius, outerRadius, bridgeRadiusMin2S, bridgeRadiusMax2S); } } @@ -2827,22 +2411,7 @@ namespace lst { modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) { - matchedRadii = matchRadiiBBEEE(acc, - innerRadius, - bridgeRadius, - outerRadius, - innerRadiusMin2S, - innerRadiusMax2S, - bridgeRadiusMin2S, - bridgeRadiusMax2S, - outerRadiusMin2S, - outerRadiusMax2S, - innerInvRadiusMin, - innerInvRadiusMax, - bridgeInvRadiusMin, - bridgeInvRadiusMax, - outerInvRadiusMin, - outerInvRadiusMax); + matchedRadii = matchRadiiBBEEE(acc, innerRadius, bridgeRadius, outerRadius, bridgeRadiusMin2S, bridgeRadiusMax2S); } else if (modulesInGPU.subdets[lowerModuleIndex1] == lst::Barrel and modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and @@ -2855,15 +2424,7 @@ namespace lst { innerRadiusMin2S, innerRadiusMax2S, bridgeRadiusMin2S, - bridgeRadiusMax2S, - outerRadiusMin2S, - outerRadiusMax2S, - innerInvRadiusMin, - innerInvRadiusMax, - bridgeInvRadiusMin, - bridgeInvRadiusMax, - outerInvRadiusMin, - outerInvRadiusMax); + bridgeRadiusMax2S); } else { matchedRadii = matchRadiiEEEEE(acc, innerRadius, @@ -2872,15 +2433,7 @@ namespace lst { innerRadiusMin2S, innerRadiusMax2S, bridgeRadiusMin2S, - bridgeRadiusMax2S, - outerRadiusMin2S, - outerRadiusMax2S, - innerInvRadiusMin, - innerInvRadiusMax, - bridgeInvRadiusMin, - bridgeInvRadiusMax, - outerInvRadiusMin, - outerInvRadiusMax); + bridgeRadiusMax2S); } //compute regression radius right here - this computation is expensive!!! @@ -2985,12 +2538,12 @@ namespace lst { struct createQuintupletsInGPUv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::MiniDoublets mdsInGPU, - struct lst::Segments segmentsInGPU, - struct lst::Triplets tripletsInGPU, - struct lst::Quintuplets quintupletsInGPU, - struct lst::ObjectRanges rangesInGPU, + lst::Modules modulesInGPU, + lst::MiniDoublets mdsInGPU, + lst::Segments segmentsInGPU, + lst::Triplets tripletsInGPU, + lst::Quintuplets quintupletsInGPU, + lst::ObjectRanges rangesInGPU, uint16_t nEligibleT5Modules) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -3114,9 +2667,9 @@ namespace lst { struct createEligibleModulesListForQuintupletsGPU { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::Triplets tripletsInGPU, - struct lst::ObjectRanges rangesInGPU) const { + lst::Modules modulesInGPU, + lst::Triplets tripletsInGPU, + lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -3212,9 +2765,9 @@ namespace lst { struct addQuintupletRangesToEventExplicit { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::Quintuplets quintupletsInGPU, - struct lst::ObjectRanges rangesInGPU) const { + lst::Modules modulesInGPU, + lst::Quintuplets quintupletsInGPU, + lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index 93a17e3d72e46..643ee9b0dddd3 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -175,7 +175,7 @@ namespace lst { inline void setData(SegmentsBuffer& buf) { data_.setData(buf); } }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules_seg(struct lst::Modules& modulesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE float isTighterTiltedModules_seg(lst::Modules const& modulesInGPU, unsigned int moduleIndex) { // The "tighter" tilted modules are the subset of tilted modules that have smaller spacing // This is the same as what was previously considered as"isNormalTiltedModules" @@ -199,8 +199,7 @@ namespace lst { ((side == PosZ) && (((layer == 2) && (rod < 8)) || ((layer == 1) && (rod < 4))))); }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg( - short layer, short ring, short subdet, short side, short rod) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg(short layer, short ring, short subdet, short side, short rod) { static constexpr float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; static constexpr float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; static constexpr float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; @@ -230,8 +229,7 @@ namespace lst { return moduleSeparation; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg(struct lst::Modules& modulesInGPU, - unsigned int moduleIndex) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg(lst::Modules const& modulesInGPU, unsigned int moduleIndex) { static constexpr float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; static constexpr float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; static constexpr float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; @@ -266,16 +264,16 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE void dAlphaThreshold(TAcc const& acc, float* dAlphaThresholdValues, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - float& xIn, - float& yIn, - float& zIn, - float& rtIn, - float& xOut, - float& yOut, - float& zOut, - float& rtOut, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + float xIn, + float yIn, + float zIn, + float rtIn, + float xOut, + float yOut, + float zOut, + float rtOut, uint16_t innerLowerModuleIndex, uint16_t outerLowerModuleIndex, unsigned int innerMDIndex, @@ -295,8 +293,8 @@ namespace lst { bool isOuterTilted = modulesInGPU.subdets[outerLowerModuleIndex] == lst::Barrel and modulesInGPU.sides[outerLowerModuleIndex] != lst::Center; - const float& drdzInner = modulesInGPU.drdzs[innerLowerModuleIndex]; - const float& drdzOuter = modulesInGPU.drdzs[outerLowerModuleIndex]; + float drdzInner = modulesInGPU.drdzs[innerLowerModuleIndex]; + float drdzOuter = modulesInGPU.drdzs[outerLowerModuleIndex]; float innerModuleGapSize = lst::moduleGapSize_seg(modulesInGPU, innerLowerModuleIndex); float outerModuleGapSize = lst::moduleGapSize_seg(modulesInGPU, outerLowerModuleIndex); const float innerminiTilt2 = isInnerTilted @@ -358,24 +356,20 @@ namespace lst { dAlphaThresholdValues[2] = dAlpha_Bfield + alpaka::math::sqrt(acc, dAlpha_res * dAlpha_res + sdMuls * sdMuls); }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addSegmentToMemory(struct lst::Segments& segmentsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addSegmentToMemory(lst::Segments& segmentsInGPU, unsigned int lowerMDIndex, unsigned int upperMDIndex, uint16_t innerLowerModuleIndex, uint16_t outerLowerModuleIndex, unsigned int innerMDAnchorHitIndex, unsigned int outerMDAnchorHitIndex, - float& dPhi, - float& dPhiMin, - float& dPhiMax, - float& dPhiChange, - float& dPhiChangeMin, - float& dPhiChangeMax, + float dPhi, + float dPhiMin, + float dPhiMax, + float dPhiChange, + float dPhiChangeMin, + float dPhiChangeMax, unsigned int idx) { - //idx will be computed in the kernel, which is the index into which the - //segment will be written - //nSegments will be incremented in the kernel - //printf("seg: %u %u %u %u\n",lowerMDIndex, upperMDIndex,innerLowerModuleIndex,outerLowerModuleIndex); segmentsInGPU.mdIndices[idx * 2] = lowerMDIndex; segmentsInGPU.mdIndices[idx * 2 + 1] = upperMDIndex; segmentsInGPU.innerLowerModuleIndices[idx] = innerLowerModuleIndex; @@ -393,8 +387,8 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelSegmentToMemory(TAcc const& acc, - struct lst::Segments& segmentsInGPU, - struct lst::MiniDoublets& mdsInGPU, + lst::Segments& segmentsInGPU, + lst::MiniDoublets const& mdsInGPU, unsigned int innerMDIndex, unsigned int outerMDIndex, uint16_t pixelModuleIndex, @@ -456,36 +450,23 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgoBarrel(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, uint16_t innerLowerModuleIndex, uint16_t outerLowerModuleIndex, - unsigned int& innerMDIndex, - unsigned int& outerMDIndex, - float& zIn, - float& zOut, - float& rtIn, - float& rtOut, + unsigned int innerMDIndex, + unsigned int outerMDIndex, float& dPhi, float& dPhiMin, float& dPhiMax, float& dPhiChange, float& dPhiChangeMin, - float& dPhiChangeMax, - float& dAlphaInnerMDSegment, - float& dAlphaOuterMDSegment, - float& dAlphaInnerMDOuterMD, - float& zLo, - float& zHi, - float& sdCut, - float& dAlphaInnerMDSegmentThreshold, - float& dAlphaOuterMDSegmentThreshold, - float& dAlphaInnerMDOuterMDThreshold) { + float& dPhiChangeMax) { float sdMuls = (modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel) ? kMiniMulsPtScaleBarrel[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut : kMiniMulsPtScaleEndcap[modulesInGPU.layers[innerLowerModuleIndex] - 1] * 3.f / ptCut; - float xIn, yIn, xOut, yOut; + float xIn, yIn, zIn, rtIn, xOut, yOut, zOut, rtOut; xIn = mdsInGPU.anchorX[innerMDIndex]; yIn = mdsInGPU.anchorY[innerMDIndex]; @@ -503,14 +484,14 @@ namespace lst { const float zGeom = modulesInGPU.layers[innerLowerModuleIndex] <= 2 ? 2.f * kPixelPSZpitch : 2.f * kStrip2SZpitch; - zLo = zIn + (zIn - kDeltaZLum) * (rtOut / rtIn - 1.f) * (zIn > 0.f ? 1.f : dzDrtScale) - - zGeom; //slope-correction only on outer end - zHi = zIn + (zIn + kDeltaZLum) * (rtOut / rtIn - 1.f) * (zIn < 0.f ? 1.f : dzDrtScale) + zGeom; + float zLo = zIn + (zIn - kDeltaZLum) * (rtOut / rtIn - 1.f) * (zIn > 0.f ? 1.f : dzDrtScale) - + zGeom; //slope-correction only on outer end + float zHi = zIn + (zIn + kDeltaZLum) * (rtOut / rtIn - 1.f) * (zIn < 0.f ? 1.f : dzDrtScale) + zGeom; if ((zOut < zLo) || (zOut > zHi)) return false; - sdCut = sdSlope + alpaka::math::sqrt(acc, sdMuls * sdMuls + sdPVoff * sdPVoff); + float sdCut = sdSlope + alpaka::math::sqrt(acc, sdMuls * sdMuls + sdPVoff * sdPVoff); dPhi = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); @@ -542,13 +523,13 @@ namespace lst { float innerMDAlpha = mdsInGPU.dphichanges[innerMDIndex]; float outerMDAlpha = mdsInGPU.dphichanges[outerMDIndex]; - dAlphaInnerMDSegment = innerMDAlpha - dPhiChange; - dAlphaOuterMDSegment = outerMDAlpha - dPhiChange; - dAlphaInnerMDOuterMD = innerMDAlpha - outerMDAlpha; + float dAlphaInnerMDSegment = innerMDAlpha - dPhiChange; + float dAlphaOuterMDSegment = outerMDAlpha - dPhiChange; + float dAlphaInnerMDOuterMD = innerMDAlpha - outerMDAlpha; - dAlphaInnerMDSegmentThreshold = dAlphaThresholdValues[0]; - dAlphaOuterMDSegmentThreshold = dAlphaThresholdValues[1]; - dAlphaInnerMDOuterMDThreshold = dAlphaThresholdValues[2]; + float dAlphaInnerMDSegmentThreshold = dAlphaThresholdValues[0]; + float dAlphaOuterMDSegmentThreshold = dAlphaThresholdValues[1]; + float dAlphaInnerMDOuterMDThreshold = dAlphaThresholdValues[2]; if (alpaka::math::abs(acc, dAlphaInnerMDSegment) >= dAlphaInnerMDSegmentThreshold) return false; @@ -559,33 +540,19 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgoEndcap(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, uint16_t innerLowerModuleIndex, uint16_t outerLowerModuleIndex, unsigned int innerMDIndex, unsigned int outerMDIndex, - float& zIn, - float& zOut, - float& rtIn, - float& rtOut, float& dPhi, float& dPhiMin, float& dPhiMax, float& dPhiChange, float& dPhiChangeMin, - float& dPhiChangeMax, - float& dAlphaInnerMDSegment, - float& dAlphaOuterMDSegment, - float& rtLo, - float& rtHi, - float& sdCut, - float& dAlphaInnerMDSegmentThreshold, - float& dAlphaOuterMDSegmentThreshold, - float& dAlphaInnerMDOuterMDThreshold, - float& dAlphaInnerMDOuterMD) { - float xIn, yIn; - float xOut, yOut; + float& dPhiChangeMax) { + float xIn, yIn, zIn, rtIn, xOut, yOut, zOut, rtOut; xIn = mdsInGPU.anchorX[innerMDIndex]; yIn = mdsInGPU.anchorY[innerMDIndex]; @@ -617,10 +584,10 @@ namespace lst { float dLum = alpaka::math::copysign(acc, kDeltaZLum, zIn); float drtDzScale = sdSlope / alpaka::math::tan(acc, sdSlope); - rtLo = alpaka::math::max( + float rtLo = alpaka::math::max( acc, rtIn * (1.f + dz / (zIn + dLum) * drtDzScale) - rtGeom, rtIn - 0.5f * rtGeom); //rt should increase - rtHi = rtIn * (zOut - dLum) / (zIn - dLum) + - rtGeom; //dLum for luminous; rGeom for measurement size; no tanTheta_loc(pt) correction + float rtHi = rtIn * (zOut - dLum) / (zIn - dLum) + + rtGeom; //dLum for luminous; rGeom for measurement size; no tanTheta_loc(pt) correction // Completeness if ((rtOut < rtLo) || (rtOut > rtHi)) @@ -628,7 +595,7 @@ namespace lst { dPhi = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); - sdCut = sdSlope; + float sdCut = sdSlope; if (outerLayerEndcapTwoS) { float dPhiPos_high = lst::phi_mpi_pi(acc, mdsInGPU.anchorHighEdgePhi[outerMDIndex] - mdsInGPU.anchorPhi[innerMDIndex]); @@ -670,57 +637,37 @@ namespace lst { innerMDIndex, outerMDIndex); - dAlphaInnerMDSegmentThreshold = dAlphaThresholdValues[0]; - dAlphaOuterMDSegmentThreshold = dAlphaThresholdValues[1]; - dAlphaInnerMDOuterMDThreshold = dAlphaThresholdValues[2]; - float innerMDAlpha = mdsInGPU.dphichanges[innerMDIndex]; float outerMDAlpha = mdsInGPU.dphichanges[outerMDIndex]; - dAlphaInnerMDSegment = innerMDAlpha - dPhiChange; - dAlphaOuterMDSegment = outerMDAlpha - dPhiChange; - dAlphaInnerMDOuterMD = innerMDAlpha - outerMDAlpha; + float dAlphaInnerMDSegment = innerMDAlpha - dPhiChange; + float dAlphaOuterMDSegment = outerMDAlpha - dPhiChange; + float dAlphaInnerMDOuterMD = innerMDAlpha - outerMDAlpha; + + float dAlphaInnerMDSegmentThreshold = dAlphaThresholdValues[0]; + float dAlphaOuterMDSegmentThreshold = dAlphaThresholdValues[1]; + float dAlphaInnerMDOuterMDThreshold = dAlphaThresholdValues[2]; - if (alpaka::math::abs(acc, dAlphaInnerMDSegment) >= dAlphaThresholdValues[0]) + if (alpaka::math::abs(acc, dAlphaInnerMDSegment) >= dAlphaInnerMDSegmentThreshold) return false; - if (alpaka::math::abs(acc, dAlphaOuterMDSegment) >= dAlphaThresholdValues[1]) + if (alpaka::math::abs(acc, dAlphaOuterMDSegment) >= dAlphaOuterMDSegmentThreshold) return false; - return alpaka::math::abs(acc, dAlphaInnerMDOuterMD) < dAlphaThresholdValues[2]; + return alpaka::math::abs(acc, dAlphaInnerMDOuterMD) < dAlphaInnerMDOuterMDThreshold; }; template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runSegmentDefaultAlgo(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, uint16_t innerLowerModuleIndex, uint16_t outerLowerModuleIndex, unsigned int innerMDIndex, unsigned int outerMDIndex, - float& zIn, - float& zOut, - float& rtIn, - float& rtOut, float& dPhi, float& dPhiMin, float& dPhiMax, float& dPhiChange, float& dPhiChangeMin, - float& dPhiChangeMax, - float& dAlphaInnerMDSegment, - float& dAlphaOuterMDSegment, - float& dAlphaInnerMDOuterMD, - float& zLo, - float& zHi, - float& rtLo, - float& rtHi, - float& sdCut, - float& dAlphaInnerMDSegmentThreshold, - float& dAlphaOuterMDSegmentThreshold, - float& dAlphaInnerMDOuterMDThreshold) { - zLo = -999.f; - zHi = -999.f; - rtLo = -999.f; - rtHi = -999.f; - + float& dPhiChangeMax) { if (modulesInGPU.subdets[innerLowerModuleIndex] == lst::Barrel and modulesInGPU.subdets[outerLowerModuleIndex] == lst::Barrel) { return runSegmentDefaultAlgoBarrel(acc, @@ -730,25 +677,12 @@ namespace lst { outerLowerModuleIndex, innerMDIndex, outerMDIndex, - zIn, - zOut, - rtIn, - rtOut, dPhi, dPhiMin, dPhiMax, dPhiChange, dPhiChangeMin, - dPhiChangeMax, - dAlphaInnerMDSegment, - dAlphaOuterMDSegment, - dAlphaInnerMDOuterMD, - zLo, - zHi, - sdCut, - dAlphaInnerMDSegmentThreshold, - dAlphaOuterMDSegmentThreshold, - dAlphaInnerMDOuterMDThreshold); + dPhiChangeMax); } else { return runSegmentDefaultAlgoEndcap(acc, modulesInGPU, @@ -757,35 +691,22 @@ namespace lst { outerLowerModuleIndex, innerMDIndex, outerMDIndex, - zIn, - zOut, - rtIn, - rtOut, dPhi, dPhiMin, dPhiMax, dPhiChange, dPhiChangeMin, - dPhiChangeMax, - dAlphaInnerMDSegment, - dAlphaOuterMDSegment, - dAlphaInnerMDOuterMD, - rtLo, - rtHi, - sdCut, - dAlphaInnerMDSegmentThreshold, - dAlphaOuterMDSegmentThreshold, - dAlphaInnerMDOuterMDThreshold); + dPhiChangeMax); } }; struct createSegmentsInGPUv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::MiniDoublets mdsInGPU, - struct lst::Segments segmentsInGPU, - struct lst::ObjectRanges rangesInGPU) const { + lst::Modules modulesInGPU, + lst::MiniDoublets mdsInGPU, + lst::Segments segmentsInGPU, + lst::ObjectRanges rangesInGPU) const { auto const globalBlockIdx = alpaka::getIdx(acc); auto const blockThreadIdx = alpaka::getIdx(acc); auto const gridBlockExtent = alpaka::getWorkDiv(acc); @@ -819,8 +740,7 @@ namespace lst { unsigned int innerMDIndex = rangesInGPU.mdRanges[innerLowerModuleIndex * 2] + innerMDArrayIdx; unsigned int outerMDIndex = rangesInGPU.mdRanges[outerLowerModuleIndex * 2] + outerMDArrayIdx; - float zIn, zOut, rtIn, rtOut, dPhi, dPhiMin, dPhiMax, dPhiChange, dPhiChangeMin, dPhiChangeMax, - dAlphaInnerMDSegment, dAlphaOuterMDSegment, dAlphaInnerMDOuterMD; + float dPhi, dPhiMin, dPhiMax, dPhiChange, dPhiChangeMin, dPhiChangeMax; unsigned int innerMiniDoubletAnchorHitIndex = mdsInGPU.anchorHitIndices[innerMDIndex]; unsigned int outerMiniDoubletAnchorHitIndex = mdsInGPU.anchorHitIndices[outerMDIndex]; @@ -828,8 +748,6 @@ namespace lst { dPhiMax = 0; dPhiChangeMin = 0; dPhiChangeMax = 0; - float zLo, zHi, rtLo, rtHi, sdCut, dAlphaInnerMDSegmentThreshold, dAlphaOuterMDSegmentThreshold, - dAlphaInnerMDOuterMDThreshold; if (runSegmentDefaultAlgo(acc, modulesInGPU, mdsInGPU, @@ -837,27 +755,12 @@ namespace lst { outerLowerModuleIndex, innerMDIndex, outerMDIndex, - zIn, - zOut, - rtIn, - rtOut, dPhi, dPhiMin, dPhiMax, dPhiChange, dPhiChangeMin, - dPhiChangeMax, - dAlphaInnerMDSegment, - dAlphaOuterMDSegment, - dAlphaInnerMDOuterMD, - zLo, - zHi, - rtLo, - rtHi, - sdCut, - dAlphaInnerMDSegmentThreshold, - dAlphaOuterMDSegmentThreshold, - dAlphaInnerMDOuterMDThreshold)) { + dPhiChangeMax)) { unsigned int totOccupancySegments = alpaka::atomicOp( acc, &segmentsInGPU.totOccupancySegments[innerLowerModuleIndex], 1u); if (static_cast(totOccupancySegments) >= rangesInGPU.segmentModuleOccupancy[innerLowerModuleIndex]) { @@ -894,9 +797,9 @@ namespace lst { struct createSegmentArrayRanges { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::ObjectRanges rangesInGPU, - struct lst::MiniDoublets mdsInGPU) const { + lst::Modules modulesInGPU, + lst::ObjectRanges rangesInGPU, + lst::MiniDoublets mdsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -992,9 +895,9 @@ namespace lst { struct addSegmentRangesToEventExplicit { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::Segments segmentsInGPU, - struct lst::ObjectRanges rangesInGPU) const { + lst::Modules modulesInGPU, + lst::Segments segmentsInGPU, + lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -1013,11 +916,11 @@ namespace lst { struct addPixelSegmentToEventKernel { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::ObjectRanges rangesInGPU, - struct lst::Hits hitsInGPU, - struct lst::MiniDoublets mdsInGPU, - struct lst::Segments segmentsInGPU, + lst::Modules modulesInGPU, + lst::ObjectRanges rangesInGPU, + lst::Hits hitsInGPU, + lst::MiniDoublets mdsInGPU, + lst::Segments segmentsInGPU, unsigned int* hitIndices0, unsigned int* hitIndices1, unsigned int* hitIndices2, diff --git a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h index 7451f5e47dc80..ede4dd9471e8e 100644 --- a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h +++ b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h @@ -109,7 +109,7 @@ namespace lst { inline void setData(TrackCandidatesBuffer& buf) { data_.setData(buf); } }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addpLSTrackCandidateToMemory(struct lst::TrackCandidates& trackCandidatesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addpLSTrackCandidateToMemory(lst::TrackCandidates& trackCandidatesInGPU, unsigned int trackletIndex, unsigned int trackCandidateIndex, uint4 hitIndices, @@ -128,7 +128,7 @@ namespace lst { trackCandidatesInGPU.hitIndices[Params_pT5::kHits * trackCandidateIndex + 3] = hitIndices.w; }; - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTrackCandidateToMemory(struct lst::TrackCandidates& trackCandidatesInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTrackCandidateToMemory(lst::TrackCandidates& trackCandidatesInGPU, short trackCandidateType, unsigned int innerTrackletIndex, unsigned int outerTrackletIndex, @@ -167,9 +167,9 @@ namespace lst { ALPAKA_FN_ACC ALPAKA_FN_INLINE int checkPixelHits(unsigned int ix, unsigned int jx, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, - struct lst::Hits& hitsInGPU) { + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, + lst::Hits const& hitsInGPU) { int phits1[Params_pLS::kHits]; int phits2[Params_pLS::kHits]; @@ -208,11 +208,11 @@ namespace lst { struct crossCleanpT3 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::ObjectRanges rangesInGPU, - struct lst::PixelTriplets pixelTripletsInGPU, - struct lst::Segments segmentsInGPU, - struct lst::PixelQuintuplets pixelQuintupletsInGPU) const { + lst::Modules modulesInGPU, + lst::ObjectRanges rangesInGPU, + lst::PixelTriplets pixelTripletsInGPU, + lst::Segments segmentsInGPU, + lst::PixelQuintuplets pixelQuintupletsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -249,11 +249,11 @@ namespace lst { struct crossCleanT5 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::Quintuplets quintupletsInGPU, - struct lst::PixelQuintuplets pixelQuintupletsInGPU, - struct lst::PixelTriplets pixelTripletsInGPU, - struct lst::ObjectRanges rangesInGPU) const { + lst::Modules modulesInGPU, + lst::Quintuplets quintupletsInGPU, + lst::PixelQuintuplets pixelQuintupletsInGPU, + lst::PixelTriplets pixelTripletsInGPU, + lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -301,19 +301,17 @@ namespace lst { } }; - // Using Matt's block for the outer loop and thread for inner loop trick here! - // This will eliminate the need for another kernel just for adding the pLS, because we can __syncthreads() struct crossCleanpLS { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::ObjectRanges rangesInGPU, - struct lst::PixelTriplets pixelTripletsInGPU, - struct lst::TrackCandidates trackCandidatesInGPU, - struct lst::Segments segmentsInGPU, - struct lst::MiniDoublets mdsInGPU, - struct lst::Hits hitsInGPU, - struct lst::Quintuplets quintupletsInGPU) const { + lst::Modules modulesInGPU, + lst::ObjectRanges rangesInGPU, + lst::PixelTriplets pixelTripletsInGPU, + lst::TrackCandidates trackCandidatesInGPU, + lst::Segments segmentsInGPU, + lst::MiniDoublets mdsInGPU, + lst::Hits hitsInGPU, + lst::Quintuplets quintupletsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -388,10 +386,10 @@ namespace lst { template ALPAKA_FN_ACC void operator()(TAcc const& acc, uint16_t nLowerModules, - struct lst::PixelTriplets pixelTripletsInGPU, - struct lst::TrackCandidates trackCandidatesInGPU, - struct lst::Segments segmentsInGPU, - struct lst::ObjectRanges rangesInGPU) const { + lst::PixelTriplets pixelTripletsInGPU, + lst::TrackCandidates trackCandidatesInGPU, + lst::Segments segmentsInGPU, + lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -440,9 +438,9 @@ namespace lst { template ALPAKA_FN_ACC void operator()(TAcc const& acc, uint16_t nLowerModules, - struct lst::Quintuplets quintupletsInGPU, - struct lst::TrackCandidates trackCandidatesInGPU, - struct lst::ObjectRanges rangesInGPU) const { + lst::Quintuplets quintupletsInGPU, + lst::TrackCandidates trackCandidatesInGPU, + lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -494,8 +492,8 @@ namespace lst { template ALPAKA_FN_ACC void operator()(TAcc const& acc, uint16_t nLowerModules, - struct lst::TrackCandidates trackCandidatesInGPU, - struct lst::Segments segmentsInGPU, + lst::TrackCandidates trackCandidatesInGPU, + lst::Segments segmentsInGPU, bool tc_pls_triplets) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -533,10 +531,10 @@ namespace lst { template ALPAKA_FN_ACC void operator()(TAcc const& acc, uint16_t nLowerModules, - struct lst::PixelQuintuplets pixelQuintupletsInGPU, - struct lst::TrackCandidates trackCandidatesInGPU, - struct lst::Segments segmentsInGPU, - struct lst::ObjectRanges rangesInGPU) const { + lst::PixelQuintuplets pixelQuintupletsInGPU, + lst::TrackCandidates trackCandidatesInGPU, + lst::Segments segmentsInGPU, + lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); From ae851e05b2e75dae44be8e9b74930153f6e1400d Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Tue, 30 Jul 2024 05:27:15 -0700 Subject: [PATCH 27/35] Fourth batch of fixing function arguments --- RecoTracker/LSTCore/src/alpaka/Triplet.h | 192 +++++++---------------- 1 file changed, 58 insertions(+), 134 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index 336724e8a8bee..b22449a7c61ff 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -12,7 +12,7 @@ namespace lst { struct Triplets { unsigned int* segmentIndices; - uint16_t* lowerModuleIndices; //3 of them now + uint16_t* lowerModuleIndices; //3 of them unsigned int* nTriplets; unsigned int* totOccupancyTriplets; unsigned int* nMemoryLocations; @@ -30,16 +30,7 @@ namespace lst { //debug variables float* zOut; float* rtOut; - float* deltaPhiPos; - float* deltaPhi; - float* zLo; - float* zHi; - float* zLoPointed; - float* zHiPointed; - float* sdlCut; float* betaInCut; - float* rtLo; - float* rtHi; #endif template void setData(TBuff& buf) { @@ -60,16 +51,7 @@ namespace lst { #ifdef CUT_VALUE_DEBUG zOut = alpaka::getPtrNative(buf.zOut_buf); rtOut = alpaka::getPtrNative(buf.rtOut_buf); - deltaPhiPos = alpaka::getPtrNative(buf.deltaPhiPos_buf); - deltaPhi = alpaka::getPtrNative(buf.deltaPhi_buf); - zLo = alpaka::getPtrNative(buf.zLo_buf); - zHi = alpaka::getPtrNative(buf.zHi_buf); - zLoPointed = alpaka::getPtrNative(buf.zLoPointed_buf); - zHiPointed = alpaka::getPtrNative(buf.zHiPointed_buf); - sdlCut = alpaka::getPtrNative(buf.sdlCut_buf); betaInCut = alpaka::getPtrNative(buf.betaInCut_buf); - rtLo = alpaka::getPtrNative(buf.rtLo_buf); - rtHi = alpaka::getPtrNative(buf.rtHi_buf); #endif } }; @@ -109,10 +91,7 @@ namespace lst { Triplets data_; template - TripletsBuffer(unsigned int maxTriplets, - unsigned int nLowerModules, - TDevAcc const& devAccIn, - TQueue& queue) + 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)), nTriplets_buf(allocBufWrapper(devAccIn, nLowerModules, queue)), @@ -155,46 +134,37 @@ namespace lst { }; #ifdef CUT_VALUE_DEBUG - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTripletToMemory(struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, - struct lst::Triplets& tripletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTripletToMemory(lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, + lst::Triplets& tripletsInGPU, unsigned int innerSegmentIndex, unsigned int outerSegmentIndex, uint16_t innerInnerLowerModuleIndex, uint16_t middleLowerModuleIndex, uint16_t outerOuterLowerModuleIndex, - float& zOut, - float& rtOut, - float& deltaPhiPos, - float& deltaPhi, - float& betaIn, - float& circleRadius, - float& circleCenterX, - float& circleCenterY, - float& zLo, - float& zHi, - float& rtLo, - float& rtHi, - float& zLoPointed, - float& zHiPointed, - float& sdlCut, - float& betaInCut, + float zOut, + float rtOut, + float betaIn, + float betaInCut, + float circleRadius, + float circleCenterX, + float circleCenterY, unsigned int tripletIndex) #else - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTripletToMemory(struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, - struct lst::Triplets& tripletsInGPU, + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addTripletToMemory(lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, + lst::Triplets& tripletsInGPU, unsigned int innerSegmentIndex, unsigned int outerSegmentIndex, uint16_t innerInnerLowerModuleIndex, uint16_t middleLowerModuleIndex, uint16_t outerOuterLowerModuleIndex, - float& betaIn, - float& circleRadius, - float& circleCenterX, - float& circleCenterY, + float betaIn, + float circleRadius, + float circleCenterX, + float circleCenterY, unsigned int tripletIndex) #endif { @@ -228,24 +198,15 @@ namespace lst { #ifdef CUT_VALUE_DEBUG tripletsInGPU.zOut[tripletIndex] = zOut; tripletsInGPU.rtOut[tripletIndex] = rtOut; - tripletsInGPU.deltaPhiPos[tripletIndex] = deltaPhiPos; - tripletsInGPU.deltaPhi[tripletIndex] = deltaPhi; - tripletsInGPU.zLo[tripletIndex] = zLo; - tripletsInGPU.zHi[tripletIndex] = zHi; - tripletsInGPU.rtLo[tripletIndex] = rtLo; - tripletsInGPU.rtHi[tripletIndex] = rtHi; - tripletsInGPU.zLoPointed[tripletIndex] = zLoPointed; - tripletsInGPU.zHiPointed[tripletIndex] = zHiPointed; - tripletsInGPU.sdlCut[tripletIndex] = sdlCut; tripletsInGPU.betaInCut[tripletIndex] = betaInCut; #endif }; template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passRZConstraint(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, uint16_t innerInnerLowerModuleIndex, uint16_t middleLowerModuleIndex, uint16_t outerOuterLowerModuleIndex, @@ -303,9 +264,9 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPointingConstraintBBB(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, uint16_t innerInnerLowerModuleIndex, uint16_t middleLowerModuleIndex, uint16_t outerOuterLowerModuleIndex, @@ -402,9 +363,9 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPointingConstraintBBE(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, uint16_t innerInnerLowerModuleIndex, uint16_t middleLowerModuleIndex, uint16_t outerOuterLowerModuleIndex, @@ -523,9 +484,9 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPointingConstraintEEE(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, uint16_t innerInnerLowerModuleIndex, uint16_t middleLowerModuleIndex, uint16_t outerOuterLowerModuleIndex, @@ -646,9 +607,9 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPointingConstraint(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, uint16_t innerInnerLowerModuleIndex, uint16_t middleLowerModuleIndex, uint16_t outerOuterLowerModuleIndex, @@ -747,19 +708,10 @@ namespace lst { }; template - ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeRadiusFromThreeAnchorHits(TAcc const& acc, - float x1, - float y1, - float x2, - float y2, - float x3, - float y3, - float& g, - float& f) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeRadiusFromThreeAnchorHits( + TAcc const& acc, float x1, float y1, float x2, float y2, float x3, float y3, float& g, float& f) { float radius = 0.f; - //writing manual code for computing radius, which obviously sucks - //TODO:Use fancy inbuilt libraries like cuBLAS or cuSOLVE for this! //(g,f) -> center //first anchor hit - (x1,y1), second anchor hit - (x2,y2), third anchor hit - (x3, y3) @@ -790,9 +742,9 @@ namespace lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runTripletConstraintsAndAlgo(TAcc const& acc, - struct lst::Modules& modulesInGPU, - struct lst::MiniDoublets& mdsInGPU, - struct lst::Segments& segmentsInGPU, + lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, uint16_t innerInnerLowerModuleIndex, uint16_t middleLowerModuleIndex, uint16_t outerOuterLowerModuleIndex, @@ -800,20 +752,11 @@ namespace lst { unsigned int outerSegmentIndex, float& zOut, float& rtOut, - float& deltaPhiPos, - float& deltaPhi, float& betaIn, + float& betaInCut, float& circleRadius, float& circleCenterX, - float& circleCenterY, - float& zLo, - float& zHi, - float& rtLo, - float& rtHi, - float& zLoPointed, - float& zHiPointed, - float& sdlCut, - float& betaInCut) { + float& circleCenterY) { //this cut reduces the number of candidates by a factor of 4, i.e., 3 out of 4 warps can end right here! if (segmentsInGPU.mdIndices[2 * innerSegmentIndex + 1] != segmentsInGPU.mdIndices[2 * outerSegmentIndex]) return false; @@ -866,11 +809,11 @@ namespace lst { struct createTripletsInGPUv2 { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::MiniDoublets mdsInGPU, - struct lst::Segments segmentsInGPU, - struct lst::Triplets tripletsInGPU, - struct lst::ObjectRanges rangesInGPU, + lst::Modules modulesInGPU, + lst::MiniDoublets mdsInGPU, + lst::Segments segmentsInGPU, + lst::Triplets tripletsInGPU, + lst::ObjectRanges rangesInGPU, uint16_t* index_gpu, uint16_t nonZeroModules) const { auto const globalThreadIdx = alpaka::getIdx(acc); @@ -903,8 +846,7 @@ namespace lst { uint16_t outerOuterLowerModuleIndex = segmentsInGPU.outerLowerModuleIndices[outerSegmentIndex]; - float zOut, rtOut, deltaPhiPos, deltaPhi, betaIn, circleRadius, circleCenterX, circleCenterY; - float zLo, zHi, rtLo, rtHi, zLoPointed, zHiPointed, sdlCut, betaInCut; + float zOut, rtOut, betaIn, betaInCut, circleRadius, circleCenterX, circleCenterY; bool success = runTripletConstraintsAndAlgo(acc, modulesInGPU, @@ -917,20 +859,11 @@ namespace lst { outerSegmentIndex, zOut, rtOut, - deltaPhiPos, - deltaPhi, betaIn, + betaInCut, circleRadius, circleCenterX, - circleCenterY, - zLo, - zHi, - rtLo, - rtHi, - zLoPointed, - zHiPointed, - sdlCut, - betaInCut); + circleCenterY); if (success) { unsigned int totOccupancyTriplets = alpaka::atomicOp( @@ -957,20 +890,11 @@ namespace lst { outerOuterLowerModuleIndex, zOut, rtOut, - deltaPhiPos, - deltaPhi, betaIn, + betaInCut, circleRadius, circleCenterX, circleCenterY, - zLo, - zHi, - rtLo, - rtHi, - zLoPointed, - zHiPointed, - sdlCut, - betaInCut, tripletIndex); #else addTripletToMemory(modulesInGPU, @@ -999,9 +923,9 @@ namespace lst { struct createTripletArrayRanges { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::ObjectRanges rangesInGPU, - struct lst::Segments segmentsInGPU) const { + lst::Modules modulesInGPU, + lst::ObjectRanges rangesInGPU, + lst::Segments segmentsInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -1096,9 +1020,9 @@ namespace lst { struct addTripletRangesToEventExplicit { template ALPAKA_FN_ACC void operator()(TAcc const& acc, - struct lst::Modules modulesInGPU, - struct lst::Triplets tripletsInGPU, - struct lst::ObjectRanges rangesInGPU) const { + lst::Modules modulesInGPU, + lst::Triplets tripletsInGPU, + lst::ObjectRanges rangesInGPU) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); From 5d5bd29c33581a0c0da2caf9cfecfdb6873754bc Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Tue, 30 Jul 2024 05:37:34 -0700 Subject: [PATCH 28/35] Split PixelTriplets to PixelQuintuplets --- RecoTracker/LSTCore/src/alpaka/Event.h | 1 + RecoTracker/LSTCore/src/alpaka/Kernels.h | 1 + .../LSTCore/src/alpaka/PixelQuintuplet.h | 948 ++++++++++++++++++ RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 947 ----------------- 4 files changed, 950 insertions(+), 947 deletions(-) create mode 100644 RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h diff --git a/RecoTracker/LSTCore/src/alpaka/Event.h b/RecoTracker/LSTCore/src/alpaka/Event.h index 58b152f43fb3f..01abacba7dc74 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.h +++ b/RecoTracker/LSTCore/src/alpaka/Event.h @@ -11,6 +11,7 @@ #include "Kernels.h" #include "Quintuplet.h" #include "MiniDoublet.h" +#include "PixelQuintuplet.h" #include "PixelTriplet.h" #include "TrackCandidate.h" diff --git a/RecoTracker/LSTCore/src/alpaka/Kernels.h b/RecoTracker/LSTCore/src/alpaka/Kernels.h index 775aba02c500b..8e3fa46c3ab6f 100644 --- a/RecoTracker/LSTCore/src/alpaka/Kernels.h +++ b/RecoTracker/LSTCore/src/alpaka/Kernels.h @@ -10,6 +10,7 @@ #include "Segment.h" #include "Triplet.h" #include "Quintuplet.h" +#include "PixelQuintuplet.h" #include "PixelTriplet.h" namespace lst { diff --git a/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h b/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h new file mode 100644 index 0000000000000..7d0a495444749 --- /dev/null +++ b/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h @@ -0,0 +1,948 @@ +#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" + +#include "Segment.h" +#include "MiniDoublet.h" +#include "Hit.h" +#include "Triplet.h" +#include "Quintuplet.h" +#include "PixelTriplet.h" + +namespace lst { + struct PixelQuintuplets { + unsigned int* pixelIndices; + unsigned int* T5Indices; + unsigned int* nPixelQuintuplets; + unsigned int* totOccupancyPixelQuintuplets; + bool* isDup; + FPX* score; + FPX* eta; + FPX* phi; + uint8_t* logicalLayers; + unsigned int* hitIndices; + uint16_t* lowerModuleIndices; + FPX* pixelRadius; + FPX* quintupletRadius; + FPX* centerX; + FPX* centerY; + float* rzChiSquared; + float* rPhiChiSquared; + float* rPhiChiSquaredInwards; + + template + void setData(TBuff& buf) { + pixelIndices = alpaka::getPtrNative(buf.pixelIndices_buf); + T5Indices = alpaka::getPtrNative(buf.T5Indices_buf); + nPixelQuintuplets = alpaka::getPtrNative(buf.nPixelQuintuplets_buf); + totOccupancyPixelQuintuplets = alpaka::getPtrNative(buf.totOccupancyPixelQuintuplets_buf); + isDup = alpaka::getPtrNative(buf.isDup_buf); + score = alpaka::getPtrNative(buf.score_buf); + eta = alpaka::getPtrNative(buf.eta_buf); + phi = alpaka::getPtrNative(buf.phi_buf); + logicalLayers = alpaka::getPtrNative(buf.logicalLayers_buf); + hitIndices = alpaka::getPtrNative(buf.hitIndices_buf); + lowerModuleIndices = alpaka::getPtrNative(buf.lowerModuleIndices_buf); + pixelRadius = alpaka::getPtrNative(buf.pixelRadius_buf); + quintupletRadius = alpaka::getPtrNative(buf.quintupletRadius_buf); + centerX = alpaka::getPtrNative(buf.centerX_buf); + centerY = alpaka::getPtrNative(buf.centerY_buf); + rzChiSquared = alpaka::getPtrNative(buf.rzChiSquared_buf); + rPhiChiSquared = alpaka::getPtrNative(buf.rPhiChiSquared_buf); + rPhiChiSquaredInwards = alpaka::getPtrNative(buf.rPhiChiSquaredInwards_buf); + } + }; + + template + struct PixelQuintupletsBuffer { + Buf pixelIndices_buf; + Buf T5Indices_buf; + Buf nPixelQuintuplets_buf; + Buf totOccupancyPixelQuintuplets_buf; + Buf isDup_buf; + Buf score_buf; + Buf eta_buf; + Buf phi_buf; + Buf logicalLayers_buf; + Buf hitIndices_buf; + Buf lowerModuleIndices_buf; + Buf pixelRadius_buf; + Buf quintupletRadius_buf; + Buf centerX_buf; + Buf centerY_buf; + Buf rzChiSquared_buf; + Buf rPhiChiSquared_buf; + Buf rPhiChiSquaredInwards_buf; + + PixelQuintuplets data_; + + template + PixelQuintupletsBuffer(unsigned int maxPixelQuintuplets, TDevAcc const& devAccIn, TQueue& queue) + : pixelIndices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), + T5Indices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), + nPixelQuintuplets_buf(allocBufWrapper(devAccIn, 1, queue)), + totOccupancyPixelQuintuplets_buf(allocBufWrapper(devAccIn, 1, queue)), + isDup_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), + 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)), + pixelRadius_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), + quintupletRadius_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), + centerX_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), + centerY_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), + rzChiSquared_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), + rPhiChiSquared_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), + rPhiChiSquaredInwards_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)) { + alpaka::memset(queue, nPixelQuintuplets_buf, 0u); + alpaka::memset(queue, totOccupancyPixelQuintuplets_buf, 0u); + alpaka::wait(queue); + } + + inline PixelQuintuplets const* data() const { return &data_; } + inline void setData(PixelQuintupletsBuffer& buf) { data_.setData(buf); } + }; + + ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelQuintupletToMemory(lst::Modules const& modulesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, + lst::Quintuplets const& quintupletsInGPU, + lst::PixelQuintuplets& pixelQuintupletsInGPU, + unsigned int pixelIndex, + unsigned int T5Index, + unsigned int pixelQuintupletIndex, + float rzChiSquared, + float rPhiChiSquared, + float rPhiChiSquaredInwards, + float score, + float eta, + float phi, + float pixelRadius, + float quintupletRadius, + float centerX, + float centerY) { + pixelQuintupletsInGPU.pixelIndices[pixelQuintupletIndex] = pixelIndex; + pixelQuintupletsInGPU.T5Indices[pixelQuintupletIndex] = T5Index; + pixelQuintupletsInGPU.isDup[pixelQuintupletIndex] = false; + pixelQuintupletsInGPU.score[pixelQuintupletIndex] = __F2H(score); + pixelQuintupletsInGPU.eta[pixelQuintupletIndex] = __F2H(eta); + pixelQuintupletsInGPU.phi[pixelQuintupletIndex] = __F2H(phi); + + pixelQuintupletsInGPU.pixelRadius[pixelQuintupletIndex] = __F2H(pixelRadius); + pixelQuintupletsInGPU.quintupletRadius[pixelQuintupletIndex] = __F2H(quintupletRadius); + 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] = + segmentsInGPU.innerLowerModuleIndices[pixelIndex]; + pixelQuintupletsInGPU.lowerModuleIndices[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] = + mdsInGPU.anchorHitIndices[pixelInnerMD]; + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 1] = + mdsInGPU.outerHitIndices[pixelInnerMD]; + pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 2] = + mdsInGPU.anchorHitIndices[pixelOuterMD]; + pixelQuintupletsInGPU.hitIndices[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.rzChiSquared[pixelQuintupletIndex] = rzChiSquared; + pixelQuintupletsInGPU.rPhiChiSquared[pixelQuintupletIndex] = rPhiChiSquared; + pixelQuintupletsInGPU.rPhiChiSquaredInwards[pixelQuintupletIndex] = rPhiChiSquaredInwards; + }; + + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RZChiSquaredCuts(lst::Modules const& modulesInGPU, + uint16_t lowerModuleIndex1, + uint16_t lowerModuleIndex2, + uint16_t lowerModuleIndex3, + uint16_t lowerModuleIndex4, + uint16_t lowerModuleIndex5, + float rzChiSquared) { + const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex1] == lst::TwoS); + const int layer2 = modulesInGPU.layers[lowerModuleIndex2] + + 6 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex2] == lst::TwoS); + const int layer3 = modulesInGPU.layers[lowerModuleIndex3] + + 6 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex3] == lst::TwoS); + const int layer4 = modulesInGPU.layers[lowerModuleIndex4] + + 6 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex4] == lst::TwoS); + const int layer5 = modulesInGPU.layers[lowerModuleIndex5] + + 6 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex5] == lst::TwoS); + + if (layer1 == 1 and layer2 == 2 and layer3 == 3) { + if (layer4 == 12 and layer5 == 13) { + return rzChiSquared < 451.141f; + } else if (layer4 == 4 and layer5 == 12) { + return rzChiSquared < 392.654f; + } else if (layer4 == 4 and layer5 == 5) { + return rzChiSquared < 225.322f; + } else if (layer4 == 7 and layer5 == 13) { + return rzChiSquared < 595.546f; + } else if (layer4 == 7 and layer5 == 8) { + return rzChiSquared < 196.111f; + } + } else if (layer1 == 1 and layer2 == 2 and layer3 == 7) { + if (layer4 == 13 and layer5 == 14) { + return rzChiSquared < 297.446f; + } else if (layer4 == 8 and layer5 == 14) { + return rzChiSquared < 451.141f; + } else if (layer4 == 8 and layer5 == 9) { + return rzChiSquared < 518.339f; + } + } else if (layer1 == 1 and layer2 == 7 and layer3 == 8) { + if (layer4 == 9 and layer5 == 10) { + return rzChiSquared < 341.75f; + } else if (layer4 == 9 and layer5 == 15) { + return rzChiSquared < 341.75f; + } + } else if (layer1 == 2 and layer2 == 3 and layer3 == 4) { + if (layer4 == 12 and layer5 == 13) { + return rzChiSquared < 392.655f; + } else if (layer4 == 5 and layer5 == 12) { + return rzChiSquared < 341.75f; + } else if (layer4 == 5 and layer5 == 6) { + return rzChiSquared < 112.537f; + } + } else if (layer1 == 2 and layer2 == 3 and layer4 == 7) { + if (layer4 == 13 and layer5 == 14) { + return rzChiSquared < 595.545f; + } else if (layer4 == 8 and layer5 == 14) { + return rzChiSquared < 74.198f; + } + } else if (layer1 == 2 and layer2 == 7 and layer3 == 8) { + if (layer4 == 14 and layer5 == 15) { + return rzChiSquared < 518.339f; + } else if (layer4 == 9 and layer5 == 10) { + return rzChiSquared < 8.046f; + } else if (layer4 == 9 and layer5 == 15) { + return rzChiSquared < 451.141f; + } + } else if (layer1 == 3 and layer2 == 7 and layer3 == 8 and layer4 == 14 and layer5 == 15) { + return rzChiSquared < 56.207f; + } else if (layer1 == 7 and layer2 == 8 and layer3 == 9) { + if (layer4 == 10 and layer5 == 11) { + return rzChiSquared < 64.578f; + } else if (layer4 == 10 and layer5 == 16) { + return rzChiSquared < 85.250f; + } else if (layer4 == 15 and layer5 == 16) { + return rzChiSquared < 85.250f; + } + } + return true; + }; + + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredCuts(lst::Modules const& modulesInGPU, + uint16_t lowerModuleIndex1, + uint16_t lowerModuleIndex2, + uint16_t lowerModuleIndex3, + uint16_t lowerModuleIndex4, + uint16_t lowerModuleIndex5, + float rPhiChiSquared) { + const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex1] == lst::TwoS); + const int layer2 = modulesInGPU.layers[lowerModuleIndex2] + + 6 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex2] == lst::TwoS); + const int layer3 = modulesInGPU.layers[lowerModuleIndex3] + + 6 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex3] == lst::TwoS); + const int layer4 = modulesInGPU.layers[lowerModuleIndex4] + + 6 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex4] == lst::TwoS); + const int layer5 = modulesInGPU.layers[lowerModuleIndex5] + + 6 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex5] == lst::TwoS); + + if (layer1 == 1 and layer2 == 2 and layer3 == 3) { + if (layer4 == 12 and layer5 == 13) { + return rPhiChiSquared < 48.921f; + } else if (layer4 == 4 and layer5 == 12) { + return rPhiChiSquared < 97.948f; + } else if (layer4 == 4 and layer5 == 5) { + return rPhiChiSquared < 129.3f; + } else if (layer4 == 7 and layer5 == 13) { + return rPhiChiSquared < 56.21f; + } else if (layer4 == 7 and layer5 == 8) { + return rPhiChiSquared < 74.198f; + } + } else if (layer1 == 1 and layer2 == 2 and layer3 == 7) { + if (layer4 == 13 and layer5 == 14) { + return rPhiChiSquared < 21.265f; + } else if (layer4 == 8 and layer5 == 14) { + return rPhiChiSquared < 37.058f; + } else if (layer4 == 8 and layer5 == 9) { + return rPhiChiSquared < 42.578f; + } + } else if (layer1 == 1 and layer2 == 7 and layer3 == 8) { + if (layer4 == 9 and layer5 == 10) { + return rPhiChiSquared < 32.253f; + } else if (layer4 == 9 and layer5 == 15) { + return rPhiChiSquared < 37.058f; + } + } else if (layer1 == 2 and layer2 == 3 and layer3 == 4) { + if (layer4 == 12 and layer5 == 13) { + return rPhiChiSquared < 97.947f; + } else if (layer4 == 5 and layer5 == 12) { + return rPhiChiSquared < 129.3f; + } else if (layer4 == 5 and layer5 == 6) { + return rPhiChiSquared < 170.68f; + } + } else if (layer1 == 2 and layer2 == 3 and layer3 == 7) { + if (layer4 == 13 and layer5 == 14) { + return rPhiChiSquared < 48.92f; + } else if (layer4 == 8 and layer5 == 14) { + return rPhiChiSquared < 74.2f; + } + } else if (layer1 == 2 and layer2 == 7 and layer3 == 8) { + if (layer4 == 14 and layer5 == 15) { + return rPhiChiSquared < 42.58f; + } else if (layer4 == 9 and layer5 == 10) { + return rPhiChiSquared < 37.06f; + } else if (layer4 == 9 and layer5 == 15) { + return rPhiChiSquared < 48.92f; + } + } else if (layer1 == 3 and layer2 == 7 and layer3 == 8 and layer4 == 14 and layer5 == 15) { + return rPhiChiSquared < 85.25f; + } else if (layer1 == 7 and layer2 == 8 and layer3 == 9) { + if (layer4 == 10 and layer5 == 11) { + return rPhiChiSquared < 42.58f; + } else if (layer4 == 10 and layer5 == 16) { + return rPhiChiSquared < 37.06f; + } else if (layer4 == 15 and layer5 == 16) { + return rPhiChiSquared < 37.06f; + } + } + return true; + }; + + template + ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeChiSquaredpT5(TAcc const& acc, + unsigned int nPoints, + float* xs, + float* ys, + float* delta1, + float* delta2, + float* slopes, + bool* isFlat, + float g, + float f, + float radius) { + /* + Given values of (g, f, radius) and a set of points (and its uncertainties) compute chi squared + */ + float c = g * g + f * f - radius * radius; + float chiSquared = 0.f; + float absArctanSlope, angleM, xPrime, yPrime, sigma2; + for (size_t i = 0; i < nPoints; i++) { + absArctanSlope = ((slopes[i] != lst::lst_INF) ? alpaka::math::abs(acc, alpaka::math::atan(acc, slopes[i])) + : 0.5f * float(M_PI)); + if (xs[i] > 0 and ys[i] > 0) { + angleM = 0.5f * float(M_PI) - absArctanSlope; + } else if (xs[i] < 0 and ys[i] > 0) { + angleM = absArctanSlope + 0.5f * float(M_PI); + } else if (xs[i] < 0 and ys[i] < 0) { + angleM = -(absArctanSlope + 0.5f * float(M_PI)); + } else if (xs[i] > 0 and ys[i] < 0) { + angleM = -(0.5f * float(M_PI) - absArctanSlope); + } else { + angleM = 0; + } + if (not isFlat[i]) { + xPrime = xs[i] * alpaka::math::cos(acc, angleM) + ys[i] * alpaka::math::sin(acc, angleM); + yPrime = ys[i] * alpaka::math::cos(acc, angleM) - xs[i] * alpaka::math::sin(acc, angleM); + } else { + xPrime = xs[i]; + yPrime = ys[i]; + } + sigma2 = 4 * ((xPrime * delta1[i]) * (xPrime * delta1[i]) + (yPrime * delta2[i]) * (yPrime * delta2[i])); + chiSquared += (xs[i] * xs[i] + ys[i] * ys[i] - 2 * g * xs[i] - 2 * f * ys[i] + c) * + (xs[i] * xs[i] + ys[i] * ys[i] - 2 * g * xs[i] - 2 * f * ys[i] + c) / (sigma2); + } + return chiSquared; + }; + + template + ALPAKA_FN_ACC ALPAKA_FN_INLINE void computeSigmasForRegression_pT5(TAcc const& acc, + lst::Modules const& modulesInGPU, + const uint16_t* lowerModuleIndices, + float* delta1, + float* delta2, + float* slopes, + bool* isFlat, + unsigned int nPoints = 5, + bool anchorHits = true) { + /* + bool anchorHits required to deal with a weird edge case wherein + the hits ultimately used in the regression are anchor hits, but the + lower modules need not all be Pixel Modules (in case of PS). Similarly, + when we compute the chi squared for the non-anchor hits, the "partner module" + need not always be a PS strip module, but all non-anchor hits sit on strip + modules. + */ + ModuleType moduleType; + short moduleSubdet, moduleSide; + float inv1 = kWidthPS / kWidth2S; + float inv2 = kPixelPSZpitch / kWidth2S; + float inv3 = kStripPSZpitch / kWidth2S; + for (size_t i = 0; i < nPoints; i++) { + moduleType = modulesInGPU.moduleType[lowerModuleIndices[i]]; + moduleSubdet = modulesInGPU.subdets[lowerModuleIndices[i]]; + moduleSide = modulesInGPU.sides[lowerModuleIndices[i]]; + const float& drdz = modulesInGPU.drdzs[lowerModuleIndices[i]]; + slopes[i] = modulesInGPU.dxdys[lowerModuleIndices[i]]; + //category 1 - barrel PS flat + if (moduleSubdet == Barrel and moduleType == PS and moduleSide == Center) { + delta1[i] = inv1; + delta2[i] = inv1; + slopes[i] = -999.f; + isFlat[i] = true; + } + //category 2 - barrel 2S + else if (moduleSubdet == Barrel and moduleType == TwoS) { + delta1[i] = 1.f; + delta2[i] = 1.f; + slopes[i] = -999.f; + isFlat[i] = true; + } + //category 3 - barrel PS tilted + else if (moduleSubdet == Barrel and moduleType == PS and moduleSide != Center) { + delta1[i] = inv1; + isFlat[i] = false; + + if (anchorHits) { + delta2[i] = (inv2 * drdz / alpaka::math::sqrt(acc, 1 + drdz * drdz)); + } else { + delta2[i] = (inv3 * drdz / alpaka::math::sqrt(acc, 1 + drdz * drdz)); + } + } + //category 4 - endcap PS + else if (moduleSubdet == Endcap and moduleType == PS) { + delta1[i] = inv1; + isFlat[i] = false; + /* + despite the type of the module layer of the lower module index, + all anchor hits are on the pixel side and all non-anchor hits are + on the strip side! + */ + if (anchorHits) { + delta2[i] = inv2; + } else { + delta2[i] = inv3; + } + } + //category 5 - endcap 2S + else if (moduleSubdet == Endcap and moduleType == TwoS) { + delta1[i] = 1.f; + delta2[i] = 500.f * inv1; + isFlat[i] = false; + } +#ifdef WARNINGS + else { + printf("ERROR!!!!! I SHOULDN'T BE HERE!!!! subdet = %d, type = %d, side = %d\n", + moduleSubdet, + moduleType, + moduleSide); + } +#endif + } + }; + + template + ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RPhiChiSquared(TAcc const& acc, + lst::Modules const& modulesInGPU, + uint16_t* lowerModuleIndices, + float g, + float f, + float radius, + float* xs, + float* ys) { + /* + Compute circle parameters from 3 pixel hits, and then use them to compute the chi squared for the outer hits + */ + + float delta1[5], delta2[5], slopes[5]; + bool isFlat[5]; + float chiSquared = 0; + + computeSigmasForRegression_pT5(acc, modulesInGPU, lowerModuleIndices, delta1, delta2, slopes, isFlat); + chiSquared = computeChiSquaredpT5(acc, 5, xs, ys, delta1, delta2, slopes, isFlat, g, f, radius); + + return chiSquared; + }; + + ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RPhiChiSquaredInwards( + float g, float f, float r, float* xPix, float* yPix) { + /* + Using the computed regression center and radius, compute the chi squared for the pixels + */ + + float chiSquared = 0; + for (size_t i = 0; i < 2; i++) { + float residual = (xPix[i] - g) * (xPix[i] - g) + (yPix[i] - f) * (yPix[i] - f) - r * r; + chiSquared += residual * residual; + } + chiSquared *= 0.5f; + return chiSquared; + }; + + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredInwardsCuts(lst::Modules const& modulesInGPU, + uint16_t lowerModuleIndex1, + uint16_t lowerModuleIndex2, + uint16_t lowerModuleIndex3, + uint16_t lowerModuleIndex4, + uint16_t lowerModuleIndex5, + float rPhiChiSquared) { + const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + + 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex1] == lst::TwoS); + const int layer2 = modulesInGPU.layers[lowerModuleIndex2] + + 6 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex2] == lst::TwoS); + const int layer3 = modulesInGPU.layers[lowerModuleIndex3] + + 6 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex3] == lst::TwoS); + const int layer4 = modulesInGPU.layers[lowerModuleIndex4] + + 6 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex4] == lst::TwoS); + const int layer5 = modulesInGPU.layers[lowerModuleIndex5] + + 6 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) + + 5 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap and + modulesInGPU.moduleType[lowerModuleIndex5] == lst::TwoS); + + if (layer1 == 1 and layer2 == 2 and layer3 == 3) { + if (layer4 == 12 and layer5 == 13) { + return rPhiChiSquared < 451.141f; + } else if (layer4 == 4 and layer5 == 12) { + return rPhiChiSquared < 786.173f; + } else if (layer4 == 4 and layer5 == 5) { + return rPhiChiSquared < 595.545f; + } else if (layer4 == 7 and layer5 == 13) { + return rPhiChiSquared < 581.339f; + } else if (layer4 == 7 and layer5 == 8) { + return rPhiChiSquared < 112.537f; + } + } else if (layer1 == 1 and layer2 == 2 and layer3 == 7) { + if (layer4 == 13 and layer5 == 14) { + return rPhiChiSquared < 225.322f; + } else if (layer4 == 8 and layer5 == 14) { + return rPhiChiSquared < 1192.402f; + } else if (layer4 == 8 and layer5 == 9) { + return rPhiChiSquared < 786.173f; + } + } else if (layer1 == 1 and layer2 == 7 and layer3 == 8) { + if (layer4 == 9 and layer5 == 10) { + return rPhiChiSquared < 1037.817f; + } else if (layer4 == 9 and layer5 == 15) { + return rPhiChiSquared < 1808.536f; + } + } else if (layer1 == 2 and layer2 == 3 and layer3 == 4) { + if (layer4 == 12 and layer5 == 13) { + return rPhiChiSquared < 684.253f; + } else if (layer4 == 5 and layer5 == 12) { + return rPhiChiSquared < 684.253f; + } else if (layer4 == 5 and layer5 == 6) { + return rPhiChiSquared < 684.253f; + } + } else if (layer1 == 2 and layer2 == 3 and layer3 == 7) { + if (layer4 == 13 and layer5 == 14) { + return rPhiChiSquared < 451.141f; + } else if (layer4 == 8 and layer5 == 14) { + return rPhiChiSquared < 518.34f; + } + } else if (layer1 == 2 and layer2 == 7 and layer3 == 8) { + if (layer4 == 14 and layer5 == 15) { + return rPhiChiSquared < 2077.92f; + } else if (layer4 == 9 and layer5 == 10) { + return rPhiChiSquared < 74.20f; + } else if (layer4 == 9 and layer5 == 15) { + return rPhiChiSquared < 1808.536f; + } + } else if (layer1 == 3 and layer2 == 7 and layer3 == 8 and layer4 == 14 and layer5 == 15) { + return rPhiChiSquared < 786.173f; + } else if (layer1 == 7 and layer2 == 8 and layer3 == 9) { + if (layer4 == 10 and layer5 == 11) { + return rPhiChiSquared < 1574.076f; + } else if (layer4 == 10 and layer5 == 16) { + return rPhiChiSquared < 5492.11f; + } else if (layer4 == 15 and layer5 == 16) { + return rPhiChiSquared < 2743.037f; + } + } + return true; + }; + + template + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runPixelQuintupletDefaultAlgo(TAcc const& acc, + lst::Modules const& modulesInGPU, + lst::ObjectRanges const& rangesInGPU, + lst::MiniDoublets const& mdsInGPU, + lst::Segments const& segmentsInGPU, + lst::Triplets const& tripletsInGPU, + lst::Quintuplets const& quintupletsInGPU, + unsigned int pixelSegmentIndex, + unsigned int quintupletIndex, + float& rzChiSquared, + float& rPhiChiSquared, + float& rPhiChiSquaredInwards, + float& pixelRadius, + float& quintupletRadius, + float& centerX, + float& centerY, + unsigned int pixelSegmentArrayIndex) { + unsigned int T5InnerT3Index = quintupletsInGPU.tripletIndices[2 * quintupletIndex]; + unsigned int T5OuterT3Index = quintupletsInGPU.tripletIndices[2 * quintupletIndex + 1]; + + float pixelRadiusTemp, tripletRadius, rPhiChiSquaredTemp, rzChiSquaredTemp, rPhiChiSquaredInwardsTemp, centerXTemp, + centerYTemp; + + if (not runPixelTripletDefaultAlgo(acc, + modulesInGPU, + rangesInGPU, + mdsInGPU, + segmentsInGPU, + tripletsInGPU, + pixelSegmentIndex, + T5InnerT3Index, + pixelRadiusTemp, + tripletRadius, + centerXTemp, + centerYTemp, + rzChiSquaredTemp, + rPhiChiSquaredTemp, + rPhiChiSquaredInwardsTemp, + false)) + return false; + + unsigned int firstSegmentIndex = tripletsInGPU.segmentIndices[2 * T5InnerT3Index]; + unsigned int secondSegmentIndex = tripletsInGPU.segmentIndices[2 * T5InnerT3Index + 1]; + unsigned int thirdSegmentIndex = tripletsInGPU.segmentIndices[2 * T5OuterT3Index]; + unsigned int fourthSegmentIndex = tripletsInGPU.segmentIndices[2 * T5OuterT3Index + 1]; + + unsigned int pixelInnerMDIndex = segmentsInGPU.mdIndices[2 * pixelSegmentIndex]; + unsigned int pixelOuterMDIndex = segmentsInGPU.mdIndices[2 * pixelSegmentIndex + 1]; + unsigned int firstMDIndex = segmentsInGPU.mdIndices[2 * firstSegmentIndex]; + unsigned int secondMDIndex = segmentsInGPU.mdIndices[2 * secondSegmentIndex]; + unsigned int thirdMDIndex = segmentsInGPU.mdIndices[2 * secondSegmentIndex + 1]; + 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 lowerModuleIndices[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], + mdsInGPU.anchorZ[secondMDIndex], + mdsInGPU.anchorZ[thirdMDIndex], + mdsInGPU.anchorZ[fourthMDIndex], + mdsInGPU.anchorZ[fifthMDIndex]}; + float rts[Params_T5::kLayers] = {mdsInGPU.anchorRt[firstMDIndex], + mdsInGPU.anchorRt[secondMDIndex], + mdsInGPU.anchorRt[thirdMDIndex], + mdsInGPU.anchorRt[fourthMDIndex], + mdsInGPU.anchorRt[fifthMDIndex]}; + + rzChiSquared = computePT5RZChiSquared(acc, modulesInGPU, lowerModuleIndices, rtPix, zPix, rts, zs); + + if (/*pixelRadius*/ 0 < 5.0f * kR1GeVf) { // FIXME: pixelRadius is not defined yet + if (not passPT5RZChiSquaredCuts(modulesInGPU, + lowerModuleIndex1, + lowerModuleIndex2, + lowerModuleIndex3, + lowerModuleIndex4, + lowerModuleIndex5, + rzChiSquared)) + return false; + } + + //outer T5 + float xs[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], + mdsInGPU.anchorY[secondMDIndex], + mdsInGPU.anchorY[thirdMDIndex], + mdsInGPU.anchorY[fourthMDIndex], + mdsInGPU.anchorY[fifthMDIndex]}; + + //get the appropriate radii and centers + centerX = segmentsInGPU.circleCenterX[pixelSegmentArrayIndex]; + centerY = segmentsInGPU.circleCenterY[pixelSegmentArrayIndex]; + pixelRadius = segmentsInGPU.circleRadius[pixelSegmentArrayIndex]; + + float T5CenterX = quintupletsInGPU.regressionG[quintupletIndex]; + float T5CenterY = quintupletsInGPU.regressionF[quintupletIndex]; + quintupletRadius = quintupletsInGPU.regressionRadius[quintupletIndex]; + + rPhiChiSquared = + computePT5RPhiChiSquared(acc, modulesInGPU, lowerModuleIndices, centerX, centerY, pixelRadius, xs, ys); + + if (pixelRadius < 5.0f * kR1GeVf) { + if (not passPT5RPhiChiSquaredCuts(modulesInGPU, + lowerModuleIndex1, + lowerModuleIndex2, + lowerModuleIndex3, + lowerModuleIndex4, + lowerModuleIndex5, + rPhiChiSquared)) + return false; + } + + float xPix[] = {mdsInGPU.anchorX[pixelInnerMDIndex], mdsInGPU.anchorX[pixelOuterMDIndex]}; + float yPix[] = {mdsInGPU.anchorY[pixelInnerMDIndex], mdsInGPU.anchorY[pixelOuterMDIndex]}; + rPhiChiSquaredInwards = computePT5RPhiChiSquaredInwards(T5CenterX, T5CenterY, quintupletRadius, xPix, yPix); + + if (quintupletsInGPU.regressionRadius[quintupletIndex] < 5.0f * kR1GeVf) { + if (not passPT5RPhiChiSquaredInwardsCuts(modulesInGPU, + lowerModuleIndex1, + lowerModuleIndex2, + lowerModuleIndex3, + lowerModuleIndex4, + lowerModuleIndex5, + rPhiChiSquaredInwards)) + return false; + } + //trusting the T5 regression center to also be a good estimate.. + centerX = (centerX + T5CenterX) / 2; + centerY = (centerY + T5CenterY) / 2; + + return true; + }; + + template + ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RZChiSquared(TAcc const& acc, + lst::Modules const& modulesInGPU, + uint16_t* lowerModuleIndices, + float* rtPix, + float* zPix, + float* rts, + float* zs) { + //use the two anchor hits of the pixel segment to compute the slope + //then compute the pseudo chi squared of the five outer hits + + float slope = (zPix[1] - zPix[0]) / (rtPix[1] - rtPix[0]); + float residual = 0; + float error2 = 0; + //hardcoded array indices!!! + float RMSE = 0; + 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]; + const int moduleSubdet = modulesInGPU.subdets[lowerModuleIndex]; + + residual = (moduleSubdet == lst::Barrel) ? (zs[i] - zPix[0]) - slope * (rts[i] - rtPix[0]) + : (rts[i] - rtPix[0]) - (zs[i] - zPix[0]) / slope; + const float& drdz = modulesInGPU.drdzs[lowerModuleIndex]; + //PS Modules + if (moduleType == 0) { + error2 = kPixelPSZpitch * kPixelPSZpitch; + } else //2S modules + { + error2 = kStrip2SZpitch * kStrip2SZpitch; + } + + //special dispensation to tilted PS modules! + if (moduleType == 0 and moduleSubdet == lst::Barrel and moduleSide != Center) { + error2 /= (1.f + drdz * drdz); + } + RMSE += (residual * residual) / error2; + } + + RMSE = alpaka::math::sqrt(acc, 0.2f * RMSE); // Divided by the degree of freedom 5. + return RMSE; + }; + + struct createPixelQuintupletsInGPUFromMapv2 { + template + ALPAKA_FN_ACC void operator()(TAcc const& acc, + lst::Modules modulesInGPU, + lst::MiniDoublets mdsInGPU, + lst::Segments segmentsInGPU, + lst::Triplets tripletsInGPU, + lst::Quintuplets quintupletsInGPU, + lst::PixelQuintuplets pixelQuintupletsInGPU, + unsigned int* connectedPixelSize, + unsigned int* connectedPixelIndex, + unsigned int nPixelSegments, + lst::ObjectRanges rangesInGPU) const { + auto const globalBlockIdx = alpaka::getIdx(acc); + auto const globalThreadIdx = alpaka::getIdx(acc); + auto const gridBlockExtent = alpaka::getWorkDiv(acc); + auto const gridThreadExtent = alpaka::getWorkDiv(acc); + + for (unsigned int i_pLS = globalThreadIdx[1]; i_pLS < nPixelSegments; i_pLS += gridThreadExtent[1]) { + auto iLSModule_max = connectedPixelIndex[i_pLS] + connectedPixelSize[i_pLS]; + for (unsigned int iLSModule = connectedPixelIndex[i_pLS] + globalBlockIdx[0]; iLSModule < iLSModule_max; + iLSModule += gridBlockExtent[0]) { + //these are actual module indices + uint16_t quintupletLowerModuleIndex = modulesInGPU.connectedPixels[iLSModule]; + if (quintupletLowerModuleIndex >= *modulesInGPU.nLowerModules) + continue; + if (modulesInGPU.moduleType[quintupletLowerModuleIndex] == lst::TwoS) + continue; + uint16_t pixelModuleIndex = *modulesInGPU.nLowerModules; + if (segmentsInGPU.isDup[i_pLS]) + continue; + unsigned int nOuterQuintuplets = quintupletsInGPU.nQuintuplets[quintupletLowerModuleIndex]; + + if (nOuterQuintuplets == 0) + continue; + + unsigned int pixelSegmentIndex = rangesInGPU.segmentModuleIndices[pixelModuleIndex] + i_pLS; + + //fetch the quintuplet + for (unsigned int outerQuintupletArrayIndex = globalThreadIdx[2]; + outerQuintupletArrayIndex < nOuterQuintuplets; + outerQuintupletArrayIndex += gridThreadExtent[2]) { + unsigned int quintupletIndex = + rangesInGPU.quintupletModuleIndices[quintupletLowerModuleIndex] + outerQuintupletArrayIndex; + + if (quintupletsInGPU.isDup[quintupletIndex]) + continue; + + float rzChiSquared, rPhiChiSquared, rPhiChiSquaredInwards, pixelRadius, quintupletRadius, centerX, centerY; + + bool success = runPixelQuintupletDefaultAlgo(acc, + modulesInGPU, + rangesInGPU, + mdsInGPU, + segmentsInGPU, + tripletsInGPU, + quintupletsInGPU, + pixelSegmentIndex, + quintupletIndex, + rzChiSquared, + rPhiChiSquared, + rPhiChiSquaredInwards, + pixelRadius, + quintupletRadius, + centerX, + centerY, + static_cast(i_pLS)); + if (success) { + unsigned int totOccupancyPixelQuintuplets = + alpaka::atomicOp(acc, pixelQuintupletsInGPU.totOccupancyPixelQuintuplets, 1u); + if (totOccupancyPixelQuintuplets >= n_max_pixel_quintuplets) { +#ifdef WARNINGS + printf("Pixel Quintuplet excess alert!\n"); +#endif + } else { + unsigned int pixelQuintupletIndex = + alpaka::atomicOp(acc, pixelQuintupletsInGPU.nPixelQuintuplets, 1u); + float eta = __H2F(quintupletsInGPU.eta[quintupletIndex]); + float phi = __H2F(quintupletsInGPU.phi[quintupletIndex]); + + addPixelQuintupletToMemory(modulesInGPU, + mdsInGPU, + segmentsInGPU, + quintupletsInGPU, + pixelQuintupletsInGPU, + pixelSegmentIndex, + quintupletIndex, + pixelQuintupletIndex, + rzChiSquared, + rPhiChiSquared, + rPhiChiSquaredInwards, + rPhiChiSquared, + eta, + phi, + pixelRadius, + quintupletRadius, + centerX, + centerY); + + tripletsInGPU.partOfPT5[quintupletsInGPU.tripletIndices[2 * quintupletIndex]] = true; + tripletsInGPU.partOfPT5[quintupletsInGPU.tripletIndices[2 * quintupletIndex + 1]] = true; + segmentsInGPU.partOfPT5[i_pLS] = true; + quintupletsInGPU.partOfPT5[quintupletIndex] = true; + } // tot occupancy + } // end success + } // end T5 + } // end iLS + } // end i_pLS + } + }; +} // namespace lst +#endif + diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index d57c866b49d8d..d05c9412d3061 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -1695,950 +1695,3 @@ namespace lst { } // namespace lst #endif -#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" - -#include "Segment.h" -#include "MiniDoublet.h" -#include "Hit.h" -#include "Triplet.h" -#include "Quintuplet.h" -#include "PixelTriplet.h" - -namespace lst { - struct PixelQuintuplets { - unsigned int* pixelIndices; - unsigned int* T5Indices; - unsigned int* nPixelQuintuplets; - unsigned int* totOccupancyPixelQuintuplets; - bool* isDup; - FPX* score; - FPX* eta; - FPX* phi; - uint8_t* logicalLayers; - unsigned int* hitIndices; - uint16_t* lowerModuleIndices; - FPX* pixelRadius; - FPX* quintupletRadius; - FPX* centerX; - FPX* centerY; - float* rzChiSquared; - float* rPhiChiSquared; - float* rPhiChiSquaredInwards; - - template - void setData(TBuff& buf) { - pixelIndices = alpaka::getPtrNative(buf.pixelIndices_buf); - T5Indices = alpaka::getPtrNative(buf.T5Indices_buf); - nPixelQuintuplets = alpaka::getPtrNative(buf.nPixelQuintuplets_buf); - totOccupancyPixelQuintuplets = alpaka::getPtrNative(buf.totOccupancyPixelQuintuplets_buf); - isDup = alpaka::getPtrNative(buf.isDup_buf); - score = alpaka::getPtrNative(buf.score_buf); - eta = alpaka::getPtrNative(buf.eta_buf); - phi = alpaka::getPtrNative(buf.phi_buf); - logicalLayers = alpaka::getPtrNative(buf.logicalLayers_buf); - hitIndices = alpaka::getPtrNative(buf.hitIndices_buf); - lowerModuleIndices = alpaka::getPtrNative(buf.lowerModuleIndices_buf); - pixelRadius = alpaka::getPtrNative(buf.pixelRadius_buf); - quintupletRadius = alpaka::getPtrNative(buf.quintupletRadius_buf); - centerX = alpaka::getPtrNative(buf.centerX_buf); - centerY = alpaka::getPtrNative(buf.centerY_buf); - rzChiSquared = alpaka::getPtrNative(buf.rzChiSquared_buf); - rPhiChiSquared = alpaka::getPtrNative(buf.rPhiChiSquared_buf); - rPhiChiSquaredInwards = alpaka::getPtrNative(buf.rPhiChiSquaredInwards_buf); - } - }; - - template - struct PixelQuintupletsBuffer { - Buf pixelIndices_buf; - Buf T5Indices_buf; - Buf nPixelQuintuplets_buf; - Buf totOccupancyPixelQuintuplets_buf; - Buf isDup_buf; - Buf score_buf; - Buf eta_buf; - Buf phi_buf; - Buf logicalLayers_buf; - Buf hitIndices_buf; - Buf lowerModuleIndices_buf; - Buf pixelRadius_buf; - Buf quintupletRadius_buf; - Buf centerX_buf; - Buf centerY_buf; - Buf rzChiSquared_buf; - Buf rPhiChiSquared_buf; - Buf rPhiChiSquaredInwards_buf; - - PixelQuintuplets data_; - - template - PixelQuintupletsBuffer(unsigned int maxPixelQuintuplets, TDevAcc const& devAccIn, TQueue& queue) - : pixelIndices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), - T5Indices_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), - nPixelQuintuplets_buf(allocBufWrapper(devAccIn, 1, queue)), - totOccupancyPixelQuintuplets_buf(allocBufWrapper(devAccIn, 1, queue)), - isDup_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), - 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)), - pixelRadius_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), - quintupletRadius_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), - centerX_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), - centerY_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), - rzChiSquared_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), - rPhiChiSquared_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)), - rPhiChiSquaredInwards_buf(allocBufWrapper(devAccIn, maxPixelQuintuplets, queue)) { - alpaka::memset(queue, nPixelQuintuplets_buf, 0u); - alpaka::memset(queue, totOccupancyPixelQuintuplets_buf, 0u); - alpaka::wait(queue); - } - - inline PixelQuintuplets const* data() const { return &data_; } - inline void setData(PixelQuintupletsBuffer& buf) { data_.setData(buf); } - }; - - ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelQuintupletToMemory(lst::Modules const& modulesInGPU, - lst::MiniDoublets const& mdsInGPU, - lst::Segments const& segmentsInGPU, - lst::Quintuplets const& quintupletsInGPU, - lst::PixelQuintuplets& pixelQuintupletsInGPU, - unsigned int pixelIndex, - unsigned int T5Index, - unsigned int pixelQuintupletIndex, - float rzChiSquared, - float rPhiChiSquared, - float rPhiChiSquaredInwards, - float score, - float eta, - float phi, - float pixelRadius, - float quintupletRadius, - float centerX, - float centerY) { - pixelQuintupletsInGPU.pixelIndices[pixelQuintupletIndex] = pixelIndex; - pixelQuintupletsInGPU.T5Indices[pixelQuintupletIndex] = T5Index; - pixelQuintupletsInGPU.isDup[pixelQuintupletIndex] = false; - pixelQuintupletsInGPU.score[pixelQuintupletIndex] = __F2H(score); - pixelQuintupletsInGPU.eta[pixelQuintupletIndex] = __F2H(eta); - pixelQuintupletsInGPU.phi[pixelQuintupletIndex] = __F2H(phi); - - pixelQuintupletsInGPU.pixelRadius[pixelQuintupletIndex] = __F2H(pixelRadius); - pixelQuintupletsInGPU.quintupletRadius[pixelQuintupletIndex] = __F2H(quintupletRadius); - 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] = - segmentsInGPU.innerLowerModuleIndices[pixelIndex]; - pixelQuintupletsInGPU.lowerModuleIndices[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] = - mdsInGPU.anchorHitIndices[pixelInnerMD]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 1] = - mdsInGPU.outerHitIndices[pixelInnerMD]; - pixelQuintupletsInGPU.hitIndices[Params_pT5::kHits * pixelQuintupletIndex + 2] = - mdsInGPU.anchorHitIndices[pixelOuterMD]; - pixelQuintupletsInGPU.hitIndices[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.rzChiSquared[pixelQuintupletIndex] = rzChiSquared; - pixelQuintupletsInGPU.rPhiChiSquared[pixelQuintupletIndex] = rPhiChiSquared; - pixelQuintupletsInGPU.rPhiChiSquaredInwards[pixelQuintupletIndex] = rPhiChiSquaredInwards; - }; - - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RZChiSquaredCuts(lst::Modules const& modulesInGPU, - uint16_t lowerModuleIndex1, - uint16_t lowerModuleIndex2, - uint16_t lowerModuleIndex3, - uint16_t lowerModuleIndex4, - uint16_t lowerModuleIndex5, - float rzChiSquared) { - const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + - 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex1] == lst::TwoS); - const int layer2 = modulesInGPU.layers[lowerModuleIndex2] + - 6 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex2] == lst::TwoS); - const int layer3 = modulesInGPU.layers[lowerModuleIndex3] + - 6 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex3] == lst::TwoS); - const int layer4 = modulesInGPU.layers[lowerModuleIndex4] + - 6 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex4] == lst::TwoS); - const int layer5 = modulesInGPU.layers[lowerModuleIndex5] + - 6 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex5] == lst::TwoS); - - if (layer1 == 1 and layer2 == 2 and layer3 == 3) { - if (layer4 == 12 and layer5 == 13) { - return rzChiSquared < 451.141f; - } else if (layer4 == 4 and layer5 == 12) { - return rzChiSquared < 392.654f; - } else if (layer4 == 4 and layer5 == 5) { - return rzChiSquared < 225.322f; - } else if (layer4 == 7 and layer5 == 13) { - return rzChiSquared < 595.546f; - } else if (layer4 == 7 and layer5 == 8) { - return rzChiSquared < 196.111f; - } - } else if (layer1 == 1 and layer2 == 2 and layer3 == 7) { - if (layer4 == 13 and layer5 == 14) { - return rzChiSquared < 297.446f; - } else if (layer4 == 8 and layer5 == 14) { - return rzChiSquared < 451.141f; - } else if (layer4 == 8 and layer5 == 9) { - return rzChiSquared < 518.339f; - } - } else if (layer1 == 1 and layer2 == 7 and layer3 == 8) { - if (layer4 == 9 and layer5 == 10) { - return rzChiSquared < 341.75f; - } else if (layer4 == 9 and layer5 == 15) { - return rzChiSquared < 341.75f; - } - } else if (layer1 == 2 and layer2 == 3 and layer3 == 4) { - if (layer4 == 12 and layer5 == 13) { - return rzChiSquared < 392.655f; - } else if (layer4 == 5 and layer5 == 12) { - return rzChiSquared < 341.75f; - } else if (layer4 == 5 and layer5 == 6) { - return rzChiSquared < 112.537f; - } - } else if (layer1 == 2 and layer2 == 3 and layer4 == 7) { - if (layer4 == 13 and layer5 == 14) { - return rzChiSquared < 595.545f; - } else if (layer4 == 8 and layer5 == 14) { - return rzChiSquared < 74.198f; - } - } else if (layer1 == 2 and layer2 == 7 and layer3 == 8) { - if (layer4 == 14 and layer5 == 15) { - return rzChiSquared < 518.339f; - } else if (layer4 == 9 and layer5 == 10) { - return rzChiSquared < 8.046f; - } else if (layer4 == 9 and layer5 == 15) { - return rzChiSquared < 451.141f; - } - } else if (layer1 == 3 and layer2 == 7 and layer3 == 8 and layer4 == 14 and layer5 == 15) { - return rzChiSquared < 56.207f; - } else if (layer1 == 7 and layer2 == 8 and layer3 == 9) { - if (layer4 == 10 and layer5 == 11) { - return rzChiSquared < 64.578f; - } else if (layer4 == 10 and layer5 == 16) { - return rzChiSquared < 85.250f; - } else if (layer4 == 15 and layer5 == 16) { - return rzChiSquared < 85.250f; - } - } - return true; - }; - - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredCuts(lst::Modules const& modulesInGPU, - uint16_t lowerModuleIndex1, - uint16_t lowerModuleIndex2, - uint16_t lowerModuleIndex3, - uint16_t lowerModuleIndex4, - uint16_t lowerModuleIndex5, - float rPhiChiSquared) { - const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + - 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex1] == lst::TwoS); - const int layer2 = modulesInGPU.layers[lowerModuleIndex2] + - 6 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex2] == lst::TwoS); - const int layer3 = modulesInGPU.layers[lowerModuleIndex3] + - 6 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex3] == lst::TwoS); - const int layer4 = modulesInGPU.layers[lowerModuleIndex4] + - 6 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex4] == lst::TwoS); - const int layer5 = modulesInGPU.layers[lowerModuleIndex5] + - 6 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex5] == lst::TwoS); - - if (layer1 == 1 and layer2 == 2 and layer3 == 3) { - if (layer4 == 12 and layer5 == 13) { - return rPhiChiSquared < 48.921f; - } else if (layer4 == 4 and layer5 == 12) { - return rPhiChiSquared < 97.948f; - } else if (layer4 == 4 and layer5 == 5) { - return rPhiChiSquared < 129.3f; - } else if (layer4 == 7 and layer5 == 13) { - return rPhiChiSquared < 56.21f; - } else if (layer4 == 7 and layer5 == 8) { - return rPhiChiSquared < 74.198f; - } - } else if (layer1 == 1 and layer2 == 2 and layer3 == 7) { - if (layer4 == 13 and layer5 == 14) { - return rPhiChiSquared < 21.265f; - } else if (layer4 == 8 and layer5 == 14) { - return rPhiChiSquared < 37.058f; - } else if (layer4 == 8 and layer5 == 9) { - return rPhiChiSquared < 42.578f; - } - } else if (layer1 == 1 and layer2 == 7 and layer3 == 8) { - if (layer4 == 9 and layer5 == 10) { - return rPhiChiSquared < 32.253f; - } else if (layer4 == 9 and layer5 == 15) { - return rPhiChiSquared < 37.058f; - } - } else if (layer1 == 2 and layer2 == 3 and layer3 == 4) { - if (layer4 == 12 and layer5 == 13) { - return rPhiChiSquared < 97.947f; - } else if (layer4 == 5 and layer5 == 12) { - return rPhiChiSquared < 129.3f; - } else if (layer4 == 5 and layer5 == 6) { - return rPhiChiSquared < 170.68f; - } - } else if (layer1 == 2 and layer2 == 3 and layer3 == 7) { - if (layer4 == 13 and layer5 == 14) { - return rPhiChiSquared < 48.92f; - } else if (layer4 == 8 and layer5 == 14) { - return rPhiChiSquared < 74.2f; - } - } else if (layer1 == 2 and layer2 == 7 and layer3 == 8) { - if (layer4 == 14 and layer5 == 15) { - return rPhiChiSquared < 42.58f; - } else if (layer4 == 9 and layer5 == 10) { - return rPhiChiSquared < 37.06f; - } else if (layer4 == 9 and layer5 == 15) { - return rPhiChiSquared < 48.92f; - } - } else if (layer1 == 3 and layer2 == 7 and layer3 == 8 and layer4 == 14 and layer5 == 15) { - return rPhiChiSquared < 85.25f; - } else if (layer1 == 7 and layer2 == 8 and layer3 == 9) { - if (layer4 == 10 and layer5 == 11) { - return rPhiChiSquared < 42.58f; - } else if (layer4 == 10 and layer5 == 16) { - return rPhiChiSquared < 37.06f; - } else if (layer4 == 15 and layer5 == 16) { - return rPhiChiSquared < 37.06f; - } - } - return true; - }; - - template - ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeChiSquaredpT5(TAcc const& acc, - unsigned int nPoints, - float* xs, - float* ys, - float* delta1, - float* delta2, - float* slopes, - bool* isFlat, - float g, - float f, - float radius) { - /* - Given values of (g, f, radius) and a set of points (and its uncertainties) compute chi squared - */ - float c = g * g + f * f - radius * radius; - float chiSquared = 0.f; - float absArctanSlope, angleM, xPrime, yPrime, sigma2; - for (size_t i = 0; i < nPoints; i++) { - absArctanSlope = ((slopes[i] != lst::lst_INF) ? alpaka::math::abs(acc, alpaka::math::atan(acc, slopes[i])) - : 0.5f * float(M_PI)); - if (xs[i] > 0 and ys[i] > 0) { - angleM = 0.5f * float(M_PI) - absArctanSlope; - } else if (xs[i] < 0 and ys[i] > 0) { - angleM = absArctanSlope + 0.5f * float(M_PI); - } else if (xs[i] < 0 and ys[i] < 0) { - angleM = -(absArctanSlope + 0.5f * float(M_PI)); - } else if (xs[i] > 0 and ys[i] < 0) { - angleM = -(0.5f * float(M_PI) - absArctanSlope); - } else { - angleM = 0; - } - if (not isFlat[i]) { - xPrime = xs[i] * alpaka::math::cos(acc, angleM) + ys[i] * alpaka::math::sin(acc, angleM); - yPrime = ys[i] * alpaka::math::cos(acc, angleM) - xs[i] * alpaka::math::sin(acc, angleM); - } else { - xPrime = xs[i]; - yPrime = ys[i]; - } - sigma2 = 4 * ((xPrime * delta1[i]) * (xPrime * delta1[i]) + (yPrime * delta2[i]) * (yPrime * delta2[i])); - chiSquared += (xs[i] * xs[i] + ys[i] * ys[i] - 2 * g * xs[i] - 2 * f * ys[i] + c) * - (xs[i] * xs[i] + ys[i] * ys[i] - 2 * g * xs[i] - 2 * f * ys[i] + c) / (sigma2); - } - return chiSquared; - }; - - template - ALPAKA_FN_ACC ALPAKA_FN_INLINE void computeSigmasForRegression_pT5(TAcc const& acc, - lst::Modules const& modulesInGPU, - const uint16_t* lowerModuleIndices, - float* delta1, - float* delta2, - float* slopes, - bool* isFlat, - unsigned int nPoints = 5, - bool anchorHits = true) { - /* - bool anchorHits required to deal with a weird edge case wherein - the hits ultimately used in the regression are anchor hits, but the - lower modules need not all be Pixel Modules (in case of PS). Similarly, - when we compute the chi squared for the non-anchor hits, the "partner module" - need not always be a PS strip module, but all non-anchor hits sit on strip - modules. - */ - ModuleType moduleType; - short moduleSubdet, moduleSide; - float inv1 = kWidthPS / kWidth2S; - float inv2 = kPixelPSZpitch / kWidth2S; - float inv3 = kStripPSZpitch / kWidth2S; - for (size_t i = 0; i < nPoints; i++) { - moduleType = modulesInGPU.moduleType[lowerModuleIndices[i]]; - moduleSubdet = modulesInGPU.subdets[lowerModuleIndices[i]]; - moduleSide = modulesInGPU.sides[lowerModuleIndices[i]]; - const float& drdz = modulesInGPU.drdzs[lowerModuleIndices[i]]; - slopes[i] = modulesInGPU.dxdys[lowerModuleIndices[i]]; - //category 1 - barrel PS flat - if (moduleSubdet == Barrel and moduleType == PS and moduleSide == Center) { - delta1[i] = inv1; - delta2[i] = inv1; - slopes[i] = -999.f; - isFlat[i] = true; - } - //category 2 - barrel 2S - else if (moduleSubdet == Barrel and moduleType == TwoS) { - delta1[i] = 1.f; - delta2[i] = 1.f; - slopes[i] = -999.f; - isFlat[i] = true; - } - //category 3 - barrel PS tilted - else if (moduleSubdet == Barrel and moduleType == PS and moduleSide != Center) { - delta1[i] = inv1; - isFlat[i] = false; - - if (anchorHits) { - delta2[i] = (inv2 * drdz / alpaka::math::sqrt(acc, 1 + drdz * drdz)); - } else { - delta2[i] = (inv3 * drdz / alpaka::math::sqrt(acc, 1 + drdz * drdz)); - } - } - //category 4 - endcap PS - else if (moduleSubdet == Endcap and moduleType == PS) { - delta1[i] = inv1; - isFlat[i] = false; - /* - despite the type of the module layer of the lower module index, - all anchor hits are on the pixel side and all non-anchor hits are - on the strip side! - */ - if (anchorHits) { - delta2[i] = inv2; - } else { - delta2[i] = inv3; - } - } - //category 5 - endcap 2S - else if (moduleSubdet == Endcap and moduleType == TwoS) { - delta1[i] = 1.f; - delta2[i] = 500.f * inv1; - isFlat[i] = false; - } -#ifdef WARNINGS - else { - printf("ERROR!!!!! I SHOULDN'T BE HERE!!!! subdet = %d, type = %d, side = %d\n", - moduleSubdet, - moduleType, - moduleSide); - } -#endif - } - }; - - template - ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RPhiChiSquared(TAcc const& acc, - lst::Modules const& modulesInGPU, - uint16_t* lowerModuleIndices, - float g, - float f, - float radius, - float* xs, - float* ys) { - /* - Compute circle parameters from 3 pixel hits, and then use them to compute the chi squared for the outer hits - */ - - float delta1[5], delta2[5], slopes[5]; - bool isFlat[5]; - float chiSquared = 0; - - computeSigmasForRegression_pT5(acc, modulesInGPU, lowerModuleIndices, delta1, delta2, slopes, isFlat); - chiSquared = computeChiSquaredpT5(acc, 5, xs, ys, delta1, delta2, slopes, isFlat, g, f, radius); - - return chiSquared; - }; - - ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RPhiChiSquaredInwards( - float g, float f, float r, float* xPix, float* yPix) { - /* - Using the computed regression center and radius, compute the chi squared for the pixels - */ - - float chiSquared = 0; - for (size_t i = 0; i < 2; i++) { - float residual = (xPix[i] - g) * (xPix[i] - g) + (yPix[i] - f) * (yPix[i] - f) - r * r; - chiSquared += residual * residual; - } - chiSquared *= 0.5f; - return chiSquared; - }; - - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool passPT5RPhiChiSquaredInwardsCuts(lst::Modules const& modulesInGPU, - uint16_t lowerModuleIndex1, - uint16_t lowerModuleIndex2, - uint16_t lowerModuleIndex3, - uint16_t lowerModuleIndex4, - uint16_t lowerModuleIndex5, - float rPhiChiSquared) { - const int layer1 = modulesInGPU.layers[lowerModuleIndex1] + - 6 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex1] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex1] == lst::TwoS); - const int layer2 = modulesInGPU.layers[lowerModuleIndex2] + - 6 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex2] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex2] == lst::TwoS); - const int layer3 = modulesInGPU.layers[lowerModuleIndex3] + - 6 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex3] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex3] == lst::TwoS); - const int layer4 = modulesInGPU.layers[lowerModuleIndex4] + - 6 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex4] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex4] == lst::TwoS); - const int layer5 = modulesInGPU.layers[lowerModuleIndex5] + - 6 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap) + - 5 * (modulesInGPU.subdets[lowerModuleIndex5] == lst::Endcap and - modulesInGPU.moduleType[lowerModuleIndex5] == lst::TwoS); - - if (layer1 == 1 and layer2 == 2 and layer3 == 3) { - if (layer4 == 12 and layer5 == 13) { - return rPhiChiSquared < 451.141f; - } else if (layer4 == 4 and layer5 == 12) { - return rPhiChiSquared < 786.173f; - } else if (layer4 == 4 and layer5 == 5) { - return rPhiChiSquared < 595.545f; - } else if (layer4 == 7 and layer5 == 13) { - return rPhiChiSquared < 581.339f; - } else if (layer4 == 7 and layer5 == 8) { - return rPhiChiSquared < 112.537f; - } - } else if (layer1 == 1 and layer2 == 2 and layer3 == 7) { - if (layer4 == 13 and layer5 == 14) { - return rPhiChiSquared < 225.322f; - } else if (layer4 == 8 and layer5 == 14) { - return rPhiChiSquared < 1192.402f; - } else if (layer4 == 8 and layer5 == 9) { - return rPhiChiSquared < 786.173f; - } - } else if (layer1 == 1 and layer2 == 7 and layer3 == 8) { - if (layer4 == 9 and layer5 == 10) { - return rPhiChiSquared < 1037.817f; - } else if (layer4 == 9 and layer5 == 15) { - return rPhiChiSquared < 1808.536f; - } - } else if (layer1 == 2 and layer2 == 3 and layer3 == 4) { - if (layer4 == 12 and layer5 == 13) { - return rPhiChiSquared < 684.253f; - } else if (layer4 == 5 and layer5 == 12) { - return rPhiChiSquared < 684.253f; - } else if (layer4 == 5 and layer5 == 6) { - return rPhiChiSquared < 684.253f; - } - } else if (layer1 == 2 and layer2 == 3 and layer3 == 7) { - if (layer4 == 13 and layer5 == 14) { - return rPhiChiSquared < 451.141f; - } else if (layer4 == 8 and layer5 == 14) { - return rPhiChiSquared < 518.34f; - } - } else if (layer1 == 2 and layer2 == 7 and layer3 == 8) { - if (layer4 == 14 and layer5 == 15) { - return rPhiChiSquared < 2077.92f; - } else if (layer4 == 9 and layer5 == 10) { - return rPhiChiSquared < 74.20f; - } else if (layer4 == 9 and layer5 == 15) { - return rPhiChiSquared < 1808.536f; - } - } else if (layer1 == 3 and layer2 == 7 and layer3 == 8 and layer4 == 14 and layer5 == 15) { - return rPhiChiSquared < 786.173f; - } else if (layer1 == 7 and layer2 == 8 and layer3 == 9) { - if (layer4 == 10 and layer5 == 11) { - return rPhiChiSquared < 1574.076f; - } else if (layer4 == 10 and layer5 == 16) { - return rPhiChiSquared < 5492.11f; - } else if (layer4 == 15 and layer5 == 16) { - return rPhiChiSquared < 2743.037f; - } - } - return true; - }; - - template - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runPixelQuintupletDefaultAlgo(TAcc const& acc, - lst::Modules const& modulesInGPU, - lst::ObjectRanges const& rangesInGPU, - lst::MiniDoublets const& mdsInGPU, - lst::Segments const& segmentsInGPU, - lst::Triplets const& tripletsInGPU, - lst::Quintuplets const& quintupletsInGPU, - unsigned int pixelSegmentIndex, - unsigned int quintupletIndex, - float& rzChiSquared, - float& rPhiChiSquared, - float& rPhiChiSquaredInwards, - float& pixelRadius, - float& quintupletRadius, - float& centerX, - float& centerY, - unsigned int pixelSegmentArrayIndex) { - unsigned int T5InnerT3Index = quintupletsInGPU.tripletIndices[2 * quintupletIndex]; - unsigned int T5OuterT3Index = quintupletsInGPU.tripletIndices[2 * quintupletIndex + 1]; - - float pixelRadiusTemp, tripletRadius, rPhiChiSquaredTemp, rzChiSquaredTemp, rPhiChiSquaredInwardsTemp, centerXTemp, - centerYTemp; - - if (not runPixelTripletDefaultAlgo(acc, - modulesInGPU, - rangesInGPU, - mdsInGPU, - segmentsInGPU, - tripletsInGPU, - pixelSegmentIndex, - T5InnerT3Index, - pixelRadiusTemp, - tripletRadius, - centerXTemp, - centerYTemp, - rzChiSquaredTemp, - rPhiChiSquaredTemp, - rPhiChiSquaredInwardsTemp, - false)) - return false; - - unsigned int firstSegmentIndex = tripletsInGPU.segmentIndices[2 * T5InnerT3Index]; - unsigned int secondSegmentIndex = tripletsInGPU.segmentIndices[2 * T5InnerT3Index + 1]; - unsigned int thirdSegmentIndex = tripletsInGPU.segmentIndices[2 * T5OuterT3Index]; - unsigned int fourthSegmentIndex = tripletsInGPU.segmentIndices[2 * T5OuterT3Index + 1]; - - unsigned int pixelInnerMDIndex = segmentsInGPU.mdIndices[2 * pixelSegmentIndex]; - unsigned int pixelOuterMDIndex = segmentsInGPU.mdIndices[2 * pixelSegmentIndex + 1]; - unsigned int firstMDIndex = segmentsInGPU.mdIndices[2 * firstSegmentIndex]; - unsigned int secondMDIndex = segmentsInGPU.mdIndices[2 * secondSegmentIndex]; - unsigned int thirdMDIndex = segmentsInGPU.mdIndices[2 * secondSegmentIndex + 1]; - 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 lowerModuleIndices[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], - mdsInGPU.anchorZ[secondMDIndex], - mdsInGPU.anchorZ[thirdMDIndex], - mdsInGPU.anchorZ[fourthMDIndex], - mdsInGPU.anchorZ[fifthMDIndex]}; - float rts[Params_T5::kLayers] = {mdsInGPU.anchorRt[firstMDIndex], - mdsInGPU.anchorRt[secondMDIndex], - mdsInGPU.anchorRt[thirdMDIndex], - mdsInGPU.anchorRt[fourthMDIndex], - mdsInGPU.anchorRt[fifthMDIndex]}; - - rzChiSquared = computePT5RZChiSquared(acc, modulesInGPU, lowerModuleIndices, rtPix, zPix, rts, zs); - - if (/*pixelRadius*/ 0 < 5.0f * kR1GeVf) { // FIXME: pixelRadius is not defined yet - if (not passPT5RZChiSquaredCuts(modulesInGPU, - lowerModuleIndex1, - lowerModuleIndex2, - lowerModuleIndex3, - lowerModuleIndex4, - lowerModuleIndex5, - rzChiSquared)) - return false; - } - - //outer T5 - float xs[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], - mdsInGPU.anchorY[secondMDIndex], - mdsInGPU.anchorY[thirdMDIndex], - mdsInGPU.anchorY[fourthMDIndex], - mdsInGPU.anchorY[fifthMDIndex]}; - - //get the appropriate radii and centers - centerX = segmentsInGPU.circleCenterX[pixelSegmentArrayIndex]; - centerY = segmentsInGPU.circleCenterY[pixelSegmentArrayIndex]; - pixelRadius = segmentsInGPU.circleRadius[pixelSegmentArrayIndex]; - - float T5CenterX = quintupletsInGPU.regressionG[quintupletIndex]; - float T5CenterY = quintupletsInGPU.regressionF[quintupletIndex]; - quintupletRadius = quintupletsInGPU.regressionRadius[quintupletIndex]; - - rPhiChiSquared = - computePT5RPhiChiSquared(acc, modulesInGPU, lowerModuleIndices, centerX, centerY, pixelRadius, xs, ys); - - if (pixelRadius < 5.0f * kR1GeVf) { - if (not passPT5RPhiChiSquaredCuts(modulesInGPU, - lowerModuleIndex1, - lowerModuleIndex2, - lowerModuleIndex3, - lowerModuleIndex4, - lowerModuleIndex5, - rPhiChiSquared)) - return false; - } - - float xPix[] = {mdsInGPU.anchorX[pixelInnerMDIndex], mdsInGPU.anchorX[pixelOuterMDIndex]}; - float yPix[] = {mdsInGPU.anchorY[pixelInnerMDIndex], mdsInGPU.anchorY[pixelOuterMDIndex]}; - rPhiChiSquaredInwards = computePT5RPhiChiSquaredInwards(T5CenterX, T5CenterY, quintupletRadius, xPix, yPix); - - if (quintupletsInGPU.regressionRadius[quintupletIndex] < 5.0f * kR1GeVf) { - if (not passPT5RPhiChiSquaredInwardsCuts(modulesInGPU, - lowerModuleIndex1, - lowerModuleIndex2, - lowerModuleIndex3, - lowerModuleIndex4, - lowerModuleIndex5, - rPhiChiSquaredInwards)) - return false; - } - //trusting the T5 regression center to also be a good estimate.. - centerX = (centerX + T5CenterX) / 2; - centerY = (centerY + T5CenterY) / 2; - - return true; - }; - - template - ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RZChiSquared(TAcc const& acc, - lst::Modules const& modulesInGPU, - uint16_t* lowerModuleIndices, - float* rtPix, - float* zPix, - float* rts, - float* zs) { - //use the two anchor hits of the pixel segment to compute the slope - //then compute the pseudo chi squared of the five outer hits - - float slope = (zPix[1] - zPix[0]) / (rtPix[1] - rtPix[0]); - float residual = 0; - float error2 = 0; - //hardcoded array indices!!! - float RMSE = 0; - 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]; - const int moduleSubdet = modulesInGPU.subdets[lowerModuleIndex]; - - residual = (moduleSubdet == lst::Barrel) ? (zs[i] - zPix[0]) - slope * (rts[i] - rtPix[0]) - : (rts[i] - rtPix[0]) - (zs[i] - zPix[0]) / slope; - const float& drdz = modulesInGPU.drdzs[lowerModuleIndex]; - //PS Modules - if (moduleType == 0) { - error2 = kPixelPSZpitch * kPixelPSZpitch; - } else //2S modules - { - error2 = kStrip2SZpitch * kStrip2SZpitch; - } - - //special dispensation to tilted PS modules! - if (moduleType == 0 and moduleSubdet == lst::Barrel and moduleSide != Center) { - error2 /= (1.f + drdz * drdz); - } - RMSE += (residual * residual) / error2; - } - - RMSE = alpaka::math::sqrt(acc, 0.2f * RMSE); // Divided by the degree of freedom 5. - return RMSE; - }; - - struct createPixelQuintupletsInGPUFromMapv2 { - template - ALPAKA_FN_ACC void operator()(TAcc const& acc, - lst::Modules modulesInGPU, - lst::MiniDoublets mdsInGPU, - lst::Segments segmentsInGPU, - lst::Triplets tripletsInGPU, - lst::Quintuplets quintupletsInGPU, - lst::PixelQuintuplets pixelQuintupletsInGPU, - unsigned int* connectedPixelSize, - unsigned int* connectedPixelIndex, - unsigned int nPixelSegments, - lst::ObjectRanges rangesInGPU) const { - auto const globalBlockIdx = alpaka::getIdx(acc); - auto const globalThreadIdx = alpaka::getIdx(acc); - auto const gridBlockExtent = alpaka::getWorkDiv(acc); - auto const gridThreadExtent = alpaka::getWorkDiv(acc); - - for (unsigned int i_pLS = globalThreadIdx[1]; i_pLS < nPixelSegments; i_pLS += gridThreadExtent[1]) { - auto iLSModule_max = connectedPixelIndex[i_pLS] + connectedPixelSize[i_pLS]; - for (unsigned int iLSModule = connectedPixelIndex[i_pLS] + globalBlockIdx[0]; iLSModule < iLSModule_max; - iLSModule += gridBlockExtent[0]) { - //these are actual module indices - uint16_t quintupletLowerModuleIndex = modulesInGPU.connectedPixels[iLSModule]; - if (quintupletLowerModuleIndex >= *modulesInGPU.nLowerModules) - continue; - if (modulesInGPU.moduleType[quintupletLowerModuleIndex] == lst::TwoS) - continue; - uint16_t pixelModuleIndex = *modulesInGPU.nLowerModules; - if (segmentsInGPU.isDup[i_pLS]) - continue; - unsigned int nOuterQuintuplets = quintupletsInGPU.nQuintuplets[quintupletLowerModuleIndex]; - - if (nOuterQuintuplets == 0) - continue; - - unsigned int pixelSegmentIndex = rangesInGPU.segmentModuleIndices[pixelModuleIndex] + i_pLS; - - //fetch the quintuplet - for (unsigned int outerQuintupletArrayIndex = globalThreadIdx[2]; - outerQuintupletArrayIndex < nOuterQuintuplets; - outerQuintupletArrayIndex += gridThreadExtent[2]) { - unsigned int quintupletIndex = - rangesInGPU.quintupletModuleIndices[quintupletLowerModuleIndex] + outerQuintupletArrayIndex; - - if (quintupletsInGPU.isDup[quintupletIndex]) - continue; - - float rzChiSquared, rPhiChiSquared, rPhiChiSquaredInwards, pixelRadius, quintupletRadius, centerX, centerY; - - bool success = runPixelQuintupletDefaultAlgo(acc, - modulesInGPU, - rangesInGPU, - mdsInGPU, - segmentsInGPU, - tripletsInGPU, - quintupletsInGPU, - pixelSegmentIndex, - quintupletIndex, - rzChiSquared, - rPhiChiSquared, - rPhiChiSquaredInwards, - pixelRadius, - quintupletRadius, - centerX, - centerY, - static_cast(i_pLS)); - if (success) { - unsigned int totOccupancyPixelQuintuplets = - alpaka::atomicOp(acc, pixelQuintupletsInGPU.totOccupancyPixelQuintuplets, 1u); - if (totOccupancyPixelQuintuplets >= n_max_pixel_quintuplets) { -#ifdef WARNINGS - printf("Pixel Quintuplet excess alert!\n"); -#endif - } else { - unsigned int pixelQuintupletIndex = - alpaka::atomicOp(acc, pixelQuintupletsInGPU.nPixelQuintuplets, 1u); - float eta = __H2F(quintupletsInGPU.eta[quintupletIndex]); - float phi = __H2F(quintupletsInGPU.phi[quintupletIndex]); - - addPixelQuintupletToMemory(modulesInGPU, - mdsInGPU, - segmentsInGPU, - quintupletsInGPU, - pixelQuintupletsInGPU, - pixelSegmentIndex, - quintupletIndex, - pixelQuintupletIndex, - rzChiSquared, - rPhiChiSquared, - rPhiChiSquaredInwards, - rPhiChiSquared, - eta, - phi, - pixelRadius, - quintupletRadius, - centerX, - centerY); - - tripletsInGPU.partOfPT5[quintupletsInGPU.tripletIndices[2 * quintupletIndex]] = true; - tripletsInGPU.partOfPT5[quintupletsInGPU.tripletIndices[2 * quintupletIndex + 1]] = true; - segmentsInGPU.partOfPT5[i_pLS] = true; - quintupletsInGPU.partOfPT5[quintupletIndex] = true; - } // tot occupancy - } // end success - } // end T5 - } // end iLS - } // end i_pLS - } - }; -} // namespace lst -#endif From 944e1b4ef398fa959e0f4c2647b8d88340b4a78c Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Tue, 30 Jul 2024 07:27:10 -0700 Subject: [PATCH 29/35] Code checks and format --- RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h | 1 - RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 1 - 2 files changed, 2 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h b/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h index 7d0a495444749..ee172f9e05f6e 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h @@ -945,4 +945,3 @@ namespace lst { }; } // namespace lst #endif - diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index d05c9412d3061..3e6ad10c53fcf 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -1694,4 +1694,3 @@ namespace lst { } // namespace lst #endif - From 961d01e517934edda8f92d67583a4668d04cd91f Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Tue, 30 Jul 2024 07:53:28 -0700 Subject: [PATCH 30/35] Remove sdl from variable names --- RecoTracker/LSTCore/interface/Module.h | 10 +-- RecoTracker/LSTCore/src/ModuleMethods.h | 8 +-- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 2 +- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 36 +++++----- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 72 +++++++++---------- RecoTracker/LSTCore/src/alpaka/Triplet.h | 30 ++++---- 6 files changed, 79 insertions(+), 79 deletions(-) diff --git a/RecoTracker/LSTCore/interface/Module.h b/RecoTracker/LSTCore/interface/Module.h index 56c560eaba04c..d45415f800a4f 100644 --- a/RecoTracker/LSTCore/interface/Module.h +++ b/RecoTracker/LSTCore/interface/Module.h @@ -37,7 +37,7 @@ namespace lst { const bool* isAnchor; const ModuleType* moduleType; const ModuleLayerType* moduleLayerType; - const int* sdlLayers; + const int* lstLayers; const unsigned int* connectedPixels; static bool parseIsInverted(short subdet, short side, short module, short layer) { @@ -108,7 +108,7 @@ namespace lst { isAnchor = alpaka::getPtrNative(buf.isAnchor_buf); moduleType = alpaka::getPtrNative(buf.moduleType_buf); moduleLayerType = alpaka::getPtrNative(buf.moduleLayerType_buf); - sdlLayers = alpaka::getPtrNative(buf.sdlLayers_buf); + lstLayers = alpaka::getPtrNative(buf.lstLayers_buf); connectedPixels = alpaka::getPtrNative(buf.connectedPixels_buf); } }; @@ -139,7 +139,7 @@ namespace lst { Buf isAnchor_buf; Buf moduleType_buf; Buf moduleLayerType_buf; - Buf sdlLayers_buf; + Buf lstLayers_buf; Buf connectedPixels_buf; Modules data_; @@ -169,7 +169,7 @@ namespace lst { isAnchor_buf(allocBufWrapper(dev, nMod)), moduleType_buf(allocBufWrapper(dev, nMod)), moduleLayerType_buf(allocBufWrapper(dev, nMod)), - sdlLayers_buf(allocBufWrapper(dev, nMod)), + lstLayers_buf(allocBufWrapper(dev, nMod)), connectedPixels_buf(allocBufWrapper(dev, nPixs)) { data_.setData(*this); } @@ -209,7 +209,7 @@ namespace lst { alpaka::memcpy(queue, moduleType_buf, src.moduleType_buf); if (isFull) { alpaka::memcpy(queue, moduleLayerType_buf, src.moduleLayerType_buf); - alpaka::memcpy(queue, sdlLayers_buf, src.sdlLayers_buf); + alpaka::memcpy(queue, lstLayers_buf, src.lstLayers_buf); alpaka::memcpy(queue, connectedPixels_buf, src.connectedPixels_buf); } alpaka::wait(queue); diff --git a/RecoTracker/LSTCore/src/ModuleMethods.h b/RecoTracker/LSTCore/src/ModuleMethods.h index 4faf61ac0048b..9693a464fcf1a 100644 --- a/RecoTracker/LSTCore/src/ModuleMethods.h +++ b/RecoTracker/LSTCore/src/ModuleMethods.h @@ -250,7 +250,7 @@ namespace lst { auto dxdys_buf = allocBufWrapper(devHost, nModules); auto drdzs_buf = allocBufWrapper(devHost, nModules); auto partnerModuleIndices_buf = allocBufWrapper(devHost, nModules); - auto sdlLayers_buf = allocBufWrapper(devHost, nModules); + auto lstLayers_buf = allocBufWrapper(devHost, nModules); // Getting the underlying data pointers unsigned int* host_detIds = alpaka::getPtrNative(detIds_buf); @@ -270,7 +270,7 @@ namespace lst { float* host_dxdys = alpaka::getPtrNative(dxdys_buf); float* host_drdzs = alpaka::getPtrNative(drdzs_buf); uint16_t* host_partnerModuleIndices = alpaka::getPtrNative(partnerModuleIndices_buf); - int* host_sdlLayers = alpaka::getPtrNative(sdlLayers_buf); + int* host_lstLayers = alpaka::getPtrNative(lstLayers_buf); //reassign detIdToIndex indices here nLowerModules = (nModules - 1) / 2; @@ -351,7 +351,7 @@ namespace lst { host_drdzs[index] = (subdet == Barrel) ? tiltedGeometry->getDrDz(detId) : 0; } - host_sdlLayers[index] = + host_lstLayers[index] = layer + 6 * (subdet == lst::Endcap) + 5 * (subdet == lst::Endcap and host_moduleType[index] == lst::TwoS); } @@ -402,7 +402,7 @@ namespace lst { alpaka::memcpy(queue, modulesBuf->dxdys_buf, dxdys_buf); alpaka::memcpy(queue, modulesBuf->drdzs_buf, drdzs_buf); alpaka::memcpy(queue, modulesBuf->partnerModuleIndices_buf, partnerModuleIndices_buf); - alpaka::memcpy(queue, modulesBuf->sdlLayers_buf, sdlLayers_buf); + alpaka::memcpy(queue, modulesBuf->lstLayers_buf, lstLayers_buf); alpaka::wait(queue); fillConnectedModuleArrayExplicit(modulesBuf.get(), nModules, queue, mmd, moduleConnectionMap); diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index b2fa20e03fae9..400d35351fa62 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc @@ -1623,7 +1623,7 @@ lst::TripletsBuffer* lst::Event::getTriplets() { alpaka::memcpy(queue, tripletsInCPU->zHi_buf, tripletsBuffers->zHi_buf, nMemHost); alpaka::memcpy(queue, tripletsInCPU->zLoPointed_buf, tripletsBuffers->zLoPointed_buf, nMemHost); alpaka::memcpy(queue, tripletsInCPU->zHiPointed_buf, tripletsBuffers->zHiPointed_buf, nMemHost); - alpaka::memcpy(queue, tripletsInCPU->sdlCut_buf, tripletsBuffers->sdlCut_buf, nMemHost); + alpaka::memcpy(queue, tripletsInCPU->lstCut_buf, tripletsBuffers->lstCut_buf, nMemHost); alpaka::memcpy(queue, tripletsInCPU->betaInCut_buf, tripletsBuffers->betaInCut_buf, nMemHost); alpaka::memcpy(queue, tripletsInCPU->rtLo_buf, tripletsBuffers->rtLo_buf, nMemHost); alpaka::memcpy(queue, tripletsInCPU->rtHi_buf, tripletsBuffers->rtHi_buf, nMemHost); diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index 3e6ad10c53fcf..bf23e8bc7f759 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -1184,7 +1184,7 @@ namespace lst { unsigned int secondMDIndex, unsigned int thirdMDIndex, unsigned int fourthMDIndex) { - float dPhi, betaIn, betaOut, pt_beta, zLo, zHi, zLoPointed, zHiPointed, sdlCut, betaOutCut; + float dPhi, betaIn, betaOut, pt_beta, zLo, zHi, zLoPointed, zHiPointed, lstCut, betaOutCut; bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS); @@ -1249,14 +1249,14 @@ namespace lst { float drt_InSeg = rt_InOut - rt_InLo; - const float sdlThetaMulsF2 = + const float lstThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InUp) / 50.f) * (r3_InUp / rt_InUp); - const float sdlMuls2 = sdlThetaMulsF2 * 9.f / (ptCut * ptCut) * 16.f; + const float lstMuls2 = lstThetaMulsF2 * 9.f / (ptCut * ptCut) * 16.f; float dzErr = (drt_OutLo_InUp * drt_OutLo_InUp) * (etaErr * etaErr) * cosh2Eta; dzErr += 0.03f * 0.03f; // Approximately account for IT module size dzErr *= 9.f; // 3 sigma - dzErr += sdlMuls2 * (drt_OutLo_InUp * drt_OutLo_InUp) / 3.f * cosh2Eta; + dzErr += lstMuls2 * (drt_OutLo_InUp * drt_OutLo_InUp) / 3.f * cosh2Eta; dzErr += zGeom * zGeom; dzErr = alpaka::math::sqrt(acc, dzErr); @@ -1272,8 +1272,8 @@ namespace lst { if ((z_OutLo < zLoPointed) || (z_OutLo > zHiPointed)) return false; - const float sdlPVoff = 0.1f / rt_OutLo; - sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); + const float lstPVoff = 0.1f / rt_OutLo; + lstCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, lstMuls2 + lstPVoff * lstPVoff); //no dphipos cut float midPointX = 0.5f * (x_InLo + x_OutLo); @@ -1284,7 +1284,7 @@ namespace lst { dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); - if (alpaka::math::abs(acc, dPhi) > sdlCut) + if (alpaka::math::abs(acc, dPhi) > lstCut) return false; //lots of array accesses below this... @@ -1380,7 +1380,7 @@ namespace lst { float min_ptBeta_ptBetaMax = alpaka::math::min( acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confirm the range-out value of 7 GeV - const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_ptBetaMax * min_ptBeta_ptBetaMax); + const float dBetaMuls2 = lstThetaMulsF2 * 16.f / (min_ptBeta_ptBetaMax * min_ptBeta_ptBetaMax); const float alphaInAbsReg = alpaka::math::max(acc, alpaka::math::abs(acc, alpha_InLo), @@ -1442,7 +1442,7 @@ namespace lst { unsigned int secondMDIndex, unsigned int thirdMDIndex, unsigned int fourthMDIndex) { - float dPhi, betaIn, betaOut, pt_beta, rtLo, rtHi, sdlCut, betaOutCut; + float dPhi, betaIn, betaOut, pt_beta, rtLo, rtHi, lstCut, betaOutCut; bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS); @@ -1484,9 +1484,9 @@ namespace lst { float zpitch_OutLo = (isPS_OutLo ? kPixelPSZpitch : kStrip2SZpitch); float zGeom = zpitch_InLo + zpitch_OutLo; - const float sdlSlope = + const float lstSlope = alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / ptCut, kSinAlphaMax)); - const float dzDrtScale = alpaka::math::tan(acc, sdlSlope) / sdlSlope; //FIXME: need approximate value + const float dzDrtScale = alpaka::math::tan(acc, lstSlope) / lstSlope; //FIXME: need approximate value const float dLum = alpaka::math::copysign(acc, kDeltaZLum, z_InUp); bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS; @@ -1511,14 +1511,14 @@ namespace lst { const float cosh2Eta = 1.f + (pz * pz) / (ptIn * ptIn); const float multDzDr2 = (dzOutInAbs * dzOutInAbs) * cosh2Eta / ((cosh2Eta - 1.f) * (cosh2Eta - 1.f)); const float r3_InUp = alpaka::math::sqrt(acc, z_InUp * z_InUp + rt_InUp * rt_InUp); - const float sdlThetaMulsF2 = + const float lstThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InUp) / 50.f) * (r3_InUp / rt_InUp); - const float sdlMuls2 = sdlThetaMulsF2 * 9.f / (ptCut * ptCut) * 16.f; + const float lstMuls2 = lstThetaMulsF2 * 9.f / (ptCut * ptCut) * 16.f; float drtErr = (etaErr * etaErr) * multDzDr2; drtErr += 0.03f * 0.03f; // Approximately account for IT module size drtErr *= 9.f; // 3 sigma - drtErr += sdlMuls2 * multDzDr2 / 3.f * cosh2Eta; + drtErr += lstMuls2 * multDzDr2 / 3.f * cosh2Eta; drtErr = alpaka::math::sqrt(acc, drtErr); const float drtDzIn = alpaka::math::abs(acc, ptIn / pz); @@ -1537,8 +1537,8 @@ namespace lst { const float alpha1GeV_OutLo = alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / ptCut, kSinAlphaMax)); - const float sdlPVoff = 0.1f / rt_OutLo; - sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); + const float lstPVoff = 0.1f / rt_OutLo; + lstCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, lstMuls2 + lstPVoff * lstPVoff); float midPointX = 0.5f * (x_InLo + x_OutLo); float midPointY = 0.5f * (y_InLo + y_OutLo); @@ -1549,7 +1549,7 @@ namespace lst { dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange - if (alpaka::math::abs(acc, dPhi) > sdlCut) + if (alpaka::math::abs(acc, dPhi) > lstCut) return false; float alpha_InLo = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); @@ -1640,7 +1640,7 @@ namespace lst { float min_ptBeta_ptBetaMax = alpaka::math::min( acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confirm the range-out value of 7 GeV - const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_ptBetaMax * min_ptBeta_ptBetaMax); + const float dBetaMuls2 = lstThetaMulsF2 * 16.f / (min_ptBeta_ptBetaMax * min_ptBeta_ptBetaMax); const float alphaInAbsReg = alpaka::math::max(acc, diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 66061ae427849..d8dd0df8b745e 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -238,12 +238,12 @@ namespace lst { uint16_t lowerModuleIndex4, uint16_t lowerModuleIndex5, float chiSquared) { - // Using sdlLayer numbering convention defined in ModuleMethods.h - const int layer1 = modulesInGPU.sdlLayers[lowerModuleIndex1]; - const int layer2 = modulesInGPU.sdlLayers[lowerModuleIndex2]; - const int layer3 = modulesInGPU.sdlLayers[lowerModuleIndex3]; - const int layer4 = modulesInGPU.sdlLayers[lowerModuleIndex4]; - const int layer5 = modulesInGPU.sdlLayers[lowerModuleIndex5]; + // Using lstLayer numbering convention defined in ModuleMethods.h + const int layer1 = modulesInGPU.lstLayers[lowerModuleIndex1]; + const int layer2 = modulesInGPU.lstLayers[lowerModuleIndex2]; + const int layer3 = modulesInGPU.lstLayers[lowerModuleIndex3]; + const int layer4 = modulesInGPU.lstLayers[lowerModuleIndex4]; + const int layer5 = modulesInGPU.lstLayers[lowerModuleIndex5]; if (layer1 == 7 and layer2 == 8 and layer3 == 9) { if (layer4 == 10 and layer5 == 11) { @@ -347,12 +347,12 @@ namespace lst { const float& z4 = mdsInGPU.anchorZ[fourthMDIndex] / 100; const float& z5 = mdsInGPU.anchorZ[fifthMDIndex] / 100; - // Using sdl_layer numbering convention defined in ModuleMethods.h - const int layer1 = modulesInGPU.sdlLayers[lowerModuleIndex1]; - const int layer2 = modulesInGPU.sdlLayers[lowerModuleIndex2]; - const int layer3 = modulesInGPU.sdlLayers[lowerModuleIndex3]; - const int layer4 = modulesInGPU.sdlLayers[lowerModuleIndex4]; - const int layer5 = modulesInGPU.sdlLayers[lowerModuleIndex5]; + // Using lst_layer numbering convention defined in ModuleMethods.h + const int layer1 = modulesInGPU.lstLayers[lowerModuleIndex1]; + const int layer2 = modulesInGPU.lstLayers[lowerModuleIndex2]; + const int layer3 = modulesInGPU.lstLayers[lowerModuleIndex3]; + const int layer4 = modulesInGPU.lstLayers[lowerModuleIndex4]; + const int layer5 = modulesInGPU.lstLayers[lowerModuleIndex5]; //slope computed using the internal T3s const int moduleType1 = modulesInGPU.moduleType[lowerModuleIndex1]; //0 is ps, 1 is 2s @@ -1400,10 +1400,10 @@ namespace lst { float coshEta = dr3_InSeg / drt_InSeg; float dzErr = (zpitch_InLo + zpitch_OutLo) * (zpitch_InLo + zpitch_OutLo) * 2.f; - float sdlThetaMulsF2 = + float lstThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f) * (r3_InLo / rt_InLo); - float sdlMuls2 = sdlThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; - dzErr += sdlMuls2 * drt_OutLo_InLo * drt_OutLo_InLo / 3.f * coshEta * coshEta; + float lstMuls2 = lstThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; + dzErr += lstMuls2 * drt_OutLo_InLo * drt_OutLo_InLo / 3.f * coshEta * coshEta; dzErr = alpaka::math::sqrt(acc, dzErr); // Constructing upper and lower bound @@ -1418,12 +1418,12 @@ namespace lst { if ((z_OutLo < zLoPointed) || (z_OutLo > zHiPointed)) return false; - float sdlPVoff = 0.1f / rt_OutLo; - float sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); + float lstPVoff = 0.1f / rt_OutLo; + float lstCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, lstMuls2 + lstPVoff * lstPVoff); float deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); // Cut #3: FIXME:deltaPhiPos can be tighter - if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) + if (alpaka::math::abs(acc, deltaPhiPos) > lstCut) return false; float midPointX = 0.5f * (mdsInGPU.anchorX[firstMDIndex] + mdsInGPU.anchorX[thirdMDIndex]); @@ -1434,7 +1434,7 @@ namespace lst { float dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #4: deltaPhiChange - if (alpaka::math::abs(acc, dPhi) > sdlCut) + if (alpaka::math::abs(acc, dPhi) > lstCut) return false; // First obtaining the raw betaIn and betaOut values without any correction and just purely based on the mini-doublet hit positions @@ -1549,7 +1549,7 @@ namespace lst { float min_ptBeta_maxPtBeta = alpaka::math::min( acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confimm the range-out value of 7 GeV - const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); + const float dBetaMuls2 = lstThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); const float alphaInAbsReg = alpaka::math::max( acc, @@ -1673,23 +1673,23 @@ namespace lst { float kZ = (z_OutLo - z_InLo) / dzSDIn; float drtErr = zGeom1_another * zGeom1_another * drtSDIn * drtSDIn / dzSDIn / dzSDIn * (1.f - 2.f * kZ + 2.f * kZ * kZ); - const float sdlThetaMulsF2 = + const float lstThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f) * (rIn / rt_InLo); - const float sdlMuls2 = sdlThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; - drtErr += sdlMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta; + const float lstMuls2 = lstThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; + drtErr += lstMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta; drtErr = alpaka::math::sqrt(acc, drtErr); //Cut #3: rt-z pointed if ((kZ < 0) || (rtOut < rtLo) || (rtOut > rtHi)) return false; - const float sdlPVoff = 0.1f / rt_OutLo; - float sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); + const float lstPVoff = 0.1f / rt_OutLo; + float lstCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, lstMuls2 + lstPVoff * lstPVoff); float deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); //Cut #4: deltaPhiPos can be tighter - if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) + if (alpaka::math::abs(acc, deltaPhiPos) > lstCut) return false; float midPointX = 0.5f * (mdsInGPU.anchorX[firstMDIndex] + mdsInGPU.anchorX[thirdMDIndex]); @@ -1699,7 +1699,7 @@ namespace lst { float dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange - if (alpaka::math::abs(acc, dPhi) > sdlCut) + if (alpaka::math::abs(acc, dPhi) > lstCut) return false; float sdIn_alpha = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); @@ -1802,7 +1802,7 @@ namespace lst { float min_ptBeta_maxPtBeta = alpaka::math::min( acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confirm the range-out value of 7 GeV - const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); + const float dBetaMuls2 = lstThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); const float alphaInAbsReg = alpaka::math::max( acc, @@ -1914,14 +1914,14 @@ namespace lst { float multDzDr = dzOutInAbs * coshEta / (coshEta * coshEta - 1.f); float kZ = (z_OutLo - z_InLo) / dzSDIn; - float sdlThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f); + float lstThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f); - float sdlMuls2 = sdlThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; + float lstMuls2 = lstThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; float drtErr = alpaka::math::sqrt( acc, lst::kPixelPSZpitch * lst::kPixelPSZpitch * 2.f / (dzSDIn * dzSDIn) * (dzOutInAbs * dzOutInAbs) + - sdlMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta); + lstMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta); float drtMean = drtSDIn * dzOutInAbs / alpaka::math::abs(acc, dzSDIn); float rtWindow = drtErr + rtGeom; @@ -1937,12 +1937,12 @@ namespace lst { return false; } - float sdlPVoff = 0.1f / rtOut; - float sdlCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, sdlMuls2 + sdlPVoff * sdlPVoff); + float lstPVoff = 0.1f / rtOut; + float lstCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, lstMuls2 + lstPVoff * lstPVoff); float deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); - if (alpaka::math::abs(acc, deltaPhiPos) > sdlCut) + if (alpaka::math::abs(acc, deltaPhiPos) > lstCut) return false; float midPointX = 0.5f * (mdsInGPU.anchorX[firstMDIndex] + mdsInGPU.anchorX[thirdMDIndex]); @@ -1953,7 +1953,7 @@ namespace lst { float dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange - if (alpaka::math::abs(acc, dPhi) > sdlCut) + if (alpaka::math::abs(acc, dPhi) > lstCut) return false; float sdIn_alpha = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); @@ -2043,7 +2043,7 @@ namespace lst { float min_ptBeta_maxPtBeta = alpaka::math::min( acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confirm the range-out value of 7 GeV - const float dBetaMuls2 = sdlThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); + const float dBetaMuls2 = lstThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); const float alphaInAbsReg = alpaka::math::max( acc, diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index b22449a7c61ff..3d462ffce88e5 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -82,7 +82,7 @@ namespace lst { Buf zHi_buf; Buf zLoPointed_buf; Buf zHiPointed_buf; - Buf sdlCut_buf; + Buf lstCut_buf; Buf betaInCut_buf; Buf rtLo_buf; Buf rtHi_buf; @@ -116,7 +116,7 @@ namespace lst { zHi_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), zLoPointed_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), zHiPointed_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), - sdlCut_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), + lstCut_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), betaInCut_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), rtLo_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), rtHi_buf(allocBufWrapper(devAccIn, maxTriplets, queue)) @@ -222,10 +222,10 @@ namespace lst { const float& z2 = mdsInGPU.anchorZ[secondMDIndex]; const float& z3 = mdsInGPU.anchorZ[thirdMDIndex]; - // Using sdl_layer numbering convention defined in ModuleMethods.h - const int layer1 = modulesInGPU.sdlLayers[innerInnerLowerModuleIndex]; - const int layer2 = modulesInGPU.sdlLayers[middleLowerModuleIndex]; - const int layer3 = modulesInGPU.sdlLayers[outerOuterLowerModuleIndex]; + // Using lst_layer numbering convention defined in ModuleMethods.h + const int layer1 = modulesInGPU.lstLayers[innerInnerLowerModuleIndex]; + const int layer2 = modulesInGPU.lstLayers[middleLowerModuleIndex]; + const int layer3 = modulesInGPU.lstLayers[outerOuterLowerModuleIndex]; const float residual = z2 - ((z3 - z1) / (r3 - r1) * (r2 - r1) + z1); @@ -317,9 +317,9 @@ namespace lst { float coshEta = dr3_InSeg / drt_InSeg; float dzErr = (zpitchIn + zpitchOut) * (zpitchIn + zpitchOut) * 2.f; - float sdlThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rtOut - rtIn) / 50.f) * (r3In / rtIn); - float sdlMuls2 = sdlThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; - dzErr += sdlMuls2 * drt_OutIn * drt_OutIn / 3.f * coshEta * coshEta; + float lstThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rtOut - rtIn) / 50.f) * (r3In / rtIn); + float lstMuls2 = lstThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; + dzErr += lstMuls2 * drt_OutIn * drt_OutIn / 3.f * coshEta * coshEta; dzErr = alpaka::math::sqrt(acc, dzErr); // Constructing upper and lower bound @@ -435,9 +435,9 @@ namespace lst { const float kZ = (zOut - zIn) / dzSDIn; float drtErr = zGeom1_another * zGeom1_another * drtSDIn * drtSDIn / dzSDIn / dzSDIn * (1.f - 2.f * kZ + 2.f * kZ * kZ); - const float sdlThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2 * (rtOut - rtIn) / 50.f) * (rIn / rtIn); - const float sdlMuls2 = sdlThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; - drtErr += sdlMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta; + const float lstThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2 * (rtOut - rtIn) / 50.f) * (rIn / rtIn); + const float lstMuls2 = lstThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; + drtErr += lstMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta; drtErr = alpaka::math::sqrt(acc, drtErr); //Cut #3: rt-z pointed @@ -545,14 +545,14 @@ namespace lst { float multDzDr = dzOutInAbs * coshEta / (coshEta * coshEta - 1.f); float kZ = (zOut - zIn) / dzSDIn; - float sdlThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rtOut - rtIn) / 50.f); + float lstThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rtOut - rtIn) / 50.f); - float sdlMuls2 = sdlThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; + float lstMuls2 = lstThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; float drtErr = alpaka::math::sqrt( acc, lst::kPixelPSZpitch * lst::kPixelPSZpitch * 2.f / (dzSDIn * dzSDIn) * (dzOutInAbs * dzOutInAbs) + - sdlMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta); + lstMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta); float drtMean = drtSDIn * dzOutInAbs / alpaka::math::abs(acc, dzSDIn); float rtWindow = drtErr + rtGeom; From d378a5955e4e94199cbba415aea4c6248857c5b1 Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Tue, 30 Jul 2024 10:33:43 -0700 Subject: [PATCH 31/35] Removal of sdl/SDL from all standalone code --- RecoTracker/LSTCore/standalone/.gitignore | 8 +- .../standalone/{SDL => LST}/.gitignore | 0 .../LSTCore/standalone/{SDL => LST}/Makefile | 16 +- RecoTracker/LSTCore/standalone/Makefile | 24 +- .../LSTCore/standalone/bin/{sdl.cc => lst.cc} | 8 +- .../LSTCore/standalone/bin/{sdl.h => lst.h} | 8 +- ..._make_tracklooper => lst_make_tracklooper} | 48 +- .../standalone/bin/{sdl_run => lst_run} | 22 +- .../standalone/code/core/AnalysisConfig.h | 2 +- ...rite_sdl_ntuple.cc => write_lst_ntuple.cc} | 2 +- ...{write_sdl_ntuple.h => write_lst_ntuple.h} | 4 +- .../LSTCore/standalone/efficiency/Makefile | 8 +- .../efficiency/bin/{sdl_timing => lst_timing} | 12 +- .../efficiency/src/{SDL.cc => LSTEff.cc} | 596 +++++++++--------- .../efficiency/src/{SDL.h => LSTEff.h} | 8 +- .../standalone/efficiency/src/helper.cc | 2 +- .../standalone/efficiency/src/helper.h | 4 +- .../standalone/efficiency/src/performance.cc | 118 ++-- .../standalone/efficiency/src/performance.h | 2 +- RecoTracker/LSTCore/standalone/setup.sh | 2 +- RecoTracker/LSTCore/standalone/setup_hpg.sh | 49 -- 21 files changed, 447 insertions(+), 496 deletions(-) rename RecoTracker/LSTCore/standalone/{SDL => LST}/.gitignore (100%) rename RecoTracker/LSTCore/standalone/{SDL => LST}/Makefile (97%) rename RecoTracker/LSTCore/standalone/bin/{sdl.cc => lst.cc} (99%) rename RecoTracker/LSTCore/standalone/bin/{sdl.h => lst.h} (83%) rename RecoTracker/LSTCore/standalone/bin/{sdl_make_tracklooper => lst_make_tracklooper} (88%) rename RecoTracker/LSTCore/standalone/bin/{sdl_run => lst_run} (87%) rename RecoTracker/LSTCore/standalone/code/core/{write_sdl_ntuple.cc => write_lst_ntuple.cc} (99%) rename RecoTracker/LSTCore/standalone/code/core/{write_sdl_ntuple.h => write_lst_ntuple.h} (97%) rename RecoTracker/LSTCore/standalone/efficiency/bin/{sdl_timing => lst_timing} (93%) rename RecoTracker/LSTCore/standalone/efficiency/src/{SDL.cc => LSTEff.cc} (83%) rename RecoTracker/LSTCore/standalone/efficiency/src/{SDL.h => LSTEff.h} (99%) delete mode 100644 RecoTracker/LSTCore/standalone/setup_hpg.sh diff --git a/RecoTracker/LSTCore/standalone/.gitignore b/RecoTracker/LSTCore/standalone/.gitignore index aae6f2984e8cc..29e86cb6b932a 100644 --- a/RecoTracker/LSTCore/standalone/.gitignore +++ b/RecoTracker/LSTCore/standalone/.gitignore @@ -10,10 +10,10 @@ scripts/moduleconnection*.txt *.root .make.log* bin/doAnalysis -bin/sdl -bin/sdl_cuda -bin/sdl_cpu -bin/sdl_rocm +bin/lst +bin/lst_cuda +bin/lst_cpu +bin/lst_rocm code/rooutil/librooutil.so code/rooutil/rooutil.so .gitversion.txt diff --git a/RecoTracker/LSTCore/standalone/SDL/.gitignore b/RecoTracker/LSTCore/standalone/LST/.gitignore similarity index 100% rename from RecoTracker/LSTCore/standalone/SDL/.gitignore rename to RecoTracker/LSTCore/standalone/LST/.gitignore diff --git a/RecoTracker/LSTCore/standalone/SDL/Makefile b/RecoTracker/LSTCore/standalone/LST/Makefile similarity index 97% rename from RecoTracker/LSTCore/standalone/SDL/Makefile rename to RecoTracker/LSTCore/standalone/LST/Makefile index 4a90bd4c1301c..ba5e19e6a2779 100644 --- a/RecoTracker/LSTCore/standalone/SDL/Makefile +++ b/RecoTracker/LSTCore/standalone/LST/Makefile @@ -15,23 +15,23 @@ LSTOBJECTS_ROCM=$(patsubst ../../src/alpaka/%.dev.cc, %_rocm.o, $(LSTSOURCES)) # Default to CPU and CUDA backends ifeq ($(BACKEND),) - LIB_CPU=libsdl_cpu.so - LIB_CUDA=libsdl_cuda.so + LIB_CPU=liblst_cpu.so + LIB_CUDA=liblst_cuda.so endif ifneq ($(findstring cpu,$(BACKEND)),) - LIB_CPU=libsdl_cpu.so + LIB_CPU=liblst_cpu.so endif ifneq ($(findstring cuda,$(BACKEND)),) - LIB_CUDA=libsdl_cuda.so + LIB_CUDA=liblst_cuda.so endif ifneq ($(findstring rocm,$(BACKEND)),) - LIB_ROCM=libsdl_rocm.so + LIB_ROCM=liblst_rocm.so endif ifneq ($(findstring all,$(BACKEND)),) - LIB_CPU=libsdl_cpu.so - LIB_CUDA=libsdl_cuda.so - LIB_ROCM=libsdl_rocm.so + LIB_CPU=liblst_cpu.so + LIB_CUDA=liblst_cuda.so + LIB_ROCM=liblst_rocm.so endif LIBS=$(LIB_CPU) $(LIB_CUDA) $(LIB_ROCM) diff --git a/RecoTracker/LSTCore/standalone/Makefile b/RecoTracker/LSTCore/standalone/Makefile index bd33806a3c059..efcd2483c5eba 100644 --- a/RecoTracker/LSTCore/standalone/Makefile +++ b/RecoTracker/LSTCore/standalone/Makefile @@ -1,6 +1,6 @@ # Simple makefile -EXES := bin/sdl_cpu bin/sdl_cuda +EXES := bin/lst_cpu bin/lst_cuda SOURCES=$(wildcard code/core/*.cc) OBJECTS_CPU=$(SOURCES:.cc=_cpu.o) @@ -10,11 +10,11 @@ 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/ -I../interface/alpaka/ -I../src/ -I../src/alpaka/ +INCLUDEFLAGS= -ILST -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 -LDFLAGS = -g -O2 $(SDLLIB) -L${TRACKLOOPERDIR}/SDL $(shell rooutil-config --libs) $(shell root-config --libs) +LDFLAGS = -g -O2 $(LSTLIB) -L${TRACKLOOPERDIR}/LST $(shell rooutil-config --libs) $(shell root-config --libs) LDFLAGS_CUDA= -L${CUDA_HOME}/lib64 -lcudart LDFLAGS_ROCM= -L${ROCM_ROOT}/lib -lamdhip64 ALPAKAFLAGS = -DALPAKA_DEBUG=0 @@ -45,14 +45,14 @@ cutvalue_primitive: PRIMITIVEFLAG = ${PRIMITIVEFLAG_FLAGS} cutvalue_primitive: rooutil efficiency $(EXES) -bin/sdl_cpu: SDLLIB=-lsdl_cpu -bin/sdl_cpu: bin/sdl_cpu.o $(OBJECTS_CPU) +bin/lst_cpu: LSTLIB=-llst_cpu +bin/lst_cpu: bin/lst_cpu.o $(OBJECTS_CPU) $(CXX) $(LDFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $^ $(ROOTLIBS) $(PTCUTFLAG) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_CPU) -o $@ -bin/sdl_cuda: SDLLIB=-lsdl_cuda -bin/sdl_cuda: bin/sdl_cuda.o $(OBJECTS_CUDA) +bin/lst_cuda: LSTLIB=-llst_cuda +bin/lst_cuda: bin/lst_cuda.o $(OBJECTS_CUDA) $(CXX) $(LDFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $^ $(ROOTLIBS) $(PTCUTFLAG) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_CUDA) $(LDFLAGS_CUDA) -o $@ -bin/sdl_rocm: SDLLIB=-lsdl_rocm -bin/sdl_rocm: bin/sdl_rocm.o $(OBJECTS_ROCM) +bin/lst_rocm: LSTLIB=-llst_rocm +bin/lst_rocm: bin/lst_rocm.o $(OBJECTS_ROCM) $(CXX) $(LDFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $^ $(ROOTLIBS) $(PTCUTFLAG) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_ROCM) $(LDFLAGS_ROCM) -o $@ %_cpu.o: %.cc rooutil @@ -69,10 +69,10 @@ efficiency: rooutil $(MAKE) -C efficiency/ clean: - rm -f $(OBJECTS) bin/*.o $(EXES) bin/sdl + rm -f $(OBJECTS) bin/*.o $(EXES) bin/lst rm -f code/rooutil/*.so code/rooutil/*.o - rm -f bin/sdl.o - rm -f SDL/*.o + rm -f bin/lst.o + rm -f LST/*.o cd efficiency/ && make clean .PHONY: rooutil efficiency diff --git a/RecoTracker/LSTCore/standalone/bin/sdl.cc b/RecoTracker/LSTCore/standalone/bin/lst.cc similarity index 99% rename from RecoTracker/LSTCore/standalone/bin/sdl.cc rename to RecoTracker/LSTCore/standalone/bin/lst.cc index 3795cdc15bc4f..e67fe5b62d269 100644 --- a/RecoTracker/LSTCore/standalone/bin/sdl.cc +++ b/RecoTracker/LSTCore/standalone/bin/lst.cc @@ -1,4 +1,4 @@ -#include "sdl.h" +#include "lst.h" #include @@ -37,7 +37,7 @@ int main(int argc, char **argv) { // cxxopts is just a tool to parse argc, and argv easily // Grand option setting - cxxopts::Options options("\n $ sdl", + cxxopts::Options options("\n $ lst", "\n **********************\n * *\n * " "Looper *\n * *\n **********************\n"); @@ -291,13 +291,13 @@ int main(int argc, char **argv) { writeMetaData(); // Run the code - run_sdl(); + run_lst(); return 0; } //___________________________________________________________________________________________________________________________________________________________________________________________ -void run_sdl() { +void run_lst() { Device devAcc = alpaka::getDevByIdx(ALPAKA_ACCELERATOR_NAMESPACE::Platform{}, 0u); std::vector queues; for (int s = 0; s < ana.streams; s++) { diff --git a/RecoTracker/LSTCore/standalone/bin/sdl.h b/RecoTracker/LSTCore/standalone/bin/lst.h similarity index 83% rename from RecoTracker/LSTCore/standalone/bin/sdl.h rename to RecoTracker/LSTCore/standalone/bin/lst.h index d4e1ff658945b..4a5699a1dd59f 100644 --- a/RecoTracker/LSTCore/standalone/bin/sdl.h +++ b/RecoTracker/LSTCore/standalone/bin/lst.h @@ -1,5 +1,5 @@ -#ifndef sdl_h -#define sdl_h +#ifndef lst_h +#define lst_h #include #include @@ -20,11 +20,11 @@ // Efficiency study modules #include "AnalysisConfig.h" #include "trkCore.h" -#include "write_sdl_ntuple.h" +#include "write_lst_ntuple.h" #include "TSystem.h" // Main code -void run_sdl(); +void run_lst(); #endif diff --git a/RecoTracker/LSTCore/standalone/bin/sdl_make_tracklooper b/RecoTracker/LSTCore/standalone/bin/lst_make_tracklooper similarity index 88% rename from RecoTracker/LSTCore/standalone/bin/sdl_make_tracklooper rename to RecoTracker/LSTCore/standalone/bin/lst_make_tracklooper index 2cadee47be49c..bb77aa67cdf7f 100755 --- a/RecoTracker/LSTCore/standalone/bin/sdl_make_tracklooper +++ b/RecoTracker/LSTCore/standalone/bin/lst_make_tracklooper @@ -21,7 +21,7 @@ usage() echo " -h Help (Display this message)" echo " -c cache (Make library with cache enabled)" echo " -s show log (Full compilation script to stdout)" - echo " -m make clean binaries (Make clean binaries before remake. e.g. when header files changed in SDL/*.h)" + echo " -m make clean binaries (Make clean binaries before remake. e.g. when header files changed in LST/*.h)" echo " -d cut value ntuple (With extra variables in a debug ntuple file)" echo " -p primitive object ntuple (With extra variables related to primitive objects)" echo " -N neural networks (Toggle LST neural networks)" @@ -123,8 +123,8 @@ if $MAKECACHE; then MAKETARGET=${MAKETARGET}_cache; fi # If make clean binaries are called then first make clean before making if $MAKECLEANBINARIES; then - echo "First make cleaning all of TrackLooper objects and libsdl*.so" | tee -a ${LOG} - cd SDL;make clean >>${LOG} 2>&1;cd -; + echo "First make cleaning all of TrackLooper objects and liblst*.so" | tee -a ${LOG} + cd LST;make clean >>${LOG} 2>&1;cd -; make clean >> ${LOG} 2>&1 fi #if make cut value is called then cut value ntuple making is done @@ -152,19 +152,19 @@ BACKENDOPT="BACKEND=" EXES= if [ "${ALLBACKENDS}" == true ]; then BACKENDOPT="BACKEND=all" - EXES="bin/sdl_cpu bin/sdl_cuda bin/sdl_rocm" + EXES="bin/lst_cpu bin/lst_cuda bin/lst_rocm" else if [ "${CPUBACKEND}" == true ]; then BACKENDOPT=$BACKENDOPT"cpu," - EXES="$EXES bin/sdl_cpu" + EXES="$EXES bin/lst_cpu" fi if [ "${CUDABACKEND}" == true ]; then BACKENDOPT=$BACKENDOPT"cuda," - EXES="$EXES bin/sdl_cuda" + EXES="$EXES bin/lst_cuda" fi if [ "${ROCMBACKEND}" == true ]; then BACKENDOPT=$BACKENDOPT"rocm," - EXES="$EXES bin/sdl_rocm" + EXES="$EXES bin/lst_rocm" fi fi @@ -187,21 +187,21 @@ echo "-------------------------------------------------------------------------- echo "---------------------------------------------------------------------------------------------" >> ${LOG} 2>&1 echo "---------------------------------------------------------------------------------------------" >> ${LOG} 2>&1 if $SHOWLOG; then - (cd SDL && make clean && make ${T5CUTOPT} ${BACKENDOPT} ${PRINTWARNINGSOPT} ${PTCUTOPT} -j 32 ${MAKETARGET} && cd -) 2>&1 | tee -a ${LOG} + (cd LST && make clean && make ${T5CUTOPT} ${BACKENDOPT} ${PRINTWARNINGSOPT} ${PTCUTOPT} -j 32 ${MAKETARGET} && cd -) 2>&1 | tee -a ${LOG} else - (cd SDL && make clean && make ${T5CUTOPT} ${BACKENDOPT} ${PRINTWARNINGSOPT} ${PTCUTOPT} -j 32 ${MAKETARGET} && cd -) >> ${LOG} 2>&1 + (cd LST && make clean && make ${T5CUTOPT} ${BACKENDOPT} ${PRINTWARNINGSOPT} ${PTCUTOPT} -j 32 ${MAKETARGET} && cd -) >> ${LOG} 2>&1 fi -if ([[ "$BACKENDOPT" == *"all"* ]] || [[ "$BACKENDOPT" == *"cpu"* ]]) && [ ! -f SDL/libsdl_cpu.so ]; then - echo "ERROR: libsdl_cpu.so failed to compile!" | tee -a ${LOG} +if ([[ "$BACKENDOPT" == *"all"* ]] || [[ "$BACKENDOPT" == *"cpu"* ]]) && [ ! -f LST/liblst_cpu.so ]; then + echo "ERROR: liblst_cpu.so failed to compile!" | tee -a ${LOG} echo "See ${LOG} file for more detail..." | tee -a ${LOG} exit 1 -elif ([[ "$BACKENDOPT" == *"all"* ]] || [[ "$BACKENDOPT" == *"cuda"* ]]) && [ ! -f SDL/libsdl_cuda.so ]; then - echo "ERROR: libsdl_cuda.so failed to compile!" | tee -a ${LOG} +elif ([[ "$BACKENDOPT" == *"all"* ]] || [[ "$BACKENDOPT" == *"cuda"* ]]) && [ ! -f LST/liblst_cuda.so ]; then + echo "ERROR: liblst_cuda.so failed to compile!" | tee -a ${LOG} echo "See ${LOG} file for more detail..." | tee -a ${LOG} exit 1 -elif ([[ "$BACKENDOPT" == *"all"* ]] || [[ "$BACKENDOPT" == *"rocm"* ]]) && [ ! -f SDL/libsdl_rocm.so ]; then - echo "ERROR: libsdl_rocm.so failed to compile!" | tee -a ${LOG} +elif ([[ "$BACKENDOPT" == *"all"* ]] || [[ "$BACKENDOPT" == *"rocm"* ]]) && [ ! -f LST/liblst_rocm.so ]; then + echo "ERROR: liblst_rocm.so failed to compile!" | tee -a ${LOG} echo "See ${LOG} file for more detail..." | tee -a ${LOG} exit 1 fi @@ -229,27 +229,27 @@ else make EXES="${EXES}" ${TRACKLOOPERTARGET} ${PTCUTOPT} -j >> ${LOG} 2>&1 fi -if ([[ "$BACKENDOPT" == *"all"* ]] || [[ "$BACKENDOPT" == *"cpu"* ]]) && [ ! -f bin/sdl_cpu ]; then - echo "ERROR: bin/sdl_cpu failed to compile!" | tee -a ${LOG} +if ([[ "$BACKENDOPT" == *"all"* ]] || [[ "$BACKENDOPT" == *"cpu"* ]]) && [ ! -f bin/lst_cpu ]; then + echo "ERROR: bin/lst_cpu failed to compile!" | tee -a ${LOG} echo "See ${LOG} file for more detail..." | tee -a ${LOG} exit 1 -elif ([[ "$BACKENDOPT" == *"all"* ]] || [[ "$BACKENDOPT" == *"cuda"* ]]) && [ ! -f bin/sdl_cuda ]; then - echo "ERROR: bin/sdl_cuda failed to compile!" | tee -a ${LOG} +elif ([[ "$BACKENDOPT" == *"all"* ]] || [[ "$BACKENDOPT" == *"cuda"* ]]) && [ ! -f bin/lst_cuda ]; then + echo "ERROR: bin/lst_cuda failed to compile!" | tee -a ${LOG} echo "See ${LOG} file for more detail..." | tee -a ${LOG} exit 1 -elif ([[ "$BACKENDOPT" == *"all"* ]] || [[ "$BACKENDOPT" == *"rocm"* ]]) && [ ! -f bin/sdl_rocm ]; then - echo "ERROR: bin/sdl_rocm failed to compile!" | tee -a ${LOG} +elif ([[ "$BACKENDOPT" == *"all"* ]] || [[ "$BACKENDOPT" == *"rocm"* ]]) && [ ! -f bin/lst_rocm ]; then + echo "ERROR: bin/lst_rocm failed to compile!" | tee -a ${LOG} echo "See ${LOG} file for more detail..." | tee -a ${LOG} exit 1 fi # Make a symlink with priority CUDA > CPU > ROCM if [ "${CUDABACKEND}" == true ]; then - ln -sfr bin/sdl_cuda bin/sdl + ln -sfr bin/lst_cuda bin/lst elif [ "${CPUBACKEND}" == true ]; then - ln -sfr bin/sdl_cpu bin/sdl + ln -sfr bin/lst_cpu bin/lst elif [ "${ROCMBACKEND}" == true ]; then - ln -sfr bin/sdl_rocm bin/sdl + ln -sfr bin/lst_rocm bin/lst fi echo "" >> ${LOG} diff --git a/RecoTracker/LSTCore/standalone/bin/sdl_run b/RecoTracker/LSTCore/standalone/bin/lst_run similarity index 87% rename from RecoTracker/LSTCore/standalone/bin/sdl_run rename to RecoTracker/LSTCore/standalone/bin/lst_run index 2ed9c20fb7949..6240b0b79a402 100755 --- a/RecoTracker/LSTCore/standalone/bin/sdl_run +++ b/RecoTracker/LSTCore/standalone/bin/lst_run @@ -25,7 +25,7 @@ usage() echo " -t tag for this run (Tag for this run)" echo " -d delete previous output (Delete the previous outputs and re-run)" echo " -b backend (Select a backend: cuda or cpu; default cuda)" - echo " -a arguments (Add command line arguments to the sdl command)" + echo " -a arguments (Add command line arguments to the lst command)" echo exit } @@ -102,7 +102,7 @@ file_already_exists() { echo "ERROR - Output already exists!" echo "" - echo " Out of caution, the sdl_run fails to run if the following .root output files already exists:" + echo " Out of caution, the lst_run fails to run if the following .root output files already exists:" echo "" if [ -f "$LSTNTUPLEOUTPUT" ]; then echo " $LSTNTUPLEOUTPUT already exists." @@ -132,31 +132,31 @@ mkdir -p ${LSTOUTPUTDIR} rm -f ${LSTOUTPUTDIR}/${JOBTAG}__LSTRun.log if [[ ${PRECOMPILED} != true ]]; then echo "Compiling code..." - sdl_make_tracklooper ${FLAGS} >> ${LSTOUTPUTDIR}/${JOBTAG}__LSTRun.log + lst_make_tracklooper ${FLAGS} >> ${LSTOUTPUTDIR}/${JOBTAG}__LSTRun.log fi # If a backend is specified then make sure that corresponding library exists # and make a symbolic link to the correct binary if [ "${BACKEND}" == "cuda" ]; then - if [ ! -f ${TRACKLOOPERDIR}/SDL/libsdl_cuda.so ]; then + if [ ! -f ${TRACKLOOPERDIR}/LST/liblst_cuda.so ]; then echo "Error: CUDA backend was not compiled." exit 1 fi - ln -s -f ${TRACKLOOPERDIR}/bin/sdl_cuda ${TRACKLOOPERDIR}/bin/sdl + ln -s -f ${TRACKLOOPERDIR}/bin/lst_cuda ${TRACKLOOPERDIR}/bin/lst elif [ "${BACKEND}" == "cpu" ]; then - if [ ! -f ${TRACKLOOPERDIR}/SDL/libsdl_cpu.so ]; then + if [ ! -f ${TRACKLOOPERDIR}/LST/liblst_cpu.so ]; then echo "Error: CPU backend was not compiled." exit 1 fi - ln -s -f ${TRACKLOOPERDIR}/bin/sdl_cpu ${TRACKLOOPERDIR}/bin/sdl + ln -s -f ${TRACKLOOPERDIR}/bin/lst_cpu ${TRACKLOOPERDIR}/bin/lst elif [ "${BACKEND}" == "rocm" ]; then - if [ ! -f ${TRACKLOOPERDIR}/SDL/libsdl_rocm.so ]; then + if [ ! -f ${TRACKLOOPERDIR}/LST/liblst_rocm.so ]; then echo "Error: ROCM backend was not compiled." exit 1 fi - ln -s -f ${TRACKLOOPERDIR}/bin/sdl_rocm ${TRACKLOOPERDIR}/bin/sdl + ln -s -f ${TRACKLOOPERDIR}/bin/lst_rocm ${TRACKLOOPERDIR}/bin/lst elif [ "${BACKEND}" == "default" ]; then - if [[ ! -e ${TRACKLOOPERDIR}/bin/sdl ]]; then + if [[ ! -e ${TRACKLOOPERDIR}/bin/lst ]]; then echo "Error: default backend was not found. Please recompile." exit 1 fi @@ -166,7 +166,7 @@ else fi echo "Running LST code..." -sdl -i ${SAMPLE} -o ${LSTOUTPUTDIR}/${JOBTAG}__LSTNtuple.root -n ${NEVENTS} ${ARGUMENTS} >> ${LSTOUTPUTDIR}/${JOBTAG}__LSTRun.log 2>&1 || { echo 'ERROR: sdl command failed!' ; exit 1; } +lst -i ${SAMPLE} -o ${LSTOUTPUTDIR}/${JOBTAG}__LSTNtuple.root -n ${NEVENTS} ${ARGUMENTS} >> ${LSTOUTPUTDIR}/${JOBTAG}__LSTRun.log 2>&1 || { echo 'ERROR: lst command failed!' ; exit 1; } echo "Creating performance histograms..." createPerfNumDenHists -i ${LSTOUTPUTDIR}/${JOBTAG}__LSTNtuple.root -o ${LSTOUTPUTDIR}/${JOBTAG}__LSTNumDen.root >> ${LSTOUTPUTDIR}/${JOBTAG}__LSTRun.log 2>&1 || { echo 'ERROR: createPerfNumDenHists command failed!' ; exit 1; } echo "Creating plots..." diff --git a/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h b/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h index e06e5e7af26f4..8608bc95ed2fa 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h +++ b/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h @@ -93,7 +93,7 @@ class AnalysisConfig { RooUtil::TTreeX* tx; // Boolean to control whether to write ntuple or not - bool write_sdl_ntuple; + bool write_lst_ntuple; // Module boundaries related info std::map> moduleBoundaries; diff --git a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc b/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.cc similarity index 99% rename from RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc rename to RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.cc index 03ea4515142ad..33eaeefc2d796 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.cc +++ b/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.cc @@ -1,4 +1,4 @@ -#include "write_sdl_ntuple.h" +#include "write_lst_ntuple.h" using namespace ALPAKA_ACCELERATOR_NAMESPACE; diff --git a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h b/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.h similarity index 97% rename from RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h rename to RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.h index 4e3db30caf1fc..cd20553772b9a 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_sdl_ntuple.h +++ b/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.h @@ -1,5 +1,5 @@ -#ifndef write_sdl_ntuple_h -#define write_sdl_ntuple_h +#ifndef write_lst_ntuple_h +#define write_lst_ntuple_h #include #include diff --git a/RecoTracker/LSTCore/standalone/efficiency/Makefile b/RecoTracker/LSTCore/standalone/efficiency/Makefile index 53d375bdf4063..ad4bd538ff7a8 100644 --- a/RecoTracker/LSTCore/standalone/efficiency/Makefile +++ b/RecoTracker/LSTCore/standalone/efficiency/Makefile @@ -23,10 +23,10 @@ EXTRAFLAGS = -fPIC -ITMultiDrawTreePlayer -Wunused-variable -lTMVA -lEG -lGenVe all: rooutil $(EXE) -$(EXE): src/performance.o src/helper.o src/SDL.o - $(LD) $(CXXFLAGS) $(LDFLAGS) src/performance.o src/helper.o src/SDL.o $(ROOTLIBS) $(EXTRAFLAGS) -o $@ +$(EXE): src/performance.o src/helper.o src/LSTEff.o + $(LD) $(CXXFLAGS) $(LDFLAGS) src/performance.o src/helper.o src/LSTEff.o $(ROOTLIBS) $(EXTRAFLAGS) -o $@ -src/SDL.o: src/SDL.cc src/SDL.h +src/LSTEff.o: src/LSTEff.cc src/LSTEff.h $(CC) $(CFLAGS) $(EXTRACFLAGS) $< -c -o $@ src/performance.o: src/performance.cc src/performance.h @@ -39,6 +39,6 @@ rooutil: $(MAKE) -C ../code/rooutil clean: - rm -r src/performance.o src/helper.o src/SDL.o $(EXE) + rm -r src/performance.o src/helper.o src/LSTEff.o $(EXE) .PHONY: all clean rooutil diff --git a/RecoTracker/LSTCore/standalone/efficiency/bin/sdl_timing b/RecoTracker/LSTCore/standalone/efficiency/bin/lst_timing similarity index 93% rename from RecoTracker/LSTCore/standalone/efficiency/bin/sdl_timing rename to RecoTracker/LSTCore/standalone/efficiency/bin/lst_timing index 15c238217633b..0a359d1fe0fe6 100755 --- a/RecoTracker/LSTCore/standalone/efficiency/bin/sdl_timing +++ b/RecoTracker/LSTCore/standalone/efficiency/bin/lst_timing @@ -7,9 +7,9 @@ run_rocm() nevents=$3 shift 3 # ROCm backend - sdl_make_tracklooper -mR $* + lst_make_tracklooper -mR $* for s_value in 1 2 4 6 8; do - sdl -n ${NEVENTS} -o ${OUTDIR}/rocm_${version}_s${s_value}.root -v 1 -w 0 -s ${s_value} -i ${sample} | tee -a timing_temp.txt + lst -n ${NEVENTS} -o ${OUTDIR}/rocm_${version}_s${s_value}.root -v 1 -w 0 -s ${s_value} -i ${sample} | tee -a timing_temp.txt done } @@ -20,9 +20,9 @@ run_cuda() nevents=$3 shift 3 # CUDA backend - sdl_make_tracklooper -mG $* + lst_make_tracklooper -mG $* for s_value in 1 2 4 6 8; do - sdl -n ${NEVENTS} -o ${OUTDIR}/cuda_${version}_s${s_value}.root -v 1 -w 0 -s ${s_value} -i ${sample} | tee -a timing_temp.txt + lst -n ${NEVENTS} -o ${OUTDIR}/cuda_${version}_s${s_value}.root -v 1 -w 0 -s ${s_value} -i ${sample} | tee -a timing_temp.txt done } @@ -33,9 +33,9 @@ run_cpu() nevents=$3 shift 3 # CPU backend - sdl_make_tracklooper -mC $* + lst_make_tracklooper -mC $* for s_value in 1 4 16 32 64; do - sdl -n ${NEVENTS} -o ${OUTDIR}/cpu_${version}_s${s_value}.root -v 1 -w 0 -s ${s_value} -i ${sample} | tee -a timing_temp.txt + lst -n ${NEVENTS} -o ${OUTDIR}/cpu_${version}_s${s_value}.root -v 1 -w 0 -s ${s_value} -i ${sample} | tee -a timing_temp.txt done } diff --git a/RecoTracker/LSTCore/standalone/efficiency/src/SDL.cc b/RecoTracker/LSTCore/standalone/efficiency/src/LSTEff.cc similarity index 83% rename from RecoTracker/LSTCore/standalone/efficiency/src/SDL.cc rename to RecoTracker/LSTCore/standalone/efficiency/src/LSTEff.cc index 2f6d55d8d3415..6474f9a17ae04 100644 --- a/RecoTracker/LSTCore/standalone/efficiency/src/SDL.cc +++ b/RecoTracker/LSTCore/standalone/efficiency/src/LSTEff.cc @@ -1,7 +1,7 @@ -#include "SDL.h" -SDL sdl; +#include "LSTEff.h" +LSTEff lstEff; -void SDL::Init(TTree *tree) { +void LSTEff::Init(TTree *tree) { tree->SetMakeClass(1); pT5_occupancies_branch = 0; if (tree->GetBranch("pT5_occupancies") != 0) { @@ -1027,7 +1027,7 @@ void SDL::Init(TTree *tree) { } tree->SetMakeClass(0); } -void SDL::GetEntry(unsigned int idx) { +void LSTEff::GetEntry(unsigned int idx) { index = idx; pT5_occupancies_isLoaded = false; t3_phi_isLoaded = false; @@ -1176,7 +1176,7 @@ void SDL::GetEntry(unsigned int idx) { tce_rzChiSquared_isLoaded = false; pT3_matched_simIdx_isLoaded = false; } -void SDL::LoadAllBranches() { +void LSTEff::LoadAllBranches() { if (pT5_occupancies_branch != 0) pT5_occupancies(); if (t3_phi_branch != 0) @@ -1470,7 +1470,7 @@ void SDL::LoadAllBranches() { if (pT3_matched_simIdx_branch != 0) pT3_matched_simIdx(); } -const int &SDL::pT5_occupancies() { +const int &LSTEff::pT5_occupancies() { if (not pT5_occupancies_isLoaded) { if (pT5_occupancies_branch != 0) { pT5_occupancies_branch->GetEntry(index); @@ -1482,7 +1482,7 @@ const int &SDL::pT5_occupancies() { } return pT5_occupancies_; } -const std::vector &SDL::t3_phi() { +const std::vector &LSTEff::t3_phi() { if (not t3_phi_isLoaded) { if (t3_phi_branch != 0) { t3_phi_branch->GetEntry(index); @@ -1494,7 +1494,7 @@ const std::vector &SDL::t3_phi() { } return *t3_phi_; } -const std::vector &SDL::t5_score_rphisum() { +const std::vector &LSTEff::t5_score_rphisum() { if (not t5_score_rphisum_isLoaded) { if (t5_score_rphisum_branch != 0) { t5_score_rphisum_branch->GetEntry(index); @@ -1506,7 +1506,7 @@ const std::vector &SDL::t5_score_rphisum() { } return *t5_score_rphisum_; } -const std::vector &SDL::pT4_isFake() { +const std::vector &LSTEff::pT4_isFake() { if (not pT4_isFake_isLoaded) { if (pT4_isFake_branch != 0) { pT4_isFake_branch->GetEntry(index); @@ -1518,7 +1518,7 @@ const std::vector &SDL::pT4_isFake() { } return *pT4_isFake_; } -const std::vector &SDL::t3_isDuplicate() { +const std::vector &LSTEff::t3_isDuplicate() { if (not t3_isDuplicate_isLoaded) { if (t3_isDuplicate_branch != 0) { t3_isDuplicate_branch->GetEntry(index); @@ -1530,7 +1530,7 @@ const std::vector &SDL::t3_isDuplicate() { } return *t3_isDuplicate_; } -const std::vector &SDL::sim_event() { +const std::vector &LSTEff::sim_event() { if (not sim_event_isLoaded) { if (sim_event_branch != 0) { sim_event_branch->GetEntry(index); @@ -1542,7 +1542,7 @@ const std::vector &SDL::sim_event() { } return *sim_event_; } -const std::vector &SDL::sim_q() { +const std::vector &LSTEff::sim_q() { if (not sim_q_isLoaded) { if (sim_q_branch != 0) { sim_q_branch->GetEntry(index); @@ -1554,7 +1554,7 @@ const std::vector &SDL::sim_q() { } return *sim_q_; } -const std::vector &SDL::sim_eta() { +const std::vector &LSTEff::sim_eta() { if (not sim_eta_isLoaded) { if (sim_eta_branch != 0) { sim_eta_branch->GetEntry(index); @@ -1566,7 +1566,7 @@ const std::vector &SDL::sim_eta() { } return *sim_eta_; } -const std::vector &SDL::pT3_foundDuplicate() { +const std::vector &LSTEff::pT3_foundDuplicate() { if (not pT3_foundDuplicate_isLoaded) { if (pT3_foundDuplicate_branch != 0) { pT3_foundDuplicate_branch->GetEntry(index); @@ -1578,7 +1578,7 @@ const std::vector &SDL::pT3_foundDuplicate() { } return *pT3_foundDuplicate_; } -const std::vector &SDL::sim_len() { +const std::vector &LSTEff::sim_len() { if (not sim_len_isLoaded) { if (sim_len_branch != 0) { sim_len_branch->GetEntry(index); @@ -1590,7 +1590,7 @@ const std::vector &SDL::sim_len() { } return *sim_len_; } -const std::vector &SDL::pureTCE_isDuplicate() { +const std::vector &LSTEff::pureTCE_isDuplicate() { if (not pureTCE_isDuplicate_isLoaded) { if (pureTCE_isDuplicate_branch != 0) { pureTCE_isDuplicate_branch->GetEntry(index); @@ -1602,7 +1602,7 @@ const std::vector &SDL::pureTCE_isDuplicate() { } return *pureTCE_isDuplicate_; } -const std::vector &SDL::pT3_score() { +const std::vector &LSTEff::pT3_score() { if (not pT3_score_isLoaded) { if (pT3_score_branch != 0) { pT3_score_branch->GetEntry(index); @@ -1614,7 +1614,7 @@ const std::vector &SDL::pT3_score() { } return *pT3_score_; } -const std::vector &SDL::t5_eta() { +const std::vector &LSTEff::t5_eta() { if (not t5_eta_isLoaded) { if (t5_eta_branch != 0) { t5_eta_branch->GetEntry(index); @@ -1626,7 +1626,7 @@ const std::vector &SDL::t5_eta() { } return *t5_eta_; } -const std::vector &SDL::sim_denom() { +const std::vector &LSTEff::sim_denom() { if (not sim_denom_isLoaded) { if (sim_denom_branch != 0) { sim_denom_branch->GetEntry(index); @@ -1638,7 +1638,7 @@ const std::vector &SDL::sim_denom() { } return *sim_denom_; } -const std::vector &SDL::pT5_isDuplicate() { +const std::vector &LSTEff::pT5_isDuplicate() { if (not pT5_isDuplicate_isLoaded) { if (pT5_isDuplicate_branch != 0) { pT5_isDuplicate_branch->GetEntry(index); @@ -1650,7 +1650,7 @@ const std::vector &SDL::pT5_isDuplicate() { } return *pT5_isDuplicate_; } -const std::vector &SDL::sim_tce_matched() { +const std::vector &LSTEff::sim_tce_matched() { if (not sim_tce_matched_isLoaded) { if (sim_tce_matched_branch != 0) { sim_tce_matched_branch->GetEntry(index); @@ -1662,7 +1662,7 @@ const std::vector &SDL::sim_tce_matched() { } return *sim_tce_matched_; } -const std::vector &SDL::pT3_isDuplicate() { +const std::vector &LSTEff::pT3_isDuplicate() { if (not pT3_isDuplicate_isLoaded) { if (pT3_isDuplicate_branch != 0) { pT3_isDuplicate_branch->GetEntry(index); @@ -1674,7 +1674,7 @@ const std::vector &SDL::pT3_isDuplicate() { } return *pT3_isDuplicate_; } -const std::vector &SDL::tc_isDuplicate() { +const std::vector &LSTEff::tc_isDuplicate() { if (not tc_isDuplicate_isLoaded) { if (tc_isDuplicate_branch != 0) { tc_isDuplicate_branch->GetEntry(index); @@ -1686,7 +1686,7 @@ const std::vector &SDL::tc_isDuplicate() { } return *tc_isDuplicate_; } -const std::vector &SDL::pT3_eta_2() { +const std::vector &LSTEff::pT3_eta_2() { if (not pT3_eta_2_isLoaded) { if (pT3_eta_2_branch != 0) { pT3_eta_2_branch->GetEntry(index); @@ -1698,7 +1698,7 @@ const std::vector &SDL::pT3_eta_2() { } return *pT3_eta_2_; } -const std::vector &SDL::sim_pT3_matched() { +const std::vector &LSTEff::sim_pT3_matched() { if (not sim_pT3_matched_isLoaded) { if (sim_pT3_matched_branch != 0) { sim_pT3_matched_branch->GetEntry(index); @@ -1710,7 +1710,7 @@ const std::vector &SDL::sim_pT3_matched() { } return *sim_pT3_matched_; } -const std::vector &SDL::pureTCE_rzChiSquared() { +const std::vector &LSTEff::pureTCE_rzChiSquared() { if (not pureTCE_rzChiSquared_isLoaded) { if (pureTCE_rzChiSquared_branch != 0) { pureTCE_rzChiSquared_branch->GetEntry(index); @@ -1722,7 +1722,7 @@ const std::vector &SDL::pureTCE_rzChiSquared() { } return *pureTCE_rzChiSquared_; } -const std::vector &SDL::t4_isDuplicate() { +const std::vector &LSTEff::t4_isDuplicate() { if (not t4_isDuplicate_isLoaded) { if (t4_isDuplicate_branch != 0) { t4_isDuplicate_branch->GetEntry(index); @@ -1734,7 +1734,7 @@ const std::vector &SDL::t4_isDuplicate() { } return *t4_isDuplicate_; } -const std::vector &SDL::pureTCE_eta() { +const std::vector &LSTEff::pureTCE_eta() { if (not pureTCE_eta_isLoaded) { if (pureTCE_eta_branch != 0) { pureTCE_eta_branch->GetEntry(index); @@ -1746,7 +1746,7 @@ const std::vector &SDL::pureTCE_eta() { } return *pureTCE_eta_; } -const std::vector &SDL::tce_rPhiChiSquared() { +const std::vector &LSTEff::tce_rPhiChiSquared() { if (not tce_rPhiChiSquared_isLoaded) { if (tce_rPhiChiSquared_branch != 0) { tce_rPhiChiSquared_branch->GetEntry(index); @@ -1758,7 +1758,7 @@ const std::vector &SDL::tce_rPhiChiSquared() { } return *tce_rPhiChiSquared_; } -const std::vector &SDL::pureTCE_anchorType() { +const std::vector &LSTEff::pureTCE_anchorType() { if (not pureTCE_anchorType_isLoaded) { if (pureTCE_anchorType_branch != 0) { pureTCE_anchorType_branch->GetEntry(index); @@ -1770,7 +1770,7 @@ const std::vector &SDL::pureTCE_anchorType() { } return *pureTCE_anchorType_; } -const std::vector &SDL::pureTCE_pt() { +const std::vector &LSTEff::pureTCE_pt() { if (not pureTCE_pt_isLoaded) { if (pureTCE_pt_branch != 0) { pureTCE_pt_branch->GetEntry(index); @@ -1782,7 +1782,7 @@ const std::vector &SDL::pureTCE_pt() { } return *pureTCE_pt_; } -const std::vector &SDL::sim_pt() { +const std::vector &LSTEff::sim_pt() { if (not sim_pt_isLoaded) { if (sim_pt_branch != 0) { sim_pt_branch->GetEntry(index); @@ -1794,7 +1794,7 @@ const std::vector &SDL::sim_pt() { } return *sim_pt_; } -const std::vector &SDL::t5_eta_2() { +const std::vector &LSTEff::t5_eta_2() { if (not t5_eta_2_isLoaded) { if (t5_eta_2_branch != 0) { t5_eta_2_branch->GetEntry(index); @@ -1806,7 +1806,7 @@ const std::vector &SDL::t5_eta_2() { } return *t5_eta_2_; } -const std::vector &SDL::pLS_eta() { +const std::vector &LSTEff::pLS_eta() { if (not pLS_eta_isLoaded) { if (pLS_eta_branch != 0) { pLS_eta_branch->GetEntry(index); @@ -1818,7 +1818,7 @@ const std::vector &SDL::pLS_eta() { } return *pLS_eta_; } -const std::vector &SDL::sim_pdgId() { +const std::vector &LSTEff::sim_pdgId() { if (not sim_pdgId_isLoaded) { if (sim_pdgId_branch != 0) { sim_pdgId_branch->GetEntry(index); @@ -1830,7 +1830,7 @@ const std::vector &SDL::sim_pdgId() { } return *sim_pdgId_; } -const std::vector &SDL::t3_eta() { +const std::vector &LSTEff::t3_eta() { if (not t3_eta_isLoaded) { if (t3_eta_branch != 0) { t3_eta_branch->GetEntry(index); @@ -1842,7 +1842,7 @@ const std::vector &SDL::t3_eta() { } return *t3_eta_; } -const std::vector &SDL::tce_layer_binary() { +const std::vector &LSTEff::tce_layer_binary() { if (not tce_layer_binary_isLoaded) { if (tce_layer_binary_branch != 0) { tce_layer_binary_branch->GetEntry(index); @@ -1854,7 +1854,7 @@ const std::vector &SDL::tce_layer_binary() { } return *tce_layer_binary_; } -const std::vector &SDL::sim_TC_matched_nonextended() { +const std::vector &LSTEff::sim_TC_matched_nonextended() { if (not sim_TC_matched_nonextended_isLoaded) { if (sim_TC_matched_nonextended_branch != 0) { sim_TC_matched_nonextended_branch->GetEntry(index); @@ -1866,7 +1866,7 @@ const std::vector &SDL::sim_TC_matched_nonextended() { } return *sim_TC_matched_nonextended_; } -const std::vector &SDL::t4_occupancies() { +const std::vector &LSTEff::t4_occupancies() { if (not t4_occupancies_isLoaded) { if (t4_occupancies_branch != 0) { t4_occupancies_branch->GetEntry(index); @@ -1878,7 +1878,7 @@ const std::vector &SDL::t4_occupancies() { } return *t4_occupancies_; } -const std::vector &SDL::tce_eta() { +const std::vector &LSTEff::tce_eta() { if (not tce_eta_isLoaded) { if (tce_eta_branch != 0) { tce_eta_branch->GetEntry(index); @@ -1890,7 +1890,7 @@ const std::vector &SDL::tce_eta() { } return *tce_eta_; } -const std::vector &SDL::tce_isDuplicate() { +const std::vector &LSTEff::tce_isDuplicate() { if (not tce_isDuplicate_isLoaded) { if (tce_isDuplicate_branch != 0) { tce_isDuplicate_branch->GetEntry(index); @@ -1902,7 +1902,7 @@ const std::vector &SDL::tce_isDuplicate() { } return *tce_isDuplicate_; } -const std::vector > &SDL::pT5_matched_simIdx() { +const std::vector > &LSTEff::pT5_matched_simIdx() { if (not pT5_matched_simIdx_isLoaded) { if (pT5_matched_simIdx_branch != 0) { pT5_matched_simIdx_branch->GetEntry(index); @@ -1914,7 +1914,7 @@ const std::vector > &SDL::pT5_matched_simIdx() { } return *pT5_matched_simIdx_; } -const std::vector > &SDL::sim_tcIdx() { +const std::vector > &LSTEff::sim_tcIdx() { if (not sim_tcIdx_isLoaded) { if (sim_tcIdx_branch != 0) { sim_tcIdx_branch->GetEntry(index); @@ -1926,7 +1926,7 @@ const std::vector > &SDL::sim_tcIdx() { } return *sim_tcIdx_; } -const std::vector &SDL::t5_phi_2() { +const std::vector &LSTEff::t5_phi_2() { if (not t5_phi_2_isLoaded) { if (t5_phi_2_branch != 0) { t5_phi_2_branch->GetEntry(index); @@ -1938,7 +1938,7 @@ const std::vector &SDL::t5_phi_2() { } return *t5_phi_2_; } -const std::vector &SDL::pureTCE_maxHitMatchedCounts() { +const std::vector &LSTEff::pureTCE_maxHitMatchedCounts() { if (not pureTCE_maxHitMatchedCounts_isLoaded) { if (pureTCE_maxHitMatchedCounts_branch != 0) { pureTCE_maxHitMatchedCounts_branch->GetEntry(index); @@ -1950,7 +1950,7 @@ const std::vector &SDL::pureTCE_maxHitMatchedCounts() { } return *pureTCE_maxHitMatchedCounts_; } -const std::vector > &SDL::t5_matched_simIdx() { +const std::vector > &LSTEff::t5_matched_simIdx() { if (not t5_matched_simIdx_isLoaded) { if (t5_matched_simIdx_branch != 0) { t5_matched_simIdx_branch->GetEntry(index); @@ -1962,7 +1962,7 @@ const std::vector > &SDL::t5_matched_simIdx() { } return *t5_matched_simIdx_; } -const std::vector &SDL::module_subdets() { +const std::vector &LSTEff::module_subdets() { if (not module_subdets_isLoaded) { if (module_subdets_branch != 0) { module_subdets_branch->GetEntry(index); @@ -1974,7 +1974,7 @@ const std::vector &SDL::module_subdets() { } return *module_subdets_; } -const std::vector &SDL::tce_anchorType() { +const std::vector &LSTEff::tce_anchorType() { if (not tce_anchorType_isLoaded) { if (tce_anchorType_branch != 0) { tce_anchorType_branch->GetEntry(index); @@ -1986,7 +1986,7 @@ const std::vector &SDL::tce_anchorType() { } return *tce_anchorType_; } -const std::vector > &SDL::tce_nHitOverlaps() { +const std::vector > &LSTEff::tce_nHitOverlaps() { if (not tce_nHitOverlaps_isLoaded) { if (tce_nHitOverlaps_branch != 0) { tce_nHitOverlaps_branch->GetEntry(index); @@ -1998,7 +1998,7 @@ const std::vector > &SDL::tce_nHitOverlaps() { } return *tce_nHitOverlaps_; } -const std::vector &SDL::t3_isFake() { +const std::vector &LSTEff::t3_isFake() { if (not t3_isFake_isLoaded) { if (t3_isFake_branch != 0) { t3_isFake_branch->GetEntry(index); @@ -2010,7 +2010,7 @@ const std::vector &SDL::t3_isFake() { } return *t3_isFake_; } -const std::vector &SDL::tce_phi() { +const std::vector &LSTEff::tce_phi() { if (not tce_phi_isLoaded) { if (tce_phi_branch != 0) { tce_phi_branch->GetEntry(index); @@ -2022,7 +2022,7 @@ const std::vector &SDL::tce_phi() { } return *tce_phi_; } -const std::vector &SDL::t5_isFake() { +const std::vector &LSTEff::t5_isFake() { if (not t5_isFake_isLoaded) { if (t5_isFake_branch != 0) { t5_isFake_branch->GetEntry(index); @@ -2034,7 +2034,7 @@ const std::vector &SDL::t5_isFake() { } return *t5_isFake_; } -const std::vector &SDL::md_occupancies() { +const std::vector &LSTEff::md_occupancies() { if (not md_occupancies_isLoaded) { if (md_occupancies_branch != 0) { md_occupancies_branch->GetEntry(index); @@ -2046,7 +2046,7 @@ const std::vector &SDL::md_occupancies() { } return *md_occupancies_; } -const std::vector > &SDL::t5_hitIdxs() { +const std::vector > &LSTEff::t5_hitIdxs() { if (not t5_hitIdxs_isLoaded) { if (t5_hitIdxs_branch != 0) { t5_hitIdxs_branch->GetEntry(index); @@ -2058,7 +2058,7 @@ const std::vector > &SDL::t5_hitIdxs() { } return *t5_hitIdxs_; } -const std::vector > &SDL::sim_pT3_types() { +const std::vector > &LSTEff::sim_pT3_types() { if (not sim_pT3_types_isLoaded) { if (sim_pT3_types_branch != 0) { sim_pT3_types_branch->GetEntry(index); @@ -2070,7 +2070,7 @@ const std::vector > &SDL::sim_pT3_types() { } return *sim_pT3_types_; } -const std::vector > &SDL::sim_pureTCE_types() { +const std::vector > &LSTEff::sim_pureTCE_types() { if (not sim_pureTCE_types_isLoaded) { if (sim_pureTCE_types_branch != 0) { sim_pureTCE_types_branch->GetEntry(index); @@ -2082,7 +2082,7 @@ const std::vector > &SDL::sim_pureTCE_types() { } return *sim_pureTCE_types_; } -const std::vector &SDL::t4_phi() { +const std::vector &LSTEff::t4_phi() { if (not t4_phi_isLoaded) { if (t4_phi_branch != 0) { t4_phi_branch->GetEntry(index); @@ -2094,7 +2094,7 @@ const std::vector &SDL::t4_phi() { } return *t4_phi_; } -const std::vector &SDL::t5_phi() { +const std::vector &LSTEff::t5_phi() { if (not t5_phi_isLoaded) { if (t5_phi_branch != 0) { t5_phi_branch->GetEntry(index); @@ -2106,7 +2106,7 @@ const std::vector &SDL::t5_phi() { } return *t5_phi_; } -const std::vector > &SDL::pT5_hitIdxs() { +const std::vector > &LSTEff::pT5_hitIdxs() { if (not pT5_hitIdxs_isLoaded) { if (pT5_hitIdxs_branch != 0) { pT5_hitIdxs_branch->GetEntry(index); @@ -2118,7 +2118,7 @@ const std::vector > &SDL::pT5_hitIdxs() { } return *pT5_hitIdxs_; } -const std::vector &SDL::t5_pt() { +const std::vector &LSTEff::t5_pt() { if (not t5_pt_isLoaded) { if (t5_pt_branch != 0) { t5_pt_branch->GetEntry(index); @@ -2130,7 +2130,7 @@ const std::vector &SDL::t5_pt() { } return *t5_pt_; } -const std::vector &SDL::pT5_phi() { +const std::vector &LSTEff::pT5_phi() { if (not pT5_phi_isLoaded) { if (pT5_phi_branch != 0) { pT5_phi_branch->GetEntry(index); @@ -2142,7 +2142,7 @@ const std::vector &SDL::pT5_phi() { } return *pT5_phi_; } -const std::vector &SDL::pureTCE_isFake() { +const std::vector &LSTEff::pureTCE_isFake() { if (not pureTCE_isFake_isLoaded) { if (pureTCE_isFake_branch != 0) { pureTCE_isFake_branch->GetEntry(index); @@ -2154,7 +2154,7 @@ const std::vector &SDL::pureTCE_isFake() { } return *pureTCE_isFake_; } -const std::vector &SDL::tce_pt() { +const std::vector &LSTEff::tce_pt() { if (not tce_pt_isLoaded) { if (tce_pt_branch != 0) { tce_pt_branch->GetEntry(index); @@ -2166,7 +2166,7 @@ const std::vector &SDL::tce_pt() { } return *tce_pt_; } -const std::vector &SDL::tc_isFake() { +const std::vector &LSTEff::tc_isFake() { if (not tc_isFake_isLoaded) { if (tc_isFake_branch != 0) { tc_isFake_branch->GetEntry(index); @@ -2178,7 +2178,7 @@ const std::vector &SDL::tc_isFake() { } return *tc_isFake_; } -const std::vector &SDL::pT3_isFake() { +const std::vector &LSTEff::pT3_isFake() { if (not pT3_isFake_isLoaded) { if (pT3_isFake_branch != 0) { pT3_isFake_branch->GetEntry(index); @@ -2190,7 +2190,7 @@ const std::vector &SDL::pT3_isFake() { } return *pT3_isFake_; } -const std::vector > &SDL::tce_nLayerOverlaps() { +const std::vector > &LSTEff::tce_nLayerOverlaps() { if (not tce_nLayerOverlaps_isLoaded) { if (tce_nLayerOverlaps_branch != 0) { tce_nLayerOverlaps_branch->GetEntry(index); @@ -2202,7 +2202,7 @@ const std::vector > &SDL::tce_nLayerOverlaps() { } return *tce_nLayerOverlaps_; } -const std::vector &SDL::tc_sim() { +const std::vector &LSTEff::tc_sim() { if (not tc_sim_isLoaded) { if (tc_sim_branch != 0) { tc_sim_branch->GetEntry(index); @@ -2214,7 +2214,7 @@ const std::vector &SDL::tc_sim() { } return *tc_sim_; } -const std::vector > &SDL::sim_pLS_types() { +const std::vector > &LSTEff::sim_pLS_types() { if (not sim_pLS_types_isLoaded) { if (sim_pLS_types_branch != 0) { sim_pLS_types_branch->GetEntry(index); @@ -2226,7 +2226,7 @@ const std::vector > &SDL::sim_pLS_types() { } return *sim_pLS_types_; } -const std::vector &SDL::sim_pca_dxy() { +const std::vector &LSTEff::sim_pca_dxy() { if (not sim_pca_dxy_isLoaded) { if (sim_pca_dxy_branch != 0) { sim_pca_dxy_branch->GetEntry(index); @@ -2238,7 +2238,7 @@ const std::vector &SDL::sim_pca_dxy() { } return *sim_pca_dxy_; } -const std::vector &SDL::pT4_phi() { +const std::vector &LSTEff::pT4_phi() { if (not pT4_phi_isLoaded) { if (pT4_phi_branch != 0) { pT4_phi_branch->GetEntry(index); @@ -2250,7 +2250,7 @@ const std::vector &SDL::pT4_phi() { } return *pT4_phi_; } -const std::vector &SDL::sim_hits() { +const std::vector &LSTEff::sim_hits() { if (not sim_hits_isLoaded) { if (sim_hits_branch != 0) { sim_hits_branch->GetEntry(index); @@ -2262,7 +2262,7 @@ const std::vector &SDL::sim_hits() { } return *sim_hits_; } -const std::vector &SDL::pLS_phi() { +const std::vector &LSTEff::pLS_phi() { if (not pLS_phi_isLoaded) { if (pLS_phi_branch != 0) { pLS_phi_branch->GetEntry(index); @@ -2274,7 +2274,7 @@ const std::vector &SDL::pLS_phi() { } return *pLS_phi_; } -const std::vector &SDL::sim_pureTCE_matched() { +const std::vector &LSTEff::sim_pureTCE_matched() { if (not sim_pureTCE_matched_isLoaded) { if (sim_pureTCE_matched_branch != 0) { sim_pureTCE_matched_branch->GetEntry(index); @@ -2286,7 +2286,7 @@ const std::vector &SDL::sim_pureTCE_matched() { } return *sim_pureTCE_matched_; } -const std::vector &SDL::t3_occupancies() { +const std::vector &LSTEff::t3_occupancies() { if (not t3_occupancies_isLoaded) { if (t3_occupancies_branch != 0) { t3_occupancies_branch->GetEntry(index); @@ -2298,7 +2298,7 @@ const std::vector &SDL::t3_occupancies() { } return *t3_occupancies_; } -const std::vector &SDL::t5_foundDuplicate() { +const std::vector &LSTEff::t5_foundDuplicate() { if (not t5_foundDuplicate_isLoaded) { if (t5_foundDuplicate_branch != 0) { t5_foundDuplicate_branch->GetEntry(index); @@ -2310,7 +2310,7 @@ const std::vector &SDL::t5_foundDuplicate() { } return *t5_foundDuplicate_; } -const std::vector > &SDL::sim_pT4_types() { +const std::vector > &LSTEff::sim_pT4_types() { if (not sim_pT4_types_isLoaded) { if (sim_pT4_types_branch != 0) { sim_pT4_types_branch->GetEntry(index); @@ -2322,7 +2322,7 @@ const std::vector > &SDL::sim_pT4_types() { } return *sim_pT4_types_; } -const std::vector &SDL::t4_isFake() { +const std::vector &LSTEff::t4_isFake() { if (not t4_isFake_isLoaded) { if (t4_isFake_branch != 0) { t4_isFake_branch->GetEntry(index); @@ -2334,7 +2334,7 @@ const std::vector &SDL::t4_isFake() { } return *t4_isFake_; } -const std::vector &SDL::simvtx_x() { +const std::vector &LSTEff::simvtx_x() { if (not simvtx_x_isLoaded) { if (simvtx_x_branch != 0) { simvtx_x_branch->GetEntry(index); @@ -2346,7 +2346,7 @@ const std::vector &SDL::simvtx_x() { } return *simvtx_x_; } -const std::vector &SDL::simvtx_y() { +const std::vector &LSTEff::simvtx_y() { if (not simvtx_y_isLoaded) { if (simvtx_y_branch != 0) { simvtx_y_branch->GetEntry(index); @@ -2358,7 +2358,7 @@ const std::vector &SDL::simvtx_y() { } return *simvtx_y_; } -const std::vector &SDL::simvtx_z() { +const std::vector &LSTEff::simvtx_z() { if (not simvtx_z_isLoaded) { if (simvtx_z_branch != 0) { simvtx_z_branch->GetEntry(index); @@ -2370,7 +2370,7 @@ const std::vector &SDL::simvtx_z() { } return *simvtx_z_; } -const std::vector &SDL::sim_T4_matched() { +const std::vector &LSTEff::sim_T4_matched() { if (not sim_T4_matched_isLoaded) { if (sim_T4_matched_branch != 0) { sim_T4_matched_branch->GetEntry(index); @@ -2382,7 +2382,7 @@ const std::vector &SDL::sim_T4_matched() { } return *sim_T4_matched_; } -const std::vector &SDL::sim_isGood() { +const std::vector &LSTEff::sim_isGood() { if (not sim_isGood_isLoaded) { if (sim_isGood_branch != 0) { sim_isGood_branch->GetEntry(index); @@ -2394,7 +2394,7 @@ const std::vector &SDL::sim_isGood() { } return *sim_isGood_; } -const std::vector &SDL::pT3_pt() { +const std::vector &LSTEff::pT3_pt() { if (not pT3_pt_isLoaded) { if (pT3_pt_branch != 0) { pT3_pt_branch->GetEntry(index); @@ -2406,7 +2406,7 @@ const std::vector &SDL::pT3_pt() { } return *pT3_pt_; } -const std::vector &SDL::tc_pt() { +const std::vector &LSTEff::tc_pt() { if (not tc_pt_isLoaded) { if (tc_pt_branch != 0) { tc_pt_branch->GetEntry(index); @@ -2418,7 +2418,7 @@ const std::vector &SDL::tc_pt() { } return *tc_pt_; } -const std::vector &SDL::pT3_phi_2() { +const std::vector &LSTEff::pT3_phi_2() { if (not pT3_phi_2_isLoaded) { if (pT3_phi_2_branch != 0) { pT3_phi_2_branch->GetEntry(index); @@ -2430,7 +2430,7 @@ const std::vector &SDL::pT3_phi_2() { } return *pT3_phi_2_; } -const std::vector &SDL::pT5_pt() { +const std::vector &LSTEff::pT5_pt() { if (not pT5_pt_isLoaded) { if (pT5_pt_branch != 0) { pT5_pt_branch->GetEntry(index); @@ -2442,7 +2442,7 @@ const std::vector &SDL::pT5_pt() { } return *pT5_pt_; } -const std::vector &SDL::pureTCE_rPhiChiSquared() { +const std::vector &LSTEff::pureTCE_rPhiChiSquared() { if (not pureTCE_rPhiChiSquared_isLoaded) { if (pureTCE_rPhiChiSquared_branch != 0) { pureTCE_rPhiChiSquared_branch->GetEntry(index); @@ -2454,7 +2454,7 @@ const std::vector &SDL::pureTCE_rPhiChiSquared() { } return *pureTCE_rPhiChiSquared_; } -const std::vector &SDL::pT5_score() { +const std::vector &LSTEff::pT5_score() { if (not pT5_score_isLoaded) { if (pT5_score_branch != 0) { pT5_score_branch->GetEntry(index); @@ -2466,7 +2466,7 @@ const std::vector &SDL::pT5_score() { } return *pT5_score_; } -const std::vector &SDL::sim_phi() { +const std::vector &LSTEff::sim_phi() { if (not sim_phi_isLoaded) { if (sim_phi_branch != 0) { sim_phi_branch->GetEntry(index); @@ -2478,7 +2478,7 @@ const std::vector &SDL::sim_phi() { } return *sim_phi_; } -const std::vector &SDL::pT5_isFake() { +const std::vector &LSTEff::pT5_isFake() { if (not pT5_isFake_isLoaded) { if (pT5_isFake_branch != 0) { pT5_isFake_branch->GetEntry(index); @@ -2490,7 +2490,7 @@ const std::vector &SDL::pT5_isFake() { } return *pT5_isFake_; } -const std::vector &SDL::tc_maxHitMatchedCounts() { +const std::vector &LSTEff::tc_maxHitMatchedCounts() { if (not tc_maxHitMatchedCounts_isLoaded) { if (tc_maxHitMatchedCounts_branch != 0) { tc_maxHitMatchedCounts_branch->GetEntry(index); @@ -2502,7 +2502,7 @@ const std::vector &SDL::tc_maxHitMatchedCounts() { } return *tc_maxHitMatchedCounts_; } -const std::vector > &SDL::pureTCE_nLayerOverlaps() { +const std::vector > &LSTEff::pureTCE_nLayerOverlaps() { if (not pureTCE_nLayerOverlaps_isLoaded) { if (pureTCE_nLayerOverlaps_branch != 0) { pureTCE_nLayerOverlaps_branch->GetEntry(index); @@ -2514,7 +2514,7 @@ const std::vector > &SDL::pureTCE_nLayerOverlaps() { } return *pureTCE_nLayerOverlaps_; } -const std::vector &SDL::sim_pca_dz() { +const std::vector &LSTEff::sim_pca_dz() { if (not sim_pca_dz_isLoaded) { if (sim_pca_dz_branch != 0) { sim_pca_dz_branch->GetEntry(index); @@ -2526,7 +2526,7 @@ const std::vector &SDL::sim_pca_dz() { } return *sim_pca_dz_; } -const std::vector > &SDL::pureTCE_hitIdxs() { +const std::vector > &LSTEff::pureTCE_hitIdxs() { if (not pureTCE_hitIdxs_isLoaded) { if (pureTCE_hitIdxs_branch != 0) { pureTCE_hitIdxs_branch->GetEntry(index); @@ -2538,7 +2538,7 @@ const std::vector > &SDL::pureTCE_hitIdxs() { } return *pureTCE_hitIdxs_; } -const std::vector > &SDL::pureTCE_nHitOverlaps() { +const std::vector > &LSTEff::pureTCE_nHitOverlaps() { if (not pureTCE_nHitOverlaps_isLoaded) { if (pureTCE_nHitOverlaps_branch != 0) { pureTCE_nHitOverlaps_branch->GetEntry(index); @@ -2550,7 +2550,7 @@ const std::vector > &SDL::pureTCE_nHitOverlaps() { } return *pureTCE_nHitOverlaps_; } -const std::vector &SDL::sim_pLS_matched() { +const std::vector &LSTEff::sim_pLS_matched() { if (not sim_pLS_matched_isLoaded) { if (sim_pLS_matched_branch != 0) { sim_pLS_matched_branch->GetEntry(index); @@ -2562,7 +2562,7 @@ const std::vector &SDL::sim_pLS_matched() { } return *sim_pLS_matched_; } -const std::vector > &SDL::tc_matched_simIdx() { +const std::vector > &LSTEff::tc_matched_simIdx() { if (not tc_matched_simIdx_isLoaded) { if (tc_matched_simIdx_branch != 0) { tc_matched_simIdx_branch->GetEntry(index); @@ -2574,7 +2574,7 @@ const std::vector > &SDL::tc_matched_simIdx() { } return *tc_matched_simIdx_; } -const std::vector &SDL::sim_T3_matched() { +const std::vector &LSTEff::sim_T3_matched() { if (not sim_T3_matched_isLoaded) { if (sim_T3_matched_branch != 0) { sim_T3_matched_branch->GetEntry(index); @@ -2586,7 +2586,7 @@ const std::vector &SDL::sim_T3_matched() { } return *sim_T3_matched_; } -const std::vector &SDL::pLS_score() { +const std::vector &LSTEff::pLS_score() { if (not pLS_score_isLoaded) { if (pLS_score_branch != 0) { pLS_score_branch->GetEntry(index); @@ -2598,7 +2598,7 @@ const std::vector &SDL::pLS_score() { } return *pLS_score_; } -const std::vector &SDL::pT3_phi() { +const std::vector &LSTEff::pT3_phi() { if (not pT3_phi_isLoaded) { if (pT3_phi_branch != 0) { pT3_phi_branch->GetEntry(index); @@ -2610,7 +2610,7 @@ const std::vector &SDL::pT3_phi() { } return *pT3_phi_; } -const std::vector &SDL::pT5_eta() { +const std::vector &LSTEff::pT5_eta() { if (not pT5_eta_isLoaded) { if (pT5_eta_branch != 0) { pT5_eta_branch->GetEntry(index); @@ -2622,7 +2622,7 @@ const std::vector &SDL::pT5_eta() { } return *pT5_eta_; } -const std::vector &SDL::tc_phi() { +const std::vector &LSTEff::tc_phi() { if (not tc_phi_isLoaded) { if (tc_phi_branch != 0) { tc_phi_branch->GetEntry(index); @@ -2634,7 +2634,7 @@ const std::vector &SDL::tc_phi() { } return *tc_phi_; } -const std::vector &SDL::t4_eta() { +const std::vector &LSTEff::t4_eta() { if (not t4_eta_isLoaded) { if (t4_eta_branch != 0) { t4_eta_branch->GetEntry(index); @@ -2646,7 +2646,7 @@ const std::vector &SDL::t4_eta() { } return *t4_eta_; } -const std::vector &SDL::pLS_isFake() { +const std::vector &LSTEff::pLS_isFake() { if (not pLS_isFake_isLoaded) { if (pLS_isFake_branch != 0) { pLS_isFake_branch->GetEntry(index); @@ -2658,7 +2658,7 @@ const std::vector &SDL::pLS_isFake() { } return *pLS_isFake_; } -const std::vector > &SDL::pureTCE_matched_simIdx() { +const std::vector > &LSTEff::pureTCE_matched_simIdx() { if (not pureTCE_matched_simIdx_isLoaded) { if (pureTCE_matched_simIdx_branch != 0) { pureTCE_matched_simIdx_branch->GetEntry(index); @@ -2670,7 +2670,7 @@ const std::vector > &SDL::pureTCE_matched_simIdx() { } return *pureTCE_matched_simIdx_; } -const std::vector &SDL::sim_bunchCrossing() { +const std::vector &LSTEff::sim_bunchCrossing() { if (not sim_bunchCrossing_isLoaded) { if (sim_bunchCrossing_branch != 0) { sim_bunchCrossing_branch->GetEntry(index); @@ -2682,7 +2682,7 @@ const std::vector &SDL::sim_bunchCrossing() { } return *sim_bunchCrossing_; } -const std::vector &SDL::tc_partOfExtension() { +const std::vector &LSTEff::tc_partOfExtension() { if (not tc_partOfExtension_isLoaded) { if (tc_partOfExtension_branch != 0) { tc_partOfExtension_branch->GetEntry(index); @@ -2694,7 +2694,7 @@ const std::vector &SDL::tc_partOfExtension() { } return *tc_partOfExtension_; } -const std::vector &SDL::pT3_eta() { +const std::vector &LSTEff::pT3_eta() { if (not pT3_eta_isLoaded) { if (pT3_eta_branch != 0) { pT3_eta_branch->GetEntry(index); @@ -2706,7 +2706,7 @@ const std::vector &SDL::pT3_eta() { } return *pT3_eta_; } -const std::vector &SDL::sim_parentVtxIdx() { +const std::vector &LSTEff::sim_parentVtxIdx() { if (not sim_parentVtxIdx_isLoaded) { if (sim_parentVtxIdx_branch != 0) { sim_parentVtxIdx_branch->GetEntry(index); @@ -2718,7 +2718,7 @@ const std::vector &SDL::sim_parentVtxIdx() { } return *sim_parentVtxIdx_; } -const std::vector &SDL::pureTCE_layer_binary() { +const std::vector &LSTEff::pureTCE_layer_binary() { if (not pureTCE_layer_binary_isLoaded) { if (pureTCE_layer_binary_branch != 0) { pureTCE_layer_binary_branch->GetEntry(index); @@ -2730,7 +2730,7 @@ const std::vector &SDL::pureTCE_layer_binary() { } return *pureTCE_layer_binary_; } -const std::vector &SDL::sim_pT4_matched() { +const std::vector &LSTEff::sim_pT4_matched() { if (not sim_pT4_matched_isLoaded) { if (sim_pT4_matched_branch != 0) { sim_pT4_matched_branch->GetEntry(index); @@ -2742,7 +2742,7 @@ const std::vector &SDL::sim_pT4_matched() { } return *sim_pT4_matched_; } -const std::vector &SDL::tc_eta() { +const std::vector &LSTEff::tc_eta() { if (not tc_eta_isLoaded) { if (tc_eta_branch != 0) { tc_eta_branch->GetEntry(index); @@ -2754,7 +2754,7 @@ const std::vector &SDL::tc_eta() { } return *tc_eta_; } -const std::vector &SDL::sim_lengap() { +const std::vector &LSTEff::sim_lengap() { if (not sim_lengap_isLoaded) { if (sim_lengap_branch != 0) { sim_lengap_branch->GetEntry(index); @@ -2766,7 +2766,7 @@ const std::vector &SDL::sim_lengap() { } return *sim_lengap_; } -const std::vector &SDL::sim_T5_matched() { +const std::vector &LSTEff::sim_T5_matched() { if (not sim_T5_matched_isLoaded) { if (sim_T5_matched_branch != 0) { sim_T5_matched_branch->GetEntry(index); @@ -2778,7 +2778,7 @@ const std::vector &SDL::sim_T5_matched() { } return *sim_T5_matched_; } -const std::vector > &SDL::sim_T5_types() { +const std::vector > &LSTEff::sim_T5_types() { if (not sim_T5_types_isLoaded) { if (sim_T5_types_branch != 0) { sim_T5_types_branch->GetEntry(index); @@ -2790,7 +2790,7 @@ const std::vector > &SDL::sim_T5_types() { } return *sim_T5_types_; } -const std::vector > &SDL::tce_matched_simIdx() { +const std::vector > &LSTEff::tce_matched_simIdx() { if (not tce_matched_simIdx_isLoaded) { if (tce_matched_simIdx_branch != 0) { tce_matched_simIdx_branch->GetEntry(index); @@ -2802,7 +2802,7 @@ const std::vector > &SDL::tce_matched_simIdx() { } return *tce_matched_simIdx_; } -const std::vector &SDL::t5_isDuplicate() { +const std::vector &LSTEff::t5_isDuplicate() { if (not t5_isDuplicate_isLoaded) { if (t5_isDuplicate_branch != 0) { t5_isDuplicate_branch->GetEntry(index); @@ -2814,7 +2814,7 @@ const std::vector &SDL::t5_isDuplicate() { } return *t5_isDuplicate_; } -const std::vector > &SDL::pT3_hitIdxs() { +const std::vector > &LSTEff::pT3_hitIdxs() { if (not pT3_hitIdxs_isLoaded) { if (pT3_hitIdxs_branch != 0) { pT3_hitIdxs_branch->GetEntry(index); @@ -2826,7 +2826,7 @@ const std::vector > &SDL::pT3_hitIdxs() { } return *pT3_hitIdxs_; } -const std::vector > &SDL::tc_hitIdxs() { +const std::vector > &LSTEff::tc_hitIdxs() { if (not tc_hitIdxs_isLoaded) { if (tc_hitIdxs_branch != 0) { tc_hitIdxs_branch->GetEntry(index); @@ -2838,7 +2838,7 @@ const std::vector > &SDL::tc_hitIdxs() { } return *tc_hitIdxs_; } -const int &SDL::pT3_occupancies() { +const int &LSTEff::pT3_occupancies() { if (not pT3_occupancies_isLoaded) { if (pT3_occupancies_branch != 0) { pT3_occupancies_branch->GetEntry(index); @@ -2850,7 +2850,7 @@ const int &SDL::pT3_occupancies() { } return pT3_occupancies_; } -const int &SDL::tc_occupancies() { +const int &LSTEff::tc_occupancies() { if (not tc_occupancies_isLoaded) { if (tc_occupancies_branch != 0) { tc_occupancies_branch->GetEntry(index); @@ -2862,7 +2862,7 @@ const int &SDL::tc_occupancies() { } return tc_occupancies_; } -const std::vector &SDL::sim_TC_matched() { +const std::vector &LSTEff::sim_TC_matched() { if (not sim_TC_matched_isLoaded) { if (sim_TC_matched_branch != 0) { sim_TC_matched_branch->GetEntry(index); @@ -2874,7 +2874,7 @@ const std::vector &SDL::sim_TC_matched() { } return *sim_TC_matched_; } -const std::vector &SDL::sim_TC_matched_mask() { +const std::vector &LSTEff::sim_TC_matched_mask() { if (not sim_TC_matched_mask_isLoaded) { if (sim_TC_matched_mask_branch != 0) { sim_TC_matched_mask_branch->GetEntry(index); @@ -2886,7 +2886,7 @@ const std::vector &SDL::sim_TC_matched_mask() { } return *sim_TC_matched_mask_; } -const std::vector &SDL::pLS_isDuplicate() { +const std::vector &LSTEff::pLS_isDuplicate() { if (not pLS_isDuplicate_isLoaded) { if (pLS_isDuplicate_branch != 0) { pLS_isDuplicate_branch->GetEntry(index); @@ -2898,7 +2898,7 @@ const std::vector &SDL::pLS_isDuplicate() { } return *pLS_isDuplicate_; } -const std::vector &SDL::tce_anchorIndex() { +const std::vector &LSTEff::tce_anchorIndex() { if (not tce_anchorIndex_isLoaded) { if (tce_anchorIndex_branch != 0) { tce_anchorIndex_branch->GetEntry(index); @@ -2910,7 +2910,7 @@ const std::vector &SDL::tce_anchorIndex() { } return *tce_anchorIndex_; } -const std::vector &SDL::t5_occupancies() { +const std::vector &LSTEff::t5_occupancies() { if (not t5_occupancies_isLoaded) { if (t5_occupancies_branch != 0) { t5_occupancies_branch->GetEntry(index); @@ -2922,7 +2922,7 @@ const std::vector &SDL::t5_occupancies() { } return *t5_occupancies_; } -const std::vector &SDL::tc_type() { +const std::vector &LSTEff::tc_type() { if (not tc_type_isLoaded) { if (tc_type_branch != 0) { tc_type_branch->GetEntry(index); @@ -2934,7 +2934,7 @@ const std::vector &SDL::tc_type() { } return *tc_type_; } -const std::vector &SDL::tce_isFake() { +const std::vector &LSTEff::tce_isFake() { if (not tce_isFake_isLoaded) { if (tce_isFake_branch != 0) { tce_isFake_branch->GetEntry(index); @@ -2946,7 +2946,7 @@ const std::vector &SDL::tce_isFake() { } return *tce_isFake_; } -const std::vector &SDL::pLS_pt() { +const std::vector &LSTEff::pLS_pt() { if (not pLS_pt_isLoaded) { if (pLS_pt_branch != 0) { pLS_pt_branch->GetEntry(index); @@ -2958,7 +2958,7 @@ const std::vector &SDL::pLS_pt() { } return *pLS_pt_; } -const std::vector &SDL::pureTCE_anchorIndex() { +const std::vector &LSTEff::pureTCE_anchorIndex() { if (not pureTCE_anchorIndex_isLoaded) { if (pureTCE_anchorIndex_branch != 0) { pureTCE_anchorIndex_branch->GetEntry(index); @@ -2970,7 +2970,7 @@ const std::vector &SDL::pureTCE_anchorIndex() { } return *pureTCE_anchorIndex_; } -const std::vector > &SDL::sim_T4_types() { +const std::vector > &LSTEff::sim_T4_types() { if (not sim_T4_types_isLoaded) { if (sim_T4_types_branch != 0) { sim_T4_types_branch->GetEntry(index); @@ -2982,7 +2982,7 @@ const std::vector > &SDL::sim_T4_types() { } return *sim_T4_types_; } -const std::vector &SDL::pT4_isDuplicate() { +const std::vector &LSTEff::pT4_isDuplicate() { if (not pT4_isDuplicate_isLoaded) { if (pT4_isDuplicate_branch != 0) { pT4_isDuplicate_branch->GetEntry(index); @@ -2994,7 +2994,7 @@ const std::vector &SDL::pT4_isDuplicate() { } return *pT4_isDuplicate_; } -const std::vector &SDL::t4_pt() { +const std::vector &LSTEff::t4_pt() { if (not t4_pt_isLoaded) { if (t4_pt_branch != 0) { t4_pt_branch->GetEntry(index); @@ -3006,7 +3006,7 @@ const std::vector &SDL::t4_pt() { } return *t4_pt_; } -const std::vector > &SDL::sim_TC_types() { +const std::vector > &LSTEff::sim_TC_types() { if (not sim_TC_types_isLoaded) { if (sim_TC_types_branch != 0) { sim_TC_types_branch->GetEntry(index); @@ -3018,7 +3018,7 @@ const std::vector > &SDL::sim_TC_types() { } return *sim_TC_types_; } -const std::vector &SDL::sg_occupancies() { +const std::vector &LSTEff::sg_occupancies() { if (not sg_occupancies_isLoaded) { if (sg_occupancies_branch != 0) { sg_occupancies_branch->GetEntry(index); @@ -3030,7 +3030,7 @@ const std::vector &SDL::sg_occupancies() { } return *sg_occupancies_; } -const std::vector &SDL::pT4_pt() { +const std::vector &LSTEff::pT4_pt() { if (not pT4_pt_isLoaded) { if (pT4_pt_branch != 0) { pT4_pt_branch->GetEntry(index); @@ -3042,7 +3042,7 @@ const std::vector &SDL::pT4_pt() { } return *pT4_pt_; } -const std::vector &SDL::pureTCE_phi() { +const std::vector &LSTEff::pureTCE_phi() { if (not pureTCE_phi_isLoaded) { if (pureTCE_phi_branch != 0) { pureTCE_phi_branch->GetEntry(index); @@ -3054,7 +3054,7 @@ const std::vector &SDL::pureTCE_phi() { } return *pureTCE_phi_; } -const std::vector &SDL::sim_vx() { +const std::vector &LSTEff::sim_vx() { if (not sim_vx_isLoaded) { if (sim_vx_branch != 0) { sim_vx_branch->GetEntry(index); @@ -3066,7 +3066,7 @@ const std::vector &SDL::sim_vx() { } return *sim_vx_; } -const std::vector &SDL::sim_vy() { +const std::vector &LSTEff::sim_vy() { if (not sim_vy_isLoaded) { if (sim_vy_branch != 0) { sim_vy_branch->GetEntry(index); @@ -3078,7 +3078,7 @@ const std::vector &SDL::sim_vy() { } return *sim_vy_; } -const std::vector &SDL::sim_vz() { +const std::vector &LSTEff::sim_vz() { if (not sim_vz_isLoaded) { if (sim_vz_branch != 0) { sim_vz_branch->GetEntry(index); @@ -3090,7 +3090,7 @@ const std::vector &SDL::sim_vz() { } return *sim_vz_; } -const std::vector &SDL::tce_maxHitMatchedCounts() { +const std::vector &LSTEff::tce_maxHitMatchedCounts() { if (not tce_maxHitMatchedCounts_isLoaded) { if (tce_maxHitMatchedCounts_branch != 0) { tce_maxHitMatchedCounts_branch->GetEntry(index); @@ -3102,7 +3102,7 @@ const std::vector &SDL::tce_maxHitMatchedCounts() { } return *tce_maxHitMatchedCounts_; } -const std::vector &SDL::t3_pt() { +const std::vector &LSTEff::t3_pt() { if (not t3_pt_isLoaded) { if (t3_pt_branch != 0) { t3_pt_branch->GetEntry(index); @@ -3114,7 +3114,7 @@ const std::vector &SDL::t3_pt() { } return *t3_pt_; } -const std::vector &SDL::module_rings() { +const std::vector &LSTEff::module_rings() { if (not module_rings_isLoaded) { if (module_rings_branch != 0) { module_rings_branch->GetEntry(index); @@ -3126,7 +3126,7 @@ const std::vector &SDL::module_rings() { } return *module_rings_; } -const std::vector > &SDL::sim_T3_types() { +const std::vector > &LSTEff::sim_T3_types() { if (not sim_T3_types_isLoaded) { if (sim_T3_types_branch != 0) { sim_T3_types_branch->GetEntry(index); @@ -3138,7 +3138,7 @@ const std::vector > &SDL::sim_T3_types() { } return *sim_T3_types_; } -const std::vector > &SDL::sim_pT5_types() { +const std::vector > &LSTEff::sim_pT5_types() { if (not sim_pT5_types_isLoaded) { if (sim_pT5_types_branch != 0) { sim_pT5_types_branch->GetEntry(index); @@ -3150,7 +3150,7 @@ const std::vector > &SDL::sim_pT5_types() { } return *sim_pT5_types_; } -const std::vector &SDL::sim_pT5_matched() { +const std::vector &LSTEff::sim_pT5_matched() { if (not sim_pT5_matched_isLoaded) { if (sim_pT5_matched_branch != 0) { sim_pT5_matched_branch->GetEntry(index); @@ -3162,7 +3162,7 @@ const std::vector &SDL::sim_pT5_matched() { } return *sim_pT5_matched_; } -const std::vector &SDL::module_layers() { +const std::vector &LSTEff::module_layers() { if (not module_layers_isLoaded) { if (module_layers_branch != 0) { module_layers_branch->GetEntry(index); @@ -3174,7 +3174,7 @@ const std::vector &SDL::module_layers() { } return *module_layers_; } -const std::vector &SDL::pT4_eta() { +const std::vector &LSTEff::pT4_eta() { if (not pT4_eta_isLoaded) { if (pT4_eta_branch != 0) { pT4_eta_branch->GetEntry(index); @@ -3186,7 +3186,7 @@ const std::vector &SDL::pT4_eta() { } return *pT4_eta_; } -const std::vector > &SDL::sim_tce_types() { +const std::vector > &LSTEff::sim_tce_types() { if (not sim_tce_types_isLoaded) { if (sim_tce_types_branch != 0) { sim_tce_types_branch->GetEntry(index); @@ -3198,7 +3198,7 @@ const std::vector > &SDL::sim_tce_types() { } return *sim_tce_types_; } -const std::vector &SDL::tce_rzChiSquared() { +const std::vector &LSTEff::tce_rzChiSquared() { if (not tce_rzChiSquared_isLoaded) { if (tce_rzChiSquared_branch != 0) { tce_rzChiSquared_branch->GetEntry(index); @@ -3210,7 +3210,7 @@ const std::vector &SDL::tce_rzChiSquared() { } return *tce_rzChiSquared_; } -const std::vector > &SDL::pT3_matched_simIdx() { +const std::vector > &LSTEff::pT3_matched_simIdx() { if (not pT3_matched_simIdx_isLoaded) { if (pT3_matched_simIdx_branch != 0) { pT3_matched_simIdx_branch->GetEntry(index); @@ -3222,7 +3222,7 @@ const std::vector > &SDL::pT3_matched_simIdx() { } return *pT3_matched_simIdx_; } -void SDL::progress(int nEventsTotal, int nEventsChain) { +void LSTEff::progress(int nEventsTotal, int nEventsChain) { int period = 1000; if (nEventsTotal % 1000 == 0) { if (isatty(1)) { @@ -3244,150 +3244,150 @@ void SDL::progress(int nEventsTotal, int nEventsChain) { } } namespace tas { - const int &pT5_occupancies() { return sdl.pT5_occupancies(); } - const std::vector &t3_phi() { return sdl.t3_phi(); } - const std::vector &t5_score_rphisum() { return sdl.t5_score_rphisum(); } - const std::vector &pT4_isFake() { return sdl.pT4_isFake(); } - const std::vector &t3_isDuplicate() { return sdl.t3_isDuplicate(); } - const std::vector &sim_event() { return sdl.sim_event(); } - const std::vector &sim_q() { return sdl.sim_q(); } - const std::vector &sim_eta() { return sdl.sim_eta(); } - const std::vector &pT3_foundDuplicate() { return sdl.pT3_foundDuplicate(); } - const std::vector &sim_len() { return sdl.sim_len(); } - const std::vector &pureTCE_isDuplicate() { return sdl.pureTCE_isDuplicate(); } - const std::vector &pT3_score() { return sdl.pT3_score(); } - const std::vector &t5_eta() { return sdl.t5_eta(); } - const std::vector &sim_denom() { return sdl.sim_denom(); } - const std::vector &pT5_isDuplicate() { return sdl.pT5_isDuplicate(); } - const std::vector &sim_tce_matched() { return sdl.sim_tce_matched(); } - const std::vector &pT3_isDuplicate() { return sdl.pT3_isDuplicate(); } - const std::vector &tc_isDuplicate() { return sdl.tc_isDuplicate(); } - const std::vector &pT3_eta_2() { return sdl.pT3_eta_2(); } - const std::vector &sim_pT3_matched() { return sdl.sim_pT3_matched(); } - const std::vector &pureTCE_rzChiSquared() { return sdl.pureTCE_rzChiSquared(); } - const std::vector &t4_isDuplicate() { return sdl.t4_isDuplicate(); } - const std::vector &pureTCE_eta() { return sdl.pureTCE_eta(); } - const std::vector &tce_rPhiChiSquared() { return sdl.tce_rPhiChiSquared(); } - const std::vector &pureTCE_anchorType() { return sdl.pureTCE_anchorType(); } - const std::vector &pureTCE_pt() { return sdl.pureTCE_pt(); } - const std::vector &sim_pt() { return sdl.sim_pt(); } - const std::vector &t5_eta_2() { return sdl.t5_eta_2(); } - const std::vector &pLS_eta() { return sdl.pLS_eta(); } - const std::vector &sim_pdgId() { return sdl.sim_pdgId(); } - const std::vector &t3_eta() { return sdl.t3_eta(); } - const std::vector &tce_layer_binary() { return sdl.tce_layer_binary(); } - const std::vector &sim_TC_matched_nonextended() { return sdl.sim_TC_matched_nonextended(); } - const std::vector &t4_occupancies() { return sdl.t4_occupancies(); } - const std::vector &tce_eta() { return sdl.tce_eta(); } - const std::vector &tce_isDuplicate() { return sdl.tce_isDuplicate(); } - const std::vector > &pT5_matched_simIdx() { return sdl.pT5_matched_simIdx(); } - const std::vector > &sim_tcIdx() { return sdl.sim_tcIdx(); } - const std::vector &t5_phi_2() { return sdl.t5_phi_2(); } - const std::vector &pureTCE_maxHitMatchedCounts() { return sdl.pureTCE_maxHitMatchedCounts(); } - const std::vector > &t5_matched_simIdx() { return sdl.t5_matched_simIdx(); } - const std::vector &module_subdets() { return sdl.module_subdets(); } - const std::vector &tce_anchorType() { return sdl.tce_anchorType(); } - const std::vector > &tce_nHitOverlaps() { return sdl.tce_nHitOverlaps(); } - const std::vector &t3_isFake() { return sdl.t3_isFake(); } - const std::vector &tce_phi() { return sdl.tce_phi(); } - const std::vector &t5_isFake() { return sdl.t5_isFake(); } - const std::vector &md_occupancies() { return sdl.md_occupancies(); } - const std::vector > &t5_hitIdxs() { return sdl.t5_hitIdxs(); } - const std::vector > &sim_pT3_types() { return sdl.sim_pT3_types(); } - const std::vector > &sim_pureTCE_types() { return sdl.sim_pureTCE_types(); } - const std::vector &t4_phi() { return sdl.t4_phi(); } - const std::vector &t5_phi() { return sdl.t5_phi(); } - const std::vector > &pT5_hitIdxs() { return sdl.pT5_hitIdxs(); } - const std::vector &t5_pt() { return sdl.t5_pt(); } - const std::vector &pT5_phi() { return sdl.pT5_phi(); } - const std::vector &pureTCE_isFake() { return sdl.pureTCE_isFake(); } - const std::vector &tce_pt() { return sdl.tce_pt(); } - const std::vector &tc_isFake() { return sdl.tc_isFake(); } - const std::vector &pT3_isFake() { return sdl.pT3_isFake(); } - const std::vector > &tce_nLayerOverlaps() { return sdl.tce_nLayerOverlaps(); } - const std::vector &tc_sim() { return sdl.tc_sim(); } - const std::vector > &sim_pLS_types() { return sdl.sim_pLS_types(); } - const std::vector &sim_pca_dxy() { return sdl.sim_pca_dxy(); } - const std::vector &pT4_phi() { return sdl.pT4_phi(); } - const std::vector &sim_hits() { return sdl.sim_hits(); } - const std::vector &pLS_phi() { return sdl.pLS_phi(); } - const std::vector &sim_pureTCE_matched() { return sdl.sim_pureTCE_matched(); } - const std::vector &t3_occupancies() { return sdl.t3_occupancies(); } - const std::vector &t5_foundDuplicate() { return sdl.t5_foundDuplicate(); } - const std::vector > &sim_pT4_types() { return sdl.sim_pT4_types(); } - const std::vector &t4_isFake() { return sdl.t4_isFake(); } - const std::vector &simvtx_x() { return sdl.simvtx_x(); } - const std::vector &simvtx_y() { return sdl.simvtx_y(); } - const std::vector &simvtx_z() { return sdl.simvtx_z(); } - const std::vector &sim_T4_matched() { return sdl.sim_T4_matched(); } - const std::vector &sim_isGood() { return sdl.sim_isGood(); } - const std::vector &pT3_pt() { return sdl.pT3_pt(); } - const std::vector &tc_pt() { return sdl.tc_pt(); } - const std::vector &pT3_phi_2() { return sdl.pT3_phi_2(); } - const std::vector &pT5_pt() { return sdl.pT5_pt(); } - const std::vector &pureTCE_rPhiChiSquared() { return sdl.pureTCE_rPhiChiSquared(); } - const std::vector &pT5_score() { return sdl.pT5_score(); } - const std::vector &sim_phi() { return sdl.sim_phi(); } - const std::vector &pT5_isFake() { return sdl.pT5_isFake(); } - const std::vector &tc_maxHitMatchedCounts() { return sdl.tc_maxHitMatchedCounts(); } - const std::vector > &pureTCE_nLayerOverlaps() { return sdl.pureTCE_nLayerOverlaps(); } - const std::vector &sim_pca_dz() { return sdl.sim_pca_dz(); } - const std::vector > &pureTCE_hitIdxs() { return sdl.pureTCE_hitIdxs(); } - const std::vector > &pureTCE_nHitOverlaps() { return sdl.pureTCE_nHitOverlaps(); } - const std::vector &sim_pLS_matched() { return sdl.sim_pLS_matched(); } - const std::vector > &tc_matched_simIdx() { return sdl.tc_matched_simIdx(); } - const std::vector &sim_T3_matched() { return sdl.sim_T3_matched(); } - const std::vector &pLS_score() { return sdl.pLS_score(); } - const std::vector &pT3_phi() { return sdl.pT3_phi(); } - const std::vector &pT5_eta() { return sdl.pT5_eta(); } - const std::vector &tc_phi() { return sdl.tc_phi(); } - const std::vector &t4_eta() { return sdl.t4_eta(); } - const std::vector &pLS_isFake() { return sdl.pLS_isFake(); } - const std::vector > &pureTCE_matched_simIdx() { return sdl.pureTCE_matched_simIdx(); } - const std::vector &sim_bunchCrossing() { return sdl.sim_bunchCrossing(); } - const std::vector &tc_partOfExtension() { return sdl.tc_partOfExtension(); } - const std::vector &pT3_eta() { return sdl.pT3_eta(); } - const std::vector &sim_parentVtxIdx() { return sdl.sim_parentVtxIdx(); } - const std::vector &pureTCE_layer_binary() { return sdl.pureTCE_layer_binary(); } - const std::vector &sim_pT4_matched() { return sdl.sim_pT4_matched(); } - const std::vector &tc_eta() { return sdl.tc_eta(); } - const std::vector &sim_lengap() { return sdl.sim_lengap(); } - const std::vector &sim_T5_matched() { return sdl.sim_T5_matched(); } - const std::vector > &sim_T5_types() { return sdl.sim_T5_types(); } - const std::vector > &tce_matched_simIdx() { return sdl.tce_matched_simIdx(); } - const std::vector &t5_isDuplicate() { return sdl.t5_isDuplicate(); } - const std::vector > &pT3_hitIdxs() { return sdl.pT3_hitIdxs(); } - const std::vector > &tc_hitIdxs() { return sdl.tc_hitIdxs(); } - const int &pT3_occupancies() { return sdl.pT3_occupancies(); } - const int &tc_occupancies() { return sdl.tc_occupancies(); } - const std::vector &sim_TC_matched() { return sdl.sim_TC_matched(); } - const std::vector &sim_TC_matched_mask() { return sdl.sim_TC_matched_mask(); } - const std::vector &pLS_isDuplicate() { return sdl.pLS_isDuplicate(); } - const std::vector &tce_anchorIndex() { return sdl.tce_anchorIndex(); } - const std::vector &t5_occupancies() { return sdl.t5_occupancies(); } - const std::vector &tc_type() { return sdl.tc_type(); } - const std::vector &tce_isFake() { return sdl.tce_isFake(); } - const std::vector &pLS_pt() { return sdl.pLS_pt(); } - const std::vector &pureTCE_anchorIndex() { return sdl.pureTCE_anchorIndex(); } - const std::vector > &sim_T4_types() { return sdl.sim_T4_types(); } - const std::vector &pT4_isDuplicate() { return sdl.pT4_isDuplicate(); } - const std::vector &t4_pt() { return sdl.t4_pt(); } - const std::vector > &sim_TC_types() { return sdl.sim_TC_types(); } - const std::vector &sg_occupancies() { return sdl.sg_occupancies(); } - const std::vector &pT4_pt() { return sdl.pT4_pt(); } - const std::vector &pureTCE_phi() { return sdl.pureTCE_phi(); } - const std::vector &sim_vx() { return sdl.sim_vx(); } - const std::vector &sim_vy() { return sdl.sim_vy(); } - const std::vector &sim_vz() { return sdl.sim_vz(); } - const std::vector &tce_maxHitMatchedCounts() { return sdl.tce_maxHitMatchedCounts(); } - const std::vector &t3_pt() { return sdl.t3_pt(); } - const std::vector &module_rings() { return sdl.module_rings(); } - const std::vector > &sim_T3_types() { return sdl.sim_T3_types(); } - const std::vector > &sim_pT5_types() { return sdl.sim_pT5_types(); } - const std::vector &sim_pT5_matched() { return sdl.sim_pT5_matched(); } - const std::vector &module_layers() { return sdl.module_layers(); } - const std::vector &pT4_eta() { return sdl.pT4_eta(); } - const std::vector > &sim_tce_types() { return sdl.sim_tce_types(); } - const std::vector &tce_rzChiSquared() { return sdl.tce_rzChiSquared(); } - const std::vector > &pT3_matched_simIdx() { return sdl.pT3_matched_simIdx(); } + const int &pT5_occupancies() { return lstEff.pT5_occupancies(); } + const std::vector &t3_phi() { return lstEff.t3_phi(); } + const std::vector &t5_score_rphisum() { return lstEff.t5_score_rphisum(); } + const std::vector &pT4_isFake() { return lstEff.pT4_isFake(); } + const std::vector &t3_isDuplicate() { return lstEff.t3_isDuplicate(); } + const std::vector &sim_event() { return lstEff.sim_event(); } + const std::vector &sim_q() { return lstEff.sim_q(); } + const std::vector &sim_eta() { return lstEff.sim_eta(); } + const std::vector &pT3_foundDuplicate() { return lstEff.pT3_foundDuplicate(); } + const std::vector &sim_len() { return lstEff.sim_len(); } + const std::vector &pureTCE_isDuplicate() { return lstEff.pureTCE_isDuplicate(); } + const std::vector &pT3_score() { return lstEff.pT3_score(); } + const std::vector &t5_eta() { return lstEff.t5_eta(); } + const std::vector &sim_denom() { return lstEff.sim_denom(); } + const std::vector &pT5_isDuplicate() { return lstEff.pT5_isDuplicate(); } + const std::vector &sim_tce_matched() { return lstEff.sim_tce_matched(); } + const std::vector &pT3_isDuplicate() { return lstEff.pT3_isDuplicate(); } + const std::vector &tc_isDuplicate() { return lstEff.tc_isDuplicate(); } + const std::vector &pT3_eta_2() { return lstEff.pT3_eta_2(); } + const std::vector &sim_pT3_matched() { return lstEff.sim_pT3_matched(); } + const std::vector &pureTCE_rzChiSquared() { return lstEff.pureTCE_rzChiSquared(); } + const std::vector &t4_isDuplicate() { return lstEff.t4_isDuplicate(); } + const std::vector &pureTCE_eta() { return lstEff.pureTCE_eta(); } + const std::vector &tce_rPhiChiSquared() { return lstEff.tce_rPhiChiSquared(); } + const std::vector &pureTCE_anchorType() { return lstEff.pureTCE_anchorType(); } + const std::vector &pureTCE_pt() { return lstEff.pureTCE_pt(); } + const std::vector &sim_pt() { return lstEff.sim_pt(); } + const std::vector &t5_eta_2() { return lstEff.t5_eta_2(); } + const std::vector &pLS_eta() { return lstEff.pLS_eta(); } + const std::vector &sim_pdgId() { return lstEff.sim_pdgId(); } + const std::vector &t3_eta() { return lstEff.t3_eta(); } + const std::vector &tce_layer_binary() { return lstEff.tce_layer_binary(); } + const std::vector &sim_TC_matched_nonextended() { return lstEff.sim_TC_matched_nonextended(); } + const std::vector &t4_occupancies() { return lstEff.t4_occupancies(); } + const std::vector &tce_eta() { return lstEff.tce_eta(); } + const std::vector &tce_isDuplicate() { return lstEff.tce_isDuplicate(); } + const std::vector > &pT5_matched_simIdx() { return lstEff.pT5_matched_simIdx(); } + const std::vector > &sim_tcIdx() { return lstEff.sim_tcIdx(); } + const std::vector &t5_phi_2() { return lstEff.t5_phi_2(); } + const std::vector &pureTCE_maxHitMatchedCounts() { return lstEff.pureTCE_maxHitMatchedCounts(); } + const std::vector > &t5_matched_simIdx() { return lstEff.t5_matched_simIdx(); } + const std::vector &module_subdets() { return lstEff.module_subdets(); } + const std::vector &tce_anchorType() { return lstEff.tce_anchorType(); } + const std::vector > &tce_nHitOverlaps() { return lstEff.tce_nHitOverlaps(); } + const std::vector &t3_isFake() { return lstEff.t3_isFake(); } + const std::vector &tce_phi() { return lstEff.tce_phi(); } + const std::vector &t5_isFake() { return lstEff.t5_isFake(); } + const std::vector &md_occupancies() { return lstEff.md_occupancies(); } + const std::vector > &t5_hitIdxs() { return lstEff.t5_hitIdxs(); } + const std::vector > &sim_pT3_types() { return lstEff.sim_pT3_types(); } + const std::vector > &sim_pureTCE_types() { return lstEff.sim_pureTCE_types(); } + const std::vector &t4_phi() { return lstEff.t4_phi(); } + const std::vector &t5_phi() { return lstEff.t5_phi(); } + const std::vector > &pT5_hitIdxs() { return lstEff.pT5_hitIdxs(); } + const std::vector &t5_pt() { return lstEff.t5_pt(); } + const std::vector &pT5_phi() { return lstEff.pT5_phi(); } + const std::vector &pureTCE_isFake() { return lstEff.pureTCE_isFake(); } + const std::vector &tce_pt() { return lstEff.tce_pt(); } + const std::vector &tc_isFake() { return lstEff.tc_isFake(); } + const std::vector &pT3_isFake() { return lstEff.pT3_isFake(); } + const std::vector > &tce_nLayerOverlaps() { return lstEff.tce_nLayerOverlaps(); } + const std::vector &tc_sim() { return lstEff.tc_sim(); } + const std::vector > &sim_pLS_types() { return lstEff.sim_pLS_types(); } + const std::vector &sim_pca_dxy() { return lstEff.sim_pca_dxy(); } + const std::vector &pT4_phi() { return lstEff.pT4_phi(); } + const std::vector &sim_hits() { return lstEff.sim_hits(); } + const std::vector &pLS_phi() { return lstEff.pLS_phi(); } + const std::vector &sim_pureTCE_matched() { return lstEff.sim_pureTCE_matched(); } + const std::vector &t3_occupancies() { return lstEff.t3_occupancies(); } + const std::vector &t5_foundDuplicate() { return lstEff.t5_foundDuplicate(); } + const std::vector > &sim_pT4_types() { return lstEff.sim_pT4_types(); } + const std::vector &t4_isFake() { return lstEff.t4_isFake(); } + const std::vector &simvtx_x() { return lstEff.simvtx_x(); } + const std::vector &simvtx_y() { return lstEff.simvtx_y(); } + const std::vector &simvtx_z() { return lstEff.simvtx_z(); } + const std::vector &sim_T4_matched() { return lstEff.sim_T4_matched(); } + const std::vector &sim_isGood() { return lstEff.sim_isGood(); } + const std::vector &pT3_pt() { return lstEff.pT3_pt(); } + const std::vector &tc_pt() { return lstEff.tc_pt(); } + const std::vector &pT3_phi_2() { return lstEff.pT3_phi_2(); } + const std::vector &pT5_pt() { return lstEff.pT5_pt(); } + const std::vector &pureTCE_rPhiChiSquared() { return lstEff.pureTCE_rPhiChiSquared(); } + const std::vector &pT5_score() { return lstEff.pT5_score(); } + const std::vector &sim_phi() { return lstEff.sim_phi(); } + const std::vector &pT5_isFake() { return lstEff.pT5_isFake(); } + const std::vector &tc_maxHitMatchedCounts() { return lstEff.tc_maxHitMatchedCounts(); } + const std::vector > &pureTCE_nLayerOverlaps() { return lstEff.pureTCE_nLayerOverlaps(); } + const std::vector &sim_pca_dz() { return lstEff.sim_pca_dz(); } + const std::vector > &pureTCE_hitIdxs() { return lstEff.pureTCE_hitIdxs(); } + const std::vector > &pureTCE_nHitOverlaps() { return lstEff.pureTCE_nHitOverlaps(); } + const std::vector &sim_pLS_matched() { return lstEff.sim_pLS_matched(); } + const std::vector > &tc_matched_simIdx() { return lstEff.tc_matched_simIdx(); } + const std::vector &sim_T3_matched() { return lstEff.sim_T3_matched(); } + const std::vector &pLS_score() { return lstEff.pLS_score(); } + const std::vector &pT3_phi() { return lstEff.pT3_phi(); } + const std::vector &pT5_eta() { return lstEff.pT5_eta(); } + const std::vector &tc_phi() { return lstEff.tc_phi(); } + const std::vector &t4_eta() { return lstEff.t4_eta(); } + const std::vector &pLS_isFake() { return lstEff.pLS_isFake(); } + const std::vector > &pureTCE_matched_simIdx() { return lstEff.pureTCE_matched_simIdx(); } + const std::vector &sim_bunchCrossing() { return lstEff.sim_bunchCrossing(); } + const std::vector &tc_partOfExtension() { return lstEff.tc_partOfExtension(); } + const std::vector &pT3_eta() { return lstEff.pT3_eta(); } + const std::vector &sim_parentVtxIdx() { return lstEff.sim_parentVtxIdx(); } + const std::vector &pureTCE_layer_binary() { return lstEff.pureTCE_layer_binary(); } + const std::vector &sim_pT4_matched() { return lstEff.sim_pT4_matched(); } + const std::vector &tc_eta() { return lstEff.tc_eta(); } + const std::vector &sim_lengap() { return lstEff.sim_lengap(); } + const std::vector &sim_T5_matched() { return lstEff.sim_T5_matched(); } + const std::vector > &sim_T5_types() { return lstEff.sim_T5_types(); } + const std::vector > &tce_matched_simIdx() { return lstEff.tce_matched_simIdx(); } + const std::vector &t5_isDuplicate() { return lstEff.t5_isDuplicate(); } + const std::vector > &pT3_hitIdxs() { return lstEff.pT3_hitIdxs(); } + const std::vector > &tc_hitIdxs() { return lstEff.tc_hitIdxs(); } + const int &pT3_occupancies() { return lstEff.pT3_occupancies(); } + const int &tc_occupancies() { return lstEff.tc_occupancies(); } + const std::vector &sim_TC_matched() { return lstEff.sim_TC_matched(); } + const std::vector &sim_TC_matched_mask() { return lstEff.sim_TC_matched_mask(); } + const std::vector &pLS_isDuplicate() { return lstEff.pLS_isDuplicate(); } + const std::vector &tce_anchorIndex() { return lstEff.tce_anchorIndex(); } + const std::vector &t5_occupancies() { return lstEff.t5_occupancies(); } + const std::vector &tc_type() { return lstEff.tc_type(); } + const std::vector &tce_isFake() { return lstEff.tce_isFake(); } + const std::vector &pLS_pt() { return lstEff.pLS_pt(); } + const std::vector &pureTCE_anchorIndex() { return lstEff.pureTCE_anchorIndex(); } + const std::vector > &sim_T4_types() { return lstEff.sim_T4_types(); } + const std::vector &pT4_isDuplicate() { return lstEff.pT4_isDuplicate(); } + const std::vector &t4_pt() { return lstEff.t4_pt(); } + const std::vector > &sim_TC_types() { return lstEff.sim_TC_types(); } + const std::vector &sg_occupancies() { return lstEff.sg_occupancies(); } + const std::vector &pT4_pt() { return lstEff.pT4_pt(); } + const std::vector &pureTCE_phi() { return lstEff.pureTCE_phi(); } + const std::vector &sim_vx() { return lstEff.sim_vx(); } + const std::vector &sim_vy() { return lstEff.sim_vy(); } + const std::vector &sim_vz() { return lstEff.sim_vz(); } + const std::vector &tce_maxHitMatchedCounts() { return lstEff.tce_maxHitMatchedCounts(); } + const std::vector &t3_pt() { return lstEff.t3_pt(); } + const std::vector &module_rings() { return lstEff.module_rings(); } + const std::vector > &sim_T3_types() { return lstEff.sim_T3_types(); } + const std::vector > &sim_pT5_types() { return lstEff.sim_pT5_types(); } + const std::vector &sim_pT5_matched() { return lstEff.sim_pT5_matched(); } + const std::vector &module_layers() { return lstEff.module_layers(); } + const std::vector &pT4_eta() { return lstEff.pT4_eta(); } + const std::vector > &sim_tce_types() { return lstEff.sim_tce_types(); } + const std::vector &tce_rzChiSquared() { return lstEff.tce_rzChiSquared(); } + const std::vector > &pT3_matched_simIdx() { return lstEff.pT3_matched_simIdx(); } } // namespace tas diff --git a/RecoTracker/LSTCore/standalone/efficiency/src/SDL.h b/RecoTracker/LSTCore/standalone/efficiency/src/LSTEff.h similarity index 99% rename from RecoTracker/LSTCore/standalone/efficiency/src/SDL.h rename to RecoTracker/LSTCore/standalone/efficiency/src/LSTEff.h index 312200e00443a..9c53fb92c7f62 100644 --- a/RecoTracker/LSTCore/standalone/efficiency/src/SDL.h +++ b/RecoTracker/LSTCore/standalone/efficiency/src/LSTEff.h @@ -1,6 +1,6 @@ // -*- C++ -*- -#ifndef SDL_H -#define SDL_H +#ifndef LSTEff_H +#define LSTEff_H #include "Math/LorentzVector.h" #include "Math/Point3D.h" #include "TMath.h" @@ -13,7 +13,7 @@ #include typedef ROOT::Math::LorentzVector > LorentzVector; -class SDL { +class LSTEff { private: protected: unsigned int index; @@ -610,7 +610,7 @@ class SDL { }; #ifndef __CINT__ -extern SDL sdl; +extern LSTEff lstEff; #endif namespace tas { diff --git a/RecoTracker/LSTCore/standalone/efficiency/src/helper.cc b/RecoTracker/LSTCore/standalone/efficiency/src/helper.cc index ffba160a66155..79c34b8b8cad4 100644 --- a/RecoTracker/LSTCore/standalone/efficiency/src/helper.cc +++ b/RecoTracker/LSTCore/standalone/efficiency/src/helper.cc @@ -196,7 +196,7 @@ void initializeInputsAndOutputs() { ana.events_tchain = RooUtil::FileUtil::createTChain(ana.input_tree_name, ana.input_file_list_tstring); // This is a standard thing SNT does pretty much every looper we use - ana.looper.init(ana.events_tchain, &sdl, ana.n_events); + ana.looper.init(ana.events_tchain, &lstEff, ana.n_events); // Set the cutflow object output file ana.cutflow.setTFile(ana.output_tfile); diff --git a/RecoTracker/LSTCore/standalone/efficiency/src/helper.h b/RecoTracker/LSTCore/standalone/efficiency/src/helper.h index 11df4779e06cc..6b263d9553920 100644 --- a/RecoTracker/LSTCore/standalone/efficiency/src/helper.h +++ b/RecoTracker/LSTCore/standalone/efficiency/src/helper.h @@ -1,7 +1,7 @@ #ifndef helper_h #define helper_h -#include "SDL.h" +#include "LSTEff.h" #include "cxxopts.h" #include "rooutil.h" @@ -39,7 +39,7 @@ class AnalysisConfig { TChain* events_tchain; // Custom Looper object to facilitate looping over many files - RooUtil::Looper looper; + RooUtil::Looper looper; // Custom Cutflow framework RooUtil::Cutflow cutflow; diff --git a/RecoTracker/LSTCore/standalone/efficiency/src/performance.cc b/RecoTracker/LSTCore/standalone/efficiency/src/performance.cc index 5eefc4b6d4276..b6c9c1f420066 100644 --- a/RecoTracker/LSTCore/standalone/efficiency/src/performance.cc +++ b/RecoTracker/LSTCore/standalone/efficiency/src/performance.cc @@ -25,11 +25,11 @@ int main(int argc, char** argv) { }; std::vector> sels = { [&](unsigned int isim) { return 1.; }, - [&](unsigned int isim) { return abs(sdl.sim_eta().at(isim)) < 2.4; }, - [&](unsigned int isim) { return abs(sdl.sim_eta().at(isim)) > 1.1 and abs(sdl.sim_eta().at(isim)) < 1.7; }, + [&](unsigned int isim) { return abs(lstEff.sim_eta().at(isim)) < 2.4; }, + [&](unsigned int isim) { return abs(lstEff.sim_eta().at(isim)) > 1.1 and abs(lstEff.sim_eta().at(isim)) < 1.7; }, [&](unsigned int isim) { - return (abs(sdl.sim_eta().at(isim)) < 1.1 or abs(sdl.sim_eta().at(isim)) > 1.7) and - abs(sdl.sim_eta().at(isim)) < 2.4; + return (abs(lstEff.sim_eta().at(isim)) < 1.1 or abs(lstEff.sim_eta().at(isim)) > 1.7) and + abs(lstEff.sim_eta().at(isim)) < 2.4; }}; pdgids.insert(pdgids.end(), ana.pdgids.begin(), ana.pdgids.end()); @@ -43,53 +43,53 @@ int main(int argc, char** argv) { SimTrackSetDefinition(/* name */ TString("TC_") + selnames[isel], /* pdgid */ pdgid, /* q */ charge, - /* pass */ [&](unsigned int isim) { return sdl.sim_TC_matched().at(isim) > 0; }, + /* pass */ [&](unsigned int isim) { return lstEff.sim_TC_matched().at(isim) > 0; }, /* sel */ sels[isel])); list_effSetDef.push_back(SimTrackSetDefinition( /* name */ TString("pT5_") + selnames[isel], /* pdgid */ pdgid, /* q */ charge, - /* pass */ [&](unsigned int isim) { return sdl.sim_TC_matched_mask().at(isim) & (1 << pT5); }, + /* pass */ [&](unsigned int isim) { return lstEff.sim_TC_matched_mask().at(isim) & (1 << pT5); }, /* sel */ sels[isel])); list_effSetDef.push_back(SimTrackSetDefinition( /* name */ TString("pT3_") + selnames[isel], /* pdgid */ pdgid, /* q */ charge, - /* pass */ [&](unsigned int isim) { return sdl.sim_TC_matched_mask().at(isim) & (1 << pT3); }, + /* pass */ [&](unsigned int isim) { return lstEff.sim_TC_matched_mask().at(isim) & (1 << pT3); }, /* sel */ sels[isel])); list_effSetDef.push_back(SimTrackSetDefinition( /* name */ TString("T5_") + selnames[isel], /* pdgid */ pdgid, /* q */ charge, - /* pass */ [&](unsigned int isim) { return sdl.sim_TC_matched_mask().at(isim) & (1 << T5); }, + /* pass */ [&](unsigned int isim) { return lstEff.sim_TC_matched_mask().at(isim) & (1 << T5); }, /* sel */ sels[isel])); list_effSetDef.push_back(SimTrackSetDefinition( /* name */ TString("pLS_") + selnames[isel], /* pdgid */ pdgid, /* q */ charge, - /* pass */ [&](unsigned int isim) { return sdl.sim_TC_matched_mask().at(isim) & (1 << pLS); }, + /* pass */ [&](unsigned int isim) { return lstEff.sim_TC_matched_mask().at(isim) & (1 << pLS); }, /* sel */ sels[isel])); if (ana.do_lower_level) { //lower objects - name will have pT5_lower_, T5_lower_, pT3_lower_ - list_effSetDef.push_back( - SimTrackSetDefinition(/* name */ TString("pT5_lower_") + selnames[isel], - /* pdgid */ pdgid, - /* q */ charge, - /* pass */ [&](unsigned int isim) { return sdl.sim_pT5_matched().at(isim) > 0; }, - /* sel */ sels[isel])); + list_effSetDef.push_back(SimTrackSetDefinition( + /* name */ TString("pT5_lower_") + selnames[isel], + /* pdgid */ pdgid, + /* q */ charge, + /* pass */ [&](unsigned int isim) { return lstEff.sim_pT5_matched().at(isim) > 0; }, + /* sel */ sels[isel])); list_effSetDef.push_back( SimTrackSetDefinition(/* name */ TString("T5_lower_") + selnames[isel], /* pdgid */ pdgid, /* q */ charge, - /* pass */ [&](unsigned int isim) { return sdl.sim_T5_matched().at(isim) > 0; }, - /* sel */ sels[isel])); - list_effSetDef.push_back( - SimTrackSetDefinition(/* name */ TString("pT3_lower_") + selnames[isel], - /* pdgid */ pdgid, - /* q */ charge, - /* pass */ [&](unsigned int isim) { return sdl.sim_pT3_matched().at(isim) > 0; }, + /* pass */ [&](unsigned int isim) { return lstEff.sim_T5_matched().at(isim) > 0; }, /* sel */ sels[isel])); + list_effSetDef.push_back(SimTrackSetDefinition( + /* name */ TString("pT3_lower_") + selnames[isel], + /* pdgid */ pdgid, + /* q */ charge, + /* pass */ [&](unsigned int isim) { return lstEff.sim_pT3_matched().at(isim) > 0; }, + /* sel */ sels[isel])); } } } @@ -101,7 +101,7 @@ int main(int argc, char** argv) { std::vector list_FRSetDef; list_FRSetDef.push_back( RecoTrackSetDefinition(/* name */ "TC", - /* pass */ [&](unsigned int itc) { return sdl.tc_isFake().at(itc) > 0; }, + /* pass */ [&](unsigned int itc) { return lstEff.tc_isFake().at(itc) > 0; }, /* sel */ [&](unsigned int itc) { return 1; }, /* pt */ tas::tc_pt, /* eta */ tas::tc_eta, @@ -109,32 +109,32 @@ int main(int argc, char** argv) { /* type */ tas::tc_type)); list_FRSetDef.push_back( RecoTrackSetDefinition(/* name */ "pT5", - /* pass */ [&](unsigned int itc) { return sdl.tc_isFake().at(itc) > 0; }, - /* sel */ [&](unsigned int itc) { return sdl.tc_type().at(itc) == pT5; }, + /* pass */ [&](unsigned int itc) { return lstEff.tc_isFake().at(itc) > 0; }, + /* sel */ [&](unsigned int itc) { return lstEff.tc_type().at(itc) == pT5; }, /* pt */ tas::tc_pt, /* eta */ tas::tc_eta, /* phi */ tas::tc_phi, /* type */ tas::tc_type)); list_FRSetDef.push_back( RecoTrackSetDefinition(/* name */ "pT3", - /* pass */ [&](unsigned int itc) { return sdl.tc_isFake().at(itc) > 0; }, - /* sel */ [&](unsigned int itc) { return sdl.tc_type().at(itc) == pT3; }, + /* pass */ [&](unsigned int itc) { return lstEff.tc_isFake().at(itc) > 0; }, + /* sel */ [&](unsigned int itc) { return lstEff.tc_type().at(itc) == pT3; }, /* pt */ tas::tc_pt, /* eta */ tas::tc_eta, /* phi */ tas::tc_phi, /* type */ tas::tc_type)); list_FRSetDef.push_back( RecoTrackSetDefinition(/* name */ "T5", - /* pass */ [&](unsigned int itc) { return sdl.tc_isFake().at(itc) > 0; }, - /* sel */ [&](unsigned int itc) { return sdl.tc_type().at(itc) == T5; }, + /* pass */ [&](unsigned int itc) { return lstEff.tc_isFake().at(itc) > 0; }, + /* sel */ [&](unsigned int itc) { return lstEff.tc_type().at(itc) == T5; }, /* pt */ tas::tc_pt, /* eta */ tas::tc_eta, /* phi */ tas::tc_phi, /* type */ tas::tc_type)); list_FRSetDef.push_back( RecoTrackSetDefinition(/* name */ "pLS", - /* pass */ [&](unsigned int itc) { return sdl.tc_isFake().at(itc) > 0; }, - /* sel */ [&](unsigned int itc) { return sdl.tc_type().at(itc) == pLS; }, + /* pass */ [&](unsigned int itc) { return lstEff.tc_isFake().at(itc) > 0; }, + /* sel */ [&](unsigned int itc) { return lstEff.tc_type().at(itc) == pLS; }, /* pt */ tas::tc_pt, /* eta */ tas::tc_eta, /* phi */ tas::tc_phi, @@ -143,7 +143,7 @@ int main(int argc, char** argv) { if (ana.do_lower_level) { list_FRSetDef.push_back(RecoTrackSetDefinition( /* name */ "pT5_lower", - /* pass */ [&](unsigned int ipT5) { return sdl.pT5_isFake().at(ipT5) > 0; }, + /* pass */ [&](unsigned int ipT5) { return lstEff.pT5_isFake().at(ipT5) > 0; }, /* sel */ [&](unsigned int ipT5) { return 1; }, /* pt */ tas::pT5_pt, /* eta */ tas::pT5_eta, @@ -151,7 +151,7 @@ int main(int argc, char** argv) { /* type */ [&]() { return static_cast>(std::vector(tas::pT5_pt().size(), 1)); })); list_FRSetDef.push_back(RecoTrackSetDefinition( /* name */ "T5_lower", - /* pass */ [&](unsigned int it5) { return sdl.t5_isFake().at(it5) > 0; }, + /* pass */ [&](unsigned int it5) { return lstEff.t5_isFake().at(it5) > 0; }, /* sel */ [&](unsigned int it5) { return 1; }, /* pt */ tas::t5_pt, /* eta */ tas::t5_eta, @@ -159,7 +159,7 @@ int main(int argc, char** argv) { /* type */ [&]() { return static_cast>(std::vector(tas::t5_pt().size(), 1)); })); list_FRSetDef.push_back(RecoTrackSetDefinition( /* name */ "pT3_lower", - /* pass */ [&](unsigned int ipT3) { return sdl.pT3_isFake().at(ipT3) > 0; }, + /* pass */ [&](unsigned int ipT3) { return lstEff.pT3_isFake().at(ipT3) > 0; }, /* sel */ [&](unsigned int ipT3) { return 1; }, /* pt */ tas::pT3_pt, /* eta */ tas::pT3_eta, @@ -173,7 +173,7 @@ int main(int argc, char** argv) { std::vector list_DRSetDef; list_DRSetDef.push_back( RecoTrackSetDefinition(/* name */ "TC", - /* pass */ [&](unsigned int itc) { return sdl.tc_isDuplicate().at(itc) > 0; }, + /* pass */ [&](unsigned int itc) { return lstEff.tc_isDuplicate().at(itc) > 0; }, /* sel */ [&](unsigned int itc) { return 1; }, /* pt */ tas::tc_pt, /* eta */ tas::tc_eta, @@ -181,32 +181,32 @@ int main(int argc, char** argv) { /* type */ tas::tc_type)); list_DRSetDef.push_back( RecoTrackSetDefinition(/* name */ "pT5", - /* pass */ [&](unsigned int itc) { return sdl.tc_isDuplicate().at(itc) > 0; }, - /* sel */ [&](unsigned int itc) { return sdl.tc_type().at(itc) == pT5; }, + /* pass */ [&](unsigned int itc) { return lstEff.tc_isDuplicate().at(itc) > 0; }, + /* sel */ [&](unsigned int itc) { return lstEff.tc_type().at(itc) == pT5; }, /* pt */ tas::tc_pt, /* eta */ tas::tc_eta, /* phi */ tas::tc_phi, /* type */ tas::tc_type)); list_DRSetDef.push_back( RecoTrackSetDefinition(/* name */ "pT3", - /* pass */ [&](unsigned int itc) { return sdl.tc_isDuplicate().at(itc) > 0; }, - /* sel */ [&](unsigned int itc) { return sdl.tc_type().at(itc) == pT3; }, + /* pass */ [&](unsigned int itc) { return lstEff.tc_isDuplicate().at(itc) > 0; }, + /* sel */ [&](unsigned int itc) { return lstEff.tc_type().at(itc) == pT3; }, /* pt */ tas::tc_pt, /* eta */ tas::tc_eta, /* phi */ tas::tc_phi, /* type */ tas::tc_type)); list_DRSetDef.push_back( RecoTrackSetDefinition(/* name */ "T5", - /* pass */ [&](unsigned int itc) { return sdl.tc_isDuplicate().at(itc) > 0; }, - /* sel */ [&](unsigned int itc) { return sdl.tc_type().at(itc) == T5; }, + /* pass */ [&](unsigned int itc) { return lstEff.tc_isDuplicate().at(itc) > 0; }, + /* sel */ [&](unsigned int itc) { return lstEff.tc_type().at(itc) == T5; }, /* pt */ tas::tc_pt, /* eta */ tas::tc_eta, /* phi */ tas::tc_phi, /* type */ tas::tc_type)); list_DRSetDef.push_back( RecoTrackSetDefinition(/* name */ "pLS", - /* pass */ [&](unsigned int itc) { return sdl.tc_isDuplicate().at(itc) > 0; }, - /* sel */ [&](unsigned int itc) { return sdl.tc_type().at(itc) == pLS; }, + /* pass */ [&](unsigned int itc) { return lstEff.tc_isDuplicate().at(itc) > 0; }, + /* sel */ [&](unsigned int itc) { return lstEff.tc_type().at(itc) == pLS; }, /* pt */ tas::tc_pt, /* eta */ tas::tc_eta, /* phi */ tas::tc_phi, @@ -215,7 +215,7 @@ int main(int argc, char** argv) { if (ana.do_lower_level) { list_DRSetDef.push_back(RecoTrackSetDefinition( /* name */ "pT5_lower", - /* pass */ [&](unsigned int ipT5) { return sdl.pT5_isDuplicate().at(ipT5) > 0; }, + /* pass */ [&](unsigned int ipT5) { return lstEff.pT5_isDuplicate().at(ipT5) > 0; }, /* sel */ [&](unsigned int ipT5) { return 1; }, /* pt */ tas::pT5_pt, /* eta */ tas::pT5_eta, @@ -223,7 +223,7 @@ int main(int argc, char** argv) { /* type */ [&]() { return static_cast>(std::vector(tas::pT5_pt().size(), 1)); })); list_DRSetDef.push_back(RecoTrackSetDefinition( /* name */ "T5_lower", - /* pass */ [&](unsigned int it5) { return sdl.t5_isDuplicate().at(it5) > 0; }, + /* pass */ [&](unsigned int it5) { return lstEff.t5_isDuplicate().at(it5) > 0; }, /* sel */ [&](unsigned int it5) { return 1; }, /* pt */ tas::t5_pt, /* eta */ tas::t5_eta, @@ -231,7 +231,7 @@ int main(int argc, char** argv) { /* type */ [&]() { return static_cast>(std::vector(tas::t5_pt().size(), 1)); })); list_DRSetDef.push_back(RecoTrackSetDefinition( /* name */ "pT3_lower", - /* pass */ [&](unsigned int ipT3) { return sdl.pT3_isDuplicate().at(ipT3) > 0; }, + /* pass */ [&](unsigned int ipT3) { return lstEff.pT3_isDuplicate().at(ipT3) > 0; }, /* sel */ [&](unsigned int ipT3) { return 1; }, /* pt */ tas::pT3_pt, /* eta */ tas::pT3_eta, @@ -527,7 +527,7 @@ void bookFakeRateSet(RecoTrackSetDefinition& FRset) { //__________________________________________________________________________________________________________________________________________________________________________ void fillEfficiencySets(std::vector& effsets) { for (auto& effset : effsets) { - for (unsigned int isimtrk = 0; isimtrk < sdl.sim_pt().size(); ++isimtrk) { + for (unsigned int isimtrk = 0; isimtrk < lstEff.sim_pt().size(); ++isimtrk) { fillEfficiencySet(isimtrk, effset); } } @@ -537,24 +537,24 @@ void fillEfficiencySets(std::vector& effsets) { void fillEfficiencySet(int isimtrk, SimTrackSetDefinition& effset) { //========================================================= // NOTE: The following is not applied as the LSTNtuple no longer writes this. - // const int &bunch = sdl.sim_bunchCrossing()[isimtrk]; - // const int &event = sdl.sim_event()[isimtrk]; + // const int &bunch = lstEff.sim_bunchCrossing()[isimtrk]; + // const int &event = lstEff.sim_event()[isimtrk]; // if (bunch != 0) // return; // if (event != 0) // return; //========================================================= - const float& pt = sdl.sim_pt()[isimtrk]; - const float& eta = sdl.sim_eta()[isimtrk]; - const float& dz = sdl.sim_pca_dz()[isimtrk]; - const float& dxy = sdl.sim_pca_dxy()[isimtrk]; - const float& phi = sdl.sim_phi()[isimtrk]; - const int& pdgidtrk = sdl.sim_pdgId()[isimtrk]; - const int& q = sdl.sim_q()[isimtrk]; - const float& vtx_x = sdl.sim_vx()[isimtrk]; - const float& vtx_y = sdl.sim_vy()[isimtrk]; - const float& vtx_z = sdl.sim_vz()[isimtrk]; + const float& pt = lstEff.sim_pt()[isimtrk]; + const float& eta = lstEff.sim_eta()[isimtrk]; + const float& dz = lstEff.sim_pca_dz()[isimtrk]; + const float& dxy = lstEff.sim_pca_dxy()[isimtrk]; + const float& phi = lstEff.sim_phi()[isimtrk]; + const int& pdgidtrk = lstEff.sim_pdgId()[isimtrk]; + const int& q = lstEff.sim_q()[isimtrk]; + const float& vtx_x = lstEff.sim_vx()[isimtrk]; + const float& vtx_y = lstEff.sim_vy()[isimtrk]; + const float& vtx_z = lstEff.sim_vz()[isimtrk]; const float& vtx_perp = sqrt(vtx_x * vtx_x + vtx_y * vtx_y); bool pass = effset.pass(isimtrk); bool sel = effset.sel(isimtrk); diff --git a/RecoTracker/LSTCore/standalone/efficiency/src/performance.h b/RecoTracker/LSTCore/standalone/efficiency/src/performance.h index f6a4607508a5c..229bb3c87765e 100644 --- a/RecoTracker/LSTCore/standalone/efficiency/src/performance.h +++ b/RecoTracker/LSTCore/standalone/efficiency/src/performance.h @@ -1,7 +1,7 @@ #ifndef process_h #define process_h -#include "SDL.h" +#include "LSTEff.h" #include "rooutil.h" #include "cxxopts.h" #include "helper.h" diff --git a/RecoTracker/LSTCore/standalone/setup.sh b/RecoTracker/LSTCore/standalone/setup.sh index f83ca036f060d..4337ffeaddf6d 100644 --- a/RecoTracker/LSTCore/standalone/setup.sh +++ b/RecoTracker/LSTCore/standalone/setup.sh @@ -32,7 +32,7 @@ echo "Setup following ROOT. Make sure the appropriate setup file has been run. O which root DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -export LD_LIBRARY_PATH=$DIR/SDL:$DIR:$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=$DIR/LST:$DIR:$LD_LIBRARY_PATH export PATH=$DIR/bin:$PATH export PATH=$DIR/efficiency/bin:$PATH export PATH=$DIR/efficiency/python:$PATH diff --git a/RecoTracker/LSTCore/standalone/setup_hpg.sh b/RecoTracker/LSTCore/standalone/setup_hpg.sh deleted file mode 100644 index 04ab93ab57b3c..0000000000000 --- a/RecoTracker/LSTCore/standalone/setup_hpg.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash - -# HiPerGator module setup for cuda -module load cuda/11.4.3 git -# module use ~/module -# module load root/6.22.08 - -########################################################################################################### -# Setup environments -########################################################################################################### -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -source $DIR/code/rooutil/thisrooutil.sh - -export SCRAM_ARCH=el8_amd64_gcc12 -export CMSSW_VERSION=CMSSW_14_1_0_pre5 -export CUDA_HOME=${HPC_CUDA_DIR} - -source /cvmfs/cms.cern.ch/cmsset_default.sh -cd /cvmfs/cms.cern.ch/$SCRAM_ARCH/cms/cmssw/$CMSSW_VERSION/src -eval `scramv1 runtime -sh` - -# Export paths to libraries we need -export BOOST_ROOT=$(scram tool info boost | grep BOOST_BASE | cut -d'=' -f2) -export ALPAKA_ROOT=$(scram tool info alpaka | grep ALPAKA_BASE | cut -d'=' -f2) -export ROOT_ROOT=$(scram tool info root_interface | grep ROOT_INTERFACE_BASE | cut -d'=' -f2) -export ROCM_ROOT=$(scram tool info rocm | grep ROCM_BASE | cut -d'=' -f2) - -cd - > /dev/null -echo "Setup following ROOT. Make sure the appropriate setup file has been run. Otherwise the looper won't compile." -which root - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -export LD_LIBRARY_PATH=$DIR/SDL/cuda:$DIR/SDL/cpu:$DIR:$LD_LIBRARY_PATH -export PATH=$DIR/bin:$PATH -export PATH=$DIR/efficiency/bin:$PATH -export PATH=$DIR/efficiency/python:$PATH -export TRACKLOOPERDIR=$DIR -export TRACKINGNTUPLEDIR=/blue/p.chang/p.chang/data/lst/CMSSW_12_2_0_pre2 -export LSTOUTPUTDIR=. -export LSTPERFORMANCEWEBDIR=/home/users/phchang/public_html/LSTPerformanceWeb - -########################################################################################################### -# Validation scripts -########################################################################################################### - -# List of benchmark efficiencies are set as an environment variable -export LATEST_CPU_BENCHMARK_EFF_MUONGUN= -export LATEST_CPU_BENCHMARK_EFF_PU200= -#eof From 67c23760c695d454ea07c0b26526d035d85caf01 Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Tue, 30 Jul 2024 10:57:10 -0700 Subject: [PATCH 32/35] Simplification of variable naming --- RecoTracker/LSTCore/src/alpaka/Event.dev.cc | 2 +- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 36 +++++++------- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 48 +++++++++---------- RecoTracker/LSTCore/src/alpaka/Triplet.h | 22 ++++----- 4 files changed, 54 insertions(+), 54 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc index 400d35351fa62..efdb099bfea0c 100644 --- a/RecoTracker/LSTCore/src/alpaka/Event.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/Event.dev.cc @@ -1623,7 +1623,7 @@ lst::TripletsBuffer* lst::Event::getTriplets() { alpaka::memcpy(queue, tripletsInCPU->zHi_buf, tripletsBuffers->zHi_buf, nMemHost); alpaka::memcpy(queue, tripletsInCPU->zLoPointed_buf, tripletsBuffers->zLoPointed_buf, nMemHost); alpaka::memcpy(queue, tripletsInCPU->zHiPointed_buf, tripletsBuffers->zHiPointed_buf, nMemHost); - alpaka::memcpy(queue, tripletsInCPU->lstCut_buf, tripletsBuffers->lstCut_buf, nMemHost); + alpaka::memcpy(queue, tripletsInCPU->dPhiCut_buf, tripletsBuffers->dPhiCut_buf, nMemHost); alpaka::memcpy(queue, tripletsInCPU->betaInCut_buf, tripletsBuffers->betaInCut_buf, nMemHost); alpaka::memcpy(queue, tripletsInCPU->rtLo_buf, tripletsBuffers->rtLo_buf, nMemHost); alpaka::memcpy(queue, tripletsInCPU->rtHi_buf, tripletsBuffers->rtHi_buf, nMemHost); diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index bf23e8bc7f759..a460b0c30fbad 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -1184,7 +1184,7 @@ namespace lst { unsigned int secondMDIndex, unsigned int thirdMDIndex, unsigned int fourthMDIndex) { - float dPhi, betaIn, betaOut, pt_beta, zLo, zHi, zLoPointed, zHiPointed, lstCut, betaOutCut; + float dPhi, betaIn, betaOut, pt_beta, zLo, zHi, zLoPointed, zHiPointed, dPhiCut, betaOutCut; bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS); @@ -1249,14 +1249,14 @@ namespace lst { float drt_InSeg = rt_InOut - rt_InLo; - const float lstThetaMulsF2 = + const float thetaMuls2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InUp) / 50.f) * (r3_InUp / rt_InUp); - const float lstMuls2 = lstThetaMulsF2 * 9.f / (ptCut * ptCut) * 16.f; + const float muls2 = thetaMuls2 * 9.f / (ptCut * ptCut) * 16.f; float dzErr = (drt_OutLo_InUp * drt_OutLo_InUp) * (etaErr * etaErr) * cosh2Eta; dzErr += 0.03f * 0.03f; // Approximately account for IT module size dzErr *= 9.f; // 3 sigma - dzErr += lstMuls2 * (drt_OutLo_InUp * drt_OutLo_InUp) / 3.f * cosh2Eta; + dzErr += muls2 * (drt_OutLo_InUp * drt_OutLo_InUp) / 3.f * cosh2Eta; dzErr += zGeom * zGeom; dzErr = alpaka::math::sqrt(acc, dzErr); @@ -1272,8 +1272,8 @@ namespace lst { if ((z_OutLo < zLoPointed) || (z_OutLo > zHiPointed)) return false; - const float lstPVoff = 0.1f / rt_OutLo; - lstCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, lstMuls2 + lstPVoff * lstPVoff); + const float pvOffset = 0.1f / rt_OutLo; + dPhiCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, muls2 + pvOffset * pvOffset); //no dphipos cut float midPointX = 0.5f * (x_InLo + x_OutLo); @@ -1284,7 +1284,7 @@ namespace lst { dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); - if (alpaka::math::abs(acc, dPhi) > lstCut) + if (alpaka::math::abs(acc, dPhi) > dPhiCut) return false; //lots of array accesses below this... @@ -1380,7 +1380,7 @@ namespace lst { float min_ptBeta_ptBetaMax = alpaka::math::min( acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confirm the range-out value of 7 GeV - const float dBetaMuls2 = lstThetaMulsF2 * 16.f / (min_ptBeta_ptBetaMax * min_ptBeta_ptBetaMax); + const float dBetaMuls2 = thetaMuls2 * 16.f / (min_ptBeta_ptBetaMax * min_ptBeta_ptBetaMax); const float alphaInAbsReg = alpaka::math::max(acc, alpaka::math::abs(acc, alpha_InLo), @@ -1442,7 +1442,7 @@ namespace lst { unsigned int secondMDIndex, unsigned int thirdMDIndex, unsigned int fourthMDIndex) { - float dPhi, betaIn, betaOut, pt_beta, rtLo, rtHi, lstCut, betaOutCut; + float dPhi, betaIn, betaOut, pt_beta, rtLo, rtHi, dPhiCut, betaOutCut; bool isPS_OutLo = (modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS); @@ -1484,9 +1484,9 @@ namespace lst { float zpitch_OutLo = (isPS_OutLo ? kPixelPSZpitch : kStrip2SZpitch); float zGeom = zpitch_InLo + zpitch_OutLo; - const float lstSlope = + const float slope = alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / ptCut, kSinAlphaMax)); - const float dzDrtScale = alpaka::math::tan(acc, lstSlope) / lstSlope; //FIXME: need approximate value + const float dzDrtScale = alpaka::math::tan(acc, slope) / slope; //FIXME: need approximate value const float dLum = alpaka::math::copysign(acc, kDeltaZLum, z_InUp); bool isOutSgInnerMDPS = modulesInGPU.moduleType[outerInnerLowerModuleIndex] == lst::PS; @@ -1511,14 +1511,14 @@ namespace lst { const float cosh2Eta = 1.f + (pz * pz) / (ptIn * ptIn); const float multDzDr2 = (dzOutInAbs * dzOutInAbs) * cosh2Eta / ((cosh2Eta - 1.f) * (cosh2Eta - 1.f)); const float r3_InUp = alpaka::math::sqrt(acc, z_InUp * z_InUp + rt_InUp * rt_InUp); - const float lstThetaMulsF2 = + const float thetaMuls2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InUp) / 50.f) * (r3_InUp / rt_InUp); - const float lstMuls2 = lstThetaMulsF2 * 9.f / (ptCut * ptCut) * 16.f; + const float muls2 = thetaMuls2 * 9.f / (ptCut * ptCut) * 16.f; float drtErr = (etaErr * etaErr) * multDzDr2; drtErr += 0.03f * 0.03f; // Approximately account for IT module size drtErr *= 9.f; // 3 sigma - drtErr += lstMuls2 * multDzDr2 / 3.f * cosh2Eta; + drtErr += muls2 * multDzDr2 / 3.f * cosh2Eta; drtErr = alpaka::math::sqrt(acc, drtErr); const float drtDzIn = alpaka::math::abs(acc, ptIn / pz); @@ -1537,8 +1537,8 @@ namespace lst { const float alpha1GeV_OutLo = alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / ptCut, kSinAlphaMax)); - const float lstPVoff = 0.1f / rt_OutLo; - lstCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, lstMuls2 + lstPVoff * lstPVoff); + const float pvOffset = 0.1f / rt_OutLo; + dPhiCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, muls2 + pvOffset * pvOffset); float midPointX = 0.5f * (x_InLo + x_OutLo); float midPointY = 0.5f * (y_InLo + y_OutLo); @@ -1549,7 +1549,7 @@ namespace lst { dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange - if (alpaka::math::abs(acc, dPhi) > lstCut) + if (alpaka::math::abs(acc, dPhi) > dPhiCut) return false; float alpha_InLo = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); @@ -1640,7 +1640,7 @@ namespace lst { float min_ptBeta_ptBetaMax = alpaka::math::min( acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confirm the range-out value of 7 GeV - const float dBetaMuls2 = lstThetaMulsF2 * 16.f / (min_ptBeta_ptBetaMax * min_ptBeta_ptBetaMax); + const float dBetaMuls2 = thetaMuls2 * 16.f / (min_ptBeta_ptBetaMax * min_ptBeta_ptBetaMax); const float alphaInAbsReg = alpaka::math::max(acc, diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index d8dd0df8b745e..8d24c98293f0c 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -1400,10 +1400,10 @@ namespace lst { float coshEta = dr3_InSeg / drt_InSeg; float dzErr = (zpitch_InLo + zpitch_OutLo) * (zpitch_InLo + zpitch_OutLo) * 2.f; - float lstThetaMulsF2 = + float thetaMuls2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f) * (r3_InLo / rt_InLo); - float lstMuls2 = lstThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; - dzErr += lstMuls2 * drt_OutLo_InLo * drt_OutLo_InLo / 3.f * coshEta * coshEta; + float muls2 = thetaMuls2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; + dzErr += muls2 * drt_OutLo_InLo * drt_OutLo_InLo / 3.f * coshEta * coshEta; dzErr = alpaka::math::sqrt(acc, dzErr); // Constructing upper and lower bound @@ -1418,12 +1418,12 @@ namespace lst { if ((z_OutLo < zLoPointed) || (z_OutLo > zHiPointed)) return false; - float lstPVoff = 0.1f / rt_OutLo; - float lstCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, lstMuls2 + lstPVoff * lstPVoff); + float pvOffset = 0.1f / rt_OutLo; + float dPhiCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, muls2 + pvOffset * pvOffset); float deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); // Cut #3: FIXME:deltaPhiPos can be tighter - if (alpaka::math::abs(acc, deltaPhiPos) > lstCut) + if (alpaka::math::abs(acc, deltaPhiPos) > dPhiCut) return false; float midPointX = 0.5f * (mdsInGPU.anchorX[firstMDIndex] + mdsInGPU.anchorX[thirdMDIndex]); @@ -1434,7 +1434,7 @@ namespace lst { float dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #4: deltaPhiChange - if (alpaka::math::abs(acc, dPhi) > lstCut) + if (alpaka::math::abs(acc, dPhi) > dPhiCut) return false; // First obtaining the raw betaIn and betaOut values without any correction and just purely based on the mini-doublet hit positions @@ -1549,7 +1549,7 @@ namespace lst { float min_ptBeta_maxPtBeta = alpaka::math::min( acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confimm the range-out value of 7 GeV - const float dBetaMuls2 = lstThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); + const float dBetaMuls2 = thetaMuls2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); const float alphaInAbsReg = alpaka::math::max( acc, @@ -1673,23 +1673,23 @@ namespace lst { float kZ = (z_OutLo - z_InLo) / dzSDIn; float drtErr = zGeom1_another * zGeom1_another * drtSDIn * drtSDIn / dzSDIn / dzSDIn * (1.f - 2.f * kZ + 2.f * kZ * kZ); - const float lstThetaMulsF2 = + const float thetaMuls2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f) * (rIn / rt_InLo); - const float lstMuls2 = lstThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; - drtErr += lstMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta; + const float muls2 = thetaMuls2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; + drtErr += muls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta; drtErr = alpaka::math::sqrt(acc, drtErr); //Cut #3: rt-z pointed if ((kZ < 0) || (rtOut < rtLo) || (rtOut > rtHi)) return false; - const float lstPVoff = 0.1f / rt_OutLo; - float lstCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, lstMuls2 + lstPVoff * lstPVoff); + const float pvOffset = 0.1f / rt_OutLo; + float dPhiCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, muls2 + pvOffset * pvOffset); float deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); //Cut #4: deltaPhiPos can be tighter - if (alpaka::math::abs(acc, deltaPhiPos) > lstCut) + if (alpaka::math::abs(acc, deltaPhiPos) > dPhiCut) return false; float midPointX = 0.5f * (mdsInGPU.anchorX[firstMDIndex] + mdsInGPU.anchorX[thirdMDIndex]); @@ -1699,7 +1699,7 @@ namespace lst { float dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange - if (alpaka::math::abs(acc, dPhi) > lstCut) + if (alpaka::math::abs(acc, dPhi) > dPhiCut) return false; float sdIn_alpha = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); @@ -1802,7 +1802,7 @@ namespace lst { float min_ptBeta_maxPtBeta = alpaka::math::min( acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confirm the range-out value of 7 GeV - const float dBetaMuls2 = lstThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); + const float dBetaMuls2 = thetaMuls2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); const float alphaInAbsReg = alpaka::math::max( acc, @@ -1914,14 +1914,14 @@ namespace lst { float multDzDr = dzOutInAbs * coshEta / (coshEta * coshEta - 1.f); float kZ = (z_OutLo - z_InLo) / dzSDIn; - float lstThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f); + float thetaMuls2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f); - float lstMuls2 = lstThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; + float muls2 = thetaMuls2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; float drtErr = alpaka::math::sqrt( acc, lst::kPixelPSZpitch * lst::kPixelPSZpitch * 2.f / (dzSDIn * dzSDIn) * (dzOutInAbs * dzOutInAbs) + - lstMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta); + muls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta); float drtMean = drtSDIn * dzOutInAbs / alpaka::math::abs(acc, dzSDIn); float rtWindow = drtErr + rtGeom; @@ -1937,12 +1937,12 @@ namespace lst { return false; } - float lstPVoff = 0.1f / rtOut; - float lstCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, lstMuls2 + lstPVoff * lstPVoff); + float pvOffset = 0.1f / rtOut; + float dPhiCut = alpha1GeV_OutLo + alpaka::math::sqrt(acc, muls2 + pvOffset * pvOffset); float deltaPhiPos = lst::phi_mpi_pi(acc, mdsInGPU.anchorPhi[fourthMDIndex] - mdsInGPU.anchorPhi[secondMDIndex]); - if (alpaka::math::abs(acc, deltaPhiPos) > lstCut) + if (alpaka::math::abs(acc, deltaPhiPos) > dPhiCut) return false; float midPointX = 0.5f * (mdsInGPU.anchorX[firstMDIndex] + mdsInGPU.anchorX[thirdMDIndex]); @@ -1953,7 +1953,7 @@ namespace lst { float dPhi = lst::deltaPhi(acc, midPointX, midPointY, diffX, diffY); // Cut #5: deltaPhiChange - if (alpaka::math::abs(acc, dPhi) > lstCut) + if (alpaka::math::abs(acc, dPhi) > dPhiCut) return false; float sdIn_alpha = __H2F(segmentsInGPU.dPhiChanges[innerSegmentIndex]); @@ -2043,7 +2043,7 @@ namespace lst { float min_ptBeta_maxPtBeta = alpaka::math::min( acc, alpaka::math::abs(acc, pt_beta), lst::kPt_betaMax); //need to confirm the range-out value of 7 GeV - const float dBetaMuls2 = lstThetaMulsF2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); + const float dBetaMuls2 = thetaMuls2 * 16.f / (min_ptBeta_maxPtBeta * min_ptBeta_maxPtBeta); const float alphaInAbsReg = alpaka::math::max( acc, diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index 3d462ffce88e5..9419363c1909c 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -82,7 +82,7 @@ namespace lst { Buf zHi_buf; Buf zLoPointed_buf; Buf zHiPointed_buf; - Buf lstCut_buf; + Buf dPhiCut_buf; Buf betaInCut_buf; Buf rtLo_buf; Buf rtHi_buf; @@ -116,7 +116,7 @@ namespace lst { zHi_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), zLoPointed_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), zHiPointed_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), - lstCut_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), + dPhiCut_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), betaInCut_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), rtLo_buf(allocBufWrapper(devAccIn, maxTriplets, queue)), rtHi_buf(allocBufWrapper(devAccIn, maxTriplets, queue)) @@ -317,9 +317,9 @@ namespace lst { float coshEta = dr3_InSeg / drt_InSeg; float dzErr = (zpitchIn + zpitchOut) * (zpitchIn + zpitchOut) * 2.f; - float lstThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rtOut - rtIn) / 50.f) * (r3In / rtIn); - float lstMuls2 = lstThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; - dzErr += lstMuls2 * drt_OutIn * drt_OutIn / 3.f * coshEta * coshEta; + float thetaMuls2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rtOut - rtIn) / 50.f) * (r3In / rtIn); + float muls2 = thetaMuls2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; + dzErr += muls2 * drt_OutIn * drt_OutIn / 3.f * coshEta * coshEta; dzErr = alpaka::math::sqrt(acc, dzErr); // Constructing upper and lower bound @@ -435,9 +435,9 @@ namespace lst { const float kZ = (zOut - zIn) / dzSDIn; float drtErr = zGeom1_another * zGeom1_another * drtSDIn * drtSDIn / dzSDIn / dzSDIn * (1.f - 2.f * kZ + 2.f * kZ * kZ); - const float lstThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2 * (rtOut - rtIn) / 50.f) * (rIn / rtIn); - const float lstMuls2 = lstThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; - drtErr += lstMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta; + const float thetaMuls2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2 * (rtOut - rtIn) / 50.f) * (rIn / rtIn); + const float muls2 = thetaMuls2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; + drtErr += muls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta; drtErr = alpaka::math::sqrt(acc, drtErr); //Cut #3: rt-z pointed @@ -545,14 +545,14 @@ namespace lst { float multDzDr = dzOutInAbs * coshEta / (coshEta * coshEta - 1.f); float kZ = (zOut - zIn) / dzSDIn; - float lstThetaMulsF2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rtOut - rtIn) / 50.f); + float thetaMuls2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rtOut - rtIn) / 50.f); - float lstMuls2 = lstThetaMulsF2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; + float muls2 = thetaMuls2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; float drtErr = alpaka::math::sqrt( acc, lst::kPixelPSZpitch * lst::kPixelPSZpitch * 2.f / (dzSDIn * dzSDIn) * (dzOutInAbs * dzOutInAbs) + - lstMuls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta); + muls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta); float drtMean = drtSDIn * dzOutInAbs / alpaka::math::abs(acc, dzSDIn); float rtWindow = drtErr + rtGeom; From c3f41a7710988de11a6cf10011fc5d202766d085 Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Tue, 30 Jul 2024 11:26:35 -0700 Subject: [PATCH 33/35] Code checks and format --- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 3 +-- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 6 ++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index a460b0c30fbad..3b6faffbce426 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -1484,8 +1484,7 @@ namespace lst { float zpitch_OutLo = (isPS_OutLo ? kPixelPSZpitch : kStrip2SZpitch); float zGeom = zpitch_InLo + zpitch_OutLo; - const float slope = - alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / ptCut, kSinAlphaMax)); + const float slope = alpaka::math::asin(acc, alpaka::math::min(acc, rt_OutLo * k2Rinv1GeVf / ptCut, kSinAlphaMax)); const float dzDrtScale = alpaka::math::tan(acc, slope) / slope; //FIXME: need approximate value const float dLum = alpaka::math::copysign(acc, kDeltaZLum, z_InUp); diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 8d24c98293f0c..9bcf7d036f164 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -1400,8 +1400,7 @@ namespace lst { float coshEta = dr3_InSeg / drt_InSeg; float dzErr = (zpitch_InLo + zpitch_OutLo) * (zpitch_InLo + zpitch_OutLo) * 2.f; - float thetaMuls2 = - (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f) * (r3_InLo / rt_InLo); + float thetaMuls2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f) * (r3_InLo / rt_InLo); float muls2 = thetaMuls2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; dzErr += muls2 * drt_OutLo_InLo * drt_OutLo_InLo / 3.f * coshEta * coshEta; dzErr = alpaka::math::sqrt(acc, dzErr); @@ -1673,8 +1672,7 @@ namespace lst { float kZ = (z_OutLo - z_InLo) / dzSDIn; float drtErr = zGeom1_another * zGeom1_another * drtSDIn * drtSDIn / dzSDIn / dzSDIn * (1.f - 2.f * kZ + 2.f * kZ * kZ); - const float thetaMuls2 = - (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f) * (rIn / rt_InLo); + const float thetaMuls2 = (kMulsInGeV * kMulsInGeV) * (0.1f + 0.2f * (rt_OutLo - rt_InLo) / 50.f) * (rIn / rt_InLo); const float muls2 = thetaMuls2 * 9.f / (lst::ptCut * lst::ptCut) * 16.f; drtErr += muls2 * multDzDr * multDzDr / 3.f * coshEta * coshEta; drtErr = alpaka::math::sqrt(acc, drtErr); From a076afb78f8a32cc130a1e046ac9b7bee1af287c Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Wed, 31 Jul 2024 01:30:09 -0700 Subject: [PATCH 34/35] Remove forgotten flag --- RecoTracker/LST/BuildFile.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/RecoTracker/LST/BuildFile.xml b/RecoTracker/LST/BuildFile.xml index 09ddabd9727ba..07a6ae1d26eaf 100644 --- a/RecoTracker/LST/BuildFile.xml +++ b/RecoTracker/LST/BuildFile.xml @@ -3,7 +3,6 @@ - From 5b1e21ce59698054e5317e9bc87723efc9f4ec80 Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Wed, 31 Jul 2024 02:50:16 -0700 Subject: [PATCH 35/35] Fix workflow conflict --- Configuration/PyReleaseValidation/python/relval_2026.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Configuration/PyReleaseValidation/python/relval_2026.py b/Configuration/PyReleaseValidation/python/relval_2026.py index 5f1925772c1fa..feeb8fb33b870 100644 --- a/Configuration/PyReleaseValidation/python/relval_2026.py +++ b/Configuration/PyReleaseValidation/python/relval_2026.py @@ -42,6 +42,9 @@ numWFIB.extend([30834.0]) #2026D113 numWFIB.extend([31234.0]) #2026D114 +# Temporary placement for LST workflow to workaround PR conflicts - to be formatted and placed in an upcoming PR +numWFIB.extend([24834.703,24834.704]) #2026D98 LST tracking (initialStep+HighPtTripletStep only): CPU, GPU + #Additional sample for short matrix and IB #Default Phase-2 Det NoPU numWFIB.extend([prefixDet+34.911]) #DD4hep XML @@ -62,8 +65,5 @@ numWFIB.extend([prefixDet+234.9921]) #prodlike premix stage1+stage2 numWFIB.extend([prefixDet+234.114]) #PU, with 10% OT inefficiency -# Temporary placement for LST workflow to workaround PR conflicts - to be formatted and placed in an upcoming PR -numWFIB.extend([24834.703,24834.704]) #2026D98 LST tracking (initialStep+HighPtTripletStep only): CPU, GPU - for numWF in numWFIB: workflows[numWF] = _upgrade_workflows[numWF]