Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
lar_content::TrackClusterCreationAlgorithm Class Reference

TrackClusterCreationAlgorithm class. More...

#include "TrackClusterCreationAlgorithm.h"

Inheritance diagram for lar_content::TrackClusterCreationAlgorithm:
Collaboration diagram for lar_content::TrackClusterCreationAlgorithm:

Classes

class  HitAssociation
 HitAssociation class. More...
 

Public Member Functions

 TrackClusterCreationAlgorithm ()
 Default constructor.
 
const std::string & GetType () const
 Get the type.
 
const std::string & GetInstanceName () const
 Get the instance name.
 
const PandoraGetPandora () const
 Get the associated pandora instance.
 

Protected Member Functions

virtual StatusCode Initialize ()
 Perform any operations that must occur after reading settings, but before running the process.
 
virtual StatusCode Reset ()
 Perform any operations when pandora is reset, typically at the end of each event.
 
StatusCode RegisterDetails (const Pandora *const pPandora, const std::string &type, const std::string &instanceName)
 Register i) the pandora instance that will run the process and ii) the process type.
 

Protected Attributes

const Pandoram_pPandora
 The pandora object that will run the process.
 
std::string m_type
 The process type.
 
std::string m_instanceName
 The process instance name.
 

Private Types

typedef std::unordered_map< const pandora::CaloHit *, HitAssociationHitAssociationMap
 
typedef std::unordered_map< const pandora::CaloHit *, const pandora::CaloHit * > HitJoinMap
 
typedef std::unordered_map< const pandora::CaloHit *, const pandora::Cluster * > HitToClusterMap
 

Private Member Functions

pandora::StatusCode Run ()
 Run the algorithm.
 
pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 Read the algorithm settings.
 
pandora::StatusCode FilterCaloHits (const pandora::CaloHitList *const pCaloHitList, pandora::OrderedCaloHitList &selectedCaloHitList, pandora::OrderedCaloHitList &rejectedCaloHitList) const
 Filter out low pulse height hits in close proximity to high pulse height hits.
 
pandora::StatusCode AddFilteredCaloHits (const pandora::OrderedCaloHitList &selectedCaloHitList, const pandora::OrderedCaloHitList &rejectedCaloHitList, HitToClusterMap &hitToClusterMap) const
 Merge previously filtered hits back into their associated clusters.
 
void MakePrimaryAssociations (const pandora::OrderedCaloHitList &orderedCaloHitList, HitAssociationMap &forwardHitAssociationMap, HitAssociationMap &backwardHitAssociationMap) const
 Control primary association formation.
 
void MakeSecondaryAssociations (const pandora::OrderedCaloHitList &orderedCaloHitList, HitAssociationMap &forwardHitAssociationMap, HitAssociationMap &backwardHitAssociationMap) const
 Control secondary association formation.
 
void IdentifyJoins (const pandora::OrderedCaloHitList &orderedCaloHitList, const HitAssociationMap &forwardHitAssociationMap, const HitAssociationMap &backwardHitAssociationMap, HitJoinMap &hitJoinMap) const
 Identify final hit joins for use in cluster formation.
 
void CreateClusters (const pandora::OrderedCaloHitList &orderedCaloHitList, const HitJoinMap &hitJoinMap, HitToClusterMap &hitToClusterMap) const
 Final cluster formation.
 
void CreatePrimaryAssociation (const pandora::CaloHit *const pCaloHitI, const pandora::CaloHit *const pCaloHitJ, HitAssociationMap &forwardHitAssociationMap, HitAssociationMap &backwardHitAssociationMap) const
 Create primary association if appropriate, hitI<->hitJ.
 
void CreateSecondaryAssociation (const pandora::CaloHit *const pCaloHitI, const pandora::CaloHit *const pCaloHitJ, HitAssociationMap &forwardHitAssociationMap, HitAssociationMap &backwardHitAssociationMap) const
 Create secondary association if appropriate, hitI<->hitJ.
 
