File indexing completed on 2024-04-06 12:14:38
0001 #ifndef Geometry_ForwardGeometry_IdealZDCTrapezoid_H
0002 #define Geometry_ForwardGeometry_IdealZDCTrapezoid_H 1
0003
0004 #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h"
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 class IdealZDCTrapezoid : public CaloCellGeometry {
0023 public:
0024 typedef CaloCellGeometry::CCGFloat CCGFloat;
0025 typedef CaloCellGeometry::Pt3D Pt3D;
0026 typedef CaloCellGeometry::Pt3DVec Pt3DVec;
0027 typedef CaloCellGeometry::Tr3D Tr3D;
0028
0029 IdealZDCTrapezoid();
0030
0031 IdealZDCTrapezoid(const IdealZDCTrapezoid& idzt);
0032
0033 IdealZDCTrapezoid& operator=(const IdealZDCTrapezoid& idzt);
0034
0035 IdealZDCTrapezoid(const GlobalPoint& faceCenter, CornersMgr* mgr, const CCGFloat* parm);
0036
0037 ~IdealZDCTrapezoid() override;
0038
0039 CCGFloat an() const;
0040 CCGFloat dx() const;
0041 CCGFloat dy() const;
0042 CCGFloat dz() const;
0043 CCGFloat ta() const;
0044 CCGFloat dt() const;
0045
0046 void vocalCorners(Pt3DVec& vec, const CCGFloat* pv, Pt3D& ref) const override;
0047
0048 static void localCorners(Pt3DVec& vec, const CCGFloat* pv, Pt3D& ref);
0049
0050 private:
0051 void initCorners(CaloCellGeometry::CornersVec&) override;
0052 };
0053
0054 std::ostream& operator<<(std::ostream& s, const IdealZDCTrapezoid& cell);
0055
0056 #endif