#include <FastCircle.h>
Public Member Functions | |
double | c () const |
FastCircle (const GlobalPoint &outerHit, const GlobalPoint &middleHit, const GlobalPoint &aVertex) | |
FastCircle (const GlobalPoint &outerHit, const GlobalPoint &middleHit, const GlobalPoint &aVertex, double norm) | |
bool | isValid () const |
double | n1 () const |
double | n2 () const |
double | rho () const |
double | x0 () const |
double | y0 () const |
~FastCircle () | |
Private Member Functions | |
void | createCircleParameters () |
AlgebraicVector3 | transform (const GlobalPoint &aPoint) const |
Private Attributes | |
double | theC |
GlobalPoint | theInnerPoint |
double | theN1 |
double | theN2 |
double | theNorm |
GlobalPoint | theOuterPoint |
double | theRho |
bool | theValid |
GlobalPoint | theVertexPoint |
double | theX0 |
double | theY0 |
Calculate circle parameters (x0, y0, rho) for a circle: (x-x0)^2 + (y-y0)^2 = rho^2 in Global Cartesian Coordinates in the (x,y) plane for a given set of GlobalPoints. It is done by mapping the points onto the Riemann Sphere and fit a plane to the transformed coordinates of the points. The method is described in:
A.Strandlie, J.Wroldsen, R.Fruehwirth, B.Lillekjendlie: Particle tracks fitted on the Riemann sphere Computer Physics Communications 131 (2000) 95-108, 18 January 2000
Implementation: Matthias Winkler, 14 February 2001
This implementation is a specialized version of the general Circle class for three points.
Update 14.02.2001: For 3 Points (2 RecHits + Vertex) the plain parameters n1*x + n2*y + n3*z + c = 0 are analytically calculable. Update 14.02.2001: In the case that a circle fit is not possible (points are along a straight line) the parameters of the straight line can be used: c + n1*x + n2*y = 0
Definition at line 33 of file FastCircle.h.
FastCircle::FastCircle | ( | const GlobalPoint & | outerHit, |
const GlobalPoint & | middleHit, | ||
const GlobalPoint & | aVertex | ||
) |
FastCircle::FastCircle | ( | const GlobalPoint & | outerHit, |
const GlobalPoint & | middleHit, | ||
const GlobalPoint & | aVertex, | ||
double | norm | ||
) |
|
inline |
Definition at line 46 of file FastCircle.h.
|
inline |
Definition at line 64 of file FastCircle.h.
References theC.
Referenced by createCircleParameters().
|
private |
Definition at line 42 of file FastCircle.cc.
References c(), alignCSCRings::e, mag2(), n, rho(), mathSSE::sqrt(), theC, theInnerPoint, theN1, theN2, theNorm, theOuterPoint, theRho, theValid, theVertexPoint, theX0, theY0, transform(), vdt::x, x0(), detailsBasic3DVector::y, y0(), and detailsBasic3DVector::z.
Referenced by FastCircle().
|
inline |
Definition at line 56 of file FastCircle.h.
References theValid.
Referenced by FastHelix::isValid(), ConversionFastHelix::makeHelix(), RoadSearchCircleSeed::RoadSearchCircleSeed(), and TangentCircle::TangentCircle().
|
inline |
Definition at line 60 of file FastCircle.h.
References theN1.
Referenced by FastHelix::helixStateAtVertex(), ConversionFastHelix::straightLineStateAtVertex(), and FastHelix::straightLineStateAtVertex().
|
inline |
Definition at line 62 of file FastCircle.h.
References theN2.
Referenced by FastHelix::helixStateAtVertex(), ConversionFastHelix::straightLineStateAtVertex(), and FastHelix::straightLineStateAtVertex().
|
inline |
Definition at line 54 of file FastCircle.h.
References theRho.
Referenced by createCircleParameters(), SimpleCosmicBONSeeder::goodTriplet(), ConversionFastHelix::helixStateAtVertex(), FastHelix::helixStateAtVertex(), SimpleCosmicBONSeeder::pqFromHelixFit(), GenericTripletGenerator::qualityFilter(), SeedFromGenericPairOrTriplet::qualityFilter(), RoadSearchCircleSeed::RoadSearchCircleSeed(), FastHelix::stateAtVertex(), and TangentCircle::TangentCircle().
|
private |
Definition at line 86 of file FastCircle.cc.
References funct::cos(), PV3DBase< T, PVType, FrameType >::perp(), phi, PV3DBase< T, PVType, FrameType >::phi(), dttmaxenums::R, funct::sin(), and theNorm.
Referenced by createCircleParameters().
|
inline |
Definition at line 50 of file FastCircle.h.
References theX0.
Referenced by PixelClusterShapeSeedComparitor::compatible(), createCircleParameters(), ConversionFastHelix::helixStateAtVertex(), FastHelix::helixStateAtVertex(), SimpleCosmicBONSeeder::pqFromHelixFit(), RoadSearchCircleSeed::RoadSearchCircleSeed(), and TangentCircle::TangentCircle().
|
inline |
Definition at line 52 of file FastCircle.h.
References theY0.
Referenced by PixelClusterShapeSeedComparitor::compatible(), createCircleParameters(), ConversionFastHelix::helixStateAtVertex(), FastHelix::helixStateAtVertex(), SimpleCosmicBONSeeder::pqFromHelixFit(), RoadSearchCircleSeed::RoadSearchCircleSeed(), and TangentCircle::TangentCircle().
|
private |
Definition at line 79 of file FastCircle.h.
Referenced by c(), and createCircleParameters().
|
private |
Definition at line 69 of file FastCircle.h.
Referenced by createCircleParameters().
|
private |
Definition at line 77 of file FastCircle.h.
Referenced by createCircleParameters(), and n1().
|
private |
Definition at line 78 of file FastCircle.h.
Referenced by createCircleParameters(), and n2().
|
private |
Definition at line 71 of file FastCircle.h.
Referenced by createCircleParameters(), and transform().
|
private |
Definition at line 68 of file FastCircle.h.
Referenced by createCircleParameters().
|
private |
Definition at line 75 of file FastCircle.h.
Referenced by createCircleParameters(), and rho().
|
private |
Definition at line 81 of file FastCircle.h.
Referenced by createCircleParameters(), and isValid().
|
private |
Definition at line 70 of file FastCircle.h.
Referenced by createCircleParameters().
|
private |
Definition at line 73 of file FastCircle.h.
Referenced by createCircleParameters(), and x0().
|
private |
Definition at line 74 of file FastCircle.h.
Referenced by createCircleParameters(), and y0().