ATLAS Offline Software
TypedScoringTool.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #ifndef TRIGGERMATCHINGTOOL_TYPEDSCORINGTOOL_H
6 #define TRIGGERMATCHINGTOOL_TYPEDSCORINGTOOL_H
7 
8 #include "AsgTools/AsgTool.h"
10 #include "AsgTools/ToolHandle.h"
13 #include "xAODBase/ObjectType.h"
14 
15 namespace Trig
16 {
20  class TypedScoringTool : public asg::AsgTool, virtual public IMatchScoringTool
21  {
23  public:
24  TypedScoringTool(const std::string &name);
25  virtual ~TypedScoringTool() override = default;
26 
27  virtual StatusCode initialize() override;
28  virtual float score(
29  const xAOD::IParticle &online,
30  const xAOD::IParticle &offline) const override;
31  private:
32  ToolHandle<Trig::IMatchScoringTool> m_defaultTool{
33  this, "DefaultScoringTool", "", "The tool to use if the type-specifc one isn't set"};
34  ToolHandleArray<Trig::IMatchScoringTool> m_typedTools{
35  this, "TypedScoringTools", {}, "Tools for specific types (parallel with the ToolTypes property)"};
36  Gaudi::Property<std::vector<int>> m_toolTypes{
37  this, "ToolTypes", {}, "The xAOD types addressed by the tools"};
38  std::map<xAOD::Type::ObjectType, const Trig::IMatchScoringTool *> m_tools;
39 
41  }; //> end class TypedScoringTool
42 } //> end namespace Trig
43 
44 #endif //> !TRIGGERMATCHINGTOOL_TYPEDSCORINGTOOL_H
Trig::TypedScoringTool::m_toolTypes
Gaudi::Property< std::vector< int > > m_toolTypes
Definition: TypedScoringTool.h:36
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
PropertyWrapper.h
Trig::TypedScoringTool
Score particles of different types in different ways.
Definition: TypedScoringTool.h:21
Trig
The common trigger namespace for trigger analysis tools.
Definition: CaloTowerVecMon.h:44
ObjectType
ObjectType
Definition: BaseObject.h:11
Trig::TypedScoringTool::m_typedTools
ToolHandleArray< Trig::IMatchScoringTool > m_typedTools
Definition: TypedScoringTool.h:34
Trig::TypedScoringTool::score
virtual float score(const xAOD::IParticle &online, const xAOD::IParticle &offline) const override
Calculate the matching score for a pair of particles.
Definition: TypedScoringTool.cxx:33
offline
Trig::TypedScoringTool::getTool
const Trig::IMatchScoringTool * getTool(xAOD::Type::ObjectType type) const
Definition: TypedScoringTool.cxx:48
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
Trig::TypedScoringTool::m_tools
std::map< xAOD::Type::ObjectType, const Trig::IMatchScoringTool * > m_tools
Definition: TypedScoringTool.h:38
TileSynchronizeBch.online
online
Definition: TileSynchronizeBch.py:88
ToolHandleArray.h
IMatchScoringTool.h
ObjectType.h
Trig::IMatchScoringTool
Interface class for scoring pairs of particles for matching.
Definition: IMatchScoringTool.h:16
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trig::TypedScoringTool::m_defaultTool
ToolHandle< Trig::IMatchScoringTool > m_defaultTool
Definition: TypedScoringTool.h:32
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Trig::TypedScoringTool::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: TypedScoringTool.cxx:15
Trig::TypedScoringTool::~TypedScoringTool
virtual ~TypedScoringTool() override=default
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
ToolHandle.h
AsgTool.h
Trig::TypedScoringTool::TypedScoringTool
TypedScoringTool(const std::string &name)
Definition: TypedScoringTool.cxx:11