CMS 3D CMS Logo

DDLRotationAndReflection.h
Go to the documentation of this file.
1 #ifndef DDL_RotationAndReflection_H
2 #define DDL_RotationAndReflection_H
3 
4 #include <string>
5 
6 #include "DDXMLElement.h"
8 
9 class DDCompactView;
10 class DDLElementRegistry;
11 
13 
25 class DDLRotationAndReflection final : public DDXMLElement {
26 public:
28 
30  int isLeftHanded(const DD3Vector& x, const DD3Vector& y, const DD3Vector& z, const std::string& nmspace);
31 
32  void processElement(const std::string& name, const std::string& nmspace, DDCompactView& cpv) override;
33 
34 private:
35  DD3Vector makeX(const std::string& nmspace);
36  DD3Vector makeY(const std::string& nmspace);
37  DD3Vector makeZ(const std::string& nmspace);
38 };
39 
40 #endif
void processElement(const std::string &name, const std::string &nmspace, DDCompactView &cpv) override
Processing the element.
DDLRotationAndReflection handles RotationCMSIM and ReflectionRotation elements.
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:81
DD3Vector makeZ(const std::string &nmspace)
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DD3Vector
DD3Vector makeX(const std::string &nmspace)
int isLeftHanded(const DD3Vector &x, const DD3Vector &y, const DD3Vector &z, const std::string &nmspace)
returns 1 = left handed rotation matrix, 0 = right-handed, -1 = not orthonormal.
DDLRotationAndReflection(DDLElementRegistry *myreg)
This is a base class for processing XML elements in the DDD.
Definition: DDXMLElement.h:48
The main class for processing parsed elements.
DD3Vector makeY(const std::string &nmspace)