const pandora::CaloHitGetJoinHit (const pandora::CaloHit *const pCaloHit, const HitAssociationMap &hitAssociationMapI, const HitAssociationMap &hitAssociationMapJ) const
 Get hit to join by tracing associations via map I, checking via map J.
 
const pandora::CaloHitTraceHitAssociation (const pandora::CaloHit *const pCaloHit, const HitAssociationMap &hitAssociationMapI, const HitAssociationMap &hitAssociationMapJ, unsigned int &nSteps) const
 Get last hit obtained by tracing associations via map I, checking via map J.
 

Private Attributes

bool m_mergeBackFilteredHits
 Merge rejected hits into their associated clusters.
 
unsigned int m_maxGapLayers
 Maximum number of layers for a gap.
 
float m_maxCaloHitSeparationSquared
 Square of maximum calo hit separation.
 
float m_minCaloHitSeparationSquared
 Square of minimum calo hit separation.
 
float m_closeSeparationSquared
 Length scale (squared) for close hit separation.
 

Detailed Description

Member Typedef Documentation

◆ HitAssociationMap

◆ HitJoinMap

Definition at line 88 of file TrackClusterCreationAlgorithm.h.

◆ HitToClusterMap

Definition at line 89 of file TrackClusterCreationAlgorithm.h.

Constructor & Destructor Documentation

◆ TrackClusterCreationAlgorithm()

lar_content::TrackClusterCreationAlgorithm::TrackClusterCreationAlgorithm ( )

Default constructor.

Definition at line 20 of file TrackClusterCreationAlgorithm.cc.

Member Function Documentation

◆ AddFilteredCaloHits()

StatusCode lar_content::TrackClusterCreationAlgorithm::AddFilteredCaloHits ( const pandora::OrderedCaloHitList selectedCaloHitList,
const pandora::OrderedCaloHitList rejectedCaloHitList,
HitToClusterMap hitToClusterMap 
) const
private

Merge previously filtered hits back into their associated clusters.

Parameters
selectedCaloHitListthe ordered list of selected hits
rejectedCaloHitListthe ordered list of rejected hits
hitToClusterMapthe mapping between hits and their clusters

Definition at line 107 of file TrackClusterCreationAlgorithm.cc.

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

◆ CreateClusters()

void lar_content::TrackClusterCreationAlgorithm::CreateClusters ( const pandora::OrderedCaloHitList orderedCaloHitList,
const HitJoinMap hitJoinMap,
HitToClusterMap hitToClusterMap 
) const
private

Final cluster formation.

Parameters
orderedCaloHitListthe ordered calo hit list
hitJoinMapthe hit join map
hitToClusterMapthe mapping between hits and their clusters

Definition at line 276 of file TrackClusterCreationAlgorithm.cc.

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

◆ CreatePrimaryAssociation()

void lar_content::TrackClusterCreationAlgorithm::CreatePrimaryAssociation ( const pandora::CaloHit *const  pCaloHitI,
const pandora::CaloHit *const  pCaloHitJ,
HitAssociationMap forwardHitAssociationMap,
HitAssociationMap backwardHitAssociationMap 
) const
private

Create primary association if appropriate, hitI<->hitJ.

Parameters
pCaloHitIaddress of calo hit I
pCaloHitJaddress of calo hit J
forwardHitAssociationMapthe forward hit association map
backwardHitAssociationMapthe backward hit association map

Definition at line 318 of file TrackClusterCreationAlgorithm.cc.

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

◆ CreateSecondaryAssociation()

void lar_content::TrackClusterCreationAlgorithm::CreateSecondaryAssociation ( const pandora::CaloHit *const  pCaloHitI,
const pandora::CaloHit *const  pCaloHitJ,
HitAssociationMap forwardHitAssociationMap,
HitAssociationMap backwardHitAssociationMap 
) const
private

Create secondary association if appropriate, hitI<->hitJ.

Parameters
pCaloHitIaddress of calo hit I
pCaloHitJaddress of calo hit J
forwardHitAssociationMapthe forward hit association map
backwardHitAssociationMapthe backward hit association map

Definition at line 351 of file TrackClusterCreationAlgorithm.cc.

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

◆ FilterCaloHits()

