LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
lar_content::UnambiguousDeltaRayTool Class Reference

UnambiguousDeltaRayTool class. More...

#include "UnambiguousDeltaRayTool.h"

Inheritance diagram for lar_content::UnambiguousDeltaRayTool:
lar_content::DeltaRayTensorTool

Public Types

typedef ThreeViewDeltaRayMatchingAlgorithm::MatchingType::TensorType TensorType
 
typedef std::vector< TensorType::ElementList::const_iteratorIteratorList
 

Public Member Functions

 UnambiguousDeltaRayTool ()
 Default constructor. More...
 

Public Attributes

ThreeViewDeltaRayMatchingAlgorithmm_pParentAlgorithm
 Address of the parent matching algorithm. More...
 

Private Member Functions

bool Run (ThreeViewDeltaRayMatchingAlgorithm *const pAlgorithm, TensorType &overlapTensor)
 Run the algorithm tool. More...
 
pandora::StatusCode ReadSettings (const pandora::TiXmlHandle xmlHandle)
 
bool ExamineUnambiguousElements (TensorType::ElementList &elementList)
 Create delta ray pfos out of unambiguous (1:1:1) matches that are connected to a parent cosmic ray. More...
 
bool IsConnected (const TensorType::Element &element) const
 Determine whether the clusters of an element are connected to a cosmic ray pfo. More...
 

Private Attributes

float m_maxSeparation
 The maximum separation between a connected delta ray cluster and a cosmic ray cluster. More...
 
unsigned int m_minNConnectedClusters
 The threshold number of connected delta ray clusters required for particle creation. More...
 

Detailed Description

UnambiguousDeltaRayTool class.

Definition at line 18 of file UnambiguousDeltaRayTool.h.

Member Typedef Documentation

Constructor & Destructor Documentation

lar_content::UnambiguousDeltaRayTool::UnambiguousDeltaRayTool ( )

Default constructor.

Definition at line 21 of file UnambiguousDeltaRayTool.cc.

21  :
22  m_maxSeparation(2.f),
24 {
25 }
unsigned int m_minNConnectedClusters
The threshold number of connected delta ray clusters required for particle creation.
TFile f
Definition: plotHisto.C:6
float m_maxSeparation
The maximum separation between a connected delta ray cluster and a cosmic ray cluster.

Member Function Documentation

bool lar_content::UnambiguousDeltaRayTool::ExamineUnambiguousElements ( TensorType::ElementList elementList)
private

Create delta ray pfos out of unambiguous (1:1:1) matches that are connected to a parent cosmic ray.

Parameters
elementListthe tensor element list
Returns
whether any delta ray pfos were created

Definition at line 44 of file UnambiguousDeltaRayTool.cc.

References lar_content::NViewDeltaRayMatchingAlgorithm< T >::CreatePfos(), IsConnected(), lar_content::ProtoParticle::m_clusterList, and lar_content::DeltaRayTensorTool::m_pParentAlgorithm.

Referenced by Run().

45 {
46  ProtoParticleVector protoParticleVector;
47 
48  for (TensorType::Element &element : elementList)
49  {
50  if (!this->IsConnected(element))
51  continue;
52 
53  ProtoParticle protoParticle;
54  protoParticle.m_clusterList.push_back(element.GetClusterU());
55  protoParticle.m_clusterList.push_back(element.GetClusterV());
56  protoParticle.m_clusterList.push_back(element.GetClusterW());
57  protoParticleVector.push_back(protoParticle);
58  }
59 
60  return m_pParentAlgorithm->CreatePfos(protoParticleVector);
61 }
std::vector< ProtoParticle > ProtoParticleVector
bool IsConnected(const TensorType::Element &element) const
Determine whether the clusters of an element are connected to a cosmic ray pfo.
ThreeViewDeltaRayMatchingAlgorithm * m_pParentAlgorithm
Address of the parent matching algorithm.
bool CreatePfos(ProtoParticleVector &protoParticleVector)
Create delta ray pfos maxmising completeness by searching for and merging in any stray clusters...
bool lar_content::UnambiguousDeltaRayTool::IsConnected ( const TensorType::Element &  element) const
private

Determine whether the clusters of an element are connected to a cosmic ray pfo.

Parameters
elementListthe tensor element
Returns
whether the clusters are connected to a cosmic ray pfo

Definition at line 65 of file UnambiguousDeltaRayTool.cc.

References lar_content::LArClusterHelper::GetClosestDistance(), lar_content::LArPfoHelper::GetClusters(), m_maxSeparation, and m_minNConnectedClusters.

