Belle II Software development
ARICHAeroTilesInfo.cc
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#include <framework/logging/Logger.h>
10
11#include <arich/dbobjects/ARICHAeroTilesInfo.h>
12
13using namespace std;
14using namespace Belle2;
15
16float ARICHAeroTilesInfo::getRefractiveIndex(int slot, int layer) const
17{
18
19 if (slot > 124 || slot < 1) { B2WARNING("ARICHAeroTilesInfo::getTransmissionLength: Slot number " << slot << " not valid!"); return 0.;}
20 if (layer > 1 || layer < 0) { B2WARNING("ARICHAeroTilesInfo::getTransmissionLength: Layer number " << layer << " not valid!"); return 0.;}
21
22 std::vector<int> slotID{slot, layer};
23 std::vector<float> opticalProperties = m_aeroPos2optical.find(slotID)->second;
24
25 return opticalProperties[0];
26}
27
28float ARICHAeroTilesInfo::getTransmissionLength(int slot, int layer) const
29{
30
31 if (slot > 124 || slot < 1) { B2WARNING("ARICHAeroTilesInfo::getTransmissionLength: Slot number " << slot << " not valid!"); return 0.;}
32 if (layer > 1 || layer < 0) { B2WARNING("ARICHAeroTilesInfo::getTransmissionLength: Layer number " << layer << " not valid!"); return 0.;}
33
34 std::vector<int> slotID{slot, layer};
35 std::vector<float> opticalProperties = m_aeroPos2optical.find(slotID)->second;
36
37 return opticalProperties[1];
38}
39
40float ARICHAeroTilesInfo::getThickness(int slot, int layer) const
41{
42
43 if (slot > 124 || slot < 1) { B2WARNING("ARICHAeroTilesInfo::getThickness: Slot number " << slot << " not valid!"); return 0.;}
44 if (layer > 1 || layer < 0) { B2WARNING("ARICHAeroTilesInfo::getThickness: Layer number " << layer << " not valid!"); return 0.;}
45
46 std::vector<int> slotID{slot, layer};
47 std::vector<float> opticalProperties = m_aeroPos2optical.find(slotID)->second;
48
49 return opticalProperties[2];
50}
51
52void ARICHAeroTilesInfo::addMapping(int slot, int layer, float refractiveIndex, float transmissionLength, float thickness)
53{
54
55 if (slot > 124 || slot < 1) { B2WARNING("ARICHAeroTilesInfo::getTransmissionLength: Slot number " << slot << " not valid!"); }
56 if (layer > 1 || layer < 0) { B2WARNING("ARICHAeroTilesInfo::getTransmissionLength: Layer number " << layer << " not valid!"); }
57
58 std::vector<int> slotID{slot, layer};
59 std::vector<float> opticalProperties{refractiveIndex, transmissionLength, thickness};
60 m_aeroPos2optical.insert(std::pair<std::vector<int>, std::vector<float>>(slotID, opticalProperties));
61}
62
64{
65 B2INFO("AEROGEL SLOT MAPPING with optical properties of tiles");
66 for (int tile = 1; tile < N_TILES + 1; tile++) {
67 B2INFO("Slot number: " << tile << "\n"
68 << " downstream tile : refIndex = " << getRefractiveIndex(tile, 0) << "\n"
69 << " transLength = " << getTransmissionLength(tile, 0) << "\n"
70 << " thickness = " << getThickness(tile, 0) << "\n"
71 << " upstream tile : refIndex = " << getRefractiveIndex(tile, 1) << "\n"
72 << " transLength = " << getTransmissionLength(tile, 1) << "\n"
73 << " thickness = " << getThickness(tile, 1) << "\n");
74 //B2INFO("Slot number: " << tile << "\n"
75 // << " downstream tile : refIndex = " << getRefractiveIndex(tile, 0) << "\n"
76 // << " transLength = " << getTransmissionLength(tile, 0) << "\n"
77 // << " upstream tile : refIndex = " << getRefractiveIndex(tile, 1) << "\n"
78 // << " transLength = " << getTransmissionLength(tile, 1) << "\n");
79 }
80}
void addMapping(int slot, int layer, float refractiveIndex, float transmissionLength, float thickness)
Add mapping entry.
float getThickness(int slot, int layer) const
Get transmission length of aerogel tile from slot number.
float getRefractiveIndex(int slot, int layer) const
Get refractive index of aerogel tile from slot number.
std::map< std::vector< int >, std::vector< float > > m_aeroPos2optical
map of tile slot (1-124) to optical properties and thickness
void print() const
Print mapping.
float getTransmissionLength(int slot, int layer) const
Get transmission length of aerogel tile from slot number.
Abstract base class for different kinds of events.
STL namespace.