File indexing completed on 2026-09-27 09:15:19
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef PANDORA_PARTICLE_FLOW_OBJECT_MANAGER_H
0009 #define PANDORA_PARTICLE_FLOW_OBJECT_MANAGER_H 1
0010
0011 #include "Managers/AlgorithmObjectManager.h"
0012
0013 #include "Pandora/ObjectCreation.h"
0014 #include "Pandora/PandoraInternal.h"
0015
0016 namespace pandora
0017 {
0018
0019
0020
0021
0022 class ParticleFlowObjectManager : public AlgorithmObjectManager<ParticleFlowObject>
0023 {
0024 public:
0025
0026
0027
0028
0029
0030 ParticleFlowObjectManager(const Pandora *const pPandora);
0031
0032
0033
0034
0035 ~ParticleFlowObjectManager();
0036
0037 private:
0038
0039
0040
0041
0042
0043
0044
0045 StatusCode Create(const object_creation::ParticleFlowObject::Parameters ¶meters, const ParticleFlowObject *&pPfo,
0046 const ObjectFactory<object_creation::ParticleFlowObject::Parameters, object_creation::ParticleFlowObject::Object> &factory);
0047
0048
0049
0050
0051
0052
0053
0054 StatusCode AlterMetadata(const ParticleFlowObject *const pPfo, const object_creation::ParticleFlowObject::Metadata &metadata) const;
0055
0056
0057
0058
0059
0060
0061
0062 template <typename T>
0063 StatusCode AddToPfo(const ParticleFlowObject *const pPfo, const T *const pT) const;
0064
0065
0066
0067
0068
0069
0070
0071 template <typename T>
0072 StatusCode RemoveFromPfo(const ParticleFlowObject *const pPfo, const T *const pT) const;
0073
0074
0075
0076
0077
0078
0079
0080 StatusCode SetParentDaughterAssociation(const ParticleFlowObject *const pParentPfo, const ParticleFlowObject *const pDaughterPfo) const;
0081
0082
0083
0084
0085
0086
0087
0088 StatusCode RemoveParentDaughterAssociation(const ParticleFlowObject *const pParentPfo, const ParticleFlowObject *const pDaughterPfo) const;
0089
0090 friend class PandoraApiImpl;
0091 friend class PandoraContentApiImpl;
0092 friend class PandoraImpl;
0093 };
0094
0095 }
0096
0097 #endif