25 m_postBranchAddition(false),
26 m_slidingFitWindow(5),
27 m_slidingShowerFitWindow(10),
28 m_maxShowerLengthCut(80.f),
29 m_dTdLWidthRatioCut(0.045f),
30 m_vertexDistanceRatioCut(0.6f),
31 m_showerWidthRatioCut(0.2f)
39 float straightLineLength(-1.f);
40 float dTdLMin(+std::numeric_limits<float>::max()), dTdLMax(-std::numeric_limits<float>::max());
49 dTdLMin = std::min(dTdLMin,
static_cast<float>(mapEntry.second.GetGradient()));
50 dTdLMax = std::max(dTdLMax,
static_cast<float>(mapEntry.second.GetGradient()));
57 if (straightLineLength < std::numeric_limits<float>::epsilon())
68 if ((vertexDistance > std::numeric_limits<float>::epsilon()) && ((vertexDistance / straightLineLength) >
m_vertexDistanceRatioCut))
73 if ((showerFitWidth < std::numeric_limits<float>::epsilon()) || ((showerFitWidth / straightLineLength) >
m_showerWidthRatioCut))
Header file for the cut based cluster characterisation algorithm class.
Header file for the cut based pfo characterisation algorithm class.
Header file for the geometry helper class.
Header file for the pfo helper class.
Header file for the lar two dimensional sliding fit result class.
#define PANDORA_RETURN_RESULT_IF_AND_IF(StatusCode1, StatusCode2, Operator, Command)
static float GetShowerFitWidth(const pandora::Algorithm *const pAlgorithm, const pandora::Cluster *const pCluster, const unsigned int showerFitWindow)
Get a measure of the width of a cluster, using a sliding shower fit result.
static float GetVertexDistance(const pandora::Algorithm *const pAlgorithm, const pandora::Cluster *const pCluster)
Get the distance between the interaction vertex (if present in the current vertex list) and a provide...
float m_showerWidthRatioCut
The maximum ratio of shower fit width to straight line length to qualify as a track.
float m_maxShowerLengthCut
The maximum cluster length to qualify as a shower.
CutPfoCharacterisationAlgorithm()
Default constructor.
unsigned int m_slidingFitWindow
The layer window for the sliding linear fits.
float m_dTdLWidthRatioCut
The maximum ratio of transverse fit gradient width to straight line length to qualify as a track.
bool m_postBranchAddition
Whether to use configuration for shower clusters post branch addition.
float m_vertexDistanceRatioCut
The maximum ratio of vertex separation to straight line length to qualify as a track.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
unsigned int m_slidingShowerFitWindow
The layer window for the sliding shower fits.
bool IsClearTrack(const pandora::Cluster *const pCluster) const
Whether cluster is identified as a clear track.
static float GetWireZPitch(const pandora::Pandora &pandora, const float maxWirePitchDiscrepancy=0.01)
Return the wire pitch.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
Read the algorithm settings.
TwoDSlidingFitResult class.
pandora::CartesianVector GetGlobalMinLayerPosition() const
Get global position corresponding to the fit result in minimum fit layer.
const LayerFitResultMap & GetLayerFitResultMap() const
Get the layer fit result map.
pandora::CartesianVector GetGlobalMaxLayerPosition() const
Get global position corresponding to the fit result in maximum fit layer.
ParticleFlowObject class.
const Pandora & GetPandora() const
Get the associated pandora instance.
StatusCodeException class.
static StatusCode ReadValue(const TiXmlHandle &xmlHandle, const std::string &xmlElementName, T &t)
Read a value from an xml element.
StatusCode
The StatusCode enum.