Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
pandora::PandoraContentApiImpl Class Reference

PandoraContentApiImpl class. More...

#include "PandoraContentApiImpl.h"

Collaboration diagram for pandora::PandoraContentApiImpl:

Classes

class  ReturnType
 Return type adaptor. More...
 

Public Member Functions

template<>
StatusCode AlterMetadata (const CaloHit *const pObject, const object_creation::CaloHit::Metadata &metadata) const
 
template<>
StatusCode AlterMetadata (const Cluster *const pObject, const object_creation::Cluster::Metadata &metadata) const
 
template<>
StatusCode AlterMetadata (const ParticleFlowObject *const pObject, const object_creation::ParticleFlowObject::Metadata &metadata) const
 
template<>
StatusCode AlterMetadata (const Vertex *const pObject, const object_creation::Vertex::Metadata &metadata) const
 
template<>
StatusCode Create (const object_creation::CaloHit::Parameters &parameters, const CaloHit *&pObject, const pandora::ObjectFactory< object_creation::CaloHit::Parameters, object_creation::CaloHit::Object > &factory) const
 
template<>
StatusCode Create (const object_creation::Track::Parameters &parameters, const Track *&pObject, const pandora::ObjectFactory< object_creation::Track::Parameters, object_creation::Track::Object > &factory) const
 
template<>
StatusCode Create (const object_creation::MCParticle::Parameters &parameters, const MCParticle *&pObject, const pandora::ObjectFactory< object_creation::MCParticle::Parameters, object_creation::MCParticle::Object > &factory) const
 
template<>
StatusCode Create (const object_creation::Vertex::Parameters &parameters, const Vertex *&pObject, const pandora::ObjectFactory< object_creation::Vertex::Parameters, object_creation::Vertex::Object > &factory) const
 
template<>
StatusCode Create (const object_creation::Cluster::Parameters &parameters, const Cluster *&pCluster, const pandora::ObjectFactory< object_creation::Cluster::Parameters, object_creation::Cluster::Object > &factory) const
 
template<>
StatusCode Create (const object_creation::ParticleFlowObject::Parameters &pfoParameters, const ParticleFlowObject *&pPfo, const pandora::ObjectFactory< object_creation::ParticleFlowObject::Parameters, object_creation::ParticleFlowObject::Object > &factory) const
 
template<>
StatusCode AddToCluster (const Cluster *const pCluster, const CaloHitList *const pCaloHitList) const
 
template<>
StatusCode AddToCluster (const Cluster *const pCluster, const CaloHit *const pCaloHit) const
 
template<>
StatusCode AddIsolatedToCluster (const Cluster *const pCluster, const CaloHitList *const pCaloHitList) const
 
template<>
StatusCode AddIsolatedToCluster (const Cluster *const pCluster, const CaloHit *const pCaloHit) const
 
template<>
StatusCode PrepareForDeletion (const ClusterList *const pClusterList) const
 
template<>
StatusCode PrepareForDeletion (const PfoList *const pPfoList) const
 
template<>
StatusCode PrepareForDeletion (const VertexList *const pVertexList) const
 
template<>
StatusCode PrepareForReclusteringDeletion (const ClusterList *const pClusterList) const
 
template<>
StatusCode Delete (const ClusterList *const pT, const std::string &listName) const
 
template<>
StatusCode Delete (const PfoList *const pT, const std::string &listName) const
 
template<>
StatusCode Delete (const VertexList *const pT, const std::string &listName) const
 

Private Member Functions

template<typename T >
ReturnType< T >::Type * GetManager () const
 Manager type adaptor.
 
template<typename OBJECT , typename METADATA >
StatusCode AlterMetadata (const OBJECT *const pObject, const METADATA &metadata) const
 Alter the metadata information stored in an object.
 
template<typename PARAMETERS , typename OBJECT >
StatusCode Create (const PARAMETERS &parameters, const OBJECT *&pObject, const ObjectFactory< PARAMETERS, OBJECT > &factory) const
 Create an object for pandora.
 
const PandoraSettingsGetSettings () const
 Get the pandora settings instance.
 
const GeometryManagerGetGeometry () const
 Get the pandora geometry instance.
 
const PluginManagerGetPlugins () const
 Get the pandora plugin instance, providing access to user registered functions and calculators.
 
StatusCode RepeatEventPreparation () const
 Repeat the event preparation stages, which are used to calculate properties of input objects for later use in algorithms.
 
StatusCode CreateAlgorithmTool (TiXmlElement *const pXmlElement, AlgorithmTool *&pAlgorithmTool) const
 Create an algorithm tool instance, via one of the algorithm tool factories registered with pandora. This function is expected to be called whilst reading the settings for a parent algorithm.
 
StatusCode CreateDaughterAlgorithm (TiXmlElement *const pXmlElement, std::string &daughterAlgorithmName) const
 Create an algorithm instance, via one of the algorithm factories registered with pandora. This function is expected to be called whilst reading the settings for a parent algorithm.
 
StatusCode RunAlgorithm (const std::string &algorithmName) const
 Run an algorithm registered with pandora.
 
StatusCode RunClusteringAlgorithm (const Algorithm &algorithm, const std::string &clusteringAlgorithmName, const ClusterList *&pNewClusterList, std::string &newClusterListName) const
 Run a clustering algorithm (an algorithm that will create new cluster objects)
 
