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 std::tuple<Inputs, std::vector<const xAOD::IParticle*>> getData(
31 const xAOD::IParticle& jet ) const override ;
32 const FTagDataDependencyNames& getDependencies() const override;
33 const std::set<std::string>& getUsedRemap() const override;
34 const std::string& getName() const override;
35 const ConstituentsType& getType() const override;
36 protected:
37 // typedefs
39 typedef std::pair<std::string, double> NamedVar;
40 typedef std::pair<std::string, std::vector<double> > NamedSeq;
41 // FlowElement typedefs
42 typedef std::vector<const xAOD::FlowElement*> FlowElements;
43 typedef std::function<double(const xAOD::FlowElement*,
45
46 // getter function
47 typedef std::function<NamedSeq(const Jet&, const FlowElements&)> SeqFromFlowElements;
48
49 // usings for IParticle getter
52 using PartLinks = std::vector<ElementLink<IPC>>;
53 using FEV = std::vector<const xAOD::FlowElement*>;
54
56
57 std::vector<const xAOD::FlowElement*> getFlowElementsFromJet(const xAOD::IParticle& jet) const;
58
61 std::function<FEV(const Jet&)> m_associator;
62 };
63}
64
65#endif
std::pair< std::string, double > NamedVar
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::tuple< Inputs, std::vector< const xAOD::IParticle * > > getData(const xAOD::IParticle &jet) const override
std::vector< const xAOD::FlowElement * > FlowElements
FlowElementSortVar flowElementSortVar(ConstituentsSortOrder)
std::vector< ElementLink< IPC > > PartLinks
std::function< NamedSeq(const Jet &, const FlowElements &)> SeqFromFlowElements
Base class for elements of a container that can have aux data.
Definition AuxElement.h:483
Class providing the definition of the 4-vector interface.
This file contains "getter" functions used for accessing tagger inputs from the EDM.
FlowElement_v1 FlowElement
Definition of the current "pfo version".
Definition FlowElement.h:16
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.