8#ifndef PANDORA_CALO_HIT_MANAGER_H
9#define PANDORA_CALO_HIT_MANAGER_H 1
155 const std::string &originalReclusterListName);
Header file for pandora object creation classes.
Header file defining relevant internal typedefs, sort and string conversion functions.
Algorithm class. Algorithm addresses are held only by the algorithm manager. They have a fully define...
StatusCode PrepareForClustering(const Algorithm *const pAlgorithm, const std::string &newReclusterListName)
Prepare metadata to allow for construction of new recluster candidates.
StatusCode SetAvailability(const T *const pT, bool isAvailable)
Set availability of a calo hit, or a list of calo hits, to be added to a cluster.
StatusCode MatchCaloHitsToMCPfoTargets(const UidToMCParticleWeightMap &caloHitToPfoTargetsMap)
Match calo hits to their correct mc particles for particle flow.
ReclusterMetadata * m_pCurrentReclusterMetadata
Address of the current recluster metadata.
bool CanFragmentCaloHit(const CaloHit *const pOriginalCaloHit, const float fraction1) const
Whether a calo hit can be fragmented into two daughter calo hits with the specified energy division.
StatusCode RemoveAllMCParticleRelationships()
Remove all mc particle associations that have been registered with calo hits.
StatusCode CreateTemporaryListAndSetCurrent(const Algorithm *const pAlgorithm, const ClusterList &clusterList, std::string &temporaryListName)
Change the current calo hit list to the constituent hits of a cluster list.
bool CanMergeCaloHitFragments(const CaloHit *const pFragmentCaloHit1, const CaloHit *const pFragmentCaloHit2) const
Whether two candidate calo hit fragments can be merged.
StatusCode FragmentCaloHit(const CaloHit *const pOriginalCaloHit, const float fraction1, const CaloHit *&pDaughterCaloHit1, const CaloHit *&pDaughterCaloHit2, const ObjectFactory< object_creation::CaloHitFragment::Parameters, object_creation::CaloHitFragment::Object > &factory)
Fragment a calo hit into two daughter calo hits, with a specified energy division.
unsigned int m_nReclusteringProcesses
The number of reclustering algorithms currently in operation.
bool IsAvailable(const T *const pT) const
Is a calo hit, or a list of calo hits, available to add to a cluster.
StatusCode EndReclustering(const Algorithm *const pAlgorithm, const std::string &selectedReclusterListName)
End reclustering operations and update calo hit lists accordingly.
StatusCode AlterMetadata(const CaloHit *const pCaloHit, const object_creation::CaloHit::Metadata &metadata) const
Alter the metadata information stored in a calo hit.
StatusCode Create(const object_creation::CaloHit::Parameters ¶meters, const CaloHit *&pCaloHit, const ObjectFactory< object_creation::CaloHit::Parameters, object_creation::CaloHit::Object > &factory)
Create calo hit.
ReclusterMetadataList m_reclusterMetadataList
The recluster metadata list.
StatusCode Update(const CaloHitMetadata &caloHitMetadata)
Update all calo hit lists to account for changes by daughter recluster processes.
StatusCode InitializeReclustering(const Algorithm *const pAlgorithm, const ClusterList &clusterList, const std::string &originalReclusterListName)
Initialize reclustering operations, preparing lists and metadata accordingly.
StatusCode MergeCaloHitFragments(const CaloHit *const pFragmentCaloHit1, const CaloHit *const pFragmentCaloHit2, const CaloHit *&pMergedCaloHit, const ObjectFactory< object_creation::CaloHitFragment::Parameters, object_creation::CaloHitFragment::Object > &factory)
Merge two calo hit fragments, originally from the same parent hit, to form a new calo hit.
~CaloHitManager()
Destructor.
StatusCode EraseAllContent()
Erase all calo hit manager content.
ObjectFactory class responsible for extended pandora object creation.
PandoraContentApiImpl class.
MANAGED_CONTAINER< const Cluster * > ClusterList
std::vector< ReclusterMetadata * > ReclusterMetadataList
MANAGED_CONTAINER< const CaloHit * > CaloHitList
StatusCode
The StatusCode enum.
std::unordered_map< Uid, MCParticleWeightMap > UidToMCParticleWeightMap
CaloHitReplacement class.