ATLAS Offline Software
Loading...
Searching...
No Matches
ITauSelectionTool.h
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2
3/*
4 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef TAUANALYSISTOOLS_ITAUONSELECTIONTOOL_H
8#define TAUANALYSISTOOLS_ITAUONSELECTIONTOOL_H
9
10/*
11 author: Dirk Duschinger
12 mail: dirk.duschinger@cern.ch
13 documentation in: https://gitlab.cern.ch/atlas/athena/-/blob/main/PhysicsAnalysis/TauID/TauAnalysisTools/doc/README-TauSelectionTool.rst
14*/
15
16// Framework include(s):
17#include "AsgTools/IAsgTool.h"
18#include "PATCore/AcceptInfo.h"
19#include "PATCore/AcceptData.h"
20
21// EDM include(s):
22#include "xAODTau/TauJet.h"
23
24// ROOT include(s):
25#include "TFile.h"
26
27namespace TauAnalysisTools
28{
29
32class ITauSelectionTool : public virtual asg::IAsgTool
33{
34
37
38public:
40 virtual StatusCode initialize() = 0;
41
43 virtual const asg::AcceptInfo& getAcceptInfo() const = 0;
44
46 virtual asg::AcceptData accept( const xAOD::IParticle* p ) const = 0;
47
49 virtual asg::AcceptData accept( const xAOD::TauJet& tau ) const = 0;
50
52 virtual void setOutFile( TFile* fOutFile ) = 0;
53
55 virtual void writeControlHistograms() = 0;
56}; // class ITauSelectionTool
57
58} // namespace TauAnalysisTools
59
60#endif // TAUANALYSISTOOLS_ITAUONSELECTIONTOOL_H
#define ASG_TOOL_INTERFACE(CLASSNAME)
Interface for tau selector tool.
virtual void writeControlHistograms()=0
Write control histograms to output file.
virtual const asg::AcceptInfo & getAcceptInfo() const =0
Get an object describing the "selection steps" of the tool.
virtual void setOutFile(TFile *fOutFile)=0
Set output file for histograms.
virtual asg::AcceptData accept(const xAOD::TauJet &tau) const =0
Get the decision for a specific TauJet object.
virtual StatusCode initialize()=0
Declare the interface that the class provides.
virtual asg::AcceptData accept(const xAOD::IParticle *p) const =0
Get the decision using a generic IParticle pointer.
Base class for the dual-use tool interface classes.
Definition IAsgTool.h:41
Class providing the definition of the 4-vector interface.
TauJet_v3 TauJet
Definition of the current "tau version".