Belle II Software  release-05-01-25
Circle.h
1 //-----------------------------------------------------------------------------
2 // $Id$
3 //-----------------------------------------------------------------------------
4 // Filename : Circle.h
5 // Section : TRG CDC
6 // Owner : Yoshihito Iwasaki
7 // Email : yoshihito.iwasaki@kek.jp
8 //-----------------------------------------------------------------------------
9 // Description : A class to represent a circle
10 //-----------------------------------------------------------------------------
11 // $Log$
12 //-----------------------------------------------------------------------------
13 
14 #ifndef TRGCDCCircle_FLAG_
15 #define TRGCDCCircle_FLAG_
16 
17 #include "trg/trg/Point2D.h"
18 #include "trg/cdc/TrackBase.h"
19 
20 #ifdef TRGCDC_SHORT_NAMES
21 #define TCCircle TRGCDCCircle
22 #endif
23 
24 namespace Belle2 {
30  class TRGCDCHoughPlane;
31  class TRGCDCCircleFitter;
32 
34  class TRGCDCCircle : public TRGCDCTrackBase {
35 
36  public:
37 
39  explicit TRGCDCCircle(const std::vector<TRGCDCLink*>& links);
40 
42  TRGCDCCircle(double r,
43  double phi,
44  double charge,
45  const TRGCDCHoughPlane& plane);
46 
48  virtual ~TRGCDCCircle();
49 
50  public:
51 
53  virtual unsigned objectType(void) const override;
54 
56  const TRGPoint2D& center(void) const;
57 
59  double pt(void) const override;
60 
62  double radius(void) const;
63 
65  virtual void dump(const std::string& message = std::string(""),
66  const std::string& prefix = std::string("")) const override;
67 
69  void property(double charge,
70  double radius,
72 // void property(double charge, double radius, TPoint2D & center);
73 
74  public: // Utility functions
75 
77  int approach2D(TRGCDCLink&) const override;
78 
79  private:
80 
83 
85  double _radius;
86 
89 
92 
93  };
94 
95 //-----------------------------------------------------------------------------
96 
97  inline
98  double
99  TRGCDCCircle::pt(void) const
100  {
101  const double ConstantAlpha = 222.376063; // for 1.5T
102  return _radius / ConstantAlpha;
103  }
104 
105  inline
106  const TRGPoint2D&
108  {
109  return _center;
110  }
111 
112  inline
113  double
115  {
116  return _radius;
117  }
118 
119  inline
120  unsigned
122  {
123  return TRGCDCCircleType;
124  }
125 
126  inline
127  void
129  {
130  charge(c);
131  _radius = r;
132  _center = e;
133  }
134 
136 } // namespace Belle2
137 
138 #endif /* TRGCDCCircle_FLAG_ */
Belle2::TRGCDCCircle::_fitter
static const TRGCDCCircleFitter _fitter
Default fitter.
Definition: Circle.h:91
Belle2::TRGCDCHoughPlane
A class to represent a Hough parameter plane.
Definition: HoughPlane.h:31
Belle2::TRGPoint2D
A class to represent a point in 2D.
Definition: Point2D.h:32
Belle2::TRGCDCCircle::center
const TRGPoint2D & center(void) const
returns the circle center.
Definition: Circle.h:107
Belle2::TRGCDCTrackBase::charge
double charge(void) const
returns charge.
Definition: TrackBase.h:246
Belle2::TRGCDCCircle::_radius
double _radius
Radius multiplied by charge.
Definition: Circle.h:85
Belle2::TRGCDCCircle::dump
virtual void dump(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const override
dumps debug information.
Definition: Circle.cc:62
Belle2::TRGCDCCircle::_center
TRGPoint2D _center
Position of the circle center.
Definition: Circle.h:82
Belle2::TRGCDCCircle::radius
double radius(void) const
returns radius.
Definition: Circle.h:114
Belle2::TRGCDCCircle::_plane
const TRGCDCHoughPlane * _plane
Hough plane.
Definition: Circle.h:88
Belle2::TRGCDCCircle::objectType
virtual unsigned objectType(void) const override
returns type.
Definition: Circle.h:121
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TRGCDCCircleFitter
A class to fit a TTrackBase object to a circle.
Definition: CircleFitter.h:32
Belle2::TRGCDCCircle::property
void property(double charge, double radius, HepGeom::Point3D< double > center)
sets circle properties.
Definition: Circle.h:128
Belle2::TRGCDCCircle
A class to represent a circle.
Definition: Circle.h:34
Belle2::TRGCDCCircle::approach2D
int approach2D(TRGCDCLink &) const override
calculate closest approach. Error was happened if return value is not zero.
Definition: Circle.cc:74
Belle2::TRGCDCCircle::~TRGCDCCircle
virtual ~TRGCDCCircle()
Destructor.
Definition: Circle.cc:57
Belle2::TRGCDCTrackBase
A class to represent a track object in TRGCDC.
Definition: TrackBase.h:41
HepGeom::Point3D< double >
Belle2::TRGCDCCircle::pt
double pt(void) const override
returns Pt.
Definition: Circle.h:99
Belle2::TRGCDCTrackBase::links
const std::vector< TRGCDCLink * > & links(void) const
returns a vector to track segments.
Definition: TrackBase.cc:124