Belle II Software development
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 <Math/Vector3D.h>
16
17namespace Belle2 {
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
60 void setEnvelopeOuterRadius(double envelopeOuterRadius) {m_envelopeOuterRadius = envelopeOuterRadius;}
61
68 void setEnvelopeInnerRadius(double envelopeInnerRadius) {m_envelopeInnerRadius = envelopeInnerRadius;}
69
76 void setEnvelopeThickness(double envelopeThickness) {m_envelopeThickness = envelopeThickness;}
77
84 void setEnvelopeCenterPosition(double x0, double y0, double z0) { m_envelopeX0 = x0; m_envelopeY0 = y0; m_envelopeZ0 = z0; }
85
92 void setCoolingGeometryID(const std::vector<double>& coolingGeometryID) { m_coolingGeometryID = coolingGeometryID; }
93
100 void setCoolingL(const std::vector<double>& coolingL) { m_coolingL = coolingL;}
101
110 void setCoolingPosPhi(const std::vector<double>& coolingPosPhi) { m_coolingPosPhi = coolingPosPhi; }
111
120 void setCoolingPosR(const std::vector<double>& coolingPosR) { m_coolingPosR = coolingPosR; }
121
130 void setCoolinRotationAngle(const std::vector<double>& coolinRotationAngle) { m_coolinRotationAngle = coolinRotationAngle; }
131
136 void setCoolingTestPlateMaterialName(const std::string& materialName) {m_coolingTestPlateMaterialName = materialName;}
137
142 void setColdTubeMaterialName(const std::string& materialName) {m_coldTubeMaterialName = materialName;}
143
151
156 void setColdTubeR(double coldTubeR) {m_coldTubeR = coldTubeR;}
157
164 void setColdTubeSubtractedR(double coldTubeSubtractedR) {m_coldTubeSubtractedR = coldTubeSubtractedR;}
165
170 void setColdTubeWallThickness(double coldTubeWallThickness) {m_coldTubeWallThickness = coldTubeWallThickness;}
171
178 void setDepthColdTubeInPlate(double depthColdTubeInPlate) {m_depthColdTubeInPlate = depthColdTubeInPlate;}
179
186 void setColdTubeSpacing(double coldTubeSpacing) {m_coldTubeSpacing = coldTubeSpacing;}
187
192 void setColdTubeNumber(int coldTubeNumber) {m_coldTubeNumber = coldTubeNumber;}
193
201 void setCoolingTestPlatePosR(const std::vector<double>& coolingTestPlatePosR) { m_coolingTestPlatePosR = coolingTestPlatePosR; }
202
211 void setCoolingTestPlatePosPhi(const std::vector<double>& coolingTestPlatePosPhi) { m_coolingTestPlatePosPhi = coolingTestPlatePosPhi; }
212
221 void setCoolingTestPlatePosZ0(const std::vector<double>& coolingTestPlatePosZ0) { m_coolingTestPlatePosZ0 = coolingTestPlatePosZ0; }
222
227 const std::string& getCoolingPipeMaterialName() const { return m_coolingPipeMaterialName; }
228
233 double getRmin() const { return m_Rmin; }
234
239 double getRmax() const { return m_Rmax; }
240
246
252
257 double getEnvelopeThickness() const { return m_envelopeThickness; }
258
263 ROOT::Math::XYZVector getEnvelopeCenterPosition() const
264 {
265 return ROOT::Math::XYZVector(m_envelopeX0, m_envelopeY0, m_envelopeZ0);
266 }
267
272 const std::vector<double>& getCoolingGeometryID() const { return m_coolingGeometryID; }
273
279 const std::vector<double>& getCoolingL() const { return m_coolingL; }
280
287 const std::vector<double>& getCoolingPosPhi() const { return m_coolingPosPhi; }
288
295 const std::vector<double>& getCoolingPosR() const { return m_coolingPosR; }
296
303 const std::vector<double>& getCoolinRotationAngle() const { return m_coolinRotationAngle; }
304
310
315 const std::string& getColdTubeMaterialName() const { return m_coldTubeMaterialName; }
316
321 ROOT::Math::XYZVector getCoolingTestPlateslengths() const
322 {
324 }
325
330 double getColdTubeR() const { return m_coldTubeR; }
331
337
343
349
354 double getColdTubeSpacing() const { return m_coldTubeSpacing; }
355
360 int getColdTubeNumber() const { return m_coldTubeNumber; }
361
368 const std::vector<double>& getCoolingTestPlatePosR() const { return m_coolingTestPlatePosR; }
369
376 const std::vector<double>& getCoolingTestPlatePosPhi() const { return m_coolingTestPlatePosPhi; }
377
384 const std::vector<double>& getCoolingTestPlatePosZ0() const { return m_coolingTestPlatePosZ0; }
385
390 void print(const std::string& title = "Cooling system geometry parameters") const;
391
397
398 private:
399
401 double m_Rmin = 0.0;
402 double m_Rmax = 0.0;
405 double m_envelopeThickness = 0.0;
406 double m_envelopeX0 = 0.0;
407 double m_envelopeY0 = 0.0;
408 double m_envelopeZ0 = 0.0;
409 std::vector<double> m_coolingGeometryID;
410 std::vector<double> m_coolingL;
411 std::vector<double>
413 std::vector<double>
415 std::vector<double>
417 //Please note that ARICH detector envelope does not have enough
418 //space for 8 mm thick cooling test plate (5.5 mm is only available).
419 //For this reason the material assigned to the volume (aluminum)
420 //will have a bigger dencity for effective descrption of the material.
426 double m_coldTubeR = 0.0;
430 double m_coldTubeSpacing = 0.0;
432 std::vector<double> m_coolingTestPlatePosR;
433 std::vector<double>
435 std::vector<double> m_coolingTestPlatePosZ0;
438 };
439
441} // end namespace Belle2
Base class for geometry parameters.
Definition: ARICHGeoBase.h:24
Geometry parameters of cooling system.
double getColdTubeWallThickness() const
Get 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.
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 > & getCoolinRotationAngle() const
Get vector of azimuthal angle of rotation aroud Z - axis of the cooling system object in polar coordi...
void print(const std::string &title="Cooling system geometry parameters") const
Print the content of the class.
const std::vector< double > & getCoolingPosPhi() const
Get vector of azimuthal angle of the cooling system object center in polar coordinate system in deg.
void setColdTubeNumber(int coldTubeNumber)
Set number of cold tubes in one plate.
double m_coolingTestPlateslengthY
Size of cooling test plates (y)
std::vector< double > m_coolingGeometryID
Cooling system object geometry ID.
std::string m_coldTubeMaterialName
Material name of cold tube.
double getEnvelopeOuterRadius() const
Get 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.
const std::vector< double > & getCoolingGeometryID() const
Get vector of cooling system object geometry ID.
double getColdTubeSpacing() const
Get 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.
double m_envelopeX0
X0 cooling system assembly envelope.
const std::string & getCoolingPipeMaterialName() const
Get material name of cooling pipe.
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
Get radius of cold tubes.
const std::vector< double > & getCoolingL() const
Get vector of lengs of the cooling system object with given geometry ID.
double m_Rmax
Size of cooling system pipe : outer radius in mm.
const std::vector< double > & getCoolingPosR() const
Get vector of radial distance (r, pho) of the cooling system object center in polar coordinate system...
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 & getColdTubeMaterialName() const
Get material name of cold tube.
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.
const std::vector< double > & getCoolingTestPlatePosPhi() const
Get vector of Azimuthal angle of the cooling test plates center in polar coordinate system in deg.
double m_depthColdTubeInPlate
Depth of the cold tube in the cooling plate.
void setCoolingTestPlatePosR(const std::vector< double > &coolingTestPlatePosR)
Set vector of rho of the cooling test plates center in polar coordinate system in mm.
const std::string & getCoolingTestPlateMaterialName() const
Get material name of cooling test plates.
void setCoolinRotationAngle(const std::vector< double > &coolinRotationAngle)
Set vector of azimuthal angle of rotation around Z - axis of the cooling system object in polar coord...
const std::vector< double > & getCoolingTestPlatePosZ0() const
Get vector of Z placement of the cooling test plates center within ARICH mother volume in mm.
void setColdTubeSubtractedR(double coldTubeSubtractedR)
Set outer radius of subtracted tubes for cold tube.
ROOT::Math::XYZVector getEnvelopeCenterPosition() const
Get position vector (ROOT::Math::XYZVector) of cooling system assembly envelope.
double m_envelopeY0
Y0 cooling system assembly envelope.
ARICHGeoCooling()
Default constructor.
double getRmax() const
Get 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.
std::string m_coolingPipeMaterialName
Material of cooling pipe.
double getEnvelopeInnerRadius() const
Get 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.
ROOT::Math::XYZVector getCoolingTestPlateslengths() const
Get sizes vector (ROOT::Math::XYZVector) of cooling test plates.
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
Get size of cooling system pipe : inner radius in mm.
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.
const std::vector< double > & getCoolingTestPlatePosR() const
Get vector of Rho of the cooling test plates center in polar coordinate system in mm.
double m_coolingTestPlateslengthZ
Size of cooling test plates (z)
double getDepthColdTubeInPlate() const
Get 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
Get thickness of cooling system assembly envelope.
void setEnvelopeInnerRadius(double envelopeInnerRadius)
Set inner radius of cooling system envelope.
double getColdTubeSubtractedR() const
Get outer radius of subtracted tubes for cold tube.
int getColdTubeNumber() const
Get 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.