template<typename T >
StatusCode GetCurrentList (const T *&pT, std::string &listName) const
 Get the current list.
 
template<typename T >
StatusCode GetCurrentListName (std::string &listName) const
 Get the current list name.
 
template<typename T >
StatusCode ReplaceCurrentList (const Algorithm &algorithm, const std::string &newListName) const
 Replace the current list with a pre-saved list; use this new list as a permanent replacement for the current list (will persist outside the current algorithm)
 
template<typename T >
StatusCode DropCurrentList (const Algorithm &algorithm) const
 Drop the current list, returning the current list to its default empty/null state.
 
template<typename T >
StatusCode GetList (const std::string &listName, const T *&pT) const
 Get a named list.
 
template<typename T >
StatusCode RenameList (const std::string &oldListName, const std::string &newListName) const
 Rename a saved list, altering its saved name from a specified old list name to a specified new list name.
 
template<typename T >
StatusCode SaveList (const T &t, const std::string &newListName) const
 Save a provided input object list under a new name.
 
template<typename T >
StatusCode SaveList (const std::string &newListName) const
 Save the current list in a list with the specified new name. Note that this will empty the list; the objects will all be moved to the new named list.
 
template<typename T >
StatusCode SaveList (const std::string &oldListName, const std::string &newListName) const
 Save a named list in a list with the specified new name. Note that this will empty the old list; the objects will all be moved to the new named list.
 
template<typename T >
StatusCode SaveList (const std::string &newListName, const T &t) const
 Save elements of the current list in a list with the specified new name. If all the objects in the current list are saved, this will empty the current list; the objects will all be moved to the new named list.
 
template<typename T >
StatusCode SaveList (const std::string &oldListName, const std::string &newListName, const T &t) const
 Save elements of a named list in a list with the specified new name. If all the objects in the old list are saved, this will empty the old list; the objects will all be moved to the new named list.
 
template<typename T >
StatusCode TemporarilyReplaceCurrentList (const std::string &newListName) const
 Temporarily replace the current list with another list, which may only be a temporary list. This switch will persist only for the duration of the algorithm and its daughters; unless otherwise specified, the current list will revert to the algorithm input list upon algorithm completion.
 
template<typename T >
StatusCode CreateTemporaryListAndSetCurrent (const Algorithm &algorithm, const T *&pT, std::string &temporaryListName) const
 Create a temporary list and set it to be the current list, enabling object creation.
 
template<typename T >
bool IsAvailable (const T *const pT) const
 Is object, or a list of objects, available as a building block.
 
template<typename T >
StatusCode Delete (const T *const pT) const
 Delete an object from the current list.
 
template<typename T >
StatusCode Delete (const T *const pT, const std::string &listName) const
 Delete an object from a specified list.
 
template<typename T >
StatusCode AddToCluster (const Cluster *const pCluster, const T *const pT) const
 Add a calo hit, or a list of calo hits, to a cluster.
 
StatusCode RemoveFromCluster (const Cluster *const pCluster, const CaloHit *const pCaloHit) const
 Remove a calo hit from a cluster. Note this function will not remove the final calo hit from a cluster, and will instead return status code "not allowed" as a prompt to delete the cluster.
 
template<typename T >
StatusCode AddIsolatedToCluster (const Cluster *const pCluster, const T *const pT) const
 Add an isolated calo hit, or a list of isolated calo hits, to a cluster. An isolated calo hit is not counted as a regular calo hit: it contributes only towards the cluster energy and does not affect any other cluster properties.
 
StatusCode RemoveIsolatedFromCluster (const Cluster *const pCluster, const CaloHit *const pCaloHit) const
 Remove an isolated calo hit from a cluster. Note this function will not remove the final calo hit from a cluster, and will instead return status code "not allowed" as a prompt to delete the cluster.
 
StatusCode Fragment (const CaloHit *const pOriginalCaloHit, const float fraction1, const CaloHit *&pDaughterCaloHit1, const CaloHit *&pDaughterCaloHit2, const ObjectFactory< object_creation::CaloHitFragment::Parameters, object_creation::CaloHitFragment::Object > &factory) const
 Fragment a calo hit into two daughter calo hits, with a specified energy division.
 
StatusCode MergeFragments (const CaloHit *const pFragmentCaloHit1, const CaloHit *const pFragmentCaloHit2, const CaloHit *&pMergedCaloHit, const ObjectFactory< object_creation::CaloHitFragment::Parameters, object_creation::CaloHitFragment::Object > &factory) const
 Merge two calo hit fragments, originally from the same parent hit, to form a new calo hit.
 
StatusCode AddTrackClusterAssociation (const Track *const pTrack, const Cluster *const pCluster) const
 Add an association between a track and a cluster.
 
StatusCode RemoveTrackClusterAssociation (const Track *const pTrack, const Cluster *const pCluster) const
 Remove an association between a track and a cluster.
 
StatusCode RemoveCurrentTrackClusterAssociations () const
 Remove all track-cluster associations from objects in the current track and cluster lists.
 
StatusCode RemoveAllTrackClusterAssociations () const
 Remove all associations between tracks and clusters.
 
StatusCode RepeatMCParticlePreparation () const
 Repeat the mc particle preparation, performing pfo target identification and forming relationships with tracks/calo hits.
 
