From 72aff6b2edac00eebc83f38b0b73567f6eb17776 Mon Sep 17 00:00:00 2001 From: Dan Guest Date: Tue, 20 Jul 2021 19:57:15 +0200 Subject: [PATCH 1/2] Add BTaggingBuilderAlg --- .../FlavorTagDiscriminants/CMakeLists.txt | 1 + .../BTaggingBuilderAlg.h | 39 ++++++++++++++ .../src/BTaggingBuilderAlg.cxx | 53 +++++++++++++++++++ .../FlavorTagDiscriminants_entries.cxx | 2 + 4 files changed, 95 insertions(+) create mode 100644 PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTaggingBuilderAlg.h create mode 100644 PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/BTaggingBuilderAlg.cxx diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/CMakeLists.txt b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/CMakeLists.txt index 1b1f94a8f0e..3effedc9116 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/CMakeLists.txt +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/CMakeLists.txt @@ -46,6 +46,7 @@ if (NOT XAOD_STANDALONE) src/BTagDecoratorAlg.cxx src/BTagToJetLinkerAlg.cxx src/BTagTrackLinkCopyAlg.cxx + src/BTaggingBuilderAlg.cxx src/components/FlavorTagDiscriminants_entries.cxx LINK_LIBRARIES FlavorTagDiscriminants ) diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTaggingBuilderAlg.h b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTaggingBuilderAlg.h new file mode 100644 index 00000000000..028715ff46d --- /dev/null +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTaggingBuilderAlg.h @@ -0,0 +1,39 @@ +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef BTAGGING_BUILDER_ALG_H +#define BTAGGING_BUILDER_ALG_H + +#include "AthenaBaseComps/AthReentrantAlgorithm.h" + +#include "xAODBTagging/BTaggingContainer.h" +#include "xAODJet/JetContainer.h" +#include "StoreGate/WriteDecorHandleKey.h" +#include "StoreGate/WriteHandleKey.h" +#include "StoreGate/ReadHandleKey.h" + +namespace FlavorTagDiscriminants { + class BTaggingBuilderAlg : public AthReentrantAlgorithm + { + public: + BTaggingBuilderAlg(const std::string& name, ISvcLocator* svcloc); + virtual StatusCode initialize() override; + virtual StatusCode execute(const EventContext& cxt) const override; + virtual StatusCode finalize() override; + private: + + // Typedef things here in case I ever want to make this more generic. + using BC = xAOD::BTaggingContainer; + using JC = xAOD::JetContainer; + + SG::ReadHandleKey m_jetKey { + this, "jetCollectionName", "", "name of the jets to b-tag"}; + SG::WriteHandleKey m_btaggingKey { + this, "btaggingName", "", "Name for the b-tagging container"}; + SG::WriteDecorHandleKey m_jetLinkKey { + this, "jetLinkName", "", "Destination container name + '.jetLink'"}; + }; +} + +#endif diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/BTaggingBuilderAlg.cxx b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/BTaggingBuilderAlg.cxx new file mode 100644 index 00000000000..04c808acf1c --- /dev/null +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/BTaggingBuilderAlg.cxx @@ -0,0 +1,53 @@ +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#include "FlavorTagDiscriminants/BTaggingBuilderAlg.h" +#include "xAODBTagging/BTaggingAuxContainer.h" +#include "StoreGate/WriteDecorHandle.h" + + +namespace FlavorTagDiscriminants { + BTaggingBuilderAlg::BTaggingBuilderAlg( + const std::string& name, ISvcLocator* svcloc): + AthReentrantAlgorithm(name, svcloc) + { + } + + + StatusCode BTaggingBuilderAlg::initialize() { + ATH_CHECK(m_jetKey.initialize()); + ATH_CHECK(m_btaggingKey.initialize()); + m_jetLinkKey = m_btaggingKey.key() + ".jetLink"; + ATH_CHECK(m_jetLinkKey.initialize()); + return StatusCode::SUCCESS; + } + + + StatusCode BTaggingBuilderAlg::execute(const EventContext& cxt) const { + // Note: BC = BTagging container, JC = JetContainer, see the + // typedefs in the header file + + SG::ReadHandle jets(m_jetKey, cxt); + SG::WriteHandle btagging(m_btaggingKey, cxt); + ATH_CHECK(btagging.record( + std::make_unique(), + std::make_unique()) + ); + SG::WriteDecorHandle> jetLinks(m_jetLinkKey, cxt); + + for (const xAOD::Jet* jet: *jets) { + + auto btag = std::make_unique(); + jetLinks(*btag) = ElementLink(m_jetKey.hashedKey(), jet->index()); + btagging->push_back(std::move(btag)); + + } + return StatusCode::SUCCESS; + } + + StatusCode BTaggingBuilderAlg::finalize() { + return StatusCode::SUCCESS; + } + +} diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/components/FlavorTagDiscriminants_entries.cxx b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/components/FlavorTagDiscriminants_entries.cxx index f13534d84c6..e043ff2f8fe 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/components/FlavorTagDiscriminants_entries.cxx +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/components/FlavorTagDiscriminants_entries.cxx @@ -10,6 +10,7 @@ #include "FlavorTagDiscriminants/BTagDecoratorAlg.h" #include "FlavorTagDiscriminants/BTagToJetLinkerAlg.h" #include "FlavorTagDiscriminants/BTagTrackLinkCopyAlg.h" +#include "FlavorTagDiscriminants/BTaggingBuilderAlg.h" using namespace FlavorTagDiscriminants; @@ -21,3 +22,4 @@ DECLARE_COMPONENT(BTagMuonAugmenterTool) DECLARE_COMPONENT(BTagDecoratorAlg) DECLARE_COMPONENT(BTagToJetLinkerAlg) DECLARE_COMPONENT(BTagTrackLinkCopyAlg) +DECLARE_COMPONENT(BTaggingBuilderAlg) -- GitLab From d22698002f76d3250b510aa59b60c9ccc6785f6c Mon Sep 17 00:00:00 2001 From: Dan Guest Date: Wed, 21 Jul 2021 09:58:59 +0200 Subject: [PATCH 2/2] Add JetToBTagLinkerAlg --- .../FlavorTagDiscriminants/CMakeLists.txt | 1 + .../BTagToJetLinkerAlg.h | 45 +++-------- .../BTaggingBuilderAlg.h | 2 +- .../FlavorTagDiscriminants/BacklinkAlg.h | 45 +++++++++++ .../FlavorTagDiscriminants/BacklinkAlg.icc | 80 +++++++++++++++++++ .../JetToBTagLinkerAlg.h | 27 +++++++ .../src/BTagToJetLinkerAlg.cxx | 71 ++-------------- .../src/BTaggingBuilderAlg.cxx | 11 ++- .../src/JetToBTagLinkerAlg.cxx | 11 +++ .../FlavorTagDiscriminants_entries.cxx | 2 + 10 files changed, 194 insertions(+), 101 deletions(-) create mode 100644 PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BacklinkAlg.h create mode 100644 PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BacklinkAlg.icc create mode 100644 PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/JetToBTagLinkerAlg.h create mode 100644 PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/JetToBTagLinkerAlg.cxx diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/CMakeLists.txt b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/CMakeLists.txt index 3effedc9116..eb9f3bca120 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/CMakeLists.txt +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/CMakeLists.txt @@ -45,6 +45,7 @@ if (NOT XAOD_STANDALONE) atlas_add_component( FlavorTagDiscriminantsLib src/BTagDecoratorAlg.cxx src/BTagToJetLinkerAlg.cxx + src/JetToBTagLinkerAlg.cxx src/BTagTrackLinkCopyAlg.cxx src/BTaggingBuilderAlg.cxx src/components/FlavorTagDiscriminants_entries.cxx diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagToJetLinkerAlg.h b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagToJetLinkerAlg.h index a55a805906d..32831597cc5 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagToJetLinkerAlg.h +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTagToJetLinkerAlg.h @@ -5,42 +5,21 @@ #ifndef BTAG_TO_JET_LINKER_ALG_H #define BTAG_TO_JET_LINKER_ALG_H -#include "AthenaBaseComps/AthReentrantAlgorithm.h" - +#include "FlavorTagDiscriminants/BacklinkAlg.h" #include "xAODBTagging/BTaggingContainer.h" #include "xAODJet/JetContainer.h" -#include "StoreGate/WriteDecorHandleKey.h" -#include "StoreGate/ReadDecorHandleKey.h" - -namespace FlavorTagDiscriminants { - class BTagToJetLinkerAlg : public AthReentrantAlgorithm - { - public: - BTagToJetLinkerAlg(const std::string& name, ISvcLocator* svcloc); - virtual StatusCode initialize() override; - virtual StatusCode execute(const EventContext& cxt) const override; - virtual StatusCode finalize() override; - private: - - // Typedef things here in case I ever want to make this more generic. - using BC = xAOD::BTaggingContainer; - using JC = xAOD::JetContainer; - // Better would be to make everything work with AuxElement, e.g. - // - // using EC = DataVector; - // using BC = EC; - // using JC = EC; - // - // But I haven't figured out how to make this work (I'd need to - // assign a class ID, and even then I'm not sure it would be - // supported). - - SG::ReadDecorHandleKey m_btagLink { - this, "jetToBtagLink", "", "Jet container name + . + btaggingLink"}; - SG::WriteDecorHandleKey m_jetLink { - this, "btagToJetLink", "", "Link from btag container to jet"}; - }; +namespace detail { + using BTagToJet_t = FlavorTagDiscriminants::BacklinkAlg< + xAOD::JetContainer, + xAOD::BTaggingContainer>; } +// We seem to need a derived class to force Athena to build this. +class BTagToJetLinkerAlg: public detail::BTagToJet_t +{ +public: + BTagToJetLinkerAlg(const std::string& name, ISvcLocator* svcloc); +}; + #endif diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTaggingBuilderAlg.h b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTaggingBuilderAlg.h index 028715ff46d..2aa6aeec10f 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTaggingBuilderAlg.h +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BTaggingBuilderAlg.h @@ -28,7 +28,7 @@ namespace FlavorTagDiscriminants { using JC = xAOD::JetContainer; SG::ReadHandleKey m_jetKey { - this, "jetCollectionName", "", "name of the jets to b-tag"}; + this, "jetName", "", "name of the jets to b-tag"}; SG::WriteHandleKey m_btaggingKey { this, "btaggingName", "", "Name for the b-tagging container"}; SG::WriteDecorHandleKey m_jetLinkKey { diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BacklinkAlg.h b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BacklinkAlg.h new file mode 100644 index 00000000000..90983000e8b --- /dev/null +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BacklinkAlg.h @@ -0,0 +1,45 @@ +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef BACKLINK_ALG_H +#define BACKLINK_ALG_H + +#include "AthenaBaseComps/AthReentrantAlgorithm.h" + +#include "xAODBTagging/BTaggingContainer.h" +#include "xAODJet/JetContainer.h" +#include "StoreGate/WriteDecorHandleKey.h" +#include "StoreGate/ReadDecorHandleKey.h" + +namespace FlavorTagDiscriminants { + template + class BacklinkAlg : public AthReentrantAlgorithm + { + public: + BacklinkAlg(const std::string& name, ISvcLocator* svcloc); + virtual StatusCode initialize() override; + virtual StatusCode execute(const EventContext& cxt) const override; + virtual StatusCode finalize() override; + private: + + // Better would be to make everything work with AuxElement, e.g. + // + // using EC = DataVector; + // using NEW = EC; + // using OLD = EC; + // + // But I haven't figured out how to make this work (I'd need to + // assign a class ID, and even then I'm not sure it would be + // supported). + + SG::ReadDecorHandleKey m_oldLink { + this, "oldLink", "", "Existing link"}; + SG::WriteDecorHandleKey m_newLink { + this, "newLink", "", "Link to be added"}; + }; +} + +#include "BacklinkAlg.icc" + +#endif diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BacklinkAlg.icc b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BacklinkAlg.icc new file mode 100644 index 00000000000..911f6a09ea2 --- /dev/null +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/BacklinkAlg.icc @@ -0,0 +1,80 @@ +// In case the extension is confusing, this is a -*- C++ -*- file +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#include "xAODBTagging/BTaggingContainer.h" +#include "xAODJet/JetContainer.h" + +#include "FlavorTagDiscriminants/BacklinkAlg.h" +#include "StoreGate/WriteDecorHandle.h" +#include "StoreGate/ReadDecorHandle.h" + + +namespace FlavorTagDiscriminants { + + template + BacklinkAlg::BacklinkAlg( + const std::string& name, ISvcLocator* svcloc): + AthReentrantAlgorithm(name, svcloc) + { + } + + + template + StatusCode BacklinkAlg::initialize() { + ATH_CHECK(m_oldLink.initialize()); + ATH_CHECK(m_newLink.initialize()); + return StatusCode::SUCCESS; + } + + + template + StatusCode BacklinkAlg::execute(const EventContext& cxt) const { + // Note: NEW = BTagging container, OLD = JetContainer, see the + // typedefs in the header file + SG::ReadDecorHandle> oldLinks(m_oldLink, cxt); + if (!oldLinks.isValid()) { + ATH_MSG_ERROR("no old container " << oldLinks.key()); + return StatusCode::FAILURE; + } + SG::WriteDecorHandle> newLinks(m_newLink, cxt); + + for (const SG::AuxElement* old_element: *oldLinks) { + + const auto& old_link = oldLinks(*old_element); + + // let's check to make sure the links are valid and that they + // point where we think they do + if (!old_link.isValid()) { + ATH_MSG_ERROR("invalid old link!"); + return StatusCode::FAILURE; + } + SG::sgkey_t hashFromContainer = m_newLink.contHandleKey().hashedKey(); + SG::sgkey_t hashFromLink = old_link.key(); + if (hashFromLink != hashFromContainer) { + ATH_MSG_ERROR( + "Your link points to '" << old_link.dataID() + << "' but you're trying to add this link to '" + << m_newLink.contHandleKey().key() << "'"); + return StatusCode::FAILURE; + } + + const SG::AuxElement* new_element = *old_link; + // we're linking _to_ the container where the OLD link exists + // already, so the ElementLink type is OLD. + ElementLink newLink(m_oldLink.contHandleKey().hashedKey(), + old_element->index(), cxt); + newLinks(*new_element) = newLink; + + } + return StatusCode::SUCCESS; + } + + + template + StatusCode BacklinkAlg::finalize() { + return StatusCode::SUCCESS; + } + +} diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/JetToBTagLinkerAlg.h b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/JetToBTagLinkerAlg.h new file mode 100644 index 00000000000..b81b628d3cc --- /dev/null +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/FlavorTagDiscriminants/JetToBTagLinkerAlg.h @@ -0,0 +1,27 @@ +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef JET_TO_BTAG_LINKER_ALG_H +#define JET_TO_BTAG_LINKER_ALG_H + +#include "FlavorTagDiscriminants/BacklinkAlg.h" +#include "xAODBTagging/BTaggingContainer.h" +#include "xAODJet/JetContainer.h" + +namespace detail { + using JetToBTag_t = FlavorTagDiscriminants::BacklinkAlg< + xAOD::BTaggingContainer, + xAOD::JetContainer + >; +} + +// We seem to need a derived class to force Athena to build this. +class JetToBTagLinkerAlg: public detail::JetToBTag_t +{ +public: + JetToBTagLinkerAlg(const std::string& name, ISvcLocator* svcloc); +}; + + +#endif diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/BTagToJetLinkerAlg.cxx b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/BTagToJetLinkerAlg.cxx index 72540f34520..3da631247a3 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/BTagToJetLinkerAlg.cxx +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/BTagToJetLinkerAlg.cxx @@ -2,71 +2,10 @@ Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration */ -#include "xAODBTagging/BTaggingContainer.h" -#include "xAODJet/JetContainer.h" - #include "FlavorTagDiscriminants/BTagToJetLinkerAlg.h" -#include "StoreGate/WriteDecorHandle.h" -#include "StoreGate/ReadDecorHandle.h" - - -namespace FlavorTagDiscriminants { - BTagToJetLinkerAlg::BTagToJetLinkerAlg( - const std::string& name, ISvcLocator* svcloc): - AthReentrantAlgorithm(name, svcloc) - { - } - - - StatusCode BTagToJetLinkerAlg::initialize() { - ATH_CHECK(m_btagLink.initialize()); - ATH_CHECK(m_jetLink.initialize()); - return StatusCode::SUCCESS; - } - - - StatusCode BTagToJetLinkerAlg::execute(const EventContext& cxt) const { - // Note: BC = BTagging container, JC = JetContainer, see the - // typedefs in the header file - SG::ReadDecorHandle> btagLinks(m_btagLink, cxt); - if (!btagLinks.isValid()) { - ATH_MSG_ERROR("no btag container " << btagLinks.key()); - return StatusCode::FAILURE; - } - SG::WriteDecorHandle> jetLinks(m_jetLink, cxt); - - for (const SG::AuxElement* jet: *btagLinks) { - - const auto& btag_link = btagLinks(*jet); - - // let's check to make sure the links are valid and that they - // point where we think they do - if (!btag_link.isValid()) { - ATH_MSG_ERROR("invalid btag link!"); - return StatusCode::FAILURE; - } - SG::sgkey_t hashFromContainer = m_jetLink.contHandleKey().hashedKey(); - SG::sgkey_t hashFromLink = btag_link.key(); - if (hashFromLink != hashFromContainer) { - ATH_MSG_ERROR( - "Your jet -> btagging link points to '" << btag_link.dataID() - << "' but you're trying to add this link to '" - << m_jetLink.contHandleKey().key() << "'"); - return StatusCode::FAILURE; - } - - const SG::AuxElement* btag = *btag_link; - ElementLink jetLink(m_btagLink.contHandleKey().hashedKey(), - jet->index(), cxt); - jetLinks(*btag) = jetLink; - - } - return StatusCode::SUCCESS; - } - - - StatusCode BTagToJetLinkerAlg::finalize() { - return StatusCode::SUCCESS; - } -} +BTagToJetLinkerAlg::BTagToJetLinkerAlg( + const std::string& name, + ISvcLocator* svcloc): + detail::BTagToJet_t(name, svcloc) +{} diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/BTaggingBuilderAlg.cxx b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/BTaggingBuilderAlg.cxx index 04c808acf1c..82b8caead3b 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/BTaggingBuilderAlg.cxx +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/BTaggingBuilderAlg.cxx @@ -30,6 +30,7 @@ namespace FlavorTagDiscriminants { SG::ReadHandle jets(m_jetKey, cxt); SG::WriteHandle btagging(m_btaggingKey, cxt); + ATH_CHECK(jets.isValid()); ATH_CHECK(btagging.record( std::make_unique(), std::make_unique()) @@ -38,14 +39,22 @@ namespace FlavorTagDiscriminants { for (const xAOD::Jet* jet: *jets) { + // the really odd looking charade below is, sadly, the cleanest + // way to put something in auxdata. The object _must_ be added + // to the vector before the auxdata is assigned! auto btag = std::make_unique(); - jetLinks(*btag) = ElementLink(m_jetKey.hashedKey(), jet->index()); + auto b_ptr = btag.get(); btagging->push_back(std::move(btag)); + // swap the lines above and below and this code will segfault. + jetLinks(*b_ptr) = ElementLink(m_jetKey.hashedKey(), jet->index()); } + return StatusCode::SUCCESS; + } + StatusCode BTaggingBuilderAlg::finalize() { return StatusCode::SUCCESS; } diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/JetToBTagLinkerAlg.cxx b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/JetToBTagLinkerAlg.cxx new file mode 100644 index 00000000000..11bb22dc901 --- /dev/null +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/JetToBTagLinkerAlg.cxx @@ -0,0 +1,11 @@ +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#include "FlavorTagDiscriminants/JetToBTagLinkerAlg.h" + +JetToBTagLinkerAlg::JetToBTagLinkerAlg( + const std::string& name, + ISvcLocator* svcloc): + detail::JetToBTag_t(name, svcloc) +{} diff --git a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/components/FlavorTagDiscriminants_entries.cxx b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/components/FlavorTagDiscriminants_entries.cxx index e043ff2f8fe..fdd2393b0de 100644 --- a/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/components/FlavorTagDiscriminants_entries.cxx +++ b/PhysicsAnalysis/JetTagging/FlavorTagDiscriminants/src/components/FlavorTagDiscriminants_entries.cxx @@ -9,6 +9,7 @@ #include "FlavorTagDiscriminants/BTagMuonAugmenterTool.h" #include "FlavorTagDiscriminants/BTagDecoratorAlg.h" #include "FlavorTagDiscriminants/BTagToJetLinkerAlg.h" +#include "FlavorTagDiscriminants/JetToBTagLinkerAlg.h" #include "FlavorTagDiscriminants/BTagTrackLinkCopyAlg.h" #include "FlavorTagDiscriminants/BTaggingBuilderAlg.h" @@ -21,5 +22,6 @@ DECLARE_COMPONENT(BTagAugmenterTool) DECLARE_COMPONENT(BTagMuonAugmenterTool) DECLARE_COMPONENT(BTagDecoratorAlg) DECLARE_COMPONENT(BTagToJetLinkerAlg) +DECLARE_COMPONENT(JetToBTagLinkerAlg) DECLARE_COMPONENT(BTagTrackLinkCopyAlg) DECLARE_COMPONENT(BTaggingBuilderAlg) -- GitLab