Belle II Software  release-05-01-25
TOPGeoQBB.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 <top/dbobjects/TOPGeoHoneycombPanel.h>
15 #include <top/dbobjects/TOPGeoSideRails.h>
16 #include <top/dbobjects/TOPGeoEndPlate.h>
17 #include <top/dbobjects/TOPGeoPrismEnclosure.h>
18 #include <top/dbobjects/TOPGeoColdPlate.h>
19 #include <string>
20 #include <vector>
21 #include <utility>
22 
23 namespace Belle2 {
32  class TOPGeoQBB: public TOPGeoBase {
33  public:
34 
38  TOPGeoQBB()
39  {}
40 
49  TOPGeoQBB(double width, double length, double prismPosition,
50  const std::string& material,
51  const std::string& name = "TOPQBB"): TOPGeoBase(name),
52  m_width(width), m_length(length), m_prismPosition(prismPosition), m_material(material)
53  {}
54 
59  void setInnerPanel(const TOPGeoHoneycombPanel& innerPanel)
60  {
61  m_innerPanel = innerPanel;
62  }
63 
68  void setOuterPanel(const TOPGeoHoneycombPanel& outerPanel)
69  {
70  m_outerPanel = outerPanel;
71  }
72 
77  void setSideRails(const TOPGeoSideRails& sideRails) {m_sideRails = sideRails;}
78 
83  void setPrismEnclosure(const TOPGeoPrismEnclosure& prismEnclosure)
84  {
85  m_prismEnclosure = prismEnclosure;
86  }
87 
92  void setEndPlate(const TOPGeoEndPlate& endPlate) {m_endPlate = endPlate;}
93 
98  void setColdPlate(const TOPGeoColdPlate& coldPlate) {m_coldPlate = coldPlate;}
99 
104  double getWidth() const {return m_width / s_unit;}
105 
110  double getPanelWidth() const
111  {
113  }
114 
119  double getLength() const {return m_length / s_unit;}
120 
125  double getSideRailsLength() const
126  {
128  }
129 
134  double getPrismPosition() const {return m_prismPosition / s_unit;}
135 
140  const std::string& getMaterial() const {return m_material;}
141 
146  const TOPGeoHoneycombPanel& getInnerPanel() const {return m_innerPanel;}
147 
152  const TOPGeoHoneycombPanel& getOuterPanel() const {return m_outerPanel;}
153 
158  const TOPGeoSideRails& getSideRails() const {return m_sideRails;}
159 
164  const TOPGeoPrismEnclosure& getPrismEnclosure() const {return m_prismEnclosure;}
165 
170  const TOPGeoEndPlate& getForwardEndPlate() const {return m_endPlate;}
171 
176  const TOPGeoColdPlate& getColdPlate() const {return m_coldPlate;}
177 
182  std::vector<std::pair<double, double> > getForwardContour() const;
183 
188  std::vector<std::pair<double, double> > getInnerPanelContour() const;
189 
194  std::vector<std::pair<double, double> > getOuterPanelContour() const;
195 
200  std::vector<std::pair<double, double> > getBackwardContour() const;
201 
206  std::vector<std::pair<double, double> > getPrismEnclosureContour() const;
207 
212  std::vector<std::pair<double, double> > getBackPlateContour() const;
213 
218  std::vector<std::pair<double, double> > getFrontPlateContour() const;
219 
224  bool isConsistent() const override;
225 
230  virtual void print(const std::string& title = "QBB geometry parameters") const override;
231 
235  void printForwardContour() const;
236 
240  void printInnerPanelContour() const;
241 
245  void printOuterPanelContour() const;
246 
250  void printBackwardContour() const;
251 
255  void printPrismEnclosureContour() const;
256 
260  void printBackPlateContour() const;
261 
265  void printFrontPlateContour() const;
266 
267  private:
268 
269  float m_width = 0;
270  float m_length = 0;
271  float m_prismPosition = 0;
272  std::string m_material;
273  TOPGeoHoneycombPanel m_innerPanel;
274  TOPGeoHoneycombPanel m_outerPanel;
275  TOPGeoSideRails m_sideRails;
276  TOPGeoPrismEnclosure m_prismEnclosure;
282  };
283 
285 } // end namespace Belle2
Belle2::TOPGeoQBB::getPrismEnclosureContour
std::vector< std::pair< double, double > > getPrismEnclosureContour() const
Returns prism enclosure wall x-y contour.
Definition: TOPGeoQBB.cc:141
Belle2::TOPGeoQBB::m_innerPanel
TOPGeoHoneycombPanel m_innerPanel
inner honeycomb panel
Definition: TOPGeoQBB.h:281
Belle2::TOPGeoQBB::getSideRails
const TOPGeoSideRails & getSideRails() const
Returns side rails.
Definition: TOPGeoQBB.h:166
Belle2::TOPGeoQBB::TOPGeoQBB
TOPGeoQBB()
Default constructor.
Definition: TOPGeoQBB.h:46
Belle2::TOPGeoPrismEnclosure::getBackThickness
double getBackThickness() const
Returns back wall thickness.
Definition: TOPGeoPrismEnclosure.h:115
Belle2::TOPGeoQBB::printFrontPlateContour
void printFrontPlateContour() const
Print prism enclosure front plate contour (polygon) - for debugging.
Definition: TOPGeoQBB.cc:223
Belle2::TOPGeoQBB::setOuterPanel
void setOuterPanel(const TOPGeoHoneycombPanel &outerPanel)
Sets outer honeycomb panel.
Definition: TOPGeoQBB.h:76
Belle2::TOPGeoQBB
Geometry parameters of Quartz Bar Box (mother class)
Definition: TOPGeoQBB.h:40
Belle2::TOPGeoQBB::getWidth
double getWidth() const
Returns full width.
Definition: TOPGeoQBB.h:112
Belle2::TOPGeoBase
Base class for geometry parameters.
Definition: TOPGeoBase.h:35
Belle2::TOPGeoQBB::getBackPlateContour
std::vector< std::pair< double, double > > getBackPlateContour() const
Returns prism enclosure back plate x-y contour.
Definition: TOPGeoQBB.cc:176
Belle2::TOPGeoQBB::getBackwardContour
std::vector< std::pair< double, double > > getBackwardContour() const
Returns backward x-y contour.
Definition: TOPGeoQBB.cc:108
Belle2::TOPGeoQBB::getMaterial
const std::string & getMaterial() const
Returns the name of material inside QBB.
Definition: TOPGeoQBB.h:148
Belle2::TOPGeoQBB::m_material
std::string m_material
material inside QBB
Definition: TOPGeoQBB.h:280
Belle2::TOPGeoQBB::printPrismEnclosureContour
void printPrismEnclosureContour() const
Print prism enclosure contour (polygon) - for debugging.
Definition: TOPGeoQBB.cc:167
Belle2::TOPGeoHoneycombPanel
Geometry parameters of honeycomb panel.
Definition: TOPGeoHoneycombPanel.h:35
Belle2::TOPGeoQBB::getPrismPosition
double getPrismPosition() const
Returns the position of prism-bar joint wrt QBB back.
Definition: TOPGeoQBB.h:142
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TOPGeoQBB::printInnerPanelContour
void printInnerPanelContour() const
Print inner honeycomb panel contour (polygon) - for debugging.
Definition: TOPGeoQBB.cc:73
Belle2::TOPGeoQBB::m_endPlate
TOPGeoEndPlate m_endPlate
forward end plate
Definition: TOPGeoQBB.h:285
Belle2::TOPGeoQBB::m_prismPosition
float m_prismPosition
position of prism-bar joint wrt QBB back
Definition: TOPGeoQBB.h:279
Belle2::TOPGeoQBB::getInnerPanelContour
std::vector< std::pair< double, double > > getInnerPanelContour() const
Returns inner honeycomb panel x-y contour.
Definition: TOPGeoQBB.cc:56
Belle2::TOPGeoQBB::getLength
double getLength() const
Returns full length.
Definition: TOPGeoQBB.h:127
Belle2::TOPGeoBase::s_unit
static double s_unit
conversion unit for length
Definition: TOPGeoBase.h:96
Belle2::TOPGeoQBB::m_width
float m_width
full width
Definition: TOPGeoQBB.h:277
Belle2::TOPGeoQBB::setEndPlate
void setEndPlate(const TOPGeoEndPlate &endPlate)
Sets forward end plate.
Definition: TOPGeoQBB.h:100
Belle2::TOPGeoQBB::isConsistent
bool isConsistent() const override
Check for consistency of data members.
Definition: TOPGeoQBB.cc:232
Belle2::TOPGeoQBB::printForwardContour
void printForwardContour() const
Print forward contour (polygon) - for debugging.
Definition: TOPGeoQBB.cc:47
Belle2::TOPGeoQBB::getForwardContour
std::vector< std::pair< double, double > > getForwardContour() const
Returns forward x-y contour.
Definition: TOPGeoQBB.cc:23
Belle2::TOPGeoQBB::getInnerPanel
const TOPGeoHoneycombPanel & getInnerPanel() const
Returns inner honeycomb panel.
Definition: TOPGeoQBB.h:154
Belle2::TOPGeoQBB::printBackwardContour
void printBackwardContour() const
Print backward contour (polygon) - for debugging.
Definition: TOPGeoQBB.cc:132
Belle2::TOPGeoQBB::setColdPlate
void setColdPlate(const TOPGeoColdPlate &coldPlate)
Sets forward cold plate.
Definition: TOPGeoQBB.h:106
Belle2::TOPGeoQBB::m_coldPlate
TOPGeoColdPlate m_coldPlate
cold plate
Definition: TOPGeoQBB.h:286
Belle2::TOPGeoQBB::getForwardEndPlate
const TOPGeoEndPlate & getForwardEndPlate() const
Returns forward end plate.
Definition: TOPGeoQBB.h:178
Belle2::TOPGeoQBB::getSideRailsLength
double getSideRailsLength() const
Returns side rails length.
Definition: TOPGeoQBB.h:133
Belle2::TOPGeoQBB::setSideRails
void setSideRails(const TOPGeoSideRails &sideRails)
Sets side rails.
Definition: TOPGeoQBB.h:85
Belle2::TOPGeoQBB::m_length
float m_length
full length
Definition: TOPGeoQBB.h:278
Belle2::TOPGeoEndPlate::getThickness
double getThickness() const
Returns thickness.
Definition: TOPGeoEndPlate.h:59
Belle2::TOPGeoQBB::ClassDefOverride
ClassDefOverride(TOPGeoQBB, 2)
ClassDef.
Belle2::TOPGeoQBB::print
virtual void print(const std::string &title="QBB geometry parameters") const override
Print the content of the class.
Definition: TOPGeoQBB.cc:248
Belle2::TOPGeoQBB::getOuterPanel
const TOPGeoHoneycombPanel & getOuterPanel() const
Returns outer honeycomb panel.
Definition: TOPGeoQBB.h:160
Belle2::TOPGeoQBB::setInnerPanel
void setInnerPanel(const TOPGeoHoneycombPanel &innerPanel)
Sets inner honeycomb panel.
Definition: TOPGeoQBB.h:67
Belle2::TOPGeoEndPlate
Geometry parameters of forward end plate (simplified)
Definition: TOPGeoEndPlate.h:33
Belle2::TOPGeoQBB::printOuterPanelContour
void printOuterPanelContour() const
Print outer honeycomb panel contour (polygon) - for debugging.
Definition: TOPGeoQBB.cc:99
Belle2::TOPGeoQBB::m_prismEnclosure
TOPGeoPrismEnclosure m_prismEnclosure
prism enclosure
Definition: TOPGeoQBB.h:284
Belle2::TOPGeoSideRails::getThickness
double getThickness() const
Returns thickness.
Definition: TOPGeoSideRails.h:62
Belle2::TOPGeoColdPlate
Geometry parameters of cold plate (simplified)
Definition: TOPGeoColdPlate.h:33
Belle2::TOPGeoQBB::getPrismEnclosure
const TOPGeoPrismEnclosure & getPrismEnclosure() const
Returns prism enclosure.
Definition: TOPGeoQBB.h:172
Belle2::TOPGeoQBB::getColdPlate
const TOPGeoColdPlate & getColdPlate() const
Returns cold plate.
Definition: TOPGeoQBB.h:184
Belle2::TOPGeoQBB::printBackPlateContour
void printBackPlateContour() const
Print prism enclosure back plate contour (polygon) - for debugging.
Definition: TOPGeoQBB.cc:196
Belle2::TOPGeoQBB::getOuterPanelContour
std::vector< std::pair< double, double > > getOuterPanelContour() const
Returns outer honeycomb panel x-y contour.
Definition: TOPGeoQBB.cc:82
Belle2::TOPGeoQBB::getPanelWidth
double getPanelWidth() const
Returns panel width used in x-y contours of honeycomb panels.
Definition: TOPGeoQBB.h:118
Belle2::TOPGeoQBB::setPrismEnclosure
void setPrismEnclosure(const TOPGeoPrismEnclosure &prismEnclosure)
Sets prism enclosure.
Definition: TOPGeoQBB.h:91
Belle2::TOPGeoQBB::m_sideRails
TOPGeoSideRails m_sideRails
side rails
Definition: TOPGeoQBB.h:283
Belle2::TOPGeoQBB::m_outerPanel
TOPGeoHoneycombPanel m_outerPanel
outer honeycomb panel
Definition: TOPGeoQBB.h:282
Belle2::TOPGeoQBB::getFrontPlateContour
std::vector< std::pair< double, double > > getFrontPlateContour() const
Returns prism enclosure front plate x-y contour.
Definition: TOPGeoQBB.cc:205