9#include <top/dbobjects/TOPGeoQBB.h>
23 typedef std::pair<double, double>
Pair;
24 std::vector<Pair> contour;
33 contour.push_back(
Pair(-x1, y2));
34 contour.push_back(
Pair(-x3, y1));
35 contour.push_back(
Pair(x3, y1));
36 contour.push_back(
Pair(x1, y2));
37 contour.push_back(
Pair(x1, y3));
38 contour.push_back(
Pair(x2, y4));
39 contour.push_back(
Pair(-x2, y4));
40 contour.push_back(
Pair(-x1, y3));
48 cout <<
"Forward contour [" <<
s_unitName <<
"]:" << endl;
49 for (
auto& xy : contour) cout << xy.first <<
" " << xy.second << endl;
56 typedef std::pair<double, double>
Pair;
57 std::vector<Pair> contour;
62 contour.push_back(
Pair(-x1, y1));
63 contour.push_back(
Pair(x1, y1));
64 contour.push_back(
Pair(x1, y2));
66 contour.push_back(
Pair(-x1, y2));
74 cout <<
"Inner panel contour [" <<
s_unitName <<
"]:" << endl;
75 for (
auto& xy : contour) cout << xy.first <<
" " << xy.second << endl;
82 typedef std::pair<double, double>
Pair;
83 std::vector<Pair> contour;
88 contour.push_back(
Pair(-x1, y2));
90 contour.push_back(
Pair(x1, y2));
91 contour.push_back(
Pair(x1, y1));
92 contour.push_back(
Pair(-x1, y1));
100 cout <<
"Outer panel contour [" <<
s_unitName <<
"]:" << endl;
101 for (
auto& xy : contour) cout << xy.first <<
" " << xy.second << endl;
108 typedef std::pair<double, double>
Pair;
109 std::vector<Pair> contour;
118 contour.push_back(
Pair(-x1, y2));
119 contour.push_back(
Pair(-x3, y1));
120 contour.push_back(
Pair(x3, y1));
121 contour.push_back(
Pair(x1, y2));
122 contour.push_back(
Pair(x1, y3));
123 contour.push_back(
Pair(x2, y4));
124 contour.push_back(
Pair(-x2, y4));
125 contour.push_back(
Pair(-x1, y3));
133 cout <<
"Backward contour [" <<
s_unitName <<
"]:" << endl;
134 for (
auto& xy : contour) cout << xy.first <<
" " << xy.second << endl;
141 typedef std::pair<double, double>
Pair;
142 std::vector<Pair> contour;
152 double x4 = x1 -
m_prismEnclosure.getSideThickness() - (y1 - y3) * tanAngle;
153 contour.push_back(
Pair(x1, y1));
154 contour.push_back(
Pair(x2, y2));
155 contour.push_back(
Pair(-x2, y2));
156 contour.push_back(
Pair(-x1, y1));
157 contour.push_back(
Pair(-x3, y1));
158 contour.push_back(
Pair(-x4, y3));
159 contour.push_back(
Pair(x4, y3));
160 contour.push_back(
Pair(x3, y1));
168 cout <<
"Prism enclosure contour [" <<
s_unitName <<
"]:" << endl;
169 for (
auto& xy : contour) cout << xy.first <<
" " << xy.second << endl;
176 typedef std::pair<double, double>
Pair;
177 std::vector<Pair> contour;
184 contour.push_back(
Pair(-x1, y1));
185 contour.push_back(
Pair(x1, y1));
186 contour.push_back(
Pair(x1, y2));
187 contour.push_back(
Pair(x2, y3));
188 contour.push_back(
Pair(-x2, y3));
189 contour.push_back(
Pair(-x1, y2));
197 cout <<
"Prism enclosure back plate contour [" <<
s_unitName <<
"]:" << endl;
198 for (
auto& xy : contour) cout << xy.first <<
" " << xy.second << endl;
205 typedef std::pair<double, double>
Pair;
206 std::vector<Pair> contour;
213 contour.push_back(
Pair(x1, y2));
214 contour.push_back(
Pair(x2, y3));
215 contour.push_back(
Pair(-x2, y3));
216 contour.push_back(
Pair(-x1, y2));
224 cout <<
"Prism enclosure front plate contour [" <<
s_unitName <<
"]:" << endl;
225 for (
auto& xy : contour) cout << xy.first <<
" " << xy.second << endl;
232 if (
m_width <= 0)
return false;
253 cout <<
", inside material = " <<
getMaterial() << endl;
255 m_innerPanel.print(
"QBB inner honeycomb panel geometry parameters");
256 m_outerPanel.print(
"QBB outer honeycomb panel geometry parameters");
double getWidth() const
Returns full width.
TOPGeoPrismEnclosure m_prismEnclosure
prism enclosure
std::string m_material
material inside QBB
TOPGeoHoneycombPanel m_outerPanel
outer honeycomb panel
TOPGeoSideRails m_sideRails
side rails
float m_prismPosition
position of prism-bar joint wrt QBB back
TOPGeoHoneycombPanel m_innerPanel
inner honeycomb panel
TOPGeoEndPlate m_endPlate
forward end plate
double getPrismPosition() const
Returns the position of prism-bar joint wrt QBB back.
TOPGeoColdPlate m_coldPlate
cold plate
const std::string & getMaterial() const
Returns the name of material inside QBB.
float m_length
full length
double getLength() const
Returns full length.
double getPanelWidth() const
Returns panel width used in x-y contours of honeycomb panels.
double tan(double a)
tan for double
void printPrismEnclosureContour() const
Print prism enclosure contour (polygon) - for debugging.
std::vector< std::pair< double, double > > getBackPlateContour() const
Returns prism enclosure back plate x-y contour.
bool isConsistent() const override
Check for consistency of data members.
std::vector< std::pair< double, double > > getPrismEnclosureContour() const
Returns prism enclosure wall x-y contour.
void printUnderlined(const std::string &title) const
Print the content of the class.
void printInnerPanelContour() const
Print inner honeycomb panel contour (polygon) - for debugging.
void printBackwardContour() const
Print backward contour (polygon) - for debugging.
void printOuterPanelContour() const
Print outer honeycomb panel contour (polygon) - for debugging.
virtual void print(const std::string &title="QBB geometry parameters") const override
Print the content of the class.
std::vector< std::pair< double, double > > getFrontPlateContour() const
Returns prism enclosure front plate x-y contour.
void printFrontPlateContour() const
Print prism enclosure front plate contour (polygon) - for debugging.
std::vector< std::pair< double, double > > getOuterPanelContour() const
Returns outer honeycomb panel x-y contour.
void printForwardContour() const
Print forward contour (polygon) - for debugging.
std::vector< std::pair< double, double > > getForwardContour() const
Returns forward x-y contour.
std::pair< double, double > Pair
Shorthand for std::pair<double, double>
static std::string s_unitName
conversion unit name
std::vector< std::pair< double, double > > getBackwardContour() const
Returns backward x-y contour.
std::vector< std::pair< double, double > > getInnerPanelContour() const
Returns inner honeycomb panel x-y contour.
void printBackPlateContour() const
Print prism enclosure back plate contour (polygon) - for debugging.
Abstract base class for different kinds of events.