Belle II Software development
ARICHGeoAerogelPlane Class Reference

Geometry parameters of HAPD. More...

#include <ARICHGeoAerogelPlane.h>

Inheritance diagram for ARICHGeoAerogelPlane:
ARICHGeoBase

Classes

struct  layer
 Struct to hold aerogel layer parameters. More...
 
struct  tilestr
 Struct to hold individual aerogel tile parameters. More...
 

Public Member Functions

 ARICHGeoAerogelPlane ()
 Default constructor.
 
bool isConsistent () const override
 Consistency check of geometry parameters.
 
void print (const std::string &title="Aerogel plane parameters:") const override
 Print the content of the class.
 
void setPlacement (double x, double y, double z, double rx, double ry, double rz)
 Set aerogel plane positioning within ARICH local volume.
 
void addSupportPlate (double inR, double outR, double thick, const std::string &material)
 Set parameters of aerogel support plate.
 
void setWallThickness (double thick)
 Set thickness of aluminum walls between aerogel tiles.
 
void setWallHeight (double height)
 Set height of aluminum walls between aerogel tiles.
 
void setTileGap (double gap)
 Set gap between aerogel tile and aluminum wall.
 
void addTileParameters (int ring, int column, int layerN, double n, double transmL, double thick, const std::string &material)
 Add parameters of individual tile.
 
ROOT::Math::XYZVector getPosition () const
 Get position vector of aerogel plane in ARICH local frame.
 
ROOT::Math::Rotation3D getRotation () const
 Get rotation matrix of aerogel plane in ARICH local frame.
 
double getRotationX () const
 Get angle of rotation around X axis.
 
double getRotationY () const
 Get angle of rotation around Y axis.
 
double getRotationZ () const
 Get angle of rotation around Z axis.
 
double getSupportInnerR () const
 Get support-plate inner radius.
 
double getSupportOuterR () const
 Get support-plate outer radius.
 
double getSupportThickness () const
 Get support-plate thickness.
 
double getWallThickness () const
 Get thickness of aluminum walls between aerogel tiles.
 
double getWallHeight () const
 Get height of aluminum walls between aerogel tiles.
 
double getTileGap () const
 Get gap between aerogel tile and aluminum wall.
 
const std::string & getSupportMaterial () const
 Get material of support plate.
 
void setWallRadius (std::vector< double > &rs)
 Set radiuses at which "r" aluminum walls between tiles are placed (+inner+outter aluminum ring).
 
void setWallDPhi (std::vector< double > &dphi)
 Set phi (angle) distance between "phi" aluminum walls between aerogel tiles for all aerogel tile rings.
 
void setAerogelLayer (unsigned ilayer, double thick, double rIndex, double trLen, const std::string &material)
 Set parameters of i-th aerogel layer.
 
void setNAeroSlotsIndividualRing (const std::vector< int > &nAeroSlotsIndividualRing)
 Set vector of numbers of aerogel slots in individual ring.
 
unsigned getNLayers () const
 Get number of aerogel layers.
 
unsigned getNRings () const
 Get number of aluminum wall rings (should be number of tile rings + 1).
 
double getRingRadius (unsigned iRing) const
 Get radius of i-th aluminum ring between aerogel tiles (inner radius of ring).
 
double getRingDPhi (unsigned iRing) const
 Get phi (angle) distance between "phi" aluminum wall between aerogel tiles in i-th tile ring.
 
double getLayerThickness (unsigned iLayer) const
 Get thickness of tiles in i-th aerogel layer.
 
double getLayerRefIndex (unsigned iLayer) const
 Get refractive index of tiles in i-th aerogel layer.
 
double getLayerTrLength (unsigned iLayer) const
 Get transmission length of tiles in i-th aerogel layer.
 
const std::string & getLayerMaterial (unsigned iLayer) const
 Get material name of tiles in i-th aerogel layer.
 
unsigned getAerogelTileID (double x, double y) const
 Get ID of aerogel tile containing point (x,y) (actually this is tile slot ID, as it is the same for all layers).
 
void setSimple (std::vector< double > &params)
 Set to use simple aerogel plane (single square aerogel tile (2 layers), for cosmic test for example).
 
bool isSimple () const
 Use simple aerogel configuration.
 
const std::vector< double > & getSimpleParams () const
 Get parameters of simple aerogel configuration.
 
const std::vector< int > & getNAeroSlotsIndividualRing () const
 Get vector of numbers of aerogel slots in individual ring.
 
double getAerogelZPosition () const
 Get starting Z position of first aerogel layer.
 
void setFullAerogelMaterialDescriptionKey (int fullAerogelMaterialDescriptionKey)
 Set full aerogel material description key.
 
int getFullAerogelMaterialDescriptionKey () const
 Get full aerogel material description key.
 
unsigned getTileParameters (int ring, int column, int layerN, double &n, double &transmL, double &thick, std::string &material) const
 Get parameters of individual tile.
 
double getTileThickness (int ring, int column, int layerN) const
 Get thickness of individual tile.
 
std::string getTileMaterialName (int ring, int column, int layerN) const
 Get material name of individual tile.
 
double getTotalTileThickness (int ring, int column) const
 Get total thickness of the aerogel tiles tile_up + tile_down for a given slot.
 
double getMaximumTotalTileThickness () const
 Get maximum total thickness of the aerogel tiles tile_up + tile_down for all the slots.
 
void setImgTubeThickness (double imgTubeThickness)
 Set imaginary tube thikness just after aerogel layers used as volume to which tracks are extrapolated.
 
double getImgTubeThickness () const
 Get imaginary tube thikness just after aerogel layers used as volume to which tracks are extrapolated.
 
void setCompensationARICHairVolumeThick_min (double compensationARICHairVolumeThick_min)
 Set minimum thickness of the compensation volume with ARICH air.
 
double getCompensationARICHairVolumeThick_min () const
 Get minimum thickness of the compensation volume with ARICH air.
 
void printTileParameters (const std::string &title="Aerogel tiles parameters:") const
 Print the content of the m_tiles vector of tilestr structure.
 
void printSingleTileParameters (unsigned i) const
 Print the content of the single tilestr structure.
 
void testGetTileParametersFunction () const
 This function tests the getTileParameters function.
 
void setName (const std::string &name)
 Sets object name.
 
const std::string & getName () const
 Returns object name.
 
virtual void printSurface (const GeoOpticalSurface &surface) const
 Print the content of optical surface.
 
virtual void printPlacement (double x, double y, double z, double rx, double ry, double rz) const
 Print volume positioning parameters.
 

Protected Member Functions

 ClassDef (ARICHGeoBase, 2)
 ClassDef.
 

Protected Attributes

std::string m_name
 geometry object name
 

Static Protected Attributes

static double s_unit = Unit::cm
 conversion unit for length
 
static std::string s_unitName
 conversion unit name
 

