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