File indexing completed on 2024-04-06 12:28:52
0001 #ifndef TR_FastCircle_H_
0002 #define TR_FastCircle_H_
0003 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0004 #include "DataFormats/Math/interface/AlgebraicROOTObjects.h"
0005 #include "FWCore/Utilities/interface/Visibility.h"
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 class FastCircle {
0034 public:
0035 FastCircle(const GlobalPoint& outerHit, const GlobalPoint& middleHit, const GlobalPoint& aVertex);
0036
0037 FastCircle(const GlobalPoint& outerHit, const GlobalPoint& middleHit, const GlobalPoint& aVertex, double norm);
0038
0039 ~FastCircle() {}
0040
0041
0042
0043 double x0() const { return theX0; }
0044
0045 double y0() const { return theY0; }
0046
0047 double rho() const { return theRho; }
0048
0049 bool isValid() const { return theValid; }
0050
0051 bool isLine() const { return theIsLine; }
0052
0053
0054
0055 double n1() const { return theN1; }
0056
0057 double n2() const { return theN2; }
0058
0059 double c() const { return theC; }
0060
0061 GlobalPoint const& outerPoint() const { return theOuterPoint; }
0062 GlobalPoint const& innerPoint() const { return theInnerPoint; }
0063 GlobalPoint const& vertexPoint() const { return theVertexPoint; }
0064
0065 private:
0066 GlobalPoint theOuterPoint;
0067 GlobalPoint theInnerPoint;
0068 GlobalPoint theVertexPoint;
0069 double theNorm;
0070
0071 double theX0;
0072 double theY0;
0073 double theRho;
0074
0075 double theN1;
0076 double theN2;
0077 double theC;
0078
0079 bool theValid;
0080 bool theIsLine;
0081
0082 void createCircleParameters() dso_hidden;
0083 };
0084
0085 #endif