Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
DerivationFramework::TriggerMatchingTool Class Referencefinal

Tool to perform trigger matching in the derivation framework. More...

#include <TriggerMatchingTool.h>

Inheritance diagram for DerivationFramework::TriggerMatchingTool:
Collaboration diagram for DerivationFramework::TriggerMatchingTool:

Public Types

using particleVec_t = std::vector< const xAOD::IParticle * >
 Helper typedefs. More...
 

Public Member Functions

 TriggerMatchingTool (const std::string &type, const std::string &name, const IInterface *pSvcLocator)
 Constructor. More...
 
virtual StatusCode initialize () override
 Initialize the tool. More...
 
virtual StatusCode addBranches () const override
 Calculate the matchings. More...
 

Private Member Functions

StatusCode createOutputContainer (xAOD::TrigCompositeContainer *&container, const std::string &chain) const
 Create an output container for the named chain. More...
 
const particleVec_tgetCandidateMatchesFor (const xAOD::IParticle *part, std::map< xAOD::Type::ObjectType, particleVec_t > &offlineParticles, std::map< const xAOD::IParticle *, particleVec_t > &cache) const
 Get all offline particles that could match a given online one. More...
 
bool matchParticles (const xAOD::IParticle *lhs, const xAOD::IParticle *rhs) const
 Check if the dR between two particles is below threshold. More...
 

Private Attributes

std::vector< std::string > m_chainNames ATLAS_THREAD_SAFE
 The list of chain names to match. More...
 
ToolHandle< Trig::IIParticleRetrievalToolm_trigParticleTool {"Trig::IParticleRetrievalTool/OnlineParticleTool"}
 The tool to retrieve the online candidates. More...
 
std::map< xAOD::Type::ObjectType, SG::ReadHandleKey< xAOD::IParticleContainer > > m_offlineInputs
 The input containers to use. These are keyed by xAOD object type. More...
 
float m_drThreshold
 The DR threshold to use. More...
 
bool m_rerun
 Whether to match in rerun mode or not. More...
 
std::string m_outputPrefix
 The prefix to place at the beginning of the output containers. More...
 
bool m_checkEmptyChainGroups
 If set, discard any triggers with empty chain groups (break the job otherwise). More...
 
bool m_inputDependentConfig
 If using an input-file-dependent config then we warn when triggers are removed. More...
 
ToolHandle< Trig::TrigDecisionToolm_tdt {"Trig::TrigDecisionTool/TrigDecisionTool"}
 The trig decision tool. More...
 
ToolHandle< Trig::IMatchScoringToolm_scoreTool
 The pair scoring tool. More...
 

Detailed Description

Tool to perform trigger matching in the derivation framework.

Trigger matching in the derivation framework has to take the reverse approach to matching in analysis code. There, the matching tool is provided with a list of analysis particles to match to a given trigger. The navigation then proceeds to search out all features that match the types of those particles. In the derivation framework however, we need to get the full list of all particles that a user could ask for in their analysis code. To do this, we ask the navigation for all the relevant xAOD objects and then use those to query the available offline objects.

Author
Jon Burr

Definition at line 38 of file TriggerMatchingTool.h.

Member Typedef Documentation

◆ particleVec_t

Helper typedefs.

Definition at line 42 of file TriggerMatchingTool.h.

Constructor & Destructor Documentation

◆ TriggerMatchingTool()

DerivationFramework::TriggerMatchingTool::TriggerMatchingTool ( const std::string &  type,
const std::string &  name,
const IInterface *  pSvcLocator 
)

Constructor.

Definition at line 42 of file TriggerMatchingTool.cxx.