Private Member Functions

 ClassDefOverride (ARICHGeoAerogelPlane, 3)
 ClassDef.
 

Private Attributes

double m_x = 0
 x position
 
double m_y = 0
 y position
 
double m_z = 0
 z position
 
double m_rx = 0
 rotation around x-axis
 
double m_ry = 0
 rotation around y-axis
 
double m_rz = 0
 rotation around z-axis
 
std::vector< double > m_r
 "r" aluminum wall radiuses
 
std::vector< double > m_dPhi
 "phi" aluminum wall distances in tile ring
 
std::vector< int > m_nAeroSlotsIndividualRing
 Number of aerogel slots in individual ring.
 
std::vector< layerm_layers
 parameters averaged properties of the aerogel tiles/layers (up and down)
 
std::vector< tilestrm_tiles
 parameters of the individual aerogel tiles
 
double m_tileGap = 0
 gap between aerogel tiles and aluminum walls
 
std::string m_supportMaterial
 material of support plate
 
double m_innerR = 0
 inner radius of support plate
 
double m_outerR = 0
 outer radius of support plate
 
double m_thickness = 0
 thickness of support plate
 
double m_wallThickness = 0
 thickness of aluminum walls between aerogel tiles
 
double m_wallHeight = 0
 height (z) of aluminum walls between aerogel tiles
 
unsigned m_rSize = 0
 size of m_r vector
 
unsigned m_dPhiSize = 0
 size of m_dPhi vector
 
unsigned m_nLayers = 0
 number of aerogel tile layers
 
bool m_simple = 0
 switch to simple mode
 
std::vector< double > m_simpleParams
 vector of simple parameters
 
int m_fullAerogelMaterialDescriptionKey
 Full aerogel material description key : 1 - use material explicitly for each aerogel tile, 0 - use two types of aerogel material.
 
double m_imgTubeThickness
 imaginary tube thikness just after aerogel layers used as volume to which tracks are extrapolated
 
double m_compensationARICHairVolumeThick_min = 0
 Minimum thickness of the compensation volume with ARICH air.
 

Detailed Description

Geometry parameters of HAPD.

Definition at line 29 of file ARICHGeoAerogelPlane.h.

Constructor & Destructor Documentation

◆ ARICHGeoAerogelPlane()

Default constructor.

Definition at line 36 of file ARICHGeoAerogelPlane.h.

37 {}

Member Function Documentation

◆ addSupportPlate()

void addSupportPlate ( double  inR,
double  outR,
double  thick,
const std::string &  material 
)
inline

Set parameters of aerogel support plate.

Parameters
[in]inRInner radius.
[in]outROuter radius.
[in]thickThickness.
[in]materialMaterial.

Definition at line 119 of file ARICHGeoAerogelPlane.h.

120 {
121 m_innerR = inR;
122 m_outerR = outR;
123 m_thickness = thick;
124 m_supportMaterial = material;
125 };
double m_innerR
inner radius of support plate
std::string m_supportMaterial
material of support plate
double m_thickness
thickness of support plate
double m_outerR
outer radius of support plate

◆ addTileParameters()

void addTileParameters ( int  ring,
int  column,
int  layerN,
double  n,
double  transmL,
double  thick,
const std::string &  material 
)
inline

Add parameters of individual tile.

Parameters
[in]ringAerogel tile ring ID (range : [1;4]).
[in]columnAerogel tile column ID (range : [1;22] [1;28] [1;34] [1;40]).
[in]layerNAerogel tile layer ID (layer : 0 - up; layer : 1 - down).
[in]nAerogel tile refractive index.
[in]transmLAerogel tile rayleigh scattering length.
[in]thickAerogel tile thickness.
[in]materialAerogel tile material name.

Definition at line 169 of file ARICHGeoAerogelPlane.h.

170 {
171 m_tiles.push_back({ ring, column, layerN, n, transmL, thick, material });
172 }
std::vector< tilestr > m_tiles
parameters of the individual aerogel tiles

◆ getAerogelTileID()

unsigned getAerogelTileID ( double  x,
double  y 
) const

Get ID of aerogel tile containing point (x,y) (actually this is tile slot ID, as it is the same for all layers).

Parameters
[in]xX position.
[in]yY position.
Returns
Aerogel tile ID.

Definition at line 120 of file ARICHGeoAerogelPlane.cc.

121{
122
123 double r = sqrt(x * x + y * y);
124
125 int nTile = 0;
126 for (unsigned iRing = 0; iRing < getNRings(); iRing++) {
127 if (r > m_r[iRing] + m_wallThickness + m_tileGap) {
128 if (iRing == 0) continue;
129 nTile += static_cast<int>(2 * M_PI / m_dPhi[iRing - 1] + 0.5);
130 } else {
131 if (iRing == 0) return 0;
132 if (r > m_r[iRing] - m_tileGap) return 0;
133 double phi = atan2(y, x);
134 if (phi < 0) phi += 2 * M_PI;
135 int nphi = static_cast<int>(phi / m_dPhi[iRing - 1]);
136 double gapPhi = (m_tileGap + m_wallThickness / 2.) / m_r[iRing];
137 if (phi < nphi * m_dPhi[iRing - 1] + gapPhi || phi > (nphi + 1)* m_dPhi[iRing - 1] - gapPhi) return 0;
138 nTile += nphi;
139 return nTile + 1;
140 }
141
142 }
143 return 0;
144}
std::vector< double > m_r
"r" aluminum wall radiuses
double m_tileGap
gap between aerogel tiles and aluminum walls
unsigned getNRings() const
Get number of aluminum wall rings (should be number of tile rings + 1).
std::vector< double > m_dPhi
"phi" aluminum wall distances in tile ring
double m_wallThickness
thickness of aluminum walls between aerogel tiles
double sqrt(double a)
sqrt for double
Definition: beamHelpers.h:28

◆ getAerogelZPosition()

double getAerogelZPosition ( ) const
inline

Get starting Z position of first aerogel layer.

Returns
Starting z.

Definition at line 415 of file ARICHGeoAerogelPlane.h.

416 {
417 return m_z / s_unit - (m_wallHeight / s_unit - m_thickness / s_unit) / 2.;
418 }
double m_wallHeight
height (z) of aluminum walls between aerogel tiles
static double s_unit
conversion unit for length
Definition: ARICHGeoBase.h:83

◆ getCompensationARICHairVolumeThick_min()

double getCompensationARICHairVolumeThick_min ( ) const
inline

Get minimum thickness of the compensation volume with ARICH air.

Returns
Thickness of the compensation volume.

Definition at line 559 of file ARICHGeoAerogelPlane.h.

560 {
562 }
double m_compensationARICHairVolumeThick_min
Minimum thickness of the compensation volume with ARICH air.

◆ getFullAerogelMaterialDescriptionKey()

int getFullAerogelMaterialDescriptionKey ( ) const
inline

Get full aerogel material description key.

