16 bool invertCut,
const std::string& isoDecSuffix) :
18 m_cutFunction (
std::make_unique<TF1>(cutFunction.c_str(), cutFunction.c_str())),
23 bool invertCut,
const std::string& isoDecSuffix) :
25 m_cutFunction (
std::make_unique<TF1>(cutFunction.c_str(), cutFunction.c_str())),
32 if (!
acc.isAvailable(
x)) {
38 return acc_noCloseBy(
x) > cutVal;
42 <<
" is not available. Expected when using primary AODs, post-p3793 derivations (only for *FixedRad or FixedCutPflow* for electrons), "
43 <<
" pre-p3517 derivations (only for FC*), or pre-p3830 derivations (for other electron WPs)");
44 if (!
m_isoDecSuffix.empty())
throw std::runtime_error (
"IsolationConditionCombined: IsolationSelectionTool property 'IsoDecSuffix' is set to " +
m_isoDecSuffix +
". Must run on derivation made with IsolationCloseByCorrection to create the isolation variables with this suffix, or remove 'IsoDecSuffix'. ");
49 return acc(
x) > cutVal;
55 return x.isolationValues.at(
type()) > cutVal;
#define ATH_MSG_WARNING(x)
IsolationCondition(const std::string &name, xAOD::Iso::IsolationType isoType, const std::string &isoDecSuffix="")
std::string m_isoDecSuffix
const FloatAccessor & accessor_noCloseBy(unsigned int n=0) const
const std::string & name() const
xAOD::Iso::IsolationType type(unsigned int n=0) const
const FloatAccessor & accessor(unsigned int n=0) const
static AuxTypeRegistry & instance()
Return the singleton registry instance.
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.
Select isolated Photons, Electrons and Muons.
SG::AuxElement::ConstAccessor< float > FloatAccessor
IsolationType
Overall enumeration for isolation types in xAOD files.
static const SG::AuxElement::Accessor< ElementLink< IParticleContainer > > acc("originalObjectLink")
Object used for setting/getting the dynamic decoration in question.