CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
TrapezoidalPlaneBounds.h
Go to the documentation of this file.
1 #ifndef Geom_TrapezoidalPlaneBounds_H
2 #define Geom_TrapezoidalPlaneBounds_H
3 
6 #include <array>
7 
15 class TrapezoidalPlaneBounds /* final */ : public Bounds {
16 public:
24  TrapezoidalPlaneBounds(float be, float te, float a, float t);
25 
27  float length() const override { return 2 * hapothem; }
28 
30  float width() const override { return 2 * std::max(hbotedge, htopedge); }
31 
33  float thickness() const override { return 2 * hthickness; }
34 
37  float widthAtHalfLength() const override { return hbotedge + htopedge; }
38 
39  virtual int yAxisOrientation() const;
40 
41  using Bounds::inside;
42 
43  bool inside(const Local2DPoint& p) const override;
44 
45  bool inside(const Local3DPoint& p) const override;
46 
47  bool inside(const Local3DPoint& p, const LocalError& err, float scale) const override;
48 
49  bool inside(const Local2DPoint& p, const LocalError& err, float scale) const override;
50 
51  float significanceInside(const Local3DPoint&, const LocalError&) const override;
52 
57  virtual const std::array<const float, 4> parameters() const;
58 
59  Bounds* clone() const override;
60 
61 private:
62  // persistent part
63  float hbotedge;
64  float htopedge;
65  float hapothem;
66  float hthickness;
67 
68  // transient part
69  float offset;
70  float tan_a;
71 };
72 
73 #endif // Geom_TrapezoidalPlaneBounds_H
float width() const override
virtual const std::array< const float, 4 > parameters() const
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
float widthAtHalfLength() const override
TrapezoidalPlaneBounds(float be, float te, float a, float t)
float length() const override
float significanceInside(const Local3DPoint &, const LocalError &) const override
bool inside(const Local2DPoint &p) const override
Bounds * clone() const override
double a
Definition: hdecay.h:119
float thickness() const override
Definition: Bounds.h:18
virtual int yAxisOrientation() const