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 public:
33 
34  static constexpr uint32_t k_dEta = 0; //Eta-width
35  static constexpr uint32_t k_dPhi = 1; //Phi-width
36  static constexpr uint32_t k_dZ = 2; //Signed thickness
37  static constexpr uint32_t k_Eta = 3; //Eta of the reference point
38  static constexpr uint32_t k_Z = 4; //Z of the reference point
39 
42 
44 
45  IdealObliquePrism(const GlobalPoint& faceCenter, CornersMgr* mgr, const CCGFloat* parm);
46 
47  ~IdealObliquePrism() override;
48 
49  CCGFloat dEta() const;
50  CCGFloat dPhi() const;
51  CCGFloat dz() const;
52  CCGFloat eta() const;
53  CCGFloat z() const;
54 
55  static void localCorners(Pt3DVec& vec, const CCGFloat* pv, Pt3D& ref);
56 
57  void vocalCorners(Pt3DVec& vec, const CCGFloat* pv, Pt3D& ref) const override;
58 
59 private:
60  void initCorners(CornersVec&) override;
61 
62  static GlobalPoint etaPhiPerp(float eta, float phi, float perp);
63  static GlobalPoint etaPhiZ(float eta, float phi, float z);
64 };
65 
66 std::ostream& operator<<(std::ostream& s, const IdealObliquePrism& cell);
67 
68 #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