Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
LArConnectionPathwayHelper.h
Go to the documentation of this file.
1
8#ifndef LAR_CONNECTION_PATHWAY_HELPER_H
9#define LAR_CONNECTION_PATHWAY_HELPER_H 1
10
12
14
15namespace lar_content
16{
17
22{
23public:
28 {
29 public:
35 SortByDistanceToPoint(const pandora::CartesianVector referencePoint) : m_referencePoint(referencePoint)
36 {
37 }
38
48 bool operator()(const pandora::CaloHit *const lhs, const pandora::CaloHit *const rhs);
49
50 private:
52 };
53
68 static bool FindShowerStarts3D(const pandora::Algorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pShowerPfo,
69 const ProtoShowerMatch &protoShowerMatch, const pandora::CartesianVector &nuVertexPosition, const float maxSeparationFromHit,
70 const float maxProjectionSeparation, const float maxXSeparation, pandora::CartesianPointVector &showerStarts3D);
71
81 static void FindShowerStartFromPosition(const pandora::Algorithm *const pAlgorithm, const ProtoShower &protoShowerU,
82 const ProtoShower &protoShowerV, const ProtoShower &protoShowerW, pandora::CartesianVector &showerStart3D);
83
97 static bool FindShowerStartFromDirection(const pandora::Algorithm *const pAlgorithm, const ProtoShower &protoShowerU,
98 const ProtoShower &protoShowerV, const ProtoShower &protoShowerW, pandora::CartesianVector &uShowerStart3D,
99 pandora::CartesianVector &vShowerStart3D, pandora::CartesianVector &wShowerStart3D);
100
112 static bool FindShowerStartFromDirection(const pandora::Algorithm *const pAlgorithm, const ProtoShower &protoShower,
113 const ProtoShower &protoShowerA, const ProtoShower &protoShowerB, pandora::CartesianVector &showerStart3D);
114
124 static bool ProjectShowerStartByDirection(const ProtoShower &protoShower, const float x, pandora::CartesianVector &showerStart2D);
125
139 static bool FindShowerStartFromXProjection(const pandora::Algorithm *const pAlgorithm, const ProtoShower &protoShower, const ProtoShower &protoShower1,
140 const ProtoShower &protoShower2, const float maxSeparation, const float maxXSeparation, pandora::CartesianVector &showerStart3D);
141
152 static bool FindClosestSpinePosition(const ProtoShower &protoShower, const pandora::CartesianVector &showerStart3D,
153 const float maxXSeparation, pandora::CartesianVector &foundShowerStart);
154
168 static bool FindShowerStartFromXProjectionRelaxed(const pandora::Algorithm *const pAlgorithm, const ProtoShower &protoShower,
169 const ProtoShower &protoShower1, const ProtoShower &protoShower2, const float maxSeparation, const float maxXSeparation,
170 pandora::CartesianVector &showerStart3D);
171
182 static void GetMinMiddleMax(const float value1, const float value2, const float value3, float &minValue, float &middleValue, float &maxValue);
183};
184
185} // namespace lar_content
186
187#endif // #ifndef LAR_CONNECTION_PATHWAY_HELPER_H
Header file for the ProtoShower class.
Header file defining relevant internal typedefs, sort and string conversion functions.
const pandora::CartesianVector m_referencePoint
The point relative to which constituent hits are ordered.
SortByDistanceToPoint(const pandora::CartesianVector referencePoint)
Constructor.
bool operator()(const pandora::CartesianVector &lhs, const pandora::CartesianVector &rhs)
Sort constituent hits by their position relative to a referencePoint.
static bool FindShowerStartFromXProjection(const pandora::Algorithm *const pAlgorithm, const ProtoShower &protoShower, const ProtoShower &protoShower1, const ProtoShower &protoShower2, const float maxSeparation, const float maxXSeparation, pandora::CartesianVector &showerStart3D)
Create a 3D shower start position from an input 2D position, assuming consistency of the drift coordi...
static bool FindShowerStartFromDirection(const pandora::Algorithm *const pAlgorithm, const ProtoShower &protoShowerU, const ProtoShower &protoShowerV, const ProtoShower &protoShowerW, pandora::CartesianVector &uShowerStart3D, pandora::CartesianVector &vShowerStart3D, pandora::CartesianVector &wShowerStart3D)
Create a 3D shower start position from each input 2D position, assuming consistency of initial direct...
static void GetMinMiddleMax(const float value1, const float value2, const float value3, float &minValue, float &middleValue, float &maxValue)
Determine the lowest, median and highest value from an input of three numbers.
static bool ProjectShowerStartByDirection(const ProtoShower &protoShower, const float x, pandora::CartesianVector &showerStart2D)
Find a 2D shower start, from a drift coordinate by assuming consistency of initial direction.
static void FindShowerStartFromPosition(const pandora::Algorithm *const pAlgorithm, const ProtoShower &protoShowerU, const ProtoShower &protoShowerV, const ProtoShower &protoShowerW, pandora::CartesianVector &showerStart3D)
Create 3D shower start position from three input 2D positions, assuming consistency of position.
static bool FindShowerStartFromXProjectionRelaxed(const pandora::Algorithm *const pAlgorithm, const ProtoShower &protoShower, const ProtoShower &protoShower1, const ProtoShower &protoShower2, const float maxSeparation, const float maxXSeparation, pandora::CartesianVector &showerStart3D)
A relaxed approach to create a 3D shower start position from an input 2D position,...
static bool FindClosestSpinePosition(const ProtoShower &protoShower, const pandora::CartesianVector &showerStart3D, const float maxXSeparation, pandora::CartesianVector &foundShowerStart)
Find the 2D spine hit that is closest to the neutrino vertex and shares a drift coordinate with an in...
static bool FindShowerStarts3D(const pandora::Algorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pShowerPfo, const ProtoShowerMatch &protoShowerMatch, const pandora::CartesianVector &nuVertexPosition, const float maxSeparationFromHit, const float maxProjectionSeparation, const float maxXSeparation, pandora::CartesianPointVector &showerStarts3D)
Create 3D shower start position(s) from three input 2D positions.
ProtoShowerMatch class.
Algorithm class. Algorithm addresses are held only by the algorithm manager. They have a fully define...
Definition Algorithm.h:21
CaloHit class.
Definition CaloHit.h:26
CartesianVector class.
ParticleFlowObject class.
std::vector< CartesianVector > CartesianPointVector