Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-27 09:20:10

0001 /**
0002  *  @file   PandoraSDK/include/Pandora/AlgorithmTool.h
0003  * 
0004  *  @brief  Header file for the algorithm tool class.
0005  * 
0006  *  $Log: $
0007  */
0008 #ifndef PANDORA_ALGORITHM_TOOL_H
0009 #define PANDORA_ALGORITHM_TOOL_H 1
0010 
0011 #include "Pandora/Process.h"
0012 
0013 namespace pandora
0014 {
0015 
0016 /**
0017  *  @brief  AlgorithmTool class. Algorithm tools will tend to be tailored for specific parent algorithms, which will define
0018  *          their interface. Unlike standard daughter algorithms, algorithm tools can be accessed directly via parent algorithms
0019  *          and there is no change in the pandora list-management when a parent algorithm runs its daughter algorithm tools.
0020  */
0021 class AlgorithmTool : public Process
0022 {
0023 protected:
0024     friend class AlgorithmManager;
0025 };
0026 
0027 //------------------------------------------------------------------------------------------------------------------------------------------
0028 //------------------------------------------------------------------------------------------------------------------------------------------
0029 
0030 /**
0031  *  @brief  Factory class for instantiating algorithm tools
0032  */
0033 class AlgorithmToolFactory
0034 {
0035 public:
0036     /**
0037      *  @brief  Create an instance of an algorithm
0038      * 
0039      *  @return the address of the algorithm instance
0040      */
0041     virtual AlgorithmTool *CreateAlgorithmTool() const = 0;
0042 
0043     /**
0044      *  @brief  Destructor
0045      */
0046     virtual ~AlgorithmToolFactory();
0047 };
0048 
0049 //------------------------------------------------------------------------------------------------------------------------------------------
0050 
0051 inline AlgorithmToolFactory::~AlgorithmToolFactory()
0052 {
0053 }
0054 
0055 } // namespace pandora
0056 
0057 #endif // #ifndef PANDORA_ALGORITHM_TOOL_H