8#ifndef COLUMNAR_EGAMMA_EGAMMA_HELPERS_H
9#define COLUMNAR_EGAMMA_EGAMMA_HELPERS_H
31 template<ContainerIdConcept CI = ContainerId::egamma,
typename CM=ColumnarModeDefault>
49 if constexpr (!CM::isXAOD)
70 if constexpr (CM::isXAOD)
72 type = photon.getXAODObjectNoexcept().type();
79 return std::make_pair (
false, 0x0);
82 if (vertices.size() == 0)
return std::make_pair (
false, 0x0);
83 if (!vertices[0].has_value())
84 return std::make_pair (
false, 0x1);
86 unsigned missingLinks = 0x0;
88 auto vertex = vertices[0].value();
91 std::uint8_t nSiHits1 = 0;
92 std::uint8_t nSiHits2 = 0;
95 if (tracks.size() > 0) {
96 if (tracks[0].has_value()) {
100 }
else missingLinks |= 0x2;
102 if (tracks.size() > 1) {
103 if (tracks[1].has_value()) {
107 }
else missingLinks |= 0x4;
Helper functions for EgammaDetails accessors.
ColumnAccessor< CI, float, CM > m_etaAcc
TrackAccessor< std::uint8_t, CM > m_numberOfSCTHitsAcc
ColumnAccessor< CI, std::vector< OptObjectId< ContainerId::vertex, CM > >, CM > m_vertexLinksAcc
IsConvertedPhotonAccessor(ColumnarTool< CM > &columnarTool)
ColumnAccessor< CI, RetypeColumn< xAOD::Type::ObjectType, std::uint16_t >, CM > m_objectTypeAcc
VertexAccessor< std::vector< OptObjectId< ContainerId::track, CM > >, CM > m_trackParticleLinksAcc
std::pair< bool, unsigned > operator()(ObjectId< CI, CM > photon, bool excludeTRT) const
return whether the photon is converted, and a bitmask of missing links
TrackAccessor< std::uint8_t, CM > m_numberOfPixelHitsAcc
a class representing a single object (electron, muons, etc.)
AccessorTemplate< CI, CT, ColumnAccessMode::input, CM > ColumnAccessor
AccessorTemplate< ContainerId::track, CT, ColumnAccessMode::input, CM > TrackAccessor
void resetAccessor(AccessorTemplate< CI, CT, CAM, CM > &accessor, ColumnarTool< CM > &columnBase, const std::string &name, ColumnInfo &&info={})
reset a column accessor to point to a new column
AccessorTemplate< ContainerId::vertex, CT, ColumnAccessMode::input, CM > VertexAccessor
ObjectType
Type of objects that have a representation in the xAOD EDM.
@ Photon
The object is a photon.
ConversionType conversionType(const bool hasTrk1, const bool hasTrk2, const std::uint8_t nSiHits1, const std::uint8_t nSiHits2)
return the photon conversion type (see EgammaEnums)
bool isConvertedPhoton(const bool excludeTRT, const float eta, const std::size_t nVertices, const ConversionType conversionType)
is the object a converted photon