LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
BezierCurveHelper.h
Go to the documentation of this file.
1 
13 
14 #ifndef BEZIERCURVEHELPER_H
15 #define BEZIERCURVEHELPER_H
16 
17 #include <vector>
18 
20 
21 #include "fhiclcpp/ParameterSet.h"
22 
23 #include "TVector3.h"
24 
25 namespace trkf {
26 
27 
28 
30  public:
31 
32  // Constructor.
34  explicit BezierCurveHelper(int fCurveRes);
35 
36  // Destructor.
38 
39  // Update configuration parameters.
40  void reconfigure(const fhicl::ParameterSet& pset);
41 
42  std::vector<TVector3> GetBezierPoints(recob::Seed const& s1, recob::Seed const& s2, int N=100);
43  std::vector<TVector3> GetBezierPointsQuartic(recob::Seed const& s1, recob::Seed const& s2, int N=100);
44  std::vector<TVector3> GetBezierPointsCubic(recob::Seed const& s1, recob::Seed const& s2, int N=100);
45  double GetSegmentLength(recob::Seed const& s1, recob::Seed const& s2);
46  void GetBezierPointXYZ(recob::Seed const& s1, recob::Seed const& s2, float t, double * xyz);
47  TVector3 GetBezierPoint(recob::Seed const& s1, recob::Seed const& s2, float t);
48  TVector3 GetBezierPointCubic(recob::Seed const& s1, recob::Seed const& s2, float t);
49  TVector3 GetBezierPointQuartic(recob::Seed const& s1, recob::Seed const& s2, float t);
50  void GetDirectionScales(double * Pt1, double * Pt2, double * Dir1, double * Dir2, double *Scales);
51 
52 
53  void SetCurveResolution(int CurveRes) {fCurveResolution=CurveRes;}
55 
56  private:
58 
59 
60  };
61 
62 
63 
64 }
65 
66 #endif
TVector3 GetBezierPointQuartic(recob::Seed const &s1, recob::Seed const &s2, float t)
TVector3 GetBezierPoint(recob::Seed const &s1, recob::Seed const &s2, float t)
TVector3 GetBezierPointCubic(recob::Seed const &s1, recob::Seed const &s2, float t)
std::vector< TVector3 > GetBezierPointsCubic(recob::Seed const &s1, recob::Seed const &s2, int N=100)
double GetSegmentLength(recob::Seed const &s1, recob::Seed const &s2)
void SetCurveResolution(int CurveRes)
void reconfigure(const fhicl::ParameterSet &pset)
void GetDirectionScales(double *Pt1, double *Pt2, double *Dir1, double *Dir2, double *Scales)
void GetBezierPointXYZ(recob::Seed const &s1, recob::Seed const &s2, float t, double *xyz)
std::vector< TVector3 > GetBezierPoints(recob::Seed const &s1, recob::Seed const &s2, int N=100)
std::vector< TVector3 > GetBezierPointsQuartic(recob::Seed const &s1, recob::Seed const &s2, int N=100)