ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
TrackingID
InDetTrackSystematicsTools
src
TrackSmearingAlg.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TrackSmearingAlg.h
"
6
#include "
xAODCore/ShallowCopy.h
"
7
#include "
StoreGate/ReadHandle.h
"
8
#include "
StoreGate/WriteHandle.h
"
9
10
namespace
InDet
{
11
StatusCode
TrackSmearingAlg::initialize
()
12
{
13
ATH_CHECK
(
m_smearingTool
.retrieve());
14
if
(!
m_biasingTool
.empty())
15
ATH_CHECK
(
m_biasingTool
.retrieve());
16
17
if
(!
m_systematicVariation
.value().empty())
18
m_systSet
=
CP::SystematicSet
({
CP::SystematicVariation
(
m_systematicVariation
)});
19
20
// Pre-register the systematic set in each tool's cache so the
21
// reentrant applyCorrection(track, syst) overload can look it up.
22
ATH_CHECK
(
m_smearingTool
->applySystematicVariation(
m_systSet
));
23
if
(!
m_biasingTool
.empty())
24
ATH_CHECK
(
m_biasingTool
->applySystematicVariation(
m_systSet
));
25
26
ATH_CHECK
(
m_inTrackKey
.initialize());
27
ATH_CHECK
(
m_outTrackKey
.initialize());
28
return
StatusCode::SUCCESS;
29
}
30
31
StatusCode
TrackSmearingAlg::execute
(
const
EventContext& ctx)
const
32
{
33
SG::ReadHandle<xAOD::TrackParticleContainer>
inTracks(
m_inTrackKey
, ctx);
34
ATH_CHECK
(inTracks.
isValid
());
35
36
auto
[outTracks, outAux] =
37
xAOD::shallowCopyContainer
(*inTracks, ctx);
38
39
for
(
xAOD::TrackParticle
* trk : *outTracks) {
40
if
(
m_smearingTool
->applyCorrection(*trk,
m_systSet
)
41
==
CP::CorrectionCode::Error
) {
42
ATH_MSG_ERROR
(
"Could not apply InDetTrackSmearingTool."
);
43
return
StatusCode::FAILURE;
44
}
45
if
(!
m_biasingTool
.empty()) {
46
if
(
m_biasingTool
->applyCorrection(*trk,
m_systSet
)
47
==
CP::CorrectionCode::Error
) {
48
ATH_MSG_ERROR
(
"Could not apply InDetTrackBiasingTool."
);
49
return
StatusCode::FAILURE;
50
}
51
}
52
}
53
54
SG::WriteHandle<xAOD::TrackParticleContainer>
outHandle(
m_outTrackKey
, ctx);
55
ATH_CHECK
(outHandle.
record
(std::move(outTracks), std::move(outAux)));
56
return
StatusCode::SUCCESS;
57
}
58
59
}
// namespace InDet
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition
AthMsgStreamMacros.h:33
ShallowCopy.h
ReadHandle.h
Handle class for reading from StoreGate.
WriteHandle.h
Handle class for recording to StoreGate.
TrackSmearingAlg.h
CP::CorrectionCode::Error
@ Error
Some error happened during the object correction.
Definition
CorrectionCode.h:36
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition
SystematicSet.h:31
CP::SystematicVariation
Definition
SystematicVariation.h:47
InDet::TrackSmearingAlg::m_systSet
CP::SystematicSet m_systSet
Definition
TrackSmearingAlg.h:42
InDet::TrackSmearingAlg::m_systematicVariation
Gaudi::Property< std::string > m_systematicVariation
Definition
TrackSmearingAlg.h:36
InDet::TrackSmearingAlg::m_inTrackKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_inTrackKey
Definition
TrackSmearingAlg.h:32
InDet::TrackSmearingAlg::m_outTrackKey
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_outTrackKey
Definition
TrackSmearingAlg.h:34
InDet::TrackSmearingAlg::m_smearingTool
PublicToolHandle< IInDetTrackSmearingTool > m_smearingTool
Definition
TrackSmearingAlg.h:30
InDet::TrackSmearingAlg::execute
StatusCode execute(const EventContext &ctx) const override
Definition
TrackSmearingAlg.cxx:31
InDet::TrackSmearingAlg::m_biasingTool
PublicToolHandle< IInDetTrackBiasingTool > m_biasingTool
Definition
TrackSmearingAlg.h:31
InDet::TrackSmearingAlg::initialize
StatusCode initialize() override
Definition
TrackSmearingAlg.cxx:11
SG::ReadHandle
Definition
StoreGate/StoreGate/ReadHandle.h:67
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::WriteHandle
Definition
StoreGate/StoreGate/WriteHandle.h:73
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
InDet
Primary Vertex Finder.
Definition
VP1ErrorUtils.h:36
xAOD::shallowCopyContainer
std::pair< std::unique_ptr< T >, std::unique_ptr< ShallowAuxContainer > > shallowCopyContainer(const T &cont, const EventContext &ctx)
Function making a shallow copy of a constant container.
Definition
ShallowCopy.h:201
xAOD::TrackParticle
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Definition
Event/xAOD/xAODTracking/xAODTracking/TrackParticle.h:13
Generated on
for ATLAS Offline Software by
1.17.0