Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-27 09:15:18

0001 /**
0002  *  @file   PandoraSDK/include/Managers/InputObjectManager.h
0003  * 
0004  *  @brief  Header file for the input object manager class.
0005  * 
0006  *  $Log: $
0007  */
0008 #ifndef PANDORA_INPUT_OBJECT_MANAGER
0009 #define PANDORA_INPUT_OBJECT_MANAGER 1
0010 
0011 #include "Managers/Manager.h"
0012 
0013 namespace pandora
0014 {
0015 
0016 /**
0017  *  @brief  InputObjectManager class
0018  */
0019 template<typename T>
0020 class InputObjectManager : public Manager<T>
0021 {
0022 public:
0023     /**
0024      *  @brief  Constructor
0025      * 
0026      *  @param  pPandora address of the associated pandora object
0027      */
0028     InputObjectManager(const Pandora *const pPandora);
0029 
0030     /**
0031      *  @brief  Destructor
0032      */
0033     virtual ~InputObjectManager();
0034 
0035 protected:
0036     typedef typename Manager<T>::ObjectList ObjectList;
0037 
0038     /**
0039      *  @brief  Create the input list (accessible to algorithms), using objects created by client application
0040      */
0041     virtual StatusCode CreateInputList();
0042 
0043     using Manager<T>::CreateTemporaryListAndSetCurrent;
0044 
0045     /**
0046      *  @brief  Change the current list to a specified temporary list
0047      *
0048      *  @param  pAlgorithm address of the algorithm changing the current list
0049      *  @param  objectList the specified temporary list
0050      *  @param  temporaryListName to receive the name of the temporary list
0051      */
0052     virtual StatusCode CreateTemporaryListAndSetCurrent(const Algorithm *const pAlgorithm, const ObjectList &objectList,
0053         std::string &temporaryListName);
0054 
0055     /**
0056      *  @brief  Save a list of objects in a list with a specified name; create new list if required
0057      * 
0058      *  @param  listName the list name
0059      *  @param  objectList the object list
0060      */
0061     virtual StatusCode SaveList(const std::string &listName, const ObjectList &objectList);
0062 
0063     /**
0064      *  @brief  Add objects to a saved list with a specified name
0065      *
0066      *  @param  listName the list to add the objects to
0067      *  @param  objectList the list of objects to be added
0068      */
0069     virtual StatusCode AddObjectsToList(const std::string &listName, const ObjectList &objectList);
0070 
0071     /**
0072      * @brief Remove objects from a saved list
0073      *
0074      * @param listName the list to remove the objects from
0075      * @param objectList the list of objects to be removed
0076      */
0077     virtual StatusCode RemoveObjectsFromList(const std::string &listName, const ObjectList &objectList);
0078 
0079     /**
0080      *  @brief  Rename a saved list, altering its saved name from a specified old list name to a specified new list name
0081      * 
0082      *  @param  oldListName the old list name
0083      *  @param  newListName the new list name
0084      */
0085     virtual StatusCode RenameList(const std::string &oldListName, const std::string &newListName);
0086 
0087     /**
0088      *  @brief  Erase all manager content
0089      */
0090     virtual StatusCode EraseAllContent();
0091 
0092     /**
0093      *  @brief  Create initial lists
0094      */
0095     virtual StatusCode CreateInitialLists();
0096 
0097     const std::string               m_inputListName;                    ///< The name of the input list
0098 };
0099 
0100 } // namespace pandora
0101 
0102 #endif // #ifndef PANDORA_INPUT_OBJECT_MANAGER