Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MucFec Class Reference

#include <MucFec.h>

List of all members.

Public Member Functions

int DecodeFecID ()
int DecodeFecID ()
int DecodeModule ()
int DecodeModule ()
int DecodeSocket ()
int DecodeSocket ()
string GetBin (unsigned short record)
string GetBin (unsigned int record)
string GetBin (unsigned short record)
string GetBin (unsigned int record)
string GetChainName ()
string GetChainName ()
unsigned short GetData ()
unsigned short GetData ()
string GetDataBin ()
string GetDataBin ()
int GetFiredStripNumber ()
int GetFiredStripNumber ()
vector< int > * GetFiredStripVect ()
vector< int > * GetFiredStripVect ()
int GetFirstStripID ()
int GetFirstStripID ()
unsigned short GetGeoAddress ()
unsigned short GetGeoAddress ()
string GetGeoBin ()
string GetGeoBin ()
int GetID ()
int GetID ()
int GetLayer ()
int GetLayer ()
int GetPart ()
int GetPart ()
unsigned int GetPowerpcRecord ()
unsigned int GetPowerpcRecord ()
int GetSegment ()
int GetSegment ()
int GetStripOrder ()
int GetStripOrder ()
unsigned short GetVmeAddress ()
unsigned short GetVmeAddress ()
string GetVmeBin ()
string GetVmeBin ()
unsigned int GetVmeRecord ()
unsigned int GetVmeRecord ()
 MucFec (int id, int stripOrder, int part, int segment, int layer, int firstStripID, unsigned int vmeRecord, string chainName)
 MucFec (int id)
 MucFec (int id, int stripOrder, int part, int segment, int layer, int firstStripID, unsigned int vmeRecord, string chainName)
 MucFec (int id)
void SetChainName (string chainName)
void SetChainName (string chainName)
void SetData (unsigned short data)
void SetData (unsigned short data)
void SetFirstStripID (int firstStripID)
void SetFirstStripID (int firstStripID)
void SetLocation (int part, int segment, int layer)
void SetLocation (int part, int segment, int layer)
void SetStripOrder (int stripOrder)
void SetStripOrder (int stripOrder)
 ~MucFec ()
 ~MucFec ()

Private Member Functions

void DecodeData ()
void DecodeData ()
void DecodeVmeAddress ()
void DecodeVmeAddress ()
void EncodePowerpcRecord ()
void EncodePowerpcRecord ()
void Initialize ()
void Initialize ()
void SetFiredStripNumber ()
void SetFiredStripNumber ()
void SetFiredStripVect ()
void SetFiredStripVect ()

Private Attributes

string m_ChainName
unsigned short m_Data
int m_FecID
int m_FiredStripNumber
vector< int > m_FiredStripVect
int m_FirstStripID
unsigned short m_GeoAddress
int m_ID
int m_Layer
int m_Module
int m_Part
unsigned int m_PowerpcRecord
int m_Segment
int m_Socket
int m_StripOrder
unsigned short m_VmeAddress
unsigned int m_VmeRecord


Constructor & Destructor Documentation

MucFec::MucFec int  id  ) 
 

00019 {
00020         //cout << "MucFec:: Create FEC : " << id << endl;
00021 
00022         if( (id < 0) || (id > STRIP_NUM-1) )
00023   {
00024                 cout << "Initialize failure, check id!" << endl;
00025                 m_ID = 0;
00026         }
00027         else    m_ID = id;
00028         
00029         m_Part          = 0;
00030   m_Segment       = 0;
00031   m_Layer         = 0;
00032   m_FirstStripID  = 0;
00033   m_StripOrder    = DEFAULT_STRIP_ORDER;
00034         m_ChainName     = "NoName";
00035   m_VmeRecord     = 0;
00036 
00037         MucFec::Initialize();
00038 }

MucFec::MucFec int  id,
int  stripOrder,
int  part,
int  segment,
int  layer,
int  firstStripID,
unsigned int  vmeRecord,
string  chainName
 

