ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsEvent
ActsEvent
PersistentTrackContainer.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef ACTSTRKEVENT_PERSISTENTTRACKCONTAINER_H
6
#define ACTSTRKEVENT_PERSISTENTTRACKCONTAINER_H
7
8
#include "
ActsEvent/MultiTrajectory.h
"
9
#include "
ActsEvent/TrackSummaryContainer.h
"
10
#include "Acts/EventData/TrackContainer.hpp"
11
12
namespace
ActsTrk
{
13
// Containers with xAOD backends - this is for persistification
14
using
MutablePersistentTrackBackend
=
ActsTrk::MutableTrackSummaryContainer
;
15
using
PersistentTrackBackend
=
ActsTrk::TrackSummaryContainer
;
16
using
MutablePersistentTrackStateBackend
=
ActsTrk::MutableMultiTrajectory
;
17
using
PersistentTrackStateBackend
=
ActsTrk::MultiTrajectory
;
18
19
template
<
typename
T>
20
struct
DataLinkHolder
{
21
using
element_type
= T;
22
DataLink<T>
m_link
;
23
DataLinkHolder
(
const
DataLink<T>
& link) :
m_link
{link} {}
24
25
const
T&
operator*
()
const
{
return
*(
m_link
.cptr()); }
26
const
T*
operator->
()
const
{
return
m_link
.cptr(); }
27
T&
operator*
() {
return
*(
m_link
.ptr()); }
28
T*
operator->
() {
return
m_link
.ptr(); }
29
30
operator
bool()
const
{
return
m_link
.isValid(); }
31
};
32
33
using
PersistentTrackContainerBase
= Acts::TrackContainer<
ActsTrk::PersistentTrackBackend
,
34
ActsTrk::PersistentTrackStateBackend
,
35
ActsTrk::DataLinkHolder
>;
36
37
class
PersistentTrackContainer
:
38
public
PersistentTrackContainerBase
39
{
40
public
:
41
using
PersistentTrackContainerBase::PersistentTrackContainerBase;
42
using
value_type
= ConstTrackProxy;
43
ConstTrackProxy
operator[]
(
unsigned
int
index
)
const
{
44
return
getTrack(
index
);
45
}
46
bool
empty
()
const
{
47
return
size
() == 0;
48
}
49
};
50
51
struct
MutablePersistentTrackContainer
52
:
public
Acts::TrackContainer<ActsTrk::MutablePersistentTrackBackend,
53
ActsTrk::MutablePersistentTrackStateBackend,
54
Acts::detail::ValueHolder> {
55
MutablePersistentTrackContainer
()
56
:
Acts
::
TrackContainer
<
ActsTrk
::
MutablePersistentTrackBackend
,
57
ActsTrk
::
MutablePersistentTrackStateBackend
,
58
Acts
::
detail
::ValueHolder>(
59
MutablePersistentTrackBackend
(),
60
MutablePersistentTrackStateBackend
()) {}
61
};
62
63
}
// namespace ActsTrk
64
65
#include "
AthenaKernel/CLASS_DEF.h
"
66
CLASS_DEF
(
ActsTrk::PersistentTrackContainer
, 1316311468, 1)
67
68
#endif
CLASS_DEF.h
macros to associate a CLID to a type
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition
Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:67
MultiTrajectory.h
size
size_t size() const
Number of registered mappings.
TrackSummaryContainer.h
ActsTrk::MultiTrajectory
Read only version of MTJ The implementation is separate as the details are significantly different an...
Definition
MultiTrajectory.h:421
ActsTrk::MutableMultiTrajectory
Athena implementation of ACTS::MultiTrajectory (ReadWrite version) The data is stored in 4 external b...
Definition
MultiTrajectory.h:77
ActsTrk::MutableTrackSummaryContainer
Definition
Tracking/Acts/ActsEvent/ActsEvent/TrackSummaryContainer.h:118
ActsTrk::PersistentTrackContainer
Definition
PersistentTrackContainer.h:39
ActsTrk::PersistentTrackContainer::operator[]
ConstTrackProxy operator[](unsigned int index) const
Definition
PersistentTrackContainer.h:43
ActsTrk::PersistentTrackContainer::value_type
ConstTrackProxy value_type
Definition
PersistentTrackContainer.h:42
ActsTrk::PersistentTrackContainer::empty
bool empty() const
Definition
PersistentTrackContainer.h:46
ActsTrk::TrackContainer
Definition
TrackContainer.h:31
ActsTrk::TrackSummaryContainer
Definition
Tracking/Acts/ActsEvent/ActsEvent/TrackSummaryContainer.h:56
DataLink
Object reference supporting deferred reading from StoreGate.
Definition
AthLinks/DataLink.h:93
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition
MdtCalibInput.h:31
ActsTrk::MutablePersistentTrackStateBackend
ActsTrk::MutableMultiTrajectory MutablePersistentTrackStateBackend
Definition
PersistentTrackContainer.h:16
ActsTrk::PersistentTrackBackend
ActsTrk::TrackSummaryContainer PersistentTrackBackend
Definition
PersistentTrackContainer.h:15
ActsTrk::PersistentTrackStateBackend
ActsTrk::MultiTrajectory PersistentTrackStateBackend
Definition
PersistentTrackContainer.h:17
ActsTrk::PersistentTrackContainerBase
Acts::TrackContainer< ActsTrk::PersistentTrackBackend, ActsTrk::PersistentTrackStateBackend, ActsTrk::DataLinkHolder > PersistentTrackContainerBase
Definition
PersistentTrackContainer.h:33
ActsTrk::MutablePersistentTrackBackend
ActsTrk::MutableTrackSummaryContainer MutablePersistentTrackBackend
Definition
PersistentTrackContainer.h:14
Acts
This class is not to needed in AthSimulation.
Definition
MuonSpectrometer/MuonPhaseII/Event/xAOD/xAODMuonPrepData/xAODMuonPrepData/UtilFunctions.h:23
detail
Definition
extract_histogram_tag.cxx:14
index
Definition
index.py:1
ActsTrk::DataLinkHolder
Definition
PersistentTrackContainer.h:20
ActsTrk::DataLinkHolder::element_type
T element_type
Definition
PersistentTrackContainer.h:21
ActsTrk::DataLinkHolder::operator*
const T & operator*() const
Definition
PersistentTrackContainer.h:25
ActsTrk::DataLinkHolder::operator->
const T * operator->() const
Definition
PersistentTrackContainer.h:26
ActsTrk::DataLinkHolder::m_link
DataLink< T > m_link
Definition
PersistentTrackContainer.h:22
ActsTrk::DataLinkHolder::operator*
T & operator*()
Definition
PersistentTrackContainer.h:27
ActsTrk::DataLinkHolder::operator->
T * operator->()
Definition
PersistentTrackContainer.h:28
ActsTrk::DataLinkHolder::DataLinkHolder
DataLinkHolder(const DataLink< T > &link)
Definition
PersistentTrackContainer.h:23
ActsTrk::MutablePersistentTrackContainer::MutablePersistentTrackContainer
MutablePersistentTrackContainer()
Definition
PersistentTrackContainer.h:55
Generated on
for ATLAS Offline Software by
1.17.0