ATLAS Offline Software
Loading...
Searching...
No Matches
ActsGPUMagFieldConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5from AthDeviceComps.DeviceConfigFlags import DeviceBackend
6
7# ============================================================
8# Service configurations
9# ============================================================
10
12 name="CUDAMagFieldProviderTool",
13 **kwargs) -> ComponentAccumulator:
14 acc = ComponentAccumulator()
15
16 kwargs.setdefault("MagFieldStorage","global_memory")
17 acc.setPrivateTools(
18 CompFactory.ActsTrk.CUDAMagFieldProviderTool(name, **kwargs))
19 return acc
20
22 name="CUDAMagFieldProviderTool",
23 **kwargs) -> ComponentAccumulator:
24 acc = ComponentAccumulator()
25
26 if flags.Device.Backend is not DeviceBackend.CUDA:
27 raise ValueError(f"Unsupported device backend: {flags.Acts.DeviceBackend}")
28
29 else:
30 acc.setPrivateTools(acc.popToolsAndMerge(CUDAMagFieldProviderToolCfg(flags)))
31 return acc
32
33def JSONDeviceMagFieldProviderSvcCfg(flags, **kwargs) -> ComponentAccumulator:
34
35 acc = ComponentAccumulator()
36
37 kwargs.setdefault("MagFieldFile", "dev/ACTS/detray-itk/ITk_bfield.cvf")
38 kwargs.setdefault("DeviceMagFieldObjectName", "TracccDeviceMagField")
39 kwargs.setdefault("HostMagFieldObjectName", "TracccHostMagField")
40
41 kwargs.setdefault("DeviceMagFieldProviderTool", acc.popToolsAndMerge(DeviceMagFieldProviderToolCfg(flags)))
42
43 svc = CompFactory.ActsTrk.JSONDeviceMagFieldProviderSvc(**kwargs)
44 acc.addService(svc, primary=True, create=True)
45 return acc
ComponentAccumulator JSONDeviceMagFieldProviderSvcCfg(flags, **kwargs)
ComponentAccumulator DeviceMagFieldProviderToolCfg(flags, name="CUDAMagFieldProviderTool", **kwargs)
ComponentAccumulator CUDAMagFieldProviderToolCfg(flags, name="CUDAMagFieldProviderTool", **kwargs)