Belle II Software  release-05-01-25
ARICHGeoMerger.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2018 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Leonid Burmistrov *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <arich/dbobjects/ARICHGeoBase.h>
14 #include <string>
15 
16 //root
17 #include <TVector3.h>
18 
19 namespace Belle2 {
28  class ARICHGeoMerger: public ARICHGeoBase {
29 
30  public:
31 
36  {}
37 
42  void setMergerPCBMaterialName(const std::string& materialName) {m_mergerPCBMaterialName = materialName;}
43 
48  void setMergerPCBLenght(double sizeL) {m_sizeL = sizeL;}
49 
54  void setMergerPCBWidth(double sizeW) {m_sizeW = sizeW;}
55 
60  void setMergerPCBThickness(double thickness) {m_thickness = thickness;}
61 
66  void setSingleMergerEnvelopeSizeL(double sizeL) {m_singlemergerenvelopeSizeL = sizeL;}
67 
72  void setSingleMergerEnvelopeSizeW(double sizeW) {m_singlemergerenvelopeSizeW = sizeW;}
73 
78  void setSingleMergerEnvelopeThickness(double thickness) {m_singlemergerenvelopeThickness = thickness;}
79 
84  void setSingleMergerenvelopeDeltaZ(const std::vector<double>& singlemergerenvelopeDeltaZ) { m_singlemergerenvelopeDeltaZ = singlemergerenvelopeDeltaZ;}
85 
90  void setMergerPCBscrewholeR(double screwholeR) {m_mergerPCBscrewholeR = screwholeR;}
91 
96  void setMergerPCBscrewholePosdY(double screwholePosdY) { m_mergerPCBscrewholePosdY = screwholePosdY;}
97 
102  void setMergerPCBscrewholePosdX1(double screwholePosdX1) { m_mergerPCBscrewholePosdX1 = screwholePosdX1;}
103 
108  void setMergerPCBscrewholePosdX2(double screwholePosdX2) { m_mergerPCBscrewholePosdX2 = screwholePosdX2;}
109 
114  void setEnvelopeOuterRadius(double envelopeOuterRadius) {m_envelopeOuterRadius = envelopeOuterRadius;}
115 
120  void setEnvelopeInnerRadius(double envelopeInnerRadius) {m_envelopeInnerRadius = envelopeInnerRadius;}
121 
126  void setEnvelopeThickness(double envelopeThickness) {m_envelopeThickness = envelopeThickness;}
127 
134  void setEnvelopeCenterPosition(double x0, double y0, double z0) {m_envelopeX0 = x0; m_envelopeY0 = y0; m_envelopeZ0 = z0;}
135 
142  void setSingleMergeEnvelopePosition(double x0, double y0, double z0) {m_envelopePosX0 = x0; m_envelopePosY0 = y0; m_envelopePosZ0 = z0;}
143 
148  void setMergerSlotID(const std::vector<double>& mergerSlotID) { m_mergerSlotID = mergerSlotID;}
149 
154  void setMergerPosR(const std::vector<double>& mergerPosR) { m_mergerPosR = mergerPosR;}
155 
160  void setMergerAngle(const std::vector<double>& mergerAngle) { m_mergerAngle = mergerAngle;}
161 
166  void setMergerOrientation(const std::vector<double>& mergerOrientation) { m_mergerOrientation = mergerOrientation;}
167 
172  const std::string& getMergerPCBMaterialName() const {return m_mergerPCBMaterialName;}
173 
178  double getSizeL() const {return m_sizeL;}
179 
184  double getSizeW() const {return m_sizeW;}
185 
190  double getThickness() const {return m_thickness;}
191 
196  double getSingleMergerEnvelopeSizeL() const {return m_singlemergerenvelopeSizeL;}
197 
203 
209 
214  const std::vector<double>& getSingleMergerenvelopeDeltaZ() const {return m_singlemergerenvelopeDeltaZ;}
215 
220  double getMergerPCBscrewholeR() const {return m_mergerPCBscrewholeR;}
221 
227 
233 
239 
244  double getEnvelopeOuterRadius() const {return m_envelopeOuterRadius;}
245 
250  double getEnvelopeInnerRadius() const {return m_envelopeInnerRadius;}
251 
256  double getEnvelopeThickness() const {return m_envelopeThickness;}
257 
262  TVector3 getEnvelopeCenterPosition() const {return TVector3(m_envelopeX0, m_envelopeY0, m_envelopeZ0);}
263 
269 
274  const std::vector<double>& getMergerSlotID() const {return m_mergerSlotID;}
275 
280  const std::vector<double>& getMergerPosR() const {return m_mergerPosR;}
281 
286  const std::vector<double>& getMergerAngle() const {return m_mergerAngle;}
287 
292  const std::vector<double>& getMergerOrientation() const {return m_mergerOrientation;}
293 
298  void print(const std::string& title = "Merger PCB geometry parameters") const;
299 
305 
306  private:
307 
308  std::string m_mergerPCBMaterialName;
309  double m_sizeL = 0.0;
310  double m_sizeW = 0.0;
311  double m_thickness = 0.0;
312  double m_singlemergerenvelopeSizeL = 0.0;
313  double m_singlemergerenvelopeSizeW = 0.0;
314  double m_singlemergerenvelopeThickness = 0.0;
316  std::vector<double> m_singlemergerenvelopeDeltaZ;
317  double m_mergerPCBscrewholeR = 0.0;
320  double m_mergerPCBscrewholePosdX2 = 0.0;
321  double m_envelopeOuterRadius = 0.0;
322  double m_envelopeInnerRadius = 0.0;
323  double m_envelopeThickness = 0.0;
324  double m_envelopeX0 = 0.0;
325  double m_envelopeY0 = 0.0;
326  double m_envelopeZ0 = 0.0;
327  double m_envelopePosX0 = 0.0;
328  double m_envelopePosY0 = 0.0;
329  double m_envelopePosZ0 = 0.0;
330  std::vector<double> m_mergerSlotID;
331  std::vector<double> m_mergerPosR;
332  std::vector<double> m_mergerAngle;
333  std::vector<double> m_mergerOrientation;
337  };
338 
340 } // end namespace Belle2
Belle2::ARICHGeoMerger::getEnvelopeInnerRadius
double getEnvelopeInnerRadius() const
Returns Inner radius of merger PCB assembly envelope.
Definition: ARICHGeoMerger.h:258
Belle2::ARICHGeoMerger::m_mergerOrientation
std::vector< double > m_mergerOrientation
Azimuthal angle of the merger PCB center in polar coordinate system in deg.
Definition: ARICHGeoMerger.h:341
Belle2::ARICHGeoMerger::getEnvelopeThickness
double getEnvelopeThickness() const
Returns Thickness of merger PCB assembly envelope.
Definition: ARICHGeoMerger.h:264
Belle2::ARICHGeoMerger::getEnvelopeCenterPosition
TVector3 getEnvelopeCenterPosition() const
Returns position vector (TVector3) of merger PCB assembly envelope.
Definition: ARICHGeoMerger.h:270
Belle2::ARICHGeoMerger::setMergerPCBscrewholePosdX1
void setMergerPCBscrewholePosdX1(double screwholePosdX1)
Set merger PCB screw hole position from the bottom edge.
Definition: ARICHGeoMerger.h:110
Belle2::ARICHGeoMerger::getMergerPCBscrewholePosdX1
double getMergerPCBscrewholePosdX1() const
Returns merger PCB screw hole position from the bottom edge.
Definition: ARICHGeoMerger.h:240
Belle2::ARICHGeoMerger::getMergerPCBscrewholePosdY
double getMergerPCBscrewholePosdY() const
Returns merger PCB screw hole position from the left and right sides.
Definition: ARICHGeoMerger.h:234
Belle2::ARICHGeoMerger::m_mergerSlotID
std::vector< double > m_mergerSlotID
Position of the merger inside the envelope.
Definition: ARICHGeoMerger.h:338
Belle2::ARICHGeoMerger::m_thickness
double m_thickness
Thickenss of merger PCB.
Definition: ARICHGeoMerger.h:319
Belle2::ARICHGeoMerger::setEnvelopeCenterPosition
void setEnvelopeCenterPosition(double x0, double y0, double z0)
Set position of merger PCB assembly envelope.
Definition: ARICHGeoMerger.h:142
Belle2::ARICHGeoMerger::m_singlemergerenvelopeDeltaZ
std::vector< double > m_singlemergerenvelopeDeltaZ
Thickenss of single merger PCB and merger cooling envelop.
Definition: ARICHGeoMerger.h:324
Belle2::ARICHGeoMerger::m_envelopeOuterRadius
double m_envelopeOuterRadius
Merger PCB screw hole position from the top edge.
Definition: ARICHGeoMerger.h:329
Belle2::ARICHGeoMerger::getSingleMergerEnvelopeThickness
double getSingleMergerEnvelopeThickness() const
Returns single merger PCB and merger cooling envelop thickness.
Definition: ARICHGeoMerger.h:216
Belle2::ARICHGeoMerger::getMergerPCBscrewholeR
double getMergerPCBscrewholeR() const
Returns merger PCB screw hole radius.
Definition: ARICHGeoMerger.h:228
Belle2::ARICHGeoMerger::setMergerPosR
void setMergerPosR(const std::vector< double > &mergerPosR)
Set vector of merger boards distances from the center in mm.
Definition: ARICHGeoMerger.h:162
Belle2::ARICHGeoMerger::m_mergerAngle
std::vector< double > m_mergerAngle
Distance from the center in mm.
Definition: ARICHGeoMerger.h:340
Belle2::ARICHGeoMerger::setMergerPCBscrewholeR
void setMergerPCBscrewholeR(double screwholeR)
Set merger PCB screw hole radius.
Definition: ARICHGeoMerger.h:98
Belle2::ARICHGeoMerger::setMergerOrientation
void setMergerOrientation(const std::vector< double > &mergerOrientation)
Set vector of merger boarts orientations.
Definition: ARICHGeoMerger.h:174
Belle2::ARICHGeoMerger::getMergerPCBscrewholePosdX2
double getMergerPCBscrewholePosdX2() const
Returns merger PCB screw hole position from the top edge.
Definition: ARICHGeoMerger.h:246
Belle2::ARICHGeoMerger::print
void print(const std::string &title="Merger PCB geometry parameters") const
Print the content of the class.
Definition: ARICHGeoMerger.cc:23
Belle2::ARICHGeoMerger::m_sizeL
double m_sizeL
Size of merger PCB : length.
Definition: ARICHGeoMerger.h:317
Belle2::ARICHGeoMerger::setMergerPCBMaterialName
void setMergerPCBMaterialName(const std::string &materialName)
Set merger PCB material name.
Definition: ARICHGeoMerger.h:50
Belle2::ARICHGeoMerger::ClassDef
ClassDef(ARICHGeoMerger, 2)
Orientation of the merger board in deg.
Belle2::ARICHGeoMerger::m_envelopeInnerRadius
double m_envelopeInnerRadius
Outer radius of merger PCB assembly envelope.
Definition: ARICHGeoMerger.h:330
Belle2::ARICHGeoMerger::m_mergerPosR
std::vector< double > m_mergerPosR
Merger slot number.
Definition: ARICHGeoMerger.h:339
Belle2::ARICHGeoMerger::setMergerPCBLenght
void setMergerPCBLenght(double sizeL)
Set merger PCB lenght.
Definition: ARICHGeoMerger.h:56
Belle2::ARICHGeoMerger::m_singlemergerenvelopeSizeW
double m_singlemergerenvelopeSizeW
Size of single merger PCB and merger cooling envelop : length.
Definition: ARICHGeoMerger.h:321
Belle2::ARICHGeoMerger::getMergerPCBMaterialName
const std::string & getMergerPCBMaterialName() const
Returns merger PCB material name.
Definition: ARICHGeoMerger.h:180
Belle2::ARICHGeoMerger::m_mergerPCBscrewholePosdX1
double m_mergerPCBscrewholePosdX1
Merger PCB screw hole position from the left and right sides.
Definition: ARICHGeoMerger.h:327
Belle2::ARICHGeoMerger::getSizeW
double getSizeW() const
Returns merger PCB width.
Definition: ARICHGeoMerger.h:192
Belle2::ARICHGeoMerger::setSingleMergerEnvelopeThickness
void setSingleMergerEnvelopeThickness(double thickness)
Set single merger PCB and merger cooling envelop thickness.
Definition: ARICHGeoMerger.h:86
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ARICHGeoMerger::setSingleMergerEnvelopeSizeW
void setSingleMergerEnvelopeSizeW(double sizeW)
Set single merger PCB and merger cooling envelop width.
Definition: ARICHGeoMerger.h:80
Belle2::ARICHGeoMerger::setSingleMergerenvelopeDeltaZ
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...
Definition: ARICHGeoMerger.h:92
Belle2::ARICHGeoMerger::getMergerAngle
const std::vector< double > & getMergerAngle() const
Returns vector of merger boarts azimuthal angles in polar coordinate system in deg.
Definition: ARICHGeoMerger.h:294
Belle2::ARICHGeoMerger
Geometry parameters of Merger PCB.
Definition: ARICHGeoMerger.h:36
Belle2::ARICHGeoMerger::getMergerSlotID
const std::vector< double > & getMergerSlotID() const
Returns vector of merger boards slot numbers.
Definition: ARICHGeoMerger.h:282
Belle2::ARICHGeoMerger::setMergerPCBscrewholePosdX2
void setMergerPCBscrewholePosdX2(double screwholePosdX2)
Set merger PCB screw hole position from the top edge.
Definition: ARICHGeoMerger.h:116
Belle2::ARICHGeoMerger::m_envelopePosX0
double m_envelopePosX0
Z0 merger PCB assembly envelope.
Definition: ARICHGeoMerger.h:335
Belle2::ARICHGeoMerger::m_singlemergerenvelopeThickness
double m_singlemergerenvelopeThickness
Size of single merger PCB and merger cooling envelop : width.
Definition: ARICHGeoMerger.h:322
Belle2::ARICHGeoMerger::getSingleMergerEnvelopeSizeW
double getSingleMergerEnvelopeSizeW() const
Returns single merger PCB and merger cooling envelop width.
Definition: ARICHGeoMerger.h:210
Belle2::ARICHGeoMerger::m_sizeW
double m_sizeW
Size of merger PCB : width.
Definition: ARICHGeoMerger.h:318
Belle2::ARICHGeoMerger::setMergerAngle
void setMergerAngle(const std::vector< double > &mergerAngle)
Set vector of merger boarts azimuthal angles in polar coordinate system in deg.
Definition: ARICHGeoMerger.h:168
Belle2::ARICHGeoMerger::m_mergerPCBMaterialName
std::string m_mergerPCBMaterialName
Material of merger PCB.
Definition: ARICHGeoMerger.h:316
Belle2::ARICHGeoMerger::getThickness
double getThickness() const
Returns merger PCB thickness.
Definition: ARICHGeoMerger.h:198
Belle2::ARICHGeoMerger::setEnvelopeInnerRadius
void setEnvelopeInnerRadius(double envelopeInnerRadius)
Set inner radius of merger PCB assembly envelope.
Definition: ARICHGeoMerger.h:128
Belle2::ARICHGeoMerger::checkMergerPositionsDataConsistency
void checkMergerPositionsDataConsistency() const
Check data consistency of the merger positions In case of failure print the BASF2 ERROR message using...
Definition: ARICHGeoMerger.cc:68
Belle2::ARICHGeoMerger::setEnvelopeThickness
void setEnvelopeThickness(double envelopeThickness)
Set thickness of merger PCB assembly envelope.
Definition: ARICHGeoMerger.h:134
Belle2::ARICHGeoMerger::m_mergerPCBscrewholePosdY
double m_mergerPCBscrewholePosdY
Merger PCB screw hole radius.
Definition: ARICHGeoMerger.h:326
Belle2::ARICHGeoMerger::setEnvelopeOuterRadius
void setEnvelopeOuterRadius(double envelopeOuterRadius)
Set outer radius of merger PCB assembly envelope.
Definition: ARICHGeoMerger.h:122
Belle2::ARICHGeoMerger::getEnvelopeOuterRadius
double getEnvelopeOuterRadius() const
Returns Outer radius of merger PCB assembly envelope.
Definition: ARICHGeoMerger.h:252
Belle2::ARICHGeoMerger::getSingleMergeEnvelopePosition
TVector3 getSingleMergeEnvelopePosition() const
Returns position vector (TVector3) of merger PCB inside the single merger envelope.
Definition: ARICHGeoMerger.h:276
Belle2::ARICHGeoMerger::m_envelopeThickness
double m_envelopeThickness
Inner radius of merger PCB assembly envelope.
Definition: ARICHGeoMerger.h:331
Belle2::ARICHGeoMerger::setMergerPCBThickness
void setMergerPCBThickness(double thickness)
Set merger PCB thickness.
Definition: ARICHGeoMerger.h:68
Belle2::ARICHGeoMerger::setMergerPCBWidth
void setMergerPCBWidth(double sizeW)
Set merger PCB width.
Definition: ARICHGeoMerger.h:62
Belle2::ARICHGeoMerger::getMergerOrientation
const std::vector< double > & getMergerOrientation() const
Returns vector of merger boarts orientations in deg.
Definition: ARICHGeoMerger.h:300
Belle2::ARICHGeoMerger::setSingleMergeEnvelopePosition
void setSingleMergeEnvelopePosition(double x0, double y0, double z0)
Set position of merger PCB inside the single merger envelope.
Definition: ARICHGeoMerger.h:150
Belle2::ARICHGeoMerger::setMergerSlotID
void setMergerSlotID(const std::vector< double > &mergerSlotID)
Set vector of merger boards slot numbers.
Definition: ARICHGeoMerger.h:156
Belle2::ARICHGeoMerger::setMergerPCBscrewholePosdY
void setMergerPCBscrewholePosdY(double screwholePosdY)
Set merger PCB screw hole position from the left and right sides.
Definition: ARICHGeoMerger.h:104
Belle2::ARICHGeoMerger::getSingleMergerEnvelopeSizeL
double getSingleMergerEnvelopeSizeL() const
Returns single merger PCB and merger cooling envelop length.
Definition: ARICHGeoMerger.h:204
Belle2::ARICHGeoMerger::m_envelopeY0
double m_envelopeY0
X0 merger PCB assembly envelope.
Definition: ARICHGeoMerger.h:333
Belle2::ARICHGeoMerger::m_envelopeZ0
double m_envelopeZ0
Y0 merger PCB assembly envelope.
Definition: ARICHGeoMerger.h:334
Belle2::ARICHGeoMerger::m_mergerPCBscrewholePosdX2
double m_mergerPCBscrewholePosdX2
Merger PCB screw hole position from the bottom edge.
Definition: ARICHGeoMerger.h:328
Belle2::ARICHGeoMerger::getSizeL
double getSizeL() const
Returns merger PCB lenght.
Definition: ARICHGeoMerger.h:186
Belle2::ARICHGeoMerger::m_envelopePosY0
double m_envelopePosY0
Position of the merger inside the envelope.
Definition: ARICHGeoMerger.h:336
Belle2::ARICHGeoMerger::getSingleMergerenvelopeDeltaZ
const std::vector< double > & getSingleMergerenvelopeDeltaZ() const
Returns vector of Z position of the single merger and merger cooling body envelope inside global merg...
Definition: ARICHGeoMerger.h:222
Belle2::ARICHGeoMerger::m_envelopePosZ0
double m_envelopePosZ0
Position of the merger inside the envelope.
Definition: ARICHGeoMerger.h:337
Belle2::ARICHGeoMerger::ARICHGeoMerger
ARICHGeoMerger()
Default constructor.
Definition: ARICHGeoMerger.h:43
Belle2::ARICHGeoMerger::m_envelopeX0
double m_envelopeX0
Thickness of merger PCB assembly envelope.
Definition: ARICHGeoMerger.h:332
Belle2::ARICHGeoMerger::setSingleMergerEnvelopeSizeL
void setSingleMergerEnvelopeSizeL(double sizeL)
Set single merger PCB and merger cooling envelop length.
Definition: ARICHGeoMerger.h:74
Belle2::ARICHGeoMerger::getMergerPosR
const std::vector< double > & getMergerPosR() const
Returns vector of merger boards distances from the center in mm.
Definition: ARICHGeoMerger.h:288