CMS 3D CMS Logo

NavVolume.h
Go to the documentation of this file.
1 #ifndef NavVolume_H
2 #define NavVolume_H
3 
7 
10 
11 #include <vector>
12 
14 
15 
16 class NavSurface;
17 class Bounds;
19 
20 class NavVolume : public MagVolume {
21 public:
22 
24  DDSolidShape shape, const MagneticFieldProvider<float> * mfp) :
25  MagVolume(pos,rot,shape,mfp) {}
26 
27  typedef std::vector<SurfaceAndBounds> Container;
29 
30 
31  ~NavVolume() override {}
32 
33  virtual Container nextSurface( const LocalPoint& pos, const LocalVector& mom, double charge,
34  PropagationDirection propDir = alongMomentum) const = 0;
35 
37  virtual Container nextSurface( const LocalPoint& pos, const LocalVector& mom, double charge,
38  PropagationDirection propDir,
39  ConstReferenceCountingPointer<Surface> NotThisSurfaceP) const = 0;
40 
42  const Propagator& prop) const = 0;
43 
44  virtual bool isIron() const = 0;
45 
46 };
47 
48 #endif
49 
virtual bool isIron() const =0
DDSolidShape
Definition: DDSolidShapes.h:6
~NavVolume() override
Definition: NavVolume.h:31
PropagationDirection
NavVolume(const PositionType &pos, const RotationType &rot, DDSolidShape shape, const MagneticFieldProvider< float > *mfp)
Definition: NavVolume.h:23
std::vector< SurfaceAndBounds > Container
Definition: NavVolume.h:27
GloballyPositioned< float >::LocalPoint LocalPoint
Definition: MagVolume.h:18
GloballyPositioned< float >::LocalVector LocalVector
Definition: MagVolume.h:19
virtual VolumeCrossReturnType crossToNextVolume(const TrajectoryStateOnSurface &currentState, const Propagator &prop) const =0
virtual Container nextSurface(const LocalPoint &pos, const LocalVector &mom, double charge, PropagationDirection propDir=alongMomentum) const =0
Definition: Bounds.h:22