1 - use material explicitly for each aerogel tile. Any integer (but not 1) - uses two types of aerogel material for upstream and downstream.

Returns
Full aerogel material description key.

Definition at line 441 of file ARICHGeoAerogelPlane.h.

442 {
444 }
int m_fullAerogelMaterialDescriptionKey
Full aerogel material description key : 1 - use material explicitly for each aerogel tile,...

◆ getImgTubeThickness()

double getImgTubeThickness ( ) const
inline

Get imaginary tube thikness just after aerogel layers used as volume to which tracks are extrapolated.

Returns
Imaginary tube thikness.

Definition at line 539 of file ARICHGeoAerogelPlane.h.

540 {
541 return m_imgTubeThickness;
542 }
double m_imgTubeThickness
imaginary tube thikness just after aerogel layers used as volume to which tracks are extrapolated

◆ getLayerMaterial()

const std::string & getLayerMaterial ( unsigned  iLayer) const
inline

Get material name of tiles in i-th aerogel layer.

Parameters
[in]iLayerLayer number.
Returns
Material name of tiles in layer.

Definition at line 360 of file ARICHGeoAerogelPlane.h.

360{ if (iLayer > m_nLayers || iLayer == 0) B2ERROR("ARICHGeoAerogelPlane: invalid aerogel layer number!"); return m_layers[iLayer - 1].material;}
unsigned m_nLayers
number of aerogel tile layers
std::vector< layer > m_layers
parameters averaged properties of the aerogel tiles/layers (up and down)

◆ getLayerRefIndex()

double getLayerRefIndex ( unsigned  iLayer) const
inline

Get refractive index of tiles in i-th aerogel layer.

Parameters
[in]iLayerLayer number.
Returns
Refractive index of tiles in layer.

Definition at line 346 of file ARICHGeoAerogelPlane.h.

346{ if (iLayer > m_nLayers || iLayer == 0) B2ERROR("ARICHGeoAerogelPlane: invalid aerogel layer number!"); return m_layers[iLayer - 1].refIndex;}

◆ getLayerThickness()

double getLayerThickness ( unsigned  iLayer) const
inline

Get thickness of tiles in i-th aerogel layer.

Parameters
[in]iLayerLayer number.
Returns
Thickness of tiles in layer.

Definition at line 339 of file ARICHGeoAerogelPlane.h.

339{if (iLayer > m_nLayers || iLayer == 0) B2ERROR("ARICHGeoAerogelPlane: invalid aerogel layer number!"); return m_layers[iLayer - 1].thickness / s_unit;}

◆ getLayerTrLength()

double getLayerTrLength ( unsigned  iLayer) const
inline

Get transmission length of tiles in i-th aerogel layer.

Parameters
[in]iLayerLayer number.
Returns
Transmission length of tiles in layer.

Definition at line 353 of file ARICHGeoAerogelPlane.h.

353{ if (iLayer > m_nLayers || iLayer == 0) B2ERROR("ARICHGeoAerogelPlane: invalid aerogel layer number!"); return m_layers[iLayer - 1].trLength / s_unit;}

◆ getMaximumTotalTileThickness()

double getMaximumTotalTileThickness ( ) const

Get maximum total thickness of the aerogel tiles tile_up + tile_down for all the slots.

Returns
Maximum total thickness of the aerogel tiles tile_up + tile_down for all the slots.

Definition at line 221 of file ARICHGeoAerogelPlane.cc.

222{
223 double maxThick = 0.0;
224 // ring ID (range : [ 1, 2, 3, 4])
225 // column ID (range : [1;22] [1;28] [1;34] [1;40])
226 for (unsigned iR = 0; iR < getNAeroSlotsIndividualRing().size(); iR++) {
227 int iRi = iR;
228 for (int iS = 0; iS < getNAeroSlotsIndividualRing().at(iR); iS++) {
229 double athick = getTotalTileThickness(iRi + 1, iS + 1);
230 if (maxThick < athick)
231 maxThick = athick;
232 }
233 }
234 return maxThick;
235}
double getTotalTileThickness(int ring, int column) const
Get total thickness of the aerogel tiles tile_up + tile_down for a given slot.
const std::vector< int > & getNAeroSlotsIndividualRing() const
Get vector of numbers of aerogel slots in individual ring.

◆ getNAeroSlotsIndividualRing()

const std::vector< int > & getNAeroSlotsIndividualRing ( ) const
inline

Get vector of numbers of aerogel slots in individual ring.

Returns
Vector of numbers of aerogel slots in individual ring.

Definition at line 406 of file ARICHGeoAerogelPlane.h.

407 {
409 }
std::vector< int > m_nAeroSlotsIndividualRing
Number of aerogel slots in individual ring.

◆ getName()

const std::string & getName ( ) const
inlineinherited

Returns object name.

Returns
object name

Definition at line 49 of file ARICHGeoBase.h.

49{return m_name;}
std::string m_name
geometry object name
Definition: ARICHGeoBase.h:82

◆ getNLayers()

unsigned getNLayers ( ) const
inline

Get number of aerogel layers.

Returns
Number of aerogel layers.

Definition at line 310 of file ARICHGeoAerogelPlane.h.

310{return m_nLayers;}

◆ getNRings()

unsigned getNRings ( ) const
inline

Get number of aluminum wall rings (should be number of tile rings + 1).

Returns
Number of aluminum wall rings.

Definition at line 316 of file ARICHGeoAerogelPlane.h.

316{return m_rSize;}
unsigned m_rSize
size of m_r vector

◆ getPosition()

ROOT::Math::XYZVector getPosition ( ) const
inline

Get position vector of aerogel plane in ARICH local frame.

Returns
Position of aerogel plane center point (ROOT::Math::XYZVector).

Definition at line 178 of file ARICHGeoAerogelPlane.h.

178{return ROOT::Math::XYZVector(m_x / s_unit, m_y / s_unit, m_z / s_unit);}

◆ getRingDPhi()

double getRingDPhi ( unsigned  iRing) const
inline

Get phi (angle) distance between "phi" aluminum wall between aerogel tiles in i-th tile ring.

Parameters
[in]iRingRing number (from 1->).
Returns
Phi distance between aluminum walls in aerogel tiles ring.

Definition at line 332 of file ARICHGeoAerogelPlane.h.

332{ if (iRing > m_rSize || iRing == 0) B2ERROR("ARICHGeoAerogelPlane: invalid ring number!"); return m_dPhi[iRing - 1];}

◆ getRingRadius()

double getRingRadius ( unsigned  iRing) const
inline

Get radius of i-th aluminum ring between aerogel tiles (inner radius of ring).

Parameters
[in]iRingRing number (from 1->).
Returns
Radius of i-th aluminum ring.

Definition at line 324 of file ARICHGeoAerogelPlane.h.

324{ if (iRing > m_rSize || iRing == 0) B2ERROR("ARICHGeoAerogelPlane: invalid ring number!"); return m_r[iRing - 1] / s_unit;}