00042 {
00043 //      cout << "MucFec:: Create FEC : " << endl;
00044 //      cout << "ID: " << id << "\tPart: " << part << "\tSegment: " << segment << "\tLayer: " << layer 
00045 //           << "\tfirstStripID: " << firstStripID << "\tvmeRecord: " << vmeRecord<<endl;
00046 
00047         // Check parameters     
00048         if( (id < 0) || (id > STRIP_NUM-1) ) 
00049         {
00050                 m_ID =  0; 
00051                 cout << "MucFec::Check id:\t" << id << "!" << endl;
00052         }else
00053         if( (stripOrder != 1) && (stripOrder != -1) )
00054         {
00055                 m_StripOrder = 0;
00056                 cout << "MucFec::Check stripOrder:\t" << stripOrder << "!" << endl;
00057         }else
00058         if( (part < 0) || ( part > PART_MAX-1) )
00059         {
00060                 m_Part =  0;
00061                 cout << "MucFec::Check part:\t" << part << "!" << endl;
00062         }else
00063         if( (segment < 0) || ( segment > ((part==BRID)?(B_SEG_NUM-1):(E_SEG_NUM-1)) ) )
00064         {
00065                 m_Segment =  0;
00066                 cout << "MucFec::Check segment:\t" << segment << "!" << endl;
00067         }else
00068         if( (layer <0) || ( layer > ((part==BRID)?(B_LAY_NUM-1):(E_LAY_NUM-1)) ) )
00069         {
00070                 m_Layer = 0;
00071                 cout << "MucFec::Check layer:\t" << layer << "!" << endl;
00072         }else
00073         if( sizeof(vmeRecord) < 4 )
00074         {
00075                 m_VmeRecord = 0;
00076                 cout << "MucFec::Check record:\t" << vmeRecord << "!" << endl;
00077         }else
00078         {
00079     m_ID            = id;
00080           m_StripOrder    = stripOrder;
00081                 m_Part                                  = part;
00082                 m_Segment                               = segment;
00083                 m_Layer                                 = layer;
00084                 m_FirstStripID  = firstStripID;
00085                 m_ChainName                     = chainName;
00086     m_VmeRecord     = vmeRecord;
00087         }
00088         
00089         MucFec::Initialize();   
00090 }

MucFec::~MucFec  )  [inline]
 

00045 { ; }

MucFec::MucFec int  id  ) 
 

MucFec::MucFec int  id,
int  stripOrder,
int  part,
int  segment,
int  layer,
int  firstStripID,
unsigned int  vmeRecord,
string  chainName
 

MucFec::~MucFec  )  [inline]
 

00045 { ; }


Member Function Documentation

void MucFec::DecodeData  )  [private]
 

void MucFec::DecodeData  )  [private]
 

00103 {
00104         m_Data = (unsigned short)m_VmeRecord;
00105 }       

int MucFec::DecodeFecID  )  [inline]
 

00065 { return m_FecID;                 }     

int MucFec::DecodeFecID  )  [inline]
 

00065 { return m_FecID;                 }     

int MucFec::DecodeModule  )  [inline]
 

00063 { return m_Module;              }

int MucFec::DecodeModule  )  [inline]
 

00063 { return m_Module;              }

int MucFec::DecodeSocket  )  [inline]
 

00064 { return m_Socket;              }

int MucFec::DecodeSocket  )  [inline]
 

00064 { return m_Socket;              }

void MucFec::DecodeVmeAddress  )  [private]
 

void MucFec::DecodeVmeAddress  )  [private]
 

00108 {
00109   m_VmeAddress = (unsigned short)(m_VmeRecord >> LENGTH);       // high 16 bits, 10 bits used
00110         m_Module     = (m_VmeAddress >> MODULE_BIT) & 0xF;      // 4 bits
00111         m_Socket     = (m_VmeAddress >> SOCKET_BIT) & 0x3;      // 2 bits
00112         m_FecID      = m_VmeAddress & 0xF;                      // 4 bits       
00113 }

void MucFec::EncodePowerpcRecord  )  [private]
 

void MucFec::EncodePowerpcRecord  )  [private]
 

