ATLAS Offline Software
Loading...
Searching...
No Matches
egAmbLinkHelper Namespace Reference

Functions

template<typename SrcT, typename DestT>
void doAmbiguityLinks (const EventContext &ctx, DataVector< SrcT > *srcContainer, DataVector< DestT > *destContainer)

Function Documentation

◆ doAmbiguityLinks()

template<typename SrcT, typename DestT>
void egAmbLinkHelper::doAmbiguityLinks ( const EventContext & ctx,
DataVector< SrcT > * srcContainer,
DataVector< DestT > * destContainer )

Needs the same logic as the ambiguity after building the objects (make sure they are all valid)

Definition at line 15 of file egAmbLinkHelper.h.

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)) {
48 ElementLink<xAOD::EgammaContainer> link(
49 *destContainer, destIndex, ctx);
50 ELink(*src) = link;
51 break;
52 }
53 }
54 }
55 }
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
const uint16_t AuthorAmbiguous
Object Reconstructed by standard cluster-based algorithm.
Definition EgammaDefs.h:32