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="HIPMagFieldProviderTool",
23 **kwargs) -> ComponentAccumulator:
24 acc = ComponentAccumulator()
25
26 kwargs.setdefault("MagFieldStorage","global_memory")
27 acc.setPrivateTools(
28 CompFactory.ActsTrk.HIPMagFieldProviderTool(name, **kwargs))
29 return acc
30
32 **kwargs) -> ComponentAccumulator:
33 acc = ComponentAccumulator()
34
35 if flags.Device.Backend is DeviceBackend.CUDA:
36 acc.setPrivateTools(acc.popToolsAndMerge(CUDAMagFieldProviderToolCfg(flags)))
37
38 elif ((flags.Device.Backend is DeviceBackend.HIPAMD) or (flags.Device.Backend is DeviceBackend.HIPNVIDIA)):
39 acc.setPrivateTools(acc.popToolsAndMerge(HIPMagFieldProviderToolCfg(flags)))
40 else:
41 raise ValueError(f"Unsupported device backend: {flags.Acts.DeviceBackend}")
42
43 return acc
44
45def JSONDeviceMagFieldProviderSvcCfg(flags, **kwargs) -> ComponentAccumulator:
46
47 acc = ComponentAccumulator()
48
49 kwargs.setdefault("MagFieldFile", "dev/ACTS/detray-itk/ITk_bfield.cvf")
50 kwargs.setdefault("DeviceMagFieldObjectName", "TracccDeviceMagField")
51 kwargs.setdefault("HostMagFieldObjectName", "TracccHostMagField")
52
53 kwargs.setdefault("DeviceMagFieldProviderTool", acc.popToolsAndMerge(DeviceMagFieldProviderToolCfg(flags)))
54
55 svc = CompFactory.ActsTrk.JSONDeviceMagFieldProviderSvc(**kwargs)
56 acc.addService(svc, primary=True, create=True)
57 return acc
58
59
60
ComponentAccumulator HIPMagFieldProviderToolCfg(flags, name="HIPMagFieldProviderTool", **kwargs)
ComponentAccumulator JSONDeviceMagFieldProviderSvcCfg(flags, **kwargs)
ComponentAccumulator DeviceMagFieldProviderToolCfg(flags, **kwargs)
ComponentAccumulator CUDAMagFieldProviderToolCfg(flags, name="CUDAMagFieldProviderTool", **kwargs)