Referenced by ExamineUnambiguousElements().

66 {
67  PfoList commonMuonPfoList(element.GetOverlapResult().GetCommonMuonPfoList());
68 
69  for (const ParticleFlowObject *const pMuonPfo : commonMuonPfoList)
70  {
71  unsigned int connectedClusterCount(0);
72 
73  for (const HitType hitType : {TPC_VIEW_U, TPC_VIEW_V, TPC_VIEW_W})
74  {
75  ClusterList muonClusterList;
76  LArPfoHelper::GetClusters(pMuonPfo, hitType, muonClusterList);
77 
78  const float separation(LArClusterHelper::GetClosestDistance(element.GetCluster(hitType), muonClusterList));
79 
80  if (separation < m_maxSeparation)
81  ++connectedClusterCount;
82  }
83 
84  if (connectedClusterCount > m_minNConnectedClusters)
85  return true;
86  }
87 
88  return false;
89 }
unsigned int m_minNConnectedClusters
The threshold number of connected delta ray clusters required for particle creation.
static void GetClusters(const pandora::PfoList &pfoList, const pandora::HitType &hitType, pandora::ClusterList &clusterList)
Get a list of clusters of a particular hit type from a list of pfos.
HitType
Definition: HitType.h:12
float m_maxSeparation
The maximum separation between a connected delta ray cluster and a cosmic ray cluster.
static float GetClosestDistance(const pandora::ClusterList &clusterList1, const pandora::ClusterList &clusterList2)
Get closest distance between clusters in a pair of cluster lists.
StatusCode lar_content::UnambiguousDeltaRayTool::ReadSettings ( const pandora::TiXmlHandle  xmlHandle)
private

Definition at line 93 of file UnambiguousDeltaRayTool.cc.

References m_maxSeparation, and m_minNConnectedClusters.

94 {
95  PANDORA_RETURN_RESULT_IF_AND_IF(STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "MinSeparation", m_maxSeparation));
96 
97  PANDORA_RETURN_RESULT_IF_AND_IF(
98  STATUS_CODE_SUCCESS, STATUS_CODE_NOT_FOUND, !=, XmlHelper::ReadValue(xmlHandle, "MinNConnectedClusters", m_minNConnectedClusters));
99 
100  return STATUS_CODE_SUCCESS;
101 }
unsigned int m_minNConnectedClusters
The threshold number of connected delta ray clusters required for particle creation.
float m_maxSeparation
The maximum separation between a connected delta ray cluster and a cosmic ray cluster.
bool lar_content::UnambiguousDeltaRayTool::Run ( ThreeViewDeltaRayMatchingAlgorithm *const  pAlgorithm,
TensorType overlapTensor 
)
privatevirtual

Run the algorithm tool.

Parameters
pAlgorithmaddress of the calling algorithm
overlapTensorthe overlap tensor
Returns
whether changes have been made by the tool

Implements lar_content::DeltaRayTensorTool.

Definition at line 29 of file UnambiguousDeltaRayTool.cc.

References ExamineUnambiguousElements(), lar_content::OverlapTensor< T >::GetUnambiguousElements(), and lar_content::DeltaRayTensorTool::m_pParentAlgorithm.

30 {
31  m_pParentAlgorithm = pAlgorithm;
32 
33  if (PandoraContentApi::GetSettings(*m_pParentAlgorithm)->ShouldDisplayAlgorithmInfo())
34  std::cout << "----> Running Algorithm Tool: " << this->GetInstanceName() << ", " << this->GetType() << std::endl;
35 
36  TensorType::ElementList elementList;
37  overlapTensor.GetUnambiguousElements(true, elementList);
38 
39  return this->ExamineUnambiguousElements(elementList);
40 }
bool ExamineUnambiguousElements(TensorType::ElementList &elementList)
Create delta ray pfos out of unambiguous (1:1:1) matches that are connected to a parent cosmic ray...
ThreeViewDeltaRayMatchingAlgorithm * m_pParentAlgorithm
Address of the parent matching algorithm.

Member Data Documentation

float lar_content::UnambiguousDeltaRayTool::m_maxSeparation
private

The maximum separation between a connected delta ray cluster and a cosmic ray cluster.

Definition at line 48 of file UnambiguousDeltaRayTool.h.

Referenced by IsConnected(), and ReadSettings().

unsigned int lar_content::UnambiguousDeltaRayTool::m_minNConnectedClusters
private

The threshold number of connected delta ray clusters required for particle creation.

Definition at line 49 of file UnambiguousDeltaRayTool.h.

Referenced by IsConnected(), and ReadSettings().


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