APRILContent
Algorithm of Particle Reconstruction for ILC - implementation with PandoraSDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations
Classes | Private Types | Private Member Functions | Private Attributes | List of all members
april_content::MainFragmentRemovalAlgorithm Class Reference

MainFragmentRemovalAlgorithm class. More...

#include <MainFragmentRemovalAlgorithm.h>

Inheritance diagram for april_content::MainFragmentRemovalAlgorithm:

Classes

class  Factory
 

Private Types

typedef
ChargedClusterContact::Parameters 
ContactParameters
 

Private Member Functions

pandora::StatusCode Run ()
 
pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 
pandora::StatusCode GetChargedClusterContactMap (bool &isFirstPass, const pandora::ClusterSet &affectedClusters, ChargedClusterContactMap &chargedClusterContactMap) const
 Get cluster contact map, linking each daughter candidate cluster to a list of parent candidates and describing the proximity/contact between each pairing. More...
 
bool PassesClusterContactCuts (const ChargedClusterContact &chargedClusterContact) const
 Whether candidate parent and daughter clusters are sufficiently in contact to warrant further investigation. More...
 
pandora::StatusCode GetClusterMergingCandidates (const ChargedClusterContactMap &chargedClusterContactMap, const pandora::Cluster *&pBestParentCluster, const pandora::Cluster *&pBestDaughterCluster)
 Find the best candidate parent and daughter clusters for fragment removal merging. More...
 
bool PassesPreselection (const pandora::Cluster *const pDaughterCluster, const ChargedClusterContactVector &chargedClusterContactVector, float &globalDeltaChi2) const
 Whether the candidate parent and daughter clusters pass quick preselection for fragment removal merging. More...
 
float GetTotalEvidenceForMerge (const ChargedClusterContact &chargedClusterContact) const
 Get a measure of the total evidence for merging the parent and daughter candidate clusters. More...
 
float GetRequiredEvidenceForMerge (const pandora::Cluster *const pDaughterCluster, const ChargedClusterContact &chargedClusterContact, const unsigned int correctionLayer, const float globalDeltaChi2)
 Get the required evidence for merging the parent and daughter candidate clusters. More...
 
unsigned int GetClusterCorrectionLayer (const pandora::Cluster *const pDaughterCluster) const
 Get the cluster correction layer. Working from innermost to outermost layer, the correction layer is that in which: i) the number of hit-layers passes m_correctionLayerNHitLayers, or ii) the total calo hit hadronic energy passes (m_correctionLayerEnergyFraction * cluster energy) More...
 
pandora::StatusCode GetAffectedClusters (const ChargedClusterContactMap &chargedClusterContactMap, const pandora::Cluster *const pBestParentCluster, const pandora::Cluster *const pBestDaughterCluster, pandora::ClusterSet &affectedClusters) const
 Get the list of clusters for which cluster contact information will be affected by a specified cluster merge. More...
 

Private Attributes

ContactParameters m_contactParameters
 The charged cluster contact parameters.
 
unsigned int m_minDaughterCaloHits
 Min number of calo hits in daughter candidate clusters.
 
float m_minDaughterHadronicEnergy
 Min hadronic energy for daughter candidate clusters.
 
float m_contactCutMaxDistance
 Max distance between closest hits to store cluster contact info.
 
unsigned int m_contactCutNLayers
 Number of contact layers to store cluster contact info.
 
float m_contactCutConeFraction1
 Cone fraction 1 value to store cluster contact info.
 
float m_contactCutCloseHitFraction1
 Close hit fraction 1 value to store cluster contact info.
 
float m_contactCutCloseHitFraction2
 Close hit fraction 2 value to store cluster contact info.
 
float m_contactCutMeanDistanceToHelix
 Mean distance to helix value to store cluster contact info.
 
float m_contactCutClosestDistanceToHelix
 Closest distance to helix value to store cluster contact info.
 
float m_contactCutMaxHitDistance
 Hit separation to store contact info.
 
unsigned int m_contactCutMinDaughterInnerLayer
 Min daughter cluster inner layer to store contact info.
 
float m_maxChi2
 Pre-selection: new chi2 value to allow cluster merging.
 
float m_maxGlobalChi2
 Pre-selection: new global chi2 value to allow cluster merging.
 
float m_chi2Base
 Required evidence: min contribution from change in chi2.
 
float m_globalChi2Penalty
 Required evidence penalty for using global chi2 measure.
 
unsigned int m_correctionLayerNHitLayers
 Number of hit-layers passed to identify correction layer.
 
float m_correctionLayerEnergyFraction
 Fraction of total hadronic energy passed to identify correction layer.
 
unsigned int m_contactEvidenceNLayers1
 Contact evidence n layers cut 1.
 
unsigned int m_contactEvidenceNLayers2
 Contact evidence n layers cut 2.
 
