Belle II Software  release-05-01-25
TOPGeoPrismEnclosure.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/TOPGeoBase.h>
14 #include <string>
15 
16 namespace Belle2 {
25  class TOPGeoPrismEnclosure: public TOPGeoBase {
26  public:
27 
32  {}
33 
47  TOPGeoPrismEnclosure(double length,
48  double height,
49  double angle,
50  double bottomThickness,
51  double sideThickness,
52  double backThickness,
53  double frontThickness,
54  double extensionThickness,
55  const std::string& material,
56  const std::string& name = "TOPPrismEnclosure"): TOPGeoBase(name),
57  m_length(length), m_height(height), m_angle(angle),
58  m_bottomThickness(bottomThickness), m_sideThickness(sideThickness),
59  m_backThickness(backThickness), m_frontThickness(frontThickness),
60  m_extensionThickness(extensionThickness),
61  m_material(material)
62  {}
63 
68  double getLength() const {return m_length / s_unit;}
69 
74  double getBodyLength() const
75  {
77  }
78 
83  double getHeight() const {return m_height / s_unit;}
84 
89  double getAngle() const {return m_angle;}
90 
95  double getBottomThickness() const {return m_bottomThickness / s_unit;}
96 
101  double getSideThickness() const {return m_sideThickness / s_unit;}
102 
107  double getBackThickness() const {return m_backThickness / s_unit;}
108 
113  double getFrontThickness() const {return m_frontThickness / s_unit;}
114 
119  double getExtensionThickness() const {return m_extensionThickness / s_unit;}
120 
125  const std::string& getMaterial() const {return m_material;}
126 
131  bool isConsistent() const override;
132 
137  virtual void print(const std::string& title = "QBB prism enclosure geometry parameters") const override;
138 
139  private:
140 
141  float m_length = 0;
142  float m_height = 0;
143  float m_angle = 0;
144  float m_bottomThickness = 0;
145  float m_sideThickness = 0;
146  float m_backThickness = 0;
147  float m_frontThickness = 0;
148  float m_extensionThickness = 0;
149  std::string m_material;
153  };
154 
156 } // namespace Belle2
Belle2::TOPGeoPrismEnclosure::getLength
double getLength() const
Returns full length.
Definition: TOPGeoPrismEnclosure.h:76
Belle2::TOPGeoPrismEnclosure::getBackThickness
double getBackThickness() const
Returns back wall thickness.
Definition: TOPGeoPrismEnclosure.h:115
Belle2::TOPGeoPrismEnclosure::TOPGeoPrismEnclosure
TOPGeoPrismEnclosure()
Default constructor.
Definition: TOPGeoPrismEnclosure.h:39
Belle2::TOPGeoPrismEnclosure::m_material
std::string m_material
material name
Definition: TOPGeoPrismEnclosure.h:157
Belle2::TOPGeoPrismEnclosure::m_angle
float m_angle
angle of side wall
Definition: TOPGeoPrismEnclosure.h:151
Belle2::TOPGeoPrismEnclosure::getHeight
double getHeight() const
Returns height up to the side rails.
Definition: TOPGeoPrismEnclosure.h:91
Belle2::TOPGeoPrismEnclosure::getBodyLength
double getBodyLength() const
Returns length w/o back and front plates.
Definition: TOPGeoPrismEnclosure.h:82
Belle2::TOPGeoBase
Base class for geometry parameters.
Definition: TOPGeoBase.h:35
Belle2::TOPGeoPrismEnclosure::m_extensionThickness
float m_extensionThickness
extension plate thickness
Definition: TOPGeoPrismEnclosure.h:156
Belle2::TOPGeoPrismEnclosure::m_bottomThickness
float m_bottomThickness
bottom thickness
Definition: TOPGeoPrismEnclosure.h:152
Belle2::TOPGeoPrismEnclosure::getExtensionThickness
double getExtensionThickness() const
Returns extension plate thickness.
Definition: TOPGeoPrismEnclosure.h:127
Belle2::TOPGeoPrismEnclosure::m_sideThickness
float m_sideThickness
side wall thickness
Definition: TOPGeoPrismEnclosure.h:153
Belle2::TOPGeoPrismEnclosure::m_length
float m_length
length
Definition: TOPGeoPrismEnclosure.h:149
Belle2::TOPGeoPrismEnclosure::getAngle
double getAngle() const
Returns angle of side wall.
Definition: TOPGeoPrismEnclosure.h:97
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TOPGeoBase::s_unit
static double s_unit
conversion unit for length
Definition: TOPGeoBase.h:96
Belle2::TOPGeoPrismEnclosure::print
virtual void print(const std::string &title="QBB prism enclosure geometry parameters") const override
Print the content of the class.
Definition: TOPGeoPrismEnclosure.cc:37
Belle2::TOPGeoPrismEnclosure::isConsistent
bool isConsistent() const override
Check for consistency of data members.
Definition: TOPGeoPrismEnclosure.cc:23
Belle2::TOPGeoPrismEnclosure::m_frontThickness
float m_frontThickness
front wall thickness
Definition: TOPGeoPrismEnclosure.h:155
Belle2::TOPGeoPrismEnclosure::ClassDefOverride
ClassDefOverride(TOPGeoPrismEnclosure, 1)
ClassDef.
Belle2::TOPGeoPrismEnclosure::getSideThickness
double getSideThickness() const
Returns side wall thickness.
Definition: TOPGeoPrismEnclosure.h:109
Belle2::TOPGeoPrismEnclosure::m_backThickness
float m_backThickness
back wall thickness
Definition: TOPGeoPrismEnclosure.h:154
Belle2::TOPGeoPrismEnclosure::getFrontThickness
double getFrontThickness() const
Returns front wall thickness.
Definition: TOPGeoPrismEnclosure.h:121
Belle2::TOPGeoPrismEnclosure
Geometry parameters of prism enclosure (simplified)
Definition: TOPGeoPrismEnclosure.h:33
Belle2::TOPGeoPrismEnclosure::getMaterial
const std::string & getMaterial() const
Returns material name.
Definition: TOPGeoPrismEnclosure.h:133
Belle2::TOPGeoPrismEnclosure::getBottomThickness
double getBottomThickness() const
Returns bottom thickness.
Definition: TOPGeoPrismEnclosure.h:103
Belle2::TOPGeoPrismEnclosure::m_height
float m_height
height up to the side rails
Definition: TOPGeoPrismEnclosure.h:150