7#ifndef XAODBASE_IPARTICLE_H
8#define XAODBASE_IPARTICLE_H
11#include <TLorentzVector.h>
56 virtual double pt()
const = 0;
58 virtual double eta()
const = 0;
60 virtual double phi()
const = 0;
62 virtual double m()
const = 0;
64 virtual double e()
const = 0;
78 virtual Type::ObjectType
type()
const = 0;
99 const std::string& clsname =
"" ) {
119 const std::string& clsname =
"" )
const {
136 const std::string& clsname =
"" )
const {
153 const std::string& clsname =
"" )
const {
173#ifndef XAOD_STANDALONE
Base class for elements of a container that can have aux data.
#define XAOD_AUXDATA_DEPRECATED
Helper class to provide type-safe access to aux data.
Provide an interface for finding inheritance information at run time.
#define SG_BASE(D, B)
Declare that class D derives from class B.
Helper class to provide type-safe access to aux data.
bool isAvailableWritable(ELT &e) const
Test to see if this variable exists in the store and is writable.
Base class for elements of a container that can have aux data.
const SG::IConstAuxStore * getConstStore() const
Return the current store, as a const interface.
SG::Accessor< T, ALLOC > Accessor
SG::IAuxStore * getStore() const
Return the current store, as a non-const interface.
Helper class to provide constant type-safe access to aux data.
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
Class providing the definition of the 4-vector interface.
IParticle(const IParticle &)=default
XAOD_AUXDATA_DEPRECATED const T & auxdata(const std::string &name, const std::string &clsname="") const
Fetch an aux data variable, as a const reference.
IParticle & operator=(const IParticle &)=default
virtual double eta() const =0
The pseudorapidity ( ) of the particle.
virtual FourMom_t p4() const =0
The full 4-momentum of the particle.
virtual double pt() const =0
The transverse momentum ( ) of the particle.
virtual Type::ObjectType type() const =0
The type of the object as a simple enumeration.
IParticle & operator=(IParticle &&)=delete
virtual double m() const =0
The invariant mass of the particle.
virtual double rapidity() const =0
The true rapidity (y) of the particle.
TLorentzVector FourMom_t
Definition of the 4-momentum type.
XAOD_AUXDATA_DEPRECATED bool isAvailable(const std::string &name, const std::string &clsname="") const
Check if a user property is available for reading or not.
IParticle(IParticle &&)=delete
virtual ~IParticle()=default
Virtual destructor, to make vtable happy...
XAOD_AUXDATA_DEPRECATED bool isAvailableWritable(const std::string &name, const std::string &clsname="") const
Check if a user property is available for writing or not.
virtual double phi() const =0
The azimuthal angle ( ) of the particle.
XAOD_AUXDATA_DEPRECATED T & auxdata(const std::string &name, const std::string &clsname="")
Fetch an aux data variable, as a non-const reference.
virtual double e() const =0
The total energy of the particle.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.