CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
NavCylinder.h
Go to the documentation of this file.
1 #ifndef NavCylinder_H
2 #define NavCylinder_H
3 
8 
9 #include <vector>
10 class Bounds;
11 
12 class NavCylinder GCC11_FINAL : public NavSurface {
13 public:
14 
15 /* NavCylinder( const PositionType& pos, const RotationType& rot, Scalar radius) : */
16 /* Surface( pos, rot), Cylinder( pos, rot, radius), NavSurface( pos, rot) {} */
17 
18  NavCylinder( const Cylinder* cylinder) : theSurfaceP(cylinder) {}
19 
20  // FIXME: restore covariant return type when gcc version upgraded
21  //virtual const Cylinder& surface() const {return *theSurfaceP;}
22  virtual const Surface& surface() const {return *theSurfaceP;}
23 
25  SurfaceOrientation::Side side) const {
26  return theImpl.nextVolume( point,side);
27  }
28 
30  propagate( const Propagator& prop, const TrajectoryStateOnSurface& startingState) const;
31 
33  propagateWithPath( const Propagator& prop, const TrajectoryStateOnSurface& startingState) const;
34 
35  virtual const Bounds* bounds( const NavVolume* vol) { return theImpl.bounds(vol);}
36 
37  virtual void addVolume( const NavVolume* vol, const Bounds* bounds,
39  theImpl.addVolume( vol, bounds, side);
40  }
41 
42  virtual std::pair<bool,double>
44 
45 private:
46 
49 
50 };
51 
52 #endif
virtual const Bounds * bounds(const NavVolume *vol)
Bounds corresponding to a NavVolume if present.
Definition: NavCylinder.h:35
virtual void addVolume(const NavVolume *vol, const Bounds *bounds, SurfaceOrientation::Side side)
NavVolumes are supposed to call this method to &quot;register&quot; with the NavSurface.
Definition: NavCylinder.h:37
virtual std::pair< bool, double > distanceAlongLine(const GlobalPoint &pos, const GlobalVector &dir) const =0
ConstReferenceCountingPointer< Cylinder > theSurfaceP
Definition: NavCylinder.h:47
NavCylinder(const Cylinder *cylinder)
Definition: NavCylinder.h:18
virtual TSOSwithPath propagateWithPath(const Propagator &prop, const TrajectoryStateOnSurface &startingState) const =0
hook for double dispatch to avoid propagation to generic surface.
virtual TrajectoryStateOnSurface propagate(const Propagator &prop, const TrajectoryStateOnSurface &startingState) const =0
hook for double dispatch to avoid propagation to generic surface.
Definition: Bounds.h:22
dbl *** dir
Definition: mlp_gen.cc:35
virtual const NavVolume * nextVolume(const NavSurface::LocalPoint &point, SurfaceOrientation::Side side) const
Definition: NavCylinder.h:24
std::pair< TrajectoryStateOnSurface, double > TSOSwithPath
Definition: NavSurface.h:26
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
Unlimited (trivial) bounds.
virtual const Surface & surface() const
Definition: NavCylinder.h:22