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 
26 {
27  public:
28 
30 
32  int isLeftHanded( const DD3Vector& x, const DD3Vector& y, const DD3Vector& z, const std::string & nmspace );
33 
34  void processElement( const std::string& name, const std::string& nmspace, DDCompactView& cpv ) override;
35 
36 private:
37 
38  DD3Vector makeX( const std::string& nmspace );
39  DD3Vector makeY( const std::string& nmspace );
40  DD3Vector makeZ( const std::string& nmspace );
41 };
42 
43 #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:83
DD3Vector makeZ(const std::string &nmspace)
DD3Vector makeX(const std::string &nmspace)
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DD3Vector
A DD Translation is currently implemented with Root Vector3D.
Definition: DDTranslation.h:6
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)