CMS 3D CMS Logo

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
Point2DBase< float, LocalTag >
TrapezoidalPlaneBounds::tan_a
float tan_a
Definition: TrapezoidalPlaneBounds.h:70
L1EGammaCrystalsEmulatorProducer_cfi.scale
scale
Definition: L1EGammaCrystalsEmulatorProducer_cfi.py:10
TrapezoidalPlaneBounds::thickness
float thickness() const override
Definition: TrapezoidalPlaneBounds.h:33
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
TrapezoidalPlaneBounds::TrapezoidalPlaneBounds
TrapezoidalPlaneBounds(float be, float te, float a, float t)
Definition: TrapezoidalPlaneBounds.cc:7
TrapezoidalPlaneBounds::significanceInside
float significanceInside(const Local3DPoint &, const LocalError &) const override
Definition: TrapezoidalPlaneBounds.cc:42
TrapezoidalPlaneBounds::hbotedge
float hbotedge
Definition: TrapezoidalPlaneBounds.h:63
TrapezoidalPlaneBounds::offset
float offset
Definition: TrapezoidalPlaneBounds.h:69
Bounds
Definition: Bounds.h:18
TrapezoidalPlaneBounds::yAxisOrientation
virtual int yAxisOrientation() const
Definition: TrapezoidalPlaneBounds.cc:16
TrapezoidalPlaneBounds::widthAtHalfLength
float widthAtHalfLength() const override
Definition: TrapezoidalPlaneBounds.h:37
TrapezoidalPlaneBounds::width
float width() const override
Definition: TrapezoidalPlaneBounds.h:30
Bounds::inside
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
TrapezoidalPlaneBounds::parameters
virtual const std::array< const float, 4 > parameters() const
Definition: TrapezoidalPlaneBounds.cc:49
Bounds.h
Point3DBase< float, LocalTag >
a
double a
Definition: hdecay.h:119
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
LocalError
Definition: LocalError.h:12
TrapezoidalPlaneBounds::htopedge
float htopedge
Definition: TrapezoidalPlaneBounds.h:64
submitPVResolutionJobs.err
err
Definition: submitPVResolutionJobs.py:85
TrapezoidalPlaneBounds::hthickness
float hthickness
Definition: TrapezoidalPlaneBounds.h:66
TrapezoidalPlaneBounds
Definition: TrapezoidalPlaneBounds.h:15
TrapezoidalPlaneBounds::length
float length() const override
Definition: TrapezoidalPlaneBounds.h:27
TrapezoidalPlaneBounds::clone
Bounds * clone() const override
Definition: TrapezoidalPlaneBounds.cc:47
LocalPoint.h
cms::cuda::be
int be
Definition: HistoContainer.h:126
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
TrapezoidalPlaneBounds::hapothem
float hapothem
Definition: TrapezoidalPlaneBounds.h:65
TrapezoidalPlaneBounds::inside
bool inside(const Local2DPoint &p) const override
Definition: TrapezoidalPlaneBounds.cc:18