Belle II Software development
TOPGeoQBB.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/TOPGeoBase.h>
12#include <top/dbobjects/TOPGeoHoneycombPanel.h>
13#include <top/dbobjects/TOPGeoSideRails.h>
14#include <top/dbobjects/TOPGeoEndPlate.h>
15#include <top/dbobjects/TOPGeoPrismEnclosure.h>
16#include <top/dbobjects/TOPGeoColdPlate.h>
17#include <string>
18#include <vector>
19#include <utility>
20
21namespace Belle2 {
26
30 class TOPGeoQBB: public TOPGeoBase {
31 public:
32
37 {}
38
47 TOPGeoQBB(double width, double length, double prismPosition,
48 const std::string& material,
49 const std::string& name = "TOPQBB"): TOPGeoBase(name),
50 m_width(width), m_length(length), m_prismPosition(prismPosition), m_material(material)
51 {}
52
57 void setInnerPanel(const TOPGeoHoneycombPanel& innerPanel)
58 {
59 m_innerPanel = innerPanel;
60 }
61
66 void setOuterPanel(const TOPGeoHoneycombPanel& outerPanel)
67 {
68 m_outerPanel = outerPanel;
69 }
70
75 void setSideRails(const TOPGeoSideRails& sideRails) {m_sideRails = sideRails;}
76
81 void setPrismEnclosure(const TOPGeoPrismEnclosure& prismEnclosure)
82 {
83 m_prismEnclosure = prismEnclosure;
84 }
85
90 void setEndPlate(const TOPGeoEndPlate& endPlate) {m_endPlate = endPlate;}
91
96 void setColdPlate(const TOPGeoColdPlate& coldPlate) {m_coldPlate = coldPlate;}
97
102 double getWidth() const {return m_width / s_unit;}
103
108 double getPanelWidth() const
109 {
110 return getWidth() - 2 * m_sideRails.getThickness();
111 }
112
117 double getLength() const {return m_length / s_unit;}
118
123 double getSideRailsLength() const
124 {
125 return getLength() - m_prismEnclosure.getBackThickness() - m_endPlate.getThickness();
126 }
127
132 double getPrismPosition() const {return m_prismPosition / s_unit;}
133
138 const std::string& getMaterial() const {return m_material;}
139
145
151
156 const TOPGeoSideRails& getSideRails() const {return m_sideRails;}
157
163
169
174 const TOPGeoColdPlate& getColdPlate() const {return m_coldPlate;}
175
180 std::vector<std::pair<double, double> > getForwardContour() const;
181
186 std::vector<std::pair<double, double> > getInnerPanelContour() const;
187
192 std::vector<std::pair<double, double> > getOuterPanelContour() const;
193
198 std::vector<std::pair<double, double> > getBackwardContour() const;
199
204 std::vector<std::pair<double, double> > getPrismEnclosureContour() const;
205
210 std::vector<std::pair<double, double> > getBackPlateContour() const;
211
216 std::vector<std::pair<double, double> > getFrontPlateContour() const;
217
222 bool isConsistent() const override;
223
228 virtual void print(const std::string& title = "QBB geometry parameters") const override;
229
233 void printForwardContour() const;
234
238 void printInnerPanelContour() const;
239
243 void printOuterPanelContour() const;
244
248 void printBackwardContour() const;
249
253 void printPrismEnclosureContour() const;
254
258 void printBackPlateContour() const;
259
263 void printFrontPlateContour() const;
264
265 private:
266
267 float m_width = 0;
268 float m_length = 0;
269 float m_prismPosition = 0;
270 std::string m_material;
277
279
280 };
281
283} // end namespace Belle2
TOPGeoBase()
Default constructor.
Definition TOPGeoBase.h:31
Geometry parameters of cold plate (simplified)
Geometry parameters of forward end plate (simplified)
Geometry parameters of honeycomb panel.
Geometry parameters of prism enclosure (simplified)
double getWidth() const
Returns full width.
Definition TOPGeoQBB.h:102
TOPGeoPrismEnclosure m_prismEnclosure
prism enclosure
Definition TOPGeoQBB.h:274
TOPGeoQBB(double width, double length, double prismPosition, const std::string &material, const std::string &name="TOPQBB")
Useful constructor.
Definition TOPGeoQBB.h:47
std::string m_material
material inside QBB
Definition TOPGeoQBB.h:270
ClassDefOverride(TOPGeoQBB, 2)
ClassDef.
const TOPGeoSideRails & getSideRails() const
Returns side rails.
Definition TOPGeoQBB.h:156
TOPGeoHoneycombPanel m_outerPanel
outer honeycomb panel
Definition TOPGeoQBB.h:272
void setOuterPanel(const TOPGeoHoneycombPanel &outerPanel)
Sets outer honeycomb panel.
Definition TOPGeoQBB.h:66
TOPGeoSideRails m_sideRails
side rails
Definition TOPGeoQBB.h:273
void setColdPlate(const TOPGeoColdPlate &coldPlate)
Sets forward cold plate.
Definition TOPGeoQBB.h:96
void setPrismEnclosure(const TOPGeoPrismEnclosure &prismEnclosure)
Sets prism enclosure.
Definition TOPGeoQBB.h:81
const TOPGeoHoneycombPanel & getOuterPanel() const
Returns outer honeycomb panel.
Definition TOPGeoQBB.h:150
double getSideRailsLength() const
Returns side rails length.
Definition TOPGeoQBB.h:123
void setSideRails(const TOPGeoSideRails &sideRails)
Sets side rails.
Definition TOPGeoQBB.h:75
float m_prismPosition
position of prism-bar joint wrt QBB back
Definition TOPGeoQBB.h:269
const TOPGeoEndPlate & getForwardEndPlate() const
Returns forward end plate.
Definition TOPGeoQBB.h:168
TOPGeoHoneycombPanel m_innerPanel
inner honeycomb panel
Definition TOPGeoQBB.h:271
TOPGeoEndPlate m_endPlate
forward end plate
Definition TOPGeoQBB.h:275
const TOPGeoColdPlate & getColdPlate() const
Returns cold plate.
Definition TOPGeoQBB.h:174
const TOPGeoPrismEnclosure & getPrismEnclosure() const
Returns prism enclosure.
Definition TOPGeoQBB.h:162
double getPrismPosition() const
Returns the position of prism-bar joint wrt QBB back.
Definition TOPGeoQBB.h:132
TOPGeoColdPlate m_coldPlate
cold plate
Definition TOPGeoQBB.h:276
const std::string & getMaterial() const
Returns the name of material inside QBB.
Definition TOPGeoQBB.h:138
TOPGeoQBB()
Default constructor.
Definition TOPGeoQBB.h:36
void setInnerPanel(const TOPGeoHoneycombPanel &innerPanel)
Sets inner honeycomb panel.
Definition TOPGeoQBB.h:57
void setEndPlate(const TOPGeoEndPlate &endPlate)
Sets forward end plate.
Definition TOPGeoQBB.h:90
float m_length
full length
Definition TOPGeoQBB.h:268
const TOPGeoHoneycombPanel & getInnerPanel() const
Returns inner honeycomb panel.
Definition TOPGeoQBB.h:144
double getLength() const
Returns full length.
Definition TOPGeoQBB.h:117
float m_width
full width
Definition TOPGeoQBB.h:267
double getPanelWidth() const
Returns panel width used in x-y contours of honeycomb panels.
Definition TOPGeoQBB.h:108
Geometry parameters of side rails (simplified)
void printPrismEnclosureContour() const
Print prism enclosure contour (polygon) - for debugging.
Definition TOPGeoQBB.cc:165
std::vector< std::pair< double, double > > getBackPlateContour() const
Returns prism enclosure back plate x-y contour.
Definition TOPGeoQBB.cc:174
bool isConsistent() const override
Check for consistency of data members.
Definition TOPGeoQBB.cc:230
std::vector< std::pair< double, double > > getPrismEnclosureContour() const
Returns prism enclosure wall x-y contour.
Definition TOPGeoQBB.cc:139
static double s_unit
conversion unit for length
Definition TOPGeoBase.h:86
void printInnerPanelContour() const
Print inner honeycomb panel contour (polygon) - for debugging.
Definition TOPGeoQBB.cc:71
void printBackwardContour() const
Print backward contour (polygon) - for debugging.
Definition TOPGeoQBB.cc:130
void printOuterPanelContour() const
Print outer honeycomb panel contour (polygon) - for debugging.
Definition TOPGeoQBB.cc:97
virtual void print(const std::string &title="QBB geometry parameters") const override
Print the content of the class.
Definition TOPGeoQBB.cc:246
std::vector< std::pair< double, double > > getFrontPlateContour() const
Returns prism enclosure front plate x-y contour.
Definition TOPGeoQBB.cc:203
void printFrontPlateContour() const
Print prism enclosure front plate contour (polygon) - for debugging.
Definition TOPGeoQBB.cc:221
std::vector< std::pair< double, double > > getOuterPanelContour() const
Returns outer honeycomb panel x-y contour.
Definition TOPGeoQBB.cc:80
void printForwardContour() const
Print forward contour (polygon) - for debugging.
Definition TOPGeoQBB.cc:45
std::vector< std::pair< double, double > > getForwardContour() const
Returns forward x-y contour.
Definition TOPGeoQBB.cc:21
std::vector< std::pair< double, double > > getBackwardContour() const
Returns backward x-y contour.
Definition TOPGeoQBB.cc:106
std::vector< std::pair< double, double > > getInnerPanelContour() const
Returns inner honeycomb panel x-y contour.
Definition TOPGeoQBB.cc:54
void printBackPlateContour() const
Print prism enclosure back plate contour (polygon) - for debugging.
Definition TOPGeoQBB.cc:194
Abstract base class for different kinds of events.