Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
LArThreeDSlidingFitResult.h
Go to the documentation of this file.
1
8#ifndef LAR_THREE_D_SLIDING_FIT_RESULT_H
9#define LAR_THREE_D_SLIDING_FIT_RESULT_H 1
10
11#include "Api/PandoraApi.h"
12
14
15#include <unordered_map>
16
17namespace lar_content
18{
19
24{
25public:
33 template <typename T>
34 ThreeDSlidingFitResult(const T *const pT, const unsigned int slidingFitWindow, const float slidingFitLayerPitch);
35
41 const pandora::Cluster *GetCluster() const;
42
49
56
63
70
77
84
91
98
104 int GetMinLayer() const;
105
111 int GetMaxLayer() const;
112
118 float GetMinLayerRms() const;
119
125 float GetMaxLayerRms() const;
126
134 float GetFitRms(const float rL) const;
135
143 float GetLongitudinalDisplacement(const pandora::CartesianVector &position) const;
144
154
164
165private:
174 void GetGlobalPosition(const float rL, const float rT1, const float rT2, pandora::CartesianVector &position) const;
175
183 void GetGlobalDirection(const float dTdL1, const float dTdL2, pandora::CartesianVector &direction) const;
184
193 static pandora::TrackState GetPrimaryAxis(const pandora::Cluster *const pCluster, const float slidingFitLayerPitch);
194
203 static pandora::TrackState GetPrimaryAxis(const pandora::CartesianPointVector *const pPointVector, const float slidingFitLayerPitch);
204
213
221 const int m_minLayer;
222 const int m_maxLayer;
223
228};
229
230typedef std::vector<ThreeDSlidingFitResult> ThreeDSlidingFitResultList;
231typedef std::unordered_map<const pandora::Cluster *, ThreeDSlidingFitResult> ThreeDSlidingFitResultMap;
232
233//------------------------------------------------------------------------------------------------------------------------------------------
234//------------------------------------------------------------------------------------------------------------------------------------------
235
240
241//------------------------------------------------------------------------------------------------------------------------------------------
242
247
248//------------------------------------------------------------------------------------------------------------------------------------------
249
254
255//------------------------------------------------------------------------------------------------------------------------------------------
256
261
262//------------------------------------------------------------------------------------------------------------------------------------------
263
268
269//------------------------------------------------------------------------------------------------------------------------------------------
270
275
276//------------------------------------------------------------------------------------------------------------------------------------------
277
282
283//------------------------------------------------------------------------------------------------------------------------------------------
284
289
290} // namespace lar_content
291
292#endif // #ifndef LAR_THREE_D_SLIDING_FIT_RESULT_H
Header file for the lar two dimensional sliding fit result class.
Header file for the pandora api class.
const TwoDSlidingFitResult m_firstFitResult
The first sliding fit result.
pandora::StatusCode GetGlobalFitPosition(const float rL, pandora::CartesianVector &position) const
Get global fit position for a given longitudinal coordinate.
const pandora::CartesianVector & GetAxisDirection() const
Get the axis direction vector.
const TwoDSlidingFitResult & GetSecondFitResult() const
Get the second sliding fit result for this cluster.
float GetMinLayerRms() const
Get rms at minimum layer.
const TwoDSlidingFitResult m_secondFitResult
The second sliding fit result.
int GetMinLayer() const
Get the minimum occupied layer in the sliding fit.
pandora::CartesianVector m_minLayerDirection
The global direction at the minimum combined layer.
const int m_minLayer
The minimum combined layer.
const pandora::CartesianVector & GetGlobalMaxLayerDirection() const
Get global direction corresponding to the fit result in maximum fit layer.
pandora::CartesianVector m_maxLayerDirection
The global direction at the maximum combined layer.
const pandora::CartesianVector m_axisIntercept
The axis intercept position.
float GetFitRms(const float rL) const
Get fit rms for a given longitudinal coordinate.
const pandora::TrackState m_primaryAxis
The primary axis position and direction.
const pandora::CartesianVector & GetGlobalMinLayerDirection() const
Get global direction corresponding to the fit result in minimum fit layer.
int GetMaxLayer() const
Get the maximum occupied layer in the sliding fit.
float GetLongitudinalDisplacement(const pandora::CartesianVector &position) const
Get longitudinal projection onto primary axis.
const pandora::Cluster * GetCluster() const
Get the address of the cluster.
const pandora::CartesianVector & GetGlobalMaxLayerPosition() const
Get global position corresponding to the fit result in maximum fit layer.
const int m_maxLayer
The maximum combined layer.
const pandora::CartesianVector m_secondOrthoDirection
The orthogonal direction vector.
pandora::CartesianVector m_minLayerPosition
The global position at the minimum combined layer.
pandora::StatusCode GetGlobalFitDirection(const float rL, pandora::CartesianVector &direction) const
Get global fit direction for a given longitudinal coordinate.
const pandora::CartesianVector & GetGlobalMinLayerPosition() const
Get global position corresponding to the fit result in minimum fit layer.
const pandora::CartesianVector m_axisDirection
The axis direction vector.
float GetMaxLayerRms() const
Get rms at maximum layer.
static pandora::TrackState GetPrimaryAxis(const pandora::Cluster *const pCluster, const float slidingFitLayerPitch)
Calculate the position and direction of the primary axis.
const TwoDSlidingFitResult & GetFirstFitResult() const
Get the first sliding fit result for this cluster.
void GetGlobalDirection(const float dTdL1, const float dTdL2, pandora::CartesianVector &direction) const
Get global direction coordinates for a given pair of sliding linear fit gradients.
pandora::CartesianVector m_maxLayerPosition
The global position at the maximum combined layer.
const pandora::CartesianVector m_firstOrthoDirection
The orthogonal direction vector.
static pandora::CartesianVector GetSeedDirection(const pandora::CartesianVector &axisDirection)
Generate a seed vector to be used in calculating the orthogonal axes.
void GetGlobalPosition(const float rL, const float rT1, const float rT2, pandora::CartesianVector &position) const
Get global coordinates for a given pair of sliding linear fit coordinates.
const pandora::CartesianVector & GetAxisIntercept() const
Get the axis intercept position.
CartesianVector class.
Cluster class.
Definition Cluster.h:31
TrackState class.
Definition TrackState.h:22
std::vector< ThreeDSlidingFitResult > ThreeDSlidingFitResultList
std::unordered_map< const pandora::Cluster *, ThreeDSlidingFitResult > ThreeDSlidingFitResultMap
std::vector< CartesianVector > CartesianPointVector
StatusCode
The StatusCode enum.