ATLAS Offline Software
Loading...
Searching...
No Matches
FlowElementsLoader.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
4 This is a subclass of IConstituentsLoader. It is used to load the FlowElements from the jet
5 and extract their features for the NN evaluation.
6*/
7
8#ifndef FLOW_ELEMENTS_LOADER_H
9#define FLOW_ELEMENTS_LOADER_H
10
11// local includes
14
15// EDM includes
16#include "xAODJet/JetFwd.h"
18
19// STL includes
20#include <string>
21#include <vector>
22#include <functional>
23
24namespace FlavorTagInference {
25
26 // Subclass for IParticles loader inherited from abstract IConstituentsLoader class
28 public:
29 FlowElementsLoader(const ConstituentsInputConfig& cfg, const FTagOptions& options);
30 Inputs getData(const xAOD::IParticle& jet) const override;
31 const FTagDataDependencyNames& getDependencies() const override;
32 const std::set<std::string>& getUsedRemap() const override;
33 const std::string& getName() const override;
34 const ConstituentsType& getType() const override;
35 protected:
36 // typedefs
38 typedef std::pair<std::string, double> NamedVar;
39 typedef std::pair<std::string, std::vector<double> > NamedSeq;
40 // FlowElement typedefs
41 typedef std::vector<const xAOD::FlowElement*> FlowElements;
42 typedef std::function<double(const xAOD::FlowElement*,
44
45 // getter function
46 typedef std::function<NamedSeq(const Jet&, const FlowElements&)> SeqFromFlowElements;
47
48 // usings for IParticle getter
51 using PartLinks = std::vector<ElementLink<IPC>>;
52 using FEV = std::vector<const xAOD::FlowElement*>;
53
55
56 std::vector<const xAOD::FlowElement*> getFlowElementsFromJet(const xAOD::IParticle& jet) const;
57
60 std::function<FEV(const Jet&)> m_associator;
61 };
62}
63
64#endif
std::pair< std::string, double > NamedVar
Inputs getData(const xAOD::IParticle &jet) const override
const ConstituentsType & getType() const override
std::function< FEV(const Jet &)> m_associator
std::pair< std::string, std::vector< double > > NamedSeq
const FTagDataDependencyNames & getDependencies() const override
FlowElementsLoader(const ConstituentsInputConfig &cfg, const FTagOptions &options)
std::function< double(const xAOD::FlowElement *, const Jet &)> FlowElementSortVar
getter_utils::SeqGetter< xAOD::FlowElement > m_seqGetter
const std::set< std::string > & getUsedRemap() const override
const std::string & getName() const override
std::vector< const xAOD::FlowElement * > getFlowElementsFromJet(const xAOD::IParticle &jet) const
std::vector< const xAOD::FlowElement * > FEV
std::vector< const xAOD::FlowElement * > FlowElements
FlowElementSortVar flowElementSortVar(ConstituentsSortOrder)
std::vector< ElementLink< IPC > > PartLinks
std::function< NamedSeq(const Jet &, const FlowElements &)> SeqFromFlowElements
Class providing the definition of the 4-vector interface.
This file contains "getter" functions used for accessing tagger inputs from the EDM.
std::pair< std::vector< float >, std::vector< int64_t > > Inputs
AuxElement(SG::AuxVectorData *container, size_t index)
Base class for elements of a container that can have aux data.
FlowElement_v1 FlowElement
Definition of the current "pfo version".
Definition FlowElement.h:16
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.