CMS 3D CMS Logo

DDEcalEndcapTrap.h

Go to the documentation of this file.
00001 #ifndef EcalAlgo_DDEcalEndcapTrap_h
00002 #define EcalAlgo_DDEcalEndcapTrap_h
00003 
00004 #include <vector>
00005 #include "DetectorDescription/Base/interface/DDTypes.h"
00006 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00007 #include "DetectorDescription/Base/interface/DDTypes.h"
00008 #include "DetectorDescription/Base/interface/DDutils.h"
00009 #include "DetectorDescription/Core/interface/DDPosPart.h"
00010 #include "DetectorDescription/Core/interface/DDLogicalPart.h"
00011 #include "DetectorDescription/Core/interface/DDSolid.h"
00012 #include "DetectorDescription/Core/interface/DDMaterial.h"
00013 #include "DetectorDescription/Core/interface/DDName.h"
00014 #include "DetectorDescription/Core/interface/DDCurrentNamespace.h"
00015 #include "DetectorDescription/Core/interface/DDSplit.h"
00016 #include "CLHEP/Units/PhysicalConstants.h"
00017 #include "CLHEP/Units/SystemOfUnits.h"
00018 #include <CLHEP/Geometry/Point3D.h>
00019 #include <CLHEP/Geometry/Plane3D.h>
00020 #include <CLHEP/Geometry/Vector3D.h>
00021 #include <CLHEP/Geometry/Transform3D.h>
00022 #include <CLHEP/Vector/EulerAngles.h>
00023 
00024 // Define Endcap Supercrystal class
00025 
00026 class DDEcalEndcapTrap {
00027 
00028    public:
00029       DDEcalEndcapTrap( const int hand,
00030                         const double front , 
00031                         const double rear  ,
00032                         const double length  ) ;
00033 
00034       //  virtual ~DDEcalEndcapTrap();
00035 
00036       void rotate( const DDRotationMatrix rot ) ;
00037       void rotate( const DDTranslation frontCentre,
00038                    const DDTranslation rearCentre ) ;
00039       void translate( const DDTranslation trans ) ;
00040 
00041   //  void rotate();
00042 
00043       void rotateX( const double angle ) ;
00044       void rotateY( const double angle ) ;
00045       void translate();
00046       void moveto( const DDTranslation frontCentre,
00047                    const DDTranslation rearCentre  );
00048       double elevationAngle( const DDTranslation trans );
00049       double polarAngle(     const DDTranslation trans);
00050       double elevationAngle();
00051       double polarAngle();
00052       DDTranslation cornerPos( const int icorner );
00053       void cornerPos( const int           icorner ,
00054                       const DDTranslation cc)         ;
00055       DDTranslation centrePos();
00056       DDTranslation fcentrePos();
00057       DDTranslation rcentrePos();
00058       void calculateCorners();
00059       void calculateCentres();
00060       DDRotationMatrix rotation() {return m_rotation;}
00061       void print();
00062   
00063 
00064  private:
00065       DDEcalEndcapTrap(); // forbid default constructor
00066 
00067       double m_front;
00068       double m_rear;
00069       double m_length;
00070       int m_hand;
00071       DDRotationMatrix m_rotation;
00072       DDTranslation m_translation;
00073 
00074       double m_centre[4];
00075       double m_fcentre[4];
00076       double m_rcentre[4];
00077       double m_corners[25];
00078 
00079       int m_update;
00080 };
00081 
00082 #endif

Generated on Tue Jun 9 17:37:24 2009 for CMSSW by  doxygen 1.5.4