Common base class tool for overlap tools. More...
#include <BaseOverlapTool.h>
Public Member Functions | |
BaseOverlapTool (const std::string &name) | |
Create proper constructor for Athena. | |
StatusCode | initialize () override final |
Protected Member Functions | |
virtual StatusCode | initializeDerived () |
virtual StatusCode | handleOverlap (const xAOD::IParticle *testParticle, const xAOD::IParticle *refParticle) const |
Common helper method to handle an overlap result. | |
Protected Attributes | |
Common configurable properties | |
std::string | m_inputLabel |
Input object decoration which specifies which objects to look at. | |
std::string | m_outputLabel |
Output object decoration which specifies overlapping objects. | |
bool | m_outputPassValue |
bool | m_linkOverlapObjects |
Flag to toggle overlap object links. | |
Utilities | |
std::unique_ptr < OverlapDecorationHelper > | m_decHelper |
Helper for handling input/output decorations. | |
std::unique_ptr < OverlapLinkHelper > | m_objLinkHelper |
Helper for linking overlap objects. |
Common base class tool for overlap tools.
This class was introduced to reduce the code duplication among the overlap tools. Most implementations use some common functionality such as input/output decorations, object linking, and output value logic control. This class then holds the code to handle those things, or holds the helper objects which implement the logic. It also defines the properties associated with these shared functionalities.
ORUtils::BaseOverlapTool::BaseOverlapTool | ( | const std::string & | name | ) |
Create proper constructor for Athena.
Standalone constructor
StatusCode ORUtils::BaseOverlapTool::handleOverlap | ( | const xAOD::IParticle * | testParticle, | |
const xAOD::IParticle * | refParticle | |||
) | const [protected, virtual] |
Common helper method to handle an overlap result.
This method for now applies the user-defined object priorities set as the input decoration, so if the testParticle is higher prio than the refParticle, nothing happens. Otherwise, this method prints a debug message, decorates the testParticle as overlap, and optionally sets the object element link.
StatusCode ORUtils::BaseOverlapTool::initialize | ( | void | ) | [override, virtual] |
Initialize base class functionality. Concrete tool specific initialization can be implemented by overriding the initializeDerived() method.
Reimplemented from asg::AsgTool.
virtual StatusCode ORUtils::BaseOverlapTool::initializeDerived | ( | ) | [inline, protected, virtual] |
Initialization for derived tools. Default implementation does nothing.
Reimplemented in ORUtils::AltMuJetOverlapTool, ORUtils::DeltaROverlapTool, ORUtils::EleEleOverlapTool, ORUtils::EleJetOverlapTool, ORUtils::EleMuSharedTrkOverlapTool, ORUtils::MuJetOverlapTool, ORUtils::ObjLinkOverlapTool, ORUtils::TauAntiTauJetOverlapTool, ORUtils::TauJetOverlapTool, ORUtils::TauLooseEleOverlapTool, and ORUtils::TauLooseMuOverlapTool.
bool ORUtils::BaseOverlapTool::m_outputPassValue [protected] |
Toggle the output flag logic. If true, then non-overlapping objects will be assigned "true".