Skip to content
Snippets Groups Projects

Add support in FunTuple for vector of enums (useful for FlavourTagging info)

Merged Sara Celani requested to merge scelani_originTagEnum into master
All threads resolved!
/*****************************************************************************\
* (c) Copyright 2020-2023 CERN for the benefit of the LHCb Collaboration *
* *
* This software is distributed under the terms of the GNU General Public *
* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". *
@@ -19,5+19,5 @@
#include "Event/ODIN.h"
#include "Event/State.h"
#include "Event/TrackEnums.h"
#include "Kernel/IMCTaggingHelperTool.h"
#include "Kernel/MCTaggingHelper.h"
#include "MCInterfaces/IMCReconstructed.h"
#include "MCInterfaces/IMCReconstructible.h"
@@ -242,24 +242,22 @@ namespace LHCb::FTuple {
}
// list the supported types
inline const auto map_valtype_callcolfun = make_map<
bool, short int, unsigned short int, int, unsigned int, long int, unsigned long int, long long int,
unsigned long long int, SIMDWrapper::scalar::int_v, float, double, std::uint64_t, LHCb::ODIN::BXTypes,
LHCb::MCVertex::MCVertexType, IMCReconstructible::RecCategory, IMCReconstructed::RecCategory,
IMCTaggingHelperTool::originTagCodes, LHCb::Event::Enum::Track::History, LHCb::Event::Enum::Track::FitHistory,
LHCb::Event::Enum::Track::Type, LHCb::Event::Enum::Track::FitStatus, LHCb::Event::Enum::Track::Flag,
std::vector<IMCTaggingHelperTool::originTagCodes>, std::vector<LHCb::Event::Enum::Track::History>,
std::vector<LHCb::Event::Enum::Track::FitHistory>, std::vector<LHCb::Event::Enum::Track::Type>,
std::vector<LHCb::Event::Enum::Track::FitStatus>, std::vector<LHCb::Event::Enum::Track::Flag>,
SIMDWrapper::scalar::float_v, Gaudi::LorentzVector, Gaudi::XYZVector, Gaudi::XYZPoint, Gaudi::SymMatrix3x3,
Gaudi::SymMatrix4x4, Gaudi::SymMatrix5x5, std::vector<double>, std::vector<float>, std::vector<int>,
std::vector<bool>, std::vector<unsigned int>, std::vector<unsigned long int>, std::vector<long long int>,
std::vector<long int>, std::vector<SIMDWrapper::scalar::float_v>, LHCb::LinAlg::Vec<double, 3>,
LHCb::LinAlg::Vec<double, 4>, LHCb::LinAlg::Vec<float, 3>, LHCb::LinAlg::Vec<float, 4>,
LHCb::LinAlg::Vec<SIMDWrapper::scalar::float_v, 3>, LHCb::LinAlg::Vec<SIMDWrapper::scalar::float_v, 4>,
LHCb::LinAlg::Vec3<double>, LHCb::LinAlg::Vec3<float>, LHCb::LinAlg::Vec3<SIMDWrapper::scalar::float_v>,
std::map<std::string, std::any>, ROOT::Math::SVector<double, 5>, ROOT::Math::SVector<double, 6>,
ROOT::Math::SVector<double, 7>, ROOT::Math::SVector<double, 8>, LHCb::State>();
inline const auto map_valtype_callcolfun =
make_map<bool, short int, unsigned short int, int, unsigned int, long int, unsigned long int, long long int,
unsigned long long int, SIMDWrapper::scalar::int_v, float, double, std::uint64_t, LHCb::ODIN::BXTypes,
LHCb::MCVertex::MCVertexType, IMCReconstructible::RecCategory, IMCReconstructed::RecCategory,
std::vector<LHCb::FlavourTagging::originTagCodes>, LHCb::Event::Enum::Track::History,
LHCb::Event::Enum::Track::FitHistory, LHCb::Event::Enum::Track::Type,
LHCb::Event::Enum::Track::FitStatus, LHCb::Event::Enum::Track::Flag, SIMDWrapper::scalar::float_v,
Gaudi::LorentzVector, Gaudi::XYZVector, Gaudi::XYZPoint, Gaudi::SymMatrix3x3, Gaudi::SymMatrix4x4,
Gaudi::SymMatrix5x5, std::vector<double>, std::vector<float>, std::vector<int>, std::vector<bool>,
std::vector<unsigned int>, std::vector<unsigned long int>, std::vector<long long int>,
std::vector<long int>, std::vector<SIMDWrapper::scalar::float_v>, LHCb::LinAlg::Vec<double, 3>,
LHCb::LinAlg::Vec<double, 4>, LHCb::LinAlg::Vec<float, 3>, LHCb::LinAlg::Vec<float, 4>,
LHCb::LinAlg::Vec<SIMDWrapper::scalar::float_v, 3>, LHCb::LinAlg::Vec<SIMDWrapper::scalar::float_v, 4>,
LHCb::LinAlg::Vec3<double>, LHCb::LinAlg::Vec3<float>, LHCb::LinAlg::Vec3<SIMDWrapper::scalar::float_v>,
std::map<std::string, std::any>, ROOT::Math::SVector<double, 5>, ROOT::Math::SVector<double, 6>,
ROOT::Math::SVector<double, 7>, ROOT::Math::SVector<double, 8>, LHCb::State>();
// fill function to loop through supported types invoking function that calls fill function
inline StatusCode fill_( const Tuples::Tuple& ntuple, const std::string& colname, std::any const& val ) {
Loading