StatusCode RemoveAllMCParticleRelationships () const
 Remove all mc particle relationships previously registered with the mc manager and linked to tracks/calo hits.
 
StatusCode MergeAndDeleteClusters (const Cluster *const pClusterToEnlarge, const Cluster *const pClusterToDelete) const
 Merge two clusters in the current list, enlarging one cluster and deleting the second.
 
StatusCode MergeAndDeleteClusters (const Cluster *const pClusterToEnlarge, const Cluster *const pClusterToDelete, const std::string &enlargeListName, const std::string &deleteListName) const
 Merge two clusters from two specified lists, enlarging one cluster and deleting the second.
 
template<typename T >
StatusCode AddToPfo (const ParticleFlowObject *const pPfo, const T *const pT) const
 Add a cluster to a particle flow object.
 
template<typename T >
StatusCode RemoveFromPfo (const ParticleFlowObject *const pPfo, const T *const pT) const
 Remove a cluster from a particle flow object. Note this function will not remove the final object (track or cluster) from a particle flow object, and will instead return status code "not allowed" as a prompt to delete the cluster.
 
StatusCode SetPfoParentDaughterRelationship (const ParticleFlowObject *const pParentPfo, const ParticleFlowObject *const pDaughterPfo) const
 Set parent-daughter particle flow object relationship.
 
StatusCode RemovePfoParentDaughterRelationship (const ParticleFlowObject *const pParentPfo, const ParticleFlowObject *const pDaughterPfo) const
 Remove parent-daughter particle flow object relationship.
 
StatusCode InitializeFragmentation (const Algorithm &algorithm, const ClusterList &inputClusterList, std::string &originalClustersListName, std::string &fragmentClustersListName) const
 Initialize cluster fragmentation operations on clusters in the algorithm input list. This allows hits in a list of clusters (a subset of the algorithm input list) to be redistributed.
 
StatusCode EndFragmentation (const Algorithm &algorithm, const std::string &clusterListToSaveName, const std::string &clusterListToDeleteName) const
 End cluster fragmentation operations on clusters in the algorithm input list.
 
StatusCode InitializeReclustering (const Algorithm &algorithm, const TrackList &inputTrackList, const ClusterList &inputClusterList, std::string &originalClustersListName) const
 Initialize reclustering operations on clusters in the algorithm input list. This allows hits in a list of clusters (a subset of the algorithm input list) to be redistributed.
 
StatusCode EndReclustering (const Algorithm &algorithm, const std::string &selectedClusterListName) const
 End reclustering operations on clusters in the algorithm input list.
 
 PandoraContentApiImpl (Pandora *const pPandora)
 Constructor.
 
bool IsAddToClusterAllowed (const Cluster *const pCluster, const CaloHit *const pCaloHit) const
 Whether a proposed addition to a cluster is allowed.
 
template<typename T >
StatusCode PrepareForDeletion (const T *const pT) const
 Prepare an object, or a list of objects, for deletion.
 
template<typename T >
StatusCode PrepareForReclusteringDeletion (const T *const pT) const
 Prepare an object, or a list of objects, (formed as recluster candidates) for deletion.
 
StatusCode PreRunAlgorithm (Algorithm *const pAlgorithm) const
 Perform necessary operations prior to algorithm execution, e.g. algorithm to manager handshakes.
 
StatusCode PostRunAlgorithm (Algorithm *const pAlgorithm) const
 Perform necessary operations after algorithm execution, e.g. preparing temporaries for deletion.
 

Private Attributes

Pandoram_pPandora
 The pandora object to provide an interface to.
 

Friends

class Pandora
 
class PandoraImpl
 
class ::PandoraContentApi
 
template<typename PARAMETERS , typename METADATA , typename OBJECT >
class ::object_creation::ObjectCreationHelper
 

Detailed Description

PandoraContentApiImpl class.

Definition at line 26 of file PandoraContentApiImpl.h.


Class Documentation

◆ pandora::PandoraContentApiImpl::ReturnType

class pandora::PandoraContentApiImpl::ReturnType
template<class T>
class pandora::PandoraContentApiImpl::ReturnType< T >

Return type adaptor.

Definition at line 33 of file PandoraContentApiImpl.h.

Class Members
typedef T Type

Constructor & Destructor Documentation

◆ PandoraContentApiImpl()

pandora::PandoraContentApiImpl::PandoraContentApiImpl ( Pandora *const  pPandora)
private

Constructor.

Parameters
pPandoraaddress of the pandora object to interface

Definition at line 609 of file PandoraContentApiImpl.cc.

Member Function Documentation

◆ AddIsolatedToCluster() [1/3]

template<>
StatusCode pandora::PandoraContentApiImpl::AddIsolatedToCluster ( const Cluster *const  pCluster,
const CaloHit *const  pCaloHit 
) const

Definition at line 449 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ AddIsolatedToCluster() [2/3]

template<>
StatusCode pandora::PandoraContentApiImpl::AddIsolatedToCluster ( const Cluster *const  pCluster,
const CaloHitList *const  pCaloHitList 
) const

Definition at line 431 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ AddIsolatedToCluster() [3/3]

template<typename T >
StatusCode pandora::PandoraContentApiImpl::AddIsolatedToCluster ( const Cluster *const  pCluster,
const T *const  pT 
) const
private

