ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsDataPreparation
src
Cache.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef TRACKING_ACTS_CACHE_H
6
#define TRACKING_ACTS_CACHE_H
7
8
#include "
AthenaBaseComps/AthReentrantAlgorithm.h
"
9
#include "
AthContainers/DataVector.h
"
10
#include "
AthContainers/ConstDataVector.h
"
11
#include "GaudiKernel/DataObject.h"
12
13
#include "
EventContainers/IdentifiableContainer.h
"
14
#include "
EventContainers/IdentifiableCache.h
"
15
16
#include "
StoreGate/ReadCondHandleKey.h
"
17
#include "
StoreGate/ReadHandle.h
"
18
19
#include "
StoreGate/WriteHandleKey.h
"
20
#include "
StoreGate/WriteHandle.h
"
21
22
#include "
StoreGate/UpdateHandle.h
"
23
#include "
StoreGate/UpdateHandleKey.h
"
24
#include <vector>
25
#include <utility>
26
27
namespace
ActsTrk::Cache
{
28
29
template
<
typename
OT>
30
class
CacheEntry
:
public
DataObject {
31
public
:
32
CacheEntry
(){}
33
CacheEntry
(
DataVector<OT>
* dv,
unsigned
int
s,
unsigned
int
e):
container
(dv){
ranges
.emplace_back(std::move(s),std::move(e));}
34
CacheEntry
(
DataVector<OT>
* dv,
const
std::vector<std::pair<unsigned int, unsigned int>>&
r
):
container
(dv),
ranges
(
r
) {}
35
DataVector<OT>
*
container
{};
36
std::vector<std::pair<unsigned int, unsigned int>>
ranges
;
37
};
38
39
template
<
typename
OT>
40
class
Handles
{
41
public
:
42
using
IDCBackend
=
typename
EventContainers::IdentifiableCache<CacheEntry<OT>
>;
43
using
IDC
=
IdentifiableContainer<CacheEntry<OT>
>;
44
45
using
BackendUpdateHandleKey
=
SG::UpdateHandleKey<IDCBackend>
;
46
using
BackendUpdateHandle
=
SG::UpdateHandle<IDCBackend>
;
47
48
using
WriteHandleKey
=
SG::WriteHandleKey<IDC>
;
49
using
WriteHandle
=
SG::WriteHandle<IDC>
;
50
51
using
ReadHandleKey
=
SG::ReadHandleKey<IDC>
;
52
using
ReadHandle
=
SG::ReadHandle<IDC>
;
53
};
54
55
template
<
typename
OT>
56
class
Helper
{
57
public
:
58
using
IDCWriteHandle
=
typename
IdentifiableContainer<CacheEntry<OT>
>::IDC_WriteHandle;
59
60
static
StatusCode
insert
(
IDCWriteHandle
& wh,
DataVector<OT>
* dv,
unsigned
int
range_start,
unsigned
int
range_end);
61
};
62
63
}
// namespace
64
65
#include "
Cache.icc
"
66
67
#endif
AthReentrantAlgorithm.h
Cache.icc
ConstDataVector.h
DataVector adapter that acts like it holds const pointers.
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
IdentifiableCache.h
IdentifiableContainer.h
This class is a general container which can hold objects of accessed by an IdentifierHash For more in...
IdentifiableContainer
IdentifiableContainerMT< T > IdentifiableContainer
Definition
IdentifiableContainer.h:11
ReadCondHandleKey.h
ReadHandle.h
Handle class for reading from StoreGate.
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
WriteHandle.h
Handle class for recording to StoreGate.
UpdateHandleKey.h
Property holding a SG store/key/clid from which an UpdateHandle is made.
UpdateHandle.h
Handle class for modifying an existing object in StoreGate.
ActsTrk::Cache::CacheEntry::CacheEntry
CacheEntry()
Definition
Cache.h:32
ActsTrk::Cache::CacheEntry::container
DataVector< OT > * container
Definition
Cache.h:35
ActsTrk::Cache::CacheEntry::CacheEntry
CacheEntry(DataVector< OT > *dv, unsigned int s, unsigned int e)
Definition
Cache.h:33
ActsTrk::Cache::CacheEntry::ranges
std::vector< std::pair< unsigned int, unsigned int > > ranges
Definition
Cache.h:36
ActsTrk::Cache::CacheEntry::CacheEntry
CacheEntry(DataVector< OT > *dv, const std::vector< std::pair< unsigned int, unsigned int > > &r)
Definition
Cache.h:34
ActsTrk::Cache::Handles
Definition
Cache.h:40
ActsTrk::Cache::Handles::BackendUpdateHandle
SG::UpdateHandle< IDCBackend > BackendUpdateHandle
Definition
Cache.h:46
ActsTrk::Cache::Handles::BackendUpdateHandleKey
SG::UpdateHandleKey< IDCBackend > BackendUpdateHandleKey
Definition
Cache.h:45
ActsTrk::Cache::Handles::WriteHandle
SG::WriteHandle< IDC > WriteHandle
Definition
Cache.h:49
ActsTrk::Cache::Handles::IDCBackend
typename EventContainers::IdentifiableCache< CacheEntry< OT > > IDCBackend
Definition
Cache.h:42
ActsTrk::Cache::Handles::IDC
IdentifiableContainer< CacheEntry< OT > > IDC
Definition
Cache.h:43
ActsTrk::Cache::Handles::ReadHandleKey
SG::ReadHandleKey< IDC > ReadHandleKey
Definition
Cache.h:51
ActsTrk::Cache::Handles::ReadHandle
SG::ReadHandle< IDC > ReadHandle
Definition
Cache.h:52
ActsTrk::Cache::Handles::WriteHandleKey
SG::WriteHandleKey< IDC > WriteHandleKey
Definition
Cache.h:48
ActsTrk::Cache::Helper
Definition
Cache.h:56
ActsTrk::Cache::Helper::IDCWriteHandle
typename IdentifiableContainer< CacheEntry< OT > >::IDC_WriteHandle IDCWriteHandle
Definition
Cache.h:58
ActsTrk::Cache::Helper::insert
static StatusCode insert(IDCWriteHandle &wh, DataVector< OT > *dv, unsigned int range_start, unsigned int range_end)
DataVector
Derived DataVector<T>.
Definition
DataVector.h:795
EventContainers::IdentifiableCache
Definition
IdentifiableCache.h:29
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition
StoreGate/StoreGate/ReadHandleKey.h:40
SG::ReadHandle
Definition
StoreGate/StoreGate/ReadHandle.h:67
SG::UpdateHandleKey
Property holding a SG store/key/clid from which an UpdateHandle is made.
Definition
UpdateHandleKey.h:40
SG::UpdateHandle
Definition
UpdateHandle.h:91
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition
StoreGate/StoreGate/WriteHandleKey.h:40
SG::WriteHandle
Definition
StoreGate/StoreGate/WriteHandle.h:73
r
int r
Definition
globals.cxx:22
ActsTrk::Cache
Definition
Cache.h:27
Generated on
for ATLAS Offline Software by
1.17.0