Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MucAbsorber Class Reference

#include <MucAbsorber.h>

Inheritance diagram for MucAbsorber:

MucEntity MucEntity List of all members.

Public Member Functions

double GetArea ()
double GetArea ()
double GetH ()
double GetH ()
int GetID ()
int GetID ()
double GetL ()
double GetL ()
int GetLayer ()
int GetLayer ()
double * GetLocOrgInBes ()
double GetLocOrgInBes (int i)
double * GetLocOrgInBes ()
double GetLocOrgInBes (int i)
double * GetObjOrgInBes ()
double GetObjOrgInBes (int i)
double * GetObjOrgInBes ()
double GetObjOrgInBes (int i)
double * GetObjOrgInLoc ()
double GetObjOrgInLoc (int i)
double * GetObjOrgInLoc ()
double GetObjOrgInLoc (int i)
double * GetObjRotToMot ()
double GetObjRotToMot (int i)
double * GetObjRotToMot ()
double GetObjRotToMot (int i)
int GetPart ()
int GetPart ()
double GetRc ()
double GetRc ()
double GetRin ()
double GetRin ()
double GetRout ()
double GetRout ()
int GetRpcId ()
int GetRpcId ()
int GetSegment ()
int GetSegment ()
double GetTheta ()
double GetTheta ()
double GetThin ()
double GetThin ()
int GetUpDown ()
int GetUpDown ()
double GetW ()
double GetW ()
double GetWd ()
double GetWd ()
double GetWu ()
double GetWu ()
 MucAbsorber (const MucAbsorber &other)
 MucAbsorber (int part, int segment, int layer, int id)
 MucAbsorber (const MucAbsorber &other)
 MucAbsorber (int part, int segment, int layer, int id)
MucAbsorberoperator= (const MucAbsorber &other)
MucAbsorberoperator= (const MucAbsorber &other)
void TransBesToLoc (double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
void TransBesToLoc (double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
void TransLocToBes (double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
void TransLocToBes (double LocCoord[], double BesCoord[], double LocOrgInBes[], double Rot_z)
virtual ~MucAbsorber ()
virtual ~MucAbsorber ()

Protected Member Functions

virtual void Init ()
virtual void Init ()
virtual void SetAlignment (double dx, double dy, double dz)
virtual void SetAlignment (double dx, double dy, double dz)
virtual void SetArea ()
virtual void SetArea ()
virtual void SetH ()
virtual void SetH ()
virtual void SetL ()
virtual void SetL ()
virtual void SetLocOrgInBes ()
virtual void SetLocOrgInBes ()
virtual void SetObjOrgInBes ()
virtual void SetObjOrgInBes ()
virtual void SetObjOrgInLoc ()
virtual void SetObjOrgInLoc ()
virtual void SetObjRotToMot ()
virtual void SetObjRotToMot ()
virtual void SetRc ()
virtual void SetRc ()
virtual void SetRin ()
virtual void SetRin ()
virtual void SetRout ()
virtual void SetRout ()
virtual void SetTheta ()
virtual void SetTheta ()
virtual void SetThin ()
virtual void SetThin ()
virtual void SetW ()
virtual void SetW ()
virtual void SetWd ()
virtual void SetWd ()
virtual void SetWu ()
virtual void SetWu ()

Protected Attributes

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

Constructor & Destructor Documentation

MucAbsorber::MucAbsorber int  part,
int  segment,
int  layer,
int  id
 

00017                                                                    : MucEntity( part, segment, layer, id )
00018 {
00019         MucAbsorber::Init();
00020 }

MucAbsorber::MucAbsorber const MucAbsorber other  ) 
 

00023 : MucEntity( other ) { ; }

MucAbsorber::~MucAbsorber  )  [virtual]
 

00037 { ;     }

MucAbsorber::MucAbsorber int  part,
int  segment,
int  layer,
int  id
 

MucAbsorber::MucAbsorber const MucAbsorber other  ) 
 

virtual MucAbsorber::~MucAbsorber  )  [virtual]
 


Member Function Documentation

double MucEntity::GetArea  )  [inherited]
 

double MucEntity::GetArea  )  [inherited]
 

00150 { return m_Area;        }

double MucEntity::GetH  )  [inherited]
 

double MucEntity::GetH  )  [inherited]
 

00146 { return m_H;           }

int MucEntity::GetID  )  [inherited]
 

int MucEntity::GetID  )  [inherited]
 

00139 { return m_ID;          }

double MucEntity::GetL  )  [inherited]
 

double MucEntity::GetL  )  [inherited]
 

00147 { return m_L;           }

int MucEntity::GetLayer  )  [inherited]
 

