Belle II Software development
TOPGeoMirrorSegment.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#pragma once
10
11#include <top/dbobjects/TOPGeoBarSegment.h>
12
13namespace Belle2 {
23 public:
24
29 {}
30
39 TOPGeoMirrorSegment(double width, double thickness, double length,
40 const std::string& material,
41 const std::string& name = "TOPMirrorSegment"):
42 TOPGeoBarSegment(width, thickness, length, material, name)
43 {}
44
49 void setRadius(double radius) {m_radius = radius;}
50
56 void setCenterOfCurvature(double xc, double yc)
57 {
58 m_xc = xc;
59 m_yc = yc;
60 }
61
68 void setCoating(double thickness,
69 const std::string& material,
70 const GeoOpticalSurface& surface)
71 {
72 m_coatingThickness = thickness;
73 m_coatingMaterial = material;
74 m_coatingSurface = surface;
75 }
76
81 double getRadius() const {return m_radius / s_unit;}
82
87 double getOuterRadius() const {return (m_radius + m_coatingThickness) / s_unit;}
88
93 double getXc() const {return m_xc / s_unit;}
94
99 double getYc() const {return m_yc / s_unit;}
100
105 double getZc() const;
106
112
117 const std::string& getCoatingMaterial() const {return m_coatingMaterial;}
118
124
130 double getMirrorReflectivity(double energy) const
131 {
133 }
134
139 bool isConsistent() const override;
140
145 void print(const std::string& title = "Mirror segment geometry parameters") const override;
146
147 private:
148
149 float m_radius = 0;
150 float m_xc = 0;
151 float m_yc = 0;
153 std::string m_coatingMaterial;
158 };
159
161} // end namespace Belle2
Represent an optical finish of a surface.
Geometry parameters of a quartz bar segment.
Geometry parameters of a mirror segment.
float m_xc
spherical mirror center-of-curvature in x
void setRadius(double radius)
Sets spherical mirror radius of curvature.
float m_coatingThickness
reflective coating thickness
void setCenterOfCurvature(double xc, double yc)
Sets spherical mirror center of curvature.
float m_yc
spherical mirror center-of-curvature in y
void setCoating(double thickness, const std::string &material, const GeoOpticalSurface &surface)
Sets parameters of reflective coating.
double getMirrorReflectivity(double energy) const
Returns mirror reflectivity at given photon energy.
float m_radius
spherical mirror radius
ClassDefOverride(TOPGeoMirrorSegment, 1)
ClassDef.
double getCoatingThickness() const
Returns reflective coating thickness.
TOPGeoMirrorSegment()
Default constructor.
double getYc() const
Returns spherical mirror center of curvature in y.
double getOuterRadius() const
Returns spherical mirror outer radius of curvature.
std::string m_coatingMaterial
reflective coating material
const std::string & getCoatingMaterial() const
Returns reflective coating material.
GeoOpticalSurface m_coatingSurface
reflective coating optical surface
TOPGeoMirrorSegment(double width, double thickness, double length, const std::string &material, const std::string &name="TOPMirrorSegment")
Useful constructor.
double getRadius() const
Returns spherical mirror radius of curvature.
const GeoOpticalSurface & getCoatingSurface() const
Returns reflective coating optical surface.
double getXc() const
Returns spherical mirror center of curvature in x.
bool isConsistent() const override
Check for consistency of data members.
static double s_unit
conversion unit for length
Definition: TOPGeoBase.h:86
double getReflectivity(const GeoOpticalSurface &surface, double energy) const
Returns reflectivity of optical surface at given photon energy.
Definition: TOPGeoBase.cc:72
double getZc() const
Returns spherical mirror center of curvature in z (in local frame of this segment)
void print(const std::string &title="Mirror segment geometry parameters") const override
Print the content of the class.
Abstract base class for different kinds of events.