Add an isolated calo hit, or a list of isolated calo hits, to a cluster. An isolated calo hit is not counted as a regular calo hit: it contributes only towards the cluster energy and does not affect any other cluster properties.

Parameters
pClusteraddress of the cluster to modify
pTaddress of the isolated calo hit, or list of isolated calo hits, to add
Here is the caller graph for this function:

◆ AddToCluster() [1/3]

template<>
StatusCode pandora::PandoraContentApiImpl::AddToCluster ( const Cluster *const  pCluster,
const CaloHit *const  pCaloHit 
) const

Definition at line 409 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ AddToCluster() [2/3]

template<>
StatusCode pandora::PandoraContentApiImpl::AddToCluster ( const Cluster *const  pCluster,
const CaloHitList *const  pCaloHitList 
) const

Definition at line 391 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ AddToCluster() [3/3]

template<typename T >
StatusCode pandora::PandoraContentApiImpl::AddToCluster ( const Cluster *const  pCluster,
const T *const  pT 
) const
private

Add a calo hit, or a list of calo hits, to a cluster.

Parameters
pClusteraddress of the cluster to modify
pTaddress of the calo hit, or list of calo hits, to add
Here is the caller graph for this function:

◆ AddToPfo()

template<typename T >
template StatusCode pandora::PandoraContentApiImpl::AddToPfo< Vertex > ( const ParticleFlowObject *const  pPfo,
const T *const  pT 
) const
private

Add a cluster to a particle flow object.

Parameters
pPfoaddress of the particle flow object to modify
pClusteraddress of the cluster to add

Definition at line 571 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddTrackClusterAssociation()

StatusCode pandora::PandoraContentApiImpl::AddTrackClusterAssociation ( const Track *const  pTrack,
const Cluster *const  pCluster 
) const
private

Add an association between a track and a cluster.

Parameters
pTrackaddress of the track
pClusteraddress of the cluster

Definition at line 486 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ AlterMetadata() [1/5]

template<>
StatusCode pandora::PandoraContentApiImpl::AlterMetadata ( const CaloHit *const  pObject,
const object_creation::CaloHit::Metadata metadata 
) const

Definition at line 71 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ AlterMetadata() [2/5]

template<>
StatusCode pandora::PandoraContentApiImpl::AlterMetadata ( const Cluster *const  pObject,
const object_creation::Cluster::Metadata metadata 
) const

Definition at line 77 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ AlterMetadata() [3/5]

StatusCode pandora::PandoraContentApiImpl::AlterMetadata ( const OBJECT *const  pObject,
const METADATA metadata 
) const
private

Alter the metadata information stored in an object.

Parameters
algorithmthe algorithm calling this function
pObjectaddress of the object to modify
metaDatathe metadata (only populated metadata fields will be propagated to the object)

Definition at line 95 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AlterMetadata() [4/5]

template<>
StatusCode pandora::PandoraContentApiImpl::AlterMetadata ( const ParticleFlowObject *const  pObject,
const object_creation::ParticleFlowObject::Metadata metadata 
) const

Definition at line 83 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ AlterMetadata() [5/5]

template<>
StatusCode pandora::PandoraContentApiImpl::AlterMetadata ( const Vertex *const  pObject,
const object_creation::Vertex::Metadata metadata 
) const

Definition at line 89 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ Create() [1/7]

template<>
StatusCode pandora::PandoraContentApiImpl::Create ( const object_creation::CaloHit::Parameters parameters,
const CaloHit *&  pObject,
const pandora::ObjectFactory< object_creation::CaloHit::Parameters, object_creation::CaloHit::Object > &  factory 
) const

Definition at line 103 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ Create() [2/7]

template<>
StatusCode pandora::PandoraContentApiImpl::Create ( const object_creation::Cluster::Parameters parameters,
const Cluster *&  pCluster,
const pandora::ObjectFactory< object_creation::Cluster::Parameters, object_creation::Cluster::Object > &  factory 
) const

Definition at line 131 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ Create() [3/7]

template<>
StatusCode pandora::PandoraContentApiImpl::Create ( const object_creation::MCParticle::Parameters parameters,
const MCParticle *&  pObject,
const pandora::ObjectFactory< object_creation::MCParticle::Parameters, object_creation::MCParticle::Object > &  factory 
) const

Definition at line 117 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ Create() [4/7]

Definition at line 148 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ Create() [5/7]

template<>
StatusCode pandora::PandoraContentApiImpl::Create ( const object_creation::Track::Parameters parameters,
const Track *&  pObject,
const pandora::ObjectFactory< object_creation::Track::Parameters, object_creation::Track::Object > &  factory 
) const

Definition at line 110 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ Create() [6/7]

template<>
StatusCode pandora::PandoraContentApiImpl::Create ( const object_creation::Vertex::Parameters parameters,
const Vertex *&  pObject,
const pandora::ObjectFactory< object_creation::Vertex::Parameters, object_creation::Vertex::Object > &  factory 
) const

Definition at line 124 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ Create() [7/7]

StatusCode pandora::PandoraContentApiImpl::Create ( const PARAMETERS parameters,
const OBJECT *&  pObject,
const ObjectFactory< PARAMETERS, OBJECT > &  factory 
) const
private

Create an object for pandora.

