ATLAS Offline Software
Loading...
Searching...
No Matches
AsgClassificationDecorationAlg.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7
9
10
11namespace CP
12{
13
15{
16
19 ANA_CHECK (m_systematicsList.initialize());
20
21 ANA_CHECK(m_tool->initialize());
22
23 return StatusCode::SUCCESS;
24}
25
26
27
29{
30
31 std::vector<unsigned int> classifications;
32
33 for (const auto& sys : m_systematicsList.systematicsVector())
34 {
35 const xAOD::IParticleContainer *particles = nullptr;
36 ANA_CHECK(m_particlesHandle.retrieve(particles, sys));
37
38 if (sys.empty()) {
39 // we only run the IFF tool on the nominal calibration
40 for (const xAOD::IParticle *particle : *particles)
41 {
42 unsigned int classification(0);
43 ANA_CHECK(m_tool->classify(*particle, classification));
44 m_classificationDecorator.set(*particle, classification, sys);
45 classifications.push_back(classification);
46 }
47 }
48 else {
49 // and for all other systematics, just propagate the decoration
50 unsigned int index = 0;
51 for (const xAOD::IParticle *particle : *particles)
52 {
53 m_classificationDecorator.set(*particle, classifications.at(index), sys);
54 index ++;
55 }
56 }
57 }
58
59 return StatusCode::SUCCESS;
60}
61
62} // namespace CP
#define ANA_CHECK(EXP)
check whether the given expression was successful
CP::SysListHandle m_systematicsList
the systematics list we run
CP::SysWriteDecorHandle< int > m_classificationDecorator
the decoration for the truth classification
CP::SysReadHandle< xAOD::IParticleContainer > m_particlesHandle
particles container handle
ToolHandle< IClassificationTool > m_tool
truth classifier tool handle
Class providing the definition of the 4-vector interface.
Select isolated Photons, Electrons and Muons.
Definition index.py:1
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.