ATLAS Offline Software
Loading...
Searching...
No Matches
SoftElectronTruthDecoratorAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 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"};
37
38 // Accessors for truth particles
41 this, "acc_ftagTruthOriginLabel", "ftagTruthOriginLabel",
42 "Accessor for the truth origin label of the truth particle"};
44 this, "acc_ftagTruthTypeLabel", "ftagTruthTypeLabel",
45 "Accessor for the truth type label of the truth particle"};
47 this, "acc_ftagTruthSourceLabel", "ftagTruthSourceLabel",
48 "Accessor for the truth source label of the truth particle"};
50 this, "acc_ftagTruthVertexIndex", "ftagTruthVertexIndex",
51 "Accessor for the truth vertex index of the truth particle"};
53 this, "acc_ftagTruthParentBarcode", "ftagTruthParentBarcode",
54 "Accessor for the truth parent uniqueID of the truth particle"};
55
56 // Decorators for electrons
59 this, "dec_ftagTruthOriginLabel", "ftagTruthOriginLabel",
60 "Exclusive origin label of the electron"};
62 this, "dec_ftagTruthTypeLabel", "ftagTruthTypeLabel",
63 "Exclusive truth type label of the electron"};
65 this, "dec_ftagTruthSourceLabel", "ftagTruthSourceLabel",
66 "Exclusive truth label for the immedate parent of the truth particle"};
68 this, "dec_ftagTruthVertexIndex", "ftagTruthVertexIndex",
69 "Truth vertex index of the electron"};
71 this, "dec_ftagTruthBarcode", "ftagTruthBarcode",
72 "UniqueID of linked truth particle"};
74 this, "dec_ftagTruthParentBarcode", "ftagTruthParentBarcode",
75 "UniqueID of parent of linked truth particle"};
76
77 // truth origin tool
78 ToolHandle<InDet::InDetTrackTruthOriginTool> m_trackTruthOriginTool {
79 this, "trackTruthOriginTool", "InDet::InDetTrackTruthOriginTool",
80 "track truth origin tool"};
81
82 // Electron types are defined in
83 // PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/MCTruthClassifierDefs.h#L28
84 const std::set<int> m_valid_types{1, 2, 3, 4};
85
86 // ATLASRECTS-8290: this is for backward compatability, remove eventually
87 Gaudi::Property<bool> m_use_barcode {
88 this, "useBarcode", false, "use barcode rather than UID"
89 };
90
91 // Accessors
92 template <typename T> using Acc = SG::AuxElement::ConstAccessor<T>;
95 // ATLASRECTS-8290: this is for backward compatability, remove eventually
97 };
98}
99
100#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::ReadHandleKey< xAOD::ElectronContainer > m_ElectronContainerKey
virtual StatusCode execute(const EventContext &) const override
ToolHandle< InDet::InDetTrackTruthOriginTool > m_trackTruthOriginTool
Acc< ElementLink< xAOD::TruthParticleContainer > > m_truthParticleLink
SG::WriteDecorHandleKey< xAOD::ElectronContainer > WDHK
SoftElectronTruthDecoratorAlg(const std::string &name, ISvcLocator *pSvcLocator)
SG::ConstAccessor< T, ALLOC > ConstAccessor
Definition AuxElement.h:569
Property holding a SG store/key/clid from which a ReadHandle is made.