ATLAS Offline Software
Loading...
Searching...
No Matches
egAmbLinkHelper.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#include "GaudiKernel/EventContext.h"
6
10#include "AthLinks/ElementLink.h"
11
12
14 template <typename SrcT, typename DestT>
16 const EventContext& ctx,
17 DataVector<SrcT> *srcContainer,
18 DataVector<DestT> *destContainer
19 ) {
22 static const SG::AuxElement::Accessor<
23 std::vector<ElementLink<xAOD::CaloClusterContainer>>>
24 caloClusterLinks("constituentClusterLinks");
25
27 ELink("ambiguityLink");
28
30 for (SrcT *src : *srcContainer) {
31 ELink(*src) = dummylink;
32 if (src->author() != xAOD::EgammaParameters::AuthorAmbiguous) {
33 continue;
34 }
35
36 for (
37 size_t destIndex = 0;
38 destIndex < destContainer->size();
39 ++destIndex
40 ) {
41 DestT *dest = destContainer->at(destIndex);
42 if (dest->author() != xAOD::EgammaParameters::AuthorAmbiguous) {
43 continue;
44 }
45
46 if (caloClusterLinks(*(dest->caloCluster())).at(0) ==
47 caloClusterLinks(*(src->caloCluster())).at(0)) {
49 *destContainer, destIndex, ctx);
50 ELink(*src) = link;
51 break;
52 }
53 }
54 }
55 }
56 }
Helper class to provide type-safe access to aux data.
Derived DataVector<T>.
Definition DataVector.h:795
const T * at(size_type n) const
Access an element, as an rvalue.
size_type size() const noexcept
Returns the number of elements in the collection.
SG::Accessor< T, ALLOC > Accessor
Definition AuxElement.h:572
void doAmbiguityLinks(const EventContext &ctx, DataVector< SrcT > *srcContainer, DataVector< DestT > *destContainer)
const uint16_t AuthorAmbiguous
Object Reconstructed by standard cluster-based algorithm.
Definition EgammaDefs.h:32