CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
23  NavVolume( const PositionType& pos, const RotationType& rot,
24  DDSolidShape shape, const MagneticFieldProvider<float> * mfp) :
25  MagVolume(pos,rot,shape,mfp) {}
26 
27  typedef std::vector<SurfaceAndBounds> Container;
29 
30 
31  virtual ~NavVolume() {}
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 
DDSolidShape
Definition: DDSolidShapes.h:6
virtual Container nextSurface(const LocalPoint &pos, const LocalVector &mom, double charge, PropagationDirection propDir=alongMomentum) const =0
virtual VolumeCrossReturnType crossToNextVolume(const TrajectoryStateOnSurface &currentState, const Propagator &prop) const =0
PropagationDirection
double charge(const std::vector< uint8_t > &Ampls)
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
virtual ~NavVolume()
Definition: NavVolume.h:31
virtual bool isIron() const =0
Definition: Bounds.h:22