BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Muc/MucCalib/include/MucCalib/MucStructConst.h
Go to the documentation of this file.
1//------------------------------------------------------------------------------|
2// [File ]: MucStructConst.h |
3// [Brief ]: Head file of MUC structure constants for calibration |
4// [Author]: Xie Yuguang, <ygxie@mail.ihep.ac.cn> |
5// [Date ]: Aug 22, 2006 |
6//------------------------------------------------------------------------------|
7
8#ifndef MUC_STRUCT_CONST_H
9#define MUC_STRUCT_CONST_H
10
11#include <cmath>
12#include <iostream>
13
14using namespace std;
15
16static const int CALIB_LV_MAX = 4; // 0-layer, 1-box, 2-strip, 3-pad
17static const int EFF_WINDOW =
18 4; // [-EFF_WINDOW,...,-2,-1,expected strip,+1,+2,,...,+EFF_WINDOW ]
19static const int TRACK_SEG_MAX = 8; // segment max of a track in MUC
20static const int TRACK_THRESHOLD = 100; // down limit of track number for good eff calibrated
21static const int DEFAULT_BUILD_MODE = 1; // default cluster building method, optimized, fatest
22static const double DEFAULT_EFF_VALUE = 0.95;
23static const double DEFAULT_EFF_ERR = 0.0;
24static const double DEFAULT_INC_VALUE = 0.0;
25static const double DEFAULT_NOS_VALUE = 0.0;
26static const double LIMIT_CUT = 0.0001; // For double variables compare
27static const double TRIGGER_RATE = 4000.0; // Hz
28static const double TRIGGER_WINDOW = 800e-9; // s
29
30static const double PI = 3.141593;
31static const double VALUE = tan( PI / 8.0 ); // for geometry calculation
32
33// Globle structure
34static const int PART_MAX = 3; // part number, 0-east endcap, 1-berral, 2-west endcap
35static const int SEGMENT_MAX = 8;
36static const int LAYER_MAX = 9;
37static const int BOX_MAX = 136;
38static const int STRIP_MAX = 9152;
39static const int STRIP_INBOX_MAX = 112;
40static const int SL_NUM = 2;
41static const int CLUSTER_CUT =
42 0; // if zero, including cluster ==1( used: cluster > CLUSTER_CUT );
43static const int CLUSTER_ALARM = 20; // a cluster with size == 20 regarded as huge
44static const int CLUSTER_RANGE =
45 STRIP_INBOX_MAX; // on the worst situation, generally < CLUSTER_ALARM;
46
47static const int BOX_PER_PART[PART_MAX] = { 32, 72, 32 };
48static const int BOX_PER_SEG[PART_MAX] = { 8, 9, 8 };
49static const int BOX_SUM[PART_MAX] = { 32, 104, 136 };
50
51static const int STR_PER_PART[3] = { 2048, 5056, 2048 };
52static const int B_STR_PER_SEG[2] = { 624, 688 };
53static const int STR_SUM[3] = { 2048, 7104, 9152 };
54
55static const int EEID = 0; // east endcap id
56static const int BRID = 1; // berral id
57static const int EWID = 2; // west endcap id
58static const int SL_UP = 0; // up super layer id
59static const int SL_DOWN = 1; // down super layer id
60static const int XSTR = 0; // strip read out from x direction
61static const int YSTR = 1; // strip read out from y direction
62static const int ZSTR = 2; // strip read out from z direction
63static const int PHISTR = 3; // strip read out from phi direction
64
65static const double STR_GAP = 2.0; // the gap between two strips
66static const double STR_TH = 1.0; // strip thickness
67static const double BOX_TH = 28.0; // aluminum box thickness
68static const double AS_GAP = 40.0; // the gap between two absorber
69
70// Endcap( only for one part, not total, east and west is the same)
71static const int E_SEG_NUM = 4; // segment number
72static const int E_LAY_NUM = 8; // layer number ( gap layer number )
73static const int E_STR_NUM = 64; // strip number persegment per layer
74
75static const int E_ASLAY_NUM = 9; // absorber layer number
76static const int E_PANEL_NUM = 3; // absorber layer number
77static const double E_STR_DST = 35; // distance between two strip center line
78static const int E_RPC_NUM[SL_NUM] = { 3, 5 }; // RPC number per segment per layer, up super
79 // layer is 3, down is 5
80
81static const double E_STR_WT = 33; // 35-2, Endcap strip width
82static const double E_AS_RMAX = 2500.0; // maximal radius of absorber incircle
83
84static const double E_GP_RMIN[E_LAY_NUM] = {
85 1067, 1100, 1133, 1167, 1203, 1241, 1302, 1362 }; // minimal radius of gap incircle
86static const double E_GP_DX = 40.0; // X offset of gap from X axis
87static const double E_GP_DY = 50.0; // Y offset of gap from Y axis
88static const double E_BOX_DR = 130.0; // radius offset of box from E_AS_RMAX
89
90static const double E_XSTR_OFFSET = 97.5; // the offset of first x-readout strip from x axis
91static const double E_YSTR_OFFSET = 87.5; // the offset of fisrst y-readout strip from y axis
92static const double E_STRPLN_DA =
93 16.0; // offset of strip plane from box edge close to X or Y axises
94static const double E_STRPLN_DB[2] = { 53.0, 41.0 }; // offsets of strip plane from box edge
95 // far away X or Y axises
96static const double E_STRPLN_DR = 26.0; // offsets of strip plane from box incircle edge
97
98// Barrel
99static const int B_SEG_NUM = 8; // segment number
100static const int B_LAY_NUM = 9; // layer number
101static const int B_TOP = 2; // top segment id
102
103static const int B_ZSTR_NUM = 48; // strip number in Z-readout box
104static const int B_PHISTR_NUM = 96; // strip number in Phi-readout(Tangent) box
105static const int B_TOPSTR_NUM = 112; // strip number in Phi-readout(Tangent) box of TOP segment
106
107static const int B_PHISTR_CUT_NUM = 80; // number of strips be cut in phi direction
108static const double B_PHISTR_CUT = 642; // dimension of phi strips be cut
109static const double B_ZSTR_CUT[2] = { 540, 610 }; // dimensions of z strips be cut
110static const double B_STR_DST[B_LAY_NUM] = {
111 20, 39, 27, 39, 30, 39, 33, 39, 37 }; // distance between two strips center line
112static const double B_PHI[B_SEG_NUM] = { -2, -1, 0, 1, 2,
113 -1, 0, 1 }; // rotation angle on Z axis, times PI/4
114static const int B_ZSTR_CUT_NUM[B_LAY_NUM] = {
115 16, 0, 12, 0, 11, 0, 10, 0, 9 }; // number of strips be cut in z direction
116
117static const double B_AS_LMAX = 3940.0; // maximal length of absorber
118static const double B_GP_DZ = 70.0; // offset of gap from the east or west edge of absorber
119static const double B_GP_LT = 3940.0; // gap length
120static const double B_GP_WT[B_LAY_NUM] = { 1266, 1314, 1372, 1430, 1496,
121 1562, 1652, 1762, 1860 }; // gap width
122static const double B_GP_SLOT_WT =
123 422; // width of gap slot be cut in segment 2 of east-end barrel
124static const double B_GP_SLOT_LT =
125 542; // length of gap slot be cut in segment 2 of east-end barrel
126static const double B_BOX_LT = 3800.0; // B_GP_LT - 2*B_GP_DZ;
127static const double B_BOX_SLOT_WT =
128 560; // width of slot be cut in segment 2 in east-end barrel
129static const double B_BOX_DT[SL_NUM] = { 31, 26 }; // gap of chamber and box in Phi direction
130static const double B_BOX_DZ[SL_NUM] = { 46, 41 }; // gap of chamber and box in Z direction
131static const double B_BOX_WT[B_LAY_NUM] = { 1050, 1300, 1360, 1416, 1484,
132 1548, 1640, 1748, 1848 }; // box width
133static const double B_AS_RMIN[B_LAY_NUM] = { 1740, 1810, 1880, 1950, 2030,
134 2110, 2230, 2350, 2470 }; // minimal r of absorber
135
136static const double B_TOPRPC_LTS[2] = { 540, 610 }; // special length of RPC in B_TOP
137
138static const double OVERLAP_WIDTH =
139 4.0; // avoid space between panels when apply "AND" operation
140
141#endif
#define PI