8#ifndef MULTI_PANDORA_API_IMPL_H
9#define MULTI_PANDORA_API_IMPL_H 1
16#include <unordered_map>
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
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;.