ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsEvent
ActsEvent
MeasurementToTruthParticleAssociation.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
#ifndef MEASUREMENTTOGENPARTICLEASSOCIATION_H
5
#define MEASUREMENTTOGENPARTICLEASSOCIATION_H
6
#include "boost/container/small_vector.hpp"
7
#include "
xAODTruth/TruthParticle.h
"
8
#include "
xAODMeasurementBase/UncalibratedMeasurementContainer.h
"
9
#include "AthLinks/DataLink.h"
10
#include <vector>
11
12
namespace
ActsTrk
13
{
14
constexpr
unsigned
int
NTruthParticlesPerMeasurement
= 5;
// chosen to make the small_vector fit into 164 bytes
15
// a tiny fraction of measurements will have more than
16
// 5 associated GenParticles
17
using
ParticleVector
= boost::container::small_vector<const xAOD::TruthParticle *, NTruthParticlesPerMeasurement>;
18
class
MeasurementToTruthParticleAssociation
:
public
std::vector<ParticleVector> {
19
public
:
20
using
std::vector<
ParticleVector
>
::vector
;
21
22
void
setSourceContainer
(
DataLink<xAOD::UncalibratedMeasurementContainer>
&&source) {
23
m_sourceMeasurements
= std::move(source);
24
}
25
const
xAOD::UncalibratedMeasurementContainer
*
sourceContainer
()
const
{
26
return
m_sourceMeasurements
.getDataPtr();
27
}
28
bool
isCompatibleWith
(
const
xAOD::UncalibratedMeasurementContainer
*container)
const
{
29
30
if
(!container)
return
false
;
31
32
if
(container ==
m_sourceMeasurements
.getDataPtr())
return
true
;
33
34
return
false
;
35
}
36
37
// convenience methods to convert "data-links" to derived measurement container
38
template
<
class
T_MeasurementContainer>
39
void
setSourceContainer
(
const
T_MeasurementContainer &source,
const
EventContext &ctx) {
40
m_sourceMeasurements
=
DataLink<xAOD::UncalibratedMeasurementContainer>
(source, ctx );
41
}
42
template
<
class
T_MeasurementContainer>
43
void
setSourceContainer
(
const
DataLink<T_MeasurementContainer>
&source) {
44
m_sourceMeasurements
=
DataLink<xAOD::UncalibratedMeasurementContainer>
(source.getDataPtr(), source.source() );
45
}
46
47
private
:
48
DataLink<xAOD::UncalibratedMeasurementContainer>
m_sourceMeasurements
;
49
};
50
51
}
52
53
#include "
AthenaKernel/CLASS_DEF.h
"
54
CLASS_DEF
(
ActsTrk::MeasurementToTruthParticleAssociation
, 151157774 , 1 )
55
56
#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
TruthParticle.h
UncalibratedMeasurementContainer.h
ActsTrk::MeasurementToTruthParticleAssociation
Definition
MeasurementToTruthParticleAssociation.h:18
ActsTrk::MeasurementToTruthParticleAssociation::setSourceContainer
void setSourceContainer(const T_MeasurementContainer &source, const EventContext &ctx)
Definition
MeasurementToTruthParticleAssociation.h:39
ActsTrk::MeasurementToTruthParticleAssociation::sourceContainer
const xAOD::UncalibratedMeasurementContainer * sourceContainer() const
Definition
MeasurementToTruthParticleAssociation.h:25
ActsTrk::MeasurementToTruthParticleAssociation::setSourceContainer
void setSourceContainer(DataLink< xAOD::UncalibratedMeasurementContainer > &&source)
Definition
MeasurementToTruthParticleAssociation.h:22
ActsTrk::MeasurementToTruthParticleAssociation::m_sourceMeasurements
DataLink< xAOD::UncalibratedMeasurementContainer > m_sourceMeasurements
Definition
MeasurementToTruthParticleAssociation.h:48
ActsTrk::MeasurementToTruthParticleAssociation::setSourceContainer
void setSourceContainer(const DataLink< T_MeasurementContainer > &source)
Definition
MeasurementToTruthParticleAssociation.h:43
ActsTrk::MeasurementToTruthParticleAssociation::isCompatibleWith
bool isCompatibleWith(const xAOD::UncalibratedMeasurementContainer *container) const
Definition
MeasurementToTruthParticleAssociation.h:28
DataLink
Object reference supporting deferred reading from StoreGate.
Definition
AthLinks/DataLink.h:93
vector
Definition
MultiHisto.h:13
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition
MdtCalibInput.h:31
ActsTrk::ParticleVector
boost::container::small_vector< const xAOD::TruthParticle *, NTruthParticlesPerMeasurement > ParticleVector
Definition
MeasurementToTruthParticleAssociation.h:17
ActsTrk::NTruthParticlesPerMeasurement
constexpr unsigned int NTruthParticlesPerMeasurement
Definition
MeasurementToTruthParticleAssociation.h:14
xAOD::UncalibratedMeasurementContainer
UncalibratedMeasurementContainer_v1 UncalibratedMeasurementContainer
Define the version of the uncalibrated measurement container.
Definition
UncalibratedMeasurementContainer.h:14
Generated on
for ATLAS Offline Software by
1.17.0