ATLAS Offline Software
Loading...
Searching...
No Matches
IParticlesLoader.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
4 This is a subclass of IConstituentsLoader. It is used to load the general IParticles from the vertex
5 and extract their features for the NN evaluation.
6*/
7
8#ifndef INDET_IPARTICLES_LOADER_H
9#define INDET_IPARTICLES_LOADER_H
10
11// local includes
14
15// EDM includes
17
18// STL includes
19#include <string>
20#include <vector>
21#include <functional>
22#include <exception>
23#include <type_traits>
24#include <regex>
25
27
28 // Subclass for IParticles loader inherited from abstract IConstituentsLoader class
30 public:
32 std::tuple<std::string, FlavorTagInference::Inputs, std::vector<const xAOD::IParticle*>> getData(
33 const xAOD::Vertex& vertex) const override ;
34 std::string getName() const override;
35 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 // iparticle typedefs
42 typedef std::vector<const xAOD::IParticle*> IParticles;
43 typedef std::function<double(const xAOD::IParticle*,
45
46 // getter function
47 typedef std::function<NamedSeq(const Vertex&, const IParticles&)> SeqFromIParticles;
48
49 // usings for IParticle getter
52 using PartLinks = std::vector<ElementLink<IPC>>;
53 using IPV = std::vector<const xAOD::IParticle*>;
54
56
57 std::vector<const xAOD::IParticle*> getIParticlesFromVertex(const xAOD::Vertex& vertex) const;
58
61 std::function<IPV(const Vertex&)> m_associator;
62 };
63}
64
65#endif
std::vector< const xAOD::IParticle * > IParticles
std::vector< ElementLink< IPC > > PartLinks
ConstituentsType getType() const override
std::pair< std::string, std::vector< double > > NamedSeq
std::vector< const xAOD::IParticle * > getIParticlesFromVertex(const xAOD::Vertex &vertex) const
std::function< NamedSeq(const Vertex &, const IParticles &)> SeqFromIParticles
getter_utils::CustomSequenceGetter< xAOD::IParticle > m_customSequenceGetter
std::vector< const xAOD::IParticle * > IPV
IParticlesLoader(const ConstituentsInputConfig &)
static IParticleSortVar iparticleSortVar(ConstituentsSortOrder)
std::pair< std::string, double > NamedVar
std::function< IPV(const Vertex &)> m_associator
std::function< double(const xAOD::IParticle *, const Vertex &)> IParticleSortVar
std::tuple< std::string, FlavorTagInference::Inputs, std::vector< const xAOD::IParticle * > > getData(const xAOD::Vertex &vertex) const override
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.
Vertex_v1 Vertex
Define the latest version of the vertex class.
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.