CGEM BOSS 6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
MucBoxCal.cxx
Go to the documentation of this file.
1//------------------------------------------------------------------------------|
2// [File ]: MucBoxCal.cxx |
3// [Brief ]: MUC geometry box creating class for calibration |
4// [Author]: Xie Yuguang, <[email protected]> |
5// [Date ]: May 22, 2005 |
6//------------------------------------------------------------------------------|
7
8#include <iostream>
9#include <cmath>
10
13
14using namespace std;
15
16// Constructor
17MucBoxCal::MucBoxCal( int part, int segment, int layer ) : MucEntityCal( part, segment, layer )
18{
20}
21
22// Copy constructor
24{
25 ;
26}
27
28// Operator =
30{
31 if( this == &other) return *this;
32
34
35 return *this;
36}
37
38// Destructor
40{
41 ;
42}
43
44// Initialize
46{
47 SetTheta();
48 SetRin();
49 SetRout();
50 SetRc();
51
52 SetThin();
53 SetW();
54 SetWu();
55 SetWd();
56 SetH();
57 SetL();
58 SetArea();
59}
60
61//------------------------------- Set motheds -------------------------
63{
64 if( m_Part == BRID )
65 m_Theta = m_Segment * ( PI/4.0 );
66 else
67 m_Theta = ( m_Segment + 1 ) * ( PI/4.0 );
68}
69
71{
72 if( m_Part == BRID )
73 m_Rin = B_AS_RMIN[m_Layer] - ( AS_GAP + BOX_TH ) / 2.0;
74 else
75 m_Rin = E_GP_RMIN[m_Layer] - E_STRPLN_DR;
76}
77
79{
80 if( m_Part == BRID )
81 m_Rout = B_AS_RMIN[m_Layer] -( AS_GAP - BOX_TH ) / 2.0;
82 else
83 m_Rout = E_AS_RMAX - E_BOX_DR - E_STRPLN_DB[(m_Layer==0)?0:1];
84}
85
87{
88 if( m_Part == BRID )
89 m_Rc = B_AS_RMIN[m_Layer] - AS_GAP/2.0;
90 else
91 m_Rc = (m_Rin + m_Rout)/2.0;
92}
93
95{
96 m_Thin = BOX_TH;
97}
98
100{
101 if( m_Part == BRID) {
102 m_W = B_BOX_WT[m_Layer];
103 }
104 else {
105 m_W = E_AS_RMAX - E_BOX_DR - E_GP_DX;
106 }
107}
108
110{
111 if( m_Part == BRID )
112 m_H = BOX_TH;
113 else
114 m_H = E_AS_RMAX - E_BOX_DR - E_STRPLN_DB[(m_Layer==0)?0:1] - E_STRPLN_DR - E_GP_RMIN[m_Layer];
115}
116
118{
119 if( m_Part == BRID )
120 m_L = B_BOX_LT;
121 else
122 m_L = BOX_TH;
123}
124
126{
127 if( m_Part == BRID )
128 m_Wu = m_W;
129 else
130 m_Wu = 2 * VALUE * m_Rin ;
131}
132
134{
135 if( m_Part == BRID )
136 m_Wd = m_W;
137 else
138 m_Wd = 2 * VALUE * m_Rout;
139}
140
142{
143 if( m_Part == BRID ) {
144 m_Area = m_W * m_L;
145 if( m_Segment == B_TOP ) m_Area -= B_BOX_SLOT_WT*B_TOPRPC_LTS[(m_Layer==0)?1:(m_Layer%2)];
146 }
147 else
148 m_Area = (m_Wu + m_Wd)*m_H - (E_GP_DX + E_GP_DY + 2*E_STRPLN_DA)* m_H;
149
150 m_Area /= 100; // mm^2 -> cm^2
151}
152
153// END
const double PI
Definition PipiJpsi.cxx:55
virtual void SetThin()
Definition MucBoxCal.cxx:94
virtual void SetArea()
MucBoxCal(int part, int segment, int layer)
Definition MucBoxCal.cxx:17
virtual void SetL()
virtual void SetH()
virtual void SetWu()
MucBoxCal & operator=(const MucBoxCal &other)
Definition MucBoxCal.cxx:29
virtual void SetRin()
Definition MucBoxCal.cxx:70
virtual void Init()
Definition MucBoxCal.cxx:45
virtual void SetRout()
Definition MucBoxCal.cxx:78
virtual void SetTheta()
Definition MucBoxCal.cxx:62
virtual void SetWd()
virtual void SetW()
Definition MucBoxCal.cxx:99
virtual void SetRc()
Definition MucBoxCal.cxx:86
MucEntityCal & operator=(const MucEntityCal &other)