File indexing completed on 2025-06-06 01:33:36
0001 #ifndef RecoTracker_LSTCore_interface_alpaka_Common_h
0002 #define RecoTracker_LSTCore_interface_alpaka_Common_h
0003
0004 #include <numbers>
0005
0006 #include "FWCore/Utilities/interface/HostDeviceConstant.h"
0007 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0008 #include "RecoTracker/LSTCore/interface/Common.h"
0009
0010 namespace ALPAKA_ACCELERATOR_NAMESPACE::lst {
0011
0012 using namespace ::lst;
0013
0014 ALPAKA_FN_HOST ALPAKA_FN_INLINE void lstWarning(std::string_view warning) {
0015 #ifdef LST_STANDALONE
0016 printf("%s\n", warning.data());
0017 #else
0018 edm::LogWarning("LST") << warning;
0019 #endif
0020 }
0021
0022
0023
0024
0025
0026 HOST_DEVICE_CONSTANT float kPi = std::numbers::pi_v<float>;
0027
0028 HOST_DEVICE_CONSTANT float kMulsInGeV = 0.015;
0029 HOST_DEVICE_CONSTANT float kMiniMulsPtScaleBarrel[6] = {0.0052, 0.0038, 0.0034, 0.0034, 0.0032, 0.0034};
0030 HOST_DEVICE_CONSTANT float kMiniMulsPtScaleEndcap[5] = {0.006, 0.006, 0.006, 0.006, 0.006};
0031 HOST_DEVICE_CONSTANT float kMiniRminMeanBarrel[6] = {
0032 25.007152356, 37.2186993757, 52.3104270826, 68.6658656666, 85.9770373007, 108.301772384};
0033 HOST_DEVICE_CONSTANT float kMiniRminMeanEndcap[5] = {
0034 130.992832231, 154.813883559, 185.352604327, 221.635123002, 265.022076742};
0035 HOST_DEVICE_CONSTANT float k2Rinv1GeVf = (2.99792458e-3 * 3.8) / 2;
0036 HOST_DEVICE_CONSTANT float kR1GeVf = 1. / (2.99792458e-3 * 3.8);
0037 HOST_DEVICE_CONSTANT float kSinAlphaMax = 0.95;
0038 HOST_DEVICE_CONSTANT float kDeltaZLum = 15.0;
0039 HOST_DEVICE_CONSTANT float kPixelPSZpitch = 0.15;
0040 HOST_DEVICE_CONSTANT float kStripPSZpitch = 2.4;
0041 HOST_DEVICE_CONSTANT float kStrip2SZpitch = 5.0;
0042 HOST_DEVICE_CONSTANT float kWidth2S = 0.009;
0043 HOST_DEVICE_CONSTANT float kWidthPS = 0.01;
0044 HOST_DEVICE_CONSTANT float kPt_betaMax = 7.0;
0045
0046 HOST_DEVICE_CONSTANT float kVerticalModuleSlope = 123456789.0;
0047
0048 HOST_DEVICE_CONSTANT float kMiniDeltaTilted[3] = {0.26f, 0.26f, 0.26f};
0049 HOST_DEVICE_CONSTANT float kMiniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f};
0050 HOST_DEVICE_CONSTANT float kMiniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f};
0051 HOST_DEVICE_CONSTANT float kMiniDeltaEndcap[5][15] = {
0052 {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, 0.18f, 0.18f, 0.18f, 0.18f},
0053 {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, 0.18f, 0.18f, 0.18f, 0.18f},
0054 {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, 0.18f, 0.18f, 0.18f, 0.18f, 0.18f, 0.18f},
0055 {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, 0.18f, 0.18f, 0.18f, 0.18f, 0.18f, 0.18f},
0056 {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}};
0057
0058 namespace dnn {
0059
0060
0061 HOST_DEVICE_CONSTANT float kPhi_norm = kPi;
0062 HOST_DEVICE_CONSTANT float kEtaSize = 0.25f;
0063 constexpr unsigned int kPtBins = 2;
0064 constexpr unsigned int kEtaBins = 10;
0065
0066 namespace plsembdnn {
0067 HOST_DEVICE_CONSTANT float kEta_norm = 4.0f;
0068 HOST_DEVICE_CONSTANT float kEtaErr_norm = 0.00139f;
0069 HOST_DEVICE_CONSTANT float kWP[kEtaBins] = {
0070 0.9235f, 0.8974f, 0.9061f, 0.9431f, 0.8262f, 0.7998f, 0.7714f, 0.7017f, 0.6749f, 0.6624f};
0071 }
0072
0073 namespace t3dnn {
0074 HOST_DEVICE_CONSTANT float kEta_norm = 2.5f;
0075 HOST_DEVICE_CONSTANT float kZ_max = 224.149505f;
0076 HOST_DEVICE_CONSTANT float kR_max = 98.932365f;
0077 HOST_DEVICE_CONSTANT unsigned int kOutputFeatures = 3;
0078 HOST_DEVICE_CONSTANT float kWp_prompt[kPtBins][kEtaBins] = {
0079 {0.4957f, 0.5052f, 0.5201f, 0.5340f, 0.4275f, 0.4708f, 0.4890f, 0.4932f, 0.5400f, 0.5449f},
0080 {0.0302f, 0.0415f, 0.0994f, 0.1791f, 0.1960f, 0.2467f, 0.3227f, 0.3242f, 0.2367f, 0.2187f}};
0081 HOST_DEVICE_CONSTANT float kWp_displaced[kPtBins][kEtaBins] = {
0082 {0.0334f, 0.0504f, 0.0748f, 0.0994f, 0.1128f, 0.1123f, 0.1118f, 0.1525f, 0.1867f, 0.1847f},
0083 {0.0091f, 0.0075f, 0.0350f, 0.0213f, 0.0435f, 0.0676f, 0.1957f, 0.1649f, 0.1080f, 0.1046f}};
0084 }
0085
0086 namespace t5dnn {
0087 HOST_DEVICE_CONSTANT float kEta_norm = 2.5f;
0088 HOST_DEVICE_CONSTANT float kZ_max = 267.2349854f;
0089 HOST_DEVICE_CONSTANT float kR_max = 110.1099396f;
0090 HOST_DEVICE_CONSTANT float kWp[kPtBins][kEtaBins] = {
0091 {0.4493f, 0.4939f, 0.5715f, 0.6488f, 0.5709f, 0.5938f, 0.7164f, 0.7565f, 0.8103f, 0.8593f},
0092 {0.4488f, 0.4448f, 0.5067f, 0.5929f, 0.4836f, 0.4112f, 0.4968f, 0.4403f, 0.5597f, 0.5067f}};
0093 }
0094
0095 namespace pt3dnn {
0096 HOST_DEVICE_CONSTANT float kEta_norm = 2.5f;
0097 HOST_DEVICE_CONSTANT float kWp[kEtaBins] = {
0098 0.189f, 0.1805f, 0.2267f, 0.3104f, 0.4719f, 0.3159f, 0.1372f, 0.1571f, 0.3198f, 0.186f};
0099 HOST_DEVICE_CONSTANT float kWpHigh = 0.0473f;
0100 }
0101
0102 }
0103
0104 }
0105 #endif