Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
MultiPandoraApi.h
Go to the documentation of this file.
1
8#ifndef MULTI_PANDORA_API_H
9#define MULTI_PANDORA_API_H 1
10
11#include <unordered_map>
12#include <vector>
13
14namespace pandora
15{
16class Pandora;
18} // namespace pandora
19
21
22typedef std::vector<const pandora::Pandora *> PandoraInstanceList;
23typedef std::unordered_map<const pandora::Pandora *, PandoraInstanceList> PandoraInstanceMap;
24
25//------------------------------------------------------------------------------------------------------------------------------------------
26
31{
32public:
39
48 static const pandora::Pandora *GetPandoraInstance(const pandora::Pandora *const pPrimaryPandora, const unsigned int volumeId);
49
57 static const PandoraInstanceList &GetDaughterPandoraInstanceList(const pandora::Pandora *const pPrimaryPandora);
58
66 static const pandora::Pandora *GetPrimaryPandoraInstance(const pandora::Pandora *const pDaughterPandora);
67
75 static unsigned int GetVolumeId(const pandora::Pandora *const pPandora);
76
84 static void AddPrimaryPandoraInstance(const pandora::Pandora *const pPrimaryPandora);
85
92 static void AddDaughterPandoraInstance(const pandora::Pandora *const pPrimaryPandora, const pandora::Pandora *const pDaughterPandora);
93
99 static void DeletePandoraInstances(const pandora::Pandora *const pPrimaryPandora);
100
107 static void SetVolumeId(const pandora::Pandora *const pPandora, const unsigned int volumeId);
108
109private:
111};
112
113#endif // #ifndef MULTI_PANDORA_API_H
std::unordered_map< const pandora::Pandora *, PandoraInstanceList > PandoraInstanceMap
std::vector< const pandora::Pandora * > PandoraInstanceList
MultiPandoraApi class.
static void AddDaughterPandoraInstance(const pandora::Pandora *const pPrimaryPandora, const pandora::Pandora *const pDaughterPandora)
Add a pandora daughter instance, associated to a primary pandora instance.
static MultiPandoraApiImpl m_multiPandoraApiImpl
The multi pandora api implementation.
static const PandoraInstanceMap & GetPandoraInstanceMap()
Get the pandora instance map.
static const pandora::Pandora * GetPrimaryPandoraInstance(const pandora::Pandora *const pDaughterPandora)
Get the address of the primary pandora instance associated with a given daughter pandora instance.
static const PandoraInstanceList & GetDaughterPandoraInstanceList(const pandora::Pandora *const pPrimaryPandora)
Get the list of daughter pandora instances associated with a given primary pandora instance.
static void SetVolumeId(const pandora::Pandora *const pPandora, const unsigned int volumeId)
Set the volume id associated with a given pandora instance.
static unsigned int GetVolumeId(const pandora::Pandora *const pPandora)
Get the volume id associated with a given pandora instance.
static const pandora::Pandora * GetPandoraInstance(const pandora::Pandora *const pPrimaryPandora, const unsigned int volumeId)
Get the address of the pandora instance associated with a given primary pandora instance and volume i...
static void DeletePandoraInstances(const pandora::Pandora *const pPrimaryPandora)
Delete all pandora instances associated with (and including) a specified primary pandora instance.
static void AddPrimaryPandoraInstance(const pandora::Pandora *const pPrimaryPandora)
Declare a new primary pandora instance and receive the relevant multi pandora book-keeping instance.
MultiPandoraApiImpl class.
Pandora class.
Definition Pandora.h:40
ObjectCreationHelper< ParticleFlowObjectCreation, ParticleFlowObjectMetadata, pandora::ParticleFlowObject > ParticleFlowObject