8 #ifndef LAR_CONNECTION_PATHWAY_FEATURE_TOOLS_H 9 #define LAR_CONNECTION_PATHWAY_FEATURE_TOOLS_H 1 11 #include "Pandora/PandoraInternal.h" 38 const pandora::ParticleFlowObject *
const pShowerPfo,
const pandora::CartesianVector &nuVertex3D,
39 const ProtoShowerMatch &protoShowerMatch,
const pandora::CartesianPointVector &showerStarts3D);
42 const pandora::Algorithm *
const pAlgorithm,
const pandora::ParticleFlowObject *
const pShowerPfo,
const pandora::CartesianVector &nuVertex3D,
43 const ProtoShowerMatch &protoShowerMatch,
const pandora::CartesianPointVector &showerStarts3D);
46 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
81 const pandora::ParticleFlowObject *
const pShowerPfo,
const pandora::CartesianVector &nuVertex3D,
82 const ProtoShowerMatch &protoShowerMatch,
const pandora::CartesianPointVector &showerStarts3D);
85 const pandora::Algorithm *
const pAlgorithm,
const pandora::ParticleFlowObject *
const pShowerPfo,
const pandora::CartesianVector &nuVertex3D,
86 const ProtoShowerMatch &protoShowerMatch,
const pandora::CartesianPointVector &showerStarts3D);
89 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
100 float Get2DKink(
const pandora::Algorithm *
const pAlgorithm,
const ProtoShowerMatch &protoShowerMatch,
101 const pandora::CartesianVector &showerStart3D)
const;
113 float GetLargest2DKinkFromView(
const pandora::Algorithm *
const pAlgorithm,
const TwoDSlidingFitResult &spineFit,
114 const pandora::HitType hitType,
const pandora::CartesianVector &showerStart3D)
const;
137 const pandora::ParticleFlowObject *
const pShowerPfo,
const pandora::CartesianVector &nuVertex3D,
138 const ProtoShowerMatch &protoShowerMatch,
const pandora::CartesianPointVector &showerStarts3D);
141 const pandora::Algorithm *
const pAlgorithm,
const pandora::ParticleFlowObject *
const pShowerPfo,
const pandora::CartesianVector &nuVertex3D,
142 const ProtoShowerMatch &protoShowerMatch,
const pandora::CartesianPointVector &showerStarts3D);
145 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
165 void GetViewShowerRegionVariables(
const pandora::Algorithm *
const pAlgorithm,
const pandora::ParticleFlowObject *
const pShowerPfo,
167 const pandora::CartesianVector &showerStart3D,
float &nHits,
float &foundHitRatio,
float &scatterAngle,
float &openingAngle,
168 float &nuVertexEnergyAsymmetry,
float &nuVertexEnergyWeightedMeanRadialDistance,
float &showerStartEnergyAsymmetry,
169 float &showerStartMoliereRadius);
182 void BuildViewShower(
const pandora::ParticleFlowObject *
const pShowerPfo,
const TwoDSlidingFitResult &spineFit,
183 const pandora::HitType hitType,
const pandora::CartesianVector &showerStart2D,
const pandora::CartesianVector &nuVertex2D,
184 pandora::CaloHitList &postShowerHitList, pandora::CartesianPointVector &postShowerPositions);
196 void GetShowerHitVariables(
const pandora::CaloHitList &spineHitList,
const pandora::CaloHitList &postShowerHitList,
197 const pandora::ParticleFlowObject *
const pShowerPfo,
const pandora::HitType hitType,
float &nHits,
float &foundHitRatio);
208 void CalculateViewScatterAngle(
const pandora::CartesianVector &nuVertex2D,
const TwoDSlidingFitResult &spineFitResult,
209 const pandora::CartesianVector &showerStart2D,
const TwoDSlidingFitResult &showerFitResult,
float &scatterAngle);
219 void CalculateViewOpeningAngle(
const TwoDSlidingFitResult &showerFitResult,
const pandora::CaloHitList &postShowerHitList,
220 const pandora::CartesianVector &showerStart2D,
float &openingAngle);
233 const pandora::CaloHitList &postShowerHitList,
const bool isDownstream,
const pandora::CartesianVector &nuVertex2D,
234 float &nuVertexEnergyAsymmetry,
float &nuVertexEnergyWeightedMeanRadialDistance);
245 void CalculateViewShowerStartConsistencyVariables(
const TwoDSlidingFitResult &showerFitResult,
const pandora::CaloHitList &postShowerHitList,
246 const bool isShowerDownstream,
float &showerStartEnergyAsymmetry,
float &showerStartMoliereRadius);
277 const pandora::ParticleFlowObject *
const pShowerPfo,
const pandora::CartesianVector &nuVertex3D,
278 const ProtoShowerMatch &protoShowerMatch,
const pandora::CartesianPointVector &showerStarts3D);
281 const pandora::Algorithm *
const pAlgorithm,
const pandora::ParticleFlowObject *
const pShowerPfo,
const pandora::CartesianVector &nuVertex3D,
282 const ProtoShowerMatch &protoShowerMatch,
const pandora::CartesianPointVector &showerStarts3D);
285 pandora::StatusCode
ReadSettings(
const pandora::TiXmlHandle xmlHandle);
293 void CalculateNAmbiguousViews(
const ProtoShowerMatch &protoShowerMatch,
float &nAmbiguousViews);
306 bool GetViewAmbiguousHitVariables(
const pandora::Algorithm *
const pAlgorithm,
const ProtoShowerMatch &protoShowerMatch,
307 const pandora::HitType hitType,
const pandora::CartesianVector &nuVertex3D,
float &unaccountedHitEnergy);
319 void BuildAmbiguousSpines(
const pandora::Algorithm *
const pAlgorithm,
const pandora::HitType hitType,
const ProtoShower &protoShower,
320 const pandora::CartesianVector &nuVertex2D, std::map<int, pandora::CaloHitList> &ambiguousHitSpines,
321 pandora::CaloHitList &hitsToExcludeInEnergyCalcs);
332 pandora::StatusCode GetHitListOfType(
333 const pandora::Algorithm *
const pAlgorithm,
const pandora::HitType hitType,
const pandora::CaloHitList *&pCaloHitList)
const;
344 pandora::CaloHitList FindAmbiguousContinuousSpine(
345 const pandora::CaloHitList &caloHitList,
const pandora::CaloHitList &ambiguousHitList,
const pandora::CartesianVector &nuVertex2D);
359 #endif // #ifndef LAR_CONNECTION_PATHWAY_FEATURE_TOOLS_H float m_maxTransverseDistance
The max. proximity of a hits, included in a trajectory energy calcs.
float m_edgeStep
The binning of the shower boundaries.
std::string m_caloHitListNameW
The event W view hit list.
float m_maxFoundHitRatioLimit
maxFoundHitRatio max. limit
Header file for the ProtoShower class.
float m_maxInitialGapSizeLimit
maxInitialGapSizeLimit max. limit
MvaTypes::MvaFeatureVector MvaFeatureVector
ConnectionRegionFeatureTool to calculate variables related to the connection pathway region...
AmbiguousRegionFeatureTool to calculate variables related to the shower region.
float m_maxNuVertexEnergyWeightedMeanRadialDistanceLimit
maxNuVertexEnergyWeightedMeanRadialDistance max. limit
InitialRegionFeatureTool()
Default constructor.
float m_maxOpeningAngleLimit
maxOpeningAngle max. limit
unsigned int m_spineFitWindow
The spine fit window.
float m_maxScatterAngleLimit
maxScatterAngle max. limit
unsigned int m_showerFitWindow
The shower fit window.
MvaTypes::MvaFeatureMap MvaFeatureMap
unsigned int m_spineFitWindow
The spine fit window.
float m_maxNHitsLimit
maxNHits max. limit
std::string m_caloHitListNameU
The event U view hit list.
float m_defaultRatio
Default float value for ratios.
float m_minLargestGapSizeLimit
minLargestGapSizeLimit max. limit
float m_showerRadius
The max. separation distance between a shower region hit and the shower core.
InitialRegionFeatureTool to calculate variables related to the initial shower region.
unsigned int m_nHitsToConsider
The number of hits which defines the initial region.
float m_pathwayScatteringAngle2DLimit
pathwayScatteringAngle2DLimit max. limit
void GetViewInitialRegionVariables(const pandora::Algorithm *const pAlgorithm, const pandora::CartesianVector &nuVertex3D, const ProtoShowerMatch &protoShowerMatch, const pandora::HitType hitType, float &initialGapSize, float &largestGapSize) const
Calculate the initial region variables for the input view.
float m_moliereFraction
The energy fraction which corresponds to minShowerStartMoliereRadius.
float m_defaultFloat
Default float value.
Header file for the lar two dimensional sliding fit result class.
void Run(LArMvaHelper::MvaFeatureVector &featureVector, const pandora::Algorithm *const pAlgorithm, const pandora::ParticleFlowObject *const pShowerPfo, const pandora::CartesianVector &nuVertex3D, const ProtoShowerMatch &protoShowerMatch, const pandora::CartesianPointVector &showerStarts3D)
float m_defaultFloat
Default float value.
unsigned int m_maxSampleHits
The max. number of hits considered in the spine energy calcs.
pandora::StatusCode ReadSettings(const pandora::TiXmlHandle xmlHandle)
ShowerRegionFeatureTool to calculate variables related to the shower region.
float m_pathwayLengthLimit
pathwayLengthLimit max. limit
float m_maxHitSeparation
The max. separation of connected hits.
float m_defaultFloat
Default float value.
std::string m_caloHitListNameV
The event V view hit list.
float m_defaultFloat
Default float value.
MvaFeatureTool class template.
float m_maxTrackFraction
The fraction of found hits which are considered in the energy calcs.
int m_nLayersHalfWindow
The half window of each segment.
TwoDSlidingFitResult class.
MvaFeatureTool< const pandora::Algorithm *const, const pandora::ParticleFlowObject *const, const pandora::CartesianVector &, const ProtoShowerMatch &, const pandora::CartesianPointVector & > ConnectionPathwayFeatureTool
float m_minShowerStartMoliereRadiusLimit
minShowerStartMoliereRadius max. limit