|
23 | 23 |
|
24 | 24 | namespace o2::its3::constants |
25 | 25 | { |
26 | | -constexpr float cm{1e+2}; // This is the default unit of TGeo so we use this as scale |
27 | | -constexpr float mu{1e-6 * cm}; |
28 | | -constexpr float mm{1e-3 * cm}; |
| 26 | +constexpr double cm{1e+2}; // This is the default unit of TGeo so we use this as scale |
| 27 | +constexpr double mu{1e-6 * cm}; |
| 28 | +constexpr double mm{1e-3 * cm}; |
29 | 29 | namespace pixelarray |
30 | 30 | { |
31 | | -constexpr float width{9.197 * mm}; |
32 | | -constexpr float length{3.571 * mm}; |
| 31 | +constexpr double width{9.197 * mm}; |
| 32 | +constexpr double length{3.571 * mm}; |
33 | 33 | constexpr int nCols{156}; |
34 | 34 | constexpr int nRows{442}; |
35 | 35 | constexpr int nPixels{nRows * nCols}; |
36 | 36 | constexpr EColor color{kGreen}; |
37 | | -constexpr float area{width * length}; |
| 37 | +constexpr double area{width * length}; |
38 | 38 | } // namespace pixelarray |
39 | 39 | namespace tile |
40 | 40 | { |
41 | 41 | namespace biasing |
42 | 42 | { |
43 | | -constexpr float width{0.06 * mm}; |
44 | | -constexpr float length{3.571 * mm}; |
| 43 | +constexpr double width{0.06 * mm}; |
| 44 | +constexpr double length{3.571 * mm}; |
45 | 45 | constexpr EColor color{kYellow}; |
46 | 46 | static_assert(length == pixelarray::length); |
47 | 47 | } // namespace biasing |
48 | 48 | namespace powerswitches |
49 | 49 | { |
50 | | -constexpr float width{9.257 * mm}; |
51 | | -constexpr float length{0.02 * mm}; |
52 | | -constexpr float z{pixelarray::width}; |
| 50 | +constexpr double width{9.257 * mm}; |
| 51 | +constexpr double length{0.02 * mm}; |
| 52 | +constexpr double z{pixelarray::width}; |
53 | 53 | constexpr EColor color{kBlue}; |
54 | 54 | } // namespace powerswitches |
55 | 55 | namespace readout |
56 | 56 | { |
57 | | -constexpr float width{0.525 * mm}; |
58 | | -constexpr float length{3.591 * mm}; |
| 57 | +constexpr double width{0.525 * mm}; |
| 58 | +constexpr double length{3.591 * mm}; |
59 | 59 | constexpr EColor color{kMagenta}; |
60 | 60 | static_assert(length == (biasing::length + powerswitches::length)); |
61 | 61 | } // namespace readout |
62 | | -constexpr float length{readout::length}; |
63 | | -constexpr float width{powerswitches::width + readout::width}; |
| 62 | +constexpr double length{readout::length}; |
| 63 | +constexpr double width{powerswitches::width + readout::width}; |
64 | 64 | } // namespace tile |
65 | 65 | namespace rsu |
66 | 66 | { |
67 | 67 | namespace databackbone |
68 | 68 | { |
69 | | -constexpr float width{9.782 * mm}; |
70 | | -constexpr float length{0.06 * mm}; |
| 69 | +constexpr double width{9.782 * mm}; |
| 70 | +constexpr double length{0.06 * mm}; |
71 | 71 | constexpr EColor color{kRed}; |
72 | 72 | } // namespace databackbone |
73 | | -constexpr float width{19.564 * mm}; |
74 | | -constexpr float length{21.666 * mm}; |
| 73 | +constexpr double width{19.564 * mm}; |
| 74 | +constexpr double length{21.666 * mm}; |
75 | 75 | constexpr unsigned int nTiles{12}; |
76 | 76 | } // namespace rsu |
77 | 77 | namespace segment |
78 | 78 | { |
79 | | -constexpr float width{rsu::width}; |
| 79 | +constexpr double width{rsu::width}; |
80 | 80 | namespace lec |
81 | 81 | { |
82 | | -constexpr float width{segment::width}; |
83 | | -constexpr float length{4.5 * mm}; |
| 82 | +constexpr double width{segment::width}; |
| 83 | +constexpr double length{4.5 * mm}; |
84 | 84 | constexpr EColor color{kCyan}; |
85 | 85 | } // namespace lec |
86 | 86 | namespace rec |
87 | 87 | { |
88 | | -constexpr float width{segment::width}; |
89 | | -constexpr float length{1.5 * mm}; |
| 88 | +constexpr double width{segment::width}; |
| 89 | +constexpr double length{1.5 * mm}; |
90 | 90 | constexpr EColor color{kCyan}; |
91 | 91 | } // namespace rec |
92 | 92 | constexpr unsigned int nRSUs{12}; |
93 | 93 | constexpr unsigned int nTilesPerSegment{nRSUs * rsu::nTiles}; |
94 | | -constexpr float length{nRSUs * rsu::length + lec::length + rec::length}; |
95 | | -constexpr float lengthSensitive{nRSUs * rsu::length}; |
| 94 | +constexpr double length{nRSUs * rsu::length + lec::length + rec::length}; |
| 95 | +constexpr double lengthSensitive{nRSUs * rsu::length}; |
96 | 96 | } // namespace segment |
97 | 97 | namespace carbonfoam |
98 | 98 | { |
99 | 99 | // TODO: Waiting for the further information from WP5(Corrado) |
100 | | -constexpr float longeronsWidth{2.0 * mm}; // what is the height of the longerons? |
101 | | -constexpr float longeronsLength{263 * mm}; // from blueprint |
102 | | -constexpr float HringLength{6.0 * mm}; // from blueprint |
103 | | -constexpr float edgeBetwChipAndFoam{1.0 * mm}; // from blueprint but not used cause forms are already overlapping |
104 | | -constexpr float gapBetwHringsLongerons{0.05 * mm}; // from blueprint |
105 | | -constexpr std::array<int, 3> nHoles{11, 11, 11}; // how many holes for each layer? |
106 | | -constexpr std::array<float, 3> radiusHoles{1.0 * mm, 1.0 * mm, 2.0 * mm}; // what is the radius of the holes for each layer? |
| 100 | +constexpr double longeronsWidth{2.0 * mm}; // what is the height of the longerons? |
| 101 | +constexpr double longeronsLength{263 * mm}; // from blueprint |
| 102 | +constexpr double HringLength{6.0 * mm}; // from blueprint |
| 103 | +constexpr double edgeBetwChipAndFoam{1.0 * mm}; // from blueprint but not used cause forms are already overlapping |
| 104 | +constexpr double gapBetwHringsLongerons{0.05 * mm}; // from blueprint |
| 105 | +constexpr std::array<int, 3> nHoles{11, 11, 11}; // how many holes for each layer? |
| 106 | +constexpr std::array<double, 3> radiusHoles{1.0 * mm, 1.0 * mm, 2.0 * mm}; // what is the radius of the holes for each layer? |
107 | 107 | constexpr EColor color{kGray}; |
108 | 108 | } // namespace carbonfoam |
109 | 109 | namespace metalstack |
110 | 110 | { |
111 | | -constexpr float thickness{5 * mu}; // physical thickness of the copper metal stack |
112 | | -constexpr float length{segment::length}; |
113 | | -constexpr float width{segment::width}; |
| 111 | +constexpr double thickness{5 * mu}; // physical thickness of the copper metal stack |
| 112 | +constexpr double length{segment::length}; |
| 113 | +constexpr double width{segment::width}; |
114 | 114 | constexpr EColor color{kBlack}; |
115 | 115 | } // namespace metalstack |
116 | 116 | constexpr unsigned int nLayers{3}; |
117 | 117 | constexpr unsigned int nTotLayers{7}; |
118 | 118 | constexpr unsigned int nSensorsIB{2 * nLayers}; |
119 | | -constexpr float equatorialGap{1 * mm}; |
| 119 | +constexpr double equatorialGap{1 * mm}; |
120 | 120 | constexpr std::array<unsigned int, nLayers> nSegments{3, 4, 5}; |
121 | | -constexpr float epitaxialThickness{10 * mu}; // eptixial layer (charge collection) |
122 | | -constexpr float psubThickness{40 * mu}; // silicon substrate |
123 | | -constexpr float thickness{epitaxialThickness + psubThickness}; // physical thickness of chip |
124 | | -constexpr float effThickness{epitaxialThickness / 2.0 + psubThickness}; // effective physical thickness |
125 | | -constexpr float corrThickness{effThickness - thickness / 2.0}; // correction to get into the epitxial layer |
126 | | -constexpr std::array<float, nLayers> radii{19.0006 * mm, 25.228 * mm, 31.4554 * mm}; // middle radius e.g. inner radius+thickness/2. |
127 | | -constexpr std::array<float, nLayers> radiiInner{radii[0] - thickness / 2.0, radii[1] - thickness / 2.0, radii[2] - thickness / 2.0}; // inner radius |
128 | | -constexpr std::array<float, nLayers> radiiOuter{radii[0] + thickness / 2.0, radii[1] + thickness / 2.0, radii[2] + thickness / 2.0}; // inner radius |
| 121 | +constexpr double epitaxialThickness{10 * mu}; // eptixial layer (charge collection) |
| 122 | +constexpr double psubThickness{40 * mu}; // silicon substrate |
| 123 | +constexpr double thickness{epitaxialThickness + psubThickness}; // physical thickness of chip |
| 124 | +constexpr double effThickness{epitaxialThickness / 2.0 + psubThickness}; // effective physical thickness |
| 125 | +constexpr double corrThickness{effThickness - thickness / 2.0}; // correction to get into the epitxial layer |
| 126 | +constexpr std::array<double, nLayers> radii{19.0006 * mm, 25.228 * mm, 31.4554 * mm}; // middle radius e.g. inner radius+thickness/2. |
| 127 | +constexpr std::array<float, nLayers> radiiF{19.0006 * mm, 25.228 * mm, 31.4554 * mm}; // middle radius e.g. inner radius+thickness/2. |
| 128 | +constexpr std::array<double, nLayers> radiiInner{radii[0] - thickness / 2.0, radii[1] - thickness / 2.0, radii[2] - thickness / 2.0}; // inner radius |
| 129 | +constexpr std::array<double, nLayers> radiiOuter{radii[0] + thickness / 2.0, radii[1] + thickness / 2.0, radii[2] + thickness / 2.0}; // inner radius |
129 | 130 | namespace detID |
130 | 131 | { |
131 | 132 | constexpr unsigned int mDetIDs{2 * 12 * 12 * 12}; //< 2 Hemispheres * (3,4,5=12 segments in a layer) * 12 RSUs in a segment * 12 Tiles in a RSU |
|
0 commit comments