69 m_pEmShowerPlugin(nullptr),
70 m_pPhotonPlugin(nullptr),
71 m_pElectronPlugin(nullptr),
72 m_pMuonPlugin(nullptr)
81 delete mapEntry.second;
97 return STATUS_CODE_ALREADY_PRESENT;
99 return STATUS_CODE_SUCCESS;
110 if (
nullptr != pXmlElement)
121 return STATUS_CODE_SUCCESS;
128 if (
nullptr != pParticleIdPlugin)
129 return STATUS_CODE_FAILURE;
131 std::string requestedPluginName;
133 xmlTagName, requestedPluginName));
135 if (requestedPluginName.empty())
136 return STATUS_CODE_SUCCESS;
141 return STATUS_CODE_NOT_FOUND;
143 pParticleIdPlugin = mapIter->second;
144 return STATUS_CODE_SUCCESS;
154 return STATUS_CODE_SUCCESS;
Header file for the cluster class.
Header file for the particle flow object class.
Header file for the particle id plugin class.
#define PANDORA_RETURN_RESULT_IF_AND_IF(StatusCode1, StatusCode2, Operator, Command)
#define PANDORA_RETURN_RESULT_IF(StatusCode1, Operator, Command)
Header file for the xml helper class.
ParticleFlowObject class.
bool IsElectron(const T *const pT) const
Provide identification of whether a cluster or pfo is an electron.
ParticleId(const Pandora *const pPandora)
Default constructor.
ParticleIdPlugin * m_pElectronPlugin
The electron id plugin pointer.
ParticleIdPlugin * m_pEmShowerPlugin
The electromagnetic shower id plugin pointer.
bool IsEmShower(const T *const pT) const
Provide identification of whether a cluster or pfo is an electromagnetic shower.
StatusCode ResetForNextEvent()
Call the reset callback in all managed plugins.
ParticleIdPlugin * m_pPhotonPlugin
The photon id plugin pointer.
bool IsMuon(const T *const pT) const
Provide identification of whether a cluster or pfo is a muon.
ParticleIdPluginMap m_particleIdPluginMap
The particle id plugin map.
bool IsPhoton(const T *const pT) const
Provide identification of whether a cluster or pfo is a photon.
ParticleIdPlugin * m_pMuonPlugin
The muon id plugin pointer.
const Pandora *const m_pPandora
Address of the associated pandora instance.
StatusCode RegisterPlugin(const std::string &pluginName, ParticleIdPlugin *const pParticleIdPlugin)
Register a particle id plugin.
StatusCode InitializePlugin(const TiXmlHandle *const pXmlHandle, const std::string &xmlTagName, ParticleIdPlugin *&pParticleIdPlugin)
Read requested plugin name/label from a specified xml tag and attempt to assign the plugin pointer as...
StatusCode InitializePlugins(const TiXmlHandle *const pXmlHandle)
Initialize plugins.
virtual bool IsMatch(const Cluster *const pCluster) const =0
Whether the cluster matches the specific particle hypothesis.
StatusCode RegisterDetails(const Pandora *const pPandora, const std::string &type, const std::string &instanceName)
Register i) the pandora instance that will run the process and ii) the process type.
TiXmlElement * Element() const
TiXmlHandle FirstChild() const
Return a handle to the first child node.
static StatusCode ReadValue(const TiXmlHandle &xmlHandle, const std::string &xmlElementName, T &t)
Read a value from an xml element.
StatusCode
The StatusCode enum.