8#ifndef PANDORA_CONTENT_API_IMPL_H
9#define PANDORA_CONTENT_API_IMPL_H 1
57 template <
typename OBJECT,
typename METADATA>
70 template <
typename PARAMETERS,
typename OBJECT>
150 template <
typename T>
158 template <
typename T>
168 template <
typename T>
176 template <
typename T>
185 template <
typename T>
194 template <
typename T>
206 template <
typename T>
218 template <
typename T>
228 template <
typename T>
238 template <
typename T>
249 template <
typename T>
259 template <
typename T>
269 template <
typename T>
282 template <
typename T>
293 template <
typename T>
302 template <
typename T>
314 template <
typename T>
333 template <
typename T>
441 template <
typename T>
451 template <
typename T>
538 template <
typename T>
546 template <
typename T>
567 friend class ::PandoraContentApi;
568 template<
typename PARAMETERS,
typename METADATA,
typename OBJECT>
friend class ::object_creation::ObjectCreationHelper;
Header file for pandora object creation classes.
Header file for the pandora content api class.
Header file defining status codes and relevant preprocessor macros.
Algorithm class. Algorithm addresses are held only by the algorithm manager. They have a fully define...
ObjectFactory class responsible for extended pandora object creation.
PandoraContentApiImpl class.
StatusCode EndReclustering(const Algorithm &algorithm, const std::string &selectedClusterListName) const
End reclustering operations on clusters in the algorithm input list.
StatusCode RunAlgorithm(const std::string &algorithmName) const
Run an algorithm registered with pandora.
StatusCode AddToPfo(const ParticleFlowObject *const pPfo, const T *const pT) const
Add a cluster to a particle flow object.
StatusCode RemoveCurrentTrackClusterAssociations() const
Remove all track-cluster associations from objects in the current track and cluster lists.
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 ...
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 RepeatMCParticlePreparation() const
Repeat the mc particle preparation, performing pfo target identification and forming relationships wi...
StatusCode RemoveTrackClusterAssociation(const Track *const pTrack, const Cluster *const pCluster) const
Remove an association between a track and a cluster.
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 PrepareForDeletion(const T *const pT) const
Prepare an object, or a list of objects, for deletion.
StatusCode SaveList(const T &t, const std::string &newListName) const
Save a provided input object list under a new name.
StatusCode DropCurrentList(const Algorithm &algorithm) const
Drop the current list, returning the current list to its default empty/null state.
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 n...
StatusCode PostRunAlgorithm(Algorithm *const pAlgorithm) const
Perform necessary operations after algorithm execution, e.g. preparing temporaries for deletion.
StatusCode RemovePfoParentDaughterRelationship(const ParticleFlowObject *const pParentPfo, const ParticleFlowObject *const pDaughterPfo) const
Remove parent-daughter particle flow object relationship.
const PandoraSettings * GetSettings() const
Get the pandora settings instance.
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 AlterMetadata(const OBJECT *const pObject, const METADATA &metadata) const
Alter the metadata information stored in an object.
StatusCode GetCurrentListName(std::string &listName) const
Get the current list name.
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.
StatusCode GetList(const std::string &listName, const T *&pT) const
Get a named list.
bool IsAddToClusterAllowed(const Cluster *const pCluster, const CaloHit *const pCaloHit) const
Whether a proposed addition to a cluster is allowed.
StatusCode RemoveAllMCParticleRelationships() const
Remove all mc particle relationships previously registered with the mc manager and linked to tracks/c...
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....
ReturnType< T >::Type * GetManager() const
Manager type adaptor.
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 (tr...
StatusCode Create(const PARAMETERS ¶meters, const OBJECT *&pObject, const ObjectFactory< PARAMETERS, OBJECT > &factory) const
Create an object for pandora.
StatusCode RepeatEventPreparation() const
Repeat the event preparation stages, which are used to calculate properties of input objects for late...
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 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 lis...
StatusCode Delete(const T *const pT) const
Delete an object from the current list.
StatusCode SetPfoParentDaughterRelationship(const ParticleFlowObject *const pParentPfo, const ParticleFlowObject *const pDaughterPfo) const
Set parent-daughter particle flow object relationship.
const PluginManager * GetPlugins() const
Get the pandora plugin instance, providing access to user registered functions and calculators.
StatusCode AddTrackClusterAssociation(const Track *const pTrack, const Cluster *const pCluster) const
Add an association between a track and a cluster.
StatusCode AddToCluster(const Cluster *const pCluster, const T *const pT) const
Add a calo hit, or a list of calo hits, to a cluster.
Pandora * m_pPandora
The pandora object to provide an interface to.
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 cluste...
StatusCode PrepareForReclusteringDeletion(const T *const pT) const
Prepare an object, or a list of objects, (formed as recluster candidates) for deletion.
StatusCode CreateDaughterAlgorithm(TiXmlElement *const pXmlElement, std::string &daughterAlgorithmName) const
Create an algorithm instance, via one of the algorithm factories registered with pandora....
const GeometryManager * GetGeometry() const
Get the pandora geometry instance.
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)
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 ...
bool IsAvailable(const T *const pT) const
Is object, or a list of objects, available as a building block.
StatusCode CreateAlgorithmTool(TiXmlElement *const pXmlElement, AlgorithmTool *&pAlgorithmTool) const
Create an algorithm tool instance, via one of the algorithm tool factories registered with pandora....
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 fro...
StatusCode TemporarilyReplaceCurrentList(const std::string &newListName) const
Temporarily replace the current list with another list, which may only be a temporary list....
StatusCode RemoveAllTrackClusterAssociations() const
Remove all associations between tracks and clusters.
StatusCode GetCurrentList(const T *&pT, std::string &listName) const
Get the current list.
StatusCode PreRunAlgorithm(Algorithm *const pAlgorithm) const
Perform necessary operations prior to algorithm execution, e.g. algorithm to manager handshakes.
ParticleFlowObject class.
MANAGED_CONTAINER< const Cluster * > ClusterList
MANAGED_CONTAINER< const Track * > TrackList
StatusCode
The StatusCode enum.