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