8#ifndef PANDORA_ALGORITHM_MANAGER_H
9#define PANDORA_ALGORITHM_MANAGER_H 1
19class AlgorithmFactory;
20class AlgorithmToolFactory;
Header file defining relevant internal typedefs, sort and string conversion functions.
Header file defining status codes and relevant preprocessor macros.
Factory class for instantiating algorithms.
StatusCode CreateAlgorithmTool(TiXmlElement *const pXmlElement, AlgorithmTool *&pAlgorithmTool)
Create an algorithm tool, via one of the algorithm tool factories registered with pandora.
StatusCode RegisterAlgorithmToolFactory(const std::string &algorithmToolType, AlgorithmToolFactory *const pAlgorithmToolFactory)
Register an algorithm tool factory.
const StringVector & GetPandoraAlgorithms() const
Get the list of algorithms to be run by pandora.
const Pandora *const m_pPandora
The pandora instance that will run the algorithms.
StatusCode InitializeAlgorithms(const TiXmlHandle *const pXmlHandle)
Initialize algorithms.
std::map< const std::string, AlgorithmFactory *const > AlgorithmFactoryMap
AlgorithmToolVector m_algorithmToolVector
The algorithm tool vector.
std::map< const std::string, const std::string > SpecificAlgorithmInstanceMap
StatusCode ResetForNextEvent()
Call the reset callback in all managed algorithms and algorithm tools.
StatusCode RegisterAlgorithmFactory(const std::string &algorithmType, AlgorithmFactory *const pAlgorithmFactory)
Register an algorithm factory.
SpecificAlgorithmInstanceMap m_specificAlgorithmInstanceMap
The specific algorithm instance map.
AlgorithmMap m_algorithmMap
The algorithm map.
std::map< const std::string, Algorithm *const > AlgorithmMap
StatusCode FindSpecificAlgorithmInstance(TiXmlElement *const pXmlElement, std::string &algorithmName, std::string &xmlInstanceLabel) const
Find the name of a specific algorithm instance, so that it can be re-used.
~AlgorithmManager()
Destructor.
StatusCode CreateAlgorithm(TiXmlElement *const pXmlElement, std::string &algorithmName)
Create an algorithm, via one of the algorithm factories registered with pandora.
AlgorithmFactoryMap m_algorithmFactoryMap
The algorithm factory map.
AlgorithmToolFactoryMap m_algorithmToolFactoryMap
The algorithm tool factory map.
std::map< const std::string, AlgorithmToolFactory *const > AlgorithmToolFactoryMap
StringVector m_pandoraAlgorithms
The ordered list of names of top-level algorithms, to be run by pandora.
PandoraContentApiImpl class.
std::vector< std::string > StringVector
std::vector< AlgorithmTool * > AlgorithmToolVector
StatusCode
The StatusCode enum.