@@ -134,30 +134,36 @@ constexpr double length{segment::length};
134134constexpr double width{segment::width};
135135constexpr EColor color{kBlack };
136136} // namespace metalstack
137+ namespace silicon
138+ {
139+ constexpr double thickness{45 * mu}; // thickness of silicion
140+ constexpr double radiusInner{(thickness + metalstack::thickness) / 2 .}; // inner silicion radius correction
141+ constexpr double radiusOuter{(thickness - metalstack::thickness) / 2 .}; // outer silicion radius correction
142+ } // namespace silicon
137143constexpr unsigned int nLayers{3 };
138144constexpr unsigned int nTotLayers{7 };
139145constexpr unsigned int nSensorsIB{2 * nLayers};
140146constexpr double equatorialGap{1 * mm};
141147constexpr std::array<unsigned int , nLayers> nSegments{3 , 4 , 5 };
142- constexpr double epitaxialThickness{ 10 * mu }; // eptixial layer (charge collection)
143- constexpr double psubThickness{ 40 * mu}; // silicon substrate
144- constexpr double thickness{epitaxialThickness + psubThickness}; // physical thickness of chip
145- constexpr std::array<double , nLayers> radii{ 19.0006 * mm, 25.228 * mm, 31.4554 * mm }; // middle radius
146- constexpr std::array<double , nLayers> radiiInner{radii [0 ] - thickness / 2.0 , radii [1 ] - thickness / 2.0 , radii [2 ] - thickness / 2.0 }; // inner radius
147- constexpr std::array< double , nLayers> radiiOuter{radii[ 0 ] + thickness / 2.0 , radii[ 1 ] + thickness / 2.0 , radii[ 2 ] + thickness / 2.0 }; // outer radius
148+ constexpr double totalThickness{silicon::thickness + metalstack::thickness }; // total chip thickness
149+ constexpr std::array< double , nLayers> radii{ 19.0006 * mm, 25.228 * mm, 31.4554 * mm}; // nominal radius
150+ constexpr std::array< double , nLayers> radiiInner{radii[ 0 ] - silicon::radiusInner, radii[ 1 ] - silicon::radiusInner, radii[ 2 ] - silicon::radiusInner}; // inner silicon radius
151+ constexpr std::array<double , nLayers> radiiOuter{radii[ 0 ] + silicon::radiusOuter, radii[ 1 ] + silicon::radiusOuter, radii[ 2 ] + silicon::radiusOuter }; // outer silicon radius
152+ constexpr std::array<double , nLayers> radiiMiddle{(radiiInner [0 ] + radiiOuter[ 0 ]) / 2 ., (radiiInner [1 ] + radiiOuter[ 1 ]) / 2 ., (radiiInner [2 ] + radiiOuter[ 2 ]) / 2 .}; // middle silicon radius
153+ constexpr double nominalYShift{-metalstack:: thickness / 2 .}; // shift to position in silicion volume to the chip volume (silicon+metalstack)
148154namespace detID
149155{
150- 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
151- constexpr unsigned int l0IDStart{0 }; // < Start DetID layer 0
152- constexpr unsigned int l0IDEnd{2 * 3 * 12 * 12 - 1 }; // < End First DetID layer 0; inclusive range
153- constexpr unsigned int l0IDTot{2 * 3 * 12 * 12 }; // < Total DetID in Layer 0
154- constexpr unsigned int l1IDStart{l0IDEnd + 1 }; // < Start DetID layer 1
155- constexpr unsigned int l1IDEnd{l1IDStart + 2 * 4 * 12 * 12 - 1 }; // < End First DetID layer 1; inclusive range
156- constexpr unsigned int l1IDTot{2 * 4 * 12 * 12 }; // < Total DetID in Layer 1
157- constexpr unsigned int l2IDStart{l1IDEnd + 1 }; // < Start DetID layer 2
158- constexpr unsigned int l2IDEnd{l2IDStart + 2 * 5 * 12 * 12 - 1 }; // < End First DetID layer 2; inclusive range
159- constexpr unsigned int l2IDTot{2 * 5 * 12 * 12 }; // < Total DetID in Layer 2
160- constexpr unsigned int nChips{l2IDEnd + 1 }; // < number of Chips (PixelArrays) in IB
156+ 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
157+ constexpr unsigned int l0IDStart{0 }; // < Start DetID layer 0
158+ constexpr unsigned int l0IDEnd{( 2 * 3 * 12 * 12 ) - 1 }; // < End First DetID layer 0; inclusive range
159+ constexpr unsigned int l0IDTot{2 * 3 * 12 * 12 }; // < Total DetID in Layer 0
160+ constexpr unsigned int l1IDStart{l0IDEnd + 1 }; // < Start DetID layer 1
161+ constexpr unsigned int l1IDEnd{l1IDStart + ( 2 * 4 * 12 * 12 ) - 1 }; // < End First DetID layer 1; inclusive range
162+ constexpr unsigned int l1IDTot{2 * 4 * 12 * 12 }; // < Total DetID in Layer 1
163+ constexpr unsigned int l2IDStart{l1IDEnd + 1 }; // < Start DetID layer 2
164+ constexpr unsigned int l2IDEnd{l2IDStart + ( 2 * 5 * 12 * 12 ) - 1 }; // < End First DetID layer 2; inclusive range
165+ constexpr unsigned int l2IDTot{2 * 5 * 12 * 12 }; // < Total DetID in Layer 2
166+ constexpr unsigned int nChips{l2IDEnd + 1 }; // < number of Chips (PixelArrays) in IB
161167
162168template <typename T = int >
163169inline T getDetID2Layer (T detID)
0 commit comments