00001 //------------------------------------------------------------------------------| 00002 // [File ]: MucBox.h | 00003 // [Brief ]: Head file of MUC geometry gap of Box class | 00004 // [Author]: Xie Yuguang, <ygxie@mail.ihep.ac.cn> | 00005 // [Date ]: May 22, 2005 | 00006 //------------------------------------------------------------------------------| 00007 00008 #ifndef MUC_BOX_H 00009 #define MUC_BOX_H 00010 00011 #include<iostream> 00012 00013 #include "MucGeoCreateAlg/MucEntity.h" 00014 #include "MucGeoCreateAlg/MucStripPlane.h" 00015 #include "MucGeoCreateAlg/MucRpc.h" 00016 #include "MucGeoCreateAlg/MucBoxCover.h" 00017 00018 using namespace std; 00019 00020 class MucBox : public MucEntity 00021 { 00022 public: 00023 MucBox( int part, int segment, int layer, int id ); 00024 MucBox( const MucBox &other ); 00025 MucBox& operator =( const MucBox &other ); 00026 ~MucBox(); 00027 00028 virtual void SetAlignment( double dx, double dy, double dz ); 00029 00030 MucStripPlane* GetStripPlane(); 00031 MucRpc* GetRpc( int upDown, int id ); 00032 MucBoxCover* GetBoxCover( int upDown, int id ); 00033 00034 protected: 00035 00036 virtual void Init(); 00037 00038 virtual void SetTheta(); 00039 virtual void SetRin(); 00040 virtual void SetRout(); 00041 virtual void SetRc(); 00042 00043 virtual void SetThin(); 00044 virtual void SetW(); 00045 virtual void SetH(); 00046 virtual void SetL(); 00047 virtual void SetWu(); 00048 virtual void SetWd(); 00049 virtual void SetArea(); 00050 00051 virtual void SetLocOrgInBes(); 00052 virtual void SetObjRotToMot(); 00053 virtual void SetObjOrgInBes(); 00054 virtual void SetObjOrgInLoc(); 00055 00056 private: 00057 00058 MucStripPlane* m_MucStripPlane; 00059 MucRpc* m_MucRpc; 00060 MucBoxCover* m_MucBoxCover; 00061 00062 }; 00063 00064 #endif 00065