BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MucGas Class Reference

#include <MucGas.h>

Inheritance diagram for MucGas:

Public Member Functions

 MucGas (int part, int segment, int layer, int upDown, int rpcId, int id)
 MucGas (const MucGas &other)
MucGasoperator= (const MucGas &other)
 ~MucGas ()
double GetPhi ()
Public Member Functions inherited from MucEntity
 MucEntity (int part, int segment, int layer)
 MucEntity (int part, int segment, int layer, int id)
 MucEntity (int part, int segment, int layer, int upDown, int id)
 MucEntity (int part, int segment, int layer, int upDown, int rpcId, int id)
 MucEntity (const MucEntity &other)
MucEntityoperator= (const MucEntity &other)
virtual ~MucEntity ()
int GetPart ()
int GetSegment ()
int GetLayer ()
int GetUpDown ()
int GetRpcId ()
int GetID ()
double GetTheta ()
double GetRin ()
double GetRout ()
double GetRc ()
double GetThin ()
double GetW ()
double GetH ()
double GetL ()
double GetWu ()
double GetWd ()
double GetArea ()
double GetLocOrgInBes (int i)
double GetObjRotToMot (int i)
double GetObjOrgInBes (int i)
double GetObjOrgInLoc (int i)
double * GetLocOrgInBes ()
double * GetObjRotToMot ()
double * GetObjOrgInLoc ()
double * GetObjOrgInBes ()
void TransBesToLoc (double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
void TransLocToBes (double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)

Protected Member Functions

virtual void Init ()
virtual void SetTheta ()
void SetPhi ()
virtual void SetRc ()
virtual void SetRin ()
virtual void SetRout ()
virtual void SetThin ()
virtual void SetW ()
virtual void SetH ()
virtual void SetL ()
virtual void SetWu ()
virtual void SetWd ()
int SetEndcapRpcInBes ()
int SetBarrelRpcInBes ()
virtual void SetLocOrgInBes ()
virtual void SetObjOrgInLoc ()
virtual void SetObjOrgInBes ()
Protected Member Functions inherited from MucEntity
virtual void SetArea ()
virtual void SetObjRotToMot ()
virtual void SetAlignment (double dx, double dy, double dz)

Additional Inherited Members

Protected Attributes inherited from MucEntity
int m_Part
int m_Segment
int m_Layer
int m_UpDown
int m_RpcId
int m_ID
double m_Theta
double m_Rin
double m_Rout
double m_Rc
double m_Thin
double m_W
double m_H
double m_L
double m_Wu
double m_Wd
double m_Area
double m_LocOrgInBes [3]
double m_ObjRotToMot [3]
double m_ObjOrgInBes [3]
double m_ObjOrgInLoc [3]

Detailed Description

Definition at line 18 of file MucGas.h.

Constructor & Destructor Documentation

◆ MucGas() [1/2]

MucGas::MucGas ( int part,
int segment,
int layer,
int upDown,
int rpcId,
int id )

Definition at line 17 of file MucGas.cxx.

18 : MucEntity( part, segment, layer, upDown, rpcId, id ) {
20}
MucEntity(int part, int segment, int layer)
Definition MucEntity.cxx:17
virtual void Init()
Definition MucGas.cxx:38

Referenced by MucGas(), and operator=().

◆ MucGas() [2/2]

MucGas::MucGas ( const MucGas & other)

Definition at line 23 of file MucGas.cxx.

23: MucEntity( other ) { m_Phi = other.m_Phi; }
Index other(Index i, Index j)

◆ ~MucGas()

MucGas::~MucGas ( )

Definition at line 35 of file MucGas.cxx.

35{ ; }

Member Function Documentation

◆ GetPhi()

double MucGas::GetPhi ( )

Definition at line 62 of file MucGas.cxx.

62{ return m_Phi; }

◆ Init()

void MucGas::Init ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 38 of file MucGas.cxx.

38 {
39 SetPhi();
40 SetTheta();
41 SetRin();
42 SetRout();
43 SetRc();
44
45 SetThin();
46 SetW();
47 SetWu();
48 SetWd();
49 SetH();
50 SetL();
51
54
58}
virtual void SetTheta()
Definition MucGas.cxx:72
virtual void SetWd()
Definition MucGas.cxx:264
virtual void SetRc()
Definition MucGas.cxx:105
virtual void SetWu()
Definition MucGas.cxx:222
virtual void SetH()
Definition MucGas.cxx:170
virtual void SetW()
Definition MucGas.cxx:109
virtual void SetThin()
Definition MucGas.cxx:107
virtual void SetRout()
Definition MucGas.cxx:96
int SetEndcapRpcInBes()
Definition MucGas.cxx:372
virtual void SetL()
Definition MucGas.cxx:183
virtual void SetRin()
Definition MucGas.cxx:88
int SetBarrelRpcInBes()
Definition MucGas.cxx:304
virtual void SetObjOrgInLoc()
Definition MucGas.cxx:462
void SetPhi()
Definition MucGas.cxx:67
virtual void SetObjOrgInBes()
Definition MucGas.cxx:466
virtual void SetLocOrgInBes()
Definition MucGas.cxx:456

Referenced by MucGas().

◆ operator=()

MucGas & MucGas::operator= ( const MucGas & other)

Definition at line 26 of file MucGas.cxx.

26 {
27 if ( this == &other ) return *this;
28 MucEntity::operator=( other );
29 m_Phi = other.m_Phi;
30
31 return *this;
32}
MucEntity & operator=(const MucEntity &other)
Definition MucEntity.cxx:87

◆ SetBarrelRpcInBes()

int MucGas::SetBarrelRpcInBes ( )
protected

Definition at line 304 of file MucGas.cxx.

304 {
305 if ( m_Part != BRID ) return 0;
306
307 double x, y, z;
308 x = y = z = 0.;
309
310 if ( m_Segment != B_TOP )
311 {
312 // set x and y
313 double r;
314 r = ( B_AS_RMIN[m_Layer] - AS_GAP / 2.0 ) +
315 ( 1 - 2 * m_UpDown ) * ( STR_TH + RPC_TH ) / 2.0;
316 x = r * cos( m_Theta );
317 y = r * sin( m_Theta );
318
319 // set z
320 if ( ( m_UpDown == SL_UP && m_RpcId == 3 ) || ( m_UpDown == SL_DOWN && m_RpcId == 0 ) )
321 {
322 if ( m_Layer != 1 ) // not layer NO.2
323 z = ( 2 * m_UpDown - 1 ) * 3 * B_RPC_LTN / 2.0;
324 else z = ( 2 * m_UpDown - 1 ) * 3 * B_RPC_LTS / 2.0;
325 }
326 else if ( m_UpDown == SL_UP )
327 z = B_BOX_LT / 2.0 - B_BOX_DZ[m_UpDown] - ( 1 + 2 * m_RpcId ) * B_RPC_LTN / 2.0;
328 else
329 z = -B_BOX_LT / 2.0 + B_BOX_DZ[m_UpDown] + ( 1 + 2 * ( 3 - m_RpcId ) ) * B_RPC_LTN / 2.0;
330
331 } // end not top segment
332 else // top segment
333 {
334 //---------- set x--------
335 if ( m_RpcId > 1 ) // NO.3, 4, 5
336 x = 0.;
337 else // NO.1 and NO.2
338 x = ( 1 - 2 * m_RpcId ) * ( ( B_BOX_WT[m_Layer] + B_BOX_SLOT_WT ) / 4.0 +
339 ( B_BOX_DZ[m_UpDown] - B_BOX_DT[m_UpDown] ) / 2.0 );
340
341 //---------- set y--------
342 y = ( B_AS_RMIN[m_Layer] - AS_GAP / 2.0 ) +
343 ( 1 - 2 * m_UpDown ) * ( STR_TH + RPC_TH ) / 2.0;
344
345 //---------- set z--------
346 if ( m_RpcId < 2 ) // rpc NO.1 and NO.2
347 z = B_BOX_LT / 2.0 - B_BOX_DZ[m_UpDown] -
348 B_TOPRPC_LTS[( ( m_Layer == 0 ) ? 1 : ( m_Layer % 2 ) )];
349 else if ( m_UpDown == SL_UP && m_RpcId == 4 ) // up NO.5
350 z = -B_RPC_LTN - B_TOPRPC_LTS[( ( m_Layer == 0 ) ? 1 : ( m_Layer % 2 ) )];
351 else if ( m_UpDown == SL_DOWN && m_RpcId == 2 ) // down NO.3
352 z = B_RPC_LTN - B_TOPRPC_LTS[( ( m_Layer == 0 ) ? 1 : ( m_Layer % 2 ) )];
353 else if ( m_UpDown == SL_UP ) // up NO.3 and NO.4
354 z = B_BOX_LT / 2.0 - B_BOX_DZ[m_UpDown] -
355 B_TOPRPC_LTS[( ( m_Layer == 0 ) ? 1 : ( m_Layer % 2 ) )] +
356 ( 3 - 2 * m_RpcId ) * B_RPC_LTN / 2.0;
357 else // down NO.4 and NO.5
358 z = -B_BOX_LT / 2.0 - B_BOX_DZ[m_UpDown] + ( 1 + 2 * ( 4 - m_RpcId ) ) * B_RPC_LTN / 2.0;
359 } // end top segment
360
361 m_LocOrgInBes[0] = x;
362 m_LocOrgInBes[1] = y;
363 m_LocOrgInBes[2] = z;
364
365 // limit cut
366 for ( int i = 0; i < 2; i++ )
367 if ( fabs( m_LocOrgInBes[i] ) < ERR_LIMIT ) m_LocOrgInBes[i] = 0.0;
368
369 return 0;
370}
Double_t x[10]
int m_RpcId
Definition MucEntity.h:91
int m_Layer
Definition MucEntity.h:89
int m_Segment
Definition MucEntity.h:88
double m_Theta
Definition MucEntity.h:94
int m_Part
Definition MucEntity.h:87
double m_LocOrgInBes[3]
Definition MucEntity.h:108
int m_UpDown
Definition MucEntity.h:90

Referenced by Init(), and SetLocOrgInBes().

◆ SetEndcapRpcInBes()

int MucGas::SetEndcapRpcInBes ( )
protected

Definition at line 372 of file MucGas.cxx.

372 {
373 if ( m_Part == BRID ) return 0;
374
375 double x, y, z;
376 x = y = z = 0.;
377
378 //------------ set x and y ---------------
379 if ( m_UpDown == SL_UP )
380 {
381 if ( m_RpcId == 0 )
382 {
383 x = ( VALUE * m_Rc + E_GP_DX + E_STRPLN_DA + RPC_SL_OFFSET ) / 2.0;
384 y = m_Rc;
385 }
386 else if ( m_RpcId == 1 )
387 {
388 x = m_Rc * cos( MUC_PI / 4.0 );
389 y = m_Rc * sin( MUC_PI / 4.0 );
390 }
391 else
392 {
393 x = m_Rc;
394 y = ( VALUE * m_Rc + E_GP_DY + E_STRPLN_DA + RPC_SL_OFFSET ) / 2.0;
395 }
396 }
397 else
398 {
399 switch ( m_RpcId )
400 {
401 case 0:
402 x = ( VALUE * m_Rc + E_GP_DX + E_STRPLN_DA ) / 2.0 + RPC_DEATH_EDGE / 2.0;
403 y = m_Rc;
404 break;
405 case 1:
406 x = VALUE * m_Rc + sin( MUC_PI / 4.0 ) * m_Wd / 4.0;
407 x += RPC_DEATH_EDGE * ( 3 - 2 * sqrt( 2.0 ) ) / 4.0;
408 y = m_Rc - cos( MUC_PI / 4.0 ) * m_Wd / 4.0;
409 y += RPC_DEATH_EDGE * ( 1 + 4.0 / sqrt( 2.0 ) ) / 4.0;
410 break;
411 case 2:
412 x = m_Rc * cos( MUC_PI / 4.0 );
413 y = m_Rc * sin( MUC_PI / 4.0 );
414 break;
415 case 3:
416 x = m_Rc - cos( MUC_PI / 4.0 ) * m_Wd / 4.0;
417 x += RPC_DEATH_EDGE * ( 1 + 4.0 / sqrt( 2.0 ) ) / 4.0;
418 y = VALUE * m_Rc + sin( MUC_PI / 4.0 ) * m_Wd / 4.0;
419 y += RPC_DEATH_EDGE * ( 3 - 2 * sqrt( 2.0 ) ) / 4.0;
420 break;
421 case 4:
422 x = m_Rc;
423 y = ( VALUE * m_Rc + E_GP_DY + E_STRPLN_DA ) / 2.0 + RPC_DEATH_EDGE / 2.0;
424 }
425 }
426
427 // sign different by segment
428 if ( m_Segment == 0 ) { ; }
429 else if ( m_Segment == 1 ) { x = -x; }
430 else if ( m_Segment == 2 )
431 {
432 x = -x;
433 y = -y;
434 }
435 else { y = -y; }
436
437 //------------ set z ---------------------
438 for ( int i = 0; i < m_Layer + 1; i++ ) z += E_AS_TH[i];
439 z += m_Layer * AS_GAP;
440 z += ( ( E_AS_ZMAX - E_AS_TOTAL_TH ) + AS_GAP / 2.0 );
441 z += ( 1 - 2 * m_UpDown ) * ( STR_TH + RPC_TH ) / 2.0;
442 z *= cos( m_Part * MUC_PI / 2.0 );
443
444 m_LocOrgInBes[0] = x;
445 m_LocOrgInBes[1] = y;
446 m_LocOrgInBes[2] = z;
447
448 // limit cut
449 for ( int i = 0; i < 2; i++ )
450 if ( fabs( m_LocOrgInBes[i] ) < ERR_LIMIT ) m_LocOrgInBes[i] = 0.;
451
452 return 0;
453}
double m_Wd
Definition MucEntity.h:105
double m_Rc
Definition MucEntity.h:99

Referenced by Init(), and SetLocOrgInBes().

◆ SetH()

void MucGas::SetH ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 170 of file MucGas.cxx.

170 {
171 if ( m_Part == BRID ) m_H = GAS_TH;
172 else
173 {
174 m_H = m_Rout - m_Rin;
175
176 // cut rpc chamber death edge
177 if ( m_UpDown == SL_DOWN && ( m_ID == 1 || m_ID == 3 ) )
178 m_H -= RPC_DEATH_EDGE * ( 1 + 1.0 / VALUE );
179 else m_H -= RPC_DEATH_EDGE * 2.0;
180 }
181}
double m_Rin
Definition MucEntity.h:97
double m_H
Definition MucEntity.h:102
double m_Rout
Definition MucEntity.h:98

Referenced by Init().

◆ SetL()

void MucGas::SetL ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 183 of file MucGas.cxx.

183 {
184 if ( m_Part == BRID ) // barrel
185 {
186 if ( m_Segment != B_TOP ) // not top segment
187 {
188 // the first rpc of SL_DOWN is constructed as the same as the last rpc of SL_UP
189 if ( ( m_UpDown == SL_UP && m_RpcId == 3 ) || ( m_UpDown == SL_DOWN && m_RpcId == 0 ) )
190 {
191 if ( m_Layer != 1 ) // not layer NO.2
192 m_L = B_BOX_LT - 2 * B_BOX_DZ[m_UpDown] - 3 * B_RPC_LTN;
193 else // layer NO.2 is special
194 m_L = B_BOX_LT - 2 * B_BOX_DZ[m_UpDown] - 3 * B_RPC_LTS;
195 }
196 else
197 {
198 if ( m_Layer != 1 ) // not layer NO.2
199 m_L = B_RPC_LTN;
200 else // layer NO.2 is special
201 m_L = B_RPC_LTS;
202 }
203 }
204 else // top segment
205 {
206 if ( m_RpcId < 2 ) // RPC NO.1 and NO.2
207 m_L = B_TOPRPC_LTS[( ( m_Layer == 0 ) ? 1 : ( m_Layer % 2 ) )];
208 else if ( ( m_UpDown == SL_UP && m_RpcId == 4 ) ||
209 ( m_UpDown == SL_DOWN && m_RpcId == 2 ) )
210 m_L = B_BOX_LT - B_TOPRPC_LTS[( ( m_Layer == 0 ) ? 1 : ( m_Layer % 2 ) )] -
211 2 * ( B_BOX_DZ[m_UpDown] + B_RPC_LTN );
212 else m_L = B_RPC_LTN;
213 } // else, top segment
214
215 m_L -= RPC_DEATH_EDGE * 2.0; // cut rpc chamber death edge
216
217 } // End barrel
218 else // endcap
219 m_L = GAS_TH;
220}
double m_L
Definition MucEntity.h:103

Referenced by Init().

◆ SetLocOrgInBes()

void MucGas::SetLocOrgInBes ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 456 of file MucGas.cxx.

456 {
457 if ( m_Part == BRID ) SetBarrelRpcInBes();
458 else SetEndcapRpcInBes();
459}

Referenced by Init().

◆ SetObjOrgInBes()

void MucGas::SetObjOrgInBes ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 466 of file MucGas.cxx.

466 {
468 // limit cut
469 for ( int i = 0; i < 3; i++ )
470 if ( fabs( m_ObjOrgInBes[i] ) < ERR_LIMIT ) m_ObjOrgInBes[i] = 0.0;
471}
double m_ObjOrgInLoc[3]
Definition MucEntity.h:118
double m_ObjOrgInBes[3]
Definition MucEntity.h:117
void TransLocToBes(double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)

Referenced by Init().

◆ SetObjOrgInLoc()

void MucGas::SetObjOrgInLoc ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 462 of file MucGas.cxx.

462 {
463 for ( int i = 0; i < 3; i++ ) m_ObjOrgInLoc[i] = 0.;
464}

Referenced by Init().

◆ SetPhi()

void MucGas::SetPhi ( )
protected

Definition at line 67 of file MucGas.cxx.

67 {
68 if ( m_Part == BRID ) m_Phi = B_PHI[m_Segment] * ( MUC_PI / 4.0 );
69 else m_Phi = 0.;
70}

Referenced by Init().

◆ SetRc()

void MucGas::SetRc ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 105 of file MucGas.cxx.

105{ m_Rc = ( m_Rin + m_Rout ) / 2.0; }

Referenced by Init().

◆ SetRin()

void MucGas::SetRin ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 88 of file MucGas.cxx.

88 {
89 if ( m_Part == BRID ) // Rin of gas( same as which of RPC )
90 m_Rin = B_AS_RMIN[m_Layer] - AS_GAP / 2.0 +
91 ( 1 - 2 * m_UpDown ) * ( STR_TH + RPC_TH ) / 2.0 - GAS_TH / 2.0;
92 else // Rin of RPC
93 m_Rin = E_GP_RMIN[m_Layer] + E_STRPLN_DR + ( 1 - m_UpDown ) * RPC_SL_OFFSET;
94}

Referenced by Init().

◆ SetRout()

void MucGas::SetRout ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 96 of file MucGas.cxx.

96 {
97 if ( m_Part == BRID )
98 m_Rout = B_AS_RMIN[m_Layer] - AS_GAP / 2.0 +
99 ( 1 - 2 * m_UpDown ) * ( STR_TH + RPC_TH ) / 2.0 + GAS_TH / 2.0;
100 else
101 m_Rout = E_AS_RMAX - E_BOX_DR - E_STRPLN_DB[( m_Layer == 0 ) ? 0 : 1] +
102 ( m_UpDown - 1 ) * RPC_SL_OFFSET;
103}

Referenced by Init().

◆ SetTheta()

void MucGas::SetTheta ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 72 of file MucGas.cxx.

72 {
73 if ( m_Part == BRID ) m_Theta = m_Segment * ( MUC_PI / 4.0 );
74 else
75 {
76 if ( m_UpDown == SL_UP ) m_Theta = ( MUC_PI / 4.0 ) + ( 1 - m_RpcId ) * MUC_PI / 8.0;
77 else
78 {
79 if ( m_RpcId < 2 ) // RPC NO.1 and NO.2
80 m_Theta = ( MUC_PI / 4.0 ) + MUC_PI / 8.0;
81 else if ( m_RpcId == 2 ) // center RPC, NO.3
82 m_Theta = ( MUC_PI / 4.0 );
83 else m_Theta = ( MUC_PI / 4.0 ) - MUC_PI / 8.0;
84 }
85 }
86}

Referenced by Init().

◆ SetThin()

void MucGas::SetThin ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 107 of file MucGas.cxx.

107{ m_Thin = GAS_TH; }
double m_Thin
Definition MucEntity.h:100

Referenced by Init().

◆ SetW()

void MucGas::SetW ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 109 of file MucGas.cxx.

109 {
110 if ( m_Part == BRID )
111 {
112 if ( m_Segment == B_TOP && m_RpcId < 2 ) // the first 2 gases in top segment
113 {
114 if ( ( m_Layer + 1 ) % 2 == 1 ) // odd layer
115 m_W = ( B_BOX_WT[m_Layer] - 2 * B_BOX_DT[m_UpDown] - 2 * B_BOX_DZ[m_UpDown] -
116 B_BOX_SLOT_WT ) /
117 2.0;
118 else // even layer
119 m_W = ( B_BOX_WT[m_Layer] - 4 * B_BOX_DZ[m_UpDown] - B_BOX_SLOT_WT ) / 2.0;
120 }
121 else // other gases
122 {
123 if ( ( m_Layer + 1 ) % 2 == 1 ) // odd layer
124 m_W = B_BOX_WT[m_Layer] - 2 * B_BOX_DT[m_UpDown];
125 else // even layer
126 m_W = B_BOX_WT[m_Layer] - 2 * B_BOX_DZ[m_UpDown];
127 }
128 } // End barrel
129 else
130 {
131 if ( m_UpDown == SL_UP ) // up layer
132 {
133 if ( m_RpcId == 0 ) m_W = VALUE * m_Rc - E_GP_DX - E_STRPLN_DA - RPC_SL_OFFSET;
134 else if ( m_RpcId == 1 ) m_W = 2 * VALUE * m_Rc;
135 else m_W = VALUE * m_Rc - E_GP_DY - E_STRPLN_DA - RPC_SL_OFFSET;
136 }
137 else // down layer
138 {
139 switch ( m_RpcId )
140 {
141 case 0: m_W = VALUE * m_Rc - E_GP_DX - E_STRPLN_DA; break;
142 case 1:
143 case 3: m_W = VALUE * ( m_Rc - m_Rin ); break;
144 case 2: m_W = 2 * VALUE * m_Rin; break;
145 case 4: m_W = VALUE * m_Rc - E_GP_DY - E_STRPLN_DA; break;
146 default:;
147 }
148 }
149 } // else, endcap
150
151 // cut rpc chamber death edge
152 if ( m_Part == BRID ) m_W -= RPC_DEATH_EDGE * 2.0;
153 else
154 {
155 if ( m_UpDown == SL_UP )
156 {
157 if ( m_RpcId == 1 ) m_W -= RPC_DEATH_EDGE * 2.0; // center rpc
158 else m_W -= ( 1 + 1.0 / cos( MUC_PI / 8.0 ) ) * RPC_DEATH_EDGE;
159 }
160 else
161 {
162 if ( m_RpcId == 2 ) // center rpc
163 m_W -= RPC_DEATH_EDGE * 2.0;
164 else // DOWN 0,1,3,4 RPC
165 m_W -= RPC_DEATH_EDGE;
166 }
167 }
168}
double m_W
Definition MucEntity.h:101

Referenced by Init().

◆ SetWd()

void MucGas::SetWd ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 264 of file MucGas.cxx.

264 {
265 if ( m_Part == BRID ) m_Wd = m_W;
266 else
267 {
268 if ( m_UpDown == SL_UP )
269 {
270 if ( m_RpcId == 0 ) m_Wd = VALUE * m_Rout - E_GP_DX - E_STRPLN_DA - RPC_SL_OFFSET;
271 else if ( m_RpcId == 1 ) m_Wd = 2.0 * VALUE * m_Rout;
272 else m_Wd = VALUE * m_Rout - E_GP_DY - E_STRPLN_DA - RPC_SL_OFFSET;
273 }
274 else
275 {
276 switch ( m_RpcId )
277 {
278 case 0: m_Wd = VALUE * m_Rout - E_GP_DX - E_STRPLN_DA; break;
279 case 1:
280 case 3: m_Wd = VALUE * ( m_Rout - m_Rin ); break;
281 case 2: m_Wd = 2.0 * VALUE * m_Rin; break;
282 case 4: m_Wd = VALUE * m_Rout - E_GP_DY - E_STRPLN_DA; break;
283 default:;
284 }
285 }
286
287 // cut rpc chamber death edge
288 if ( m_UpDown == SL_UP )
289 {
290 if ( m_RpcId == 1 ) m_Wd -= RPC_DEATH_EDGE * 2.0; // center rpc
291 else m_Wd -= ( 1 + 1.0 / cos( MUC_PI / 8.0 ) ) * RPC_DEATH_EDGE;
292 }
293 else
294 {
295 if ( m_RpcId == 2 ) // center rpc
296 m_Wd -= RPC_DEATH_EDGE * 2.0;
297 else // DOWN 0,4 RPC
298 m_Wd -= RPC_DEATH_EDGE;
299 }
300 } // else, endcap
301}

Referenced by Init().

◆ SetWu()

void MucGas::SetWu ( )
protectedvirtual

Reimplemented from MucEntity.

Definition at line 222 of file MucGas.cxx.

222 {
223 if ( m_Part == BRID ) m_Wu = m_W;
224 else
225 {
226 if ( m_UpDown == SL_UP )
227 {
228 if ( m_RpcId == 0 ) m_Wu = VALUE * m_Rin - E_GP_DX - E_STRPLN_DA - RPC_SL_OFFSET;
229 else if ( m_RpcId == 1 ) m_Wu = 2.0 * VALUE * m_Rin;
230 else m_Wu = VALUE * m_Rin - E_GP_DY - E_STRPLN_DA - RPC_SL_OFFSET;
231 }
232 else
233 {
234 switch ( m_RpcId )
235 {
236 case 0: m_Wu = VALUE * m_Rin - E_GP_DX - E_STRPLN_DA; break;
237 case 1:
238 case 3: m_Wu = 0.; break;
239 case 2: m_Wu = 2.0 * VALUE * m_Rin; break;
240 case 4: m_Wu = VALUE * m_Rin - E_GP_DY - E_STRPLN_DA; break;
241 default:;
242 }
243 }
244
245 // cut rpc chamber death edge
246 if ( m_Wu > 0.0 )
247 {
248 if ( m_UpDown == SL_UP )
249 {
250 if ( m_RpcId == 1 ) m_Wu -= RPC_DEATH_EDGE * 2.0; // center rpc
251 else m_Wu -= ( 1 + 1.0 / cos( MUC_PI / 8.0 ) ) * RPC_DEATH_EDGE;
252 }
253 else
254 {
255 if ( m_RpcId == 2 ) // center rpc
256 m_Wu -= RPC_DEATH_EDGE * 2.0;
257 else // DOWN 0,4 RPC
258 m_W -= RPC_DEATH_EDGE;
259 }
260 }
261 } // else, endcap
262}
double m_Wu
Definition MucEntity.h:104

Referenced by Init().


The documentation for this class was generated from the following files: