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 ddpseudotrap. This is not a supported
51  // shape in DD4hep; it is handled here to cope with legacy geometries.
52  void buildPseudoTrap(double x1, double x2, double y1, double y2, double halfZ, double radius, bool atMinusZ);
53  // Build the surfaces for a ddtrunctubs shape
54  void buildTruncTubs();
55 
56  // Shape at initialization
59  // "solid" name is for backwards compatibility. Can be changed to "fview" after DD4hep migration.
60  };
61 } // namespace magneticfield
62 
63 #endif
DDSolidShape
DDSolidShape
Definition: DDSolidShapes.h:6
magneticfield::volumeHandle::buildBox
void buildBox()
magneticfield::volumeHandle::theShape
const DDSolidShape theShape
Definition: DD4hep_volumeHandle.h:57
testProducerWithPsetDescEmpty_cfi.x2
x2
Definition: testProducerWithPsetDescEmpty_cfi.py:28
magneticfield::volumeHandle::shape
DDSolidShape shape() const override
Shape of the solid.
Definition: DD4hep_volumeHandle.h:33
magneticfield::volumeHandle
Definition: DD4hep_volumeHandle.h:23
magneticfield
Definition: MagFieldConfig.h:22
cms::DDFilteredView
Definition: DDFilteredView.h:65
findQualityFiles.v
v
Definition: findQualityFiles.py:179
magneticfield::volumeHandle::buildTruncTubs
void buildTruncTubs()
testProducerWithPsetDescEmpty_cfi.x1
x1
Definition: testProducerWithPsetDescEmpty_cfi.py:33
VolumeSide.h
testProducerWithPsetDescEmpty_cfi.y1
y1
Definition: testProducerWithPsetDescEmpty_cfi.py:29
Surface.h
DDFilteredView.h
magneticfield::volumeHandle::operator=
volumeHandle operator=(const volumeHandle &v)=delete
testProducerWithPsetDescEmpty_cfi.y2
y2
Definition: testProducerWithPsetDescEmpty_cfi.py:30
magneticfield::volumeHandle::volumeHandle
volumeHandle(const cms::DDFilteredView &fv, bool expand2Pi=false, bool debugVal=false)
Definition: DD4hep_volumeHandle.cc:27
magneticfield::volumeHandle::referencePlane
void referencePlane(const cms::DDFilteredView &fv)
Definition: DD4hep_volumeHandle.cc:92
magneticfield::BaseVolumeHandle
Definition: BaseVolumeHandle.h:22
BaseVolumeHandle.h
magneticfield::volumeHandle::buildCons
void buildCons()
CosmicsPD_Skims.radius
radius
Definition: CosmicsPD_Skims.py:135
magneticfield::volumeHandle::solid
const cms::DDFilteredView & solid
Definition: DD4hep_volumeHandle.h:58
magneticfield::ShapeType
const typedef char * ShapeType
Definition: DD4hep_volumeHandle.h:21
magneticfield::volumeHandle::buildTrap
void buildTrap()
magneticfield::volumeHandle::buildPseudoTrap
void buildPseudoTrap(double x1, double x2, double y1, double y2, double halfZ, double radius, bool atMinusZ)
magneticfield::volumeHandle::buildTubs
void buildTubs()
magneticfield::volumeHandle::sides
std::vector< VolumeSide > sides() const override
The surfaces and they orientation, as required to build a MagVolume.
Definition: DD4hep_volumeHandle.cc:168