Skip to content
Snippets Groups Projects
Commit b975a577 authored by Nils Erik Krumnack's avatar Nils Erik Krumnack Committed by Frank Winklmeier
Browse files

add columnar container definitions for remaining containers

add columnar container definitions for remaining containers

Some of the container definitions came with other MRs, but these have
not been included anywhere else yet.
parent 2216a50e
No related branches found
No related tags found
2 merge requests!78558add columnar container definitions for remaining containers (ATLASG-2853),!76343Draft: MooTrackBuilder: Recalibrate NSW hits in refine method
# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
#
# @author Nils Krumnack
atlas_subdir( ColumnarCluster )
# Create the interface library target
atlas_add_library (ColumnarClusterLib
ColumnarCluster/*.h
INTERFACE
PUBLIC_HEADERS ColumnarCluster
LINK_LIBRARIES ColumnarCoreLib xAODCaloEvent)
/*
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
*/
/// @author Nils Krumnack
#ifndef COLUMNAR_CLUSTER_CLUSTER_DEF_H
#define COLUMNAR_CLUSTER_CLUSTER_DEF_H
#include <ColumnarCore/ContainerId.h>
#include <xAODCaloEvent/CaloClusterContainer.h>
#include <xAODCaloEvent/CaloCluster.h>
namespace columnar
{
template<> struct ContainerIdTraits<ContainerId::cluster> final
{
static constexpr bool isDefined = true;
static constexpr bool isMutable = false;
static constexpr bool perEventRange = true;
static constexpr bool perEventId = false;
/// the xAOD type to use with ObjectId
using xAODObjectIdType = const xAOD::CaloCluster;
/// the xAOD type to use with ObjectRange
using xAODObjectRangeType = const xAOD::CaloClusterContainer;
/// the xAOD type to use with ElementLink
using xAODElementLinkType = xAOD::CaloClusterContainer;
};
}
#endif
# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
#
# @author Nils Krumnack
atlas_subdir( ColumnarEgamma )
# Create the interface library target
atlas_add_library (ColumnarEgammaLib
ColumnarEgamma/*.h
INTERFACE
PUBLIC_HEADERS ColumnarEgamma
LINK_LIBRARIES ColumnarCoreLib xAODEgamma)
/*
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
*/
/// @author Nils Krumnack
#ifndef COLUMNAR_EGAMMA_EGAMMA_DEF_H
#define COLUMNAR_EGAMMA_EGAMMA_DEF_H
#include <ColumnarCore/ContainerId.h>
#include <xAODEgamma/ElectronContainer.h>
#include <xAODEgamma/PhotonContainer.h>
namespace columnar
{
template<> struct ContainerIdTraits<ContainerId::electron> final
{
static constexpr bool isDefined = true;
static constexpr bool isMutable = false;
static constexpr bool perEventRange = true;
static constexpr bool perEventId = false;
/// the xAOD type to use with ObjectId
using xAODObjectIdType = const xAOD::Electron;
/// the xAOD type to use with ObjectRange
using xAODObjectRangeType = const xAOD::ElectronContainer;
/// the xAOD type to use with ElementLink
using xAODElementLinkType = xAOD::ElectronContainer;
};
template<> struct ContainerIdTraits<ContainerId::photon> final
{
static constexpr bool isDefined = true;
static constexpr bool isMutable = false;
static constexpr bool perEventRange = true;
static constexpr bool perEventId = false;
/// the xAOD type to use with ObjectId
using xAODObjectIdType = const xAOD::Photon;
/// the xAOD type to use with ObjectRange
using xAODObjectRangeType = const xAOD::PhotonContainer;
/// the xAOD type to use with ElementLink
using xAODElementLinkType = xAOD::PhotonContainer;
};
template<> struct ContainerIdTraits<ContainerId::egamma> final
{
static constexpr bool isDefined = true;
static constexpr bool isMutable = false;
static constexpr bool perEventRange = true;
static constexpr bool perEventId = false;
/// the xAOD type to use with ObjectId
using xAODObjectIdType = const xAOD::Egamma;
/// the xAOD type to use with ObjectRange
using xAODObjectRangeType = const xAOD::EgammaContainer;
/// the xAOD type to use with ElementLink
using xAODElementLinkType = xAOD::EgammaContainer;
};
}
#endif
# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
#
# @author Nils Krumnack
atlas_subdir( ColumnarJet )
# Create the interface library target
atlas_add_library (ColumnarJetLib
ColumnarJet/*.h
INTERFACE
PUBLIC_HEADERS ColumnarJet
LINK_LIBRARIES ColumnarCoreLib xAODJet)
/*
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
*/
/// @author Nils Krumnack
#ifndef COLUMNAR_JET_JET_DEF_H
#define COLUMNAR_JET_JET_DEF_H
#include <ColumnarCore/ContainerId.h>
#include <xAODJet/JetContainer.h>
namespace columnar
{
template<> struct ContainerIdTraits<ContainerId::jet> final
{
static constexpr bool isDefined = true;
static constexpr bool isMutable = false;
static constexpr bool perEventRange = true;
static constexpr bool perEventId = false;
/// the xAOD type to use with ObjectId
using xAODObjectIdType = const xAOD::Jet;
/// the xAOD type to use with ObjectRange
using xAODObjectRangeType = const xAOD::JetContainer;
/// the xAOD type to use with ElementLink
using xAODElementLinkType = xAOD::JetContainer;
};
template<> struct ContainerIdTraits<ContainerId::mutableJet> final
{
static constexpr bool isDefined = true;
static constexpr bool isMutable = true;
static constexpr ContainerId constId = ContainerId::jet;
static constexpr bool perEventRange = true;
static constexpr bool perEventId = false;
/// the xAOD type to use with ObjectId
using xAODObjectIdType = xAOD::Jet;
/// the xAOD type to use with ObjectRange
using xAODObjectRangeType = xAOD::JetContainer;
/// the xAOD type to use with ElementLink
using xAODElementLinkType = xAOD::JetContainer;
};
}
#endif
# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
#
# @author Nils Krumnack
atlas_subdir( ColumnarMet )
# Create the interface library target
atlas_add_library (ColumnarMetLib
ColumnarMet/*.h
INTERFACE
LINK_LIBRARIES ColumnarCoreLib xAODMissingET METUtilitiesLib ColumnarEgammaLib ColumnarJetLib ColumnarMuonLib
PUBLIC_HEADERS ColumnarMet)
/*
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
*/
/// @author Nils Krumnack
#ifndef COLUMNAR_MET_MET_DEF_H
#define COLUMNAR_MET_MET_DEF_H
#include <ColumnarCore/ContainerId.h>
#include <xAODBase/IParticleContainer.h>
namespace columnar
{
namespace MetDef
{
using iplink_t = ElementLink<xAOD::IParticleContainer>;
static const SG::AuxElement::ConstAccessor< iplink_t > acc_originalObject("originalObjectLink");
static const SG::AuxElement::ConstAccessor< iplink_t > acc_nominalObject("nominalObjectLink");
static const SG::AuxElement::Accessor< std::vector<iplink_t> > dec_constitObjLinks("ConstitObjectLinks");
static const SG::AuxElement::Accessor< std::vector<float> > dec_constitObjWeights("ConstitObjectWeights");
}
template<ContainerId CI> requires (CI == ContainerId::met0 || CI == ContainerId::met1)
struct ContainerIdTraits<CI> final
{
static constexpr bool isDefined = true;
static constexpr bool isMutable = false;
static constexpr bool perEventRange = true;
static constexpr bool perEventId = false;
/// the xAOD type to use with ObjectId
using xAODObjectIdType = const xAOD::MissingET;
/// the xAOD type to use with ObjectRange
using xAODObjectRangeType = const xAOD::MissingETContainer;
/// the xAOD type to use with ElementLink
using xAODElementLinkType = xAOD::MissingETContainer;
};
template<>
struct ContainerIdTraits<ContainerId::mutableMet> final
{
static constexpr bool isDefined = true;
static constexpr bool isMutable = true;
static constexpr ContainerId constId = ContainerId::met;
static constexpr bool perEventRange = true;
static constexpr bool perEventId = false;
/// the xAOD type to use with ObjectId
using xAODObjectIdType = xAOD::MissingET;
/// the xAOD type to use with ObjectRange
using xAODObjectRangeType = xAOD::MissingETContainer;
/// the xAOD type to use with ElementLink
using xAODElementLinkType = xAOD::MissingETContainer;
};
template<>
struct ContainerIdTraits<ContainerId::metAssociation> final
{
static constexpr bool isDefined = true;
static constexpr bool isMutable = false;
static constexpr bool perEventRange = true;
static constexpr bool perEventId = false;
/// the xAOD type to use with ObjectId
using xAODObjectIdType = const xAOD::MissingETAssociation;
/// the xAOD type to use with ObjectRange
using xAODObjectRangeType = const xAOD::MissingETAssociationMap;
/// the xAOD type to use with ElementLink
using xAODElementLinkType = xAOD::MissingETAssociationMap;
};
}
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment