LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
ProtoShowerMatchingTool.h
Go to the documentation of this file.
1 
8 #ifndef LAR_PROTO_SHOWER_MATCHING_TOOL_H
9 #define LAR_PROTO_SHOWER_MATCHING_TOOL_H 1
10 
11 #include "Pandora/AlgorithmHeaders.h"
12 #include "Pandora/AlgorithmTool.h"
13 
15 
16 namespace lar_content
17 {
18 
19 class ProtoShowerMatchingTool : public pandora::AlgorithmTool
20 {
21 public:
26 
27  pandora::StatusCode Run(const ProtoShowerVector &protoShowerVectorU, const ProtoShowerVector &protoShowerVectorV,
28  const ProtoShowerVector &protoShowerVectorW, ProtoShowerMatchVector &protoShowerMatchVector);
29 
30 private:
31  pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle);
32 
44  const ProtoShower &protoShowerU, const ProtoShower &protoShowerV, const ProtoShower &protoShowerW, Consistency &consistency) const;
45 
55  bool AreShowerStartsConsistent(const ProtoShower &protoShowerU, const ProtoShower &protoShowerV, const ProtoShower &protoShowerW) const;
56 
66  bool AreDirectionsConsistent(const ProtoShower &protoShowerU, const ProtoShower &protoShowerV, const ProtoShower &protoShowerW) const;
67 
77  bool AreDirectionsConsistent(pandora::CartesianVector directionU, pandora::CartesianVector directionV, pandora::CartesianVector directionW) const;
78 
79  unsigned int m_spineSlidingFitWindow;
83 };
84 
85 //------------------------------------------------------------------------------------------------------------------------------------------
86 } // namespace lar_content
87 
88 #endif // #ifndef LAR_PROTO_SHOWER_MATCHING_TOOL_H
Header file for the ProtoShower class.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Consistency
Consistency enumeration.
pandora::StatusCode Run(const ProtoShowerVector &protoShowerVectorU, const ProtoShowerVector &protoShowerVectorV, const ProtoShowerVector &protoShowerVectorW, ProtoShowerMatchVector &protoShowerMatchVector)
bool AreDirectionsConsistent(const ProtoShower &protoShowerU, const ProtoShower &protoShowerV, const ProtoShower &protoShowerW) const
Determine whether three 2D initial spine directions correspond to the same 3D initial spine direction...
float m_maxXSeparation
The max. drift-coordinate separation between matched 2D shower start positions.
unsigned int m_spineSlidingFitWindow
The shower spine sliding fit window.
bool AreShowerStartsConsistent(const ProtoShower &protoShowerU, const ProtoShower &protoShowerV, const ProtoShower &protoShowerW) const
Determine whether three 2D shower start positions correspond to the same 3D shower start position...
float m_maxAngularDeviation
The max. opening angle between true and projected 2D initial directions for a match.
ProtoShower class.
float m_maxSeparation
The max. average separation between true and projected 2D shower start positions for a match...
std::vector< ProtoShowerMatch > ProtoShowerMatchVector
std::vector< ProtoShower > ProtoShowerVector
bool ArePathwaysConsistent(const ProtoShower &protoShowerU, const ProtoShower &protoShowerV, const ProtoShower &protoShowerW, Consistency &consistency) const
Determine whether three 2D connection pathways form a consistent 3D connection pathway.