8 #ifndef LAR_GEOMETRY_HELPER_H 9 #define LAR_GEOMETRY_HELPER_H 1 11 #include "Pandora/PandoraEnumeratedTypes.h" 12 #include "Pandora/StatusCodes.h" 14 #include <unordered_map> 18 class CartesianVector;
25 class TwoDSlidingFitResult;
47 const float position1,
const float position2);
58 static pandora::CartesianVector MergeTwoDirections(
const pandora::Pandora &
pandora,
const pandora::HitType view1,
59 const pandora::HitType view2,
const pandora::CartesianVector &direction1,
const pandora::CartesianVector &direction2);
73 const pandora::CartesianVector &position1,
const pandora::CartesianVector &position2, pandora::CartesianVector &position3,
float &chiSquared);
89 const pandora::CartesianVector &position1,
const pandora::CartesianVector &position2, pandora::CartesianVector &outputU,
90 pandora::CartesianVector &outputV, pandora::CartesianVector &outputW,
float &chiSquared);
108 const pandora::HitType view3,
const pandora::CartesianVector &position1,
const pandora::CartesianVector &position2,
109 const pandora::CartesianVector &position3, pandora::CartesianVector &outputU, pandora::CartesianVector &outputV,
110 pandora::CartesianVector &outputW,
float &chiSquared);
124 static void MergeThreePositions(
const pandora::Pandora &
pandora,
const pandora::CartesianVector &positionU,
125 const pandora::CartesianVector &positionV,
const pandora::CartesianVector &positionW, pandora::CartesianVector &outputU,
126 pandora::CartesianVector &outputV, pandora::CartesianVector &outputW,
float &chiSquared);
140 const pandora::CartesianVector &position1,
const pandora::CartesianVector &position2, pandora::CartesianVector &position3D,
float &chiSquared);
156 const pandora::HitType view3,
const pandora::CartesianVector &position1,
const pandora::CartesianVector &position2,
157 const pandora::CartesianVector &position3, pandora::CartesianVector &position3D,
float &chiSquared);
166 static pandora::CartesianVector ProjectPosition(
176 static pandora::CartesianVector ProjectDirection(
185 static float GetWireZPitch(
const pandora::Pandora &
pandora,
const float maxWirePitchDiscrepancy = 0.01);
194 static float GetWirePitch(
const pandora::Pandora &
pandora,
const pandora::HitType view,
const float maxWirePitchDiscrepancy = 0.01);
214 static bool IsInGap(
const pandora::Pandora &
pandora,
const pandora::CartesianVector &testPoint2D,
const pandora::HitType hitType,
215 const float gapTolerance = 0.
f);
227 static bool IsInGap3D(
const pandora::Pandora &
pandora,
const pandora::CartesianVector &testPoint3D,
const pandora::HitType hitType,
228 const float gapTolerance = 0.
f);
240 static bool IsXSamplingPointInGap(
251 static float CalculateGapDeltaZ(
const pandora::Pandora &
pandora,
const float minZ,
const float maxZ,
const pandora::HitType hitType);
259 static float GetSigmaUVW(
const pandora::Pandora &
pandora,
const float maxSigmaDiscrepancy = 0.01);
268 static void GetCommonDaughterVolumes(
const pandora::Cluster *
const pCluster1,
const pandora::Cluster *
const pCluster2, UIntSet &intersect);
272 inline float LArGeometryHelper::GetWireZPitch(
const pandora::Pandora &
pandora,
const float maxWirePitchWDiscrepancy)
274 return LArGeometryHelper::GetWirePitch(pandora, pandora::TPC_VIEW_W, maxWirePitchWDiscrepancy);
279 #endif // #ifndef LAR_GEOMETRY_HELPER_H
std::set< unsigned int > UIntSet
TwoDSlidingFitResult class.