Belle II Software  release-05-02-19
PerigeeCircle.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2014 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Oliver Frost *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <tracking/trackFindingCDC/geometry/GeneralizedCircle.h>
13 #include <tracking/trackFindingCDC/geometry/Line2D.h>
14 
15 #include <tracking/trackFindingCDC/geometry/PerigeeParameters.h>
16 
17 #include <tracking/trackFindingCDC/geometry/Vector2D.h>
18 
19 #include <tracking/trackFindingCDC/numerics/EForwardBackward.h>
20 #include <tracking/trackFindingCDC/numerics/ERightLeft.h>
21 #include <tracking/trackFindingCDC/numerics/ERotation.h>
22 #include <tracking/trackFindingCDC/numerics/ESign.h>
23 
24 #include <utility>
25 #include <cmath>
26 #include <iosfwd>
27 
28 namespace Belle2 {
34  namespace TrackFindingCDC {
35  class Circle2D;
36 
38  class PerigeeCircle {
39 
40  public:
42  PerigeeCircle();
43 
46  PerigeeCircle(double curvature, const Vector2D& phi0Vec, double impact);
47 
50  PerigeeCircle(double curvature, double phi0, double impact);
51 
54 
55  private:
57  PerigeeCircle(double curvature, double phi0, const Vector2D& phi0Vec, double impact);
58 
59  public:
61  explicit PerigeeCircle(const Line2D& n012);
62 
64  explicit PerigeeCircle(const GeneralizedCircle& n0123);
65 
67  explicit PerigeeCircle(const Circle2D& circle);
68 
70  static PerigeeCircle fromN(double n0, double n1, double n2, double n3 = 0);
71 
73  static PerigeeCircle fromN(double n0, const Vector2D& n12, double n3 = 0);
74 
83  static PerigeeCircle
85  double absRadius,
86  ERotation orientation = ERotation::c_CounterClockwise);
87 
88  public:
90  void invalidate();
91 
93  bool isInvalid() const;
94 
96  bool isValid() const
97  {
98  return not isInvalid();
99  }
100 
102  void reverse();
103 
105  PerigeeCircle reversed() const;
106 
107  public:
115  void conformalTransform();
116 
126 
128  void passiveMoveBy(const Vector2D& by);
129 
132 
135  void passiveMoveByJacobian(const Vector2D& by, PerigeeJacobian& jacobian) const;
136 
139  Vector2D atArcLength(double arcLength) const;
140 
142  double arcLengthTo(const Vector2D& point) const;
143 
153  double arcLengthBetween(const Vector2D& from, const Vector2D& to) const;
154 
161  double arcLengthToCylindricalR(double cylindricalR) const;
162 
164  std::pair<Vector2D, Vector2D> atCylindricalR(double cylindricalR) const;
165 
179  Vector2D atCylindricalRForwardOf(const Vector2D& startPoint, double cylindricalR) const;
180 
182  EForwardBackward isForwardOrBackwardOf(const Vector2D& from, const Vector2D& to) const
183  {
184  return tangential(from).isForwardOrBackwardOf(to - from);
185  }
186 
188  EForwardBackward isForwardOrBackward(const Vector2D& to) const
189  {
191  }
192 
206  Vector2D
207  chooseNextForwardOf(const Vector2D& start, const Vector2D& end1, const Vector2D& end2) const;
209  Vector2D closest(const Vector2D& point) const;
210 
212  double distance(const Vector2D& point) const
213  {
214  return distance(fastDistance(point));
215  }
216 
218  double distance(double fastDistance) const;
219 
228  double fastDistance(const Vector2D& point) const;
229 
231  double fastImpact() const
232  {
233  return fastDistance(impact());
234  }
235 
240  double fastDistance(double distance) const
241  {
242  return distance * (1.0 + distance * curvature() / 2);
243  }
244 
246  ERightLeft isRightOrLeft(const Vector2D& point) const
247  {
248  return static_cast<ERightLeft>(sign(fastDistance(point)));
249  }
250 
252  bool isLine() const
253  {
254  return curvature() == 0.0;
255  }
256 
258  bool isCircle() const
259  {
260  return curvature() != 0.0;
261  }
262 
264  ERotation orientation() const
265  {
266  return static_cast<ERotation>(sign(curvature()));
267  }
268 
270  Vector2D gradient(const Vector2D& point) const
271  {
272  return (point - perigee()) * curvature() - phi0Vec().orthogonal();
273  }
274 
276  Vector2D normal(const Vector2D& point) const
277  {
278  return gradient(point).unit();
279  }
280 
282  Vector2D tangential(const Vector2D& point) const
283  {
284  return normal(point).orthogonal();
285  }
286 
288  const Vector2D& tangential() const
289  {
290  return phi0Vec();
291  }
292 
294  Vector2D perigee() const
295  {
296  return phi0Vec().orthogonal() * impact();
297  }
298 
300  Vector2D center() const
301  {
302  return phi0Vec().orthogonal() * (impact() + radius());
303  }
304 
306  Vector2D apogee() const
307  {
308  return phi0Vec().orthogonal() * (impact() + 2 * radius());
309  }
310 
312  double minimalCylindricalR() const
313  {
314  return fabs(impact());
315  }
316 
318  double maximalCylindricalR() const
319  {
320  return fabs(impact() + 2 * radius());
321  }
322 
324  double arcLengthPeriod() const
325  {
326  return std::fabs(perimeter());
327  }
328 
330  double perimeter() const
331  {
332  return 2 * M_PI * radius();
333  }
334 
336  double radius() const
337  {
338  return 1 / curvature();
339  }
340 
342  double absRadius() const
343  {
344  return fabs(radius());
345  }
346 
348  void setCenterAndRadius(const Vector2D& center,
349  double absRadius,
350  ERotation orientation = ERotation::c_CounterClockwise);
351 
353  double n0() const
354  {
355  return impact() * (impact() * curvature() / 2.0 + 1.0);
356  }
357 
359  Vector2D n12() const
360  {
361  return -phi0Vec().orthogonal() * (1 + curvature() * impact());
362  }
363 
365  double n1() const
366  {
367  return n12().x();
368  }
369  //{ return phi0Vec().y() * (1 + curvature() * impact()); }
370 
372  double n2() const
373  {
374  return n12().y();
375  }
376  //{ return -(phi0Vec().x()) * (1 + curvature() * impact()); }
377 
379  double n3() const
380  {
381  return curvature() / 2.0;
382  }
383 
385  void setN(double n0, double n1, double n2, double n3 = 0.0)
386  {
388  }
389 
391  void setN(double n0, const Vector2D& n12, double n3 = 0.0);
392 
394  void setN(const Line2D& n012)
395  {
396  setN(n012.n0(), n012.n12());
397  }
398 
400  void setN(const GeneralizedCircle& n0123)
401  {
402  setN(n0123.n0(), n0123.n12(), n0123.n3());
403  }
404 
406  double omega() const
407  {
408  return -curvature();
409  }
410 
412  double d0() const
413  {
414  return -impact();
415  }
416 
418  double curvature() const
419  {
420  return m_curvature;
421  }
422 
424  double phi0() const
425  {
426  return m_phi0;
427  }
428 
430  const Vector2D& phi0Vec() const
431  {
432  return m_phi0Vec;
433  }
434 
436  double impact() const
437  {
438  return m_impact;
439  }
440 
443  {
444  using namespace NPerigeeParameterIndices;
445  PerigeeParameters result;
446  result(c_Curv) = curvature();
447  result(c_Phi0) = phi0();
448  result(c_I) = impact();
449  return result;
450  }
451 
453  void setCurvature(double curvature)
454  {
456  }
457 
459  void setPhi0(double phi0)
460  {
463  }
464 
466  void setPhi0(const Vector2D& phi0Vec)
467  {
468  m_phi0 = phi0Vec.phi();
469  m_phi0Vec = phi0Vec.unit();
470  }
471 
473  void setImpact(double impact)
474  {
475  m_impact = impact;
476  }
477 
479  void setPerigeeParameters(double curvature, const Vector2D& phi0Vec, double impact)
480  {
482  m_phi0 = phi0Vec.phi();
483  m_phi0Vec = phi0Vec.unit();
485  }
486 
488  void setPerigeeParameters(double curvature, double phi0, double impact)
489  {
490  m_impact = impact;
491  m_phi0 = phi0;
494  }
495 
496  private:
498  double arcLengthAtDeltaLength(double delta, double dr) const;
499 
501  double arcLengthAtSecantLength(double secantLength) const;
502 
503  private:
505  double m_curvature;
506 
508  double m_phi0;
509 
512 
514  double m_impact;
515 
516  };
517 
519  std::ostream& operator<<(std::ostream& output, const PerigeeCircle& circle);
520  }
522 }
Belle2::TrackFindingCDC::PerigeeCircle::PerigeeCircle
PerigeeCircle()
Default constructor for ROOT compatibility.
Definition: PerigeeCircle.cc:44
Belle2::TrackFindingCDC::PerigeeCircle::isCircle
bool isCircle() const
Indicates if the perigee parameters represent a closed circle.
Definition: PerigeeCircle.h:266
Belle2::TrackFindingCDC::Line2D::n0
double n0() const
Getter for the first line parameter.
Definition: Line2D.h:109
Belle2::TrackFindingCDC::Vector2D::orthogonal
Vector2D orthogonal() const
Orthogonal vector to the counterclockwise direction.
Definition: Vector2D.h:303
Belle2::operator<<
std::ostream & operator<<(std::ostream &output, const IntervalOfValidity &iov)
Definition: IntervalOfValidity.cc:196
Belle2::TrackFindingCDC::Vector2D::unit
Vector2D unit() const
Returns a unit vector colaligned with this.
Definition: Vector2D.h:335
Belle2::TrackFindingCDC::PerigeeCircle::setN
void setN(double n0, double n1, double n2, double n3=0.0)
Setter for four generalised circle parameters.
Definition: PerigeeCircle.h:393
Belle2::TrackFindingCDC::PerigeeCircle::conformalTransformed
PerigeeCircle conformalTransformed() const
Returns a copy of the circle in conformal space.
Definition: PerigeeCircle.cc:151
Belle2::TrackFindingCDC::PerigeeCircle::setImpact
void setImpact(double impact)
Sets the impact parameter of the circle.
Definition: PerigeeCircle.h:481
Belle2::TrackFindingCDC::PerigeeCircle::isForwardOrBackward
EForwardBackward isForwardOrBackward(const Vector2D &to) const
Indicates whether to given point lies in the forward direction from the perigee.
Definition: PerigeeCircle.h:196
Belle2::TrackFindingCDC::PerigeeCircle::setN
void setN(const Line2D &n012)
Setter for generalised circle parameters from a normal line.
Definition: PerigeeCircle.h:402
Belle2::TrackFindingCDC::PerigeeCircle::tangential
const Vector2D & tangential() const
Getter for the tangtial vector at the perigee.
Definition: PerigeeCircle.h:296
Belle2::TrackFindingCDC::Vector2D
A two dimensional vector which is equipped with functions for correct handeling of orientation relat...
Definition: Vector2D.h:37
Belle2::TrackFindingCDC::PerigeeCircle::perigeeParameters
PerigeeParameters perigeeParameters() const
Getter for the three perigee parameters in the order defined by EPerigeeParameter....
Definition: PerigeeCircle.h:450
Belle2::TrackFindingCDC::PerigeeCircle::arcLengthAtDeltaLength
double arcLengthAtDeltaLength(double delta, double dr) const
Helper method to calculate the arc length to a point at distance delta to the perigee and dr to circl...
Definition: PerigeeCircle.cc:268
Belle2::TrackFindingCDC::PerigeeCircle::arcLengthTo
double arcLengthTo(const Vector2D &point) const
Calculates the arc length between the perigee and the given point.
Definition: PerigeeCircle.cc:238
Belle2::TrackFindingCDC::PerigeeCircle::fromN
static PerigeeCircle fromN(double n0, double n1, double n2, double n3=0)
Constructor with the four parameters of the generalized circle.
Belle2::TrackFindingCDC::Vector2D::y
double y() const
Getter for the y coordinate.
Definition: Vector2D.h:619
Belle2::TrackFindingCDC::PerigeeCircle::atArcLength
Vector2D atArcLength(double arcLength) const
Calculates the point, which lies at the give perpendicular travel distance (counted from the perigee)
Definition: PerigeeCircle.cc:118
Belle2::TrackFindingCDC::PerigeeCircle::minimalCylindricalR
double minimalCylindricalR() const
Gives the minimal cylindrical radius the circle reaches (unsigned)
Definition: PerigeeCircle.h:320
Belle2::TrackFindingCDC::PerigeeCircle::arcLengthBetween
double arcLengthBetween(const Vector2D &from, const Vector2D &to) const
Calculates the arc length between two points of closest approach on the circle.
Definition: PerigeeCircle.cc:246
Belle2::TrackFindingCDC::PerigeeCircle::reversed
PerigeeCircle reversed() const
Returns a copy of the circle with opposite orientation.
Definition: PerigeeCircle.cc:136
Belle2::TrackFindingCDC::PerigeeCircle::impact
double impact() const
Getter for the signed distance of the origin to the circle.
Definition: PerigeeCircle.h:444
Belle2::TrackFindingCDC::Circle2D
A two dimensional circle in its natural representation using center and radius as parameters.
Definition: Circle2D.h:36
Belle2::TrackFindingCDC::NForwardBackward::EForwardBackward
EForwardBackward
Enumeration to represent the distinct possibilities of the right left passage information.
Definition: EForwardBackward.h:35
Belle2::TrackFindingCDC::PerigeeCircle::orientation
ERotation orientation() const
Getter for the orientation of the circle.
Definition: PerigeeCircle.h:272
Belle2::TrackFindingCDC::GeneralizedCircle
A generalized circle.
Definition: GeneralizedCircle.h:61
Belle2::TrackFindingCDC::Vector2D::phi
double phi() const
Gives the azimuth angle being the angle to the x axes ( range -M_PI to M_PI )
Definition: Vector2D.h:583
Belle2::TrackFindingCDC::PerigeeCircle::reverse
void reverse()
Flips the orientation of the circle in place.
Definition: PerigeeCircle.cc:128
Belle2::TrackFindingCDC::PerigeeCircle::n12
Vector2D n12() const
Getter for the generalised circle parameters n1 and n2.
Definition: PerigeeCircle.h:367
Belle2::TrackFindingCDC::PerigeeCircle::passiveMoveByJacobian
PerigeeJacobian passiveMoveByJacobian(const Vector2D &by) const
Computes the Jacobi matrix for a move of the coordinate system by the given vector.
Definition: PerigeeCircle.cc:185
Belle2::TrackFindingCDC::PerigeeCircle::radius
double radius() const
Gives the signed radius of the circle. If it was a line this will be infinity.
Definition: PerigeeCircle.h:344
Belle2::TrackFindingCDC::PerigeeCircle::chooseNextForwardOf
Vector2D chooseNextForwardOf(const Vector2D &start, const Vector2D &end1, const Vector2D &end2) const
Returns the one of two end point which is first reached from the given start if one stricly follows t...
Definition: PerigeeCircle.cc:300
Belle2::TrackFindingCDC::PerigeeCircle::perimeter
double perimeter() const
Gives the signed perimeter of the circle.
Definition: PerigeeCircle.h:338
Belle2::TrackFindingCDC::PerigeeCircle::m_curvature
double m_curvature
Memory for the signed curvature.
Definition: PerigeeCircle.h:513
Belle2::TrackFindingCDC::PerigeeCircle::m_phi0
double m_phi0
Memory for the azimuth angle of the direction of flight at the perigee.
Definition: PerigeeCircle.h:516
Belle2::TrackFindingCDC::PerigeeCircle::setPhi0
void setPhi0(double phi0)
Sets the azimuth angle of the direction of flight at the perigee.
Definition: PerigeeCircle.h:467
Belle2::TrackFindingCDC::Vector2D::Phi
static Vector2D Phi(const double phi)
Constucts a unit vector with azimuth angle equal to phi.
Definition: Vector2D.h:73
Belle2::TrackFindingCDC::PerigeeCircle::perigee
Vector2D perigee() const
Getter for the perigee point.
Definition: PerigeeCircle.h:302
Belle2::TrackFindingCDC::PerigeeCircle::apogee
Vector2D apogee() const
Getter for the apogee of the circle. If it was a line both components will be infinity.
Definition: PerigeeCircle.h:314
Belle2::TrackFindingCDC::PerigeeCircle::center
Vector2D center() const
Getter for the center of the circle. If it was a line both components will be infinity.
Definition: PerigeeCircle.h:308
Belle2::TrackFindingCDC::PerigeeCircle::fromCenterAndRadius
static PerigeeCircle fromCenterAndRadius(const Vector2D &center, double absRadius, ERotation orientation=ERotation::c_CounterClockwise)
Constructor from center, radius and a optional orientation.
Definition: PerigeeCircle.cc:111
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::PerigeeCircle::isLine
bool isLine() const
Indicates if the perigee parameters represent a line.
Definition: PerigeeCircle.h:260
Belle2::TrackFindingCDC::PerigeeCircle::phi0
double phi0() const
Getter for the azimuth angle of the direction of flight at the perigee.
Definition: PerigeeCircle.h:432
Belle2::TrackFindingCDC::PerigeeCircle::arcLengthAtSecantLength
double arcLengthAtSecantLength(double secantLength) const
Helper method to calculate the arc length between to points on the circle from a given direct secant ...
Definition: PerigeeCircle.cc:275
Belle2::TrackFindingCDC::PerigeeCircle::isInvalid
bool isInvalid() const
Indicates if all circle parameters are zero.
Definition: PerigeeCircle.cc:170
Belle2::TrackFindingCDC::PerigeeCircle::atCylindricalR
std::pair< Vector2D, Vector2D > atCylindricalR(double cylindricalR) const
Calculates the two points with the given cylindrical radius on the generalised circle.
Definition: PerigeeCircle.cc:282
Belle2::TrackFindingCDC::PerigeeCircle
Extension of the generalized circle also caching the perigee coordinates.
Definition: PerigeeCircle.h:46
Belle2::TrackFindingCDC::PerigeeCircle::atCylindricalRForwardOf
Vector2D atCylindricalRForwardOf(const Vector2D &startPoint, double cylindricalR) const
Approach on the circle with the given cylindrical radius that lies in the forward direction of a star...
Definition: PerigeeCircle.cc:293
Belle2::TrackFindingCDC::PerigeeCircle::fastImpact
double fastImpact() const
Getter for the linearised distance to the origin.
Definition: PerigeeCircle.h:239
Belle2::TrackFindingCDC::NRightLeft::ERightLeft
ERightLeft
Enumeration to represent the distinct possibilities of the right left passage.
Definition: ERightLeft.h:35
Belle2::TrackFindingCDC::PerigeeCircle::phi0Vec
const Vector2D & phi0Vec() const
Getter for the unit vector of the direction of flight at the perigee.
Definition: PerigeeCircle.h:438
Belle2::TrackFindingCDC::PerigeeCircle::passiveMoveBy
void passiveMoveBy(const Vector2D &by)
Moves the coordinates system by the given vector. Updates perigee parameters in place.
Definition: PerigeeCircle.cc:176
Belle2::TrackFindingCDC::PerigeeCircle::n0
double n0() const
Getter for the generalised circle parameter n0.
Definition: PerigeeCircle.h:361
Belle2::TrackFindingCDC::NRotation::ERotation
ERotation
Enumeration to represent the distinct possibilities of the right left passage information.
Definition: ERotation.h:35
Belle2::TrackFindingCDC::PerigeeCircle::n1
double n1() const
Getter for the generalised circle parameters n1.
Definition: PerigeeCircle.h:373
Belle2::TrackFindingCDC::Vector2D::x
double x() const
Getter for the x coordinate.
Definition: Vector2D.h:609
Belle2::TrackFindingCDC::Line2D
A two dimensional normal line.
Definition: Line2D.h:47
Belle2::TrackFindingCDC::PerigeeCircle::setCurvature
void setCurvature(double curvature)
Setter for signed curvature.
Definition: PerigeeCircle.h:461
Belle2::TrackFindingCDC::PerigeeCircle::n2
double n2() const
Getter for the generalised circle parameters n2.
Definition: PerigeeCircle.h:380
Belle2::TrackFindingCDC::PerigeeCircle::n3
double n3() const
Getter for the generalised circle parameter n3.
Definition: PerigeeCircle.h:387
Belle2::TrackFindingCDC::PerigeeCircle::maximalCylindricalR
double maximalCylindricalR() const
Gives the maximal cylindrical radius the circle reaches.
Definition: PerigeeCircle.h:326
Belle2::TrackFindingCDC::PerigeeCircle::setCenterAndRadius
void setCenterAndRadius(const Vector2D &center, double absRadius, ERotation orientation=ERotation::c_CounterClockwise)
Setter for the circle center and radius.
Definition: PerigeeCircle.cc:336
Belle2::TrackFindingCDC::PerigeeCircle::isForwardOrBackwardOf
EForwardBackward isForwardOrBackwardOf(const Vector2D &from, const Vector2D &to) const
Indicates whether to given point lies in the forward direction from the perigee.
Definition: PerigeeCircle.h:190
Belle2::TrackFindingCDC::PerigeeCircle::closest
Vector2D closest(const Vector2D &point) const
Calculates the point of closest approach on the circle to the given point.
Definition: PerigeeCircle.cc:317
Belle2::TrackFindingCDC::PerigeeCircle::isValid
bool isValid() const
Indicates if the combination of the circle parameters makes up a valid circle.
Definition: PerigeeCircle.h:104
Belle2::TrackFindingCDC::Vector2D::isForwardOrBackwardOf
EForwardBackward isForwardOrBackwardOf(const Vector2D &rhs) const
Indicates if the given vector is more coaligned or reverse if you looked in the direction of this vec...
Definition: Vector2D.h:507
Belle2::TrackFindingCDC::PlainMatrix
A matrix implementation to be used as an interface typ through out the track finder.
Definition: PlainMatrix.h:50
Belle2::TrackFindingCDC::PerigeeCircle::arcLengthToCylindricalR
double arcLengthToCylindricalR(double cylindricalR) const
Calculates the two dimensional arc length till the cylindrical radius is reached If the radius can no...
Definition: PerigeeCircle.cc:258
Belle2::TrackFindingCDC::PerigeeCircle::setPerigeeParameters
void setPerigeeParameters(double curvature, const Vector2D &phi0Vec, double impact)
Setter for the perigee parameters.
Definition: PerigeeCircle.h:487
Belle2::TrackFindingCDC::PerigeeCircle::isRightOrLeft
ERightLeft isRightOrLeft(const Vector2D &point) const
Indicates if the point is on the right or left side of the circle.
Definition: PerigeeCircle.h:254
Belle2::TrackFindingCDC::PerigeeCircle::normal
Vector2D normal(const Vector2D &point) const
Unit normal vector from the circle to the given point.
Definition: PerigeeCircle.h:284
Belle2::TrackFindingCDC::PerigeeCircle::distance
double distance(const Vector2D &point) const
Getter for the proper signed distance of the point to the circle.
Definition: PerigeeCircle.h:220
Belle2::TrackFindingCDC::PerigeeCircle::invalidate
void invalidate()
Sets all circle parameters to zero.
Definition: PerigeeCircle.cc:162
Belle2::TrackFindingCDC::PerigeeCircle::fastDistance
double fastDistance(double distance) const
Helper function to translate the proper distance to the linearized distance measure of the circle ret...
Definition: PerigeeCircle.h:248
Belle2::TrackFindingCDC::PerigeeCircle::curvature
double curvature() const
Getter for the signed curvature.
Definition: PerigeeCircle.h:426
Belle2::TrackFindingCDC::PerigeeCircle::m_impact
double m_impact
Memory for the signed impact parameter.
Definition: PerigeeCircle.h:522
Belle2::TrackFindingCDC::PerigeeCircle::gradient
Vector2D gradient(const Vector2D &point) const
Gradient of the distance field, hence indicates the direction of increasing distance.
Definition: PerigeeCircle.h:278
Belle2::TrackFindingCDC::PerigeeCircle::omega
double omega() const
Getter for omega parameter of the common Belle2::Helix which is the wrong sign curvature.
Definition: PerigeeCircle.h:414
Belle2::TrackFindingCDC::PerigeeCircle::arcLengthPeriod
double arcLengthPeriod() const
Getter for the arc length for a full round of the circle.
Definition: PerigeeCircle.h:332
Belle2::TrackFindingCDC::Line2D::n12
const Vector2D & n12() const
Getter for the unit normal vector to the line.
Definition: Line2D.h:127
Belle2::TrackFindingCDC::PerigeeCircle::absRadius
double absRadius() const
Gives the signed radius of the circle. If it was a line this will be infinity.
Definition: PerigeeCircle.h:350
Belle2::TrackFindingCDC::PerigeeCircle::d0
double d0() const
Getter for d0 parameter of the common Belle2::Helix representation.
Definition: PerigeeCircle.h:420
Belle2::TrackFindingCDC::PerigeeCircle::m_phi0Vec
Vector2D m_phi0Vec
Cached unit direction of flight at the perigee.
Definition: PerigeeCircle.h:519
Belle2::TrackFindingCDC::PerigeeCircle::fastDistance
double fastDistance(const Vector2D &point) const
Getter for the linearised distance measure to a point.
Definition: PerigeeCircle.cc:329
Belle2::TrackFindingCDC::PerigeeCircle::conformalTransform
void conformalTransform()
Transforms the generalized circle to conformal space inplace.
Definition: PerigeeCircle.cc:141