Belle II Software  release-05-01-25
ARICHAeroTilesInfo.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Luka Santelj *
7  * Martin Ritter, *
8  * Leonid Burmistrov *
9  * *
10  * This software is provided "as is" without any warranty. *
11  **************************************************************************/
12 
13 #include <framework/logging/Logger.h>
14 
15 #include <arich/dbobjects/ARICHAeroTilesInfo.h>
16 #include <iostream>
17 
18 using namespace std;
19 using namespace Belle2;
20 
21 float ARICHAeroTilesInfo::getRefractiveIndex(int slot, int layer) const
22 {
23 
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.;}
26 
27  std::vector<int> slotID{slot, layer};
28  std::vector<float> opticalProperties = m_aeroPos2optical.find(slotID)->second;
29 
30  return opticalProperties[0];
31 }
32 
33 float ARICHAeroTilesInfo::getTransmissionLength(int slot, int layer) const
34 {
35 
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.;}
38 
39  std::vector<int> slotID{slot, layer};
40  std::vector<float> opticalProperties = m_aeroPos2optical.find(slotID)->second;
41 
42  return opticalProperties[1];
43 }
44 
45 float ARICHAeroTilesInfo::getThickness(int slot, int layer) const
46 {
47 
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.;}
50 
51  std::vector<int> slotID{slot, layer};
52  std::vector<float> opticalProperties = m_aeroPos2optical.find(slotID)->second;
53 
54  return opticalProperties[2];
55 }
56 
57 void ARICHAeroTilesInfo::addMapping(int slot, int layer, float refractiveIndex, float transmissionLength, float thickness)
58 {
59 
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!"); }
62 
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));
66 }
67 
68 void ARICHAeroTilesInfo::print() const
69 {
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");
79  //B2INFO("Slot number: " << tile << "\n"
80  // << " downstream tile : refIndex = " << getRefractiveIndex(tile, 0) << "\n"
81  // << " transLength = " << getTransmissionLength(tile, 0) << "\n"
82  // << " upstream tile : refIndex = " << getRefractiveIndex(tile, 1) << "\n"
83  // << " transLength = " << getTransmissionLength(tile, 1) << "\n");
84  }
85 }
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19