45  :
46  base_class(type, name, pSvcLocator)
47  {
48  declareProperty("ChainNames", m_chainNames,
49  "The list of trigger chains to match.");
50  declareProperty("OnlineParticleTool", m_trigParticleTool,
51  "The tool to retrieve online particles from the navigation.");
52  declareProperty("InputElectrons",
54  "Offline electron candidates for matching.");
55  declareProperty("InputPhotons",
57  "Offline photon candidates for matching.");
58  declareProperty("InputMuons",
60  "Offline muon candidates for matching.");
61  declareProperty("InputTaus",
62  m_offlineInputs[xAOD::Type::Tau] = "TauJets",
63  "Offline tau candidates for matching.");
64  declareProperty("DRThreshold", m_drThreshold = 0.1,
65  "The maximum dR between an offline and an online particle to consider "
66  "a match between them.");
67  declareProperty("Rerun", m_rerun = true,
68  "Whether to match triggers in rerun mode.");
69  declareProperty("OutputContainerPrefix", m_outputPrefix="TrigMatch_",
70  "The prefix to add to the output containers.");
71  declareProperty("CheckEmptyChainGroups", m_checkEmptyChainGroups = true,
72  "If set, discard any empty chain groups. Otherwise these will cause "
73  "a job failure.");
74  declareProperty("InputDependentConfig", m_inputDependentConfig=false,
75  "Warn when a trigger is removed (if the configuration is dependent "
76  "on the inputs, removal is not expected).");
77  }

Member Function Documentation

◆ addBranches()

StatusCode DerivationFramework::TriggerMatchingTool::addBranches ( ) const
overridevirtual

Calculate the matchings.

Definition at line 96 of file TriggerMatchingTool.cxx.

