00001 //------------------------------------------------------------------------------| 00002 // [File ]: MucRpc.h | 00003 // [Brief ]: Head file of MUC geometry Rpc class | 00004 // [Author]: Xie Yuguang, <ygxie@mail.ihep.ac.cn> | 00005 // [Date ]: May 22, 2005 | 00006 //------------------------------------------------------------------------------| 00007 00008 #ifndef MUC_RPC_H 00009 #define MUC_RPC_H 00010 00011 #include<iostream> 00012 00013 #include "MucGeoCreateAlg/MucEntity.h" 00014 #include "MucGeoCreateAlg/MucRpc.h" 00015 #include "MucGeoCreateAlg/MucGas.h" 00016 #include "MucGeoCreateAlg/MucBakelite.h" 00017 00018 using namespace std; 00019 00020 class MucRpc : public MucEntity 00021 { 00022 public: 00023 MucRpc( int part, int segment, int layer, int upDown, int id ); 00024 MucRpc( const MucRpc &other ); 00025 MucRpc& operator =( const MucRpc &other ); 00026 virtual ~MucRpc(); 00027 00028 double GetPhi(); 00029 MucGas* GetGas(); 00030 MucBakelite* GetBakelite( int id ); 00031 00032 // virtual void SetAlignment( double dx, double dy, double dz ); 00033 00034 protected: 00035 virtual void Init(); 00036 00037 void SetPhi(); 00038 virtual void SetTheta(); 00039 virtual void SetRc(); 00040 virtual void SetRin(); 00041 virtual void SetRout(); 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 00050 int SetEndcapRpcInBes(); 00051 int SetBarrelRpcInLoc(); 00052 00053 virtual void SetLocOrgInBes(); 00054 virtual void SetObjOrgInBes(); 00055 virtual void SetObjOrgInLoc(); 00056 00057 private: 00058 00059 double m_Phi; // inclination angle of BES x axis and Loc x axis 00060 MucGas* m_MucGas; 00061 MucBakelite* m_MucBakelite; 00062 00063 }; 00064 00065 #endif 00066