ATLAS Offline Software
TauAODRunnerAlg.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 TAUREC_TAUAODRUNNERALG_H
6 #define TAUREC_TAUAODRUNNERALG_H
7 
9 
11 #include "StoreGate/ReadHandle.h"
12 #include "StoreGate/WriteHandle.h"
15 #include "xAODPFlow/PFOContainer.h"
25 #include "xAODJet/JetContainer.h"
27 #include "xAODTau/TauDefs.h"
28 #include "GaudiKernel/ToolHandle.h"
29 
45  public:
46  TauAODRunnerAlg(const std::string &name, ISvcLocator *);
47  virtual StatusCode initialize() override;
48  virtual StatusCode execute(const EventContext& ctx) const override;
49 
50  private:
51  // Tool handle arrays
52  ToolHandleArray<ITauToolBase> m_modificationTools{this, "modificationTools", {}, "Tools for modifying the taus"};
53  ToolHandleArray<ITauToolBase> m_officialTools {this, "officialTools", {}, "Official Reconstruction tools for taus after the modifications"};
54 
55  // Read and write keys
56  SG::ReadHandleKey<xAOD::TauJetContainer> m_tauContainer {this, "Key_tauContainer", "TauJets", "input tau key"};
57  SG::ReadHandleKey<xAOD::CaloClusterContainer> m_pi0ClusterInputContainer {this, "Key_pi0ClusterInputContainer", "TauPi0Clusters", "input pi0 cluster"};
58  SG::WriteHandleKey<xAOD::TauJetContainer> m_tauOutContainer {this, "Key_tauOutputContainer", "TauJets_AODReco", "output tau key"};
59  SG::WriteHandleKey<xAOD::ParticleContainer> m_pi0Container {this, "Key_pi0OutputContainer", "TauFinalPi0s_AODReco", "output tau final pi0 key"};
60  SG::WriteHandleKey<xAOD::PFOContainer> m_neutralPFOOutputContainer {this, "Key_neutralPFOOutputContainer", "TauNeutralPFOs_AODReco", "output tau neutral pfo key"};
61  SG::WriteHandleKey<xAOD::PFOContainer> m_chargedPFOOutputContainer {this, "Key_chargedPFOOutputContainer", "TauChargedPFOs_AODReco", "output tau charged pfo key"};
62  SG::WriteHandleKey<xAOD::PFOContainer> m_hadronicPFOOutputContainer{this, "Key_hadronicPFOOutputContainer", "TauHadronicPFOs_AODReco", "output tau hadronic pfo key"};
63  SG::WriteHandleKey<xAOD::TauTrackContainer> m_tauTrackOutputContainer {this, "Key_tauTrackOutputContainer", "TauTracks_AODReco", "output tau track key"};
64  SG::WriteHandleKey<xAOD::VertexContainer> m_vertexOutputContainer {this, "Key_vertexOutputContainer", "TauSecondaryVertices_AODReco", "output vertex container key"};
65 
66  // Helper
67  static bool isTauModified(const xAOD::TauJet* newtau) ;
68 };
69 
70 #endif // TAUREC_TAUAODRUNNERALG_H
TauAODRunnerAlg::m_neutralPFOOutputContainer
SG::WriteHandleKey< xAOD::PFOContainer > m_neutralPFOOutputContainer
Definition: TauAODRunnerAlg.h:60
TauAODRunnerAlg::m_chargedPFOOutputContainer
SG::WriteHandleKey< xAOD::PFOContainer > m_chargedPFOOutputContainer
Definition: TauAODRunnerAlg.h:61
TauAODRunnerAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: TauAODRunnerAlg.cxx:67
TauTrackAuxContainer.h
PFOContainer.h
TauTrackContainer.h
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
CaloClusterAuxContainer.h
TauJetAuxContainer.h
ParticleAuxContainer.h
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
TauAODRunnerAlg::m_modificationTools
ToolHandleArray< ITauToolBase > m_modificationTools
Definition: TauAODRunnerAlg.h:52
TauAODRunnerAlg::m_hadronicPFOOutputContainer
SG::WriteHandleKey< xAOD::PFOContainer > m_hadronicPFOOutputContainer
Definition: TauAODRunnerAlg.h:62
TauAODRunnerAlg::m_vertexOutputContainer
SG::WriteHandleKey< xAOD::VertexContainer > m_vertexOutputContainer
Definition: TauAODRunnerAlg.h:64
WriteHandle.h
Handle class for recording to StoreGate.
TauDefs.h
TauAODRunnerAlg::m_tauTrackOutputContainer
SG::WriteHandleKey< xAOD::TauTrackContainer > m_tauTrackOutputContainer
Definition: TauAODRunnerAlg.h:63
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
PFOAuxContainer.h
TauAODRunnerAlg::isTauModified
static bool isTauModified(const xAOD::TauJet *newtau)
Definition: TauAODRunnerAlg.cxx:232
ParticleContainer.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TauAODRunnerAlg::m_pi0ClusterInputContainer
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_pi0ClusterInputContainer
Definition: TauAODRunnerAlg.h:57
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
TauJetContainer.h
TauAODRunnerAlg::m_tauOutContainer
SG::WriteHandleKey< xAOD::TauJetContainer > m_tauOutContainer
Definition: TauAODRunnerAlg.h:58
AthReentrantAlgorithm.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
ITauToolBase.h
TauAODRunnerAlg::m_officialTools
ToolHandleArray< ITauToolBase > m_officialTools
Definition: TauAODRunnerAlg.h:53
TauAODRunnerAlg::m_tauContainer
SG::ReadHandleKey< xAOD::TauJetContainer > m_tauContainer
Definition: TauAODRunnerAlg.h:56
TauAODRunnerAlg::initialize
virtual StatusCode initialize() override
Definition: TauAODRunnerAlg.cxx:11
VertexContainer.h
TauAODRunnerAlg::m_pi0Container
SG::WriteHandleKey< xAOD::ParticleContainer > m_pi0Container
Definition: TauAODRunnerAlg.h:59
TauAODRunnerAlg
The implementation of the TauAODRunnerAlg, which is meant to run at AOD level.
Definition: TauAODRunnerAlg.h:44
JetContainer.h
CaloClusterContainer.h
JetAuxContainer.h
ReadHandle.h
Handle class for reading from StoreGate.
TauAODRunnerAlg::TauAODRunnerAlg
TauAODRunnerAlg(const std::string &name, ISvcLocator *)
Definition: TauAODRunnerAlg.cxx:7
VertexAuxContainer.h