00001 //------------------------------------------------------------------------------| 00002 // [File ]: MucPadChain.h | 00003 // [Brief ]: Head file of class MucPadChain for MUC calibration | 00004 // [Author]: Xie Yuguang, <ygxie@mail.ihep.ac.cn> | 00005 // [Date ]: May 25, 2006 | 00006 // [Log ]: See ChangLog | 00007 //------------------------------------------------------------------------------| 00008 00009 #ifndef MUC_PAD_CHAIN_H 00010 #define MUC_PAD_CHAIN_H 00011 00012 #include<iostream> 00013 00014 class MucPadChain { 00015 00016 public: 00017 MucPadChain( int padNumber ); 00018 MucPadChain( int padNumber, double padWidth ); 00019 MucPadChain( int padNumber, double padWidth, double aveEff ); 00020 MucPadChain( int part, int segment, int layer, int strip, int padNumber ); 00021 00022 MucPadChain& operator=( const MucPadChain& ); 00023 00024 double GetEff( int padID ); 00025 double GetAvaEff(); 00026 int GetSize(); 00027 int GetHit(); 00028 int GetHit( int padID ); 00029 int GetTrack(); 00030 int GetTrack( int padID ); 00031 bool IsEmpty(); 00032 00033 00034 void AddHit( int padID ); 00035 void AddTrack( int padID ); 00036 void SetEff(); 00037 void SetEff( int padID, double eff ); 00038 void SetSize( int size ); 00039 void SetPadWidth( double width ); 00040 void SetDeathFlag( int padID ); 00041 void SetFiredFlag( int padID ); 00042 00043 private: 00044 00045 static const int m_MaxSize = 500; 00046 static const int m_MaxWidth = 100; 00047 static const int m_DeathFlag = -1; 00048 int m_Size; 00049 int m_PadWidth; 00050 00051 vector< int > m_Hit; 00052 vector< int > m_Track; 00053 vector< double> m_Eff; 00054 } 00055 00056 #endif 00057