◆ getRotation()

ROOT::Math::Rotation3D getRotation ( ) const
inline

Get rotation matrix of aerogel plane in ARICH local frame.

Returns
Rotation matrix of aerogel plane (ROOT::Math::Rotation3D).

Definition at line 184 of file ARICHGeoAerogelPlane.h.

185 {
186 ROOT::Math::Rotation3D rot;
187 ROOT::Math::RotationX rotX(m_rx);
188 ROOT::Math::RotationY rotY(m_ry);
189 ROOT::Math::RotationZ rotZ(m_rz);
190 rot *= rotZ * rotY * rotX;
191 return rot;
192 }
double m_ry
rotation around y-axis
double m_rz
rotation around z-axis
double m_rx
rotation around x-axis

◆ getRotationX()

double getRotationX ( ) const
inline

Get angle of rotation around X axis.

Returns
Rotation angle arounx X axis.

Definition at line 198 of file ARICHGeoAerogelPlane.h.

198{return m_rx;}

◆ getRotationY()

double getRotationY ( ) const
inline

Get angle of rotation around Y axis.

Returns
Rotation angle arounx Y axis.

Definition at line 204 of file ARICHGeoAerogelPlane.h.

204{return m_ry;}

◆ getRotationZ()

double getRotationZ ( ) const
inline

Get angle of rotation around Z axis.

Returns
Rotation angle arounx Z axis.

Definition at line 210 of file ARICHGeoAerogelPlane.h.

210{return m_rz;}

◆ getSimpleParams()

const std::vector< double > & getSimpleParams ( ) const
inline

Get parameters of simple aerogel configuration.

Returns
Parameters.

Definition at line 397 of file ARICHGeoAerogelPlane.h.

398 {
399 return m_simpleParams;
400 }
std::vector< double > m_simpleParams
vector of simple parameters

◆ getSupportInnerR()

double getSupportInnerR ( ) const
inline

Get support-plate inner radius.

Returns
Support-plate inner radius.

Definition at line 216 of file ARICHGeoAerogelPlane.h.

216{return m_innerR / s_unit;};

◆ getSupportMaterial()

const std::string & getSupportMaterial ( ) const
inline

Get material of support plate.

Returns
Support-plate material name.

Definition at line 252 of file ARICHGeoAerogelPlane.h.

252{return m_supportMaterial;}

◆ getSupportOuterR()

double getSupportOuterR ( ) const
inline

Get support-plate outer radius.

Returns
Support-plate outer radius.

Definition at line 222 of file ARICHGeoAerogelPlane.h.

222{return m_outerR / s_unit;};

◆ getSupportThickness()

double getSupportThickness ( ) const
inline

Get support-plate thickness.

Returns
Support-plate thickness.

Definition at line 228 of file ARICHGeoAerogelPlane.h.

228{return m_thickness / s_unit;};

◆ getTileGap()

double getTileGap ( ) const
inline

Get gap between aerogel tile and aluminum wall.

Returns
Gap between aerogel tile and aluminum wall.

Definition at line 246 of file ARICHGeoAerogelPlane.h.

246{return m_tileGap / s_unit;};

◆ getTileMaterialName()

std::string getTileMaterialName ( int  ring,
int  column,
int  layerN 
) const

Get material name of individual tile.

Parameters
[in]ringAerogel tile ring ID (range : [1;4]).
[in]columnAerogel tile column ID (range : [1;22] [1;28] [1;34] [1;40]).
[in]layerNAerogel tile layer ID (layer : 0 - up; layer : 1 - down).
Returns
Material name of individual tile.

Definition at line 189 of file ARICHGeoAerogelPlane.cc.

190{
191 for (unsigned i = 0; i < m_tiles.size(); i++)
192 if (m_tiles.at(i).ring == ring)
193 if (m_tiles.at(i).column == column)
194 if (m_tiles.at(i).layer == layerN)
195 return m_tiles.at(i).material;
196 B2WARNING("ARICHGeoAerogelPlane::getTileThickness --> tile position does not exist " << endl
197 << "ring = " << ring << endl
198 << "column = " << column << endl
199 << "layerN = " << layerN << endl);
200 B2ASSERT("ARICHGeoAerogelPlane::getTileParameters --> tile position does not exist", false);
201 return NULL;
202}

◆ getTileParameters()

unsigned getTileParameters ( int  ring,
int  column,
int  layerN,
double &  n,
double &  transmL,
double &  thick,
std::string &  material 
) const

Get parameters of individual tile.

Parameters
[in]ringAerogel tile ring ID (range : [1;4]).
[in]columnAerogel tile column ID (range : [1;22] [1;28] [1;34] [1;40]).
[in]layerNAerogel tile layer ID (layer : 0 - up; layer : 1 - down).
[in]nAerogel tile refractive index.
[in]transmLAerogel tile rayleigh scattering length.
[in]thickAerogel tile thickness.
[in]materialAerogel tile material name.
Returns
Entry id number.

Definition at line 146 of file ARICHGeoAerogelPlane.cc.

148{
149 n = 0.0;
150 transmL = 0.0;
151 thick = 0.0;
152 material = (char*)"NULL";
153 for (unsigned i = 0; i < m_tiles.size(); i++) {
154 if (m_tiles.at(i).ring == ring) {
155 if (m_tiles.at(i).column == column) {
156 if (m_tiles.at(i).layer == layerN) {
157 n = m_tiles.at(i).n;
158 transmL = m_tiles.at(i).transmL;
159 thick = m_tiles.at(i).thick;
160 material = m_tiles.at(i).material;
161 return i;
162 }
163 }
164 }
165 }
166 B2WARNING("ARICHGeoAerogelPlane::getTileParameters --> tile position does not exist " << endl
167 << "ring = " << ring << endl
168 << "column = " << column << endl
169 << "layerN = " << layerN << endl);
170 B2ASSERT("ARICHGeoAerogelPlane::getTileParameters --> tile position does not exist", false);
171 return 0;
172}

◆ getTileThickness()

double getTileThickness ( int  ring,
int  column,
int  layerN 
) const

Get thickness of individual tile.

Parameters
[in]ringAerogel tile ring ID (range : [1;4]).
[in]columnAerogel tile column ID (range : [1;22] [1;28] [1;34] [1;40]).
[in]layerNAerogel tile layer ID (layer : 0 - up; layer : 1 - down).
Returns
Thickness of individual tile.

Definition at line 174 of file ARICHGeoAerogelPlane.cc.

175{
176 for (unsigned i = 0; i < m_tiles.size(); i++)
177 if (m_tiles.at(i).ring == ring)
178 if (m_tiles.at(i).column == column)
179 if (m_tiles.at(i).layer == layerN)
180 return m_tiles.at(i).thick;
181 B2WARNING("ARICHGeoAerogelPlane::getTileThickness --> tile position does not exist " << endl
182 << "ring = " << ring << endl
183 << "column = " << column << endl
184 << "layerN = " << layerN << endl);
185 B2ASSERT("ARICHGeoAerogelPlane::getTileParameters --> tile position does not exist", false);
186 return 0;
187}

