CMS 3D CMS Logo

DD4hep_volumeHandle.h
Go to the documentation of this file.
1 #ifndef MagneticField_GeomBuilder_DD4hep_volumeHandle_h
2 #define MagneticField_GeomBuilder_DD4hep_volumeHandle_h
3 
13 #include "BaseVolumeHandle.h"
14 
18 
19 namespace magneticfield {
20 
21  typedef const char* ShapeType;
22 
23  class volumeHandle : public BaseVolumeHandle {
24  public:
25  volumeHandle(const cms::DDFilteredView& fv, bool expand2Pi = false, bool debugVal = false);
26 
27  // Disallow Default/copy ctor & assignment op.
28  // (we want to handle only pointers!!!)
29  volumeHandle(const volumeHandle& v) = delete;
30  volumeHandle operator=(const volumeHandle& v) = delete;
31 
32  // Shape at initialization
33  DDSolidShape shape() const override { return (theShape); }
34 
36  std::vector<VolumeSide> sides() const override;
37 
38  private:
39  // initialise the refPlane
40  void referencePlane(const cms::DDFilteredView& fv);
41 
42  // Build the surfaces for a box
43  void buildBox();
44  // Build the surfaces for a trapezoid
45  void buildTrap();
46  // Build the surfaces for a ddtubs shape
47  void buildTubs();
48  // Build the surfaces for a ddcons shape
49  void buildCons();
50  // Build the surfaces for a ddtrunctubs shape
51  void buildTruncTubs();
52 
53  // Shape at initialization
56  // "solid" name is for backwards compatibility. Can be changed to "fview" after DD4hep migration.
57  };
58 } // namespace magneticfield
59 
60 #endif
const char * ShapeType
volumeHandle operator=(const volumeHandle &v)=delete
DDSolidShape shape() const override
Shape of the solid.
void referencePlane(const cms::DDFilteredView &fv)
DDSolidShape
Definition: DDSolidShapes.h:6
const cms::DDFilteredView & solid
volumeHandle(const cms::DDFilteredView &fv, bool expand2Pi=false, bool debugVal=false)
std::vector< VolumeSide > sides() const override
The surfaces and they orientation, as required to build a MagVolume.