CMS 3D CMS Logo

volumeHandle.h
Go to the documentation of this file.
1 #ifndef volumeHandle_H
2 #define volumeHandle_H
3 
13 #include "BaseVolumeHandle.h"
14 #include "MagGeoBuilderFromDDD.h"
15 
19 
20 class DDExpandedView;
21 class MagVolume6Faces;
22 
24 public:
25  volumeHandle(const DDExpandedView& 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  DDSolidShape shape() const override { return solid.shape(); }
33 
35  std::vector<VolumeSide> sides() const override;
36 
37 private:
38  // initialise the refPlane
39  void referencePlane(const DDExpandedView& fv);
40 
41  // Build the surfaces for a box
42  void buildBox(double halfX, double halfY, double halfZ);
43  // Build the surfaces for a trapezoid
44  void buildTrap(double x1,
45  double x2,
46  double x3,
47  double x4,
48  double y1,
49  double y2,
50  double theta,
51  double phi,
52  double halfZ,
53  double alpha1,
54  double alpha2);
55  // Build the surfaces for a ddtubs shape
56  void buildTubs(double zhalf, double rIn, double rOut, double startPhi, double deltaPhi);
57  // Build the surfaces for a ddcons shape
58  void buildCons(double zhalf,
59  double rInMinusZ,
60  double rOutMinusZ,
61  double rInPlusZ,
62  double rOutPlusZ,
63  double startPhi,
64  double deltaPhi);
65  // Build the surfaces for a ddpseudotrap shape
66  void buildPseudoTrap(double x1, double x2, double y1, double y2, double halfZ, double radius, bool atMinusZ);
67  // Build the surfaces for a ddtrunctubs shape
68  void buildTruncTubs(double zhalf,
69  double rIn,
70  double rOut,
71  double startPhi,
72  double deltaPhi,
73  double cutAtStart,
74  double cutAtDelta,
75  bool cutInside);
76 
77  // the DDSolid.
79 };
80 
81 #endif
MagGeoBuilderFromDDD::volumeHandle::shape
DDSolidShape shape() const override
Shape of the solid.
Definition: volumeHandle.h:32
DDSolidShape
DDSolidShape
Definition: DDSolidShapes.h:6
MagGeoBuilderFromDDD::volumeHandle::buildTruncTubs
void buildTruncTubs(double zhalf, double rIn, double rOut, double startPhi, double deltaPhi, double cutAtStart, double cutAtDelta, bool cutInside)
MagGeoBuilderFromDDD::volumeHandle::sides
std::vector< VolumeSide > sides() const override
The surfaces and they orientation, as required to build a MagVolume.
Definition: volumeHandle.cc:275
testProducerWithPsetDescEmpty_cfi.x2
x2
Definition: testProducerWithPsetDescEmpty_cfi.py:28
MagGeoBuilderFromDDD::volumeHandle::solid
DDSolid solid
Definition: volumeHandle.h:78
findQualityFiles.v
v
Definition: findQualityFiles.py:179
MagGeoBuilderFromDDD::volumeHandle::referencePlane
void referencePlane(const DDExpandedView &fv)
Definition: volumeHandle.cc:202
MagGeoBuilderFromDDD::volumeHandle::volumeHandle
volumeHandle(const DDExpandedView &fv, bool expand2Pi=false, bool debugVal=false)
Definition: volumeHandle.cc:41
DDSolid::shape
DDSolidShape shape(void) const
The type of the solid.
Definition: DDSolid.cc:119
testProducerWithPsetDescEmpty_cfi.x1
x1
Definition: testProducerWithPsetDescEmpty_cfi.py:33
VolumeSide.h
testProducerWithPsetDescEmpty_cfi.y1
y1
Definition: testProducerWithPsetDescEmpty_cfi.py:29
Surface.h
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
MagGeoBuilderFromDDD::volumeHandle
Definition: volumeHandle.h:23
DDSolid.h
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
MagVolume6Faces
Definition: MagVolume6Faces.h:23
DDExpandedView
Provides an exploded view of the detector (tree-view)
Definition: DDExpandedView.h:41
testProducerWithPsetDescEmpty_cfi.y2
y2
Definition: testProducerWithPsetDescEmpty_cfi.py:30
MagGeoBuilderFromDDD::volumeHandle::buildBox
void buildBox(double halfX, double halfY, double halfZ)
MagGeoBuilderFromDDD::volumeHandle::buildPseudoTrap
void buildPseudoTrap(double x1, double x2, double y1, double y2, double halfZ, double radius, bool atMinusZ)
MagGeoBuilderFromDDD::volumeHandle::buildCons
void buildCons(double zhalf, double rInMinusZ, double rOutMinusZ, double rInPlusZ, double rOutPlusZ, double startPhi, double deltaPhi)
MagGeoBuilderFromDDD.h
magneticfield::BaseVolumeHandle
Definition: BaseVolumeHandle.h:22
BaseVolumeHandle.h
MagGeoBuilderFromDDD::volumeHandle::operator=
volumeHandle operator=(const volumeHandle &v)=delete
DDAxes::phi
MagGeoBuilderFromDDD::volumeHandle::buildTubs
void buildTubs(double zhalf, double rIn, double rOut, double startPhi, double deltaPhi)
MagGeoBuilderFromDDD::volumeHandle::buildTrap
void buildTrap(double x1, double x2, double x3, double x4, double y1, double y2, double theta, double phi, double halfZ, double alpha1, double alpha2)
CosmicsPD_Skims.radius
radius
Definition: CosmicsPD_Skims.py:135
DDSolid
A DDSolid represents the shape of a part.
Definition: DDSolid.h:39