CMS 3D CMS Logo

NavCone.h
Go to the documentation of this file.
1 #ifndef NavCone_H
2 #define NavCone_H
3 
8 
9 #include <vector>
10 class Bounds;
11 
12 class NavCone final : public NavSurface {
13 public:
14 
15 /* NavCone( const PositionType& pos, const RotationType& rot, */
16 /* const PositionType& vert, Geom::Theta<Scalar> angle) : */
17 /* Surface( pos, rot), Cone( pos, rot, vert, angle), NavSurface( pos, rot) {} */
18 
19  NavCone( const Cone* cone) : theSurfaceP(cone) {}
20 
21  // FIXME: restore covariant return type when gcc version upgraded
22  //virtual const Cone& surface() const {return *theSurfaceP;}
23  virtual const Surface& surface() const {return *theSurfaceP;}
24 
26  SurfaceOrientation::Side side) const {
27  return theImpl.nextVolume( point,side);
28  }
29 
31  propagate( const Propagator& prop, const TrajectoryStateOnSurface& startingState) const;
32 
34  propagateWithPath( const Propagator& prop, const TrajectoryStateOnSurface& startingState) const;
35 
36  virtual const Bounds* bounds( const NavVolume* vol) { return theImpl.bounds(vol);}
37 
38  virtual void addVolume( const NavVolume* vol, const Bounds* bounds,
40  theImpl.addVolume( vol, bounds, side);
41  }
42 
43  virtual std::pair<bool,double>
45 
46 private:
47 
50 
51 };
52 
53 #endif
virtual TrajectoryStateOnSurface propagate(const Propagator &prop, const TrajectoryStateOnSurface &startingState) const
hook for double dispatch to avoid propagation to generic surface.
Definition: NavCone.cc:7
Definition: Cone.h:17
virtual const NavVolume * nextVolume(const NavSurface::LocalPoint &point, SurfaceOrientation::Side side) const
Definition: NavCone.h:25
LinearSearchNavSurfaceImpl theImpl
Definition: NavCone.h:49
virtual void addVolume(const NavVolume *vol, const Bounds *bounds, SurfaceOrientation::Side side)
NavVolumes are supposed to call this method to "register" with the NavSurface.
Definition: NavCone.h:38
const Bounds * bounds(const NavVolume *vol)
virtual const Surface & surface() const
Access to actual surface.
Definition: NavCone.h:23
NavCone(const Cone *cone)
Definition: NavCone.h:19
virtual std::pair< bool, double > distanceAlongLine(const NavSurface::GlobalPoint &pos, const NavSurface::GlobalVector &dir) const
Definition: NavCone.cc:27
const NavVolume * nextVolume(const NavSurface::LocalPoint &point, SurfaceOrientation::Side side) const
virtual const Bounds * bounds(const NavVolume *vol)
Bounds corresponding to a NavVolume if present.
Definition: NavCone.h:36
Definition: Bounds.h:22
dbl *** dir
Definition: mlp_gen.cc:35
std::pair< TrajectoryStateOnSurface, double > TSOSwithPath
Definition: NavSurface.h:26
virtual NavSurface::TSOSwithPath propagateWithPath(const Propagator &prop, const TrajectoryStateOnSurface &startingState) const
hook for double dispatch to avoid propagation to generic surface.
Definition: NavCone.cc:14
*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
void addVolume(const NavVolume *vol, const Bounds *bounds, SurfaceOrientation::Side side)
ConstReferenceCountingPointer< Cone > theSurfaceP
Definition: NavCone.h:48