CMS 3D CMS Logo

DDTransform.h
Go to the documentation of this file.
1 #ifndef DETECTOR_DESCRIPTION_CORE_DDTRANSFORM_H
2 #define DETECTOR_DESCRIPTION_CORE_DDTRANSFORM_H
3 
7 #include <memory>
8 
9 class DDRotation;
10 
11 std::ostream &operator<<(std::ostream &, const DDRotation &);
12 
14 
18 DDRotation DDrot(const DDName &name, std::unique_ptr<DDRotationMatrix> rot);
19 
20 std::unique_ptr<DDRotation> DDrotPtr(const DDName &name, std::unique_ptr<DDRotationMatrix> rot);
21 
23 
25 DDRotation DDrot(const DDName &name, double thetaX, double phiX, double thetaY, double phiY, double thetaZ, double phiZ);
26 
28 
32  const DDName &name, double thetaX, double phiX, double thetaY, double phiY, double thetaZ, double phiZ);
33 
35 
37 
41 DDRotation DDanonymousRot(std::unique_ptr<DDRotationMatrix> rot);
42 
44 
47 std::unique_ptr<DDRotationMatrix> DDcreateRotationMatrix(
48  double thetaX, double phiX, double thetaY, double phiY, double thetaZ, double phiZ);
49 
51 
57 class DDRotation : public DDBase<DDName, std::unique_ptr<DDRotationMatrix>> {
58  friend DDRotation DDrot(const DDName &, std::unique_ptr<DDRotationMatrix>);
59  friend std::unique_ptr<DDRotation> DDrotPtr(const DDName &, std::unique_ptr<DDRotationMatrix>);
60  friend DDRotation DDrotReflect(const DDName &, double, double, double, double, double, double);
61  friend DDRotation DDanonymousRot(std::unique_ptr<DDRotationMatrix>);
62 
63 public:
65  DDRotation();
66 
68 
77  DDRotation(const DDName &name);
78 
79  DDRotation(const DDName &, std::unique_ptr<DDRotationMatrix>);
81  const DDRotationMatrix &rotation() const { return rep(); }
82 
83  DDRotationMatrix &rotation() { return rep(); }
84 
85  DDRotationMatrix &matrix() { return rotation(); }
86 
87 private:
88  DDRotation(std::unique_ptr<DDRotationMatrix>);
89 };
90 
91 #endif
DDBase.h
DDRotation::rotation
DDRotationMatrix & rotation()
Definition: DDTransform.h:83
DDrot
DDRotation DDrot(const DDName &name, std::unique_ptr< DDRotationMatrix > rot)
Definition of a uniquely identifiable rotation matrix named by DDName name.
Definition: DDRotation.cc:67
DDName
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:17
DDRotation::matrix
DDRotationMatrix & matrix()
Definition: DDTransform.h:85
DDrotPtr
std::unique_ptr< DDRotation > DDrotPtr(const DDName &name, std::unique_ptr< DDRotationMatrix > rot)
Definition: DDRotation.cc:72
DDRotation::DDrotPtr
friend std::unique_ptr< DDRotation > DDrotPtr(const DDName &, std::unique_ptr< DDRotationMatrix >)
Definition: DDRotation.cc:72
DDRotation::DDrot
friend DDRotation DDrot(const DDName &, std::unique_ptr< DDRotationMatrix >)
Definition of a uniquely identifiable rotation matrix named by DDName name.
Definition: DDRotation.cc:67
DDBase< DDName, std::unique_ptr< DDRotationMatrix > >::name
const DDName & name() const
Definition: DDBase.h:59
DDBase< DDName, std::unique_ptr< DDRotationMatrix > >::rep
const DDI::rep_traits< DDName, std::unique_ptr< DDRotationMatrix > >::reference rep() const
Definition: DDBase.h:65
DDRotation::DDanonymousRot
friend DDRotation DDanonymousRot(std::unique_ptr< DDRotationMatrix >)
Defines a anonymous rotation or rotation-reflection matrix.
Definition: DDRotation.cc:143
DDRotation::rotation
const DDRotationMatrix & rotation() const
Returns the read-only rotation-matrix.
Definition: DDTransform.h:81
DOFs::thetaY
Definition: AlignPCLThresholdsWriter.cc:37
DDRotation::DDRotation
DDRotation()
refers to the unit-rotation (no rotation at all)
Definition: DDRotation.cc:40
DOFs::thetaX
Definition: AlignPCLThresholdsWriter.cc:37
DDRotationMatrix
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
Definition: DDRotationMatrix.h:8
DDRotationMatrix.h
DDRotation::DDrotReflect
friend DDRotation DDrotReflect(const DDName &, double, double, double, double, double, double)
Defines a rotation-reflection in the Geant3 way.
Definition: DDRotation.cc:101
DOFs::thetaZ
Definition: AlignPCLThresholdsWriter.cc:37
DDName.h
DDrotReflect
DDRotation DDrotReflect(const DDName &name, double thetaX, double phiX, double thetaY, double phiY, double thetaZ, double phiZ)
Defines a rotation-reflection in the Geant3 way.
Definition: DDRotation.cc:101
DDanonymousRot
DDRotation DDanonymousRot(std::unique_ptr< DDRotationMatrix > rot)
Defines a anonymous rotation or rotation-reflection matrix.
Definition: DDRotation.cc:143
makeMuonMisalignmentScenario.rot
rot
Definition: makeMuonMisalignmentScenario.py:322
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
DDRotation
Represents a uniquely identifyable rotation matrix.
Definition: DDTransform.h:57
DDcreateRotationMatrix
std::unique_ptr< DDRotationMatrix > DDcreateRotationMatrix(double thetaX, double phiX, double thetaY, double phiY, double thetaZ, double phiZ)
create a new DDRotationMatrix in the GEANT3 style.
Definition: DDRotation.cc:120
DDBase
Definition: DDBase.h:10
operator<<
std::ostream & operator<<(std::ostream &, const DDRotation &)
Definition: DDRotation.cc:21