ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
Algorithms
JetAnalysisAlgorithms
Root
JetGhostMergingAlg.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
7
//
8
// includes
9
//
10
#include <
JetAnalysisAlgorithms/JetGhostMergingAlg.h
>
11
#include <
AsgDataHandles/WriteDecorHandle.h
>
12
#include <
AsgDataHandles/ReadDecorHandle.h
>
13
14
namespace
CP
15
{
16
JetGhostMergingAlg ::
17
JetGhostMergingAlg (
const
std::string&
name
,
18
ISvcLocator* pSvcLocator)
19
:
AnaReentrantAlgorithm
(
name
, pSvcLocator)
20
{
21
}
22
23
StatusCode JetGhostMergingAlg ::
24
initialize ()
25
{
26
// containers
27
ATH_CHECK
(
m_jetLocation
.initialize ());
28
29
// decorators
30
ATH_CHECK
(
m_mergedGhostContainer
.initialize ());
31
32
// accessors
33
m_ghostTrackKeys
.reserve(
m_ghostTrackKeys
.size() +
m_inputGhostTrackNames
.size());
34
for
(
const
auto
& ghostName:
m_inputGhostTrackNames
) {
35
std::string full =
m_jetLocation
.key() +
"."
+ ghostName;
36
m_ghostTrackKeys
.emplace_back(
this
, ghostName, full,
""
);
37
ATH_CHECK
(
m_ghostTrackKeys
.back().initialize() );
38
}
39
40
return
StatusCode::SUCCESS;
41
}
42
43
StatusCode JetGhostMergingAlg ::
44
execute (
const
EventContext &ctx)
const
45
{
46
SG::ReadHandle<xAOD::JetContainer>
inputJets(
m_jetLocation
,ctx);
47
if
(!inputJets.
isValid
()) {
48
ATH_MSG_FATAL
(
"No jet collection with name "
<<
m_jetLocation
.key() <<
" found in StoreGate!"
);
49
return
StatusCode::FAILURE;
50
}
51
52
// define GhostTrackContainer type (GTC)
53
using
GTC = std::vector<ElementLink<DataVector<xAOD::IParticle> > >;
54
55
// create the accessors for each ghost track collection
56
std::vector<SG::ReadDecorHandle<xAOD::JetContainer, GTC> > ghostTrackAccs;
57
ghostTrackAccs.reserve(
m_ghostTrackKeys
.size());
58
for
(
const
auto
&key:
m_ghostTrackKeys
) {
59
ghostTrackAccs.emplace_back(key, ctx);
60
}
61
62
SG::WriteDecorHandle<xAOD::JetContainer, GTC >
mergedGhostDecor(
m_mergedGhostContainer
, ctx);
63
64
for
(
const
xAOD::Jet
*
jet
: *inputJets) {
65
std::vector<ElementLink<xAOD::IParticleContainer>> mergedGhosts;
66
for
(
const
auto
& ghostTrackAcc: ghostTrackAccs) {
67
const
GTC &ghosts = ghostTrackAcc( *
jet
);
68
mergedGhosts.insert(mergedGhosts.end(), ghosts.begin(), ghosts.end());
69
}
70
mergedGhostDecor(*
jet
) = std::move(mergedGhosts);
71
}
72
return
StatusCode::SUCCESS;
73
}
74
75
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition
AthMsgStreamMacros.h:34
ReadDecorHandle.h
Handle class for reading a decoration on an object.
WriteDecorHandle.h
Handle class for adding a decoration to an object.
JetGhostMergingAlg.h
CP::JetGhostMergingAlg::m_ghostTrackKeys
std::vector< SG::ReadDecorHandleKey< xAOD::JetContainer > > m_ghostTrackKeys
internal vector to hold the ReadDecorHandles for the difference ghosts
Definition
JetGhostMergingAlg.h:61
CP::JetGhostMergingAlg::m_jetLocation
SG::ReadHandleKey< xAOD::JetContainer > m_jetLocation
the jet collection we run on
Definition
JetGhostMergingAlg.h:51
CP::JetGhostMergingAlg::m_inputGhostTrackNames
Gaudi::Property< std::vector< std::string > > m_inputGhostTrackNames
Definition
JetGhostMergingAlg.h:64
CP::JetGhostMergingAlg::m_mergedGhostContainer
SG::WriteDecorHandleKey< xAOD::JetContainer > m_mergedGhostContainer
the name of the output ghost collection
Definition
JetGhostMergingAlg.h:55
EL::AnaReentrantAlgorithm::AnaReentrantAlgorithm
AnaReentrantAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
constructor with parameters
Definition
AnaReentrantAlgorithm.cxx:29
SG::ReadHandle
Definition
StoreGate/StoreGate/ReadHandle.h:67
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition
StoreGate/StoreGate/WriteDecorHandle.h:100
CP
Select isolated Photons, Electrons and Muons.
Definition
Control/xAODRootAccess/xAODRootAccess/TEvent.h:27
jet
Definition
JetCalibTools_PlotJESFactors.cxx:23
xAOD::Jet
Jet_v1 Jet
Definition of the current "jet version".
Definition
Event/xAOD/xAODJet/xAODJet/Jet.h:17
xAOD::name
name
Definition
TriggerMenuJson_v1.cxx:29
Generated on
for ATLAS Offline Software by
1.17.0