ATLAS Offline Software
ITauToolBase.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 TAURECTOOLS_ITAUTOOLBASE_H
6 #define TAURECTOOLS_ITAUTOOLBASE_H
7 
8 #include "AsgTools/IAsgTool.h"
9 #include "xAODTau/TauJet.h"
12 #include "xAODPFlow/PFOContainer.h"
15 #include <boost/dynamic_bitset.hpp>
16 
17 #ifndef XAOD_ANALYSIS
19 #endif
20 
29 class ITauToolBase : virtual public asg::IAsgTool
30 {
31  public:
32 
34 
35  virtual ~ITauToolBase() {}
36 
37  //-----------------------------------------------------------------
39  //-----------------------------------------------------------------
40  virtual StatusCode initialize() = 0;
41 
42  //-----------------------------------------------------------------
44  //-----------------------------------------------------------------
45  virtual StatusCode eventInitialize() = 0;
46 
47  //-----------------------------------------------------------------
49  //-----------------------------------------------------------------
50  virtual StatusCode execute(xAOD::TauJet& pTau) const = 0;
52  const xAOD::VertexContainer* vertexContainer = nullptr) const = 0;
53  virtual StatusCode executeTrackFinder(xAOD::TauJet& pTau, xAOD::TauTrackContainer& tauTrackContainer) const = 0;
54  virtual StatusCode executeTrackClassifier(xAOD::TauJet& pTau, xAOD::TauTrackContainer& tauTrackContainer) const = 0;
57  xAOD::PFOContainer& hadronicPFOContainer,
58  const xAOD::CaloClusterContainer& pCaloClusterContainer ) const = 0;
59  virtual StatusCode executeVertexVariables(xAOD::TauJet& pTau, xAOD::VertexContainer& vertexContainer ) const = 0;
60  virtual StatusCode executePi0ClusterScaler(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer, xAOD::PFOContainer& chargedPFOContainer ) const = 0;
61  virtual StatusCode executePi0nPFO(xAOD::TauJet& pTau, xAOD::PFOContainer& neutralPFOContainer) const = 0;
62  virtual StatusCode executePanTau(xAOD::TauJet& pTau, xAOD::ParticleContainer& particleContainer, xAOD::PFOContainer& neutralPFOContainer) const = 0;
63 
64 #ifdef XAOD_ANALYSIS
65  // non-const version is needed in THOR
66  virtual StatusCode executeDev(xAOD::TauJet& pTau) = 0;
67 #else
68  // CaloCellContainer not available in AnalysisBase
69  virtual StatusCode executePi0CreateROI(xAOD::TauJet& pTau, CaloConstCellContainer& caloCellContainer, boost::dynamic_bitset<>& map ) const = 0;
70 #endif
71 
72  //-----------------------------------------------------------------
74  //-----------------------------------------------------------------
75  virtual StatusCode eventFinalize() = 0;
76 
77  //-----------------------------------------------------------------
79  //-----------------------------------------------------------------
80  virtual StatusCode finalize() = 0;
81 
82  //make pure
83  virtual StatusCode readConfig() = 0;
84 
85 };
86 
87 #endif // TAURECTOOLS_ITAUTOOLBASE_H
ITauToolBase::readConfig
virtual StatusCode readConfig()=0
ITauToolBase::executeTrackClassifier
virtual StatusCode executeTrackClassifier(xAOD::TauJet &pTau, xAOD::TauTrackContainer &tauTrackContainer) const =0
ITauToolBase::executePi0CreateROI
virtual StatusCode executePi0CreateROI(xAOD::TauJet &pTau, CaloConstCellContainer &caloCellContainer, boost::dynamic_bitset<> &map) const =0
ITauToolBase::executeVertexFinder
virtual StatusCode executeVertexFinder(xAOD::TauJet &pTau, const xAOD::VertexContainer *vertexContainer=nullptr) const =0
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition: IAsgTool.h:41
ITauToolBase::execute
virtual StatusCode execute(xAOD::TauJet &pTau) const =0
Execute - called for each tau candidate.
PFOContainer.h
ITauToolBase::finalize
virtual StatusCode finalize()=0
Finalizer.
ParticleContainer.h
ITauToolBase::eventInitialize
virtual StatusCode eventInitialize()=0
Event initializer - called at the beginning of each event.
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
IAsgTool.h
ITauToolBase::executePanTau
virtual StatusCode executePanTau(xAOD::TauJet &pTau, xAOD::ParticleContainer &particleContainer, xAOD::PFOContainer &neutralPFOContainer) const =0
ITauToolBase::eventFinalize
virtual StatusCode eventFinalize()=0
Event finalizer - called at the end of each event.
xAOD::PFOContainer
PFOContainer_v1 PFOContainer
Definition of the current "pfo container version".
Definition: PFOContainer.h:17
ITauToolBase::executePi0ClusterCreator
virtual StatusCode executePi0ClusterCreator(xAOD::TauJet &pTau, xAOD::PFOContainer &neutralPFOContainer, xAOD::PFOContainer &hadronicPFOContainer, const xAOD::CaloClusterContainer &pCaloClusterContainer) const =0
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
ITauToolBase::executeVertexVariables
virtual StatusCode executeVertexVariables(xAOD::TauJet &pTau, xAOD::VertexContainer &vertexContainer) const =0
ITauToolBase::executeShotFinder
virtual StatusCode executeShotFinder(xAOD::TauJet &pTau, xAOD::CaloClusterContainer &shotClusterContainer, xAOD::PFOContainer &PFOContainer) const =0
ITauToolBase
The base class for all tau tools.
Definition: ITauToolBase.h:30
ITauToolBase::executeTrackFinder
virtual StatusCode executeTrackFinder(xAOD::TauJet &pTau, xAOD::TauTrackContainer &tauTrackContainer) const =0
VertexContainer.h
CaloConstCellContainer
CaloCellContainer that can accept const cell pointers.
Definition: CaloConstCellContainer.h:45
ITauToolBase::initialize
virtual StatusCode initialize()=0
Tool initializer.
TauJet.h
ITauToolBase::executePi0nPFO
virtual StatusCode executePi0nPFO(xAOD::TauJet &pTau, xAOD::PFOContainer &neutralPFOContainer) const =0
CaloClusterContainer.h
CaloConstCellContainer.h
CaloCellContainer that can accept const cell pointers.
ITauToolBase::executePi0ClusterScaler
virtual StatusCode executePi0ClusterScaler(xAOD::TauJet &pTau, xAOD::PFOContainer &neutralPFOContainer, xAOD::PFOContainer &chargedPFOContainer) const =0
TrackParticleContainer.h