Belle II Software  release-08-01-10
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 
22 namespace 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.
TRGCDCHoughTransformation(const std::string &name)
Contructor.
Abstract base class for different kinds of events.