BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MucGeoCreateAlg/include/MucGeoCreateAlg/MucGeoConst.h
Go to the documentation of this file.
1//------------------------------------------------------------------------------|
2// [File ]: MucGeoConst.h |
3// [Brief ]: Head file of MUC geometry constants according to the |
4// construction and production geometry |
5// [Author]: Xie Yuguang, <ygxie@mail.ihep.ac.cn> |
6// [Date ]: Nov 22, 2005 |
7//------------------------------------------------------------------------------|
8
9#ifndef MUC_GEO_CONST_H
10#define MUC_GEO_CONST_H
11
12#include <cmath>
13#include <iostream>
14
15using namespace std;
16
17//---------------------- Grobal Constant ---------------------------
18static const double MUC_PI = 3.141592653589793; // for geometry calculation
19static const double BETA = MUC_PI / 8.0; // structure angle
20static const double VALUE = tan( BETA ); // for geometry calculation
21static const double ERR_LIMIT = 0.01; // for precision cut
22
23static const double MAX_FRACTION = 0.8; // if offset out range, set offset to MAX_FRACTION*MAX
24static const double E_OFFSET_MAX[3] = { 45.0, 5.0,
25 5.0 }; // for endcap box x alignment offset checking
26static const double B_X_MAX[3] = {
27 8.0, // Layer 0
28 7.0, // Layer 1,3,5,7
29 6.0 // Layer 2,4,6,8
30}; // for barrel box x alignment offset checking
31static const double B_Y_MAX = 5.0; // for box y alignment offset checking
32static const double B_Z_MAX = 5.0; // for box z alignment offset checking
33
34static const double STR_OFFSET_MAX[3] = { 5.0, 5.0, 2.0 }; // for strip plane alignment, 1:
35 // X_MAX, 2: Y_MAX, 3: Z_MAX
36
37//---------------------- Structure Constant ----------------------------
38// Globle structure
39static const int PART_MAX = 3; // part number, 0-east endcap, 1-berral, 2-west endcap
40static const int BOX_MAX = 136; // maximum of box number
41static const int STRIP_MAX = 9152;
42static const int STRIP_INBOX_MAX = 112;
43
44static const int EEID = 0; // east endcap id
45static const int BRID = 1; // berral id
46static const int EWID = 2; // west endcap id
47static const int SL_NUM = 2; // rpc super layer number in one box(module)
48static const int SL_UP = 0; // up super layer id
49static const int SL_DOWN = 1; // down super layer id
50static const int ROTA_FLAG = 1; // need rotation
51static const int XSTR = 0; // strip read out from x direction
52static const int YSTR = 1; // strip read out from y direction
53static const int ZSTR = 2; // strip read out from z direction
54static const int PHISTR = 3; // strip read out from phi direction
55static const int BKLT_NUM = 2; // bakelite number of each rpc chamber
56static const double BOX_TH = 28.0; // aluminum box thickness
57static const double RPC_TH = 6.0; // rpc chamber thickness
58static const double GAS_TH = 2.0; // gas mixture thickness
59static const double BKLT_TH = 2.0; // bakelite thickness
60static const double BOX_COVER_TH = 1.5; // box cover thickness
61static const double STR_TH = 1.0; // strip thickness
62static const double STR_GAP = 2.0; // the gap between two strips
63static const double AS_GAP = 40.0; // the gap between two absorber
64static const double RPC_SL_OFFSET = 5.0; // offsets of UP RPCs relative to DOWN RPCs
65// static const double RPC_DEATH_EDGE = 10.0; // the death edge of rpc chamber
66static const double RPC_DEATH_EDGE = 22.0; // the death edge of rpc chamber
67static const double OVERLAP_WIDTH =
68 4.0; // avoid space between panels when apply "AND" operation
69
70static const int BOX_PER_PART[PART_MAX] = { 32, 72, 32 };
71static const int BOX_PER_SEG[PART_MAX] = { 8, 9, 8 };
72static const int BOX_SUM[PART_MAX] = { 32, 104, 136 };
73static const int STR_PER_PART[3] = { 2048, 5056, 2048 };
74static const int B_STR_PER_SEG[2] = { 624, 688 };
75static const int STR_SUM[3] = { 2048, 7104, 9152 };
76
77// Endcap( only one part, not total, east and west is the same)
78static const int E_SEG_NUM = 4; // segment number
79static const int E_LAY_NUM = 8; // layer number ( gap layer number )
80static const int E_ASLAY_NUM = 9; // absorber layer number
81static const int E_PANEL_NUM = 3; // absorber layer number
82// static const int E_AS_NUM = 3; // absorber number per segment per layer
83// static const int E_GP_NUM = 3; // gap number per segment per laye
84static const int E_STR_NUM = 64; // strip number persegment per layer
85static const double E_STR_DST = 35; // distance between two strip center line
86static const int E_RPC_NUM[SL_NUM] = { 3, 5 }; // RPC number per segment per layer, up super
87 // layer is 3, down is 5
88
89static const double E_XSTR_OFFSET = 97.5; // the offset of first x-readout strip from x axis
90static const double E_YSTR_OFFSET = 87.5; // the offset of fisrst y-readout strip from y axis
91static const double E_STR_WT = E_STR_DST - STR_GAP; // Endcap strip width
92
93static const double E_AS_ZMAX = 2800.0; // maximum Z of endcap absorber coordinates
94static const double E_AS_RMAX = 2500.0; // maximal radius of absorber incircle
95static const double E_AS_TOTAL_TH = 750; // total length in z direction of absorber
96static const double E_AS_TH[E_ASLAY_NUM] = { 40, 40, 30, 30, 30,
97 50, 80, 80, 50 }; // absorber thickness
98static const double E_AS_RMIN[E_ASLAY_NUM] = { 1034, 1067, 1100, 1133, 1167,
99 1203, 1241, 1302, 1302 }; // minimal radius of
100 // absorber incircle
101
102static const double E_GP_RMIN[E_LAY_NUM] = {
103 1067, 1100, 1133, 1167, 1203, 1241, 1302, 1362 }; // minimal radius of gap incircle
104static const double E_GP_DX = 40.0; // X offset of gap from X axis
105static const double E_GP_DY = 50.0; // Y offset of gap from Y axis
106static const double E_BOX_DR = 130.0; // radius offset of box from E_AS_RMAX
107
108static const double E_STRPLN_DA =
109 16.0; // offset of strip plane from box edge close to X or Y axises
110static const double E_STRPLN_DB[2] = { 53.0, 41.0 }; // offsets of strip plane from box edge
111 // far away X or Y axises
112static const double E_STRPLN_DR = 26.0; // offsets of strip plane from box incircle edge
113
114// Barrel
115static const int B_SEG_NUM = 8; // segment number
116static const int B_LAY_NUM = 9; // layer number
117static const int B_AS_NUM = 1; // absorber number per segment per layer
118static const int B_GP_NUM = 1; // gap number per segment per layer
119static const int B_STR_PANEL_NUM =
120 3; // maximum number of stripp_lane panel per segment per layer
121static const int B_RPC_NUM = 4; // RPC number per segment per layer, except segment NO.2(TOP)
122static const int B_TOP_RPC_NUM = 5; // RPC number in TOP segment per layer
123static const int B_TOP = 2; // top segment id
124
125static const int B_ZSTR_NUM = 48; // strip number in Z-readout box
126static const int B_PHISTR_NUM = 96; // strip number in Phi-readout(Tangent) box
127static const int B_TOPSTR_NUM = 112; // strip number in Phi-readout(Tangent) box of TOP segment
128static const int B_ZSTR_CUT_NUM[B_LAY_NUM] = {
129 16, 0, 12, 0, 11, 0, 10, 0, 9 }; // number of strips be cut in z direction
130static const int B_PHISTR_CUT_NUM = 80; // number of strips be cut in phi direction
131static const double B_ZSTR_CUT[2] = { 540, 610 }; // dimensions of z strips be cut
132static const double B_PHISTR_CUT = 642; // dimension of phi strips be cut
133static const double B_STR_DST[B_LAY_NUM] = {
134 20, 39, 27, 39, 30, 39, 33, 39, 37 }; // distance between two strips center line
135static const double B_PHI[B_SEG_NUM] = {
136 -2, -1, 0, 1, 2, -1, 0, 1 }; // rotation angle on Z axis, times MUC_PI/4
137static const double B_AS_RMAX = 2620.0; // maximal radius of absorber incircle
138static const double B_AS_LMAX = 3940.0; // maximal length of absorber
139static const double B_AS_RMIN[B_LAY_NUM] = { 1740, 1810, 1880, 1950, 2030,
140 2110, 2230, 2350, 2470 }; // minimal radius of
141 // absorber incircle
142static const double B_AS_WT[B_LAY_NUM] = { 1293.3, 1351.3, 1409.3, 1467.3, 1533.3,
143 1599.3, 1699.3, 1797.3, 1919.3 };
144static const double B_AS_TH[B_LAY_NUM] = { 30, 30, 30, 40, 40,
145 80, 80, 80, 150 }; // absorber thickness
146
147static const double B_GP_DZ = 70.0; // offset of gap from absorber edge
148static const double B_GP_LT = 3940.0; // gap length
149// static const double B_GP_WT[B_LAY_NUM] =
150// {1263.3,1311.3,1369.3,1427.3,1493.3,1559.3,1649.3,1759.3,1857.3}; // gap width
151static const double B_GP_WT[B_LAY_NUM] = { 1266, 1314, 1372, 1430, 1496,
152 1562, 1652, 1762, 1860 }; // gap width
153static const double B_BOX_LT = B_GP_LT - 2 * B_GP_DZ; // 3800.0
154static const double B_BOX_WT[B_LAY_NUM] = { 1050, 1300, 1360, 1416, 1484,
155 1548, 1640, 1748, 1848 }; // box width
156static const double B_BOX_DZ[SL_NUM] = { 46, 41 }; // gap of chamber and box in Z direction
157static const double B_BOX_DT[SL_NUM] = { 31, 26 }; // gap of chamber and box in Phi direction
158static const double B_BOX_SLOT_WT =
159 560; // width of box slot be cut in segment 2 of east-end barrel
160static const double B_GP_SLOT_WT =
161 422; // width of gap slot be cut in segment 2 of east-end barrel
162static const double B_GP_SLOT_LT =
163 542; // length of gap slot be cut in segment 2 of east-end barrel
164
165static const double B_RPC_LTN = 1112; // normal rpc length except B_TOP
166static const double B_RPC_LTS = 1050; // special rpc length except B_TOP
167static const double B_TOPRPC_LTN = 1112; // nomal length of RPC in B_TOP
168static const double B_TOPRPC_LTS[2] = { 540, 610 }; // special length of RPC in B_TOP
169
170#endif