Parameters
parametersthe object parameters
pObjectto receive the address of the object created
factorythe factory that performs the object allocation

Definition at line 167 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CreateAlgorithmTool()

StatusCode pandora::PandoraContentApiImpl::CreateAlgorithmTool ( TiXmlElement *const  pXmlElement,
AlgorithmTool *&  pAlgorithmTool 
) const
private

Create an algorithm tool instance, via one of the algorithm tool factories registered with pandora. This function is expected to be called whilst reading the settings for a parent algorithm.

Parameters
pXmlElementaddress of the xml element describing the algorithm tool type and settings
pAlgorithmToolto receive the address of the algorithm tool instance

Definition at line 202 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ CreateDaughterAlgorithm()

StatusCode pandora::PandoraContentApiImpl::CreateDaughterAlgorithm ( TiXmlElement *const  pXmlElement,
std::string &  daughterAlgorithmName 
) const
private

Create an algorithm instance, via one of the algorithm factories registered with pandora. This function is expected to be called whilst reading the settings for a parent algorithm.

Parameters
pXmlElementaddress of the xml element describing the daughter algorithm type and settings
daughterAlgorithmNameto receive the name of the daughter algorithm instance

Definition at line 209 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ CreateTemporaryListAndSetCurrent()

template<typename T >
template StatusCode pandora::PandoraContentApiImpl::CreateTemporaryListAndSetCurrent< VertexList > ( const Algorithm algorithm,
const T *&  pT,
std::string &  temporaryListName 
) const
private

Create a temporary list and set it to be the current list, enabling object creation.

Parameters
algorithmthe algorithm calling this function
pTto receive the address of the temporary list
temporaryListNameto receive the temporary list name

Definition at line 374 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Delete() [1/5]

template<>
StatusCode pandora::PandoraContentApiImpl::Delete ( const ClusterList *const  pT,
const std::string &  listName 
) const

Definition at line 742 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ Delete() [2/5]

template<>
StatusCode pandora::PandoraContentApiImpl::Delete ( const PfoList *const  pT,
const std::string &  listName 
) const

Definition at line 749 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ Delete() [3/5]

template<typename T >
StatusCode pandora::PandoraContentApiImpl::Delete ( const T *const  pT) const
private

Delete an object from the current list.

Parameters
pTaddress of the object, or a list of objects, to delete

Definition at line 725 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Delete() [4/5]

template<typename T >
StatusCode pandora::PandoraContentApiImpl::Delete ( const T *const  pT,
const std::string &  listName 
) const
private

Delete an object from a specified list.

Parameters
pTaddress of the object, or a list of objects, to delete
listNamename of the list containing the object

Definition at line 735 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ Delete() [5/5]

template<>
StatusCode pandora::PandoraContentApiImpl::Delete ( const VertexList *const  pT,
const std::string &  listName 
) const

Definition at line 756 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ DropCurrentList()

template<typename T >
template StatusCode pandora::PandoraContentApiImpl::DropCurrentList< Vertex > ( const Algorithm algorithm) const
private

Drop the current list, returning the current list to its default empty/null state.

Parameters
algorithmthe algorithm calling this function

Definition at line 298 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ EndFragmentation()

StatusCode pandora::PandoraContentApiImpl::EndFragmentation ( const Algorithm algorithm,
const std::string &  clusterListToSaveName,
const std::string &  clusterListToDeleteName 
) const
private

End cluster fragmentation operations on clusters in the algorithm input list.

Parameters
algorithmthe algorithm calling this function
clusterListToSaveNamethe name of the list containing the clusters chosen to be saved (original or fragments)
clusterListToDeleteNamethe name of the list containing the clusters chosen to be deleted (original or fragments)

Definition at line 780 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ EndReclustering()

StatusCode pandora::PandoraContentApiImpl::EndReclustering ( const Algorithm algorithm,
const std::string &  selectedClusterListName 
) const
private

End reclustering operations on clusters in the algorithm input list.

Parameters
algorithmthe algorithm calling this function
selectedClusterListNamethe name of the list containing the chosen recluster candidates (or the original candidates)

Definition at line 815 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Fragment()

StatusCode pandora::PandoraContentApiImpl::Fragment ( const CaloHit *const  pOriginalCaloHit,
const float  fraction1,
const CaloHit *&  pDaughterCaloHit1,
const CaloHit *&  pDaughterCaloHit2,
const ObjectFactory< object_creation::CaloHitFragment::Parameters, object_creation::CaloHitFragment::Object > &  factory 
) const
private

Fragment a calo hit into two daughter calo hits, with a specified energy division.

Parameters
pOriginalCaloHitaddress of the original calo hit, which will be deleted
fraction1the fraction of energy to be assigned to daughter fragment 1
pDaughterCaloHit1to receive the address of daughter fragment 1
pDaughterCaloHit2to receive the address of daughter fragment 2
factoryto create the fragmented calo hits

Definition at line 470 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ GetCurrentList()

template<typename T >
template StatusCode pandora::PandoraContentApiImpl::GetCurrentList< VertexList > ( const T *&  pT,
std::string &  listName 
) const
private

Get the current list.

Parameters
pTto receive the address of the current list
listNameto receive the current list name

Definition at line 274 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetCurrentListName()

