LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
ThreeDRemnantsAlgorithm.h
Go to the documentation of this file.
1 
8 #ifndef LAR_THREE_D_REMNANTS_ALGORITHM_H
9 #define LAR_THREE_D_REMNANTS_ALGORITHM_H 1
10 
11 #include "Pandora/Algorithm.h"
12 #include "Pandora/AlgorithmTool.h"
13 
15 
17 
18 namespace lar_content
19 {
20 
21 class RemnantTensorTool;
22 
23 //------------------------------------------------------------------------------------------------------------------------------------------
24 
29 {
30 public:
35 
36  void SelectInputClusters(const pandora::ClusterList *const pInputClusterList, pandora::ClusterList &selectedClusterList) const;
37  void SetPfoParameters(const ProtoParticle &protoParticle, PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const;
38 
39 private:
40  void CalculateOverlapResult(const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW);
41  void ExamineTensor();
42 
43  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
44 
45  typedef std::vector<RemnantTensorTool*> RemnantTensorToolVector;
46  RemnantTensorToolVector m_algorithmToolVector;
47 
48  unsigned int m_nMaxTensorToolRepeats;
49  unsigned int m_minClusterCaloHits;
52 };
53 
54 //------------------------------------------------------------------------------------------------------------------------------------------
55 
59 class RemnantTensorTool : public pandora::AlgorithmTool
60 {
61 public:
63  typedef std::vector<TensorType::ElementList::const_iterator> IteratorList;
64 
73  virtual bool Run(ThreeDRemnantsAlgorithm *const pAlgorithm, TensorType &overlapTensor) = 0;
74 };
75 
76 } // namespace lar_content
77 
78 #endif // #ifndef LAR_THREE_D_REMNANTS_ALGORITHM_H
ThreeDBaseAlgorithm class.
void SelectInputClusters(const pandora::ClusterList *const pInputClusterList, pandora::ClusterList &selectedClusterList) const
Select a subset of input clusters for processing in this algorithm.
Header file for the lar overlap tensor class.
unsigned int m_minClusterCaloHits
The selection cut on the number of cluster calo hits.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
std::vector< RemnantTensorTool * > RemnantTensorToolVector
float m_pseudoChi2Cut
The selection cut on the matched chi2.
void CalculateOverlapResult(const pandora::Cluster *const pClusterU, const pandora::Cluster *const pClusterV, const pandora::Cluster *const pClusterW)
Calculate cluster overlap result and store in tensor.
void SetPfoParameters(const ProtoParticle &protoParticle, PandoraContentApi::ParticleFlowObject::Parameters &pfoParameters) const
Calculate Pfo properties from proto particle.
Header file for the three dimension algorithm base class.
float m_xOverlapWindow
The sampling pitch in the x coordinate.
ThreeDRemnantsAlgorithm class.
RemnantTensorToolVector m_algorithmToolVector
The algorithm tool list.
ThreeDRemnantsAlgorithm::TensorType TensorType
void ExamineTensor()
Examine contents of tensor, collect together best-matching 2D particles and modify clusters as requir...
std::vector< TensorType::ElementList::const_iterator > IteratorList
unsigned int m_nMaxTensorToolRepeats
The maximum number of repeat loops over tensor tools.