29 #ifndef GEOMETRYHELPER_H
30 #define GEOMETRYHELPER_H
32 #include "Pandora/PandoraInternal.h"
33 #include "Pandora/Pandora.h"
34 #include "Pandora/StatusCodes.h"
35 #include "Objects/CartesianVector.h"
36 #include "Pandora/PandoraEnumeratedTypes.h"
38 namespace april_content
57 const pandora::CartesianVector &point2,
const pandora::CartesianVector &direction2,
float &distance);
67 static pandora::StatusCode
GetClosestDistanceToLine(
const pandora::CartesianVector &point1,
const pandora::CartesianVector &direction1,
68 const pandora::CartesianVector &point2,
float &impactParameter);
78 static pandora::StatusCode
GetProjectionOnLine(
const pandora::CartesianVector &linePoint,
const pandora::CartesianVector &direction,
79 const pandora::CartesianVector &point, pandora::CartesianVector &projection);
92 const pandora::CartesianVector &point2,
const pandora::CartesianVector &direction2,
93 pandora::CartesianVector &crossingPoint1, pandora::CartesianVector &crossingPoint2);
108 static pandora::StatusCode
GetLinePlaneCrossingPoint(
const pandora::CartesianVector &linePoint,
const pandora::CartesianVector &lineDirection,
109 float planeA,
float planeB,
float planeC,
float planeD, pandora::CartesianVector &crossingPoint);
151 static pandora::StatusCode
GetEndcapGapSeparation(
const pandora::Pandora &pandora,
const pandora::CaloHit *
const pEcalCaloHit,
152 const pandora::CaloHit *
const pHcalCaloHit,
float &gapSeparation);
162 static pandora::StatusCode
GetBarrelGapSeparation(
const pandora::Pandora &pandora,
const pandora::CaloHit *
const pEcalCaloHit,
163 const pandora::CaloHit *
const pHcalCaloHit,
float &gapSeparation);
173 static pandora::StatusCode
GetOuterNormaleVector(
const pandora::Pandora &pandora, pandora::SubDetectorType type,
const pandora::CartesianVector &point,
174 pandora::CartesianVector &normaleVector);
184 static pandora::StatusCode
GetInnerNormaleVector(
const pandora::Pandora &pandora, pandora::SubDetectorType type,
const pandora::CartesianVector &point,
185 pandora::CartesianVector &normaleVector);
194 static pandora::StatusCode
GetProjectionOnHelix(
const pandora::Helix &helix,
const pandora::CartesianVector &point, pandora::CartesianVector &projection);
203 static pandora::StatusCode
GetDistanceToHelix(
const pandora::Helix &helix,
const pandora::CartesianVector &point,
float &distanceToHelix);
208 #endif // GEOMETRYHELPER_H
static pandora::StatusCode GetECalHCalBarrelGapSize(const pandora::Pandora &pandora, float &gapSize)
Get the gap size between the ECal barrel and the HCal barrel.
Definition: GeometryHelper.cc:183
static pandora::StatusCode GetProjectionOnLine(const pandora::CartesianVector &linePoint, const pandora::CartesianVector &direction, const pandora::CartesianVector &point, pandora::CartesianVector &projection)
Get the projection of a point on the line.
Definition: GeometryHelper.cc:98
static pandora::StatusCode GetClosestDistanceBetweenLines(const pandora::CartesianVector &point1, const pandora::CartesianVector &direction1, const pandora::CartesianVector &point2, const pandora::CartesianVector &direction2, float &distance)
Get the closest distance between the two lines.
Definition: GeometryHelper.cc:39
static pandora::StatusCode GetDistanceToHelix(const pandora::Helix &helix, const pandora::CartesianVector &point, float &distanceToHelix)
Get the distance between a point and the helix.
Definition: GeometryHelper.cc:413
GeometryHelper class.
Definition: GeometryHelper.h:44
static pandora::StatusCode GetTrackerECalBarrelGapSize(const pandora::Pandora &pandora, float &gapSize)
Get the gap size between the tracker and ECal barrel.
Definition: GeometryHelper.cc:213
static pandora::StatusCode GetClosestDistanceToLine(const pandora::CartesianVector &point1, const pandora::CartesianVector &direction1, const pandora::CartesianVector &point2, float &impactParameter)
Get the closest distance between a point and a line.
Definition: GeometryHelper.cc:77
static pandora::StatusCode GetBarrelGapSeparation(const pandora::Pandora &pandora, const pandora::CaloHit *const pEcalCaloHit, const pandora::CaloHit *const pHcalCaloHit, float &gapSeparation)
Get the gap separation in the barrel region between two calo hits.
Definition: GeometryHelper.cc:268
static pandora::StatusCode GetEndcapGapSeparation(const pandora::Pandora &pandora, const pandora::CaloHit *const pEcalCaloHit, const pandora::CaloHit *const pHcalCaloHit, float &gapSeparation)
Get the gap separation in the end cap region between two calo hits.
Definition: GeometryHelper.cc:228
static pandora::StatusCode GetProjectionOnHelix(const pandora::Helix &helix, const pandora::CartesianVector &point, pandora::CartesianVector &projection)
Get the projection of a point on the helix.
Definition: GeometryHelper.cc:383
static pandora::StatusCode GetOuterNormaleVector(const pandora::Pandora &pandora, pandora::SubDetectorType type, const pandora::CartesianVector &point, pandora::CartesianVector &normaleVector)
Get the normale vector at outer detector face in the phi region where the point is contained...
Definition: GeometryHelper.cc:313
static pandora::StatusCode GetECalHCalEndCapGapSize(const pandora::Pandora &pandora, float &gapSize)
Get the gap size between the ECal end cap and the HCal end cap.
Definition: GeometryHelper.cc:168
static pandora::StatusCode GetInnerNormaleVector(const pandora::Pandora &pandora, pandora::SubDetectorType type, const pandora::CartesianVector &point, pandora::CartesianVector &normaleVector)
Get the normale vector at inner detector face in the phi region where the point is contained...
Definition: GeometryHelper.cc:348
static pandora::StatusCode GetTrackerECalEndCapGapSize(const pandora::Pandora &pandora, float &gapSize)
Get the gap size between the tracker and ECal end cap.
Definition: GeometryHelper.cc:198
static pandora::StatusCode GetCrossingPointsBetweenLines(const pandora::CartesianVector &point1, const pandora::CartesianVector &direction1, const pandora::CartesianVector &point2, const pandora::CartesianVector &direction2, pandora::CartesianVector &crossingPoint1, pandora::CartesianVector &crossingPoint2)
Get the two crossing points of two lines at the closest distance approach.
Definition: GeometryHelper.cc:115
static pandora::StatusCode GetLinePlaneCrossingPoint(const pandora::CartesianVector &linePoint, const pandora::CartesianVector &lineDirection, float planeA, float planeB, float planeC, float planeD, pandora::CartesianVector &crossingPoint)
Get the crossing point between a line and a plane in space. The equation plane is defined as : ...
Definition: GeometryHelper.cc:146