|
|
|||
File indexing completed on 2026-09-27 09:20:10
0001 /** 0002 * @file PandoraSDK/include/Pandora/Pandora.h 0003 * 0004 * @brief Header file for the pandora class. 0005 * 0006 * $Log: $ 0007 */ 0008 #ifndef PANDORA_MAIN_H 0009 #define PANDORA_MAIN_H 1 0010 0011 #include "Pandora/PandoraInputTypes.h" 0012 #include "Pandora/StatusCodes.h" 0013 0014 #include <string> 0015 0016 namespace pandora 0017 { 0018 0019 class AlgorithmManager; 0020 class CaloHitManager; 0021 class ClusterManager; 0022 class EnergyCorrectionsPlugin; 0023 class EventContext; 0024 class EventContextObject; 0025 class GeometryManager; 0026 class MCManager; 0027 class PandoraApiImpl; 0028 class PandoraContentApiImpl; 0029 class PandoraImpl; 0030 class PandoraSettings; 0031 class ParticleFlowObjectManager; 0032 class ParticleIdPlugin; 0033 class PluginManager; 0034 class TrackManager; 0035 class VertexManager; 0036 0037 //------------------------------------------------------------------------------------------------------------------------------------------ 0038 0039 /** 0040 * @brief Pandora class 0041 */ 0042 class Pandora 0043 { 0044 public: 0045 /** 0046 * @brief Default constructor 0047 * 0048 * @param name descriptive name or label for the pandora instance 0049 */ 0050 Pandora(const std::string &name = ""); 0051 0052 /** 0053 * @brief Destructor 0054 */ 0055 ~Pandora(); 0056 0057 /** 0058 * @brief Get the pandora api impl 0059 * 0060 * @return Address of the pandora api impl 0061 */ 0062 const PandoraApiImpl *GetPandoraApiImpl() const; 0063 0064 /** 0065 * @brief Get the pandora content api impl 0066 * 0067 * @return Address of the pandora content api impl 0068 */ 0069 const PandoraContentApiImpl *GetPandoraContentApiImpl() const; 0070 0071 /** 0072 * @brief Get the pandora event instance 0073 * 0074 * @param key the key associated with the desired event context object 0075 * 0076 * @return the address of the pandora event instance 0077 */ 0078 const EventContextObject *GetEventContextObject(const std::string &key) const; 0079 0080 /** 0081 * @brief Get the pandora settings instance 0082 * 0083 * @return the address of the pandora settings instance 0084 */ 0085 const PandoraSettings *GetSettings() const; 0086 0087 /** 0088 * @brief Get the pandora geometry instance 0089 * 0090 * @return the address of the pandora geometry instance 0091 */ 0092 const GeometryManager *GetGeometry() const; 0093 0094 /** 0095 * @brief Get the pandora plugin instance, providing access to user registered functions and calculators 0096 * 0097 * @return the address of the pandora plugin instance 0098 */ 0099 const PluginManager *GetPlugins() const; 0100 0101 /** 0102 * @brief Get the descriptive name or label for the pandora instance 0103 * 0104 * @return the descriptive name or label for the pandora instance 0105 */ 0106 const std::string &GetName() const; 0107 0108 /** 0109 * @brief Get run number of the input data 0110 * 0111 * @return the run number of the input data 0112 */ 0113 unsigned int GetRun() const; 0114 0115 /** 0116 * @brief Get subrun number of the input data 0117 * 0118 * @return the subrun number of the input data 0119 */ 0120 unsigned int GetSubrun() const; 0121 0122 /** 0123 * @brief Get event number of the input data 0124 * 0125 * @return the event number of the input data 0126 */ 0127 unsigned int GetEvent() const; 0128 0129 private: 0130 /** 0131 * @brief Prepare event, calculating properties of input objects for later use in algorithms 0132 */ 0133 StatusCode PrepareEvent(); 0134 0135 /** 0136 * @brief Process event, calling event prepare event function, then running the algorithms 0137 */ 0138 StatusCode ProcessEvent(); 0139 0140 /** 0141 * @brief Reset event, calling manager reset functions and any registered reset functions 0142 */ 0143 StatusCode ResetEvent(); 0144 0145 /** 0146 * @brief Get event number of the input data 0147 * 0148 * @param the run number of the input data 0149 * @param the subrun number of the input data 0150 * @param the event number of the input data 0151 */ 0152 StatusCode SetEventInformation(const unsigned int run, const unsigned int subrun, const unsigned int event); 0153 0154 /** 0155 * @brief Adds an EventContextObject object to this event context. 0156 * 0157 * @param key the key to associate with the event context object 0158 * @param pObject the object to be stored 0159 */ 0160 void AddEventContextObject(const std::string &key, const EventContextObject *const pObject); 0161 0162 /** 0163 * @brief Replaces an EventContextObject object within this event context. 0164 * 0165 * @param key the key of the event context object to replace 0166 * @param pObject the new object to be stored 0167 */ 0168 void ReplaceEventContextObject(const std::string &key, const EventContextObject *const pObject); 0169 0170 /** 0171 * @brief Remove an EventContextObject object from this event context. 0172 * 0173 * @param key the key of the event context object to be removed 0174 */ 0175 void RemoveEventContextObject(const std::string &key); 0176 0177 /** 0178 * @brief Read pandora settings 0179 * 0180 * @param xmlFileName the name of the xml file containing the settings 0181 */ 0182 StatusCode ReadSettings(const std::string &xmlFileName); 0183 0184 AlgorithmManager *m_pAlgorithmManager; ///< The algorithm manager 0185 CaloHitManager *m_pCaloHitManager; ///< The hit manager 0186 ClusterManager *m_pClusterManager; ///< The cluster manager 0187 GeometryManager *m_pGeometryManager; ///< The geometry manager 0188 MCManager *m_pMCManager; ///< The MC manager 0189 ParticleFlowObjectManager *m_pPfoManager; ///< The particle flow object manager 0190 PluginManager *m_pPluginManager; ///< The pandora plugin manager 0191 TrackManager *m_pTrackManager; ///< The track manager 0192 VertexManager *m_pVertexManager; ///< The vertex manager 0193 0194 PandoraSettings *m_pPandoraSettings; ///< The pandora settings instance 0195 PandoraApiImpl *m_pPandoraApiImpl; ///< The pandora api implementation 0196 PandoraContentApiImpl *m_pPandoraContentApiImpl; ///< The pandora content api implementation 0197 PandoraImpl *m_pPandoraImpl; ///< The pandora implementation 0198 EventContext *m_pEventContext; ///< The event instance 0199 0200 std::string m_name; ///< The descriptive name or label for the pandora instance 0201 InputUInt m_run; ///< the run number of the input data 0202 InputUInt m_subrun; ///< the subrun number of the input data 0203 InputUInt m_event; ///< the event number of the input data 0204 0205 friend class PandoraApiImpl; 0206 friend class PandoraContentApiImpl; 0207 friend class PandoraImpl; 0208 }; 0209 0210 } // namespace pandora 0211 0212 #endif // #ifndef PANDORA_MAIN_H
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|