ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
JetTagging
FlavorTagDiscriminants
src
HitBeamSpotDataDecoratorAlg.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
// Header file
6
#include "
FlavorTagDiscriminants/HitBeamSpotDataDecoratorAlg.h
"
7
8
// Read and write handles
9
#include "
StoreGate/WriteDecorHandle.h
"
10
#include "
StoreGate/ReadDecorHandle.h
"
11
12
#include "
StoreGate/ReadCondHandle.h
"
13
14
15
namespace
FlavorTagDiscriminants
{
16
17
HitBeamSpotDataDecoratorAlg::HitBeamSpotDataDecoratorAlg
(
const
std::string& name, ISvcLocator* loc)
18
:
AthReentrantAlgorithm
(name, loc) {}
19
20
21
StatusCode
HitBeamSpotDataDecoratorAlg::initialize
() {
22
ATH_MSG_INFO
(
"Initializing "
<< name());
23
24
// BS conditions key
25
ATH_CHECK
(
m_beamSpotKey
.initialize());
26
27
// Initialize hit keys
28
ATH_CHECK
(
m_HitContainerKey
.initialize());
29
ATH_CHECK
(
m_OutputHitXKey
.initialize());
30
ATH_CHECK
(
m_OutputHitYKey
.initialize());
31
ATH_CHECK
(
m_OutputHitZKey
.initialize());
32
33
return
StatusCode::SUCCESS;
34
}
35
36
37
StatusCode
HitBeamSpotDataDecoratorAlg::execute
(
const
EventContext& ctx)
const
{
38
ATH_MSG_DEBUG
(
"Executing "
<< name());
39
40
// Get event vertex
41
ROOT::Math::XYZVector vtx;
42
ATH_CHECK
(
getEventVertex
(ctx, vtx));
43
44
// Read out hits
45
SG::ReadHandle<xAOD::TrackMeasurementValidationContainer>
hits (
m_HitContainerKey
, ctx);
46
if
(!hits.isValid()) {
47
ATH_MSG_ERROR
(
"Failed to retrieve hit container with key "
<<
m_HitContainerKey
.key());
48
return
StatusCode::FAILURE;
49
}
50
51
// Set up hit decorators
52
SG::WriteDecorHandle<xAOD::TrackMeasurementValidationContainer, float>
correctedHitX (
m_OutputHitXKey
, ctx);
53
SG::WriteDecorHandle<xAOD::TrackMeasurementValidationContainer, float>
correctedHitY (
m_OutputHitYKey
, ctx);
54
SG::WriteDecorHandle<xAOD::TrackMeasurementValidationContainer, float>
correctedHitZ (
m_OutputHitZKey
, ctx);
55
56
// Calculate relative hit position to the vertex and decorate it to hits container
57
for
(
const
xAOD::TrackMeasurementValidation
*
hit
: *hits) {
58
correctedHitX(*
hit
) =
hit
->globalX() - vtx.X();
59
correctedHitY(*
hit
) =
hit
->globalY() - vtx.Y();
60
correctedHitZ(*
hit
) =
hit
->globalZ() - vtx.Z();
61
}
62
63
return
StatusCode::SUCCESS;
64
}
65
66
67
StatusCode
HitBeamSpotDataDecoratorAlg::getEventVertex
(
const
EventContext& ctx, ROOT::Math::XYZVector& vtx)
const
{
68
// Read out beamspot from conditions
69
SG::ReadCondHandle<InDet::BeamSpotData>
beamSpotHandle(
m_beamSpotKey
, ctx);
70
if
(!beamSpotHandle.
isValid
()) {
71
ATH_MSG_ERROR
(
"Failed to retrieve BeamSpot conditions data with key "
<<
m_beamSpotKey
.key());
72
return
StatusCode::FAILURE;
73
}
74
const
InDet::BeamSpotData
* beamSpot = *beamSpotHandle;
75
76
vtx.SetXYZ(
77
beamSpot->beamPos()[
Amg::x
],
78
beamSpot->beamPos()[
Amg::y
],
79
beamSpot->beamPos()[
Amg::z
]
80
);
81
82
return
StatusCode::SUCCESS;
83
}
84
85
}
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
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
HitBeamSpotDataDecoratorAlg.h
hit
bool hit(const Container &ids, int pdgId)
Definition
JetIRCSafeLabelTool.cxx:64
ReadCondHandle.h
ReadDecorHandle.h
Handle class for reading a decoration on an object.
WriteDecorHandle.h
Handle class for adding a decoration to an object.
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition
AthReentrantAlgorithm.h:74
FlavorTagDiscriminants::HitBeamSpotDataDecoratorAlg::m_OutputHitZKey
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_OutputHitZKey
Definition
HitBeamSpotDataDecoratorAlg.h:52
FlavorTagDiscriminants::HitBeamSpotDataDecoratorAlg::HitBeamSpotDataDecoratorAlg
HitBeamSpotDataDecoratorAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition
HitBeamSpotDataDecoratorAlg.cxx:17
FlavorTagDiscriminants::HitBeamSpotDataDecoratorAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition
HitBeamSpotDataDecoratorAlg.cxx:37
FlavorTagDiscriminants::HitBeamSpotDataDecoratorAlg::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Definition
HitBeamSpotDataDecoratorAlg.h:56
FlavorTagDiscriminants::HitBeamSpotDataDecoratorAlg::m_OutputHitYKey
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_OutputHitYKey
Definition
HitBeamSpotDataDecoratorAlg.h:49
FlavorTagDiscriminants::HitBeamSpotDataDecoratorAlg::m_HitContainerKey
SG::ReadHandleKey< xAOD::TrackMeasurementValidationContainer > m_HitContainerKey
Definition
HitBeamSpotDataDecoratorAlg.h:43
FlavorTagDiscriminants::HitBeamSpotDataDecoratorAlg::getEventVertex
StatusCode getEventVertex(const EventContext &ctx, ROOT::Math::XYZVector &vtx) const
Definition
HitBeamSpotDataDecoratorAlg.cxx:67
FlavorTagDiscriminants::HitBeamSpotDataDecoratorAlg::m_OutputHitXKey
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_OutputHitXKey
Definition
HitBeamSpotDataDecoratorAlg.h:46
FlavorTagDiscriminants::HitBeamSpotDataDecoratorAlg::initialize
virtual StatusCode initialize() override
Definition
HitBeamSpotDataDecoratorAlg.cxx:21
InDet::BeamSpotData
Definition
BeamSpotData.h:21
SG::ReadCondHandle
Definition
ReadCondHandle.h:40
SG::ReadCondHandle::isValid
bool isValid()
Definition
ReadCondHandle.h:205
SG::ReadHandle
Definition
StoreGate/StoreGate/ReadHandle.h:67
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition
StoreGate/StoreGate/WriteDecorHandle.h:100
Amg::y
@ y
Definition
GeoPrimitives.h:35
Amg::x
@ x
Definition
GeoPrimitives.h:34
Amg::z
@ z
Definition
GeoPrimitives.h:36
FlavorTagDiscriminants
Definition
CaloChargedFlowDecoratorAlg.h:15
xAOD::TrackMeasurementValidation
TrackMeasurementValidation_v1 TrackMeasurementValidation
Reference the current persistent version:
Definition
TrackMeasurementValidation.h:13
Generated on
for ATLAS Offline Software by
1.17.0