◆ getTotalTileThickness()

double getTotalTileThickness ( int  ring,
int  column 
) const

Get total thickness of the aerogel tiles tile_up + tile_down for a given slot.

Parameters
[in]ringAerogel tile ring ID.
[in]columnAerogel tile column ID,
Returns
Total thickness of the aerogel tiles tile_up + tile_down.

Definition at line 204 of file ARICHGeoAerogelPlane.cc.

205{
206 double n;
207 double transmL;
208 double thickUp;
209 double thickDown;
210 std::string materialName;
211 getTileParameters(ring, column, 0, n, transmL, thickUp, materialName);
212 getTileParameters(ring, column, 1, n, transmL, thickDown, materialName);
213 //cout << setw(5) << "QWER"
214 // << setw(10) << ring
215 // << setw(10) << column
216 // << setw(10) << thickUp
217 // << setw(10) << thickDown <<endl;
218 return thickUp + thickDown;
219}
unsigned getTileParameters(int ring, int column, int layerN, double &n, double &transmL, double &thick, std::string &material) const
Get parameters of individual tile.

◆ getWallHeight()

double getWallHeight ( ) const
inline

Get height of aluminum walls between aerogel tiles.

Returns
Height of aluminum walls.

Definition at line 240 of file ARICHGeoAerogelPlane.h.

240{return m_wallHeight / s_unit;};

◆ getWallThickness()

double getWallThickness ( ) const
inline

Get thickness of aluminum walls between aerogel tiles.

Returns
Thickness of aluminum walls.

Definition at line 234 of file ARICHGeoAerogelPlane.h.

234{return m_wallThickness / s_unit;};

◆ isConsistent()

bool isConsistent ( ) const
overridevirtual

Consistency check of geometry parameters.

Returns
true if consistent

Reimplemented from ARICHGeoBase.

Definition at line 17 of file ARICHGeoAerogelPlane.cc.

18{
19
20 if (m_layers.size() == 0 || m_r.size() == 0 || m_dPhi.size() == 0) return false;
21 if (m_tileGap < 0 || m_innerR < 0) return false;
22 if (m_innerR > m_outerR) return false;
23 if (m_thickness < 0 || m_wallThickness < 0 || m_wallHeight < 0) return false;
24
25 if (abs(getWallHeight() - getLayerThickness(1) - getLayerThickness(2)) > 1.0e-10) {
26 cout << "getWallHeight() = " << getWallHeight() << endl
27 << "getLayerThickness(1) = " << getLayerThickness(1) << endl
28 << "getLayerThickness(2) = " << getLayerThickness(2) << endl;
29 cout << "getWallHeight() - getLayerThickness(1) - getLayerThickness(2) = "
31 B2ERROR("Data of the ARICHGeoAerogelPlane is inconsisten : --> abs (getWallHeight() - getLayerThickness(1) - getLayerThickness(2)) > 1.0e-10");
32 }
33
35 const int nn = 10;// Please note it can be any number bigger than number of aero ringth (now it is 4)
36 int nAeroSlotsPerRing[nn];
37 // Define the array with zeros
38 for (int i = 0; i < nn; i++)
39 nAeroSlotsPerRing[i] = 0;
40 for (unsigned i = 0; i < m_tiles.size(); i++)
41 if (m_tiles.at(i).layer == 0)
42 nAeroSlotsPerRing[m_tiles.at(i).ring - 1] += 1;
43 //Check is number of aerogel slots is consistent with number of entries for tiles properties.
44 for (unsigned i = 0; i < getNAeroSlotsIndividualRing().size(); i++) {
45 //cout<<"getNAeroSlotsIndividualRing().at(i) = "<<getNAeroSlotsIndividualRing().at(i)<<endl
46 // <<"nAeroSlotsPerRing[i] = "<<nAeroSlotsPerRing[i]<<endl;
47 B2ASSERT("Data of the ARICHGeoAerogelPlane is inconsisten : --> getNAeroSlotsIndividualRing().at(i) != nAeroSlotsPerRing[i]",
48 getNAeroSlotsIndividualRing().at(i) == nAeroSlotsPerRing[i]);
49 }
50 }
51
52 return true;
53}
double getLayerThickness(unsigned iLayer) const
Get thickness of tiles in i-th aerogel layer.
double getWallHeight() const
Get height of aluminum walls between aerogel tiles.
int getFullAerogelMaterialDescriptionKey() const
Get full aerogel material description key.

◆ isSimple()

bool isSimple ( ) const
inline

Use simple aerogel configuration.

Returns
True if simple.

Definition at line 388 of file ARICHGeoAerogelPlane.h.

389 {
390 return m_simple;
391 }
bool m_simple
switch to simple mode

◆ print()

void print ( const std::string &  title = "Aerogel plane parameters:") const
overridevirtual

Print the content of the class.

Parameters
[in]titleTitle to be printed.

Reimplemented from ARICHGeoBase.

Definition at line 55 of file ARICHGeoAerogelPlane.cc.

