ATLAS Offline Software
IObservableTool.h
Go to the documentation of this file.
1 // Dear emacs, this is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // $Id: IObservableTool.h 782989 2016-11-08 14:27:55Z will $
8 #ifndef ASGANALYSISINTERFACES_IOBSERVABLETOOL_H
9 #define ASGANALYSISINTERFACES_IOBSERVABLETOOL_H
10 
11 // System include(s):
12 
13 // Framework include(s):
14 #include "AsgTools/IAsgTool.h"
15 
16 // Forward declaration
17 namespace xAOD{
18  class IParticle;
19 }
20 
21 
26 
27 
31 
32 class IObservableTool : public virtual asg::IAsgTool {
33 
36 
37  public:
38 
40  virtual ~IObservableTool(){};
41 
43  virtual double
44  evaluate( const xAOD::IParticle* ) const = 0;
45 
46  }; // class IObservableTool
47 
48 
49 #endif // PATINTERFACES_IOBSERVABLETOOL_H
IObservableTool
Interface for tools that want to calculate a quantity from an xAOD::IParticle.
Definition: IObservableTool.h:32
IObservableTool::evaluate
virtual double evaluate(const xAOD::IParticle *) const =0
returns: the value that was calculated from the xAOD::IParticle
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition: IAsgTool.h:41
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
IObservableTool::~IObservableTool
virtual ~IObservableTool()
Declare the interface that this class provides.
Definition: IObservableTool.h:40
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
IAsgTool.h
IParticle
Definition: Event/EventKernel/EventKernel/IParticle.h:43