97  {
98  [[maybe_unused]] static const bool firstEvent = [&](){
99  auto itr = m_chainNames.begin();
100  while (itr != m_chainNames.end() ) {
101  const Trig::ChainGroup* cg = m_tdt->getChainGroup(*itr);
102  if (cg->getListOfTriggers().size() == 0){
104  ATH_MSG_WARNING("Removing trigger " << (*itr) << " -- suggests a bad tool configuration (asking for triggers not in the menu)");
105  // We are now modifying the mutable m_chainNames but since it is done
106  // within this static initialization this is thread-safe:
107  itr = m_chainNames.erase(itr);
108  } else
109  ++itr;
110  }
111  return false;
112  }();
113 
114  const EventContext &ctx = Gaudi::Hive::currentContext();
116 
117  // Now, get all the possible offline candidates
118  std::map<xAOD::Type::ObjectType, const xAOD::IParticleContainer *> offlineContainers;
119  std::map<xAOD::Type::ObjectType, particleVec_t> offlineCandidates;
120  for (const auto& p : m_offlineInputs) {
121  // Skip any that may have been disabled by providing an empty string to
122  // the corresponding property
123  if (p.second.empty() )
124  continue;
125  auto handle = SG::makeHandle(p.second, ctx);
126  if (!handle.isValid())
127  {
128  ATH_MSG_ERROR("Failed to retrieve " << p.second);
129  return StatusCode::FAILURE;
130  }
131  offlineContainers[p.first] = handle.ptr();
132  offlineCandidates.emplace(std::make_pair(
133  p.first,
134  particleVec_t(handle->begin(), handle->end() )
135  ) );
136  }
137 
138  // Store possible matches from online to offline particles here
139  // We do this as multiple chains may use the same online particles so we can
140  // reuse this information.
141  std::map<const xAOD::IParticle*, particleVec_t> matches;
142 
143  // Iterate through the chains to get the matchings
144  for (const std::string& chain : m_chainNames) {
145  // Create the output
146  xAOD::TrigCompositeContainer* container(nullptr);
147  ATH_CHECK( createOutputContainer(container, chain) );
148 
149  // Get the list of online combinations
150  std::vector<particleVec_t> onlineCombinations;
151  ATH_CHECK( m_trigParticleTool->retrieveParticles(onlineCombinations, chain, m_rerun) );
152 
154  onlineCombinations.size() << " combinations found for chain" << chain);
155 
156  // If no combinations were found (because the trigger was not passed) then
157  // we can skip this trigger
158  if (onlineCombinations.size() == 0)
159  continue;
160 
161  using particleRange_t = TriggerMatchingUtils::RangedItr<typename particleVec_t::const_iterator>;
162  // Now build up the list of offline combinations;
163  std::vector<particleVec_t> offlineCombinations;
164 
165  // Projection operator to use for comparing vectors
166  // of IParticle*. Compare by using the sum of the pts
167  // of all particles in the vector.
168  struct outerproj {
169  double operator() (const particleVec_t& v) const
170  {
171  // Unfortunately std::ranges::accumulate hasn't made it into C++
172  // as of C++23 or we could use that directly.
174  return std::accumulate (std::begin(r), std::end(r), 0);
175  }
176  };
177 
178  for (const particleVec_t& combination : onlineCombinations) {
179  // Here we store the possible candidates for the matching. We use the
180  // range type as a lightweight method to carry around a view of a vector
181  // without copying it (the RangedItr is essentially a combination of 3
182  // iterators).
183  std::vector<particleRange_t> matchCandidates;
184  for (const xAOD::IParticle* part : combination) {
185  const particleVec_t& possibleMatches = getCandidateMatchesFor(
186  part, offlineCandidates, matches);
187  matchCandidates.emplace_back(possibleMatches.begin(), possibleMatches.end() );
188  } //> end loop over particles
189  // Get all possible combinations of offline objects that could match to
190  // this particular online combination.
191  auto theseOfflineCombinations =
192  TriggerMatchingUtils::getAllDistinctCombinations<const xAOD::IParticle*>(
193  matchCandidates,
195  outerproj());
196  if (msgLvl(MSG::VERBOSE) ) {
197  // Spit out some verbose information
199  "Checking matching for chain " << chain
200  << " with " << matchCandidates.size() << " legs");
201  std::size_t idx = 0;
202  for (const particleRange_t& range : matchCandidates)
203  ATH_MSG_VERBOSE( "Leg #" << idx++ << " has " << range.size()
204  << " offline candidates." );
206  "Matching generated " << theseOfflineCombinations.size()
207  << " offline combinations");
208  }
209  // Now push them back into the output. Use a specialised function for
210  // inserting into a sorted vector that ensures that we only output
211  // unique combinations
212  for (const particleVec_t& vec : theseOfflineCombinations)
213  TriggerMatchingUtils::insertIntoSortedVector(offlineCombinations, vec, outerproj());
214  } //> end loop over combinations
215 
216 
217  // Decorate the found combinations onto trigger composites.
218  for (const particleVec_t& foundCombination : offlineCombinations) {
219  xAOD::TrigComposite* composite = new xAOD::TrigComposite();
220  container->push_back(composite);
221  static const acc_t<vecLink_t<xAOD::IParticleContainer>> dec_links(
222  "TrigMatchedObjects");
223  vecLink_t<xAOD::IParticleContainer>& links = dec_links(*composite);
224  for (const xAOD::IParticle* part : foundCombination) {
225  const xAOD::IParticleContainer *container = offlineContainers.at(part->type());
226  // If we have an owning container then things are relatively simple:
227  // we can just construct the element link from its SG key and the
228  // index. Otherwise we have to locate the correct proxy from the element
229  if (container->trackIndices())
230  links.emplace_back(
231  m_offlineInputs.at(part->type()).key(),
232  part->index(),
233  extendedCtx.proxy());
234  else
235  links.push_back(makeLink<xAOD::IParticleContainer>(part, extendedCtx.proxy()));
236  }
237  } //> end loop over the found combinations
238  } //> end loop over chains
239  return StatusCode::SUCCESS;
240  }

◆ createOutputContainer()

StatusCode DerivationFramework::TriggerMatchingTool::createOutputContainer ( xAOD::TrigCompositeContainer *&  container,
const std::string &  chain 
) const
private

Create an output container for the named chain.

Parameters
[out]containerA pointer to the created container
chainThe name of the chain to create the container for The container will be recorded in the StoreGate using the name of the chain as a key.

Definition at line 242 of file TriggerMatchingTool.cxx.