template<typename T >
template StatusCode pandora::PandoraContentApiImpl::GetCurrentListName< Vertex > ( std::string &  listName) const
private

Get the current list name.

Parameters
listNameto receive the current list name

Definition at line 282 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetGeometry()

const GeometryManager * pandora::PandoraContentApiImpl::GetGeometry ( ) const
private

Get the pandora geometry instance.

Returns
the address of the pandora geometry instance

Definition at line 181 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ GetList()

template<typename T >
template StatusCode pandora::PandoraContentApiImpl::GetList< VertexList > ( const std::string &  listName,
const T *&  pT 
) const
private

Get a named list.

Parameters
listNamethe name of the list
pTto receive the address of the list

Definition at line 306 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetManager()

template<typename T >
ReturnType< T >::Type * pandora::PandoraContentApiImpl::GetManager ( ) const
private

Manager type adaptor.

Returns
the address of the manager

◆ GetPlugins()

const PluginManager * pandora::PandoraContentApiImpl::GetPlugins ( ) const
private

Get the pandora plugin instance, providing access to user registered functions and calculators.

Returns
the address of the pandora plugin instance

Definition at line 188 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ GetSettings()

const PandoraSettings * pandora::PandoraContentApiImpl::GetSettings ( ) const
private

Get the pandora settings instance.

Returns
the address of the pandora settings instance

Definition at line 174 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ InitializeFragmentation()

StatusCode pandora::PandoraContentApiImpl::InitializeFragmentation ( const Algorithm algorithm,
const ClusterList inputClusterList,
std::string &  originalClustersListName,
std::string &  fragmentClustersListName 
) const
private

Initialize cluster fragmentation operations on clusters in the algorithm input list. This allows hits in a list of clusters (a subset of the algorithm input list) to be redistributed.

Parameters
algorithmthe algorithm calling this function
inputClusterListthe input cluster list
originalClustersListNameto receive the name of the list in which the original clusters are stored
fragmentClustersListNameto receive the name of the list in which the fragment clusters are stored

Definition at line 764 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ InitializeReclustering()

StatusCode pandora::PandoraContentApiImpl::InitializeReclustering ( const Algorithm algorithm,
const TrackList inputTrackList,
const ClusterList inputClusterList,
std::string &  originalClustersListName 
) const
private

Initialize reclustering operations on clusters in the algorithm input list. This allows hits in a list of clusters (a subset of the algorithm input list) to be redistributed.

Parameters
algorithmthe algorithm calling this function
inputTrackListthe input track list
inputClusterListthe input cluster list
originalClustersListNameto receive the name of the list in which the original clusters are stored

Definition at line 800 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsAddToClusterAllowed()

bool pandora::PandoraContentApiImpl::IsAddToClusterAllowed ( const Cluster *const  pCluster,
const CaloHit *const  pCaloHit 
) const
private

Whether a proposed addition to a cluster is allowed.

Parameters
pClusteraddress of the cluster to modify
pCaloHitaddress of the hit to add
Returns
boolean

Definition at line 616 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsAvailable()

template<typename T >
template bool pandora::PandoraContentApiImpl::IsAvailable< VertexList > ( const T *const  pT) const
private

Is object, or a list of objects, available as a building block.

Parameters
pTaddress of the object
Returns
boolean

Definition at line 383 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MergeAndDeleteClusters() [1/2]

StatusCode pandora::PandoraContentApiImpl::MergeAndDeleteClusters ( const Cluster *const  pClusterToEnlarge,
const Cluster *const  pClusterToDelete 
) const
private

Merge two clusters in the current list, enlarging one cluster and deleting the second.

Parameters
pClusterToEnlargeaddress of the cluster to enlarge
pClusterToDeleteaddress of the cluster to delete

Definition at line 546 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MergeAndDeleteClusters() [2/2]

StatusCode pandora::PandoraContentApiImpl::MergeAndDeleteClusters ( const Cluster *const  pClusterToEnlarge,
const Cluster *const  pClusterToDelete,
const std::string &  enlargeListName,
const std::string &  deleteListName 
) const
private

Merge two clusters from two specified lists, enlarging one cluster and deleting the second.

Parameters
pClusterToEnlargeaddress of the cluster to enlarge
pClusterToDeleteaddress of the cluster to delete
enlargeListNamename of the list containing the cluster to enlarge
deleteListNamename of the list containing the cluster to delete

Definition at line 555 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ MergeFragments()

StatusCode pandora::PandoraContentApiImpl::MergeFragments ( const CaloHit *const  pFragmentCaloHit1,
const CaloHit *const  pFragmentCaloHit2,
const CaloHit *&  pMergedCaloHit,
const ObjectFactory< object_creation::CaloHitFragment::Parameters, object_creation::CaloHitFragment::Object > &  factory 
) const
private

Merge two calo hit fragments, originally from the same parent hit, to form a new calo hit.

Parameters
pFragmentCaloHit1address of calo hit fragment 1, which will be deleted
pFragmentCaloHit2address of calo hit fragment 2, which will be deleted
pMergedCaloHitto receive the address of the merged calo hit
factoryto create the merged calo hit fragment

Definition at line 478 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ PostRunAlgorithm()

StatusCode pandora::PandoraContentApiImpl::PostRunAlgorithm ( Algorithm *const  pAlgorithm) const
private

Perform necessary operations after algorithm execution, e.g. preparing temporaries for deletion.