00150 {       
00151         unsigned int address = ( (m_Part<<PART_BIT) | (m_Segment<<SEG_BIT) | (m_Layer<<LAY_BIT) | m_FirstStripID );
00152         m_GeoAddress = (unsigned short)address;
00153         m_PowerpcRecord = ( address << LENGTH ) | m_Data;
00154 }

string MucFec::GetBin unsigned short  record  ) 
 

string MucFec::GetBin unsigned int  record  ) 
 

string MucFec::GetBin unsigned short  record  ) 
 

00213 {
00214         const int SIZE = sizeof( unsigned short ) * 8;
00215 
00216   string Bin;
00217   unsigned short temp = 0;
00218   for(int i=0; i<SIZE; i++)
00219   {
00220         temp = record >> SIZE-i-1;
00221     Bin += ( temp & 1 ) ? "1" : "0";
00222   }
00223 
00224   return Bin;
00225 }

string MucFec::GetBin unsigned int  record  ) 
 

00198 {
00199         const int SIZE = sizeof( unsigned int ) * 8;
00200 
00201   string Bin;
00202   unsigned int temp = 0;
00203   for(int i=0; i<SIZE; i++)
00204   {
00205         temp = record >> SIZE-i-1;
00206     Bin += ( temp & 1 ) ? "1" : "0";
00207   }
00208 
00209   return Bin;
00210 }

string MucFec::GetChainName  )  [inline]
 

00059 { return m_ChainName;           }

string MucFec::GetChainName  )  [inline]
 

00059 { return m_ChainName;           }

unsigned short MucFec::GetData  )  [inline]
 

00052 { return m_Data;              }

unsigned short MucFec::GetData  )  [inline]
 

00052 { return m_Data;              }

string MucFec::GetDataBin  ) 
 

string MucFec::GetDataBin  ) 
 

00238 {
00239         return MucFec::GetBin( m_Data );
00240 }

int MucFec::GetFiredStripNumber  ) 
 

int MucFec::GetFiredStripNumber  ) 
 

00191 { return m_FiredStripNumber;    }

vector< int >* MucFec::GetFiredStripVect  ) 
 

vector< int > * MucFec::GetFiredStripVect  ) 
 

00195 { return &m_FiredStripVect;     }

int MucFec::GetFirstStripID  )  [inline]
 

00058 { return m_FirstStripID;        }

int MucFec::GetFirstStripID  )  [inline]
 

00058 { return m_FirstStripID;        }

unsigned short MucFec::GetGeoAddress  )  [inline]
 

00057 { return m_GeoAddress;  }

unsigned short MucFec::GetGeoAddress  )  [inline]
 

00057 { return m_GeoAddress;  }

string MucFec::GetGeoBin  ) 
 

string MucFec::GetGeoBin  ) 
 

00233 {
00234         return MucFec::GetBin( m_GeoAddress );
00235 }

int MucFec::GetID  )  [inline]
 

00048 { return m_ID;                }

int MucFec::GetID  )  [inline]
 

00048 { return m_ID;                }

int MucFec::GetLayer  )  [inline]
 

00056 { return m_Layer;       }

int MucFec::GetLayer  )  [inline]
 

00056 { return m_Layer;       }

int MucFec::GetPart  )  [inline]
 

00054 { return m_Part;                }

int MucFec::GetPart  )  [inline]
 

00054 { return m_Part;                }

unsigned int MucFec::GetPowerpcRecord  ) 
 

unsigned int MucFec::GetPowerpcRecord  ) 
 

00193 { return m_PowerpcRecord;       }

int MucFec::GetSegment  )  [inline]
 

00055 { return m_Segment; }

int MucFec::GetSegment  )  [inline]
 

00055 { return m_Segment; }

int MucFec::GetStripOrder  )  [inline]
 

00049 { return m_StripOrder;  }

int MucFec::GetStripOrder  )  [inline]
 

00049 { return m_StripOrder;  }

unsigned short MucFec::GetVmeAddress  )  [inline]
 

00051 { return m_VmeAddress;  }

unsigned short MucFec::GetVmeAddress  )  [inline]
 

00051 { return m_VmeAddress;  }

string MucFec::GetVmeBin  ) 
 

