Store holding the transfomations used by the Acts algorithms.
More...
#include <DetectorAlignStore.h>
Store holding the transfomations used by the Acts algorithms.
Definition at line 33 of file DetectorAlignStore.h.
◆ ReturnedHintArr
◆ ReturnedTicketArr
◆ TicketCounterArr
◆ TrackingAlignStore()
ActsTrk::DetectorAlignStore::TrackingAlignStore::TrackingAlignStore |
( |
const DetectorType |
detType | ) |
|
◆ distributedTickets()
unsigned int ActsTrk::DetectorAlignStore::TrackingAlignStore::distributedTickets |
( |
const DetectorType |
detType | ) |
|
|
static |
Returns the number of all distributed tickets.
Definition at line 57 of file DetectorAlignStore.cxx.
58 return s_clientCounter[
static_cast<unsigned int>(
type)];
◆ drawTicket()
unsigned int ActsTrk::DetectorAlignStore::TrackingAlignStore::drawTicket |
( |
const DetectorType |
detType | ) |
|
|
static |
Returns a unique ID to the client under which the client can store its transformation inside the container.
Definition at line 24 of file DetectorAlignStore.cxx.
25 std::lock_guard guard{s_ticketMutex};
26 const unsigned int idx =
static_cast<unsigned>(
type);
27 std::vector<bool>& returnedPool = s_returnedTickets[
idx];
28 int& returnedHint = s_returnedHints[
idx];
29 if (returnedPool.size() && returnedHint >= 0) {
30 for (
size_t i = returnedHint;
i < returnedPool.size();
i++) {
31 if (returnedPool[
i]) {
32 returnedPool[
i] =
false;
35 if (
static_cast<size_t>(returnedHint) >= returnedPool.size()) {
42 for (
size_t i = 0; i < static_cast<size_t>(returnedHint);
i++) {
43 if (returnedPool[
i]) {
44 returnedPool[
i] =
false;
55 return s_clientCounter[
idx]++;
◆ getTransform()
const Amg::Transform3D* ActsTrk::DetectorAlignStore::TrackingAlignStore::getTransform |
( |
unsigned int |
ticketNo | ) |
const |
|
inline |
Returns the transformation associated with the ticket number.
Definition at line 44 of file DetectorAlignStore.h.
◆ giveBackTicket()
void ActsTrk::DetectorAlignStore::TrackingAlignStore::giveBackTicket |
( |
const DetectorType |
detType, |
|
|
unsigned int |
ticketNo |
|
) |
| |
|
static |
The ticket which was handed out at the very latest is returned. Remove all returned tickets from before
Remove all trailing ticket numbers
Definition at line 60 of file DetectorAlignStore.cxx.
61 std::lock_guard guard{s_ticketMutex};
62 const unsigned int idx =
static_cast<unsigned int>(
type);
63 std::vector<bool>& returnedPool = s_returnedTickets[
idx];
64 int& returnedHint = s_returnedHints[
idx];
68 if (ticketNo > 0 && ticketNo-1 < returnedPool.size()) {
69 for (; ticketNo > 0 && returnedPool[ticketNo-1]; --ticketNo)
71 returnedPool.resize (ticketNo);
74 s_clientCounter[
idx] = ticketNo;
75 if (returnedHint >=
static_cast<int>(ticketNo)) {
79 if (returnedPool.size() <= ticketNo) {
80 returnedPool.resize (ticketNo+1);
82 returnedPool[ticketNo] =
true;
83 if (returnedHint < 0 ||
static_cast<int>(ticketNo) < returnedHint) {
84 returnedHint = ticketNo;
◆ setTransform()
Caches for the given ticket number the transformation in the store and returns the const reference to it.
Definition at line 49 of file DetectorAlignStore.h.
50 return (*
m_transforms.at(ticketNo).set(std::make_unique<Amg::Transform3D>(std::move(
trf))));
◆ ATLAS_THREAD_SAFE [1/3]
TicketCounterArr s_clientCounter ActsTrk::DetectorAlignStore::TrackingAlignStore::ATLAS_THREAD_SAFE |
|
staticprivate |
◆ ATLAS_THREAD_SAFE [2/3]
ReturnedTicketArr s_returnedTickets ActsTrk::DetectorAlignStore::TrackingAlignStore::ATLAS_THREAD_SAFE |
|
staticprivate |
◆ ATLAS_THREAD_SAFE [3/3]
ReturnedHintArr s_returnedHints ActsTrk::DetectorAlignStore::TrackingAlignStore::ATLAS_THREAD_SAFE |
|
staticprivate |
◆ m_transforms
◆ s_techs
constexpr unsigned ActsTrk::DetectorAlignStore::TrackingAlignStore::s_techs {static_cast<unsigned>(DetectorType::UnDefined)} |
|
staticconstexpr |
The documentation for this class was generated from the following files: