Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
MultiPandoraApiImpl.h
Go to the documentation of this file.
1
8#ifndef MULTI_PANDORA_API_IMPL_H
9#define MULTI_PANDORA_API_IMPL_H 1
10
12
14
15#include <map>
16#include <unordered_map>
17
22{
23private:
28
33
40
49 const pandora::Pandora *GetPandoraInstance(const pandora::Pandora *const pPrimaryPandora, const unsigned int volumeId) const;
50
58 const PandoraInstanceList &GetDaughterPandoraInstanceList(const pandora::Pandora *const pPrimaryPandora) const;
59
67 const pandora::Pandora *GetPrimaryPandoraInstance(const pandora::Pandora *const pDaughterPandora) const;
68
76 unsigned int GetVolumeId(const pandora::Pandora *const pPandora) const;
77
83 void AddPrimaryPandoraInstance(const pandora::Pandora *const pPrimaryPandora);
84
91 void AddDaughterPandoraInstance(const pandora::Pandora *const pPrimaryPandora, const pandora::Pandora *const pDaughterPandora);
92
98 void DeletePandoraInstances(const pandora::Pandora *const pPrimaryPandora);
99
106 void SetVolumeId(const pandora::Pandora *const pPandora, const unsigned int volumeId);
107
108 typedef std::unordered_map<const pandora::Pandora *, const pandora::Pandora *> PandoraRelationMap;
109 typedef std::unordered_map<const pandora::Pandora *, unsigned int> PandoraToVolumeIdMap;
110
114
115 friend class MultiPandoraApi;
116};
117
118#endif // #ifndef MULTI_PANDORA_API_IMPL_H
Header file for the cartesian vector class.
Header file for the MultiPandoraApi class.
std::unordered_map< const pandora::Pandora *, PandoraInstanceList > PandoraInstanceMap
std::vector< const pandora::Pandora * > PandoraInstanceList
MultiPandoraApi class.
MultiPandoraApiImpl class.
PandoraInstanceMap m_primaryToDaughtersMap
The map from primary pandora instance to list of daughter pandora instances.
const PandoraInstanceList & GetDaughterPandoraInstanceList(const pandora::Pandora *const pPrimaryPandora) const
Get the list of daughter pandora instances associated with a given primary pandora instance.
const pandora::Pandora * GetPrimaryPandoraInstance(const pandora::Pandora *const pDaughterPandora) const
Get the address of the primary pandora instance associated with a given daughter pandora instance.
void SetVolumeId(const pandora::Pandora *const pPandora, const unsigned int volumeId)
Set the volume id associated with a given pandora instance.
MultiPandoraApiImpl()
Default constructor;.
PandoraRelationMap m_daughterToPrimaryMap
The map from daughter pandora instance to primary pandora instance.
void AddPrimaryPandoraInstance(const pandora::Pandora *const pPrimaryPandora)
Declare a new primary pandora instance.
PandoraToVolumeIdMap m_pandoraToVolumeIdMap
The map from pandora instance to volume id.
void AddDaughterPandoraInstance(const pandora::Pandora *const pPrimaryPandora, const pandora::Pandora *const pDaughterPandora)
Add a pandora daughter instance, associated to a primary pandora instance.
std::unordered_map< const pandora::Pandora *, unsigned int > PandoraToVolumeIdMap
const PandoraInstanceMap & GetPandoraInstanceMap() const
Get the pandora instance map.
unsigned int GetVolumeId(const pandora::Pandora *const pPandora) const
Get the volume id associated with a given pandora instance.
const pandora::Pandora * GetPandoraInstance(const pandora::Pandora *const pPrimaryPandora, const unsigned int volumeId) const
Get the address of the pandora instance associated with a given primary pandora instance and volume i...
void DeletePandoraInstances(const pandora::Pandora *const pPrimaryPandora)
Delete all pandora instances associated with (and including) a specified primary pandora instance.
std::unordered_map< const pandora::Pandora *, const pandora::Pandora * > PandoraRelationMap
~MultiPandoraApiImpl()
Destructor;.
Pandora class.
Definition Pandora.h:40