CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CaloCellGeometry.h
Go to the documentation of this file.
1 #ifndef GEOMETRY_CALOGEOMETRY_CALOCELLGEOMETRY_H
2 #define GEOMETRY_CALOGEOMETRY_CALOCELLGEOMETRY_H 1
3 
7 #include <CLHEP/Geometry/Point3D.h>
8 #include <CLHEP/Geometry/Transform3D.h>
9 #include <vector>
10 #include <string>
11 
49 {
50 public:
51 
52  typedef float CCGFloat ;
53  typedef HepGeom::Transform3D Tr3D ;
54  typedef HepGeom::Point3D<CCGFloat> Pt3D ;
55  typedef std::vector<Pt3D> Pt3DVec ;
56 
59 
61  typedef std::vector<ParVec> ParVecVec ;
63 
64  enum CornersSize { k_cornerSize = 8 };
65 
67 
68  virtual ~CaloCellGeometry() ;
69 
71  virtual const CornersVec& getCorners() const = 0 ;
72 
74  const GlobalPoint& getPosition() const ;
75 
77  bool inside( const GlobalPoint & point ) const ;
78 
79  bool emptyCorners() const ;
80 
81  const CCGFloat* param() const ;
82 
83  static const CCGFloat* checkParmPtr( const std::vector<CCGFloat>& vd ,
84  ParVecVec& pvv ) ;
85 
86  static const CCGFloat* getParmPtr( const std::vector<CCGFloat>& vd ,
87  ParMgr* mgr ,
88  ParVecVec& pvv ) ;
89 
90 
92  virtual void getTransform( Tr3D& tr, Pt3DVec* lptr ) const ;
93  //------------------------------------------------------------------------
94 
95  virtual void vocalCorners( Pt3DVec& vec ,
96  const CCGFloat* pv ,
97  Pt3D& ref ) const = 0 ;
98 
99 protected:
100 
102  const CornersMgr* mgr,
103  const CCGFloat* par ) ;
104 
105  CaloCellGeometry( const CornersVec& cv,
106  const CCGFloat* par ) ;
107 
108  CornersVec& setCorners() const ;
109 
110  CaloCellGeometry( void );
112  CaloCellGeometry( const CaloCellGeometry& cell ) ;
113 
114 private:
117  const CCGFloat* m_parms ;
118 };
119 
120 std::ostream& operator<<( std::ostream& s, const CaloCellGeometry& cell ) ;
121 
122 #endif
EZArrayFL< GlobalPoint > CornersVec
bool emptyCorners() const
EZArrayFL< CCGFloat > ParVec
std::vector< ParVec > ParVecVec
const CCGFloat * m_parms
HepGeom::Transform3D Tr3D
std::vector< Pt3D > Pt3DVec
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
EZMgrFL< GlobalPoint > CornersMgr
const CCGFloat * param() const
MgrType::const_reference const_reference
Definition: EZArrayFL.h:29
std::vector< DeviationSensor2D * > vd
virtual void getTransform(Tr3D &tr, Pt3DVec *lptr) const
--------— only needed by specific utility; overloaded when needed -—
virtual ~CaloCellGeometry()
static const CCGFloat * getParmPtr(const std::vector< CCGFloat > &vd, ParMgr *mgr, ParVecVec &pvv)
GlobalPoint m_refPoint
static const CCGFloat k_ScaleFromDDDtoGeant
virtual void vocalCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) const =0
bool inside(const GlobalPoint &point) const
Returns true if the specified point is inside this cell.
HepGeom::Point3D< CCGFloat > Pt3D
Definition: EZMgrFL.h:8
CornersVec & setCorners() const
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
virtual const CornersVec & getCorners() const =0
Returns the corner points of this cell&#39;s volume.
EZMgrFL< CCGFloat > ParMgr
static const CCGFloat * checkParmPtr(const std::vector< CCGFloat > &vd, ParVecVec &pvv)
CaloCellGeometry & operator=(const CaloCellGeometry &cell)