CMS 3D CMS Logo

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