8 #ifndef LAR_GEOMETRY_HELPER_H 9 #define LAR_GEOMETRY_HELPER_H 1 11 #include "Objects/Cluster.h" 12 #include "Pandora/PandoraEnumeratedTypes.h" 13 #include "Pandora/StatusCodes.h" 15 #include <unordered_map> 19 class CartesianVector;
26 class TwoDSlidingFitResult;
48 const float position1,
const float position2);
59 static pandora::CartesianVector MergeTwoDirections(
const pandora::Pandora &
pandora,
const pandora::HitType view1,
60 const pandora::HitType view2,
const pandora::CartesianVector &direction1,
const pandora::CartesianVector &direction2);
74 const pandora::CartesianVector &position1,
const pandora::CartesianVector &position2, pandora::CartesianVector &position3,
float &chiSquared);
90 const pandora::CartesianVector &position1,
const pandora::CartesianVector &position2, pandora::CartesianVector &outputU,
91 pandora::CartesianVector &outputV, pandora::CartesianVector &outputW,
float &chiSquared);
109 const pandora::HitType view3,
const pandora::CartesianVector &position1,
const pandora::CartesianVector &position2,
110 const pandora::CartesianVector &position3, pandora::CartesianVector &outputU, pandora::CartesianVector &outputV,
111 pandora::CartesianVector &outputW,
float &chiSquared);
125 static void MergeThreePositions(
const pandora::Pandora &
pandora,
const pandora::CartesianVector &positionU,
126 const pandora::CartesianVector &positionV,
const pandora::CartesianVector &positionW, pandora::CartesianVector &outputU,
127 pandora::CartesianVector &outputV, pandora::CartesianVector &outputW,
float &chiSquared);
141 const pandora::CartesianVector &position1,
const pandora::CartesianVector &position2, pandora::CartesianVector &position3D,
float &chiSquared);
157 const pandora::HitType view3,
const pandora::CartesianVector &position1,
const pandora::CartesianVector &position2,
158 const pandora::CartesianVector &position3, pandora::CartesianVector &position3D,
float &chiSquared);
167 static pandora::CartesianVector ProjectPosition(
177 static pandora::CartesianVector ProjectDirection(
186 static float GetWireZPitch(
const pandora::Pandora &
pandora,
const float maxWirePitchDiscrepancy = 0.01);
195 static float GetWirePitch(
const pandora::Pandora &
pandora,
const pandora::HitType view,
const float maxWirePitchDiscrepancy = 0.01);
225 static bool IsInGap(
const pandora::Pandora &
pandora,
const pandora::CartesianVector &testPoint2D,
const pandora::HitType hitType,
226 const float gapTolerance = 0.
f);
238 static bool IsInGap3D(
const pandora::Pandora &
pandora,
const pandora::CartesianVector &testPoint3D,
const pandora::HitType hitType,
239 const float gapTolerance = 0.
f);
251 static bool IsXSamplingPointInGap(
262 static float CalculateGapDeltaZ(
const pandora::Pandora &
pandora,
const float minZ,
const float maxZ,
const pandora::HitType hitType);
270 static float GetSigmaUVW(
const pandora::Pandora &
pandora,
const float maxSigmaDiscrepancy = 0.01);
279 static void GetCommonDaughterVolumes(
const pandora::Cluster *
const pCluster1,
const pandora::Cluster *
const pCluster2, UIntSet &intersect);
283 inline float LArGeometryHelper::GetWireZPitch(
const pandora::Pandora &
pandora,
const float maxWirePitchWDiscrepancy)
285 return LArGeometryHelper::GetWirePitch(pandora, pandora::TPC_VIEW_W, maxWirePitchWDiscrepancy);
290 #endif // #ifndef LAR_GEOMETRY_HELPER_H
std::set< unsigned int > UIntSet
TwoDSlidingFitResult class.