unsigned int m_contactEvidenceNLayers3
 Contact evidence n layers cut 3.
 
float m_contactEvidence1
 Contact evidence contribution 1.
 
float m_contactEvidence2
 Contact evidence contribution 2.
 
float m_contactEvidence3
 Contact evidence contribution 3.
 
float m_coneEvidenceFraction1
 Cone fraction 1 value required for cone evidence contribution.
 
float m_coneEvidenceFineGranularityMultiplier
 Cone evidence multiplier for fine granularity daughter clusters.
 
float m_closestTrackEvidence1
 Offset for closest distance to helix evidence contribution 1.
 
float m_closestTrackEvidence1d
 Denominator for closest distance to helix evidence contribution 1.
 
float m_closestTrackEvidence2
 Offset for closest distance to helix evidence contribution 2.
 
float m_closestTrackEvidence2d
 Denominator for closest distance to helix evidence contribution 2.
 
float m_meanTrackEvidence1
 Offset for mean distance to helix evidence contribution 1.
 
float m_meanTrackEvidence1d
 Denominator for mean distance to helix evidence contribution 1.
 
float m_meanTrackEvidence2
 Offset for mean distance to helix evidence contribution 2.
 
float m_meanTrackEvidence2d
 Denominator for mean distance to helix evidence contribution 1.
 
float m_distanceEvidence1
 Offset for distance evidence contribution 1.
 
float m_distanceEvidence1d
 Denominator for distance evidence contribution 1.
 
float m_distanceEvidenceCloseFraction1Multiplier
 Distance evidence multiplier for close hit fraction 1.
 
float m_distanceEvidenceCloseFraction2Multiplier
 Distance evidence multiplier for close hit fraction 2.
 
float m_contactWeight
 Weight for layers in contact evidence.
 
float m_coneWeight
 Weight for cone extrapolation evidence.
 
float m_distanceWeight
 Weight for distance of closest approach evidence.
 
float m_trackExtrapolationWeight
 Weight for track extrapolation evidence.
 
unsigned int m_layerCorrectionLayerValue1
 Max value of correction layer for layer correction contribution 1.
 
unsigned int m_layerCorrectionLayerValue2
 Max value of correction layer for layer correction contribution 2.
 
unsigned int m_layerCorrectionLayerValue3
 Max value of correction layer for layer correction contribution 3.
 
float m_layerCorrection1
 Layer correction contribution 1.
 
float m_layerCorrection2
 Layer correction contribution 2.
 
float m_layerCorrection3
 Layer correction contribution 3.
 
float m_layerCorrection4
 Layer correction contribution 4, applied if 1,2,3 not applicable.
 
float m_layerCorrectionLayerSpan
 Daughter layer span for layer correction contribution 5.
 
float m_layerCorrectionMinInnerLayer
 Daughter min inner layer for layer correction contribution 5.
 
float m_layerCorrection5
 Layer correction contribution 5.
 
float m_leavingCorrection
 Correction for clusters leaving calorimeters.
 
float m_energyCorrectionThreshold
 Energy correction threshold.
 
float m_lowEnergyCorrectionThreshold
 Low energy correction threshold.
 
unsigned int m_lowEnergyCorrectionNHitLayers1
 Number of hit layers below which to apply contribution 1.
 
unsigned int m_lowEnergyCorrectionNHitLayers2
 Number of hit layers below which to apply contribution 2.
 
unsigned int m_lowEnergyCorrectionNHitLayers3
 Number of hit layers above which to apply contribution 3.
 
float m_lowEnergyCorrection1
 Low energy correction contribution 1.
 
float m_lowEnergyCorrection2
 Low energy correction contribution 2.
 
float m_lowEnergyCorrection3
 Low energy correction contribution 3.
 
float m_angularCorrectionOffset
 Offset value for angular correction.
 
float m_angularCorrectionConstant
 Constant value for angular correction.
 
float m_angularCorrectionGradient
 Gradient value for angular correction.
 
float m_photonCorrectionEnergy1
 Photon correction energy value 1.
 
float m_photonCorrectionEnergy2
 Photon correction energy value 2.
 
float m_photonCorrectionEnergy3
 Photon correction energy value 3.
 
float m_photonCorrectionShowerStart1
 Photon correction profile shower start value 1.
 
float m_photonCorrectionShowerStart2
 Photon correction profile shower start value 1.
 
float m_photonCorrectionShowerDiscrepancy1
 Photon correction profile discrepancy value 1.
 
float m_photonCorrectionShowerDiscrepancy2
 Photon correction profile discrepancy value 2.
 
float m_photonCorrection1
 Photon correction contribution 1.
 
float m_photonCorrection2
 Photon correction contribution 2.
 
