#include <MucIdTransform.h>
Public Member Functions | |
MucIdTransform () | |
~MucIdTransform () | |
int | GetId () |
int | GetPart () |
int | GetSegment () |
int | GetLayer () |
int | GetStrip () |
int | GetStripMax (int part, int segment, int layer) |
int | GetBoxId (int part, int segment, int layer) |
int | GetStripId (int part, int segment, int layer, int subid) |
bool | SetBoxPos (int boxid, int *part, int *segment, int *layer) |
bool | SetStripPos (int stripid, int *part, int *segment, int *layer, int *subid) |
void | Print (int) |
MucIdTransform () | |
~MucIdTransform () | |
int | GetId () |
int | GetPart () |
int | GetSegment () |
int | GetLayer () |
int | GetStrip () |
int | GetStripMax (int part, int segment, int layer) |
int | GetBoxId (int part, int segment, int layer) |
int | GetStripId (int part, int segment, int layer, int subid) |
bool | SetBoxPos (int boxid, int *part, int *segment, int *layer) |
bool | SetStripPos (int stripid, int *part, int *segment, int *layer, int *subid) |
void | Print (int) |
Private Attributes | |
int | m_Id |
int | m_Part |
int | m_Segment |
int | m_Layer |
int | m_Strip |
Definition at line 15 of file MucIdTransform.h.
MucIdTransform::MucIdTransform | ( | ) |
MucIdTransform::~MucIdTransform | ( | ) |
MucIdTransform::MucIdTransform | ( | ) |
MucIdTransform::~MucIdTransform | ( | ) |
int MucIdTransform::GetBoxId | ( | int | part, | |
int | segment, | |||
int | layer | |||
) |
int MucIdTransform::GetBoxId | ( | int | part, | |
int | segment, | |||
int | layer | |||
) |
Definition at line 51 of file MucIdTransform.cxx.
References BOX_PER_PART, BOX_PER_SEG, and genRecEmupikp::i.
Referenced by MucCalibMgr::FillCluster(), MucCalibMgr::FillDigi(), MucCalibMgr::FillEffHit(), MucCalibMgr::FillExpHit(), DQA_MUC::FillHistograms(), MucCalibMgr::FillNosHit(), GetStripId(), CalibData::MucIdTransform::GetStripId(), MucCalibMgr::Init2DEffHisto(), and MucCalibMgr::InitArea().
00052 { 00053 int boxId = 0; 00054 for(int i=0; i<part; i++) { 00055 boxId += BOX_PER_PART[i]; 00056 } 00057 00058 if( segment == 0 ) 00059 boxId += layer; 00060 else 00061 boxId += ( segment * BOX_PER_SEG[part] + layer ); 00062 00063 return boxId; 00064 }
int MucIdTransform::GetId | ( | ) |
int MucIdTransform::GetId | ( | ) |
int MucIdTransform::GetLayer | ( | ) |
int MucIdTransform::GetLayer | ( | ) |
int MucIdTransform::GetPart | ( | ) |
int MucIdTransform::GetPart | ( | ) |
int MucIdTransform::GetSegment | ( | ) |
int MucIdTransform::GetSegment | ( | ) |
int MucIdTransform::GetStrip | ( | ) |
int MucIdTransform::GetStrip | ( | ) |
int MucIdTransform::GetStripId | ( | int | part, | |
int | segment, | |||
int | layer, | |||
int | subid | |||
) |
int MucIdTransform::GetStripId | ( | int | part, | |
int | segment, | |||
int | layer, | |||
int | subid | |||
) |
Definition at line 67 of file MucIdTransform.cxx.
References B_PHISTR_NUM, B_STR_PER_SEG, B_TOP, B_TOPSTR_NUM, B_ZSTR_NUM, BOX_SUM, BRID, E_STR_NUM, EEID, GetBoxId(), and STR_PER_PART.
Referenced by MucCalibMgr::EffAndNoiseLV2(), MucCalibMgr::FillDigi(), MucCalibMgr::FillEffHit(), MucCalibMgr::FillExpHit(), DQA_MUC::FillHistograms(), MucCalibMgr::FillNosHit(), and MucCalibMgr::InitArea().
00068 { 00069 int strId = 0; 00070 int boxId = 0; 00071 00072 boxId = GetBoxId( part, segment, layer ); 00073 00074 if( part == EEID ) { 00075 strId = boxId*E_STR_NUM + strSubId; 00076 } 00077 else if( part == BRID ) 00078 { 00079 strId = STR_PER_PART[0]; 00080 00081 if( segment > B_TOP ) 00082 strId += segment * B_STR_PER_SEG[0] + E_STR_NUM; 00083 else 00084 strId += segment * B_STR_PER_SEG[0]; 00085 00086 strId += ((1+layer)/2) * B_ZSTR_NUM; 00087 strId += (layer/2) * ( (segment == B_TOP)?B_TOPSTR_NUM:B_PHISTR_NUM ); 00088 00089 strId += strSubId; 00090 } 00091 else { 00092 strId = STR_PER_PART[0] + STR_PER_PART[1]; 00093 strId += (boxId - BOX_SUM[1])*E_STR_NUM + strSubId; 00094 } 00095 00096 return strId; 00097 }
int MucIdTransform::GetStripMax | ( | int | part, | |
int | segment, | |||
int | layer | |||
) |
int MucIdTransform::GetStripMax | ( | int | part, | |
int | segment, | |||
int | layer | |||
) |
Definition at line 38 of file MucIdTransform.cxx.
References B_PHISTR_NUM, B_TOP, B_TOPSTR_NUM, B_ZSTR_NUM, BRID, E_STR_NUM, and max.
Referenced by MucCalibMgr::EffAndNoiseLV0(), MucCalibMgr::EffAndNoiseLV1(), MucCalibMgr::EffAndNoiseLV2(), DQA_MUC::execute(), MucCalibMgr::InitArea(), MucCalibMgr::InitClusterHisto(), MucCalibMgr::InitHistoLV2(), BesMucNoise::NoiseByCnt(), MucCalibMgr::ReadEvent(), and MucCalibMgr::SaveConst().
00039 { 00040 int max = 0; 00041 00042 if( part != BRID ) max = E_STR_NUM; 00043 else if( (layer+1)%2 == 1 ) max = B_ZSTR_NUM; 00044 else if( segment == B_TOP ) max = B_TOPSTR_NUM; 00045 else max = B_PHISTR_NUM; 00046 00047 return max; 00048 }
void MucIdTransform::Print | ( | int | ) |
void MucIdTransform::Print | ( | int | ) |
Definition at line 198 of file MucIdTransform.cxx.
References m_Id, m_Layer, m_Part, m_Segment, and m_Strip.
00199 { 00200 if( mode == 0 ) // position to id 00201 { 00202 cout << "prt: " << m_Part 00203 << "\tseg: " << m_Segment 00204 << "\tlay: " << m_Layer 00205 << "\tstr: " << m_Strip 00206 << "\tid: " << m_Id << endl; 00207 } 00208 else // id to position 00209 { 00210 cout << "id: " << m_Id 00211 << "\tprt: " << m_Part 00212 << "\tseg: " << m_Segment 00213 << "\tlay: " << m_Layer 00214 << "\tstr: " << m_Strip << endl; 00215 } 00216 }
bool MucIdTransform::SetBoxPos | ( | int | boxid, | |
int * | part, | |||
int * | segment, | |||
int * | layer | |||
) |
bool MucIdTransform::SetBoxPos | ( | int | boxid, | |
int * | part, | |||
int * | segment, | |||
int * | layer | |||
) |
Definition at line 100 of file MucIdTransform.cxx.
References B_LAY_NUM, BOX_MAX, BOX_SUM, BRID, and E_LAY_NUM.
Referenced by MucCalibMgr::EffAndNoiseLV1(), MucCalibMgr::EffAndNoiseLV2(), MucCalibMgr::InitClusterHisto(), MucCalibMgr::InitHistoLV2(), and MucGeoMgr::InitOffset().
00101 { 00102 if( (boxId < 0) || (boxId > BOX_MAX-1) ) 00103 { 00104 *part = 0; 00105 *segment = 0; 00106 *layer = 0; 00107 cout << "box id out range:\t" << boxId << "!" << endl; 00108 return false; 00109 } 00110 00111 // get part 00112 if( boxId < BOX_SUM[0] ) { *part = 0; } 00113 else if( boxId < BOX_SUM[1] ) { *part = 1; boxId -= BOX_SUM[0]; } 00114 else { *part = 2; boxId -= BOX_SUM[1]; } 00115 00116 // get segment and layer 00117 if( *part == BRID ) { 00118 *segment = boxId / B_LAY_NUM; 00119 *layer = boxId % B_LAY_NUM; 00120 } 00121 else { 00122 *segment = boxId / E_LAY_NUM; 00123 *layer = boxId % E_LAY_NUM; 00124 } 00125 00126 return true; 00127 }
bool MucIdTransform::SetStripPos | ( | int | stripid, | |
int * | part, | |||
int * | segment, | |||
int * | layer, | |||
int * | subid | |||
) |
bool MucIdTransform::SetStripPos | ( | int | stripid, | |
int * | part, | |||
int * | segment, | |||
int * | layer, | |||
int * | subid | |||
) |
Definition at line 130 of file MucIdTransform.cxx.
References B_PHISTR_NUM, B_STR_PER_SEG, B_TOP, B_TOPSTR_NUM, B_ZSTR_NUM, BRID, E_LAY_NUM, E_STR_NUM, STR_SUM, STRIP_MAX, and subSeperate::temp.
Referenced by BesMucNoise::NoiseByNosRatio().
00131 { 00132 if( (stripId < 0) || (stripId > STRIP_MAX-1) ) 00133 { 00134 *part = 0; 00135 *segment = 0; 00136 *layer = 0; 00137 *strSubId = 0; 00138 cout << "strip id out range:\t" << stripId << "!" << endl; 00139 return false; 00140 } 00141 00142 // get part 00143 if( stripId < STR_SUM[0] ) { *part = 0; } 00144 else if ( stripId < STR_SUM[1] ) { *part = 1; stripId -= STR_SUM[0]; } 00145 else { *part = 2; stripId -= STR_SUM[1]; } 00146 00147 // get segment and layer 00148 if( *part == BRID ) 00149 { 00150 int temp = 0; 00151 if ( stripId >= 2*B_STR_PER_SEG[0] && stripId < 2*B_STR_PER_SEG[0] + B_STR_PER_SEG[1] ) 00152 { 00153 // get segment 00154 *segment = B_TOP; 00155 00156 stripId -= 2*B_STR_PER_SEG[0]; 00157 temp = stripId % ( B_ZSTR_NUM + B_TOPSTR_NUM ); 00158 00159 // get layer 00160 if( temp < B_ZSTR_NUM ) *layer = 2*( stripId / ( B_ZSTR_NUM + B_TOPSTR_NUM ) ); 00161 else *layer = 2*( stripId / ( B_ZSTR_NUM + B_TOPSTR_NUM ) ) + 1; 00162 00163 // get strip 00164 if( temp < B_ZSTR_NUM ) *strSubId = temp; 00165 else *strSubId = temp - B_ZSTR_NUM; 00166 00167 } // top segment 00168 else 00169 { 00170 if (stripId >= 2*B_STR_PER_SEG[0] + B_STR_PER_SEG[1] ) stripId -= E_STR_NUM; 00171 00172 // get segment 00173 *segment = stripId / B_STR_PER_SEG[0]; 00174 00175 stripId %= B_STR_PER_SEG[0]; 00176 temp = stripId % ( B_ZSTR_NUM + B_PHISTR_NUM ); 00177 00178 // get layer 00179 if( temp < B_ZSTR_NUM ) *layer = 2*( stripId / ( B_ZSTR_NUM + B_PHISTR_NUM ) ); 00180 else *layer = 2*( stripId / ( B_ZSTR_NUM + B_PHISTR_NUM ) ) + 1; 00181 00182 // get strip 00183 if( temp < B_ZSTR_NUM ) *strSubId = temp; 00184 else *strSubId = temp - B_ZSTR_NUM; 00185 } 00186 } // barrel 00187 else 00188 { 00189 *strSubId = stripId % E_STR_NUM; 00190 *layer = ( stripId / E_STR_NUM ) % E_LAY_NUM ; 00191 *segment = ( stripId / E_STR_NUM ) / E_LAY_NUM ; 00192 } 00193 00194 return true; 00195 }
int MucIdTransform::m_Id [private] |
Definition at line 36 of file MucIdTransform.h.
Referenced by GetId(), CalibData::MucIdTransform::GetId(), MucIdTransform(), CalibData::MucIdTransform::MucIdTransform(), Print(), and CalibData::MucIdTransform::Print().
int MucIdTransform::m_Layer [private] |
Definition at line 39 of file MucIdTransform.h.
Referenced by GetLayer(), CalibData::MucIdTransform::GetLayer(), MucIdTransform(), CalibData::MucIdTransform::MucIdTransform(), Print(), and CalibData::MucIdTransform::Print().
int MucIdTransform::m_Part [private] |
Definition at line 37 of file MucIdTransform.h.
Referenced by GetPart(), CalibData::MucIdTransform::GetPart(), MucIdTransform(), CalibData::MucIdTransform::MucIdTransform(), Print(), and CalibData::MucIdTransform::Print().
int MucIdTransform::m_Segment [private] |
Definition at line 38 of file MucIdTransform.h.
Referenced by GetSegment(), CalibData::MucIdTransform::GetSegment(), MucIdTransform(), CalibData::MucIdTransform::MucIdTransform(), Print(), and CalibData::MucIdTransform::Print().
int MucIdTransform::m_Strip [private] |
Definition at line 40 of file MucIdTransform.h.
Referenced by GetStrip(), CalibData::MucIdTransform::GetStrip(), MucIdTransform(), CalibData::MucIdTransform::MucIdTransform(), Print(), and CalibData::MucIdTransform::Print().