Belle II Software development
GeoOpticalSurface.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 <TObject.h>
12#include <vector>
13#include <geometry/dbobjects/GeoMaterialProperty.h>
14
15namespace Belle2 {
21 class GeoOpticalSurface: public TObject {
22 public:
24 GeoOpticalSurface() = default;
26 GeoOpticalSurface(const std::string& name, int model, int finish, int type, double value): TObject(), m_name(name), m_model(model),
27 m_finish(finish), m_type(type), m_value(value) {}
29 void setName(const std::string& name) { m_name = name; }
31 void setModel(int model) { m_model = model; }
33 void setFinish(int finish) { m_finish = finish; }
35 void setType(int type) { m_type = type; }
37 void setValue(double value) { m_value = value; }
39 void addProperty(const GeoMaterialProperty& property) { m_properties.emplace_back(property); }
41 const std::string& getName() const { return m_name; }
43 int getModel() const { return m_model; }
45 int getFinish() const { return m_finish; }
47 int getType() const { return m_type; }
49 double getValue() const { return m_value; }
51 const std::vector<GeoMaterialProperty>& getProperties() const { return m_properties; }
54 bool hasProperties() const { return m_properties.size() > 0; }
55 private:
57 std::string m_name;
63 int m_type;
65 double m_value;
67 std::vector<GeoMaterialProperty> m_properties;
70 };
72}; // Belle2 namespace
Property of a material.
Represent an optical finish of a surface.
int m_model
model for the surface
void setValue(double value)
set value for the surface condition
void setFinish(int finish)
set finish of the surface
const std::string & getName() const
get name of the optical surface
void setModel(int model)
set model for the surface
int getFinish() const
get finish of the surface
std::vector< GeoMaterialProperty > m_properties
properties of this material
int m_type
type of the surface
GeoOpticalSurface(const std::string &name, int model, int finish, int type, double value)
real constructor
void setName(const std::string &name)
set name of the optical surface
void addProperty(const GeoMaterialProperty &property)
add a property to the material
int m_finish
finish of the surface
const std::vector< GeoMaterialProperty > & getProperties() const
get all properties
double getValue() const
get value for the surface condition
int getType() const
get type of the surface
bool hasProperties() const
check if the material has at least one property
GeoOpticalSurface()=default
empty constructor for ROOT
int getModel() const
get model for the surface
std::string m_name
name of the optical surface
ClassDef(GeoOpticalSurface, 1)
Add ROOT reflection info.
double m_value
value for the surface condition
void setType(int type)
set type of the surface
Abstract base class for different kinds of events.