ATLAS Offline Software
IDiTauSelectionTool.h
Go to the documentation of this file.
1 // Dear emacs, this is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef TAUANALYSISTOOLS_IDITAUONSELECTIONTOOL_H
8 #define TAUANALYSISTOOLS_IDITAUONSELECTIONTOOL_H
9 
10 /*
11  author: Dirk Duschinger
12  mail: dirk.duschinger@cern.ch
13  contact email: antonio.de.maria@cern.ch
14  documentation in: https://gitlab.cern.ch/atlas/athena/-/blob/master/PhysicsAnalysis/TauID/TauAnalysisTools/doc/README-DiTauSelectionTool.rst
15 */
16 
17 // Framework include(s):
18 #include "AsgTools/IAsgTool.h"
19 #include "PATCore/AcceptInfo.h"
20 #include "PATCore/AcceptData.h"
21 
22 // EDM include(s):
23 #include "xAODTau/DiTauJet.h"
24 
25 // ROOT include(s):
26 #include "TFile.h"
27 
28 namespace TauAnalysisTools
29 {
30 
33 class IDiTauSelectionTool : public virtual asg::IAsgTool
34 {
35 
38 
39 public:
41  virtual StatusCode initialize() = 0;
42 
44  virtual const asg::AcceptInfo& getAcceptInfo() const = 0;
45 
47  virtual asg::AcceptData accept( const xAOD::IParticle* p ) const = 0;
48 
50  virtual asg::AcceptData accept( const xAOD::DiTauJet& tau ) const = 0;
51 
53  virtual void setOutFile( TFile* fOutFile ) = 0;
54 
56  virtual void writeControlHistograms() = 0;
57 }; // class IDiTauSelectionTool
58 
59 } // namespace TauAnalysisTools
60 
61 #endif // TAUANALYSISTOOLS_IDITAUONSELECTIONTOOL_H
TauAnalysisTools
Definition: TruthCollectionMakerTau.h:16
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
TauAnalysisTools::IDiTauSelectionTool
Interface for tau selector tool.
Definition: IDiTauSelectionTool.h:34
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition: IAsgTool.h:41
TauAnalysisTools::IDiTauSelectionTool::accept
virtual asg::AcceptData accept(const xAOD::IParticle *p) const =0
Get the decision using a generic IParticle pointer.
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
asg::AcceptInfo
Definition: AcceptInfo.h:28
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TauAnalysisTools::IDiTauSelectionTool::getAcceptInfo
virtual const asg::AcceptInfo & getAcceptInfo() const =0
Get an object describing the "selection steps" of the tool.
TauAnalysisTools::IDiTauSelectionTool::setOutFile
virtual void setOutFile(TFile *fOutFile)=0
Set output file for histograms.
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
IAsgTool.h
AcceptData.h
DiTauJet.h
AcceptInfo.h
xAOD::DiTauJet_v1
Definition: DiTauJet_v1.h:31
asg::AcceptData
Definition: AcceptData.h:30
TauAnalysisTools::IDiTauSelectionTool::writeControlHistograms
virtual void writeControlHistograms()=0
Write control histograms to output file.
TauAnalysisTools::IDiTauSelectionTool::accept
virtual asg::AcceptData accept(const xAOD::DiTauJet &tau) const =0
Get the decision for a specific TauJet object.
TauAnalysisTools::IDiTauSelectionTool::initialize
virtual StatusCode initialize()=0
Declare the interface that the class provides.