CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TruncatedPyramid.h
Go to the documentation of this file.
1 #ifndef TruncatedPyramid_h
2 #define TruncatedPyramid_h
3 
5 #include <CLHEP/Geometry/Point3D.h>
6 #include <CLHEP/Geometry/Plane3D.h>
7 #include <CLHEP/Geometry/Vector3D.h>
8 #include <CLHEP/Geometry/Transform3D.h>
9 #include <vector>
10 
20 {
21 public:
22 
27 
28  TruncatedPyramid( void );
29 
30  TruncatedPyramid( const TruncatedPyramid& tr ) ;
31 
33 
34  TruncatedPyramid( const CornersMgr* cMgr ,
35  const GlobalPoint& fCtr ,
36  const GlobalPoint& bCtr ,
37  const GlobalPoint& cor1 ,
38  const CCGFloat* parV ) ;
39 
40  TruncatedPyramid( const CornersVec& corn ,
41  const CCGFloat* par ) ;
42 
43  virtual ~TruncatedPyramid() ;
44 
45  const GlobalPoint getPosition( CCGFloat depth ) const ;
46 
47  virtual const CornersVec& getCorners() const ;
48 
49  // Return thetaAxis polar angle of axis of the crystal
50  CCGFloat getThetaAxis() const ;
51 
52  // Return phiAxis azimuthal angle of axis of the crystal
53  CCGFloat getPhiAxis() const ;
54 
55  const GlobalVector& axis() const ;
56 
57  // for geometry creation in other classes
58  static void createCorners( const std::vector<CCGFloat>& pv ,
59  const Tr3D& tr ,
60  std::vector<GlobalPoint>& co ) ;
61 
62  virtual void vocalCorners( Pt3DVec& vec ,
63  const CCGFloat* pv ,
64  Pt3D& ref ) const ;
65 
66  static void localCorners( Pt3DVec& vec ,
67  const CCGFloat* pv ,
68  Pt3D& ref ) ;
69 
70  static void localCornersReflection( Pt3DVec& vec ,
71  const CCGFloat* pv ,
72  Pt3D& ref ) ;
73 
74  static void localCornersSwap( Pt3DVec& vec ,
75  const CCGFloat* pv ,
76  Pt3D& ref ) ;
77 
78  virtual void getTransform( Tr3D& tr, Pt3DVec* lptr ) const ;
79 
80 private:
81  GlobalVector makeAxis( void );
82 
83  const GlobalPoint backCtr( void ) const;
86 };
87 
88 std::ostream& operator<<( std::ostream& s, const TruncatedPyramid& cell ) ;
89 
90 #endif
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
CaloCellGeometry::Tr3D Tr3D
virtual void getTransform(Tr3D &tr, Pt3DVec *lptr) const
--------— only needed by specific utility; overloaded when needed -—
CaloCellGeometry::Pt3D Pt3D
HepGeom::Transform3D Tr3D
std::vector< Pt3D > Pt3DVec
CCGFloat getPhiAxis() const
const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:187
virtual ~TruncatedPyramid()
static void localCornersSwap(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
virtual void vocalCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) const
CaloCellGeometry::Pt3DVec Pt3DVec
CCGFloat getThetaAxis() const
TruncatedPyramid & operator=(const TruncatedPyramid &tr)
GlobalVector makeAxis(void)
CaloCellGeometry::CCGFloat CCGFloat
virtual const CornersVec & getCorners() const
Returns the corner points of this cell&#39;s volume.
HepGeom::Point3D< CCGFloat > Pt3D
Definition: EZMgrFL.h:8
A base class to handle the particular shape of Ecal Xtals. Taken from ORCA Calorimetry Code...
GlobalVector m_axis
const GlobalVector & axis() const
static void createCorners(const std::vector< CCGFloat > &pv, const Tr3D &tr, std::vector< GlobalPoint > &co)
const GlobalPoint backCtr(void) const
static void localCornersReflection(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)