Belle II Software  release-05-02-19
TOPGeoMirrorSegment.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2016 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Marko Staric *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <top/dbobjects/TOPGeoBarSegment.h>
14 
15 namespace Belle2 {
24  class TOPGeoMirrorSegment: public TOPGeoBarSegment {
25  public:
26 
31  {}
32 
41  TOPGeoMirrorSegment(double width, double thickness, double length,
42  const std::string& material,
43  const std::string& name = "TOPMirrorSegment"):
44  TOPGeoBarSegment(width, thickness, length, material, name)
45  {}
46 
51  void setRadius(double radius) {m_radius = radius;}
52 
58  void setCenterOfCurvature(double xc, double yc)
59  {
60  m_xc = xc;
61  m_yc = yc;
62  }
63 
70  void setCoating(double thickness,
71  const std::string& material,
72  const GeoOpticalSurface& surface)
73  {
74  m_coatingThickness = thickness;
75  m_coatingMaterial = material;
76  m_coatingSurface = surface;
77  }
78 
83  double getRadius() const {return m_radius / s_unit;}
84 
89  double getOuterRadius() const {return (m_radius + m_coatingThickness) / s_unit;}
90 
95  double getXc() const {return m_xc / s_unit;}
96 
101  double getYc() const {return m_yc / s_unit;}
102 
107  double getZc() const;
108 
113  double getCoatingThickness() const {return m_coatingThickness / s_unit;}
114 
119  const std::string& getCoatingMaterial() const {return m_coatingMaterial;}
120 
125  const GeoOpticalSurface& getCoatingSurface() const {return m_coatingSurface;}
126 
132  double getMirrorReflectivity(double energy) const
133  {
135  }
136 
141  bool isConsistent() const override;
142 
147  void print(const std::string& title = "Mirror segment geometry parameters") const override;
148 
149  private:
150 
151  float m_radius = 0;
152  float m_xc = 0;
153  float m_yc = 0;
154  float m_coatingThickness = 0;
155  std::string m_coatingMaterial;
160  };
161 
163 } // end namespace Belle2
Belle2::TOPGeoMirrorSegment::m_coatingThickness
float m_coatingThickness
reflective coating thickness
Definition: TOPGeoMirrorSegment.h:162
Belle2::TOPGeoMirrorSegment::getRadius
double getRadius() const
Returns spherical mirror radius of curvature.
Definition: TOPGeoMirrorSegment.h:91
Belle2::TOPGeoMirrorSegment::getOuterRadius
double getOuterRadius() const
Returns spherical mirror outer radius of curvature.
Definition: TOPGeoMirrorSegment.h:97
Belle2::TOPGeoBarSegment
Geometry parameters of a quartz bar segment.
Definition: TOPGeoBarSegment.h:37
Belle2::TOPGeoMirrorSegment::m_yc
float m_yc
spherical mirror center-of-curvature in y
Definition: TOPGeoMirrorSegment.h:161
Belle2::TOPGeoMirrorSegment::getZc
double getZc() const
Returns spherical mirror center of curvature in z (in local frame of this segment)
Definition: TOPGeoMirrorSegment.cc:23
Belle2::TOPGeoMirrorSegment::getYc
double getYc() const
Returns spherical mirror center of curvature in y.
Definition: TOPGeoMirrorSegment.h:109
Belle2::TOPGeoMirrorSegment::getMirrorReflectivity
double getMirrorReflectivity(double energy) const
Returns mirror reflectivity at given photon energy.
Definition: TOPGeoMirrorSegment.h:140
Belle2::TOPGeoMirrorSegment::getXc
double getXc() const
Returns spherical mirror center of curvature in x.
Definition: TOPGeoMirrorSegment.h:103
Belle2::TOPGeoMirrorSegment::m_xc
float m_xc
spherical mirror center-of-curvature in x
Definition: TOPGeoMirrorSegment.h:160
Belle2::GeoOpticalSurface
Represent an optical finish of a surface.
Definition: GeoOpticalSurface.h:31
Belle2::TOPGeoMirrorSegment::getCoatingMaterial
const std::string & getCoatingMaterial() const
Returns reflective coating material.
Definition: TOPGeoMirrorSegment.h:127
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TOPGeoMirrorSegment::m_coatingSurface
GeoOpticalSurface m_coatingSurface
reflective coating optical surface
Definition: TOPGeoMirrorSegment.h:164
Belle2::TOPGeoBase::s_unit
static double s_unit
conversion unit for length
Definition: TOPGeoBase.h:96
Belle2::TOPGeoMirrorSegment::setRadius
void setRadius(double radius)
Sets spherical mirror radius of curvature.
Definition: TOPGeoMirrorSegment.h:59
Belle2::TOPGeoMirrorSegment::isConsistent
bool isConsistent() const override
Check for consistency of data members.
Definition: TOPGeoMirrorSegment.cc:35
Belle2::TOPGeoBase::getReflectivity
double getReflectivity(const GeoOpticalSurface &surface, double energy) const
Returns reflectivity of optical surface at given photon energy.
Definition: TOPGeoBase.cc:74
Belle2::TOPGeoMirrorSegment::print
void print(const std::string &title="Mirror segment geometry parameters") const override
Print the content of the class.
Definition: TOPGeoMirrorSegment.cc:46
Belle2::TOPGeoMirrorSegment::setCoating
void setCoating(double thickness, const std::string &material, const GeoOpticalSurface &surface)
Sets parameters of reflective coating.
Definition: TOPGeoMirrorSegment.h:78
Belle2::TOPGeoMirrorSegment::getCoatingSurface
const GeoOpticalSurface & getCoatingSurface() const
Returns reflective coating optical surface.
Definition: TOPGeoMirrorSegment.h:133
Belle2::TOPGeoMirrorSegment
Geometry parameters of a mirror segment.
Definition: TOPGeoMirrorSegment.h:32
Belle2::TOPGeoMirrorSegment::m_coatingMaterial
std::string m_coatingMaterial
reflective coating material
Definition: TOPGeoMirrorSegment.h:163
Belle2::TOPGeoMirrorSegment::TOPGeoMirrorSegment
TOPGeoMirrorSegment()
Default constructor.
Definition: TOPGeoMirrorSegment.h:38
Belle2::TOPGeoMirrorSegment::m_radius
float m_radius
spherical mirror radius
Definition: TOPGeoMirrorSegment.h:159
Belle2::TOPGeoMirrorSegment::ClassDefOverride
ClassDefOverride(TOPGeoMirrorSegment, 1)
ClassDef.
Belle2::TOPGeoMirrorSegment::getCoatingThickness
double getCoatingThickness() const
Returns reflective coating thickness.
Definition: TOPGeoMirrorSegment.h:121
Belle2::TOPGeoMirrorSegment::setCenterOfCurvature
void setCenterOfCurvature(double xc, double yc)
Sets spherical mirror center of curvature.
Definition: TOPGeoMirrorSegment.h:66