int MucEntity::GetLayer  )  [inherited]
 

00136 { return m_Layer;       }

double* MucEntity::GetLocOrgInBes  )  [inherited]
 

double MucEntity::GetLocOrgInBes int  i  )  [inherited]
 

double * MucEntity::GetLocOrgInBes  )  [inherited]
 

00176 { return &m_LocOrgInBes[0]; }

double MucEntity::GetLocOrgInBes int  i  )  [inherited]
 

00153 {
00154         if( i<1 || i>3 ) i=1;
00155         return m_LocOrgInBes[i-1];
00156 }

double* MucEntity::GetObjOrgInBes  )  [inherited]
 

double MucEntity::GetObjOrgInBes int  i  )  [inherited]
 

double * MucEntity::GetObjOrgInBes  )  [inherited]
 

00178 { return &m_ObjOrgInBes[0]; }

double MucEntity::GetObjOrgInBes int  i  )  [inherited]
 

00165 {
00166         if( i<1 || i>3 ) i=1;
00167         return m_ObjOrgInBes[i-1];
00168 }

double* MucEntity::GetObjOrgInLoc  )  [inherited]
 

double MucEntity::GetObjOrgInLoc int  i  )  [inherited]
 

double * MucEntity::GetObjOrgInLoc  )  [inherited]
 

00179 { return &m_ObjOrgInLoc[0]; }

double MucEntity::GetObjOrgInLoc int  i  )  [inherited]
 

00171 {
00172         if( i<1 || i>3 ) i=1;
00173         return m_ObjOrgInLoc[i-1];
00174 }

double* MucEntity::GetObjRotToMot  )  [inherited]
 

double MucEntity::GetObjRotToMot int  i  )  [inherited]
 

double * MucEntity::GetObjRotToMot  )  [inherited]
 

00177 { return &m_ObjRotToMot[0]; }

double MucEntity::GetObjRotToMot int  i  )  [inherited]
 

00159 {
00160         if( i<1 || i>3 ) i=1;
00161         return m_ObjRotToMot[i-1];
00162 }

int MucEntity::GetPart  )  [inherited]
 

int MucEntity::GetPart  )  [inherited]
 

00134 { return m_Part;        }

double MucEntity::GetRc  )  [inherited]
 

double MucEntity::GetRc  )  [inherited]
 

00143 { return m_Rc;          }

double MucEntity::GetRin  )  [inherited]
 

double MucEntity::GetRin  )  [inherited]
 

00141 { return m_Rin;         }

double MucEntity::GetRout  )  [inherited]
 

double MucEntity::GetRout  )  [inherited]
 

00142 { return m_Rout;        }

int MucEntity::GetRpcId  )  [inherited]
 

int MucEntity::GetRpcId  )  [inherited]
 

00138 { return m_RpcId;       }

int MucEntity::GetSegment  )  [inherited]
 

int MucEntity::GetSegment  )  [inherited]
 

00135 { return m_Segment;     }

double MucEntity::GetTheta  )  [inherited]
 

double MucEntity::GetTheta  )  [inherited]
 

00140 { return m_Theta;       }

double MucEntity::GetThin  )  [inherited]
 

double MucEntity::GetThin  )  [inherited]
 

00144 { return m_Thin;        } 

int MucEntity::GetUpDown  )  [inherited]
 

int MucEntity::GetUpDown  )  [inherited]
 

00137 { return m_UpDown;      }

double MucEntity::GetW  )  [inherited]
 

double MucEntity::GetW  )  [inherited]
 

00145 { return m_W;           }

double MucEntity::GetWd  )  [inherited]
 

double MucEntity::GetWd  )  [inherited]
 

00149 { return m_Wd;          }

double MucEntity::GetWu  )  [inherited]
 

double MucEntity::GetWu  )  [inherited]
 

00148 { return m_Wu;          }

virtual void MucAbsorber::Init  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::Init  )  [protected, virtual]
 

Reimplemented from MucEntity.

00041 {
00042         SetTheta();
00043         SetRin();
00044         SetRout();
00045         SetRc();
00046 
00047         SetThin();
00048         SetW(); 
00049         SetWu();
00050         SetWd();
00051         SetH();
00052         SetL();
00053         SetLocOrgInBes();
00054         SetObjRotToMot();
00055         SetObjOrgInBes();
00056         SetObjOrgInLoc();
00057 }

MucAbsorber& MucAbsorber::operator= const MucAbsorber other  ) 
 

MucAbsorber & MucAbsorber::operator= const MucAbsorber other  ) 
 

00027 {
00028         if( this == &other)
00029                 return *this;
00030         
00031         MucEntity::operator =(other);
00032 
00033         return *this;
00034 }