StatusCode lar_content::TrackClusterCreationAlgorithm::FilterCaloHits ( const pandora::CaloHitList *const  pCaloHitList,
pandora::OrderedCaloHitList selectedCaloHitList,
pandora::OrderedCaloHitList rejectedCaloHitList 
) const
private

Filter out low pulse height hits in close proximity to high pulse height hits.

Parameters
pCaloHitListinput hit list
selectedCaloHitListthe output selected list of selected hits
rejectedCaloHitListthe output rejected list of rejected hits

Definition at line 58 of file TrackClusterCreationAlgorithm.cc.

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

◆ GetInstanceName()

const std::string & pandora::Process::GetInstanceName ( ) const
inlineinherited

Get the instance name.

Returns
The instance name

Definition at line 109 of file Process.h.

◆ GetJoinHit()

const CaloHit * lar_content::TrackClusterCreationAlgorithm::GetJoinHit ( const pandora::CaloHit *const  pCaloHit,
const HitAssociationMap hitAssociationMapI,
const HitAssociationMap hitAssociationMapJ 
) const
private

Get hit to join by tracing associations via map I, checking via map J.

Parameters
pCaloHitthe initial calo hit
hitAssociationMapIhit association map I
hitAssociationMapJhit association map J
Returns
the hit to join

Definition at line 384 of file TrackClusterCreationAlgorithm.cc.

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

◆ GetPandora()

const Pandora & pandora::Process::GetPandora ( ) const
inlineinherited

Get the associated pandora instance.

Returns
the associated pandora instance

Definition at line 116 of file Process.h.

◆ GetType()

const std::string & pandora::Process::GetType ( ) const
inlineinherited

Get the type.

Returns
The type

Definition at line 102 of file Process.h.

◆ IdentifyJoins()

void lar_content::TrackClusterCreationAlgorithm::IdentifyJoins ( const pandora::OrderedCaloHitList orderedCaloHitList,
const HitAssociationMap forwardHitAssociationMap,
const HitAssociationMap backwardHitAssociationMap,
HitJoinMap hitJoinMap 
) const
private

Identify final hit joins for use in cluster formation.

Parameters
orderedCaloHitListthe ordered calo hit list
forwardHitAssociationMapthe forward hit association map
backwardHitAssociationMapthe backward hit association map
hitJoinMapto receive the hit join map

Definition at line 247 of file TrackClusterCreationAlgorithm.cc.

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

◆ Initialize()

StatusCode pandora::Process::Initialize ( )
inlineprotectedvirtualinherited

Perform any operations that must occur after reading settings, but before running the process.

Reimplemented in lar_content::BdtBeamParticleIdTool, lar_content::BeamParticleIdTool, lar_content::CosmicRayTaggingTool, lar_content::EventReadingAlgorithm, lar_content::EventWritingAlgorithm, lar_content::LArPseudoLayerPlugin, lar_content::LArRotationalTransformationPlugin, EventReadingAlgorithm, and EventWritingAlgorithm.

Definition at line 126 of file Process.h.

Here is the caller graph for this function:

◆ MakePrimaryAssociations()

void lar_content::TrackClusterCreationAlgorithm::MakePrimaryAssociations ( const pandora::OrderedCaloHitList orderedCaloHitList,
HitAssociationMap forwardHitAssociationMap,
HitAssociationMap backwardHitAssociationMap 
) const
private

Control primary association formation.

Parameters
orderedCaloHitListthe ordered calo hit list
forwardHitAssociationMapthe forward hit association map
backwardHitAssociationMapthe backward hit association map

Definition at line 184 of file TrackClusterCreationAlgorithm.cc.

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

◆ MakeSecondaryAssociations()

void lar_content::TrackClusterCreationAlgorithm::MakeSecondaryAssociations ( const pandora::OrderedCaloHitList orderedCaloHitList,
HitAssociationMap forwardHitAssociationMap,
HitAssociationMap backwardHitAssociationMap 
) const
private

Control secondary association formation.

Parameters
orderedCaloHitListthe ordered calo hit list
forwardHitAssociationMapthe forward hit association map
backwardHitAssociationMapthe backward hit association map

