00001 //------------------------------------------------------------------------------| 00002 // [File ]: MucEntityCal.h | 00003 // [Brief ]: Head file of MUC geometry entity class for calibration | 00004 // [Author]: Xie Yuguang, <ygxie@mail.ihep.ac.cn> | 00005 // [Date ]: May 22, 2005 | 00006 //------------------------------------------------------------------------------| 00007 00008 #ifndef MUC_ENTITY_CAL_H 00009 #define MUC_ENTITY_CAL_H 00010 00011 #include<iostream> 00012 00013 using namespace std; 00014 00015 class MucEntityCal 00016 { 00017 public: 00018 MucEntityCal( int part, int segment, int layer ); 00019 MucEntityCal( int part, int segment, int layer, int id ); 00020 MucEntityCal( const MucEntityCal &other ); 00021 MucEntityCal &operator =( const MucEntityCal &other ); 00022 virtual ~MucEntityCal() ; 00023 00024 int GetPart(); 00025 int GetSegment(); 00026 int GetLayer(); 00027 int GetID(); 00028 00029 double GetTheta(); // degree 00030 double GetRin(); // mm 00031 double GetRout(); // mm 00032 double GetRc(); // mm 00033 double GetThin(); // mm 00034 double GetW(); // mm 00035 double GetH(); // mm 00036 double GetL(); // mm 00037 double GetWu(); // mm 00038 double GetWd(); // mm 00039 double GetArea(); // cm^2 00040 00041 protected: 00042 00043 virtual void Init(); // all geometry information initilization 00044 00045 virtual void SetTheta(); // set theta 00046 virtual void SetRin(); // set r inner 00047 virtual void SetRout(); // set r outer 00048 virtual void SetRc(); // set r center 00049 virtual void SetThin(); // set thickness 00050 virtual void SetW(); // set width 00051 virtual void SetH(); // set height 00052 virtual void SetL(); // set stretching length 00053 virtual void SetWu(); // set up width 00054 virtual void SetWd(); // set down width 00055 virtual void SetArea(); // set area of entity(cm^2) 00056 00057 protected: 00058 int m_Part; // part id 00059 int m_Segment; // segment id 00060 int m_Layer; // layer id 00061 int m_ID; // object id 00062 00063 double m_Theta; // barrel: inclination angle of R and Bes_X 00064 // endcap: inclination angle of panel boudary and Bes_X 00065 00066 double m_Rin; // r of the inner surface relative to BES origin 00067 double m_Rout; // r of the outer surface relative to BES origin 00068 double m_Rc; // r of the center surface relative to BES orign 00069 double m_Thin; // thickness of entity 00070 double m_W; // width of cross section 00071 double m_H; // height of cross section 00072 double m_L; // stretching length of cross section 00073 double m_Wu; // up width of trapezoid cross section 00074 double m_Wd; // down width of trapezoid cross section 00075 double m_Area; // area of entity,mm^2 00076 }; 00077 00078 #endif 00079