1 #ifndef RecoTracker_TkDetLayers_DiskSectorBounds_h
2 #define RecoTracker_TkDetLayers_DiskSectorBounds_h
12 #pragma GCC visibility push(hidden)
17 theRmin(rmin), theRmax(rmax), theZmin(zmin), theZmax(zmax), thePhiExt(phiExt) {
18 if ( theRmin > theRmax)
std::swap( theRmin, theRmax);
19 if ( theZmin > theZmax)
std::swap( theZmin, theZmax);
20 theOffset = theRmin + (theRmax-theRmin)/2. ;
23 virtual float length()
const {
return theRmax-theRmin*
cos(thePhiExt/2.);}
24 virtual float width()
const {
return 2*theRmax*
sin(thePhiExt/2.);}
25 virtual float thickness()
const {
return theZmax-theZmin;}
36 return new DiskSectorBounds(*
this);
52 #pragma GCC visibility pop
virtual float thickness() const
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
Sin< T >::type sin(const T &t)
float outerRadius() const
virtual float length() const
float innerRadius() const
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
Cos< T >::type cos(const T &t)
float phiExtension() const
virtual bool inside(const Local2DPoint &p, const LocalError &err) const
DiskSectorBounds(float rmin, float rmax, float zmin, float zmax, float phiExt)
virtual float width() const
virtual Bounds * clone() const
Unlimited (trivial) bounds.