/* Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration */ #ifndef DECORATOR_ALG_H #define DECORATOR_ALG_H #include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "StoreGate/WriteDecorHandleKey.h" #include "StoreGate/ReadDecorHandleKey.h" namespace FlavorTagDiscriminants { template class DecoratorAlg : public AthReentrantAlgorithm { public: DecoratorAlg(const std::string& name, ISvcLocator* svcloc); virtual StatusCode initialize() override; virtual StatusCode execute(const EventContext& cxt) const override; virtual StatusCode finalize() override; private: SG::ReadHandleKey m_containerKey { this, "container", "", "Key for the input collection"}; SG::ReadHandleKey m_constituentKey { this, "constituentContainer", "", "Key for track inputs container"}; Gaudi::Property> m_undeclaredReadDecorKeys { this, "undeclaredReadDecorKeys", {}, "List of read handles that we don't read, e.g. static variables" }; ToolHandle m_decorator{ this, "decorator", "", "Decorator tool"}; // Keys to keep track of the inputs / outputs std::vector> m_aux; std::vector> m_constituentAux; std::vector> m_decor; }; } #include "DecoratorAlg.icc" #endif