CMS 3D CMS Logo

DDEcalEndcapTrap.h
Go to the documentation of this file.
1 #ifndef EcalAlgo_DDEcalEndcapTrap_h
2 #define EcalAlgo_DDEcalEndcapTrap_h
3 
4 #include <vector>
15 #include "CLHEP/Units/GlobalPhysicalConstants.h"
16 #include "CLHEP/Units/GlobalSystemOfUnits.h"
17 #include <CLHEP/Geometry/Point3D.h>
18 #include <CLHEP/Geometry/Plane3D.h>
19 #include <CLHEP/Geometry/Vector3D.h>
20 #include <CLHEP/Geometry/Transform3D.h>
21 #include <CLHEP/Vector/EulerAngles.h>
22 
23 // Define Endcap Supercrystal class
24 
26 
27  public:
28  DDEcalEndcapTrap( const int hand,
29  const double front ,
30  const double rear ,
31  const double length ) ;
32 
33  // virtual ~DDEcalEndcapTrap();
34 
35  void rotate( const DDRotationMatrix& rot ) ;
36  void rotate( const DDTranslation& frontCentre,
37  const DDTranslation& rearCentre ) ;
38  void translate( const DDTranslation& trans ) ;
39 
40  // void rotate();
41 
42  void rotateX( const double angle ) ;
43  void rotateY( const double angle ) ;
44  void translate();
45  void moveto( const DDTranslation& frontCentre,
46  const DDTranslation& rearCentre );
47  double elevationAngle( const DDTranslation& trans );
48  double polarAngle( const DDTranslation& trans);
49  double elevationAngle();
50  double polarAngle();
51  DDTranslation cornerPos( const int icorner );
52  void cornerPos( const int icorner ,
53  const DDTranslation& cc) ;
57  void calculateCorners();
58  void calculateCentres();
60  void print();
61 
62 
63  private:
64  DDEcalEndcapTrap(); // forbid default constructor
65 
66  double m_front;
67  double m_rear;
68  double m_length;
69  int m_hand;
72 
73  double m_centre[4];
74  double m_fcentre[4];
75  double m_rcentre[4];
76  double m_corners[25];
77 
78  int m_update;
79 };
80 
81 #endif
void rotate(const DDRotationMatrix &rot)
void rotateY(const double angle)
double m_corners[25]
DDRotationMatrix m_rotation
void calculateCorners()
DDTranslation cornerPos(const int icorner)
void moveto(const DDTranslation &frontCentre, const DDTranslation &rearCentre)
DDTranslation rcentrePos()
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DDTranslation
Definition: DDTranslation.h:7
DDTranslation fcentrePos()
DDTranslation m_translation
DDTranslation centrePos()
DDRotationMatrix rotation()
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11
void rotateX(const double angle)