CMS 3D CMS Logo

DDTransform.h
Go to the documentation of this file.
1 #ifndef DDTransform_h
2 #define DDTransform_h
3 
7 
8 class DDRotation;
9 
10 std::ostream & operator<<(std::ostream &, const DDRotation &);
12 
16 DDRotation DDrot(const DDName & name,
18 
19 std::unique_ptr<DDRotation> DDrotPtr(const DDName & name,
21 
23 
25 DDRotation DDrot(const DDName & name,
26  double thetaX, double phiX,
27  double thetaY, double phiY,
28  double thetaZ, double phiZ);
29 
30 
32 
36  double thetaX, double phiX,
37  double thetaY, double phiY,
38  double thetaZ, double phiZ);
39 
40 
43 
44 
46 
51 
53 
56 DDRotationMatrix * DDcreateRotationMatrix(double thetaX, double phiX,
57  double thetaY, double phiY,
58  double thetaZ, double phiZ);
59 
61 
67 class DDRotation : public DDBase<DDName,DDRotationMatrix*>
68 {
69  friend DDRotation DDrot(const DDName &, DDRotationMatrix *);
70  friend std::unique_ptr<DDRotation> DDrotPtr(const DDName &, DDRotationMatrix *);
71  friend DDRotation DDrotReflect(const DDName&,double,double,double,double,double,double);
73 public:
75  DDRotation();
76 
78 
87  DDRotation(const DDName & name);
88 
91  const DDRotationMatrix * rotation() const { return &(rep()); }
92 
93  DDRotationMatrix * rotation() { return &(rep()); }
94 
95  DDRotationMatrix * matrix() { return rotation(); }
96 
97 private:
99 };
100 
101 #endif
Definition: DDBase.h:10
const DDRotationMatrix * rotation() const
Returns the read-only rotation-matrix.
Definition: DDTransform.h:91
const DDI::rep_traits< DDName, DDRotationMatrix * >::reference rep() const
Definition: DDBase.h:84
DDRotationMatrix * rotation()
Definition: DDTransform.h:93
const DDName & name() const
Definition: DDBase.h:78
std::ostream & operator<<(std::ostream &, const DDRotation &)
Definition: DDRotation.cc:21
DDName is used to identify DDD entities uniquely.
Definition: DDName.h:15
DDRotation DDanonymousRot(DDRotationMatrix *rot)
Defines a anonymous rotation or rotation-reflection matrix.
Definition: DDRotation.cc:193
Represents a uniquely identifyable rotation matrix.
Definition: DDTransform.h:67
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:137
friend DDRotation DDrotReflect(const DDName &, double, double, double, double, double, double)
Defines a rotation-reflection in the Geant3 way.
Definition: DDRotation.cc:137
DDRotation DDrot(const DDName &name, DDRotationMatrix *rot)
Definition of a uniquely identifiable rotation matrix named by DDName name.
Definition: DDRotation.cc:90
friend DDRotation DDrot(const DDName &, DDRotationMatrix *)
Definition of a uniquely identifiable rotation matrix named by DDName name.
Definition: DDRotation.cc:90
std::unique_ptr< DDRotation > DDrotPtr(const DDName &name, DDRotationMatrix *rot)
Definition: DDRotation.cc:96
friend std::unique_ptr< DDRotation > DDrotPtr(const DDName &, DDRotationMatrix *)
Definition: DDRotation.cc:96
friend DDRotation DDanonymousRot(DDRotationMatrix *)
Defines a anonymous rotation or rotation-reflection matrix.
Definition: DDRotation.cc:193
DDRotation()
refers to the unit-rotation (no rotation at all)
Definition: DDRotation.cc:44
DDRotationMatrix * matrix()
Definition: DDTransform.h:95
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
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:164