ATLAS Offline Software
TauAODRunnerAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 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 
41  public:
42  TauAODRunnerAlg(const std::string &name, ISvcLocator *);
44  virtual StatusCode initialize() override;
45  virtual StatusCode execute(const EventContext& ctx) const override;
46 
47  private:
48  //Tool handle array
49  ToolHandleArray<ITauToolBase> m_modificationTools{this, "modificationTools", {}, "Tools for modifying the taus"};
50  ToolHandleArray<ITauToolBase> m_officialTools {this, "officialTools", {}, "Official Reconstruction tools for taus after the modifications"};
51  //Read and write keys
52  SG::ReadHandleKey<xAOD::TauJetContainer> m_tauContainer {this, "Key_tauContainer", "TauJets", "input tau key"};
53  SG::ReadHandleKey<xAOD::CaloClusterContainer> m_pi0ClusterInputContainer {this, "Key_pi0ClusterInputContainer", "TauPi0Clusters", "input pi0 cluster"};
54  SG::WriteHandleKey<xAOD::TauJetContainer> m_tauOutContainer {this, "Key_tauOutputContainer", "TauJets_AODReco", "output tau key"};
55  SG::WriteHandleKey<xAOD::ParticleContainer> m_pi0Container {this, "Key_pi0OutputContainer", "TauFinalPi0s_AODReco", "output tau final pi0 key"};
56  SG::WriteHandleKey<xAOD::PFOContainer> m_neutralPFOOutputContainer {this, "Key_neutralPFOOutputContainer", "TauNeutralPFOs_AODReco", "output tau neutral pfo key"};
57  SG::WriteHandleKey<xAOD::PFOContainer> m_chargedPFOOutputContainer {this, "Key_chargedPFOOutputContainer", "TauChargedPFOs_AODReco", "output tau charged pfo key"};
58  SG::WriteHandleKey<xAOD::PFOContainer> m_hadronicPFOOutputContainer{this, "Key_hadronicPFOOutputContainer", "TauHadronicPFOs_AODReco", "output tau hadronic pfo key"};
59  SG::WriteHandleKey<xAOD::TauTrackContainer> m_tauTrackOutputContainer {this, "Key_tauTrackOutputContainer", "TauTracks_AODReco", "output tau track key"};
60  SG::WriteHandleKey<xAOD::VertexContainer> m_vertexOutputContainer {this, "Key_vertexOutputContainer", "TauSecondaryVertices_AODReco", "output vertex container key"};
61 
62  //helper
63  static bool isTauModified(const xAOD::TauJet* newtau) ;
64 };
65 
66 #endif // TAUREC_TAUAODRUNNERALG_H
TauAODRunnerAlg::m_neutralPFOOutputContainer
SG::WriteHandleKey< xAOD::PFOContainer > m_neutralPFOOutputContainer
Definition: TauAODRunnerAlg.h:56
TauAODRunnerAlg::m_chargedPFOOutputContainer
SG::WriteHandleKey< xAOD::PFOContainer > m_chargedPFOOutputContainer
Definition: TauAODRunnerAlg.h:57
TauAODRunnerAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: TauAODRunnerAlg.cxx:51
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
TauAODRunnerAlg::~TauAODRunnerAlg
~TauAODRunnerAlg()
Definition: TauAODRunnerAlg.h:43
TauJetAuxContainer.h
ParticleAuxContainer.h
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
TauAODRunnerAlg::m_modificationTools
ToolHandleArray< ITauToolBase > m_modificationTools
Definition: TauAODRunnerAlg.h:49
TauAODRunnerAlg::m_hadronicPFOOutputContainer
SG::WriteHandleKey< xAOD::PFOContainer > m_hadronicPFOOutputContainer
Definition: TauAODRunnerAlg.h:58
TauAODRunnerAlg::m_vertexOutputContainer
SG::WriteHandleKey< xAOD::VertexContainer > m_vertexOutputContainer
Definition: TauAODRunnerAlg.h:60
WriteHandle.h
Handle class for recording to StoreGate.
TauDefs.h
TauAODRunnerAlg::m_tauTrackOutputContainer
SG::WriteHandleKey< xAOD::TauTrackContainer > m_tauTrackOutputContainer
Definition: TauAODRunnerAlg.h:59
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:175
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:53
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:54
AthReentrantAlgorithm.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ITauToolBase.h
TauAODRunnerAlg::m_officialTools
ToolHandleArray< ITauToolBase > m_officialTools
Definition: TauAODRunnerAlg.h:50
TauAODRunnerAlg::m_tauContainer
SG::ReadHandleKey< xAOD::TauJetContainer > m_tauContainer
Definition: TauAODRunnerAlg.h:52
TauAODRunnerAlg::initialize
virtual StatusCode initialize() override
Definition: TauAODRunnerAlg.cxx:11
VertexContainer.h
TauAODRunnerAlg::m_pi0Container
SG::WriteHandleKey< xAOD::ParticleContainer > m_pi0Container
Definition: TauAODRunnerAlg.h:55
TauAODRunnerAlg
The implementation of the TauAODRunnerAlg, which is meant to run at AOD level.
Definition: TauAODRunnerAlg.h:40
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