/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Muc/MucGeoCreateAlg/MucGeoCreateAlg-00-01-00/MucGeoCreateAlg/MucGeoConst.h

Go to the documentation of this file.
00001 //------------------------------------------------------------------------------|
00002 //      [File  ]:                       MucGeoConst.h                           |
00003 //      [Brief ]:       Head file of MUC geometry constants according to the    |
00004 //                      construction and production geometry                    |
00005 //      [Author]:       Xie Yuguang, <ygxie@mail.ihep.ac.cn>                    |
00006 //      [Date  ]:       Nov 22, 2005                                            |
00007 //------------------------------------------------------------------------------|
00008 
00009 #ifndef MUC_GEO_CONST_H
00010 #define MUC_GEO_CONST_H
00011 
00012 #include<iostream>
00013 #include<cmath>
00014 
00015 using namespace std;
00016 
00017 //----------------------       Grobal    Constant     ---------------------------
00018 static const double MUC_PI              = 3.141592653589793;    // for geometry calculation     
00019 static const double BETA                = MUC_PI/8.0;   // structure angle
00020 static const double VALUE               = tan(BETA);  // for geometry calculation
00021 static const double ERR_LIMIT           = 0.01;         // for precision cut    
00022 
00023 static const double MAX_FRACTION        = 0.8;          // if offset out range, set offset to MAX_FRACTION*MAX
00024 static const double E_OFFSET_MAX[3]     = {45.0, 5.0, 5.0 }; // for endcap box x alignment offset checking      
00025 static const double B_X_MAX[3]          = { 8.0,        // Layer 0
00026                                             7.0,        // Layer 1,3,5,7
00027                                             6.0         // Layer 2,4,6,8 
00028                                           };            // for barrel box x alignment offset checking
00029 static const double B_Y_MAX             = 5.0;          // for box y alignment offset checking
00030 static const double B_Z_MAX             = 5.0;          // for box z alignment offset checking
00031 
00032 static 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
00033  
00034 
00035 //----------------------      Structure Constant      ----------------------------
00036 // Globle structure
00037 static const int PART_MAX             = 3; // part number, 0-east endcap, 1-berral, 2-west endcap
00038 static const int BOX_MAX        = 136; // maximum of box number
00039 static const int STRIP_MAX      = 9152;
00040 static const int STRIP_INBOX_MAX= 112;
00041 
00042 static const int EEID           = 0; // east endcap id
00043 static const int BRID           = 1; // berral      id
00044 static const int EWID           = 2; // west endcap id
00045 static const int SL_NUM         = 2; // rpc super layer number in one box(module)
00046 static const int SL_UP          = 0; // up   super layer id
00047 static const int SL_DOWN        = 1; // down super layer id
00048 static const int ROTA_FLAG      = 1; // need rotation
00049 static const int XSTR           = 0; // strip read out from x direction
00050 static const int YSTR           = 1; // strip read out from y direction
00051 static const int ZSTR           = 2; // strip read out from z direction 
00052 static const int PHISTR         = 3; // strip read out from phi direction 
00053 static const int BKLT_NUM       = 2; // bakelite number of each rpc chamber
00054 static const double BOX_TH      = 28.0; // aluminum box thickness
00055 static const double RPC_TH      = 6.0;  // rpc chamber thickness
00056 static const double GAS_TH      = 2.0;  // gas mixture thickness
00057 static const double BKLT_TH     = 2.0;  // bakelite thickness
00058 static const double BOX_COVER_TH = 1.5; // box cover thickness
00059 static const double STR_TH      = 1.0;  // strip thickness
00060 static const double STR_GAP     = 2.0;  // the gap between two strips
00061 static const double AS_GAP      = 40.0; // the gap between two absorber 
00062 static const double RPC_SL_OFFSET    = 5.0;  // offsets of UP RPCs relative to DOWN RPCs                
00063 //static const double RPC_DEATH_EDGE   = 10.0; // the death edge of rpc chamber
00064 static const double RPC_DEATH_EDGE   = 22.0; // the death edge of rpc chamber
00065 static const double OVERLAP_WIDTH    = 4.0; // avoid space between panels when apply "AND" operation 
00066 
00067 static const int BOX_PER_PART[PART_MAX] = {32, 72, 32};
00068 static const int BOX_PER_SEG[PART_MAX]  = {8, 9, 8};
00069 static const int BOX_SUM[PART_MAX]      = {32, 104, 136};
00070 static const int STR_PER_PART[3]  = { 2048, 5056, 2048 };
00071 static const int B_STR_PER_SEG[2] = { 624, 688 }; 
00072 static const int STR_SUM[3]       = { 2048, 7104, 9152 };
00073 
00074 // Endcap( only one part, not total, east and  west is the same) 
00075 static const int E_SEG_NUM      = 4;  // segment number
00076 static const int E_LAY_NUM      = 8;  // layer number ( gap layer number )
00077 static const int E_ASLAY_NUM    = 9;  // absorber layer number
00078 static const int E_PANEL_NUM    = 3;  // absorber layer number
00079 //static const int E_AS_NUM     = 3;  // absorber number per segment per layer
00080 //static const int E_GP_NUM     = 3;  // gap number per segment per laye
00081 static const int E_STR_NUM      = 64; // strip number persegment per layer 
00082 static const double E_STR_DST   = 35; // distance between two strip center line  
00083 static const int E_RPC_NUM[SL_NUM]      = {3,5};  // RPC number per segment per layer, up super layer is 3, down is 5 
00084 
00085 static const double E_XSTR_OFFSET        = 97.5; // the offset of first x-readout strip from x axis
00086 static const double E_YSTR_OFFSET        = 87.5; // the offset of fisrst y-readout strip from y axis
00087 static const double E_STR_WT             = E_STR_DST - STR_GAP; // Endcap strip width
00088 
00089 static const double E_AS_ZMAX            = 2800.0; // maximum Z of endcap absorber coordinates
00090 static const double E_AS_RMAX            = 2500.0; // maximal radius of absorber incircle
00091 static const double E_AS_TOTAL_TH        = 750; // total length in z direction of absorber
00092 static const double E_AS_TH[E_ASLAY_NUM] = {40,40,30,30,30,50,80,80,50}; // absorber thickness
00093 static const double E_AS_RMIN[E_ASLAY_NUM] = {1034,1067,1100,1133,1167,1203,1241,1302,1302}; // minimal radius of absorber incircle 
00094 
00095 static const double E_GP_RMIN[E_LAY_NUM] = {1067,1100,1133,1167,1203,1241,1302,1362}; // minimal radius of gap incircle
00096 static const double E_GP_DX              = 40.0;  // X offset of gap from X axis 
00097 static const double E_GP_DY              = 50.0;  // Y offset of gap from Y axis
00098 static const double E_BOX_DR             = 130.0; // radius offset of box from E_AS_RMAX  
00099 
00100 static const double E_STRPLN_DA         = 16.0;                 // offset of strip plane from box edge close to X or Y axises
00101 static const double E_STRPLN_DB[2]      = { 53.0,41.0 };        // offsets of strip plane from box edge far away X or Y axises
00102 static const double E_STRPLN_DR         = 26.0;                 // offsets of strip plane from box incircle edge
00103 
00104 // Barrel
00105 static const int B_SEG_NUM       = 8; // segment number
00106 static const int B_LAY_NUM       = 9; // layer   number
00107 static const int B_AS_NUM        = 1; // absorber number per segment per layer
00108 static const int B_GP_NUM        = 1; // gap number per segment per layer
00109 static const int B_STR_PANEL_NUM = 3; // maximum number of stripp_lane panel per segment per layer
00110 static const int B_RPC_NUM       = 4; // RPC number per segment per layer, except segment NO.2(TOP)
00111 static const int B_TOP_RPC_NUM   = 5; // RPC number in TOP segment per layer
00112 static const int B_TOP           = 2; // top segment id
00113 
00114 static const int B_ZSTR_NUM                = 48; // strip number in Z-readout box 
00115 static const int B_PHISTR_NUM              = 96; // strip number in Phi-readout(Tangent) box
00116 static const int B_TOPSTR_NUM              = 112; // strip number in Phi-readout(Tangent) box of TOP segment
00117 static 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
00118 static const int B_PHISTR_CUT_NUM          = 80; // number of strips be cut in phi direction
00119 static const double B_ZSTR_CUT[2]          = {540,610}; // dimensions of z strips be cut 
00120 static const double B_PHISTR_CUT           = 642; // dimension of phi strips be cut
00121 static const double B_STR_DST[B_LAY_NUM]   = {20,39,27,39,30,39,33,39,37}; // distance between two strips center line
00122 static const double B_PHI[B_SEG_NUM]       = { -2, -1, 0, 1, 2, -1, 0, 1 }; // rotation angle on Z axis, times MUC_PI/4
00123 static const double B_AS_RMAX              = 2620.0; // maximal radius of absorber incircle
00124 static const double B_AS_LMAX              = 3940.0; // maximal length of absorber 
00125 static const double B_AS_RMIN[B_LAY_NUM]   = {1740,1810,1880,1950,2030,2110,2230,2350,2470}; // minimal radius of absorber incircle
00126 static 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};
00127 static const double B_AS_TH[B_LAY_NUM]     = {30,30,30,40,40,80,80,80,150}; // absorber thickness
00128 
00129 static const double B_GP_DZ             = 70.0; // offset of gap from absorber edge
00130 static const double B_GP_LT             = 3940.0; // gap length
00131 // 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
00132 static const double B_GP_WT[B_LAY_NUM]  = {1266,1314,1372,1430,1496,1562,1652,1762,1860}; // gap width
00133 static const double B_BOX_LT            = B_GP_LT - 2*B_GP_DZ; // 3800.0
00134 static const double B_BOX_WT[B_LAY_NUM] = {1050,1300,1360,1416,1484,1548,1640,1748,1848}; // box width
00135 static const double B_BOX_DZ[SL_NUM]    = {46,41}; // gap of chamber and box in Z direction
00136 static const double B_BOX_DT[SL_NUM]    = {31,26}; // gap of chamber and box in Phi direction
00137 static const double B_BOX_SLOT_WT       = 560; // width of box slot be cut in segment 2 of east-end barrel
00138 static const double B_GP_SLOT_WT        = 422; // width of gap slot be cut in segment 2 of east-end barrel
00139 static const double B_GP_SLOT_LT        = 542; // length of gap slot be cut in segment 2 of east-end barrel
00140 
00141 static const double B_RPC_LTN           = 1112; // normal rpc length except B_TOP
00142 static const double B_RPC_LTS           = 1050; // special rpc length except B_TOP
00143 static const double B_TOPRPC_LTN        = 1112; // nomal length of RPC in B_TOP 
00144 static const double B_TOPRPC_LTS[2]     = {540,610}; // special length of RPC in B_TOP
00145 
00146 
00147 #endif

Generated on Tue Nov 29 23:12:56 2016 for BOSS_7.0.2 by  doxygen 1.4.7