ATLAS Offline Software
PhysicsAnalysis
JetTagging
FlavorTagDiscriminants
FlavorTagDiscriminants
NNSharingSvc.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef NN_SHARING_SVC_H
6
#define NN_SHARING_SVC_H
7
8
#include "
FlavorTagDiscriminants/INNSharingSvc.h
"
9
#include "
AsgServices/AsgService.h
"
10
11
#include "
FlavorTagDiscriminants/GNNOptions.h
"
12
#include "
FlavorTagDiscriminants/GNN.h
"
13
14
namespace
FlavorTagDiscriminants
15
{
16
17
namespace
detail
{
18
struct
NNKey
{
19
std::string
path
;
20
FlavorTagDiscriminants::GNNOptions
opts
;
21
bool
operator==
(
const
NNKey
&)
const
;
22
std::size_t
hash
()
const
;
23
};
24
struct
NNHasher
{
25
std::size_t
operator()
(
const
NNKey
& o)
const
{
26
return
o.
hash
();
27
}
28
};
29
}
30
31
class
NNSharingSvc
:
public
asg::AsgService
,
public
INNSharingSvc
32
{
33
public
:
34
NNSharingSvc
(
const
std::string&
name
, ISvcLocator*
svc
);
35
virtual
std::shared_ptr<const GNN>
get
(
36
const
std::string& nn_name,
37
const
GNNOptions
&
opts
)
override
;
38
private
:
39
using
val_t
= std::shared_ptr<const GNN>;
40
std::unordered_map<detail::NNKey, val_t, detail::NNHasher>
m_gnns
;
41
std::unordered_map<std::string, val_t>
m_base_gnns
;
42
};
43
44
}
45
46
#endif
FlavorTagDiscriminants::detail::NNKey::hash
std::size_t hash() const
Definition:
NNSharingSvc.cxx:12
FlavorTagDiscriminants::detail::NNHasher
Definition:
NNSharingSvc.h:24
FlavorTagDiscriminants::detail::NNKey::opts
FlavorTagDiscriminants::GNNOptions opts
Definition:
NNSharingSvc.h:20
AsgService.h
FlavorTagDiscriminants
This file contains "getter" functions used for accessing tagger inputs from the EDM.
Definition:
AssociationEnums.h:11
FlavorTagDiscriminants::GNNOptions
Definition:
GNNOptions.h:16
detail
Definition:
extract_histogram_tag.cxx:14
FlavorTagDiscriminants::NNSharingSvc::val_t
std::shared_ptr< const GNN > val_t
Definition:
NNSharingSvc.h:39
FlavorTagDiscriminants::detail::NNKey
Definition:
NNSharingSvc.h:18
GNNOptions.h
FlavorTagDiscriminants::detail::NNKey::operator==
bool operator==(const NNKey &) const
Definition:
NNSharingSvc.cxx:17
FlavorTagDiscriminants::NNSharingSvc::NNSharingSvc
NNSharingSvc(const std::string &name, ISvcLocator *svc)
Definition:
NNSharingSvc.cxx:22
FlavorTagDiscriminants::NNSharingSvc::get
virtual std::shared_ptr< const GNN > get(const std::string &nn_name, const GNNOptions &opts) override
Definition:
NNSharingSvc.cxx:27
asg::AsgService
Base class for the dual-use service implementation classes.
Definition:
AsgService.h:43
FlavorTagDiscriminants::INNSharingSvc
Definition:
INNSharingSvc.h:17
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition:
AthROOTErrorHandlerSvc.cxx:10
FlavorTagDiscriminants::NNSharingSvc
Definition:
NNSharingSvc.h:32
FlavorTagDiscriminants::detail::NNHasher::operator()
std::size_t operator()(const NNKey &o) const
Definition:
NNSharingSvc.h:25
name
std::string name
Definition:
Control/AthContainers/Root/debug.cxx:195
GNN.h
FlavorTagDiscriminants::NNSharingSvc::m_gnns
std::unordered_map< detail::NNKey, val_t, detail::NNHasher > m_gnns
Definition:
NNSharingSvc.h:40
INNSharingSvc.h
FlavorTagDiscriminants::detail::NNKey::path
std::string path
Definition:
NNSharingSvc.h:19
FlavorTagDiscriminants::NNSharingSvc::m_base_gnns
std::unordered_map< std::string, val_t > m_base_gnns
Definition:
NNSharingSvc.h:41
athena.opts
opts
Definition:
athena.py:86
Generated on Thu Jul 4 2024 21:23:39 for ATLAS Offline Software by
1.8.18