string MucFec::GetVmeBin  ) 
 

00228 {
00229         return MucFec::GetBin( m_VmeAddress );
00230 }

unsigned int MucFec::GetVmeRecord  )  [inline]
 

00050 { return m_VmeRecord;   } 

unsigned int MucFec::GetVmeRecord  )  [inline]
 

00050 { return m_VmeRecord;   } 

void MucFec::Initialize  )  [private]
 

void MucFec::Initialize  )  [private]
 

void MucFec::SetChainName string  chainName  ) 
 

void MucFec::SetChainName string  chainName  ) 
 

void MucFec::SetData unsigned short  data  ) 
 

void MucFec::SetData unsigned short  data  ) 
 

00180 {
00181         m_Data      = data;
00182         m_VmeRecord = (m_VmeRecord | m_Data);
00183         MucFec :: EncodePowerpcRecord();
00184         MucFec :: SetFiredStripNumber();
00185         MucFec :: SetFiredStripVect();
00186 }

void MucFec::SetFiredStripNumber  )  [private]
 

void MucFec::SetFiredStripNumber  )  [private]
 

00116 {
00117         m_FiredStripNumber = 0;
00118         for(int i=0; i<STRIP_NUM; i++)
00119         {
00120                 if( (m_Data>>i) & 1 ) 
00121                         m_FiredStripNumber++;
00122         }       
00123 }

void MucFec::SetFiredStripVect  )  [private]
 

void MucFec::SetFiredStripVect  )  [private]
 

00126 {
00127         m_FiredStripVect.clear();
00128         int tempID[STRIP_NUM];
00129         int tempFired=0;
00130 
00131   for(int i=0; i<STRIP_NUM; i++)
00132   {
00133         if( (m_Data>>i) & 1 )
00134     {
00135                 tempID[tempFired] = i;  
00136                         tempFired++;
00137                 }       
00138   }
00139         
00140         int stripID = 0;        
00141         for(int i=0; i<tempFired; i++)
00142         {
00143                 stripID = ((1 - m_StripOrder)/2) * (STRIP_NUM - 1) + (m_StripOrder * tempID[i]);
00144                 stripID += m_FirstStripID;
00145                 m_FiredStripVect.push_back( stripID );
00146         }       
00147 }

void MucFec::SetFirstStripID int  firstStripID  ) 
 

void MucFec::SetFirstStripID int  firstStripID  ) 
 

00173 {
00174         m_FirstStripID = firstStripID;
00175         MucFec :: EncodePowerpcRecord();
00176         MucFec :: SetFiredStripVect();
00177 }

void MucFec::SetLocation int  part,
int  segment,
int  layer
 

void MucFec::SetLocation int  part,
int  segment,
int  layer
 

00164 {
00165         m_Part = part;
00166         m_Segment = segment;
00167         m_Layer = layer;
00168 
00169         MucFec::Initialize();
00170 }

void MucFec::SetStripOrder int  stripOrder  ) 
 

void MucFec::SetStripOrder int  stripOrder  ) 
 

00157 {
00158         m_StripOrder = stripOrder;
00159         
00160         MucFec::SetFiredStripVect();    
00161 }


Member Data Documentation

string MucFec::m_ChainName [private]
 

unsigned short MucFec::m_Data [private]
 

int MucFec::m_FecID [private]
 

int MucFec::m_FiredStripNumber [private]
 

vector< int > MucFec::m_FiredStripVect [private]
 

int MucFec::m_FirstStripID [private]
 

unsigned short MucFec::m_GeoAddress [private]
 

int MucFec::m_ID [private]
 

int MucFec::m_Layer [private]
 

int MucFec::m_Module [private]
 

int MucFec::m_Part [private]
 

unsigned int MucFec::m_PowerpcRecord [private]
 

int MucFec::m_Segment [private]
 

int MucFec::m_Socket [private]
 

int MucFec::m_StripOrder [private]
 

unsigned short MucFec::m_VmeAddress [private]
 

unsigned int MucFec::m_VmeRecord [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:34:14 2011 for BOSS6.5.5 by  doxygen 1.3.9.1