MucIdTransform Class Reference

#include <MucIdTransform.h>

List of all members.

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


Detailed Description

Definition at line 15 of file MucIdTransform.h.


Constructor & Destructor Documentation

MucIdTransform::MucIdTransform (  ) 

Definition at line 18 of file MucIdTransform.cxx.

References m_Id, m_Layer, m_Part, m_Segment, and m_Strip.

00019 {
00020   m_Id      = 0;
00021   m_Part    = 0;
00022   m_Segment = 0;
00023   m_Layer   = 0;
00024   m_Strip   = 0;
00025 }

MucIdTransform::~MucIdTransform (  ) 

Definition at line 28 of file MucIdTransform.cxx.

00028 { ; }

MucIdTransform::MucIdTransform (  ) 

MucIdTransform::~MucIdTransform (  ) 


Member Function Documentation

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 (  ) 

Definition at line 31 of file MucIdTransform.cxx.

References m_Id.

00031 { return m_Id;      }

int MucIdTransform::GetLayer (  ) 

int MucIdTransform::GetLayer (  ) 

Definition at line 34 of file MucIdTransform.cxx.

References m_Layer.

00034 { return m_Layer;   }

int MucIdTransform::GetPart (  ) 

int MucIdTransform::GetPart (  ) 

Definition at line 32 of file MucIdTransform.cxx.

References m_Part.

00032 { return m_Part;    }

int MucIdTransform::GetSegment (  ) 

int MucIdTransform::GetSegment (  ) 

Definition at line 33 of file MucIdTransform.cxx.

References m_Segment.

00033 { return m_Segment; }

int MucIdTransform::GetStrip (  ) 

int MucIdTransform::GetStrip (  ) 

Definition at line 35 of file MucIdTransform.cxx.

References m_Strip.

00035 { return m_Strip;   }

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 }


Member Data Documentation

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().


Generated on Tue Nov 29 23:20:29 2016 for BOSS_7.0.2 by  doxygen 1.4.7