Parameters
pAlgorithmaddress of the algorithm

Definition at line 849 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PrepareForDeletion() [1/4]

template<>
StatusCode pandora::PandoraContentApiImpl::PrepareForDeletion ( const ClusterList *const  pClusterList) const

Definition at line 654 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ PrepareForDeletion() [2/4]

template<>
StatusCode pandora::PandoraContentApiImpl::PrepareForDeletion ( const PfoList *const  pPfoList) const

Definition at line 676 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ PrepareForDeletion() [3/4]

template<typename T >
StatusCode pandora::PandoraContentApiImpl::PrepareForDeletion ( const T *const  pT) const
private

Prepare an object, or a list of objects, for deletion.

Parameters
pTaddress of the object, or list of objects, to prepare for deletion

Definition at line 647 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PrepareForDeletion() [4/4]

template<>
StatusCode pandora::PandoraContentApiImpl::PrepareForDeletion ( const VertexList *const  pVertexList) const

Definition at line 698 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ PrepareForReclusteringDeletion() [1/2]

template<>
StatusCode pandora::PandoraContentApiImpl::PrepareForReclusteringDeletion ( const ClusterList *const  pClusterList) const

Definition at line 709 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ PrepareForReclusteringDeletion() [2/2]

template<typename T >
StatusCode pandora::PandoraContentApiImpl::PrepareForReclusteringDeletion ( const T *const  pT) const
private

Prepare an object, or a list of objects, (formed as recluster candidates) for deletion.

Parameters
pTaddress of the object, or list of objects, to prepare for deletion
Here is the caller graph for this function:

◆ PreRunAlgorithm()

StatusCode pandora::PandoraContentApiImpl::PreRunAlgorithm ( Algorithm *const  pAlgorithm) const
private

Perform necessary operations prior to algorithm execution, e.g. algorithm to manager handshakes.

Parameters
pAlgorithmaddress of the algorithm

Definition at line 835 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RemoveAllMCParticleRelationships()

StatusCode pandora::PandoraContentApiImpl::RemoveAllMCParticleRelationships ( ) const
private

Remove all mc particle relationships previously registered with the mc manager and linked to tracks/calo hits.

Definition at line 535 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RemoveAllTrackClusterAssociations()

StatusCode pandora::PandoraContentApiImpl::RemoveAllTrackClusterAssociations ( ) const
private

Remove all associations between tracks and clusters.

Definition at line 525 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ RemoveCurrentTrackClusterAssociations()

StatusCode pandora::PandoraContentApiImpl::RemoveCurrentTrackClusterAssociations ( ) const
private

Remove all track-cluster associations from objects in the current track and cluster lists.

Definition at line 506 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ RemoveFromCluster()

StatusCode pandora::PandoraContentApiImpl::RemoveFromCluster ( const Cluster *const  pCluster,
const CaloHit *const  pCaloHit 
) const
private

Remove a calo hit from a cluster. Note this function will not remove the final calo hit from a cluster, and will instead return status code "not allowed" as a prompt to delete the cluster.

Parameters
pClusteraddress of the cluster to modify
pCaloHitaddress of the hit to remove

Definition at line 417 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RemoveFromPfo()

template<typename T >
template StatusCode pandora::PandoraContentApiImpl::RemoveFromPfo< Vertex > ( const ParticleFlowObject *const  pPfo,
const T *const  pT 
) const
private

Remove a cluster from a particle flow object. Note this function will not remove the final object (track or cluster) from a particle flow object, and will instead return status code "not allowed" as a prompt to delete the cluster.

Parameters
pPfoaddress of the particle flow object to modify
pClusteraddress of the cluster to remove

Definition at line 585 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RemoveIsolatedFromCluster()

StatusCode pandora::PandoraContentApiImpl::RemoveIsolatedFromCluster ( const Cluster *const  pCluster,
const CaloHit *const  pCaloHit 
) const
private

Remove an isolated calo hit from a cluster. Note this function will not remove the final calo hit from a cluster, and will instead return status code "not allowed" as a prompt to delete the cluster.

Parameters
pClusteraddress of the cluster to modify
pCaloHitaddress of the isolated hit to remove

Definition at line 457 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RemovePfoParentDaughterRelationship()

StatusCode pandora::PandoraContentApiImpl::RemovePfoParentDaughterRelationship ( const ParticleFlowObject *const  pParentPfo,
const ParticleFlowObject *const  pDaughterPfo 
) const
private

Remove parent-daughter particle flow object relationship.

Parameters
pParentPfoaddress of parent particle flow object
pDaughterPfoaddress of daughter particle flow object

Definition at line 602 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RemoveTrackClusterAssociation()

StatusCode pandora::PandoraContentApiImpl::RemoveTrackClusterAssociation ( const Track *const  pTrack,
const Cluster *const  pCluster 
) const
private

Remove an association between a track and a cluster.

Parameters
pTrackaddress of the track
pClusteraddress of the cluster

Definition at line 496 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ RenameList()

template<typename T >
template StatusCode pandora::PandoraContentApiImpl::RenameList< VertexList > ( const std::string &  oldListName,
const std::string &  newListName 
) const
private

Rename a saved list, altering its saved name from a specified old list name to a specified new list name.

Parameters
oldListNamethe old list name
newListNamethe new list name

