Belle II Software  release-08-01-10
ARICHGeoMerger.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 <arich/dbobjects/ARICHGeoBase.h>
12 #include <string>
13 
14 //root
15 #include <TVector3.h>
16 
17 namespace Belle2 {
26  class ARICHGeoMerger: public ARICHGeoBase {
27 
28  public:
29 
34  {}
35 
40  void setMergerPCBMaterialName(const std::string& materialName) {m_mergerPCBMaterialName = materialName;}
41 
46  void setMergerPCBLenght(double sizeL) {m_sizeL = sizeL;}
47 
52  void setMergerPCBWidth(double sizeW) {m_sizeW = sizeW;}
53 
58  void setMergerPCBThickness(double thickness) {m_thickness = thickness;}
59 
64  void setSingleMergerEnvelopeSizeL(double sizeL) {m_singlemergerenvelopeSizeL = sizeL;}
65 
71 
77 
82  void setSingleMergerenvelopeDeltaZ(const std::vector<double>& singlemergerenvelopeDeltaZ) { m_singlemergerenvelopeDeltaZ = singlemergerenvelopeDeltaZ;}
83 
88  void setMergerPCBscrewholeR(double screwholeR) {m_mergerPCBscrewholeR = screwholeR;}
89 
94  void setMergerPCBscrewholePosdY(double screwholePosdY) { m_mergerPCBscrewholePosdY = screwholePosdY;}
95 
100  void setMergerPCBscrewholePosdX1(double screwholePosdX1) { m_mergerPCBscrewholePosdX1 = screwholePosdX1;}
101 
106  void setMergerPCBscrewholePosdX2(double screwholePosdX2) { m_mergerPCBscrewholePosdX2 = screwholePosdX2;}
107 
112  void setEnvelopeOuterRadius(double envelopeOuterRadius) {m_envelopeOuterRadius = envelopeOuterRadius;}
113 
118  void setEnvelopeInnerRadius(double envelopeInnerRadius) {m_envelopeInnerRadius = envelopeInnerRadius;}
119 
124  void setEnvelopeThickness(double envelopeThickness) {m_envelopeThickness = envelopeThickness;}
125 
132  void setEnvelopeCenterPosition(double x0, double y0, double z0) {m_envelopeX0 = x0; m_envelopeY0 = y0; m_envelopeZ0 = z0;}
133 
140  void setSingleMergeEnvelopePosition(double x0, double y0, double z0) {m_envelopePosX0 = x0; m_envelopePosY0 = y0; m_envelopePosZ0 = z0;}
141 
146  void setMergerSlotID(const std::vector<double>& mergerSlotID) { m_mergerSlotID = mergerSlotID;}
147 
152  void setMergerPosR(const std::vector<double>& mergerPosR) { m_mergerPosR = mergerPosR;}
153 
158  void setMergerAngle(const std::vector<double>& mergerAngle) { m_mergerAngle = mergerAngle;}
159 
164  void setMergerOrientation(const std::vector<double>& mergerOrientation) { m_mergerOrientation = mergerOrientation;}
165 
170  const std::string& getMergerPCBMaterialName() const {return m_mergerPCBMaterialName;}
171 
176  double getSizeL() const {return m_sizeL;}
177 
182  double getSizeW() const {return m_sizeW;}
183 
188  double getThickness() const {return m_thickness;}
189 
194  double getSingleMergerEnvelopeSizeL() const {return m_singlemergerenvelopeSizeL;}
195 
201 
207 
212  const std::vector<double>& getSingleMergerenvelopeDeltaZ() const {return m_singlemergerenvelopeDeltaZ;}
213 
218  double getMergerPCBscrewholeR() const {return m_mergerPCBscrewholeR;}
219 
225 
231 
237 
243 
249 
254  double getEnvelopeThickness() const {return m_envelopeThickness;}
255 
260  TVector3 getEnvelopeCenterPosition() const {return TVector3(m_envelopeX0, m_envelopeY0, m_envelopeZ0);}
261 
267 
272  const std::vector<double>& getMergerSlotID() const {return m_mergerSlotID;}
273 
278  const std::vector<double>& getMergerPosR() const {return m_mergerPosR;}
279 
284  const std::vector<double>& getMergerAngle() const {return m_mergerAngle;}
285 
290  const std::vector<double>& getMergerOrientation() const {return m_mergerOrientation;}
291 
296  void print(const std::string& title = "Merger PCB geometry parameters") const;
297 
303 
304  private:
305 
307  double m_sizeL = 0.0;
308  double m_sizeW = 0.0;
309  double m_thickness = 0.0;
310  double m_singlemergerenvelopeSizeL = 0.0;
314  std::vector<double> m_singlemergerenvelopeDeltaZ;
315  double m_mergerPCBscrewholeR = 0.0;
319  double m_envelopeOuterRadius = 0.0;
320  double m_envelopeInnerRadius = 0.0;
321  double m_envelopeThickness = 0.0;
322  double m_envelopeX0 = 0.0;
323  double m_envelopeY0 = 0.0;
324  double m_envelopeZ0 = 0.0;
325  double m_envelopePosX0 = 0.0;
326  double m_envelopePosY0 = 0.0;
327  double m_envelopePosZ0 = 0.0;
328  std::vector<double> m_mergerSlotID;
329  std::vector<double> m_mergerPosR;
330  std::vector<double> m_mergerAngle;
331  std::vector<double> m_mergerOrientation;
335  };
336 
338 } // end namespace Belle2
Base class for geometry parameters.
Definition: ARICHGeoBase.h:24
Geometry parameters of Merger PCB.
void setMergerPCBWidth(double sizeW)
Set merger PCB width.
void setMergerAngle(const std::vector< double > &mergerAngle)
Set vector of merger boarts azimuthal angles in polar coordinate system in deg.
void setEnvelopeCenterPosition(double x0, double y0, double z0)
Set position of merger PCB assembly envelope.
void setSingleMergerenvelopeDeltaZ(const std::vector< double > &singlemergerenvelopeDeltaZ)
Set vector of Z position of the single merger and merger cooling body envelope inside global merger e...
void setMergerPCBscrewholePosdX2(double screwholePosdX2)
Set merger PCB screw hole position from the top edge.
double m_envelopeOuterRadius
Merger PCB screw hole position from the top edge.
const std::vector< double > & getMergerSlotID() const
Returns vector of merger boards slot numbers.
std::vector< double > m_mergerSlotID
Position of the merger inside the envelope.
ARICHGeoMerger()
Default constructor.
double getMergerPCBscrewholeR() const
Returns merger PCB screw hole radius.
std::vector< double > m_mergerPosR
Merger slot number.
double getSingleMergerEnvelopeThickness() const
Returns single merger PCB and merger cooling envelop thickness.
double getSizeW() const
Returns merger PCB width.
void checkMergerPositionsDataConsistency() const
Check data consistency of the merger positions In case of failure print the basf2 ERROR message using...
void setSingleMergerEnvelopeThickness(double thickness)
Set single merger PCB and merger cooling envelop thickness.
double m_sizeW
Size of merger PCB : width.
void setMergerPCBLenght(double sizeL)
Set merger PCB lenght.
double m_singlemergerenvelopeSizeW
Size of single merger PCB and merger cooling envelop : length.
double m_mergerPCBscrewholePosdY
Merger PCB screw hole radius.
const std::string & getMergerPCBMaterialName() const
Returns merger PCB material name.
std::string m_mergerPCBMaterialName
Material of merger PCB.
double getMergerPCBscrewholePosdX1() const
Returns merger PCB screw hole position from the bottom edge.
void setMergerPCBMaterialName(const std::string &materialName)
Set merger PCB material name.
void setMergerPosR(const std::vector< double > &mergerPosR)
Set vector of merger boards distances from the center in mm.
double getEnvelopeOuterRadius() const
Returns Outer radius of merger PCB assembly envelope.
double m_envelopeZ0
Y0 merger PCB assembly envelope.
void setSingleMergerEnvelopeSizeL(double sizeL)
Set single merger PCB and merger cooling envelop length.
double m_envelopeX0
Thickness of merger PCB assembly envelope.
double getMergerPCBscrewholePosdX2() const
Returns merger PCB screw hole position from the top edge.
TVector3 getEnvelopeCenterPosition() const
Returns position vector (TVector3) of merger PCB assembly envelope.
void setMergerPCBscrewholeR(double screwholeR)
Set merger PCB screw hole radius.
double m_envelopePosX0
Z0 merger PCB assembly envelope.
double m_sizeL
Size of merger PCB : length.
void setEnvelopeOuterRadius(double envelopeOuterRadius)
Set outer radius of merger PCB assembly envelope.
double m_envelopeThickness
Inner radius of merger PCB assembly envelope.
double m_thickness
Thickenss of merger PCB.
double m_mergerPCBscrewholePosdX2
Merger PCB screw hole position from the bottom edge.
void print(const std::string &title="Merger PCB geometry parameters") const
Print the content of the class.
TVector3 getSingleMergeEnvelopePosition() const
Returns position vector (TVector3) of merger PCB inside the single merger envelope.
double getThickness() const
Returns merger PCB thickness.
std::vector< double > m_mergerAngle
Distance from the center in mm.
void setMergerSlotID(const std::vector< double > &mergerSlotID)
Set vector of merger boards slot numbers.
ClassDef(ARICHGeoMerger, 2)
Orientation of the merger board in deg.
double m_envelopePosZ0
Position of the merger inside the envelope.
void setMergerPCBThickness(double thickness)
Set merger PCB thickness.
double m_envelopePosY0
Position of the merger inside the envelope.
void setMergerOrientation(const std::vector< double > &mergerOrientation)
Set vector of merger boarts orientations.
double m_envelopeY0
X0 merger PCB assembly envelope.
double getSingleMergerEnvelopeSizeW() const
Returns single merger PCB and merger cooling envelop width.
void setSingleMergeEnvelopePosition(double x0, double y0, double z0)
Set position of merger PCB inside the single merger envelope.
double m_singlemergerenvelopeThickness
Size of single merger PCB and merger cooling envelop : width.
double getEnvelopeInnerRadius() const
Returns Inner radius of merger PCB assembly envelope.
void setEnvelopeThickness(double envelopeThickness)
Set thickness of merger PCB assembly envelope.
const std::vector< double > & getMergerPosR() const
Returns vector of merger boards distances from the center in mm.
const std::vector< double > & getMergerOrientation() const
Returns vector of merger boarts orientations in deg.
void setSingleMergerEnvelopeSizeW(double sizeW)
Set single merger PCB and merger cooling envelop width.
std::vector< double > m_singlemergerenvelopeDeltaZ
Thickenss of single merger PCB and merger cooling envelop.
std::vector< double > m_mergerOrientation
Azimuthal angle of the merger PCB center in polar coordinate system in deg.
double getSingleMergerEnvelopeSizeL() const
Returns single merger PCB and merger cooling envelop length.
void setMergerPCBscrewholePosdY(double screwholePosdY)
Set merger PCB screw hole position from the left and right sides.
double getSizeL() const
Returns merger PCB lenght.
double m_mergerPCBscrewholePosdX1
Merger PCB screw hole position from the left and right sides.
double getEnvelopeThickness() const
Returns Thickness of merger PCB assembly envelope.
void setEnvelopeInnerRadius(double envelopeInnerRadius)
Set inner radius of merger PCB assembly envelope.
double getMergerPCBscrewholePosdY() const
Returns merger PCB screw hole position from the left and right sides.
const std::vector< double > & getSingleMergerenvelopeDeltaZ() const
Returns vector of Z position of the single merger and merger cooling body envelope inside global merg...
void setMergerPCBscrewholePosdX1(double screwholePosdX1)
Set merger PCB screw hole position from the bottom edge.
const std::vector< double > & getMergerAngle() const
Returns vector of merger boarts azimuthal angles in polar coordinate system in deg.
double m_envelopeInnerRadius
Outer radius of merger PCB assembly envelope.
Abstract base class for different kinds of events.