ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsGPUMagField
src
JSONDeviceMagFieldProviderSvc.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
#include "
JSONDeviceMagFieldProviderSvc.h
"
5
#include "
StoreGate/StoreGateSvc.h
"
6
7
#include "
ActsGPUEvent/TracccMagField.h
"
8
9
#include "traccc/io/read_magnetic_field.hpp"
10
11
#include <string>
12
13
namespace
ActsTrk
{
14
15
StatusCode
JSONDeviceMagFieldProviderSvc::initialize
()
16
{
17
ATH_MSG_DEBUG
(
"Initializing device magnetic field provider service "
);
18
19
ATH_CHECK
(
m_deviceFieldProviderTool
.retrieve());
20
ATH_CHECK
(
m_detStore
.retrieve());
21
22
traccc::magnetic_field hostMagField;
23
24
if
(
m_magFieldFile
.value().empty()) {
25
ATH_MSG_FATAL
(
"MagFieldFile is empty!"
);
26
return
StatusCode::FAILURE;
27
}
28
29
ATH_MSG_INFO
(
"Reading mag field from file: "
<<
PathResolverFindCalibFile
(
m_magFieldFile
.value()));
30
31
// Construct host magnetic field
32
ATH_MSG_INFO
(
"Loading traccc magnetic field"
);
33
traccc::io::read_magnetic_field(
34
hostMagField,
35
PathResolverFindCalibFile
(
m_magFieldFile
.value()));
36
37
ATH_MSG_INFO
(
"Magnetic field built from file"
);
38
39
// Construct device field
40
traccc::magnetic_field deviceMagField =
m_deviceFieldProviderTool
->getDeviceMagneticField(hostMagField);
41
42
// Record host and device objects
43
constexpr
bool
allowMods =
false
;
44
ATH_CHECK
(
m_detStore
->record(
45
std::make_unique<traccc::magnetic_field>(std::move(hostMagField)),
46
m_hostMagFieldObjectName
.value(), allowMods));
47
48
ATH_CHECK
(
m_detStore
->record(
49
std::make_unique<traccc::magnetic_field>(std::move(deviceMagField)),
50
m_deviceMagFieldObjectName
.value(), allowMods));
51
52
53
ATH_MSG_DEBUG
(
"Successfully initialized"
);
54
return
StatusCode::SUCCESS;
55
}
56
57
58
}
// namespace ActsTrk
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition
AthMsgStreamMacros.h:34
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
JSONDeviceMagFieldProviderSvc.h
PathResolverFindCalibFile
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Definition
PathResolver.cxx:325
StoreGateSvc.h
TracccMagField.h
ActsTrk::JSONDeviceMagFieldProviderSvc::m_detStore
ServiceHandle< StoreGateSvc > m_detStore
Definition
JSONDeviceMagFieldProviderSvc.h:41
ActsTrk::JSONDeviceMagFieldProviderSvc::initialize
virtual StatusCode initialize() override
Function initializing and executing the file loading.
Definition
JSONDeviceMagFieldProviderSvc.cxx:15
ActsTrk::JSONDeviceMagFieldProviderSvc::m_deviceFieldProviderTool
ToolHandle< ActsTrk::IDeviceMagFieldProviderTool > m_deviceFieldProviderTool
The device magnetic field provider tool.
Definition
JSONDeviceMagFieldProviderSvc.h:44
ActsTrk::JSONDeviceMagFieldProviderSvc::m_hostMagFieldObjectName
Gaudi::Property< std::string > m_hostMagFieldObjectName
Definition
JSONDeviceMagFieldProviderSvc.h:57
ActsTrk::JSONDeviceMagFieldProviderSvc::m_magFieldFile
Gaudi::Property< std::string > m_magFieldFile
Definition
JSONDeviceMagFieldProviderSvc.h:50
ActsTrk::JSONDeviceMagFieldProviderSvc::m_deviceMagFieldObjectName
Gaudi::Property< std::string > m_deviceMagFieldObjectName
Definition
JSONDeviceMagFieldProviderSvc.h:60
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition
MdtCalibInput.h:31
Generated on
for ATLAS Offline Software by
1.17.0