13 #include <framework/logging/Logger.h>
15 #include <arich/dbobjects/ARICHAeroTilesInfo.h>
21 float ARICHAeroTilesInfo::getRefractiveIndex(
int slot,
int layer)
const
24 if (slot > 124 || slot < 1) { B2WARNING(
"ARICHAeroTilesInfo::getTransmissionLength: Slot number " << slot <<
" not valid!");
return 0.;}
25 if (layer > 1 || layer < 0) { B2WARNING(
"ARICHAeroTilesInfo::getTransmissionLength: Layer number " << layer <<
" not valid!");
return 0.;}
27 std::vector<int> slotID{slot, layer};
28 std::vector<float> opticalProperties = m_aeroPos2optical.find(slotID)->second;
30 return opticalProperties[0];
33 float ARICHAeroTilesInfo::getTransmissionLength(
int slot,
int layer)
const
36 if (slot > 124 || slot < 1) { B2WARNING(
"ARICHAeroTilesInfo::getTransmissionLength: Slot number " << slot <<
" not valid!");
return 0.;}
37 if (layer > 1 || layer < 0) { B2WARNING(
"ARICHAeroTilesInfo::getTransmissionLength: Layer number " << layer <<
" not valid!");
return 0.;}
39 std::vector<int> slotID{slot, layer};
40 std::vector<float> opticalProperties = m_aeroPos2optical.find(slotID)->second;
42 return opticalProperties[1];
45 float ARICHAeroTilesInfo::getThickness(
int slot,
int layer)
const
48 if (slot > 124 || slot < 1) { B2WARNING(
"ARICHAeroTilesInfo::getThickness: Slot number " << slot <<
" not valid!");
return 0.;}
49 if (layer > 1 || layer < 0) { B2WARNING(
"ARICHAeroTilesInfo::getThickness: Layer number " << layer <<
" not valid!");
return 0.;}
51 std::vector<int> slotID{slot, layer};
52 std::vector<float> opticalProperties = m_aeroPos2optical.find(slotID)->second;
54 return opticalProperties[2];
57 void ARICHAeroTilesInfo::addMapping(
int slot,
int layer,
float refractiveIndex,
float transmissionLength,
float thickness)
60 if (slot > 124 || slot < 1) { B2WARNING(
"ARICHAeroTilesInfo::getTransmissionLength: Slot number " << slot <<
" not valid!"); }
61 if (layer > 1 || layer < 0) { B2WARNING(
"ARICHAeroTilesInfo::getTransmissionLength: Layer number " << layer <<
" not valid!"); }
63 std::vector<int> slotID{slot, layer};
64 std::vector<float> opticalProperties{refractiveIndex, transmissionLength, thickness};
65 m_aeroPos2optical.insert(std::pair<std::vector<int>, std::vector<float>>(slotID, opticalProperties));
68 void ARICHAeroTilesInfo::print()
const
70 B2INFO(
"AEROGEL SLOT MAPPING with optical properties of tiles");
71 for (
int tile = 1; tile < N_TILES + 1; tile++) {
72 B2INFO(
"Slot number: " << tile <<
"\n"
73 <<
" downstream tile : refIndex = " << getRefractiveIndex(tile, 0) <<
"\n"
74 <<
" transLength = " << getTransmissionLength(tile, 0) <<
"\n"
75 <<
" thickness = " << getThickness(tile, 0) <<
"\n"
76 <<
" upstream tile : refIndex = " << getRefractiveIndex(tile, 1) <<
"\n"
77 <<
" transLength = " << getTransmissionLength(tile, 1) <<
"\n"
78 <<
" thickness = " << getThickness(tile, 1) <<
"\n");