9 #include "Pandora/AlgorithmHeaders.h" 21 ClusterCharacterisationBaseAlgorithm::ClusterCharacterisationBaseAlgorithm() :
23 m_overwriteExistingId(false),
24 m_useUnavailableClusters(false)
40 const ClusterList *pClusterList = NULL;
41 PANDORA_RETURN_RESULT_IF_AND_IF(
42 STATUS_CODE_SUCCESS, STATUS_CODE_NOT_INITIALIZED, !=, PandoraContentApi::GetList(*
this, clusterListName, pClusterList));
44 if (!pClusterList || pClusterList->empty())
46 if (PandoraContentApi::GetSettings(*this)->ShouldDisplayAlgorithmInfo())
47 std::cout <<
"ClusterCharacterisationBaseAlgorithm: unable to find cluster list " << clusterListName << std::endl;
54 for (
const Cluster *
const pCluster : *pClusterList)
56 PandoraContentApi::Cluster::Metadata metadata;
57 metadata.m_particleId = UNKNOWN_PARTICLE_TYPE;
58 PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::Cluster::AlterMetadata(*
this, pCluster, metadata));
61 return STATUS_CODE_SUCCESS;
64 for (
const Cluster *
const pCluster : *pClusterList)
72 PandoraContentApi::Cluster::Metadata metadata;
76 metadata.m_particleId = MU_MINUS;
80 metadata.m_particleId = E_MINUS;
83 if (pCluster->GetParticleId() != metadata.m_particleId.Get())
84 PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, PandoraContentApi::Cluster::AlterMetadata(*
this, pCluster, metadata));
88 return STATUS_CODE_SUCCESS;
95 PANDORA_RETURN_RESULT_IF(STATUS_CODE_SUCCESS, !=, XmlHelper::ReadVectorOfValues(xmlHandle,
"InputClusterListNames",
m_inputClusterListNames));
97 PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
"ZeroMode",
m_zeroMode));
99 PANDORA_RETURN_RESULT_IF_AND_IF(
100 STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
"OverwriteExistingId",
m_overwriteExistingId));
102 PANDORA_RETURN_RESULT_IF_AND_IF(
103 STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle,
"UseUnavailableClusters",
m_useUnavailableClusters));
105 return STATUS_CODE_SUCCESS;
Header file for the cluster characterisation base algorithm class.
bool m_overwriteExistingId
Whether to consider any clusters that already have an assigned particle id.
Header file for the geometry helper class.
bool m_useUnavailableClusters
Whether to consider clusters that are already constituents of a pfo.
Header file for the cluster helper class.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
~ClusterCharacterisationBaseAlgorithm()
Destructor.
pandora::StatusCode Run()
pandora::StringVector m_inputClusterListNames
The names of the input cluster lists.
bool m_zeroMode
Whether to zero all existing cluster particle id, overrides all other parameters. ...
virtual bool IsClearTrack(const pandora::Cluster *const pCluster) const =0
Whether cluster is identified as a clear track.