Definition at line 214 of file TrackClusterCreationAlgorithm.cc.

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

◆ ReadSettings()

StatusCode lar_content::TrackClusterCreationAlgorithm::ReadSettings ( const pandora::TiXmlHandle  xmlHandle)
privatevirtual

Read the algorithm settings.

Parameters
xmlHandlethe relevant xml handle

Implements pandora::Process.

Definition at line 441 of file TrackClusterCreationAlgorithm.cc.

Here is the call graph for this function:

◆ RegisterDetails()

StatusCode pandora::Process::RegisterDetails ( const Pandora *const  pPandora,
const std::string &  type,
const std::string &  instanceName 
)
inlineprotectedinherited

Register i) the pandora instance that will run the process and ii) the process type.

Parameters
pPandoraaddress of the pandora object that will run the process
typethe process type
instanceNamethe process instance name

Definition at line 146 of file Process.h.

Here is the caller graph for this function:

◆ Reset()

StatusCode pandora::Process::Reset ( )
inlineprotectedvirtualinherited

Perform any operations when pandora is reset, typically at the end of each event.

Reimplemented in lar_content::MasterAlgorithm, lar_content::PostProcessingAlgorithm, and lar_content::PreProcessingAlgorithm.

Definition at line 133 of file Process.h.

Here is the caller graph for this function:

◆ Run()

StatusCode lar_content::TrackClusterCreationAlgorithm::Run ( )
privatevirtual

Run the algorithm.

Implements pandora::Algorithm.

Definition at line 31 of file TrackClusterCreationAlgorithm.cc.

Here is the call graph for this function:

◆ TraceHitAssociation()

const CaloHit * lar_content::TrackClusterCreationAlgorithm::TraceHitAssociation ( const pandora::CaloHit *const  pCaloHit,
const HitAssociationMap hitAssociationMapI,
const HitAssociationMap hitAssociationMapJ,
unsigned int &  nSteps 
) const
private

Get last hit obtained by tracing associations via map I, checking via map J.

Parameters
pCaloHitthe initial calo hit
hitAssociationMapIhit association map I
hitAssociationMapJhit association map J
nStepsto receive the number of association steps
Returns
the last hit obtained in the chain of associations

Definition at line 410 of file TrackClusterCreationAlgorithm.cc.

Here is the caller graph for this function:

Member Data Documentation

◆ m_closeSeparationSquared

float lar_content::TrackClusterCreationAlgorithm::m_closeSeparationSquared
private

Length scale (squared) for close hit separation.

Definition at line 205 of file TrackClusterCreationAlgorithm.h.

◆ m_instanceName

std::string pandora::Process::m_instanceName
protectedinherited

The process instance name.

Definition at line 89 of file Process.h.

◆ m_maxCaloHitSeparationSquared

float lar_content::TrackClusterCreationAlgorithm::m_maxCaloHitSeparationSquared
private

Square of maximum calo hit separation.

Definition at line 203 of file TrackClusterCreationAlgorithm.h.

◆ m_maxGapLayers

unsigned int lar_content::TrackClusterCreationAlgorithm::m_maxGapLayers
private

Maximum number of layers for a gap.

Definition at line 202 of file TrackClusterCreationAlgorithm.h.

◆ m_mergeBackFilteredHits

bool lar_content::TrackClusterCreationAlgorithm::m_mergeBackFilteredHits
private

Merge rejected hits into their associated clusters.

Definition at line 201 of file TrackClusterCreationAlgorithm.h.

◆ m_minCaloHitSeparationSquared

float lar_content::TrackClusterCreationAlgorithm::m_minCaloHitSeparationSquared
private

Square of minimum calo hit separation.

Definition at line 204 of file TrackClusterCreationAlgorithm.h.

◆ m_pPandora

const Pandora* pandora::Process::m_pPandora
protectedinherited

The pandora object that will run the process.

Definition at line 87 of file Process.h.

◆ m_type

std::string pandora::Process::m_type
protectedinherited

The process type.

Definition at line 88 of file Process.h.


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