CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
IdealZPrism.h
Go to the documentation of this file.
1 #ifndef GEOMETRY_CALOGEOMETRY_IDEALZPRISM_H
2 #define GEOMETRY_CALOGEOMETRY_IDEALZPRISM_H 1
3 
5 #include <memory>
6 
26 class IdealZPrism final : public CaloCellGeometry
27 {
28  public:
29 
30  enum DEPTH {None, EM, HADR};
31 
35 
36  IdealZPrism() ;
37 
38  IdealZPrism( const IdealZPrism& idzp ) ;
39 
40  IdealZPrism& operator=( const IdealZPrism& idzp ) ;
41 
42  IdealZPrism( const GlobalPoint& faceCenter ,
43  CornersMgr* mgr ,
44  const CCGFloat* parm ,
46 
47  virtual ~IdealZPrism() ;
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 ,
56  const CCGFloat* pv ,
57  Pt3D& ref ) ;
58 
59  virtual void vocalCorners( Pt3DVec& vec ,
60  const CCGFloat* pv ,
61  Pt3D& ref ) const override;
62 
63 
64 
65 
66  // corrected geom for PF
67  IdealZPrism const * forPF() const { return m_geoForPF.get();}
68 
69  private:
70 
71  virtual void initCorners(CornersVec& ) override;
72 
73  static GlobalPoint etaPhiR( float eta ,
74  float phi ,
75  float rad ) ;
76 
77  static GlobalPoint etaPhiPerp( float eta ,
78  float phi ,
79  float perp ) ;
80 
81  static GlobalPoint etaPhiZ( float eta ,
82  float phi ,
83  float z ) ;
84 
85 
86 private:
87  // corrected geom for PF
88  std::unique_ptr<IdealZPrism> m_geoForPF;
89 
90 };
91 
92 std::ostream& operator<<( std::ostream& s , const IdealZPrism& cell ) ;
93 
94 #endif
EZArrayFL< GlobalPoint > CornersVec
CaloCellGeometry::CCGFloat CCGFloat
Definition: IdealZPrism.h:32
CCGFloat eta() const
Definition: IdealZPrism.cc:72
static GlobalPoint etaPhiZ(float eta, float phi, float z)
Definition: IdealZPrism.cc:112
virtual void initCorners(CornersVec &) override
Definition: IdealZPrism.cc:159
static GlobalPoint etaPhiR(float eta, float phi, float rad)
Definition: IdealZPrism.cc:92
std::vector< Pt3D > Pt3DVec
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:188
CCGFloat dz() const
Definition: IdealZPrism.cc:66
virtual ~IdealZPrism()
Definition: IdealZPrism.cc:50
std::unique_ptr< IdealZPrism > m_geoForPF
Definition: IdealZPrism.h:88
IdealZPrism & operator=(const IdealZPrism &idzp)
Definition: IdealZPrism.cc:33
virtual void vocalCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) const override
Definition: IdealZPrism.cc:84
CCGFloat dEta() const
Definition: IdealZPrism.cc:54
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
Definition: IdealZPrism.cc:122
HepGeom::Point3D< CCGFloat > Pt3D
CaloCellGeometry::Pt3D Pt3D
Definition: IdealZPrism.h:33
Definition: EZMgrFL.h:8
CaloCellGeometry::Pt3DVec Pt3DVec
Definition: IdealZPrism.h:34
CCGFloat dPhi() const
Definition: IdealZPrism.cc:60
T perp() const
Magnitude of transverse component.
static GlobalPoint etaPhiPerp(float eta, float phi, float perp)
Definition: IdealZPrism.cc:102
IdealZPrism const * forPF() const
Definition: IdealZPrism.h:67
CCGFloat z() const
Definition: IdealZPrism.cc:78