Definition at line 314 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ RepeatEventPreparation()

StatusCode pandora::PandoraContentApiImpl::RepeatEventPreparation ( ) const
private

Repeat the event preparation stages, which are used to calculate properties of input objects for later use in algorithms.

Definition at line 195 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ RepeatMCParticlePreparation()

StatusCode pandora::PandoraContentApiImpl::RepeatMCParticlePreparation ( ) const
private

Repeat the mc particle preparation, performing pfo target identification and forming relationships with tracks/calo hits.

◆ ReplaceCurrentList()

template<typename T >
template StatusCode pandora::PandoraContentApiImpl::ReplaceCurrentList< Vertex > ( const Algorithm algorithm,
const std::string &  newListName 
) const
private

Replace the current list with a pre-saved list; use this new list as a permanent replacement for the current list (will persist outside the current algorithm)

Parameters
algorithmthe algorithm calling this function
newListNamethe name of the replacement list

Definition at line 290 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ RunAlgorithm()

StatusCode pandora::PandoraContentApiImpl::RunAlgorithm ( const std::string &  algorithmName) const
private

Run an algorithm registered with pandora.

Parameters
algorithmNamethe algorithm name

Definition at line 216 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RunClusteringAlgorithm()

StatusCode pandora::PandoraContentApiImpl::RunClusteringAlgorithm ( const Algorithm algorithm,
const std::string &  clusteringAlgorithmName,
const ClusterList *&  pNewClusterList,
std::string &  newClusterListName 
) const
private

Run a clustering algorithm (an algorithm that will create new cluster objects)

Parameters
algorithmthe algorithm calling this function
clusteringAlgorithmNamethe name of the clustering algorithm to run
pNewClusterListthe address of the new cluster list populated
newClusterListNamethe name of the new cluster list populated

Definition at line 260 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ SaveList() [1/5]

template<typename T >
StatusCode pandora::PandoraContentApiImpl::SaveList ( const std::string &  newListName) const
private

Save the current list in a list with the specified new name. Note that this will empty the list; the objects will all be moved to the new named list.

Parameters
newListNamethe new list name

Definition at line 330 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ SaveList() [2/5]

template<typename T >
StatusCode pandora::PandoraContentApiImpl::SaveList ( const std::string &  newListName,
const T t 
) const
private

Save elements of the current list in a list with the specified new name. If all the objects in the current list are saved, this will empty the current list; the objects will all be moved to the new named list.

Parameters
newListNamethe new list name
ta subset of the current object list - only objects in both this and the current list will be saved

Definition at line 348 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ SaveList() [3/5]

template<typename T >
StatusCode pandora::PandoraContentApiImpl::SaveList ( const std::string &  oldListName,
const std::string &  newListName 
) const
private

Save a named list in a list with the specified new name. Note that this will empty the old list; the objects will all be moved to the new named list.

Parameters
oldListNamethe old list name
newListNamethe new list name

Definition at line 340 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ SaveList() [4/5]

template<typename T >
StatusCode pandora::PandoraContentApiImpl::SaveList ( const std::string &  oldListName,
const std::string &  newListName,
const T t 
) const
private

Save elements of a named list in a list with the specified new name. If all the objects in the old list are saved, this will empty the old list; the objects will all be moved to the new named list.

Parameters
oldClusterListNamethe old cluster list name
newClusterListNamethe new cluster list name
ta subset of the old object list - only objects in both this and the old list will be saved

Definition at line 358 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ SaveList() [5/5]

template<typename T >
StatusCode pandora::PandoraContentApiImpl::SaveList ( const T t,
const std::string &  newListName 
) const
private

Save a provided input object list under a new name.

Parameters
tthe provided input object list
newListNamethe new list name

Definition at line 322 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ SetPfoParentDaughterRelationship()

StatusCode pandora::PandoraContentApiImpl::SetPfoParentDaughterRelationship ( const ParticleFlowObject *const  pParentPfo,
const ParticleFlowObject *const  pDaughterPfo 
) const
private

Set parent-daughter particle flow object relationship.

Parameters
pParentPfoaddress of parent particle flow object
pDaughterPfoaddress of daughter particle flow object

Definition at line 595 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

◆ TemporarilyReplaceCurrentList()

template<typename T >
template StatusCode pandora::PandoraContentApiImpl::TemporarilyReplaceCurrentList< Vertex > ( const std::string &  newListName) const
private

Temporarily replace the current list with another list, which may only be a temporary list. This switch will persist only for the duration of the algorithm and its daughters; unless otherwise specified, the current list will revert to the algorithm input list upon algorithm completion.

Parameters
newListNamethe name of the replacement list

Definition at line 366 of file PandoraContentApiImpl.cc.

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ ::object_creation::ObjectCreationHelper

◆ ::PandoraContentApi

Definition at line 567 of file PandoraContentApiImpl.h.

◆ Pandora

Definition at line 565 of file PandoraContentApiImpl.h.

◆ PandoraImpl

Definition at line 566 of file PandoraContentApiImpl.h.

Member Data Documentation

◆ m_pPandora

Pandora* pandora::PandoraContentApiImpl::m_pPandora
private

The pandora object to provide an interface to.

Definition at line 563 of file PandoraContentApiImpl.h.


The documentation for this class was generated from the following files: