ATLAS Offline Software
Loading...
Searching...
No Matches
RDOtoTracccCellConverterCommons.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef ACTSGPUEVENT_RDOTOTRACCCCELLCONVERTERCOMMONS_H
5#define ACTSGPUEVENT_RDOTOTRACCCCELLCONVERTERCOMMONS_H
6
16#include "Identifier/Identifier.h"
17#include "GaudiKernel/ToolHandle.h"
19
20#include <traccc/io/csv/cell.hpp>
21
22#include <unordered_map>
23#include <cstdint>
24#include <bitset>
25
27
28namespace ActsTrk {
29
36
38{
40
41 StatusCode initialize();
42 StatusCode finalize();
43
45
47
48 mutable std::atomic<int> m_nPix = 0;
49 mutable std::atomic<int> m_nStrip = 0;
50 mutable std::atomic<int> m_nCells = 0;
51
52 const PixelID* m_pixelID{nullptr};
53 const SCT_ID* m_stripID{nullptr};
54
55 ToolHandle<AthDevice::IMemoryResourceTool> m_hostMR;
56 ToolHandle<AthDevice::IMemoryResourceTool> m_deviceMR;
57 ToolHandle<AthDevice::ICopiesTool> m_copiesTool;
58
59 Gaudi::Property<std::string> m_geoIdMappingObjectName;
61 Gaudi::Property<std::string> m_hostCondObjectName;
62 const traccc::detector_conditions_description::host* m_hostCond{nullptr};
63
64 // Geometry conversion maps
65 const std::unordered_map<Identifier, uint64_t>* m_athenaToDetray{nullptr};
66 std::unordered_map<uint64_t, unsigned int> m_DetrayIdToDetDescrIndexMap{};
67
68 Gaudi::Property<bool> m_CPUCellSorting;
69 Gaudi::Property<bool> m_UsePixelToTForCellActivation;
70
71 // Returns the input cells sorted in a object setup with host_copy
72 traccc::edm::silicon_cell_collection::buffer sortCells(
73 vecmem::copy const & host_copy
74 , traccc::edm::silicon_cell_collection::device const & cells
75 ) const;
76 StatusCode copyToGpuAndRecordToSG(
77 EventContext const & ctx
78 , traccc::edm::silicon_cell_collection::buffer const & cells
79 ) const;
80
81 StringProperty m_stripRDOTimeBinStr;
82 int m_stripRDOTimeBinBits[3]{-1, -1, -1};
83 // decode the property string into bits
84 StatusCode decodeTimeBins();
85 // check if the time pattern matches the requirements of strip RDO "timeBins"
86 bool passTiming(const std::bitset<3>& timePattern) const;
87 StatusCode buildDetrayMaps() const;
88};
89
91 traccc::edm::silicon_cell_collection::device & sorted_cells
92 , traccc::edm::silicon_cell_collection::device const & cells
93 );
94
95} // namespace ActsTrk
96
97#endif
This is an Identifier helper class for the Pixel subdetector.
This is an Identifier helper class for the SCT subdetector.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Lookup table between the three surface-identifier "worlds" used across the ACTS / Detray / Athena tra...
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
An algorithm that can be simultaneously executed in multiple threads.
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:69
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
Property holding a SG store/key/clid from which a WriteHandle is made.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
void sort_traccc_soa(traccc::edm::silicon_cell_collection::device &sorted_cells, traccc::edm::silicon_cell_collection::device const &cells)
std::unordered_map< uint64_t, unsigned int > m_DetrayIdToDetDescrIndexMap
ToolHandle< AthDevice::IMemoryResourceTool > m_deviceMR
const std::unordered_map< Identifier, uint64_t > * m_athenaToDetray
SG::WriteHandleKey< traccc::edm::silicon_cell_collection::buffer > m_tracccCellsKey
traccc::edm::silicon_cell_collection::buffer sortCells(vecmem::copy const &host_copy, traccc::edm::silicon_cell_collection::device const &cells) const
bool passTiming(const std::bitset< 3 > &timePattern) const
ToolHandle< AthDevice::ICopiesTool > m_copiesTool
ToolHandle< AthDevice::IMemoryResourceTool > m_hostMR
const traccc::detector_conditions_description::host * m_hostCond
StatusCode copyToGpuAndRecordToSG(EventContext const &ctx, traccc::edm::silicon_cell_collection::buffer const &cells) const