ATLAS Offline Software
Loading...
Searching...
No Matches
IHISubtractorTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5// IHISubtractorTool.h
6
7#ifndef HIJETREC_IHISUBTRACTORTOOL_H
8#define HIJETREC_IHISUBTRACTORTOOL_H
9
10#include "AsgTools/IAsgTool.h"
11#include "AsgTools/ToolHandle.h"
12#include "xAODBase/IParticle.h"
15
16
27
30
31class IHISubtractorTool : virtual public asg::IAsgTool {
33
34 public:
35
36 virtual ~IHISubtractorTool() { };
37
40
41 virtual void subtract(xAOD::IParticle::FourMom_t&, const xAOD::IParticle*, const xAOD::HIEventShapeContainer*, const HIEventShapeIndex*, const ToolHandle<IHIUEModulatorTool>&, const xAOD::HIEventShape* shape ) const = 0;
42 virtual void subtractWithMoments(xAOD::CaloCluster*, const xAOD::HIEventShapeContainer*, const HIEventShapeIndex* index, const ToolHandle<IHIUEModulatorTool>&, const xAOD::HIEventShape* shape ) const = 0;
43
50 virtual float minEnergyForMoments() const = 0;
51 virtual bool usesCells() const = 0;
52
53 virtual const xAOD::HIEventShapeContainer* getShape() const = 0;
54 virtual const HIEventShapeIndex* getIndex() const = 0;
55 virtual const IHIUEModulatorTool* getModulator() const = 0;
56 virtual void setShape(const xAOD::HIEventShapeContainer*) = 0;
57 virtual void setIndex(const HIEventShapeIndex*) = 0;
58 virtual void setModulator(const IHIUEModulatorTool*) = 0;
59
60};
61
62#endif
#define ASG_TOOL_INTERFACE(CLASSNAME)
Abstract interface for tools that implement constituent based subtraction.
virtual void updateUsingCluster(xAOD::HIEventShapeContainer *shape, const HIEventShapeIndex *index, const xAOD::CaloCluster *cl) const =0
Method to update the shape based on a given cluster two sets of indices are passed by reference and u...
virtual void subtractWithMoments(xAOD::CaloCluster *, const xAOD::HIEventShapeContainer *, const HIEventShapeIndex *index, const ToolHandle< IHIUEModulatorTool > &, const xAOD::HIEventShape *shape) const =0
virtual const HIEventShapeIndex * getIndex() const =0
virtual const xAOD::HIEventShapeContainer * getShape() const =0
virtual void setShape(const xAOD::HIEventShapeContainer *)=0
virtual void setIndex(const HIEventShapeIndex *)=0
virtual void setModulator(const IHIUEModulatorTool *)=0
virtual const IHIUEModulatorTool * getModulator() const =0
virtual bool usesCells() const =0
virtual float minEnergyForMoments() const =0
virtual void subtract(xAOD::IParticle::FourMom_t &, const xAOD::IParticle *, const xAOD::HIEventShapeContainer *, const HIEventShapeIndex *, const ToolHandle< IHIUEModulatorTool > &, const xAOD::HIEventShape *shape) const =0
Abstract method where particle itself is not modified IParticle::FourMom_t containing kinematics afte...
Abstract interface for tools that can provide UE modulation given an HIEventShape.
Base class for the dual-use tool interface classes.
Definition IAsgTool.h:41
Class providing the definition of the 4-vector interface.
TLorentzVector FourMom_t
Definition of the 4-momentum type.
Definition index.py:1
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
HIEventShapeContainer_v2 HIEventShapeContainer
Define the latest version of the container.
HIEventShape_v2 HIEventShape
Definition of the latest event info version.