ATLAS Offline Software
TracksLoader.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 tracks from the jet
5  and extract their features for the NN evaluation.
6 */
7 
8 #ifndef TRACKS_LOADER_H
9 #define TRACKS_LOADER_H
10 
11 // local includes
14 
19 
20 // EDM includes
21 #include "xAODJet/Jet.h"
22 #include "xAODBTagging/BTagging.h"
23 
24 // external libraries
25 #include "lwtnn/lightweight_network_config.hh"
26 
27 // STL includes
28 #include <string>
29 #include <vector>
30 #include <functional>
31 #include <exception>
32 #include <type_traits>
33 #include <regex>
34 
35 namespace FlavorTagDiscriminants {
36  using Tracks = std::vector<const xAOD::TrackParticle*>;
37 
38  // tracksConfig
40  std::pair<std::string, std::vector<std::string>> trk_names,
41  FlipTagConfig flip_config
42  );
43 
44  // Subclass for Tracks loader inherited from abstract IConstituentsLoader class
46  public:
47 
49  std::tuple<std::string, Inputs, std::vector<const xAOD::IParticle*>> getData(
50  const xAOD::Jet& jet,
51  [[maybe_unused]] const SG::AuxElement& btag) const override;
52  std::tuple<char, std::map<std::string, std::vector<double>>> getDL2Data(
53  const xAOD::Jet& jet,
54  const SG::AuxElement& btag,
55  std::function<char(const Tracks&)> ip_checker) const;
57  std::set<std::string> getUsedRemap() const override;
58  std::string getName() const override;
59  ConstituentsType getType() const override;
60  private:
61  // typedefs
62  typedef xAOD::Jet Jet;
64  // tracks typedefs
65  typedef std::function<double(const Track*,
66  const Jet&)> TrackSortVar;
67  typedef std::function<bool(const Track*)> TrackFilter;
68  typedef std::function<Tracks(const Tracks&,
70 
71  // usings for track getter
72  using AE = SG::AuxElement;
75  using TrackLinks = std::vector<ElementLink<TPC>>;
76  using PartLinks = std::vector<ElementLink<IPC>>;
77 
79  std::pair<TrackFilter,std::set<std::string>> trackFilter(
81  std::pair<TrackSequenceFilter,std::set<std::string>> trackFlipper(
82  const FTagOptions&);
83 
84  Tracks getTracksFromJet(const Jet& jet, const AE& btag) const;
85 
89  std::function<Tracks(const SG::AuxElement&)> m_associator;
91  };
92 }
93 
94 #endif
FlavorTagDiscriminants::ConstituentsSortOrder
ConstituentsSortOrder
Definition: ConstituentsLoader.h:32
FlavorTagDiscriminants::TracksLoader::TrackLinks
std::vector< ElementLink< TPC > > TrackLinks
Definition: TracksLoader.h:75
BTagTrackIpAccessor.h
Jet.h
FlavorTagDiscriminants::TracksLoader::trackSortVar
TrackSortVar trackSortVar(ConstituentsSortOrder, const FTagOptions &)
Definition: TracksLoader.cxx:13
FlavorTagDiscriminants::ConstituentsInputConfig
Definition: ConstituentsLoader.h:59
BTagging.h
FlavorTagDiscriminants
This file contains "getter" functions used for accessing tagger inputs from the EDM.
Definition: AssociationEnums.h:11
FlavorTagDiscriminants::IConstituentsLoader
Definition: ConstituentsLoader.h:75
CustomGetterUtils.h
SG::AuxElement
Base class for elements of a container that can have aux data.
Definition: AuxElement.h:446
TrackFilter
Definition: TrackFilter.h:26
FlavorTagDiscriminants::TracksLoader::m_trackFlipper
TrackSequenceFilter m_trackFlipper
Definition: TracksLoader.h:88
FlavorTagDiscriminants::getter_utils::SeqGetter
Template class to extract features from sequence of constituents.
Definition: CustomGetterUtils.h:70
xAOD::TrackParticleContainer
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
Definition: Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainer.h:14
xAOD::IParticleContainer
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.
Definition: xAOD/xAODBase/xAODBase/IParticleContainer.h:32
FlavorTagDiscriminants::TracksLoader::getDependencies
FTagDataDependencyNames getDependencies() const override
Definition: TracksLoader.cxx:372
FlavorTagDiscriminants::TracksLoader::trackFlipper
std::pair< TrackSequenceFilter, std::set< std::string > > trackFlipper(const FTagOptions &)
Definition: TracksLoader.cxx:228
FlavorTagDiscriminants::TracksLoader::TrackSequenceFilter
std::function< Tracks(const Tracks &, const Jet &)> TrackSequenceFilter
Definition: TracksLoader.h:69
FlipTagEnums.h
FlavorTagDiscriminants::TracksLoader::TrackSortVar
std::function< double(const Track *, const Jet &)> TrackSortVar
Definition: TracksLoader.h:66
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
FlavorTagDiscriminants::FTagDataDependencyNames
Definition: FTagDataDependencyNames.h:12
DataPrepUtilities.h
FlavorTagDiscriminants::TracksLoader::trackFilter
std::pair< TrackFilter, std::set< std::string > > trackFilter(ConstituentsSelection, const FTagOptions &)
Definition: TracksLoader.cxx:44
FlavorTagDiscriminants::TracksLoader::getDL2Data
std::tuple< char, std::map< std::string, std::vector< double > > > getDL2Data(const xAOD::Jet &jet, const SG::AuxElement &btag, std::function< char(const Tracks &)> ip_checker) const
Definition: TracksLoader.cxx:356
ConstituentsLoader.h
FlavorTagDiscriminants::TracksLoader::m_associator
std::function< Tracks(const SG::AuxElement &)> m_associator
Definition: TracksLoader.h:89
FlavorTagDiscriminants::TracksLoader::getTracksFromJet
Tracks getTracksFromJet(const Jet &jet, const AE &btag) const
Definition: TracksLoader.cxx:320
FlavorTagDiscriminants::TracksLoader::PartLinks
std::vector< ElementLink< IPC > > PartLinks
Definition: TracksLoader.h:76
FlavorTagDiscriminants::TracksLoader::Jet
xAOD::Jet Jet
Definition: TracksLoader.h:62
python.AtlRunQueryLib.options
options
Definition: AtlRunQueryLib.py:379
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
FlavorTagDiscriminants::ConstituentsSelection
ConstituentsSelection
Definition: ConstituentsLoader.h:38
FlavorTagDiscriminants::TracksLoader
Definition: TracksLoader.h:45
FlavorTagDiscriminants::TracksLoader::getName
std::string getName() const override
Definition: TracksLoader.cxx:378
FlavorTagDiscriminants::FTagOptions
Definition: DataPrepUtilities.h:45
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
FlavorTagDiscriminants::TracksLoader::TrackFilter
std::function< bool(const Track *)> TrackFilter
Definition: TracksLoader.h:67
FlavorTagDiscriminants::TracksLoader::Track
xAOD::TrackParticle Track
Definition: TracksLoader.h:63
FlavorTagDiscriminants::TracksLoader::getType
ConstituentsType getType() const override
Definition: TracksLoader.cxx:381
FlavorTagDiscriminants::TracksLoader::m_trackFilter
TrackFilter m_trackFilter
Definition: TracksLoader.h:87
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
FlavorTagDiscriminants::Tracks
std::vector< const xAOD::TrackParticle * > Tracks
Definition: TracksLoader.h:36
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
FlavorTagDiscriminants::FlipTagConfig
FlipTagConfig
Definition: FlipTagEnums.h:14
FlavorTagDiscriminants::TracksLoader::m_seqGetter
getter_utils::SeqGetter< xAOD::TrackParticle > m_seqGetter
Definition: TracksLoader.h:90
FlavorTagDiscriminants::TracksLoader::getUsedRemap
std::set< std::string > getUsedRemap() const override
Definition: TracksLoader.cxx:375
FlavorTagDiscriminants::ConstituentsType
ConstituentsType
Definition: ConstituentsLoader.h:48
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
FlavorTagDiscriminants::TracksLoader::TracksLoader
TracksLoader(ConstituentsInputConfig, const FTagOptions &options)
Definition: TracksLoader.cxx:263
AssociationEnums.h
FlavorTagDiscriminants::TracksLoader::getData
std::tuple< std::string, Inputs, std::vector< const xAOD::IParticle * > > getData(const xAOD::Jet &jet, [[maybe_unused]] const SG::AuxElement &btag) const override
Definition: TracksLoader.cxx:340
FlavorTagDiscriminants::TracksLoader::m_trackSortVar
TrackSortVar m_trackSortVar
Definition: TracksLoader.h:86
FlavorTagDiscriminants::createTracksLoaderConfig
ConstituentsInputConfig createTracksLoaderConfig(std::pair< std::string, std::vector< std::string >> trk_names, FlipTagConfig flip_config)