ATLAS Offline Software
Loading...
Searching...
No Matches
SoftElectronTruthDecoratorAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ELECTRON_TRUTH_DECORATOR_ALG_HH
6#define ELECTRON_TRUTH_DECORATOR_ALG_HH
7
9#include "GaudiKernel/ToolHandle.h"
13
14#include "AthLinks/ElementLink.h"
19
20#include <set>
21
22namespace FlavorTagDiscriminants {
23
25 public:
26 SoftElectronTruthDecoratorAlg(const std::string& name,
27 ISvcLocator* pSvcLocator );
28
29 virtual StatusCode initialize() override;
30 virtual StatusCode execute(const EventContext& ) const override;
31
32 private:
33 // Input Containers
35 this, "electronContainer", "Electrons",
36 "Key for the input electron collection"};
38 this, "truthParticleContainer", "TruthParticles",
39 "Key for the input truth particle container"};
40
41 // Accessors for truth particles
44 this, "acc_ftagTruthOriginLabel", m_truthParticleContainerKey, "ftagTruthOriginLabel",
45 "Accessor for the truth origin label of the truth particle"};
47 this, "acc_ftagTruthTypeLabel", m_truthParticleContainerKey, "ftagTruthTypeLabel",
48 "Accessor for the truth type label of the truth particle"};
50 this, "acc_ftagTruthSourceLabel", m_truthParticleContainerKey, "ftagTruthSourceLabel",
51 "Accessor for the truth source label of the truth particle"};
53 this, "acc_ftagTruthVertexIndex", m_truthParticleContainerKey, "ftagTruthVertexIndex",
54 "Accessor for the truth vertex index of the truth particle"};
56 this, "acc_ftagTruthParentBarcode", m_truthParticleContainerKey, "ftagTruthParentBarcode",
57 "Accessor for the truth parent uniqueID of the truth particle"};
58
59 // Decorators for electrons
62 this, "dec_ftagTruthOriginLabel", m_ElectronContainerKey, "ftagTruthOriginLabel",
63 "Exclusive origin label of the electron"};
65 this, "dec_ftagTruthTypeLabel", m_ElectronContainerKey, "ftagTruthTypeLabel",
66 "Exclusive truth type label of the electron"};
68 this, "dec_ftagTruthSourceLabel", m_ElectronContainerKey, "ftagTruthSourceLabel",
69 "Exclusive truth label for the immedate parent of the truth particle"};
71 this, "dec_ftagTruthVertexIndex", m_ElectronContainerKey, "ftagTruthVertexIndex",
72 "Truth vertex index of the electron"};
74 this, "dec_ftagTruthBarcode", m_ElectronContainerKey, "ftagTruthBarcode",
75 "UniqueID of linked truth particle"};
77 this, "dec_ftagTruthParentBarcode", m_ElectronContainerKey, "ftagTruthParentBarcode",
78 "UniqueID of parent of linked truth particle"};
79
80 // truth origin tool
81 ToolHandle<InDet::InDetTrackTruthOriginTool> m_trackTruthOriginTool {
82 this, "trackTruthOriginTool", "InDet::InDetTrackTruthOriginTool",
83 "track truth origin tool"};
84
85 // Electron types are defined in
86 // PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/MCTruthClassifierDefs.h#L28
87 const std::set<int> m_valid_types{1, 2, 3, 4};
88
89 // ATLASRECTS-8290: this is for backward compatability, remove eventually
90 Gaudi::Property<bool> m_use_barcode {
91 this, "useBarcode", false, "use barcode rather than UID"
92 };
93
94 // Read accessors declared as handle keys for MT scheduling
96 this, "truthParticleLinkKey", m_ElectronContainerKey, "truthParticleLink",
97 "Truth particle link on electrons"};
99 this, "classifierParticleTypeKey", m_truthParticleContainerKey, "classifierParticleType",
100 "Classifier particle type on truth particles"};
101 // ATLASRECTS-8290: this is for backward compatability, remove eventually
103 this, "uidKey", m_truthParticleContainerKey, "uid",
104 "UniqueID on truth particles"};
105 };
106}
107
108#endif
Base class for elements of a container that can have aux data.
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
An algorithm that can be simultaneously executed in multiple threads.
SG::ReadDecorHandleKey< xAOD::TruthParticleContainer > RDHK
SG::ReadDecorHandleKey< xAOD::TruthParticleContainer > m_uidKey
SG::ReadDecorHandleKey< xAOD::TruthParticleContainer > m_classifierParticleTypeKey
SG::ReadHandleKey< xAOD::ElectronContainer > m_ElectronContainerKey
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_truthParticleContainerKey
virtual StatusCode execute(const EventContext &) const override
ToolHandle< InDet::InDetTrackTruthOriginTool > m_trackTruthOriginTool
SG::WriteDecorHandleKey< xAOD::ElectronContainer > WDHK
SoftElectronTruthDecoratorAlg(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadDecorHandleKey< xAOD::ElectronContainer > m_truthParticleLinkKey
Property holding a SG store/key/clid from which a ReadHandle is made.