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 
13 class NavSurface;
14 class Bounds;
16 
17 class NavVolume : public MagVolume {
18 public:
19 
21  DDSolidShape shape, const MagneticFieldProvider<float> * mfp) :
22  MagVolume(pos,rot,shape,mfp) {}
23 
24  typedef std::vector<SurfaceAndBounds> Container;
26 
27 
28  virtual ~NavVolume() {}
29 
30  virtual Container nextSurface( const LocalPoint& pos, const LocalVector& mom, double charge,
31  PropagationDirection propDir = alongMomentum) const = 0;
32 
34  virtual Container nextSurface( const LocalPoint& pos, const LocalVector& mom, double charge,
35  PropagationDirection propDir,
36  ConstReferenceCountingPointer<Surface> NotThisSurfaceP) const = 0;
37 
39  const Propagator& prop) const = 0;
40 
41  virtual bool isIron() const = 0;
42 
43 };
44 
45 #endif
46 
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:20
std::vector< SurfaceAndBounds > Container
Definition: NavVolume.h:24
virtual ~NavVolume()
Definition: NavVolume.h:28
virtual bool isIron() const =0
Definition: Bounds.h:18