56{
58
59 cout << "Full aerogel material description key : " << getFullAerogelMaterialDescriptionKey() << endl;
60
61 cout << "Nume of aerogel rings and number of aerogel slots in individual ring " << endl;
62
63 cout << setw(5) << "Ring"
64 << setw(15) << "Aerogel slots" << endl;
65 for (unsigned i = 0; i < getNAeroSlotsIndividualRing().size(); i++) {
66 cout << setw(5) << i + 1
67 << setw(15) << getNAeroSlotsIndividualRing().at(i) << endl;
68 }
69
70 cout << "Imaginary tube thikness just after aerogel layers : " << getImgTubeThickness() << endl;
71 cout << "Minimum thickness of the compensation volume with ARICH air : " << getCompensationARICHairVolumeThick_min() << endl;
72
73 cout << "Aerogel layers " << endl;
74
75 int nLayer = getNLayers();
76 for (int iLayer = 1; iLayer < nLayer + 1; iLayer++) {
77 cout << " layer " << iLayer << endl;
78 cout << " thickness: " << getLayerThickness(iLayer) << " " << s_unitName << ", ref. index: " << getLayerRefIndex(
79 iLayer) << ", transm. length: " << getLayerTrLength(iLayer) << " " << s_unitName << ", material: " << getLayerMaterial(
80 iLayer) << endl;
81 }
83 cout << " Please note full aerogel material description key is set to 1 " << endl;
84 cout << " The name of each particular tile have this form : Aero1_serA090_rin4_col26 " << endl;
85 cout << " serialID = A090; ring = 4; column = 26; layer = up; " << endl;
86 cout << " The name of each particular tile have this form : Aero2_serB162_rin4_col14 " << endl;
87 cout << " serialID = B162; ring = 4 column = 15; layer = down; " << endl;
88 }
89
90 int nRing = getNRings();
91 cout << " Aluminum walls between tiles parameters" << endl;
92 cout << " thickness: " << getWallThickness() << " " << s_unitName << endl;
93 cout << " height: " << getWallHeight() << " " << s_unitName << endl;
94 for (int iRing = 1; iRing < nRing + 1; iRing++) {
95
96 if (iRing < nRing) cout << " ring: " << iRing << " has inner radius of " << getRingRadius(iRing) << " " << s_unitName << " and "
97 << static_cast<int>(2 * M_PI / getRingDPhi(iRing) + 0.5) << " aerogel tile slots." << endl;
98 else cout << " ring: " << iRing << " has inner radius of " << getRingRadius(iRing) << " " << s_unitName <<
99 " (this is the outer ring)" << endl;
100 }
101
102 cout << " gap between tile and aluminum wall: " << getTileGap() << " " << s_unitName << endl;
103 cout << " inner radius of support plate: " << getSupportInnerR() << " " << s_unitName << endl;
104 cout << " outer radius of support plate: " << getSupportOuterR() << " " << s_unitName << endl;
105 cout << " thickness of support plate: " << getSupportThickness() << " " << s_unitName << endl;
106 cout << " material of support plate: " << getSupportMaterial() << endl;
107
108 cout << "Positioning parameters (in local ARICH frame)" << endl;
110
111 if (isSimple()) {
112 cout << endl << "Simple aerogel configuration is set!" << endl;
113 cout << " Parameters:" << endl;
114 cout << " xSize: " << m_simpleParams.at(0) << ", ySize: " << m_simpleParams.at(1) << ", xPos: " << m_simpleParams.at(
115 2) << ", xPos: " << m_simpleParams.at(3) << ", zRot: " << m_simpleParams.at(4) << endl;
116 }
117
118}
bool isSimple() const
Use simple aerogel configuration.
double getSupportThickness() const
Get support-plate thickness.
double getSupportOuterR() const
Get support-plate outer radius.
double getCompensationARICHairVolumeThick_min() const
Get minimum thickness of the compensation volume with ARICH air.
double getImgTubeThickness() const
Get imaginary tube thikness just after aerogel layers used as volume to which tracks are extrapolated...
double getLayerTrLength(unsigned iLayer) const
Get transmission length of tiles in i-th aerogel layer.
double getRingDPhi(unsigned iRing) const
Get phi (angle) distance between "phi" aluminum wall between aerogel tiles in i-th tile ring.
const std::string & getLayerMaterial(unsigned iLayer) const
Get material name of tiles in i-th aerogel layer.
const std::string & getSupportMaterial() const
Get material of support plate.
double getLayerRefIndex(unsigned iLayer) const
Get refractive index of tiles in i-th aerogel layer.
double getWallThickness() const
Get thickness of aluminum walls between aerogel tiles.
double getRingRadius(unsigned iRing) const
Get radius of i-th aluminum ring between aerogel tiles (inner radius of ring).
unsigned getNLayers() const
Get number of aerogel layers.
double getSupportInnerR() const
Get support-plate inner radius.
double getTileGap() const
Get gap between aerogel tile and aluminum wall.
virtual void printPlacement(double x, double y, double z, double rx, double ry, double rz) const
Print volume positioning parameters.
Definition: ARICHGeoBase.cc:25
virtual void print(const std::string &title) const
Print the content of the class.
Definition: ARICHGeoBase.cc:20
static std::string s_unitName
conversion unit name
Definition: ARICHGeoBase.h:84

◆ printPlacement()

void printPlacement ( double  x,
double  y,
double  z,
double  rx,
double  ry,
double  rz 
) const
virtualinherited

Print volume positioning parameters.

Parameters
xx position
yy position
zz position
rxrotation around x-axis
ryrotation around y-axis
rzrotation around z-axis

Definition at line 25 of file ARICHGeoBase.cc.

26{
27// cout << "Volume positioning information (inside local ARICH frame)" << endl;
28 cout << " Center position; x: " << x << " " << s_unitName << ", y: " << y << " " << s_unitName << ", z: " << z << " " << s_unitName
29 << endl;
30 cout << " Rotations; x-axis: " << rx << " y-axis: " << ry << " z-axis: " << rz << " (in rad)" << endl;
31}

◆ printSingleTileParameters()

void printSingleTileParameters ( unsigned  i) const

Print the content of the single tilestr structure.

It contains position of the tile its refractive index, Rayleigh scattering length, thickness.

Parameters
[in]iEntry counter.

Definition at line 260 of file ARICHGeoAerogelPlane.cc.

261{
262 cout << "ARICHGeoAerogelPlane::printSingleTileParameters" << endl;
263 B2ASSERT("Aerogel tile property entry does not exist i >= m_tiles.size() ", i < m_tiles.size());
264 cout << setw(5) << "i"
265 << setw(10) << "ring"
266 << setw(10) << "column"
267 << setw(10) << "layer"
268 << setw(12) << "n"
269 << setw(12) << "transmL"
270 << setw(12) << "thick"
271 << setw(30) << "material" << endl;
272 cout << setw(5) << i
273 << setw(10) << m_tiles.at(i).ring
274 << setw(10) << m_tiles.at(i).column
275 << setw(10) << m_tiles.at(i).layer
276 << setw(12) << m_tiles.at(i).n
277 << setw(12) << m_tiles.at(i).transmL
278 << setw(12) << m_tiles.at(i).thick
279 << setw(30) << m_tiles.at(i).material << endl;
280}

◆ printSurface()

void printSurface ( const GeoOpticalSurface surface) const
virtualinherited

Print the content of optical surface.

Parameters
surfaceoptical surface parameters

Definition at line 32 of file ARICHGeoBase.cc.

33{
34 cout << " Optical surface: ";
35 if (surface.getName().empty() and !surface.hasProperties()) {
36 cout << "not defined" << endl;
37 return;
38 }
39 cout << surface.getName();
40 cout << ", model: " << surface.getModel();
41 cout << ", finish: " << surface.getFinish();
42 cout << ", type: " << surface.getType();
43 cout << ", value: " << surface.getValue();
44 cout << endl;
45 if (surface.hasProperties()) {
46 for (const auto& property : surface.getProperties()) {
47 cout << " - property: ";
48 cout << property.getName() << " [";
49 for (const auto& value : property.getValues()) cout << value << ", ";
50 cout << "], @[";
51 for (const auto& value : property.getEnergies()) cout << value / Unit::eV << ", ";
52 cout << "] eV" << endl;
53 }
54 } else {
55 cout << " - properties: None" << endl;
56 }
57
58}
const std::string & getName() const
get name of the optical surface
int getFinish() const
get finish of the surface
const std::vector< GeoMaterialProperty > & getProperties() const
get all properties
double getValue() const
get value for the surface condition
int getType() const
get type of the surface
bool hasProperties() const
check if the material has at least one property
int getModel() const
get model for the surface
static const double eV
[electronvolt]
Definition: Unit.h:112

