Belle II Software development
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 <Math/Vector3D.h>
16
17namespace Belle2 {
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
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
195
201
207
212 const std::vector<double>& getSingleMergerenvelopeDeltaZ() const {return m_singlemergerenvelopeDeltaZ;}
213
219
225
231
237
243
249
255
260 ROOT::Math::XYZVector getEnvelopeCenterPosition() const {return ROOT::Math::XYZVector(m_envelopeX0, m_envelopeY0, m_envelopeZ0);}
261
266 ROOT::Math::XYZVector getSingleMergeEnvelopePosition() const {return ROOT::Math::XYZVector(m_envelopePosX0, m_envelopePosY0, m_envelopePosZ0);}
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;
314 std::vector<double> m_singlemergerenvelopeDeltaZ;
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
Outer radius of merger PCB assembly envelope.
const std::vector< double > & getSingleMergerenvelopeDeltaZ() const
Returns vector of Z position of the single merger and merger cooling body envelope inside global merg...
std::vector< double > m_mergerSlotID
Merger slot number.
ARICHGeoMerger()
Default constructor.
double getMergerPCBscrewholeR() const
Returns merger PCB screw hole radius.
std::vector< double > m_mergerPosR
Distance from the center in mm.
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 : width.
double m_mergerPCBscrewholePosdY
Merger PCB screw hole position from the left and right sides.
double m_singlemergerenvelopeSizeL
Size of single merger PCB and merger cooling envelop : length.
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
Z0 merger PCB assembly envelope.
void setSingleMergerEnvelopeSizeL(double sizeL)
Set single merger PCB and merger cooling envelop length.
double m_envelopeX0
X0 merger PCB assembly envelope.
const std::vector< double > & getMergerSlotID() const
Returns vector of merger boards slot numbers.
double getMergerPCBscrewholePosdX2() const
Returns merger PCB screw hole position from the top edge.
void setMergerPCBscrewholeR(double screwholeR)
Set merger PCB screw hole radius.
double m_envelopePosX0
Position of the merger inside the envelope.
double m_sizeL
Size of merger PCB : length.
void setEnvelopeOuterRadius(double envelopeOuterRadius)
Set outer radius of merger PCB assembly envelope.
double m_envelopeThickness
Thickness of merger PCB assembly envelope.
double m_thickness
Thickenss of merger PCB.
double m_mergerPCBscrewholePosdX2
Merger PCB screw hole position from the top edge.
void print(const std::string &title="Merger PCB geometry parameters") const
Print the content of the class.
const std::vector< double > & getMergerAngle() const
Returns vector of merger boarts azimuthal angles in polar coordinate system in deg.
double getThickness() const
Returns merger PCB thickness.
ROOT::Math::XYZVector getSingleMergeEnvelopePosition() const
Returns position vector (ROOT::Math::XYZVector) of merger PCB inside the single merger envelope.
std::vector< double > m_mergerAngle
Azimuthal angle of the merger PCB center in polar coordinate system in deg.
void setMergerSlotID(const std::vector< double > &mergerSlotID)
Set vector of merger boards slot numbers.
ClassDef(ARICHGeoMerger, 2)
ClassDef.
double m_envelopePosZ0
Position of the merger inside the envelope.
void setMergerPCBThickness(double thickness)
Set merger PCB thickness.
ROOT::Math::XYZVector getEnvelopeCenterPosition() const
Returns position vector (ROOT::Math::XYZVector) of merger PCB assembly envelope.
double m_envelopePosY0
Position of the merger inside the envelope.
const std::vector< double > & getMergerOrientation() const
Returns vector of merger boarts orientations in deg.
void setMergerOrientation(const std::vector< double > &mergerOrientation)
Set vector of merger boarts orientations.
double m_envelopeY0
Y0 merger PCB assembly envelope.
const std::vector< double > & getMergerPosR() const
Returns vector of merger boards distances from the center in mm.
const std::string & getMergerPCBMaterialName() const
Returns merger PCB material name.
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
Thickenss of single merger PCB and merger cooling envelop.
double getEnvelopeInnerRadius() const
Returns Inner radius of merger PCB assembly envelope.
void setEnvelopeThickness(double envelopeThickness)
Set thickness of merger PCB assembly envelope.
void setSingleMergerEnvelopeSizeW(double sizeW)
Set single merger PCB and merger cooling envelop width.
std::vector< double > m_singlemergerenvelopeDeltaZ
Z position of the single merger and merger cooling body envelope inside global merger envelope in mm.
std::vector< double > m_mergerOrientation
Orientation of the merger board 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 bottom edge.
double getEnvelopeThickness() const
Returns Thickness of merger PCB assembly envelope.
double m_mergerPCBscrewholeR
Merger PCB screw hole radius.
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.
void setMergerPCBscrewholePosdX1(double screwholePosdX1)
Set merger PCB screw hole position from the bottom edge.
double m_envelopeInnerRadius
Inner radius of merger PCB assembly envelope.
Abstract base class for different kinds of events.