Belle II Software  release-08-01-10
ARICHGeoCooling.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 ARICHGeoCooling: public ARICHGeoBase {
27 
28  public:
29 
34  {}
35 
40  void setCoolingPipeMaterialName(const std::string& materialName) {m_coolingPipeMaterialName = materialName;}
41 
46  void setRmin(double rmin) {m_Rmin = rmin;}
47 
52  void setRmax(double rmax) {m_Rmax = rmax;}
53 
58  void setEnvelopeOuterRadius(double envelopeOuterRadius) {m_envelopeOuterRadius = envelopeOuterRadius;}
59 
64  void setEnvelopeInnerRadius(double envelopeInnerRadius) {m_envelopeInnerRadius = envelopeInnerRadius;}
65 
70  void setEnvelopeThickness(double envelopeThickness) {m_envelopeThickness = envelopeThickness;}
71 
78  void setEnvelopeCenterPosition(double x0, double y0, double z0) { m_envelopeX0 = x0; m_envelopeY0 = y0; m_envelopeZ0 = z0; }
79 
86  void setCoolingGeometryID(const std::vector<double>& coolingGeometryID) { m_coolingGeometryID = coolingGeometryID; }
87 
92  void setCoolingL(const std::vector<double>& coolingL) { m_coolingL = coolingL;}
93 
98  void setCoolingPosPhi(const std::vector<double>& coolingPosPhi) { m_coolingPosPhi = coolingPosPhi; }
99 
104  void setCoolingPosR(const std::vector<double>& coolingPosR) { m_coolingPosR = coolingPosR; }
105 
110  void setCoolinRotationAngle(const std::vector<double>& coolinRotationAngle) { m_coolinRotationAngle = coolinRotationAngle; }
111 
116  void setCoolingTestPlateMaterialName(const std::string& materialName) {m_coolingTestPlateMaterialName = materialName;}
117 
122  void setColdTubeMaterialName(const std::string& materialName) {m_coldTubeMaterialName = materialName;}
123 
131 
136  void setColdTubeR(double coldTubeR) {m_coldTubeR = coldTubeR;}
137 
142  void setColdTubeSubtractedR(double coldTubeSubtractedR) {m_coldTubeSubtractedR = coldTubeSubtractedR;}
143 
148  void setColdTubeWallThickness(double coldTubeWallThickness) {m_coldTubeWallThickness = coldTubeWallThickness;}
149 
154  void setDepthColdTubeInPlate(double depthColdTubeInPlate) {m_depthColdTubeInPlate = depthColdTubeInPlate;}
155 
160  void setColdTubeSpacing(double coldTubeSpacing) {m_coldTubeSpacing = coldTubeSpacing;}
161 
166  void setColdTubeNumber(int coldTubeNumber) {m_coldTubeNumber = coldTubeNumber;}
167 
172  void setCoolingTestPlatePosR(const std::vector<double>& coolingTestPlatePosR) { m_coolingTestPlatePosR = coolingTestPlatePosR; }
173 
178  void setCoolingTestPlatePosPhi(const std::vector<double>& coolingTestPlatePosPhi) { m_coolingTestPlatePosPhi = coolingTestPlatePosPhi; }
179 
184  void setCoolingTestPlatePosZ0(const std::vector<double>& coolingTestPlatePosZ0) { m_coolingTestPlatePosZ0 = coolingTestPlatePosZ0; }
185 
190  const std::string& getCoolingPipeMaterialName() const { return m_coolingPipeMaterialName; }
191 
196  double getRmin() const { return m_Rmin; }
197 
202  double getRmax() const { return m_Rmax; }
203 
209 
215 
220  double getEnvelopeThickness() const { return m_envelopeThickness; }
221 
226  TVector3 getEnvelopeCenterPosition() const { return TVector3(m_envelopeX0, m_envelopeY0, m_envelopeZ0); }
227 
232  const std::vector<double>& getCoolingGeometryID() const { return m_coolingGeometryID; }
233 
238  const std::vector<double>& getCoolingL() const { return m_coolingL; }
239 
244  const std::vector<double>& getCoolingPosPhi() const { return m_coolingPosPhi; }
245 
250  const std::vector<double>& getCoolingPosR() const { return m_coolingPosR; }
251 
256  const std::vector<double>& getCoolinRotationAngle() const { return m_coolinRotationAngle; }
257 
263 
268  const std::string& getColdTubeMaterialName() const { return m_coldTubeMaterialName; }
269 
275 
280  double getColdTubeR() const { return m_coldTubeR; }
281 
287 
293 
299 
304  double getColdTubeSpacing() const { return m_coldTubeSpacing; }
305 
310  int getColdTubeNumber() const { return m_coldTubeNumber; }
311 
316  const std::vector<double>& getCoolingTestPlatePosR() const { return m_coolingTestPlatePosR; }
317 
322  const std::vector<double>& getCoolingTestPlatePosPhi() const { return m_coolingTestPlatePosPhi; }
323 
328  const std::vector<double>& getCoolingTestPlatePosZ0() const { return m_coolingTestPlatePosZ0; }
329 
334  void print(const std::string& title = "Cooling system geometry parameters") const;
335 
341 
342  private:
343 
345  double m_Rmin = 0.0;
346  double m_Rmax = 0.0;
347  double m_envelopeOuterRadius = 0.0;
348  double m_envelopeInnerRadius = 0.0;
349  double m_envelopeThickness = 0.0;
350  double m_envelopeX0 = 0.0;
351  double m_envelopeY0 = 0.0;
352  double m_envelopeZ0 = 0.0;
353  std::vector<double> m_coolingGeometryID;
354  std::vector<double> m_coolingL;
355  std::vector<double>
357  std::vector<double>
359  std::vector<double>
361  //Please note that ARICH detector envelope does not have enough
362  //space for 8 mm thick cooling test plate (5.5 mm is only available).
363  //For this reason the material assigned to the volume (aluminum)
364  //will have a bigger dencity for effective descrption of the material.
370  double m_coldTubeR = 0.0;
371  double m_coldTubeSubtractedR = 0.0;
372  double m_coldTubeWallThickness = 0.0;
373  double m_depthColdTubeInPlate = 0.0;
374  double m_coldTubeSpacing = 0.0;
376  std::vector<double> m_coolingTestPlatePosR;
377  std::vector<double>
379  std::vector<double> m_coolingTestPlatePosZ0;
382  };
383 
385 } // end namespace Belle2
Base class for geometry parameters.
Definition: ARICHGeoBase.h:24
Geometry parameters of Cooling System.
double getColdTubeWallThickness() const
Returns cold tube wall thickness.
void setEnvelopeCenterPosition(double x0, double y0, double z0)
Set position of cooling system assembly envelope.
int m_coldTubeNumber
number of cold tubes in one plate
std::vector< double > m_coolingPosPhi
Azimuthal angle of the cooling system object center in polar coordinate system in deg.
std::vector< double > m_coolingTestPlatePosZ0
Z placement of the cooling test plates center within ARICH mother volume in mm.
double m_envelopeOuterRadius
Outer radius of cooling system assembly envelope.
const std::vector< double > & getCoolingPosR() const
Returns vector of radial distance (r, pho) of the cooling system object center in polar coordinate sy...
void setCoolingTestPlatePosZ0(const std::vector< double > &coolingTestPlatePosZ0)
Set vector of Z placement of the cooling test plates center within ARICH mother volume in mm.
void setDepthColdTubeInPlate(double depthColdTubeInPlate)
Set depth of the cold tube in the cooling test plate.
void setCoolingTestPlateslengths(double lx, double ly, double lz)
Set dimentions of cooling test plates in x, y, z directions.
double m_coldTubeR
Outer radius of cold tubes.
ClassDef(ARICHGeoCooling, 1)
ClassDef.
std::vector< double > m_coolingTestPlatePosPhi
Azimuthal angle of the cooling test plates center in polar coordinate system in deg.
double m_coldTubeSubtractedR
Outer radius of subtracted tubes for cold tube.
double m_Rmin
Size of cooling system pipe : inner radius in mm.
void setCoolingTestPlatePosPhi(const std::vector< double > &coolingTestPlatePosPhi)
Set vector of azimuthal angle of the cooling test plates center in polar coordinate system in deg.
const std::vector< double > & getCoolingTestPlatePosZ0() const
Returns vector of Z placement of the cooling test plates center within ARICH mother volume in mm.
void print(const std::string &title="Cooling system geometry parameters") const
Print the content of the class.
void setColdTubeNumber(int coldTubeNumber)
Set number of cold tubes in one plate.
double m_coolingTestPlateslengthY
Size of cooling test plates (y)
const std::vector< double > & getCoolingL() const
Returns vector of lengs of the cooling system object with given geometry ID.
const std::string & getCoolingPipeMaterialName() const
Returns material name of cooling pipe.
std::vector< double > m_coolingGeometryID
Cooling system object geometry ID.
std::string m_coldTubeMaterialName
Material name of cold tube.
double getEnvelopeOuterRadius() const
Returns Outer radius of cooling system assembly envelope.
void setCoolingPosR(const std::vector< double > &coolingPosR)
Set vector of radial distance (r, pho) of the cooling system object center in polar coordinate system...
double m_envelopeZ0
Z0 cooling system assembly envelope.
double getColdTubeSpacing() const
Returns distance from center of the cold tube to edge of cooling plate.
double m_coldTubeWallThickness
Cold tube wall thickness.
void checkCoolingSystemDataConsistency() const
Check data consistency of the cooling system positions In case of failure print the basf2 ERROR messa...
const std::vector< double > & getCoolingPosPhi() const
Returns vector of azimuthal angle of the cooling system object center in polar coordinate system in d...
double m_envelopeX0
X0 cooling system assembly envelope.
void setColdTubeMaterialName(const std::string &materialName)
Set material name of cold tube.
double m_coolingTestPlateslengthX
Size of cooling test plates (x)
void setCoolingGeometryID(const std::vector< double > &coolingGeometryID)
Set vector of cooling system object geometry ID 1 - G4Tubs 2 - G4Torus.
double getColdTubeR() const
Returns radius of cold tubes.
double m_Rmax
Size of cooling system pipe : outer radius in mm.
const std::vector< double > & getCoolingGeometryID() const
Returns vector of cooling system object geometry ID.
std::vector< double > m_coolinRotationAngle
Azimuthal angle of rotation aroud Z - axis of the cooling system object in polar coordinate system in...
const std::string & getCoolingTestPlateMaterialName() const
Returns material name of cooling test plates.
TVector3 getEnvelopeCenterPosition() const
Returns position vector (TVector3) of cooling system assembly envelope.
void setEnvelopeOuterRadius(double envelopeOuterRadius)
Set outer radius of cooling system assembly envelope.
void setCoolingL(const std::vector< double > &coolingL)
Set vector of lengs of the cooling system object with given geometry ID.
double m_envelopeThickness
Thickness of cooling system assembly envelope.
double m_depthColdTubeInPlate
Depth of the cold tube in the cooling plate.
TVector3 getCoolingTestPlateslengths() const
Returns sizes vector (TVector3) of cooling test plates.
void setCoolingTestPlatePosR(const std::vector< double > &coolingTestPlatePosR)
Set vector of rho of the cooling test plates center in polar coordinate system in mm.
void setCoolinRotationAngle(const std::vector< double > &coolinRotationAngle)
Set vector of azimuthal angle of rotation aroud Z - axis of the cooling system object in polar coordi...
void setColdTubeSubtractedR(double coldTubeSubtractedR)
Set outer radius of subtracted tubes for cold tube.
const std::vector< double > & getCoolingTestPlatePosR() const
Returns vector of Rho of the cooling test plates center in polar coordinate system in mm.
double m_envelopeY0
Y0 cooling system assembly envelope.
ARICHGeoCooling()
Default constructor.
double getRmax() const
Returns Size of cooling system pipe : outer radius in mm.
void setCoolingPipeMaterialName(const std::string &materialName)
Set material name of cooling pipe.
std::vector< double > m_coolingPosR
Radial distance (r, pho) of the cooling system object center in polar coordinate system in deg.
const std::string & getColdTubeMaterialName() const
Returns material name of cold tube.
const std::vector< double > & getCoolinRotationAngle() const
Returns vector of azimuthal angle of rotation aroud Z - axis of the cooling system object in polar co...
std::string m_coolingPipeMaterialName
Material of cooling pipe.
double getEnvelopeInnerRadius() const
Returns Inner radius of cooling system assembly envelope.
std::vector< double > m_coolingTestPlatePosR
Rho of the cooling test plates center in polar coordinate system in mm.
void setEnvelopeThickness(double envelopeThickness)
Set thickness of cooling system assembly envelope.
std::string m_coolingTestPlateMaterialName
Material name of cooling test plates.
void setCoolingTestPlateMaterialName(const std::string &materialName)
Set material name of cooling test plates.
std::vector< double > m_coolingL
Lengs of the cooling system object with given geometry ID.
void setRmax(double rmax)
Set size of cooling system pipe : outer radius in mm.
void setRmin(double rmin)
Set size of cooling system pipe : inner radius in mm.
double getRmin() const
Returns Size of cooling system pipe : inner radius in mm.
const std::vector< double > & getCoolingTestPlatePosPhi() const
Returns vector of Azimuthal angle of the cooling test plates center in polar coordinate system in deg...
void setColdTubeSpacing(double coldTubeSpacing)
Set distance from center of the cold tube to edge of cooling plate.
double m_coldTubeSpacing
Distance from center of the cold tube to edge of cooling plate.
void setColdTubeWallThickness(double coldTubeWallThickness)
Set cold tube wall thickness.
double m_coolingTestPlateslengthZ
Size of cooling test plates (z)
double getDepthColdTubeInPlate() const
Returns depth of the cold tube in the cooling plate.
void setCoolingPosPhi(const std::vector< double > &coolingPosPhi)
Set vector of azimuthal angle of the cooling system object center in polar coordinate system in deg.
double getEnvelopeThickness() const
Returns Thickness of cooling system assembly envelope.
void setEnvelopeInnerRadius(double envelopeInnerRadius)
Set inner radius of cooling system envelope.
double getColdTubeSubtractedR() const
Returns outer radius of subtracted tubes for cold tube.
int getColdTubeNumber() const
Returns number of cold tubes in one plate.
void setColdTubeR(double coldTubeR)
Set radius of cold tubes in the cooling test plane.
double m_envelopeInnerRadius
Inner radius of cooling system assembly envelope.
Abstract base class for different kinds of events.