CMS 3D CMS Logo

IdealObliquePrism.h
Go to the documentation of this file.
1 #ifndef GEOMETRY_CALOGEOMETRY_IDEALOBLIQUEPRISM_H
2 #define GEOMETRY_CALOGEOMETRY_IDEALOBLIQUEPRISM_H 1
3 
5 
29 {
30 public:
31 
35 
36  static constexpr uint32_t k_dEta = 0;//Eta-width
37  static constexpr uint32_t k_dPhi = 1;//Phi-width
38  static constexpr uint32_t k_dZ = 2;//Signed thickness
39  static constexpr uint32_t k_Eta = 3;//Eta of the reference point
40  static constexpr uint32_t k_Z = 4;//Z of the reference point
41 
43  IdealObliquePrism( const IdealObliquePrism& idop ) ;
44 
46 
47  IdealObliquePrism( const GlobalPoint& faceCenter,
48  CornersMgr* mgr ,
49  const CCGFloat* parm ) ;
50 
51  ~IdealObliquePrism() override ;
52 
53  CCGFloat dEta() const ;
54  CCGFloat dPhi() const ;
55  CCGFloat dz() const ;
56  CCGFloat eta() const ;
57  CCGFloat z() const ;
58 
59  static void localCorners( Pt3DVec& vec ,
60  const CCGFloat* pv ,
61  Pt3D& ref ) ;
62 
63  void vocalCorners( Pt3DVec& vec ,
64  const CCGFloat* pv ,
65  Pt3D& ref ) const override;
66 
67 private:
68  void initCorners(CornersVec&) override;
69 
70  static GlobalPoint etaPhiPerp( float eta, float phi, float perp ) ;
71  static GlobalPoint etaPhiZ(float eta, float phi, float z) ;
72 };
73 
74 std::ostream& operator<<( std::ostream& s , const IdealObliquePrism& cell ) ;
75 
76 #endif
static GlobalPoint etaPhiZ(float eta, float phi, float z)
CCGFloat dEta() const
static constexpr uint32_t k_Eta
std::vector< Pt3D > Pt3DVec
CCGFloat eta() const
CaloCellGeometry::Pt3D Pt3D
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
static constexpr uint32_t k_dPhi
std::ostream & operator<<(std::ostream &s, const IdealObliquePrism &cell)
CaloCellGeometry::CCGFloat CCGFloat
def pv(vc)
Definition: MetAnalyzer.py:7
static constexpr uint32_t k_Z
void initCorners(CornersVec &) override
~IdealObliquePrism() override
static GlobalPoint etaPhiPerp(float eta, float phi, float perp)
CCGFloat dPhi() const
CCGFloat z() const
HepGeom::Point3D< CCGFloat > Pt3D
Definition: EZMgrFL.h:8
T perp() const
Magnitude of transverse component.
static constexpr uint32_t k_dEta
void vocalCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) const override
IdealObliquePrism & operator=(const IdealObliquePrism &idop)
CCGFloat dz() const
static constexpr uint32_t k_dZ
#define constexpr
CaloCellGeometry::Pt3DVec Pt3DVec