4#ifndef ACTSGPUDATAPREPARATION_JSONDEVICEDETECTORDESCRIPTIONPROVIDERSVC_H
5#define ACTSGPUDATAPREPARATION_JSONDEVICEDETECTORDESCRIPTIONPROVIDERSVC_H
8#include "GaudiKernel/ToolHandle.h"
21#include "traccc/geometry/detector_design_description.hpp"
22#include "traccc/geometry/detector_conditions_description.hpp"
24#include "vecmem/utils/cuda/copy.hpp"
28#include <unordered_map>
33 :
public extends<AthService, ActsTrk::IDeviceDetectorDescriptionProviderSvc>
37 using extends::extends;
41 virtual const std::unordered_map<uint64_t, Identifier>&
43 virtual const std::unordered_map<Identifier, uint64_t>&
50 ToolHandle<AthDevice::IMemoryResourceTool>
m_hostMR{
51 this,
"HostMR",
"",
"Host memory resource tool"};
53 this,
"DeviceMR",
"",
"Device memory resource tool"};
54 ToolHandle<AthDevice::ICopyTool>
m_copy{
55 this,
"CopyProviderTool",
"",
"Vecmem copy provider tool"};
59 this,
"GeometryFile",
"",
60 "Detray geometry JSON file (required when PopulateFromFile=true)"};
62 this,
"DigitizationFile",
"",
63 "Traccc digitization config JSON file (required when PopulateFromFile=true)"};
65 this,
"ConditionsFile",
"",
66 "Traccc conditions config JSON file (required when PopulateFromFile=true)"};
69 "Path to the athena<->detray ID map CSV file"};
72 this,
"DeviceDigitizationObjectName",
"",
73 "Traccc device digitization object"};
75 this,
"DeviceConditionsObjectName",
"",
76 "Traccc device conditions object"};
78 this,
"HostDigitizationObjectName",
"",
79 "Traccc host digitization object"};
81 this,
"HostConditionsObjectName",
"",
82 "Traccc host conditions object"};
86 std::pmr::memory_resource& deviceMR,
87 const vecmem::copy& copy,
88 std::unique_ptr<traccc::detector_design_description::host>& hostDesign,
89 std::unique_ptr<traccc::detector_conditions_description::host>& hostCond,
90 std::unique_ptr<traccc::detector_design_description::buffer>& deviceDesign,
91 std::unique_ptr<traccc::detector_conditions_description::buffer>& deviceCond);
This is an Identifier helper class for the Pixel subdetector.
This is an Identifier helper class for the SCT subdetector.
std::unordered_map< Identifier, uint64_t > m_athenaToDetray
ToolHandle< AthDevice::IMemoryResourceTool > m_deviceMR
ToolHandle< AthDevice::IMemoryResourceTool > m_hostMR
Gaudi::Property< std::string > m_hostDesignObjectName
Gaudi::Property< std::string > m_hostCondObjectName
Gaudi::Property< std::string > m_deviceDesignObjectName
ServiceHandle< StoreGateSvc > m_detStore
ToolHandle< AthDevice::ICopyTool > m_copy
virtual const std::unordered_map< uint64_t, Identifier > & detrayToAthenaMap() const override
Gaudi::Property< std::string > m_geometryFile
virtual StatusCode initialize() override
Gaudi::Property< std::string > m_conditionsFile
virtual const std::unordered_map< Identifier, uint64_t > & athenaToDetrayMap() const override
Gaudi::Property< std::string > m_digitizationFile
std::unordered_map< uint64_t, Identifier > m_detrayToAthena
Gaudi::Property< std::string > m_mapFile
StatusCode buildFromFile(std::pmr::memory_resource &hostMR, std::pmr::memory_resource &deviceMR, const vecmem::copy ©, std::unique_ptr< traccc::detector_design_description::host > &hostDesign, std::unique_ptr< traccc::detector_conditions_description::host > &hostCond, std::unique_ptr< traccc::detector_design_description::buffer > &deviceDesign, std::unique_ptr< traccc::detector_conditions_description::buffer > &deviceCond)
Gaudi::Property< std::string > m_deviceCondObjectName
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...