5#ifndef TAURECTOOLS_TAUSRUSDATALOADER_H
6#define TAURECTOOLS_TAUSRUSDATALOADER_H
26#include <unordered_map>
35 bool dEtaRaw (
const xAOD::TauJet& tau,
const xAOD::CaloVertexedTopoCluster& cluster,
float& out);
36 bool dPhiRaw (
const xAOD::TauJet& tau,
const xAOD::CaloVertexedTopoCluster& cluster,
float& out);
37 bool etaRaw (
const xAOD::TauJet& tau,
const xAOD::CaloVertexedTopoCluster& cluster,
float& out);
38 bool phiRaw (
const xAOD::TauJet& tau,
const xAOD::CaloVertexedTopoCluster& cluster,
float& out);
40 bool log_eRaw (
const xAOD::TauJet& tau,
const xAOD::CaloVertexedTopoCluster& cluster,
float& out);
85 StatusCode
initialize(
const std::vector<InputConfig>& inputs);
105 template <
class Func>
114 template <
class Func>
116 const std::unordered_map<std::string, Func>& funcMap,
121 std::vector<xAOD::CaloVertexedTopoCluster>& storage)
const;
128 inline static const std::unordered_map<std::string, ClusterFunc_t>
m_clusterFuncs = {
143 inline static const std::unordered_map<std::string, TrackFunc_t>
m_trackFuncs = {
163 inline static const std::unordered_map<std::string, VertexFunc_t>
m_vertexFuncs = {
170 inline static const std::unordered_map<std::string, ScalarFunc_t>
m_scalarFuncs = {
Evaluate cluster kinematics with a different vertex / signal state.
std::function< bool(const xAOD::TauJet &, float &)> ScalarFunc_t
size_t maxVertices() const
std::function< bool(const xAOD::TauJet &, const xAOD::Vertex &, float &)> VertexFunc_t
static const std::unordered_map< std::string, VertexFunc_t > m_vertexFuncs
StatusCode resolve(const InputConfig &input, const std::unordered_map< std::string, Func > &funcMap, Sequence< Func > &sequence) const
std::vector< const xAOD::TauTrack * > selectTracks(const xAOD::TauJet &tau) const
The tracks and vertices the input tensors are built from, in slot order, for decoding the per-slot he...
static const std::unordered_map< std::string, ScalarFunc_t > m_scalarFuncs
std::vector< const xAOD::CaloVertexedTopoCluster * > selectClusters(const xAOD::TauJet &tau, std::vector< xAOD::CaloVertexedTopoCluster > &storage) const
Sequence< VertexFunc_t > m_vertices
std::function< bool(const xAOD::TauJet &, const xAOD::TauTrack &, float &)> TrackFunc_t
AthInfer::InputDataMap loadInputs(const xAOD::TauJet &tau, const xAOD::VertexContainer &vertices) const
TausRUsDataLoader(const std::string &name)
static const std::unordered_map< std::string, TrackFunc_t > m_trackFuncs
static const std::unordered_map< std::string, ClusterFunc_t > m_clusterFuncs
std::function< bool(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &, float &)> ClusterFunc_t
Sequence< ClusterFunc_t > m_clusters
Sequence< ScalarFunc_t > m_scalars
Sequence< TrackFunc_t > m_tracks
std::vector< const xAOD::Vertex * > selectVertices(const xAOD::VertexContainer &vertices) const
Class mimicking the AthMessaging class from the offline software.
Evaluate cluster kinematics with a different vertex / signal state.
std::map< std::string, InferenceData > InputDataMap
bool FIRST_ENG_DENS(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool CENTER_MAG(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool CENTER_LAMBDA(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool EM_PROBABILITY(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool SECOND_R(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool SECOND_LAMBDA(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool phiJetSeed(const xAOD::TauJet &tau, float &out)
bool etaJetSeed(const xAOD::TauJet &tau, float &out)
bool mJetSeed(const xAOD::TauJet &tau, float &out)
bool ptJetSeed(const xAOD::TauJet &tau, float &out)
bool numberOfSCTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool trackEta(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool dEta(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
bool numberOfTRTHighThresholdHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfInnermostPixelLayerHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool z0sinthetaTJVA(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool numberOfTRTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool trackPhi(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool qOverP(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool d0_old(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool charge(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
TausRUs input variables that no other tau network uses.
bool dPhiRaw(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool dEtaRaw(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool log_etRaw(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool log_eRaw(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool phiRaw(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool etaRaw(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, float &out)
bool log_e(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool z0(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool log_pt(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool eProbabilityNN_trackParticle(const xAOD::TauJet &, const xAOD::TauTrack &track, float &out)
bool x(const xAOD::TauJet &, const xAOD::Vertex &vertex, float &out)
bool z(const xAOD::TauJet &, const xAOD::Vertex &vertex, float &out)
bool sumPt2(const xAOD::TauJet &, const xAOD::Vertex &vertex, float &out)
bool y(const xAOD::TauJet &, const xAOD::Vertex &vertex, float &out)
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.
TauTrack_v1 TauTrack
Definition of the current version.
TauJet_v3 TauJet
Definition of the current "tau version".
One input node, its variables resolved to their functions.
std::vector< float > scales
std::vector< Func > funcs
std::vector< float > offsets
float offset
value is (raw + offset) * scale