◆ printTileParameters()

void printTileParameters ( const std::string &  title = "Aerogel tiles parameters:") const

Print the content of the m_tiles vector of tilestr structure.

It contains position of the tile its refractive index, Rayleigh scattering length, thickness.

Parameters
[in]titleTitle to be printed.

Definition at line 237 of file ARICHGeoAerogelPlane.cc.

238{
239 ARICHGeoBase::print(title);
240 cout << setw(5) << "i"
241 << setw(10) << "ring"
242 << setw(10) << "column"
243 << setw(10) << "layer"
244 << setw(12) << "n"
245 << setw(12) << "transmL"
246 << setw(12) << "thick"
247 << setw(30) << "material" << endl;
248 for (unsigned i = 0; i < m_tiles.size(); i++) {
249 cout << setw(5) << i
250 << setw(10) << m_tiles.at(i).ring
251 << setw(10) << m_tiles.at(i).column
252 << setw(10) << m_tiles.at(i).layer
253 << setw(12) << m_tiles.at(i).n
254 << setw(12) << m_tiles.at(i).transmL
255 << setw(12) << m_tiles.at(i).thick
256 << setw(30) << m_tiles.at(i).material << endl;
257 }
258}

◆ setAerogelLayer()

void setAerogelLayer ( unsigned  ilayer,
double  thick,
double  rIndex,
double  trLen,
const std::string &  material 
)
inline

Set parameters of i-th aerogel layer.

Parameters
[in]ilayerLayer number (1 is placed first, at lowest z, etc...).
[in]thickThickness of aerogel tiles in layer.
[in]rIndexRefractive index of aerogel tiles in layer.
[in]trLenTransmission length of aerogel tiles in layer
[in]materialMaterial of aerogel tiles in layer

Definition at line 288 of file ARICHGeoAerogelPlane.h.

289 {
290 if (ilayer == m_nLayers + 1) {
291 m_layers.push_back({thick, rIndex, trLen, material});
292 m_nLayers++;
293 } else if (ilayer < m_nLayers + 1) {
294 m_layers[ilayer - 1] = {thick, rIndex, trLen, material};
295 } else B2ERROR("ARICHGeoAerogelPlane::setAerogelLayer: please set aerogel layers in consecutive order!");
296 }

◆ setCompensationARICHairVolumeThick_min()

void setCompensationARICHairVolumeThick_min ( double  compensationARICHairVolumeThick_min)
inline

Set minimum thickness of the compensation volume with ARICH air.

Parameters
[in]compensationARICHairVolumeThick_minMinimum thickness of the compensation volume with ARICH air.

Definition at line 550 of file ARICHGeoAerogelPlane.h.

551 {
552 m_compensationARICHairVolumeThick_min = compensationARICHairVolumeThick_min;
553 }

◆ setFullAerogelMaterialDescriptionKey()

void setFullAerogelMaterialDescriptionKey ( int  fullAerogelMaterialDescriptionKey)
inline

Set full aerogel material description key.

1 - use material explicitly for each aerogel tile. Any integer (but not 1) - uses two types of aerogel material for upstream and downstream.

Parameters
[in]fullAerogelMaterialDescriptionKeyFull aerogel material description key.

Definition at line 429 of file ARICHGeoAerogelPlane.h.

430 {
431 m_fullAerogelMaterialDescriptionKey = fullAerogelMaterialDescriptionKey;
432 }

◆ setImgTubeThickness()

void setImgTubeThickness ( double  imgTubeThickness)
inline

Set imaginary tube thikness just after aerogel layers used as volume to which tracks are extrapolated.

Parameters
[in]imgTubeThicknessimaginary tube thikness.

Definition at line 529 of file ARICHGeoAerogelPlane.h.

530 {
531 m_imgTubeThickness = imgTubeThickness;
532 }

◆ setNAeroSlotsIndividualRing()

void setNAeroSlotsIndividualRing ( const std::vector< int > &  nAeroSlotsIndividualRing)
inline

Set vector of numbers of aerogel slots in individual ring.

Parameters
[in]nAeroSlotsIndividualRingVector of numbers of aerogel slots in individual ring.

Definition at line 304 of file ARICHGeoAerogelPlane.h.

304{ m_nAeroSlotsIndividualRing = nAeroSlotsIndividualRing; }

◆ setName()

void setName ( const std::string &  name)
inlineinherited

Sets object name.

Parameters
nameobject name

Definition at line 43 of file ARICHGeoBase.h.

43{m_name = name;}

◆ setPlacement()

void setPlacement ( double  x,
double  y,
double  z,
double  rx,
double  ry,
double  rz 
)
inline

Set aerogel plane positioning within ARICH local volume.

Parameters
[in]xX position.
[in]yY position.
[in]zZ position.
[in]rxRotation around x-axis.
[in]ryRotation around y-axis.
[in]rzRotation around z-axis.

Definition at line 110 of file ARICHGeoAerogelPlane.h.

110{m_x = x; m_y = y; m_z = z; m_rx = rx; m_ry = ry; m_rz = rz;}

◆ setSimple()

void setSimple ( std::vector< double > &  params)
inline

Set to use simple aerogel plane (single square aerogel tile (2 layers), for cosmic test for example).

Vector of parameters should contain: x size, y size, x position, y position, rotation phi angle.

Parameters
[in]paramsVector of aerogel tile parameters.

Definition at line 377 of file ARICHGeoAerogelPlane.h.

378 {
379 if (params.size() != 5) B2ERROR("ARICHGeoAerogelPlane:setSimple: 5 parameters are needed for simple configuration!");
380 m_simple = true;
381 m_simpleParams = params;
382 }

◆ setTileGap()

void setTileGap ( double  gap)
inline

Set gap between aerogel tile and aluminum wall.

Parameters
[in]gapGap size.

Definition at line 143 of file ARICHGeoAerogelPlane.h.

143{m_tileGap = gap;}

◆ setWallDPhi()

void setWallDPhi ( std::vector< double > &  dphi)
inline

Set phi (angle) distance between "phi" aluminum walls between aerogel tiles for all aerogel tile rings.

Parameters
[in]dphiVector of phi (angle) distances.

Definition at line 268 of file ARICHGeoAerogelPlane.h.

268{ m_dPhi = dphi; m_dPhiSize = dphi.size();}
unsigned m_dPhiSize
size of m_dPhi vector

◆ setWallHeight()

void setWallHeight ( double  height)
inline

Set height of aluminum walls between aerogel tiles.

Parameters
[in]heightWall height.

Definition at line 137 of file ARICHGeoAerogelPlane.h.

