ATLAS Offline Software
OfflineTauDecoratorAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef INDETTRACKPERFMON_OFFLINETAUDECORATORALG_H
6 #define INDETTRACKPERFMON_OFFLINETAUDECORATORALG_H
7 
18 
22 
24 #include <string>
25 #include <vector>
26 
28 #include "SafeDecorator.h"
29 
30 
31 namespace IDTPM {
32 
34  public AthReentrantAlgorithm {
35 
36  public:
37 
40 
41  OfflineTauDecoratorAlg( const std::string& name, ISvcLocator* pSvcLocator );
42 
43  virtual ~OfflineTauDecoratorAlg() = default;
44 
45  virtual StatusCode initialize() override;
46 
47  virtual StatusCode execute( const EventContext& ctx ) const override;
48 
49  private:
50 
52  this, "OfflineTrkParticleContainerName", "InDetTrackParticles", "Name of container of offline tracks" };
53 
54  StringProperty m_prefix { this, "Prefix", "LinkedTau_", "Decoration prefix to avoid clashes" };
55 
56  StringProperty m_tauType { this, "TauType", "RNN", "Type of reconstructed hadronic Tau (BDT or RNN)" };
57 
58  UnsignedIntegerProperty m_tauNprongs { this, "TauNprongs", 1, "Number of prongs in hadronic Tau decay (1 or 3)" };
59 
63  ElementTauLink_t > >& tau_decor,
64  const xAOD::TauJetContainer& taus ) const;
65 
67  this, "TauContainerName", "TauJets", "Name of container of offline hadronic taus" };
68 
69  enum TauDecorations : size_t {
70  All,
76  };
77 
78  const std::vector< std::string > m_decor_tau_names {
79  "All",
80  "Tight",
81  "Medium",
82  "Loose",
83  "VeryLoose"
84  };
85 
88 
89  };
90 
91 } // namespace IDTPM
92 
93 #endif // > ! INDETTRACKPERFMON_OFFLINETAUDECORATORALG_H
IDTPM::OfflineTauDecoratorAlg::m_tauType
StringProperty m_tauType
Definition: OfflineTauDecoratorAlg.h:56
IDTPM::OfflineTauDecoratorAlg::Tight
@ Tight
Definition: OfflineTauDecoratorAlg.h:71
IDTPM::OfflineTauDecoratorAlg::m_tausName
SG::ReadHandleKey< xAOD::TauJetContainer > m_tausName
Definition: OfflineTauDecoratorAlg.h:66
IDTPM::OfflineTauDecoratorAlg::ElementTrackLink_t
ElementLink< xAOD::TrackParticleContainer > ElementTrackLink_t
Definition: OfflineTauDecoratorAlg.h:39
IDTPM::OfflineTauDecoratorAlg::VeryLoose
@ VeryLoose
Definition: OfflineTauDecoratorAlg.h:74
IDTPM::OfflineTauDecoratorAlg::All
@ All
Definition: OfflineTauDecoratorAlg.h:70
xAOD::TrackParticleContainer
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
Definition: Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainer.h:14
IDTPM::OfflineTauDecoratorAlg::ElementTauLink_t
ElementLink< xAOD::TauJetContainer > ElementTauLink_t
Definition: OfflineTauDecoratorAlg.h:38
IDTPM::OfflineTauDecoratorAlg::m_decor_tau_names
const std::vector< std::string > m_decor_tau_names
Definition: OfflineTauDecoratorAlg.h:78
SG::ReadHandleKey< xAOD::TrackParticleContainer >
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
IDTPM::OfflineTauDecoratorAlg::decorateTauTrack
StatusCode decorateTauTrack(const xAOD::TrackParticle &track, std::vector< IDTPM::OptionalDecoration< xAOD::TrackParticleContainer, ElementTauLink_t > > &tau_decor, const xAOD::TauJetContainer &taus) const
Definition: OfflineTauDecoratorAlg.cxx:92
IDTPM::OfflineTauDecoratorAlg::m_tauNprongs
UnsignedIntegerProperty m_tauNprongs
Definition: OfflineTauDecoratorAlg.h:58
IDTPM::OfflineTauDecoratorAlg::m_decor_tau
std::vector< IDTPM::WriteKeyAccessorPair< xAOD::TrackParticleContainer, ElementTauLink_t > > m_decor_tau
Definition: OfflineTauDecoratorAlg.h:87
IDTPM::OfflineTauDecoratorAlg::m_offlineTrkParticlesName
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_offlineTrkParticlesName
Definition: OfflineTauDecoratorAlg.h:51
IDTPM::OfflineTauDecoratorAlg::Medium
@ Medium
Definition: OfflineTauDecoratorAlg.h:72
IDTPM::OfflineTauDecoratorAlg::~OfflineTauDecoratorAlg
virtual ~OfflineTauDecoratorAlg()=default
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TauJetContainer.h
IDTPM::OfflineTauDecoratorAlg::initialize
virtual StatusCode initialize() override
Definition: OfflineTauDecoratorAlg.cxx:26
DataVector< xAOD::TrackParticle_v1 >
IDTPM::OfflineTauDecoratorAlg::OfflineTauDecoratorAlg
OfflineTauDecoratorAlg(const std::string &name, ISvcLocator *pSvcLocator)
Local includes.
Definition: OfflineTauDecoratorAlg.cxx:17
AthReentrantAlgorithm.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
IDTPM::OfflineTauDecoratorAlg::NDecorations
@ NDecorations
Definition: OfflineTauDecoratorAlg.h:75
IDTPM::OfflineTauDecoratorAlg
Definition: OfflineTauDecoratorAlg.h:34
IDTPM::OfflineTauDecoratorAlg::m_prefix
StringProperty m_prefix
Definition: OfflineTauDecoratorAlg.h:54
SafeDecorator.h
Helper functions to perform safe decoration of xAOD objects in this package.
IDTPM::WriteKeyAccessorPair
std::pair< SG::WriteDecorHandleKey< ContainerType >, SG::AuxElement::ConstAccessor< VariableType > > WriteKeyAccessorPair
Useful declarations.
Definition: SafeDecorator.h:38
IDTPM::OfflineTauDecoratorAlg::TauDecorations
TauDecorations
Definition: OfflineTauDecoratorAlg.h:69
IDTPM::OfflineTauDecoratorAlg::Loose
@ Loose
Definition: OfflineTauDecoratorAlg.h:73
IDTPM::OfflineTauDecoratorAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: OfflineTauDecoratorAlg.cxx:53
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
IDTPM::OptionalDecoration
std::pair< SG::WriteDecorHandle< ContainerType, VariableType >, bool > OptionalDecoration
Definition: SafeDecorator.h:47
IDTPM
Athena include(s).
Definition: IPlotsDefinitionSvc.h:25
TrackParticleContainer.h