9 #ifndef UTIL_GEOMETRYUTILITIES_H
10 #define UTIL_GEOMETRYUTILITIES_H
12 #include "RtypesCore.h"
23 class DetectorClocksData;
24 class DetectorPropertiesData;
46 Double_t& theta)
const;
48 Double_t
CalculatePitch(UInt_t iplane0, Double_t phi, Double_t theta)
const;
54 Double_t
Get2Dangle(Double_t deltawire, Double_t deltatime)
const;
59 Double_t timestart)
const;
67 Double_t
Get2Dslope(Double_t deltawire, Double_t deltatime)
const;
72 Double_t timestart)
const;
76 Double_t
Get2DDistance(Double_t wire1, Double_t time1, Double_t wire2, Double_t time2)
const;
89 Double_t& timeout)
const;
97 Double_t& timeout)
const;
111 Double_t ort_intercept,
113 Double_t& timeout)
const;
117 double ort_intercept,
134 double timein)
const;
138 double timein)
const;
144 Double_t
PitchInView(UInt_t plane, Double_t phi, Double_t theta)
const;
150 std::vector<const util::PxHit*>& hitlistlocal,
152 Double_t& linearlimit,
154 Double_t& lineslopetest)
const;
157 std::vector<const util::PxHit*>& hitlistlocal,
159 Double_t& linearlimit,
161 Double_t& lineslopetest,
165 std::vector<unsigned int>& hitlistlocal_index,
167 Double_t& linearlimit,
169 Double_t& lineslopetest)
const;
172 std::vector<const util::PxHit*>& hitlistlocal)
const;
174 std::vector<size_t>
PolyOverlap(std::vector<const util::PxHit*> ordered_hits,
175 std::vector<size_t> candidate_polygon)
const;
177 bool Clockwise(
double Ax,
double Ay,
double Bx,
double By,
double Cx,
double Cy)
const;
216 #endif // UTIL_GEOMETRYUTILITIES_H
std::vector< Double_t > vertangle
detinfo::DetectorClocksData const & fClocks
Double_t Get2DDistance(Double_t wire1, Double_t time1, Double_t wire2, Double_t time2) const
process_name opflash particleana ie x
std::vector< size_t > PolyOverlap(std::vector< const util::PxHit * > ordered_hits, std::vector< size_t > candidate_polygon) const
Double_t Get2Dangle(Double_t deltawire, Double_t deltatime) const
Double_t TimeToCm() const
util::PxHit FindClosestHit(std::vector< util::PxHit > const &hitlist, unsigned int wirein, double timein) const
Double_t WireToCm() const
Double_t PitchInView(UInt_t plane, Double_t phi, Double_t theta) const
detinfo::DetectorPropertiesData const & fDetProp
Double_t Get2DPitchDistance(Double_t angle, Double_t inwire, Double_t wire) const
geo::GeometryCore const & fGeom
Double_t Get3DSpecialCaseTheta(Int_t iplane0, Int_t iplane1, Double_t dw0, Double_t dw1) const
Double_t GetTimeTicks(Double_t x, Int_t plane) const
void SelectLocalHitlistIndex(const std::vector< util::PxHit > &hitlist, std::vector< unsigned int > &hitlistlocal_index, util::PxPoint &startHit, Double_t &linearlimit, Double_t &ortlimit, Double_t &lineslopetest) const
Description of geometry of one entire detector.
Int_t GetPointOnLine(Double_t slope, Double_t intercept, Double_t wire1, Double_t time1, Double_t &wireout, Double_t &timeout) const
bool Clockwise(double Ax, double Ay, double Bx, double By, double Cx, double Cy) const
Double_t Get2DPitchDistanceWSlope(Double_t slope, Double_t inwire, Double_t wire) const
Int_t GetYZ(const PxPoint *p0, const PxPoint *p1, Double_t *yz) const
Contains all timing reference information for the detector.
double Get2DangleFrom3D(unsigned int plane, double phi, double theta) const
GeometryUtilities(geo::GeometryCore const &geom, detinfo::DetectorClocksData const &clockData, detinfo::DetectorPropertiesData const &propData)
Int_t GetProjectedPoint(const PxPoint *p0, const PxPoint *p1, PxPoint &pN) const
void GetDirectionCosines(Double_t phi, Double_t theta, Double_t *dirs) const
PxPoint Get2DPointProjection(Double_t *xyz, Int_t plane) const
Double_t WireTimeToCmCm() const
finds tracks best matching by angle
constexpr double kINVALID_DOUBLE
unsigned int FindClosestHitIndex(std::vector< util::PxHit > const &hitlist, unsigned int wirein, double timein) const
PxPoint Get2DPointProjectionCM(std::vector< double > xyz, int plane) const
Double_t CalculatePitch(UInt_t iplane0, Double_t phi, Double_t theta) const
void SelectPolygonHitList(const std::vector< util::PxHit > &hitlist, std::vector< const util::PxHit * > &hitlistlocal) const
Int_t GetPointOnLineWSlopes(Double_t slope, Double_t intercept, Double_t ort_intercept, Double_t &wireout, Double_t &timeout) const
Double_t Get2Dslope(Double_t deltawire, Double_t deltatime) const
Int_t GetXYZ(const PxPoint *p0, const PxPoint *p1, Double_t *xyz) const
Int_t Get3DaxisN(Int_t iplane0, Int_t iplane1, Double_t omega0, Double_t omega1, Double_t &phi, Double_t &theta) const
physics associatedGroupsWithLeft p1
void SelectLocalHitlist(const std::vector< util::PxHit > &hitlist, std::vector< const util::PxHit * > &hitlistlocal, util::PxPoint &startHit, Double_t &linearlimit, Double_t &ortlimit, Double_t &lineslopetest) const
Double_t CalculatePitchPolar(UInt_t iplane0, Double_t phi, Double_t theta) const