virtual void MucEntity::SetAlignment double  dx,
double  dy,
double  dz
[protected, virtual, inherited]
 

Reimplemented in MucBox, MucStripPlane, MucBox, and MucStripPlane.

void MucEntity::SetAlignment double  dx,
double  dy,
double  dz
[protected, virtual, inherited]
 

Reimplemented in MucBox, MucStripPlane, MucBox, and MucStripPlane.

00219 { ; }

virtual void MucEntity::SetArea  )  [protected, virtual, inherited]
 

Reimplemented in MucBox, MucStrip, MucBox, and MucStrip.

void MucEntity::SetArea  )  [protected, virtual, inherited]
 

Reimplemented in MucBox, MucStrip, MucBox, and MucStrip.

00212 { m_Area        = 0.;   }

virtual void MucAbsorber::SetH  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::SetH  )  [protected, virtual]
 

Reimplemented from MucEntity.

00131 {
00132         if( m_Part == BRID )
00133                 m_H = B_AS_TH[m_Layer];
00134         else
00135         {
00136                 if( m_ID == -1 ) // temporary local
00137                         m_H = E_AS_RMAX;
00138                 else
00139                         m_H = E_AS_RMAX - E_AS_RMIN[m_Layer];
00140         }
00141 }

virtual void MucAbsorber::SetL  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::SetL  )  [protected, virtual]
 

Reimplemented from MucEntity.

00144 {
00145         if( m_Part == BRID )
00146                 m_L = B_AS_LMAX;
00147         else
00148                 m_L = E_AS_TH[m_Layer];
00149 }

virtual void MucAbsorber::SetLocOrgInBes  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::SetLocOrgInBes  )  [protected, virtual]
 

Reimplemented from MucEntity.

00187 {
00188         double x, y, z;
00189   x = y = z = 0.0;
00190         
00191         //---------- set x and y --------
00192         if( m_Part == BRID || m_ID == -1 ) // the local(mother) in BES
00193         {       
00194                 x = m_Rc * cos( m_Theta );
00195                 y = m_Rc * sin( m_Theta );
00196         } // barrel
00197         else // for endcap panel, calculate the origin of temporary local in BES
00198         {       
00199                 // set x and y  
00200                 double tempR, tempTheta;
00201                 tempR = sqrt(2.0) * E_AS_RMAX / 2.0;
00202                 tempTheta = ( 2*m_Segment + 1 ) * ( MUC_PI / 4.0 );
00203                 
00204                 x = tempR * cos( tempTheta );
00205                 y = tempR * sin( tempTheta );
00206                 
00207         }// endcap
00208         
00209         //---------- set z  ----------- 
00210         if( m_Part == BRID ) z = 0.;
00211         else
00212         {
00213                 for( int i=0; i<m_Layer+1; i++ ) z += E_AS_TH[i];
00214 
00215                 z += m_Layer * AS_GAP;
00216                 z += (E_AS_ZMAX - E_AS_TOTAL_TH ) - m_Thin/2.0;  
00217                 z *= cos( m_Part*MUC_PI/2.0 );
00218         }
00219 
00220         m_LocOrgInBes[0] = x;
00221         m_LocOrgInBes[1] = y;
00222         m_LocOrgInBes[2] = z;
00223 
00224         // limit cut
00225         for(int i=0; i<3; i++) {
00226                 if( fabs(m_LocOrgInBes[i]) < ERR_LIMIT ) m_LocOrgInBes[i] = 0; 
00227         }               
00228 }

virtual void MucAbsorber::SetObjOrgInBes  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::SetObjOrgInBes  )  [protected, virtual]
 

Reimplemented from MucEntity.