245  {
246  auto uniqueContainer = std::make_unique<xAOD::TrigCompositeContainer>();
247  auto aux = std::make_unique<xAOD::AuxContainerBase>();
248  uniqueContainer->setStore(aux.get() );
249  container = uniqueContainer.get();
250  std::string name = m_outputPrefix+chain;
251  // We have to replace '.' characters with '_' characters so that these are
252  // valid container names...
253  std::replace(name.begin(), name.end(), '.', '_');
254  ATH_CHECK( evtStore()->record(std::move(uniqueContainer), name) );
255  ATH_CHECK( evtStore()->record(std::move(aux), name+"Aux.") );
256  return StatusCode::SUCCESS;
257  }

◆ getCandidateMatchesFor()

const TriggerMatchingTool::particleVec_t & DerivationFramework::TriggerMatchingTool::getCandidateMatchesFor ( const xAOD::IParticle part,
std::map< xAOD::Type::ObjectType, particleVec_t > &  offlineParticles,
std::map< const xAOD::IParticle *, particleVec_t > &  cache 
) const
private

Get all offline particles that could match a given online one.

Parameters
partThe online particle to match against.
offlineParticlesThe offline particles, key by xAOD type.
cacheStore past matches here to speed up future look ups.

Definition at line 259 of file TriggerMatchingTool.cxx.

