00001 /* Class MdcCosLayer describes the sense layer property */ 00002 /* Created by Wu Linghui, 2006/05/28 */ 00003 00004 #ifndef MDCCOSLAYER_H 00005 #define MDCCOSLAYER_H 00006 00007 class MdcCosLayer{ 00008 public: 00009 /* /\* constructor *\/ */ 00010 /* MdcCosLayer(); */ 00011 00012 /* /\* destructor *\/ */ 00013 /* ~MdcCosLayer(); */ 00014 00015 /* get layer type, 0 for axial, 1 for stereo-, 2 for stereo+ */ 00016 int getLayerType() const { return m_typ; } 00017 00018 /* get the number of cells in the layer */ 00019 int getNcell() const { return m_ncell; } 00020 00021 /* get layer radius and the endplate */ 00022 double getLayerRad() const { return m_rad; } 00023 00024 /* get wire length in the layer in z direction, [mm] */ 00025 double getLength() const { return m_length; } 00026 00027 /* get number of twist cells */ 00028 double getTwistCell() const { return m_twist; } 00029 00030 /* get slant angle */ 00031 double getSlant() const { return m_slant; } 00032 00033 /* get the index of the alignment parameter */ 00034 int getAlignParId(int i) const { return m_iAlignPar[i]; } 00035 00036 /* get flag of inner chamber, true for inner, false for outer */ 00037 bool isInner() const { return m_fginner; } 00038 00039 00040 /* set layer type, 0 for axial, 1 for stereo-, 2 for stereo+ */ 00041 void setLayerType(int type) { m_typ = type; } 00042 00043 /* set the number of cells in the layer */ 00044 void setNcell(int ncell) { m_ncell = ncell; } 00045 00046 /* set layer radius and the endplate */ 00047 void setLayerRad(double rad) { m_rad = rad; } 00048 00049 /* set wire length in the layer in z direction, [mm] */ 00050 void setLength(double length) { m_length = length; } 00051 00052 /* set number of twist cells */ 00053 void setTwistCell(double twist) { m_twist = twist; } 00054 00055 /* set slant angle */ 00056 void setSlant(double slant) { m_slant = slant; } 00057 00058 /* set flag of inner chamber, true for inner, false for outer */ 00059 void setFgInner(bool fginner) { m_fginner = fginner; } 00060 00061 /* set the index of the alignment parameter */ 00062 void setAlignParId(int ipar[]); 00063 00064 private: 00065 /* std::string m_fname; */ 00066 /* MdcCosWire* m_wire[WIRENMAX]; */ 00067 /* int m_wiretable[LAYERNMAX][CELLNMAX]; */ 00068 00069 int m_typ; 00070 int m_ncell; 00071 int m_iAlignPar[6]; 00072 double m_rad; 00073 double m_length; 00074 double m_twist; 00075 double m_slant; 00076 bool m_fginner; 00077 00078 }; 00079 00080 inline void MdcCosLayer::setAlignParId(int ipar[]){ 00081 for(int i=0; i<6; i++){ 00082 m_iAlignPar[i] = ipar[i]; 00083 } 00084 } 00085 00086 #endif /* MDCCOSLAYER_H */