Belle II Software  release-05-01-25
ARICHGeoCooling.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 ARICHGeoCooling: public ARICHGeoBase {
29 
30  public:
31 
36  {}
37 
42  void setCoolingPipeMaterialName(const std::string& materialName) {m_coolingPipeMaterialName = materialName;}
43 
48  void setRmin(double rmin) {m_Rmin = rmin;}
49 
54  void setRmax(double rmax) {m_Rmax = rmax;}
55 
60  void setEnvelopeOuterRadius(double envelopeOuterRadius) {m_envelopeOuterRadius = envelopeOuterRadius;}
61 
66  void setEnvelopeInnerRadius(double envelopeInnerRadius) {m_envelopeInnerRadius = envelopeInnerRadius;}
67 
72  void setEnvelopeThickness(double envelopeThickness) {m_envelopeThickness = envelopeThickness;}
73 
80  void setEnvelopeCenterPosition(double x0, double y0, double z0) { m_envelopeX0 = x0; m_envelopeY0 = y0; m_envelopeZ0 = z0; }
81 
88  void setCoolingGeometryID(const std::vector<double>& coolingGeometryID) { m_coolingGeometryID = coolingGeometryID; }
89 
94  void setCoolingL(const std::vector<double>& coolingL) { m_coolingL = coolingL;}
95 
100  void setCoolingPosPhi(const std::vector<double>& coolingPosPhi) { m_coolingPosPhi = coolingPosPhi; }
101 
106  void setCoolingPosR(const std::vector<double>& coolingPosR) { m_coolingPosR = coolingPosR; }
107 
112  void setCoolinRotationAngle(const std::vector<double>& coolinRotationAngle) { m_coolinRotationAngle = coolinRotationAngle; }
113 
118  void setCoolingTestPlateMaterialName(const std::string& materialName) {m_coolingTestPlateMaterialName = materialName;}
119 
124  void setColdTubeMaterialName(const std::string& materialName) {m_coldTubeMaterialName = materialName;}
125 
133 
138  void setColdTubeR(double coldTubeR) {m_coldTubeR = coldTubeR;}
139 
144  void setColdTubeSubtractedR(double coldTubeSubtractedR) {m_coldTubeSubtractedR = coldTubeSubtractedR;}
145 
150  void setColdTubeWallThickness(double coldTubeWallThickness) {m_coldTubeWallThickness = coldTubeWallThickness;}
151 
156  void setDepthColdTubeInPlate(double depthColdTubeInPlate) {m_depthColdTubeInPlate = depthColdTubeInPlate;}
157 
162  void setColdTubeSpacing(double coldTubeSpacing) {m_coldTubeSpacing = coldTubeSpacing;}
163 
168  void setColdTubeNumber(int coldTubeNumber) {m_coldTubeNumber = coldTubeNumber;}
169 
174  void setCoolingTestPlatePosR(const std::vector<double>& coolingTestPlatePosR) { m_coolingTestPlatePosR = coolingTestPlatePosR; }
175 
180  void setCoolingTestPlatePosPhi(const std::vector<double>& coolingTestPlatePosPhi) { m_coolingTestPlatePosPhi = coolingTestPlatePosPhi; }
181 
186  void setCoolingTestPlatePosZ0(const std::vector<double>& coolingTestPlatePosZ0) { m_coolingTestPlatePosZ0 = coolingTestPlatePosZ0; }
187 
192  const std::string& getCoolingPipeMaterialName() const { return m_coolingPipeMaterialName; }
193 
198  double getRmin() const { return m_Rmin; }
199 
204  double getRmax() const { return m_Rmax; }
205 
210  double getEnvelopeOuterRadius() const { return m_envelopeOuterRadius; }
211 
216  double getEnvelopeInnerRadius() const { return m_envelopeInnerRadius; }
217 
222  double getEnvelopeThickness() const { return m_envelopeThickness; }
223 
228  TVector3 getEnvelopeCenterPosition() const { return TVector3(m_envelopeX0, m_envelopeY0, m_envelopeZ0); }
229 
234  const std::vector<double>& getCoolingGeometryID() const { return m_coolingGeometryID; }
235 
240  const std::vector<double>& getCoolingL() const { return m_coolingL; }
241 
246  const std::vector<double>& getCoolingPosPhi() const { return m_coolingPosPhi; }
247 
252  const std::vector<double>& getCoolingPosR() const { return m_coolingPosR; }
253 
258  const std::vector<double>& getCoolinRotationAngle() const { return m_coolinRotationAngle; }
259 
264  const std::string& getCoolingTestPlateMaterialName() const { return m_coolingTestPlateMaterialName; }
265 
270  const std::string& getColdTubeMaterialName() const { return m_coldTubeMaterialName; }
271 
277 
282  double getColdTubeR() const { return m_coldTubeR; }
283 
288  double getColdTubeSubtractedR() const { return m_coldTubeSubtractedR; }
289 
294  double getColdTubeWallThickness() const { return m_coldTubeWallThickness; }
295 
300  double getDepthColdTubeInPlate() const { return m_depthColdTubeInPlate; }
301 
306  double getColdTubeSpacing() const { return m_coldTubeSpacing; }
307 
312  int getColdTubeNumber() const { return m_coldTubeNumber; }
313 
318  const std::vector<double>& getCoolingTestPlatePosR() const { return m_coolingTestPlatePosR; }
319 
324  const std::vector<double>& getCoolingTestPlatePosPhi() const { return m_coolingTestPlatePosPhi; }
325 
330  const std::vector<double>& getCoolingTestPlatePosZ0() const { return m_coolingTestPlatePosZ0; }
331 
336  void print(const std::string& title = "Cooling system geometry parameters") const;
337 
343 
344  private:
345 
346  std::string m_coolingPipeMaterialName;
347  double m_Rmin = 0.0;
348  double m_Rmax = 0.0;
349  double m_envelopeOuterRadius = 0.0;
350  double m_envelopeInnerRadius = 0.0;
351  double m_envelopeThickness = 0.0;
352  double m_envelopeX0 = 0.0;
353  double m_envelopeY0 = 0.0;
354  double m_envelopeZ0 = 0.0;
355  std::vector<double> m_coolingGeometryID;
356  std::vector<double> m_coolingL;
357  std::vector<double>
359  std::vector<double>
361  std::vector<double>
363  //Please note that ARICH detector envelope does not have enough
364  //space for 8 mm thick cooling test plate (5.5 mm is only available).
365  //For this reason the material assigned to the volume (aluminum)
366  //will have a bigger dencity for effective descrption of the material.
367  std::string m_coolingTestPlateMaterialName;
369  double m_coolingTestPlateslengthX = 0.0;
371  double m_coolingTestPlateslengthZ = 0.0;
372  double m_coldTubeR = 0.0;
373  double m_coldTubeSubtractedR = 0.0;
374  double m_coldTubeWallThickness = 0.0;
375  double m_depthColdTubeInPlate = 0.0;
376  double m_coldTubeSpacing = 0.0;
378  std::vector<double> m_coolingTestPlatePosR;
379  std::vector<double>
381  std::vector<double> m_coolingTestPlatePosZ0;
384  };
385 
387 } // end namespace Belle2
Belle2::ARICHGeoCooling::m_coolingTestPlatePosZ0
std::vector< double > m_coolingTestPlatePosZ0
Z placement of the cooling test plates center within ARICH mother volume in mm.
Definition: ARICHGeoCooling.h:389
Belle2::ARICHGeoCooling::m_coolinRotationAngle
std::vector< double > m_coolinRotationAngle
Azimuthal angle of rotation aroud Z - axis of the cooling system object in polar coordinate system in...
Definition: ARICHGeoCooling.h:370
Belle2::ARICHGeoCooling::getColdTubeMaterialName
const std::string & getColdTubeMaterialName() const
Returns material name of cold tube.
Definition: ARICHGeoCooling.h:278
Belle2::ARICHGeoCooling::getColdTubeWallThickness
double getColdTubeWallThickness() const
Returns cold tube wall thickness.
Definition: ARICHGeoCooling.h:302
Belle2::ARICHGeoCooling::setEnvelopeCenterPosition
void setEnvelopeCenterPosition(double x0, double y0, double z0)
Set position of cooling system assembly envelope.
Definition: ARICHGeoCooling.h:88
Belle2::ARICHGeoCooling::m_coolingPosR
std::vector< double > m_coolingPosR
Radial distance (r, pho) of the cooling system object center in polar coordinate system in deg.
Definition: ARICHGeoCooling.h:368
Belle2::ARICHGeoCooling::setColdTubeNumber
void setColdTubeNumber(int coldTubeNumber)
Set number of cold tubes in one plate.
Definition: ARICHGeoCooling.h:176
Belle2::ARICHGeoCooling::m_envelopeInnerRadius
double m_envelopeInnerRadius
Inner radius of cooling system assembly envelope.
Definition: ARICHGeoCooling.h:358
Belle2::ARICHGeoCooling::getCoolingPosR
const std::vector< double > & getCoolingPosR() const
Returns vector of radial distance (r, pho) of the cooling system object center in polar coordinate sy...
Definition: ARICHGeoCooling.h:260
Belle2::ARICHGeoCooling::setCoolingPosPhi
void setCoolingPosPhi(const std::vector< double > &coolingPosPhi)
Set vector of azimuthal angle of the cooling system object center in polar coordinate system in deg.
Definition: ARICHGeoCooling.h:108
Belle2::ARICHGeoCooling::setColdTubeR
void setColdTubeR(double coldTubeR)
Set radius of cold tubes in the cooling test plane.
Definition: ARICHGeoCooling.h:146
Belle2::ARICHGeoCooling::getEnvelopeInnerRadius
double getEnvelopeInnerRadius() const
Returns Inner radius of cooling system assembly envelope.
Definition: ARICHGeoCooling.h:224
Belle2::ARICHGeoCooling::getCoolingTestPlateMaterialName
const std::string & getCoolingTestPlateMaterialName() const
Returns material name of cooling test plates.
Definition: ARICHGeoCooling.h:272
Belle2::ARICHGeoCooling::m_coolingTestPlatePosR
std::vector< double > m_coolingTestPlatePosR
Rho of the cooling test plates center in polar coordinate system in mm.
Definition: ARICHGeoCooling.h:386
Belle2::ARICHGeoCooling::setCoolingGeometryID
void setCoolingGeometryID(const std::vector< double > &coolingGeometryID)
Set vector of cooling system object geometry ID 1 - G4Tubs 2 - G4Torus.
Definition: ARICHGeoCooling.h:96
Belle2::ARICHGeoCooling::m_coldTubeNumber
int m_coldTubeNumber
number of cold tubes in one plate
Definition: ARICHGeoCooling.h:385
Belle2::ARICHGeoCooling::getColdTubeR
double getColdTubeR() const
Returns radius of cold tubes.
Definition: ARICHGeoCooling.h:290
Belle2::ARICHGeoCooling::m_envelopeX0
double m_envelopeX0
X0 cooling system assembly envelope.
Definition: ARICHGeoCooling.h:360
Belle2::ARICHGeoCooling::setColdTubeMaterialName
void setColdTubeMaterialName(const std::string &materialName)
Set material name of cold tube.
Definition: ARICHGeoCooling.h:132
Belle2::ARICHGeoCooling::m_envelopeThickness
double m_envelopeThickness
Thickness of cooling system assembly envelope.
Definition: ARICHGeoCooling.h:359
Belle2::ARICHGeoCooling::m_envelopeY0
double m_envelopeY0
Y0 cooling system assembly envelope.
Definition: ARICHGeoCooling.h:361
Belle2::ARICHGeoCooling::m_coldTubeWallThickness
double m_coldTubeWallThickness
Cold tube wall thickness.
Definition: ARICHGeoCooling.h:382
Belle2::ARICHGeoCooling::getCoolingTestPlatePosR
const std::vector< double > & getCoolingTestPlatePosR() const
Returns vector of Rho of the cooling test plates center in polar coordinate system in mm.
Definition: ARICHGeoCooling.h:326
Belle2::ARICHGeoCooling::m_coolingGeometryID
std::vector< double > m_coolingGeometryID
Cooling system object geometry ID.
Definition: ARICHGeoCooling.h:363
Belle2::ARICHGeoCooling::getCoolingPosPhi
const std::vector< double > & getCoolingPosPhi() const
Returns vector of azimuthal angle of the cooling system object center in polar coordinate system in d...
Definition: ARICHGeoCooling.h:254
Belle2::ARICHGeoCooling::getRmax
double getRmax() const
Returns Size of cooling system pipe : outer radius in mm.
Definition: ARICHGeoCooling.h:212
Belle2::ARICHGeoCooling::m_coldTubeR
double m_coldTubeR
Outer radius of cold tubes.
Definition: ARICHGeoCooling.h:380
Belle2::ARICHGeoCooling::getColdTubeNumber
int getColdTubeNumber() const
Returns number of cold tubes in one plate.
Definition: ARICHGeoCooling.h:320
Belle2::ARICHGeoCooling::m_coolingTestPlateslengthX
double m_coolingTestPlateslengthX
Size of cooling test plates (x)
Definition: ARICHGeoCooling.h:377
Belle2::ARICHGeoCooling::setCoolingTestPlateMaterialName
void setCoolingTestPlateMaterialName(const std::string &materialName)
Set material name of cooling test plates.
Definition: ARICHGeoCooling.h:126
Belle2::ARICHGeoCooling::getCoolingPipeMaterialName
const std::string & getCoolingPipeMaterialName() const
Returns material name of cooling pipe.
Definition: ARICHGeoCooling.h:200
Belle2::ARICHGeoCooling::getCoolingTestPlatePosZ0
const std::vector< double > & getCoolingTestPlatePosZ0() const
Returns vector of Z placement of the cooling test plates center within ARICH mother volume in mm.
Definition: ARICHGeoCooling.h:338
Belle2::ARICHGeoCooling::setCoolingTestPlatePosPhi
void setCoolingTestPlatePosPhi(const std::vector< double > &coolingTestPlatePosPhi)
Set vector of azimuthal angle of the cooling test plates center in polar coordinate system in deg.
Definition: ARICHGeoCooling.h:188
Belle2::ARICHGeoCooling::setEnvelopeThickness
void setEnvelopeThickness(double envelopeThickness)
Set thickness of cooling system assembly envelope.
Definition: ARICHGeoCooling.h:80
Belle2::ARICHGeoCooling::m_coldTubeSubtractedR
double m_coldTubeSubtractedR
Outer radius of subtracted tubes for cold tube.
Definition: ARICHGeoCooling.h:381
Belle2::ARICHGeoCooling::m_envelopeZ0
double m_envelopeZ0
Z0 cooling system assembly envelope.
Definition: ARICHGeoCooling.h:362
Belle2::ARICHGeoCooling::setCoolingTestPlatePosR
void setCoolingTestPlatePosR(const std::vector< double > &coolingTestPlatePosR)
Set vector of rho of the cooling test plates center in polar coordinate system in mm.
Definition: ARICHGeoCooling.h:182
Belle2::ARICHGeoCooling::getEnvelopeThickness
double getEnvelopeThickness() const
Returns Thickness of cooling system assembly envelope.
Definition: ARICHGeoCooling.h:230
Belle2::ARICHGeoCooling::setColdTubeSpacing
void setColdTubeSpacing(double coldTubeSpacing)
Set distance from center of the cold tube to edge of cooling plate.
Definition: ARICHGeoCooling.h:170
Belle2::ARICHGeoCooling::getCoolinRotationAngle
const std::vector< double > & getCoolinRotationAngle() const
Returns vector of azimuthal angle of rotation aroud Z - axis of the cooling system object in polar co...
Definition: ARICHGeoCooling.h:266
Belle2::ARICHGeoCooling::setColdTubeWallThickness
void setColdTubeWallThickness(double coldTubeWallThickness)
Set cold tube wall thickness.
Definition: ARICHGeoCooling.h:158
Belle2::ARICHGeoCooling::setEnvelopeOuterRadius
void setEnvelopeOuterRadius(double envelopeOuterRadius)
Set outer radius of cooling system assembly envelope.
Definition: ARICHGeoCooling.h:68
Belle2::ARICHGeoCooling::setRmax
void setRmax(double rmax)
Set size of cooling system pipe : outer radius in mm.
Definition: ARICHGeoCooling.h:62
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ARICHGeoCooling::getEnvelopeCenterPosition
TVector3 getEnvelopeCenterPosition() const
Returns position vector (TVector3) of cooling system assembly envelope.
Definition: ARICHGeoCooling.h:236
Belle2::ARICHGeoCooling::setCoolingTestPlateslengths
void setCoolingTestPlateslengths(double lx, double ly, double lz)
Set dimentions of cooling test plates in x, y, z directions.
Definition: ARICHGeoCooling.h:140
Belle2::ARICHGeoCooling::setColdTubeSubtractedR
void setColdTubeSubtractedR(double coldTubeSubtractedR)
Set outer radius of subtracted tubes for cold tube.
Definition: ARICHGeoCooling.h:152
Belle2::ARICHGeoCooling::m_depthColdTubeInPlate
double m_depthColdTubeInPlate
Depth of the cold tube in the cooling plate.
Definition: ARICHGeoCooling.h:383
Belle2::ARICHGeoCooling::ClassDef
ClassDef(ARICHGeoCooling, 1)
ClassDef.
Belle2::ARICHGeoCooling::m_coolingTestPlateMaterialName
std::string m_coolingTestPlateMaterialName
Material name of cooling test plates.
Definition: ARICHGeoCooling.h:375
Belle2::ARICHGeoCooling::m_Rmin
double m_Rmin
Size of cooling system pipe : inner radius in mm.
Definition: ARICHGeoCooling.h:355
Belle2::ARICHGeoCooling::setCoolingL
void setCoolingL(const std::vector< double > &coolingL)
Set vector of lengs of the cooling system object with given geometry ID.
Definition: ARICHGeoCooling.h:102
Belle2::ARICHGeoCooling::setCoolingTestPlatePosZ0
void setCoolingTestPlatePosZ0(const std::vector< double > &coolingTestPlatePosZ0)
Set vector of Z placement of the cooling test plates center within ARICH mother volume in mm.
Definition: ARICHGeoCooling.h:194
Belle2::ARICHGeoCooling::m_coolingTestPlatePosPhi
std::vector< double > m_coolingTestPlatePosPhi
Azimuthal angle of the cooling test plates center in polar coordinate system in deg.
Definition: ARICHGeoCooling.h:388
Belle2::ARICHGeoCooling::getEnvelopeOuterRadius
double getEnvelopeOuterRadius() const
Returns Outer radius of cooling system assembly envelope.
Definition: ARICHGeoCooling.h:218
Belle2::ARICHGeoCooling::getDepthColdTubeInPlate
double getDepthColdTubeInPlate() const
Returns depth of the cold tube in the cooling plate.
Definition: ARICHGeoCooling.h:308
Belle2::ARICHGeoCooling::m_coldTubeSpacing
double m_coldTubeSpacing
Distance from center of the cold tube to edge of cooling plate.
Definition: ARICHGeoCooling.h:384
Belle2::ARICHGeoCooling::setRmin
void setRmin(double rmin)
Set size of cooling system pipe : inner radius in mm.
Definition: ARICHGeoCooling.h:56
Belle2::ARICHGeoCooling::setCoolinRotationAngle
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...
Definition: ARICHGeoCooling.h:120
Belle2::ARICHGeoCooling::m_coolingTestPlateslengthZ
double m_coolingTestPlateslengthZ
Size of cooling test plates (z)
Definition: ARICHGeoCooling.h:379
Belle2::ARICHGeoCooling::getRmin
double getRmin() const
Returns Size of cooling system pipe : inner radius in mm.
Definition: ARICHGeoCooling.h:206
Belle2::ARICHGeoCooling::getCoolingTestPlatePosPhi
const std::vector< double > & getCoolingTestPlatePosPhi() const
Returns vector of Azimuthal angle of the cooling test plates center in polar coordinate system in deg...
Definition: ARICHGeoCooling.h:332
Belle2::ARICHGeoCooling::getColdTubeSpacing
double getColdTubeSpacing() const
Returns distance from center of the cold tube to edge of cooling plate.
Definition: ARICHGeoCooling.h:314
Belle2::ARICHGeoCooling::m_coolingL
std::vector< double > m_coolingL
Lengs of the cooling system object with given geometry ID.
Definition: ARICHGeoCooling.h:364
Belle2::ARICHGeoCooling::getCoolingTestPlateslengths
TVector3 getCoolingTestPlateslengths() const
Returns sizes vector (TVector3) of cooling test plates.
Definition: ARICHGeoCooling.h:284
Belle2::ARICHGeoCooling::setCoolingPosR
void setCoolingPosR(const std::vector< double > &coolingPosR)
Set vector of radial distance (r, pho) of the cooling system object center in polar coordinate system...
Definition: ARICHGeoCooling.h:114
Belle2::ARICHGeoCooling::m_Rmax
double m_Rmax
Size of cooling system pipe : outer radius in mm.
Definition: ARICHGeoCooling.h:356
Belle2::ARICHGeoCooling::getCoolingGeometryID
const std::vector< double > & getCoolingGeometryID() const
Returns vector of cooling system object geometry ID.
Definition: ARICHGeoCooling.h:242
Belle2::ARICHGeoCooling
Geometry parameters of Cooling System.
Definition: ARICHGeoCooling.h:36
Belle2::ARICHGeoCooling::m_coolingPipeMaterialName
std::string m_coolingPipeMaterialName
Material of cooling pipe.
Definition: ARICHGeoCooling.h:354
Belle2::ARICHGeoCooling::setEnvelopeInnerRadius
void setEnvelopeInnerRadius(double envelopeInnerRadius)
Set inner radius of cooling system envelope.
Definition: ARICHGeoCooling.h:74
Belle2::ARICHGeoCooling::setDepthColdTubeInPlate
void setDepthColdTubeInPlate(double depthColdTubeInPlate)
Set depth of the cold tube in the cooling test plate.
Definition: ARICHGeoCooling.h:164
Belle2::ARICHGeoCooling::checkCoolingSystemDataConsistency
void checkCoolingSystemDataConsistency() const
Check data consistency of the cooling system positions In case of failure print the BASF2 ERROR messa...
Definition: ARICHGeoCooling.cc:71
Belle2::ARICHGeoCooling::setCoolingPipeMaterialName
void setCoolingPipeMaterialName(const std::string &materialName)
Set material name of cooling pipe.
Definition: ARICHGeoCooling.h:50
Belle2::ARICHGeoCooling::getColdTubeSubtractedR
double getColdTubeSubtractedR() const
Returns outer radius of subtracted tubes for cold tube.
Definition: ARICHGeoCooling.h:296
Belle2::ARICHGeoCooling::m_coolingTestPlateslengthY
double m_coolingTestPlateslengthY
Size of cooling test plates (y)
Definition: ARICHGeoCooling.h:378
Belle2::ARICHGeoCooling::ARICHGeoCooling
ARICHGeoCooling()
Default constructor.
Definition: ARICHGeoCooling.h:43
Belle2::ARICHGeoCooling::getCoolingL
const std::vector< double > & getCoolingL() const
Returns vector of lengs of the cooling system object with given geometry ID.
Definition: ARICHGeoCooling.h:248
Belle2::ARICHGeoCooling::m_envelopeOuterRadius
double m_envelopeOuterRadius
Outer radius of cooling system assembly envelope.
Definition: ARICHGeoCooling.h:357
Belle2::ARICHGeoCooling::print
void print(const std::string &title="Cooling system geometry parameters") const
Print the content of the class.
Definition: ARICHGeoCooling.cc:23
Belle2::ARICHGeoCooling::m_coolingPosPhi
std::vector< double > m_coolingPosPhi
Azimuthal angle of the cooling system object center in polar coordinate system in deg.
Definition: ARICHGeoCooling.h:366
Belle2::ARICHGeoCooling::m_coldTubeMaterialName
std::string m_coldTubeMaterialName
Material name of cold tube.
Definition: ARICHGeoCooling.h:376