8 #ifndef LAR_TRACK_SHOWER_ID_FEATURE_TOOLS_H
9 #define LAR_TRACK_SHOWER_ID_FEATURE_TOOLS_H 1
13 #include "Pandora/PandoraInternal.h"
36 const pandora::Algorithm *
const pAlgorithm,
const pandora::Cluster *
const pCluster);
39 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
49 float CalculateShowerFitWidth(
const pandora::Algorithm *
const pAlgorithm,
const pandora::Cluster *
const pCluster)
const;
70 const pandora::Algorithm *
const pAlgorithm,
const pandora::Cluster *
const pCluster);
73 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
87 float &diffWithStraightLineSigma,
float &dTdLWidth,
float &maxFitGapLength,
float &rmsSlidingLinearFit)
const;
108 const pandora::Algorithm *
const pAlgorithm,
const pandora::Cluster *
const pCluster);
111 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
120 float CalculateVertexDistance(
const pandora::Algorithm *
const pAlgorithm,
const pandora::Cluster *
const pCluster)
const;
140 const pandora::Algorithm *
const pAlgorithm,
const pandora::ParticleFlowObject *
const pInputPfo);
143 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
161 const pandora::Algorithm *
const pAlgorithm,
const pandora::ParticleFlowObject *
const pInputPfo);
164 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
178 float &diffWithStraigthLineMean,
float &maxFitGapLength,
float &rmsSlidingLinearFit)
const;
199 const pandora::Algorithm *
const pAlgorithm,
const pandora::ParticleFlowObject *
const pInputPfo);
202 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
220 const pandora::Algorithm *
const pAlgorithm,
const pandora::ParticleFlowObject *
const pInputPfo);
223 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
251 const pandora::CartesianVector &pfoDir,
float &chargeCore,
float &chargeHalo,
float &chargeCon);
262 float CalculateConicalness(
const pandora::CaloHitList &caloHitList,
const pandora::CartesianVector &pfoStart,
263 const pandora::CartesianVector &pfoDir,
const float pfoLength);
281 const pandora::Algorithm *
const pAlgorithm,
const pandora::ParticleFlowObject *
const pInputPfo);
284 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
293 void Divide3DCaloHitList(
const pandora::Algorithm *
const pAlgorithm,
const pandora::CaloHitList &threeDCaloHitList,
294 pandora::CartesianPointVector &pointVectorStart, pandora::CartesianPointVector &pointVectorEnd);
305 float OpeningAngle(
const pandora::CartesianVector &principal,
const pandora::CartesianVector &secondary,
306 const pandora::CartesianVector &eigenValues)
const;
327 const pandora::Algorithm *
const pAlgorithm,
const pandora::ParticleFlowObject *
const pInputPfo);
330 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
364 bool operator()(
const pandora::CaloHit *
const left,
const pandora::CaloHit *
const right)
const;
371 const pandora::Algorithm *
const pAlgorithm,
const pandora::ParticleFlowObject *
const pInputPfo);
385 void CalculateChargeVariables(
const pandora::Algorithm *
const pAlgorithm,
const pandora::Cluster *
const pCluster,
float &totalCharge,
386 float &chargeSigma,
float &chargeMean,
float &endCharge);
397 const pandora::Algorithm *
const pAlgorithm,
const pandora::Cluster *
const pCluster, pandora::CaloHitList &caloHitList);
399 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
406 #endif // #ifndef LAR_TRACK_SHOWER_ID_FEATURE_TOOLS_H
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
float CalculateVertexDistance(const pandora::Algorithm *const pAlgorithm, const pandora::Cluster *const pCluster) const
Calculation of vertex distance.
void OrderCaloHitsByDistanceToVertex(const pandora::Algorithm *const pAlgorithm, const pandora::Cluster *const pCluster, pandora::CaloHitList &caloHitList)
Function to order the calo hit list by distance to neutrino vertex.
ConeChargeFeatureTool class for the calculation of charge distribution and conicalness.
ThreeDLinearFitFeatureTool class for the calculation of variables related to 3d sliding linear fit...
void Run(LArMvaHelper::MvaFeatureVector &featureVector, const pandora::Algorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pInputPfo)
MvaTypes::MvaFeatureVector MvaFeatureVector
float m_hitFraction
Fraction of hits in start and end of pfo.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
void Run(LArMvaHelper::MvaFeatureVector &featureVector, const pandora::Algorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pInputPfo)
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
MvaFeatureTool< const pandora::Algorithm *const, const pandora::ParticleFlowObject *const > PfoCharacterisationFeatureTool
ThreeDVertexDistanceFeatureTool class for the calculation of 3d distance to neutrino vertex...
PfoHierarchyFeatureTool for calculation of features relating to reconstructed particle hierarchy...
unsigned int m_slidingShowerFitWindow
The sliding shower fit window.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
ThreeDOpeningAngleFeatureTool()
Default constructor.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
TwoDLinearFitFeatureTool()
Default constructor.
ThreeDLinearFitFeatureTool()
Default constructor.
MvaTypes::MvaFeatureMap MvaFeatureMap
unsigned int m_conMinHits
Configurable parameters to calculate cone charge variables.
void CalculateVariablesSlidingLinearFit(const pandora::Cluster *const pCluster, float &straightLineLengthLarge, float &diffWithStraigthLineMean, float &maxFitGapLength, float &rmsSlidingLinearFit) const
Calculation of several variables related to sliding linear fit.
void Run(LArMvaHelper::MvaFeatureVector &featureVector, const pandora::Algorithm *const pAlgorithm, const pandora::Cluster *const pCluster)
void Run(LArMvaHelper::MvaFeatureVector &featureVector, const pandora::Algorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pInputPfo)
unsigned int m_slidingLinearFitWindow
The sliding linear fit window.
MvaFeatureTool< const pandora::Algorithm *const, const pandora::Cluster *const > ClusterCharacterisationFeatureTool
ThreeDPCAFeatureTool()
Default constructor.
void Run(LArMvaHelper::MvaFeatureVector &featureVector, const pandora::Algorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pInputPfo)
unsigned int m_slidingLinearFitWindow
The sliding linear fit window.
bool operator()(const pandora::CaloHit *const left, const pandora::CaloHit *const right) const
operator <
TwoDVertexDistanceFeatureTool class for the calculation of 2d distance to neutrino vertex...
float CalculateShowerFitWidth(const pandora::Algorithm *const pAlgorithm, const pandora::Cluster *const pCluster) const
Calculation of the shower fit width variable.
unsigned int m_slidingLinearFitWindowLarge
The sliding linear fit window - should be large, providing a simple linear fit.
float OpeningAngle(const pandora::CartesianVector &principal, const pandora::CartesianVector &secondary, const pandora::CartesianVector &eigenValues) const
Use the results of principal component analysis to calculate an opening angle.
void Run(LArMvaHelper::MvaFeatureVector &featureVector, const pandora::Algorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pInputPfo)
TwoDVertexDistanceFeatureTool()
Default constructor.
void Run(LArMvaHelper::MvaFeatureVector &featureVector, const pandora::Algorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pInputPfo)
float m_MoliereRadiusFrac
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
pandora::CartesianVector m_neutrinoVertex
unsigned int m_slidingLinearFitWindow
The sliding linear fit window.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
ThreeDChargeFeatureTool class for the calculation of charge-related features.
VertexComparator class for comparison of two points wrt neutrino vertex position. ...
VertexComparator(const pandora::CartesianVector vertexPosition2D)
Constructor.
TwoDShowerFitFeatureTool()
Default constructor.
unsigned int m_slidingLinearFitWindowLarge
The sliding linear fit window - should be large, providing a simple linear fit.
float m_defaultValue
Default value to return, in case calculation not feasible.
void CalculateChargeVariables(const pandora::Algorithm *const pAlgorithm, const pandora::Cluster *const pCluster, float &totalCharge, float &chargeSigma, float &chargeMean, float &endCharge)
Calculation of the charge variables.
void Run(LArMvaHelper::MvaFeatureVector &featureVector, const pandora::Algorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pInputPfo)
ConeChargeFeatureTool()
Default constructor.
void Divide3DCaloHitList(const pandora::Algorithm *const pAlgorithm, const pandora::CaloHitList &threeDCaloHitList, pandora::CartesianPointVector &pointVectorStart, pandora::CartesianPointVector &pointVectorEnd)
Obtain positions at the vertex and non-vertex end of a list of three dimensional calo hits...
ThreeDPCAFeatureTool class for the calculation of PCA-related variables.
TwoDShowerFitFeatureTool to calculate variables related to sliding shower fit.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
ThreeDVertexDistanceFeatureTool()
Default constructor.
float m_endChargeFraction
Fraction of hits that will be considered to calculate end charge (default 10%)
TwoDLinearFitFeatureTool class for the calculation of variables related to 2d sliding linear fit...
float CalculateConicalness(const pandora::CaloHitList &caloHitList, const pandora::CartesianVector &pfoStart, const pandora::CartesianVector &pfoDir, const float pfoLength)
Calculate conicalness as a ratio of charge distribution at the end and start of pfo.
ThreeDChargeFeatureTool()
Default constructor.
MvaFeatureTool class template.
void Run(LArMvaHelper::MvaFeatureVector &featureVector, const pandora::Algorithm *const pAlgorithm, const pandora::Cluster *const pCluster)
unsigned int m_slidingLinearFitWindow
The sliding linear fit window.
void CalculateVariablesSlidingLinearFit(const pandora::Cluster *const pCluster, float &straightLineLengthLarge, float &diffWithStraigthLineMean, float &diffWithStraightLineSigma, float &dTdLWidth, float &maxFitGapLength, float &rmsSlidingLinearFit) const
Calculation of several variables related to sliding linear fit.
PfoHierarchyFeatureTool()
Default constructor.
void CalculateChargeDistribution(const pandora::CaloHitList &caloHitList, const pandora::CartesianVector &pfoStart, const pandora::CartesianVector &pfoDir, float &chargeCore, float &chargeHalo, float &chargeCon)
Calculate charge distribution in relation to the Moeliere radius.
ThreeDOpeningAngleFeatureTool class for the calculation of distance to neutrino vertex.
void Run(LArMvaHelper::MvaFeatureVector &featureVector, const pandora::Algorithm *const pAlgorithm, const pandora::Cluster *const pCluster)
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)