ATLAS Offline Software
TruthClassificationTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRUTH_CLASSIFICATION__TRUTH_CLASSIFICATION_TOOL_H_
6 #define TRUTH_CLASSIFICATION__TRUTH_CLASSIFICATION_TOOL_H_
7 
8 #include <string>
9 
11 #include <AsgTools/AsgTool.h>
12 #include <xAODEgamma/Electron.h>
13 #include <xAODMuon/Muon.h>
15 
16 
19 {
21 
22 public:
23  explicit TruthClassificationTool(const std::string &type);
24 
27  unsigned int &classification) const override;
28 
31  Truth::Type &classification) const override;
32 
33 private:
36  Truth::Type &classification) const;
37 
40  Truth::Type &classification) const;
41 
45 
48 
49  // accessors
61  const SG::AuxElement::ConstAccessor<int> m_fallbackTruthType{"TruthClassifierFallback_truthType"};
62  const SG::AuxElement::ConstAccessor<int> m_fallbackTruthOrigin{"TruthClassifierFallback_truthOrigin"};
63  const SG::AuxElement::ConstAccessor<float> m_fallbackDR{"TruthClassifierFallback_dR"};
64 
67  bool isTruthParticle,
68  const xAOD::TruthParticle *truthParticle) const;
71  bool isTruthParticle,
72  const xAOD::TruthParticle *truthParticle) const;
75  bool isTruthParticle,
76  const xAOD::TruthParticle *truthParticle) const;
77 
79  bool hasBHadronOrigin(int origin) const;
81  bool hasCHadronOrigin(int origin) const;
83  bool hasLightHadronOrigin(int origin) const;
84 };
85 
86 #endif // TRUTH_CLASSIFICATION__TRUTH_CLASSIFICATION_TOOL_H_
TruthClassificationTool::classifyElectron
StatusCode classifyElectron(const xAOD::IParticle &electron, Truth::Type &classification) const
electron classification helper
Definition: TruthClassificationTool.cxx:65
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:195
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
TruthClassificationTool::isChargeFlipElectron
bool isChargeFlipElectron(const xAOD::IParticle &electron, bool isTruthParticle, const xAOD::TruthParticle *truthParticle) const
a helper to check if an electron has an incorrectly reconstructed charge
Definition: TruthClassificationTool.cxx:652
TruthClassificationTool::m_firstMotherTruthOrigin
const SG::AuxElement::ConstAccessor< int > m_firstMotherTruthOrigin
Definition: TruthClassificationTool.h:56
TruthClassificationTool::hasCHadronOrigin
bool hasCHadronOrigin(int origin) const
a helper to check if the origin is a c-hadron
Definition: TruthClassificationTool.cxx:742
Muon.h
ASG_TOOL_CLASS2
#define ASG_TOOL_CLASS2(CLASSNAME, INT1, INT2)
Definition: AsgToolMacros.h:77
TruthClassificationTool::isPromptElectron
bool isPromptElectron(const xAOD::IParticle &electron, bool isTruthParticle, const xAOD::TruthParticle *truthParticle) const
a helper to check if an electron is prompt
Definition: TruthClassificationTool.cxx:604
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:54
TruthClassificationTool::m_useTruthParticleDecorations
bool m_useTruthParticleDecorations
use truth particle decorations
Definition: TruthClassificationTool.h:47
TruthClassificationTool::m_lastMotherTruthType
const SG::AuxElement::ConstAccessor< int > m_lastMotherTruthType
Definition: TruthClassificationTool.h:58
ITruthClassificationTool
a tool interface to classify particles into multiple categories based on their truth information
Definition: ITruthClassificationTool.h:55
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
TruthClassificationTool::m_separateChargeFlipElectrons
bool m_separateChargeFlipElectrons
separately store charge-flip electrons/muons
Definition: TruthClassificationTool.h:43
TruthClassificationTool::TruthClassificationTool
TruthClassificationTool(const std::string &type)
Definition: TruthClassificationTool.cxx:24
TruthClassificationTool::m_truthOrigin
const SG::AuxElement::ConstAccessor< int > m_truthOrigin
Definition: TruthClassificationTool.h:51
TruthClassificationTool::m_classifierParticleType
const SG::AuxElement::ConstAccessor< unsigned int > m_classifierParticleType
Definition: TruthClassificationTool.h:53
TruthClassificationTool::hasLightHadronOrigin
bool hasLightHadronOrigin(int origin) const
a helper to check if the origin is a light hadron
Definition: TruthClassificationTool.cxx:752
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAOD::TruthParticle_v1
Class describing a truth particle in the MC record.
Definition: TruthParticle_v1.h:41
TruthClassificationTool
a tool to classify particles based on their type and origin
Definition: TruthClassificationTool.h:19
TruthClassificationTool::classifyMuon
StatusCode classifyMuon(const xAOD::IParticle &muon, Truth::Type &classification) const
muon classification helper
Definition: TruthClassificationTool.cxx:410
ITruthClassificationTool.h
TruthClassificationTool::m_firstMotherTruthType
const SG::AuxElement::ConstAccessor< int > m_firstMotherTruthType
Definition: TruthClassificationTool.h:55
TruthClassificationTool::m_fallbackTruthType
const SG::AuxElement::ConstAccessor< int > m_fallbackTruthType
Definition: TruthClassificationTool.h:61
TruthClassificationTool::hasBHadronOrigin
bool hasBHadronOrigin(int origin) const
a helper to check if the origin is a b-hadron
Definition: TruthClassificationTool.cxx:731
TruthClassificationTool::m_firstMotherPdgId
const SG::AuxElement::ConstAccessor< int > m_firstMotherPdgId
Definition: TruthClassificationTool.h:57
TruthClassificationTool::m_lastMotherTruthOrigin
const SG::AuxElement::ConstAccessor< int > m_lastMotherTruthOrigin
Definition: TruthClassificationTool.h:59
TruthClassificationTool::m_classifierParticleOrigin
const SG::AuxElement::ConstAccessor< unsigned int > m_classifierParticleOrigin
Definition: TruthClassificationTool.h:54
TruthClassificationTool::m_fallbackDR
const SG::AuxElement::ConstAccessor< float > m_fallbackDR
Definition: TruthClassificationTool.h:63
TruthClassificationTool::isChargeFlipMuon
bool isChargeFlipMuon(const xAOD::IParticle &muon, bool isTruthParticle, const xAOD::TruthParticle *truthParticle) const
a helper to check if a muon has an incorrectly reconstructed charge
Definition: TruthClassificationTool.cxx:711
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
xAOD::EgammaParameters::electron
@ electron
Definition: EgammaEnums.h:18
TruthClassificationTool::m_separateChargeFlipMuons
bool m_separateChargeFlipMuons
Definition: TruthClassificationTool.h:44
TruthClassificationTool::m_truthPdgId
const SG::AuxElement::ConstAccessor< int > m_truthPdgId
Definition: TruthClassificationTool.h:52
TruthClassificationTool::m_lastMotherPdgId
const SG::AuxElement::ConstAccessor< int > m_lastMotherPdgId
Definition: TruthClassificationTool.h:60
TruthClassificationTool::classify
virtual StatusCode classify(const xAOD::IParticle &particle, unsigned int &classification) const override
classify and return unsigned int
Definition: TruthClassificationTool.cxx:33
Electron.h
TruthClassificationTool::m_truthType
const SG::AuxElement::ConstAccessor< int > m_truthType
Definition: TruthClassificationTool.h:50
AsgTool.h
TruthParticle.h
Truth::Type
Type
truth classification type enum
Definition: ITruthClassificationTool.h:19
TruthClassificationTool::m_fallbackTruthOrigin
const SG::AuxElement::ConstAccessor< int > m_fallbackTruthOrigin
Definition: TruthClassificationTool.h:62