Belle II Software development
HoughTransformation.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9//-----------------------------------------------------------------------------
10// Description : An abstract class to represent a Hough transformation.
11//-----------------------------------------------------------------------------
12
13#ifndef TRGCDCHoughTransformation_FLAG_
14#define TRGCDCHoughTransformation_FLAG_
15
16#include <string>
17
18#ifdef TRGCDC_SHORT_NAMES
19#define TCHTransformation TRGCDCHoughTransformation
20#endif
21
22namespace Belle2 {
28 class TRGPoint2D;
29
32
33 public:
35 TRGCDCHoughTransformation(const std::string& name);
36
39
40 public:// Selectors
42 std::string name(void) const;
43
45 virtual float y(float xReal, float yReal, float x) const = 0;
46
48 virtual bool diverge(float xReal, float yReal, float x0, float x1)
49 const = 0;
50
52 virtual bool positiveDiverge(float xReal, float yReal, float x0, float x1)
53 const = 0;
54
56 virtual bool negativeDiverge(float xReal, float yReal, float x0, float x1)
57 const = 0;
58
59// /// returns a gradient at given regsion.
60// virtual float gradient(float xReal, float yReal, float x) const = 0;
61
63 virtual TRGPoint2D convert(const TRGPoint2D&) const;
64
65 public:// Modifiers
66
67 private:
69 const std::string _name;
70 };
71
72 inline
73 std::string
75 {
76 return _name;
77 }
78
80} // namespace Belle
81
82#endif
An abstract class to represent a Hough transformation.
virtual bool positiveDiverge(float xReal, float yReal, float x0, float x1) const =0
returns true if Y diverges in given region.
virtual float y(float xReal, float yReal, float x) const =0
returns Y coordinate in a Hough parameter plane.
virtual bool diverge(float xReal, float yReal, float x0, float x1) const =0
returns true if Y diverges in given region.
virtual bool negativeDiverge(float xReal, float yReal, float x0, float x1) const =0
returns true if Y diverges in given region.
A class to represent a point in 2D.
Definition: Point2D.h:27
virtual TRGPoint2D convert(const TRGPoint2D &) const
converts Point2D(r, phi) in real plane into Point2D(r, phi) in Hough plane.
virtual ~TRGCDCHoughTransformation()
Destructor.
std::string name(void) const
returns name.
Abstract base class for different kinds of events.