00242 {
00243         double x, y;
00244 
00245         if( m_Part == BRID || m_ID == -1 ) // object is concided with local
00246         {
00247                 m_ObjOrgInBes[0] = m_LocOrgInBes[0];
00248                 m_ObjOrgInBes[1] = m_LocOrgInBes[1];
00249                 m_ObjOrgInBes[2] = m_LocOrgInBes[2];
00250 
00251         } // local              
00252         else 
00253         {
00254                 //-------- set x and y ------------  
00255                 // endcap panels
00256                 // setting segment 0 as reference 
00257                 if( m_ID == 0 )
00258                 {
00259                         x = m_Rc;
00260                         y = m_Rc * tan( m_Theta ) / 2.0;
00261                 }
00262                 else if ( m_ID ==1 )
00263                 {
00264                         x = m_Rc * cos( m_Theta );
00265                         y = m_Rc * sin( m_Theta );      
00266                 }
00267                 else // m_ID == 2
00268                 {
00269                         x = m_Rc / tan( m_Theta ) / 2.0;
00270                         y = m_Rc;
00271                 }
00272                         
00273                 // x, y signs of coordinate different by segment 
00274                 if( m_Segment == 0 )       {    ;               }
00275                 else if ( m_Segment == 1 ) {    x = -x;         }
00276                 else if ( m_Segment == 2 ) {    x = -x; y = -y; }
00277                 else                       {    y = -y;         }
00278 
00279                 m_ObjOrgInBes[0] = x;
00280                 m_ObjOrgInBes[1] = y;
00281 
00282                 // limit cut
00283                 for( int i=0; i<2; i++ ) {
00284                         if( fabs(m_ObjOrgInBes[i]) < ERR_LIMIT ) m_ObjOrgInBes[i] = 0;
00285                 }
00286                 
00287                 //---------- set z--------------
00288                 m_ObjOrgInBes[2] = m_LocOrgInBes[2];
00289 
00290         } // else, endcap panels
00291 }

virtual void MucAbsorber::SetObjOrgInLoc  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::SetObjOrgInLoc  )  [protected, virtual]
 

Reimplemented from MucEntity.

00294 {
00295         if( m_Part == BRID || m_ID == -1 ) // for barrel and endcap local
00296                 for(int i=0; i<3; i++) m_ObjOrgInLoc[i] = 0.;
00297         else                               // for endcap panels
00298                 for(int i=0; i<3; i++) m_ObjOrgInLoc[i] = m_ObjOrgInBes[i] - m_LocOrgInBes[i];
00299 }

virtual void MucAbsorber::SetObjRotToMot  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::SetObjRotToMot  )  [protected, virtual]
 

Reimplemented from MucEntity.

00231 {
00232         m_ObjRotToMot[0] = 0.;
00233         m_ObjRotToMot[1] = 0.;
00234 
00235         if( m_Part == BRID )
00236                 m_ObjRotToMot[2] = MUC_PI * (m_Segment - 2) / 4.0;
00237         else
00238                 m_ObjRotToMot[2] = 0.;
00239 }

virtual void MucAbsorber::SetRc  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::SetRc  )  [protected, virtual]
 

Reimplemented from MucEntity.

00097 {
00098         if( m_Part == BRID )
00099                 m_Rc = B_AS_RMIN[m_Layer] + B_AS_TH[m_Layer]/2.0;
00100         else
00101         {
00102                 if( m_ID == -1 )
00103                         m_Rc = sqrt(2.0) * E_AS_RMAX / 2.0;
00104                 else
00105                         m_Rc = (m_Rin + m_Rout)/2.0;
00106         }
00107 }

virtual void MucAbsorber::SetRin  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::SetRin  )  [protected, virtual]
 

Reimplemented from MucEntity.

00075 {
00076         if( m_Part == BRID )
00077                 m_Rin = B_AS_RMIN[m_Layer];
00078         else
00079         {
00080                 if( m_ID == -1 )
00081                         m_Rin = 0.0;
00082                 else
00083                         m_Rin = E_AS_RMIN[m_Layer];
00084         }
00085 }

virtual void MucAbsorber::SetRout  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::SetRout  )  [protected, virtual]
 

Reimplemented from MucEntity.

00088 {
00089         if( m_Part == BRID )
00090                 m_Rout = B_AS_RMIN[m_Layer] + B_AS_TH[m_Layer] ;
00091         else
00092                 m_Rout = E_AS_RMAX;
00093 }

virtual void MucAbsorber::SetTheta  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::SetTheta  )  [protected, virtual]
 

Reimplemented from MucEntity.

00062 {
00063         if( m_Part == BRID )
00064                 m_Theta = m_Segment * ( MUC_PI/4.0 );
00065         else
00066         {
00067                 if( m_ID == -1 )
00068                         m_Theta = ( 2*m_Segment + 1 ) * ( MUC_PI/4.0 );
00069                 else
00070                         m_Theta = ( MUC_PI/4.0 ) + ( m_ID - 1) * MUC_PI / 8.0 ;
00071         }
00072 }

virtual void MucAbsorber::SetThin  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::SetThin  )  [protected, virtual]
 

Reimplemented from MucEntity.

00110 {
00111         if( m_Part == BRID )
00112                 m_Thin = B_AS_TH[m_Layer];
00113         else
00114                 m_Thin = E_AS_TH[m_Layer];
00115 }

virtual void MucAbsorber::SetW  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::SetW  )  [protected, virtual]
 

Reimplemented from MucEntity.