float m_photonCorrection3
 Photon correction contribution 3.
 
float m_photonCorrection4
 Photon correction contribution 4.
 
float m_photonCorrection5
 Photon correction contribution 5.
 
float m_photonCorrection6
 Photon correction contribution 6.
 
float m_photonCorrection7
 Photon correction contribution 7.
 
float m_minRequiredEvidence
 Minimum required evidence to merge parent/daughter clusters.
 

Detailed Description

MainFragmentRemovalAlgorithm class.

Member Function Documentation

pandora::StatusCode april_content::MainFragmentRemovalAlgorithm::GetAffectedClusters ( const ChargedClusterContactMap &  chargedClusterContactMap,
const pandora::Cluster *const  pBestParentCluster,
const pandora::Cluster *const  pBestDaughterCluster,
pandora::ClusterSet &  affectedClusters 
) const
private

Get the list of clusters for which cluster contact information will be affected by a specified cluster merge.

Parameters
chargedClusterContactMapthe cluster contact map
pBestParentClusteraddress of the parent cluster to be merged
pBestDaughterClusteraddress of the daughter cluster to be merged
affectedClustersto receive the list of affected clusters
pandora::StatusCode april_content::MainFragmentRemovalAlgorithm::GetChargedClusterContactMap ( bool &  isFirstPass,
const pandora::ClusterSet &  affectedClusters,
ChargedClusterContactMap &  chargedClusterContactMap 
) const
private

Get cluster contact map, linking each daughter candidate cluster to a list of parent candidates and describing the proximity/contact between each pairing.

Parameters
isFirstPasswhether this is the first call to GetChargedClusterContactMap
affectedClusterslist of those clusters affected by previous cluster merging, for which contact details must be updated
chargedClusterContactMapto receive the populated cluster contact map
unsigned int april_content::MainFragmentRemovalAlgorithm::GetClusterCorrectionLayer ( const pandora::Cluster *const  pDaughterCluster) const
private

Get the cluster correction layer. Working from innermost to outermost layer, the correction layer is that in which: i) the number of hit-layers passes m_correctionLayerNHitLayers, or ii) the total calo hit hadronic energy passes (m_correctionLayerEnergyFraction * cluster energy)

Parameters
pDaughterClusteraddress of the daughter cluster candidate
Returns
the cluster correction layer
pandora::StatusCode april_content::MainFragmentRemovalAlgorithm::GetClusterMergingCandidates ( const ChargedClusterContactMap &  chargedClusterContactMap,
const pandora::Cluster *&  pBestParentCluster,
const pandora::Cluster *&  pBestDaughterCluster 
)
private

Find the best candidate parent and daughter clusters for fragment removal merging.

Parameters
chargedClusterContactMapthe populated cluster contact map
pBestParentClusterto receive the address of the best parent cluster candidate
pBestDaughterClusterto receive the address of the best daughter cluster candidate
float april_content::MainFragmentRemovalAlgorithm::GetRequiredEvidenceForMerge ( const pandora::Cluster *const  pDaughterCluster,
const ChargedClusterContact chargedClusterContact,
const unsigned int  correctionLayer,
const float  globalDeltaChi2 
)
private

Get the required evidence for merging the parent and daughter candidate clusters.

Parameters
pDaughterClusteraddress of the daughter cluster candidate
chargedClusterContactthe cluster contact details for parent/daughter candidate merge
correctionLayerthe daughter cluster correction layer
globalDeltaChi2global delta chi2, indicating whether daughter cluster would be better merged with group of all nearby clusters
Returns
the required evidence
float april_content::MainFragmentRemovalAlgorithm::GetTotalEvidenceForMerge ( const ChargedClusterContact chargedClusterContact) const
private

Get a measure of the total evidence for merging the parent and daughter candidate clusters.

Parameters
chargedClusterContactthe cluster contact details for parent/daughter candidate merge
Returns
the total evidence
bool april_content::MainFragmentRemovalAlgorithm::PassesClusterContactCuts ( const ChargedClusterContact chargedClusterContact) const
private

Whether candidate parent and daughter clusters are sufficiently in contact to warrant further investigation.

Parameters
chargedClusterContactthe cluster contact
Returns
boolean
bool april_content::MainFragmentRemovalAlgorithm::PassesPreselection ( const pandora::Cluster *const  pDaughterCluster,
const ChargedClusterContactVector &  chargedClusterContactVector,
float &  globalDeltaChi2 
) const
private

Whether the candidate parent and daughter clusters pass quick preselection for fragment removal merging.

Parameters
pDaughterClusteraddress of the daughter cluster candidate
chargedClusterContactVectorlist cluster contact details for the given daughter cluster
globalDeltaChi2to receive global delta chi2, indicating whether daughter cluster would be better merged with group of all nearby clusters
Returns
boolean

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