263  {
264  // Build up all the possible matches between online and offline particles
265  auto cacheItr = cache.find(part);
266  if (cacheItr == cache.end() ) {
267  xAOD::Type::ObjectType type = part->type();
269  if (type == xAOD::Type::CaloCluster) {
270  // If it's a calo cluster then we need to get the cluster from the
271  // egamma types.
272  static const constAcc_t<vecLink_t<xAOD::CaloClusterContainer>> acc_calo("caloClusterLinks");
273  for (xAOD::Type::ObjectType egType : {
275  {
276  for (const xAOD::IParticle* cand : offlineParticles[egType]) {
277  const vecLink_t<xAOD::CaloClusterContainer>& links = acc_calo(*cand);
278  if (links.size() == 0 || !links.at(0).isValid() )
279  continue;
280  const xAOD::CaloCluster* clus = *links.at(0);
281  if (matchParticles(part, clus) )
282  candidates.push_back(cand);
283  }
284  }
285  }
286  else {
287  for (const xAOD::IParticle* cand : offlineParticles[type])
288  if (matchParticles(part, cand) )
289  candidates.push_back(cand);
290  }
291  cacheItr = cache.emplace(
292  std::make_pair(part, std::move(candidates) ) ).first;
293  }
294  return cacheItr->second;
295  }

◆ initialize()

StatusCode DerivationFramework::TriggerMatchingTool::initialize ( )
overridevirtual

Initialize the tool.

Definition at line 79 of file TriggerMatchingTool.cxx.

80  {
81  ATH_MSG_INFO( "Initializing " << name() );
82 
83  // Remove any duplicates from the list of chain names
84  std::sort(m_chainNames.begin(), m_chainNames.end() );
85  m_chainNames.erase(std::unique(m_chainNames.begin(), m_chainNames.end() ), m_chainNames.end() );
86 
87  ATH_CHECK( m_trigParticleTool.retrieve() );
88  ATH_CHECK( m_scoreTool.retrieve() );
89  for (auto &p : m_offlineInputs)
90  {
91  ATH_CHECK(p.second.initialize(SG::AllowEmpty));
92  }
93  return StatusCode::SUCCESS;
94  }

◆ matchParticles()

bool DerivationFramework::TriggerMatchingTool::matchParticles ( const xAOD::IParticle lhs,
const xAOD::IParticle rhs 
) const
private

Check if the dR between two particles is below threshold.

Definition at line 297 of file TriggerMatchingTool.cxx.

300  {
301  return m_scoreTool->score(*lhs, *rhs) < m_drThreshold;
302  }

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::vector<std::string> m_chainNames DerivationFramework::TriggerMatchingTool::ATLAS_THREAD_SAFE
mutableprivate

The list of chain names to match.

Definition at line 58 of file TriggerMatchingTool.h.

◆ m_checkEmptyChainGroups

bool DerivationFramework::TriggerMatchingTool::m_checkEmptyChainGroups
private

If set, discard any triggers with empty chain groups (break the job otherwise).

Definition at line 83 of file TriggerMatchingTool.h.

◆ m_drThreshold

float DerivationFramework::TriggerMatchingTool::m_drThreshold
private

The DR threshold to use.

Definition at line 73 of file TriggerMatchingTool.h.

◆ m_inputDependentConfig

bool DerivationFramework::TriggerMatchingTool::m_inputDependentConfig
private

If using an input-file-dependent config then we warn when triggers are removed.

Definition at line 87 of file TriggerMatchingTool.h.

◆ m_offlineInputs

std::map<xAOD::Type::ObjectType, SG::ReadHandleKey<xAOD::IParticleContainer> > DerivationFramework::TriggerMatchingTool::m_offlineInputs
private

The input containers to use. These are keyed by xAOD object type.

Definition at line 70 of file TriggerMatchingTool.h.

◆ m_outputPrefix

std::string DerivationFramework::TriggerMatchingTool::m_outputPrefix
private

The prefix to place at the beginning of the output containers.

Definition at line 79 of file TriggerMatchingTool.h.

◆ m_rerun

bool DerivationFramework::TriggerMatchingTool::m_rerun
private

Whether to match in rerun mode or not.

Definition at line 76 of file TriggerMatchingTool.h.

◆ m_scoreTool

ToolHandle<Trig::IMatchScoringTool> DerivationFramework::TriggerMatchingTool::m_scoreTool
private
Initial value:
{
this, "ScoringTool", "Trig::DRScoringTool", "The pair scoring tool"}

The pair scoring tool.

Definition at line 93 of file TriggerMatchingTool.h.

◆ m_tdt

ToolHandle<Trig::TrigDecisionTool> DerivationFramework::TriggerMatchingTool::m_tdt {"Trig::TrigDecisionTool/TrigDecisionTool"}
private

The trig decision tool.

Definition at line 90 of file TriggerMatchingTool.h.

◆ m_trigParticleTool

ToolHandle<Trig::IIParticleRetrievalTool> DerivationFramework::TriggerMatchingTool::m_trigParticleTool {"Trig::IParticleRetrievalTool/OnlineParticleTool"}
private

The tool to retrieve the online candidates.

Definition at line 67 of file TriggerMatchingTool.h.


The documentation for this class was generated from the following files:
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
replace
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition: hcg.cxx:307
beamspotman.r
def r
Definition: beamspotman.py:676
DerivationFramework::TriggerMatchingTool::m_drThreshold
float m_drThreshold
The DR threshold to use.
Definition: TriggerMatchingTool.h:73
DerivationFramework::TriggerMatchingTool::matchParticles
bool matchParticles(const xAOD::IParticle *lhs, const xAOD::IParticle *rhs) const
Check if the dR between two particles is below threshold.
Definition: TriggerMatchingTool.cxx:297
xAOD::Electron
Electron_v1 Electron
Definition of the current "egamma version".
Definition: Event/xAOD/xAODEgamma/xAODEgamma/Electron.h:17
runLayerRecalibration.chain
chain
Definition: runLayerRecalibration.py:175
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
DerivationFramework::TriggerMatchingTool::m_outputPrefix
std::string m_outputPrefix
The prefix to place at the beginning of the output containers.
Definition: TriggerMatchingTool.h:79
xAOD::TrigComposite
TrigComposite_v1 TrigComposite
Declare the latest version of the class.
Definition: Event/xAOD/xAODTrigger/xAODTrigger/TrigComposite.h:16
ObjectType
ObjectType
Definition: BaseObject.h:11
drawFromPickle.candidates
candidates
Definition: drawFromPickle.py:271
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
DerivationFramework::TriggerMatchingUtils::insertIntoSortedVector
bool insertIntoSortedVector(std::vector< T > &vec, const T &ele, PROJ proj={})
Helper function for inserting an element into a sorted vector.
DataVector::get
const T * get(size_type n) const
Access an element, as an rvalue.
DerivationFramework::TriggerMatchingTool::m_scoreTool
ToolHandle< Trig::IMatchScoringTool > m_scoreTool
The pair scoring tool.
Definition: TriggerMatchingTool.h:93
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:9
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
xAOD::CaloCluster
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Definition: Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloCluster.h:19
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
DerivationFramework::TriggerMatchingTool::m_checkEmptyChainGroups
bool m_checkEmptyChainGroups
If set, discard any triggers with empty chain groups (break the job otherwise).
Definition: TriggerMatchingTool.h:83
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:274
Atlas::getExtendedEventContext
const ExtendedEventContext & getExtendedEventContext(const EventContext &ctx)
Retrieve an extended context from a context object.
Definition: ExtendedEventContext.cxx:32
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:62
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
DerivationFramework::TriggerMatchingTool::m_trigParticleTool
ToolHandle< Trig::IIParticleRetrievalTool > m_trigParticleTool
The tool to retrieve the online candidates.
Definition: TriggerMatchingTool.h:67
Atlas::ExtendedEventContext
Definition: ExtendedEventContext.h:23
DerivationFramework::TriggerMatchingTool::particleVec_t
std::vector< const xAOD::IParticle * > particleVec_t
Helper typedefs.
Definition: TriggerMatchingTool.h:42
DerivationFramework::TriggerMatchingTool::m_rerun
bool m_rerun
Whether to match in rerun mode or not.
Definition: TriggerMatchingTool.h:76
DMTest::links
links
Definition: CLinks_v1.cxx:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
DerivationFramework::TriggerMatchingTool::m_tdt
ToolHandle< Trig::TrigDecisionTool > m_tdt
The trig decision tool.
Definition: TriggerMatchingTool.h:90
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
xAOD::TrigComposite_v1
Class used to describe composite objects in the HLT.
Definition: TrigComposite_v1.h:52
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
xAOD::IParticle::pt
virtual double pt() const =0
The transverse momentum ( ) of the particle.
Trig::ChainGroup
Definition: ChainGroup.h:51
DerivationFramework::TriggerMatchingTool::getCandidateMatchesFor
const particleVec_t & getCandidateMatchesFor(const xAOD::IParticle *part, std::map< xAOD::Type::ObjectType, particleVec_t > &offlineParticles, std::map< const xAOD::IParticle *, particleVec_t > &cache) const
Get all offline particles that could match a given online one.
Definition: TriggerMatchingTool.cxx:259
DerivationFramework::TriggerMatchingTool::m_offlineInputs
std::map< xAOD::Type::ObjectType, SG::ReadHandleKey< xAOD::IParticleContainer > > m_offlineInputs
The input containers to use. These are keyed by xAOD object type.
Definition: TriggerMatchingTool.h:70
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
DerivationFramework::TriggerMatchingTool::m_inputDependentConfig
bool m_inputDependentConfig
If using an input-file-dependent config then we warn when triggers are removed.
Definition: TriggerMatchingTool.h:87
columnar::operator()
decltype(auto) operator()(ObjectId< OT, CM > id) const noexcept
Definition: ColumnAccessor.h:175
xAOD::Photon
Photon_v1 Photon
Definition of the current "egamma version".
Definition: Event/xAOD/xAODEgamma/xAODEgamma/Photon.h:17
Muon
struct TBPatternUnitContext Muon
python.PyAthena.v
v
Definition: PyAthena.py:154
runIDAlign.accumulate
accumulate
Update flags based on parser line args.
Definition: runIDAlign.py:63
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
xAODType::Tau
@ Tau
The object is a tau (jet)
Definition: ObjectType.h:49
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:13
Trig::ChainGroup::getListOfTriggers
std::vector< std::string > getListOfTriggers() const
Definition: ChainGroup.cxx:467
SG::AllowEmpty
@ AllowEmpty
Definition: StoreGate/StoreGate/VarHandleKey.h:30
DerivationFramework::TriggerMatchingTool::createOutputContainer
StatusCode createOutputContainer(xAOD::TrigCompositeContainer *&container, const std::string &chain) const
Create an output container for the named chain.
Definition: TriggerMatchingTool.cxx:242