00118 {
00119         if( m_Part == BRID)
00120                 m_W = 2.0 * VALUE * m_Rout;
00121         else
00122         {
00123                 if( m_ID == -1 ) // temporary local 
00124                         m_W = E_AS_RMAX;
00125                 else
00126                         m_W = 0;
00127         }
00128 }

virtual void MucAbsorber::SetWd  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::SetWd  )  [protected, virtual]
 

Reimplemented from MucEntity.

00169 {
00170          if( m_Part == BRID )
00171                   m_Wd = 2.0 * VALUE * m_Rout;
00172         else
00173         {
00174                 if( m_ID == -1 )        // temporary local
00175                         m_Wd = m_W;
00176                 if( m_ID == 1 )         // center panel 
00177                         m_Wd = 2.0 * VALUE * E_AS_RMAX;
00178                 else
00179                         m_Wd = VALUE * E_AS_RMAX;
00180         }
00181 
00182         m_Wd -= 0.8;  //mm, avoid overlaping
00183 }

virtual void MucAbsorber::SetWu  )  [protected, virtual]
 

Reimplemented from MucEntity.

void MucAbsorber::SetWu  )  [protected, virtual]
 

Reimplemented from MucEntity.

00152 {
00153         if( m_Part == BRID )
00154                 m_Wu = 2 * VALUE * m_Rin;
00155         else
00156         {
00157                 if( m_ID == -1 )        // temporary local
00158                         m_Wu = m_W;
00159                 else if( m_ID == 1 )    // center panel 
00160                         m_Wu = 2 * VALUE * m_Rin;
00161                 else
00162                         m_Wu = VALUE * m_Rin;
00163         }
00164 
00165         m_Wu -= 0.8; //mm, avoid overlaping
00166 }

void MucEntity::TransBesToLoc double  LocCoord[],
double  BesCoord[],
double  LocOrgInBes[],
double  Rot_z
[inherited]
 

void MucEntity::TransBesToLoc double  LocCoord[],
double  BesCoord[],
double  LocOrgInBes[],
double  Rot_z
[inherited]
 

00224 {
00225        LocCoord[0] = (BesCoord[0] - LocOrgInBes[0])*cos(Rot_z) + (BesCoord[1] - LocOrgInBes[1])*sin(Rot_z);
00226        LocCoord[1] = -(BesCoord[0] - LocOrgInBes[0])*sin(Rot_z) + (BesCoord[1] - LocOrgInBes[1])*cos(Rot_z);
00227        LocCoord[2] = BesCoord[2] - LocOrgInBes[2];
00228 }

void MucEntity::TransLocToBes double  LocCoord[],
double  BesCoord[],
double  LocOrgInBes[],
double  Rot_z
[inherited]
 

void MucEntity::TransLocToBes double  LocCoord[],
double  BesCoord[],
double  LocOrgInBes[],
double  Rot_z
[inherited]
 

00233 {
00234         BesCoord[0] = LocCoord[0]*cos(Rot_z) - LocCoord[1]*sin(Rot_z) + LocOrgInBes[0];
00235         BesCoord[1] = LocCoord[0]*sin(Rot_z) + LocCoord[1]*cos(Rot_z) + LocOrgInBes[1];
00236         BesCoord[2] = LocCoord[2] + LocOrgInBes[2];
00237 }


Member Data Documentation

double MucEntity::m_Area [protected, inherited]
 

double MucEntity::m_H [protected, inherited]
 

int MucEntity::m_ID [protected, inherited]
 

double MucEntity::m_L [protected, inherited]
 

int MucEntity::m_Layer [protected, inherited]
 

double MucEntity::m_LocOrgInBes [protected, inherited]
 

double MucEntity::m_ObjOrgInBes [protected, inherited]
 

double MucEntity::m_ObjOrgInLoc [protected, inherited]
 

double MucEntity::m_ObjRotToMot [protected, inherited]
 

int MucEntity::m_Part [protected, inherited]
 

double MucEntity::m_Rc [protected, inherited]
 

double MucEntity::m_Rin [protected, inherited]
 

double MucEntity::m_Rout [protected, inherited]
 

int MucEntity::m_RpcId [protected, inherited]
 

int MucEntity::m_Segment [protected, inherited]
 

double MucEntity::m_Theta [protected, inherited]
 

double MucEntity::m_Thin [protected, inherited]
 

int MucEntity::m_UpDown [protected, inherited]
 

double MucEntity::m_W [protected, inherited]
 

double MucEntity::m_Wd [protected, inherited]
 

double MucEntity::m_Wu [protected, inherited]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:32:35 2011 for BOSS6.5.5 by  doxygen 1.3.9.1