137{m_wallHeight = height;}

◆ setWallRadius()

void setWallRadius ( std::vector< double > &  rs)
inline

Set radiuses at which "r" aluminum walls between tiles are placed (+inner+outter aluminum ring).

Parameters
[in]rsVector of aluminum rings between aerogel tiles radiuses (inner radius!).

Definition at line 261 of file ARICHGeoAerogelPlane.h.

261{ m_r = rs; m_rSize = rs.size();}

◆ setWallThickness()

void setWallThickness ( double  thick)
inline

Set thickness of aluminum walls between aerogel tiles.

Parameters
[in]thickWall thickness.

Definition at line 131 of file ARICHGeoAerogelPlane.h.

131{m_wallThickness = thick;}

◆ testGetTileParametersFunction()

void testGetTileParametersFunction ( ) const

This function tests the getTileParameters function.

Definition at line 282 of file ARICHGeoAerogelPlane.cc.

283{
284 int ring = 1;
285 int column = 1;
286 int layerN = 0;
287 double n;
288 double transmL;
289 double thick;
290 std::string materialName;
291 printSingleTileParameters(getTileParameters(ring, column, layerN, n, transmL, thick, materialName));
292 ring = 1;
293 column = 1;
294 layerN = 1;
295 printSingleTileParameters(getTileParameters(ring, column, layerN, n, transmL, thick, materialName));
296 ring = 3;
297 column = 20;
298 layerN = 0;
299 printSingleTileParameters(getTileParameters(ring, column, layerN, n, transmL, thick, materialName));
300 ring = 3;
301 column = 20;
302 layerN = 1;
303 printSingleTileParameters(getTileParameters(ring, column, layerN, n, transmL, thick, materialName));
304 ring = -3;
305 column = 20;
306 layerN = 1;
307 printSingleTileParameters(getTileParameters(ring, column, layerN, n, transmL, thick, materialName));
308}
void printSingleTileParameters(unsigned i) const
Print the content of the single tilestr structure.

Member Data Documentation

◆ m_compensationARICHairVolumeThick_min

double m_compensationARICHairVolumeThick_min = 0
private

Minimum thickness of the compensation volume with ARICH air.

Definition at line 626 of file ARICHGeoAerogelPlane.h.

◆ m_dPhi

std::vector<double> m_dPhi
private

"phi" aluminum wall distances in tile ring

Definition at line 597 of file ARICHGeoAerogelPlane.h.

◆ m_dPhiSize

unsigned m_dPhiSize = 0
private

size of m_dPhi vector

Definition at line 614 of file ARICHGeoAerogelPlane.h.

◆ m_fullAerogelMaterialDescriptionKey

int m_fullAerogelMaterialDescriptionKey
private
Initial value:
=
0

Full aerogel material description key : 1 - use material explicitly for each aerogel tile, 0 - use two types of aerogel material.

Definition at line 620 of file ARICHGeoAerogelPlane.h.

◆ m_imgTubeThickness

double m_imgTubeThickness
private
Initial value:
=
0.0

imaginary tube thikness just after aerogel layers used as volume to which tracks are extrapolated

Definition at line 623 of file ARICHGeoAerogelPlane.h.

◆ m_innerR

double m_innerR = 0
private

inner radius of support plate

Definition at line 607 of file ARICHGeoAerogelPlane.h.

◆ m_layers

std::vector<layer> m_layers
private

parameters averaged properties of the aerogel tiles/layers (up and down)

Definition at line 600 of file ARICHGeoAerogelPlane.h.

◆ m_nAeroSlotsIndividualRing

std::vector<int> m_nAeroSlotsIndividualRing
private

Number of aerogel slots in individual ring.

Definition at line 598 of file ARICHGeoAerogelPlane.h.

◆ m_name

std::string m_name
protectedinherited

geometry object name

Definition at line 82 of file ARICHGeoBase.h.

◆ m_nLayers

unsigned m_nLayers = 0
private

number of aerogel tile layers

Definition at line 615 of file ARICHGeoAerogelPlane.h.

◆ m_outerR

double m_outerR = 0
private

outer radius of support plate

Definition at line 608 of file ARICHGeoAerogelPlane.h.

◆ m_r

std::vector<double> m_r
private

"r" aluminum wall radiuses

Definition at line 596 of file ARICHGeoAerogelPlane.h.

◆ m_rSize

unsigned m_rSize = 0
private

size of m_r vector

Definition at line 613 of file ARICHGeoAerogelPlane.h.

◆ m_rx

double m_rx = 0
private

rotation around x-axis

Definition at line 592 of file ARICHGeoAerogelPlane.h.

◆ m_ry

double m_ry = 0
private

rotation around y-axis

Definition at line 593 of file ARICHGeoAerogelPlane.h.

◆ m_rz

double m_rz = 0
private

rotation around z-axis

Definition at line 594 of file ARICHGeoAerogelPlane.h.

◆ m_simple

bool m_simple = 0
private

switch to simple mode

Definition at line 617 of file ARICHGeoAerogelPlane.h.

◆ m_simpleParams

std::vector<double> m_simpleParams
private

vector of simple parameters

Definition at line 618 of file ARICHGeoAerogelPlane.h.

◆ m_supportMaterial

std::string m_supportMaterial
private

material of support plate

Definition at line 606 of file ARICHGeoAerogelPlane.h.

◆ m_thickness

double m_thickness = 0
private

thickness of support plate

Definition at line 609 of file ARICHGeoAerogelPlane.h.

◆ m_tileGap

double m_tileGap = 0
private

gap between aerogel tiles and aluminum walls

Definition at line 603 of file ARICHGeoAerogelPlane.h.

◆ m_tiles

std::vector<tilestr> m_tiles
private

parameters of the individual aerogel tiles

Definition at line 601 of file ARICHGeoAerogelPlane.h.

◆ m_wallHeight

double m_wallHeight = 0
private

height (z) of aluminum walls between aerogel tiles

Definition at line 611 of file ARICHGeoAerogelPlane.h.

◆ m_wallThickness

double m_wallThickness = 0
private

thickness of aluminum walls between aerogel tiles

Definition at line 610 of file ARICHGeoAerogelPlane.h.

◆ m_x

double m_x = 0
private

x position

Definition at line 588 of file ARICHGeoAerogelPlane.h.

◆ m_y

double m_y = 0
private

y position

Definition at line 589 of file ARICHGeoAerogelPlane.h.

◆ m_z

double m_z = 0
private

z position

Definition at line 590 of file ARICHGeoAerogelPlane.h.

◆ s_unit

double s_unit = Unit::cm
staticprotectedinherited

conversion unit for length

Definition at line 83 of file ARICHGeoBase.h.

◆ s_unitName

std::string s_unitName
staticprotectedinherited

conversion unit name

Definition at line 84 of file ARICHGeoBase.h.


The documentation for this class was generated from the following files: