CMS 3D CMS Logo

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  ~IdealZPrism() 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 ,
56  const CCGFloat* pv ,
57  Pt3D& ref ) ;
58 
59  void vocalCorners( Pt3DVec& vec ,
60  const CCGFloat* pv ,
61  Pt3D& ref ) const override;
62 
63 
64 
65 
66  // corrected geom for PF
67  std::shared_ptr<const IdealZPrism> forPF() const {
68  static const auto do_not_delete = [](const void*){};
69  auto cell = std::shared_ptr<const IdealZPrism>(m_geoForPF.get(),do_not_delete);
70  return cell;
71  }
72 
73  private:
74 
75  void initCorners(CornersVec& ) override;
76 
77  static GlobalPoint etaPhiR( float eta ,
78  float phi ,
79  float rad ) ;
80 
81  static GlobalPoint etaPhiPerp( float eta ,
82  float phi ,
83  float perp ) ;
84 
85  static GlobalPoint etaPhiZ( float eta ,
86  float phi ,
87  float z ) ;
88 
89 
90 private:
91  // corrected geom for PF
92  std::unique_ptr<IdealZPrism> m_geoForPF;
93 
94 };
95 
96 std::ostream& operator<<( std::ostream& s , const IdealZPrism& cell ) ;
97 
98 #endif
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
void initCorners(CornersVec &) override
Definition: IdealZPrism.cc:159
void vocalCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) const override
Definition: IdealZPrism.cc:84
std::shared_ptr< const IdealZPrism > forPF() const
Definition: IdealZPrism.h:67
static GlobalPoint etaPhiR(float eta, float phi, float rad)
Definition: IdealZPrism.cc:92
std::vector< Pt3D > Pt3DVec
CCGFloat dz() const
Definition: IdealZPrism.cc:66
std::unique_ptr< IdealZPrism > m_geoForPF
Definition: IdealZPrism.h:92
def pv(vc)
Definition: MetAnalyzer.py:6
std::ostream & operator<<(std::ostream &s, const IdealZPrism &cell)
Definition: IdealZPrism.cc:182
IdealZPrism & operator=(const IdealZPrism &idzp)
Definition: IdealZPrism.cc:33
~IdealZPrism() override
Definition: IdealZPrism.cc:50
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
CCGFloat z() const
Definition: IdealZPrism.cc:78