/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Calibration/CalibData/CalibData-00-01-18/CalibData/Muc/MucCalibData.h

Go to the documentation of this file.
00001 #ifndef CalibData_Muc_MucCalibData_h
00002 #define CalibData_Muc_MucCalibData_h
00003 
00004 /* @class CalibData_MucCalibData_h
00005 
00006   calibration data class  
00007   calibration infrastructure
00008 
00009   @author ChunXiu Liu
00010 */
00011 #include "CalibData/Muc/MucCalibConst.h"
00012 #include "CalibData/CalibModel.h"
00013 #include "CalibData/CalibBase1.h"
00014 #include <vector>
00015 #include <cmath>
00016 
00017 using namespace std;
00018 
00019 namespace CalibData {
00020   class MucCalibData:  public CalibBase1{
00021     
00022   public:
00023     MucCalibData();
00024     virtual ~MucCalibData(){}
00025     
00026     // Re-implemented from DataObject
00027     inline virtual const CLID& clID() const { return classID(); } 
00028     
00029     inline static  const CLID& classID() { return CLID_Calib_MucCal; }
00030     
00031     virtual StatusCode   update(CalibBase1& other, MsgStream* log);
00032      
00033  //   int setDefault();                         // set default uniform constants value
00034 
00035         //--------- Access by users -------------
00036     inline double getUniformEff()  const { return m_uniformEff;}
00037     inline double getUniformNos()  const { return m_uniformNos;}
00038     inline double getUniformClst() const { return m_uniformClst;} // probability = 1(biggest strip window for tracking)
00039     inline double getUniformCnt() const {return m_uniformCnt;}
00040     inline double getUniformNosRatio() const{return m_uniformNosRatio;}
00041 
00042     inline double getLayerEff( int layer ) const { return m_layerEff[layer];} 
00043     inline double getLayerNos( int layer ) const {return m_layerNos[layer];}
00044     inline double getLayerNosRatio( int layer ) const{return m_layerNosRatio[layer];}
00045     inline double getLayerCnt( int layer ) const{return m_layerCnt[layer];}
00046     inline double getLayerClstPro( int layer, int size ) const{ return m_layerClstPro[layer][size]; } 
00047     inline double getLayerClst( int layer, double prob ) const{
00048         double  diff = 2.0;
00049         int     size = 0;
00050         for(int i=0; i<CLST_MAX; i++)
00051         {               
00052                 if( fabs(prob - m_layerClstPro[layer][i] ) < diff ) {
00053                   diff = fabs(prob - m_layerClstPro[layer][i]);
00054                   size = i+1;
00055                 }
00056         }
00057         return size;
00058 }
00059 
00060     inline double getBoxEff( int part, int segment, int layer ) const{  return m_boxEff[part][segment][layer];}
00061     inline double getBoxNos( int part, int segment, int layer ) const{  return m_boxNos[part][segment][layer];}
00062     inline double getBoxCnt( int part, int segment, int layer ) const{ return m_boxCnt[part][segment][layer];}
00063     inline double getBoxNosRatio( int part, int segment, int layer ) const{return m_boxNosRatio[part][segment][layer];}
00064     inline double getBoxClstPro( int part, int segment, int layer, int size ) const{ return m_boxClstPro[part][segment][layer][size]; }
00065     inline double getBoxClst( int part, int segment, int layer, double prob ) const{
00066         double  diff = 2.0;
00067         int     size = 0;
00068         for(int i=0; i<CLST_MAX; i++)
00069         {       
00070                 if( fabs(prob - m_boxClstPro[part][segment][layer][i]) < diff ) {
00071                   diff = fabs(prob - m_boxClstPro[part][segment][layer][i]);
00072                   size = i+1;
00073                 }  
00074         }
00075         return size;
00076 }
00077 
00078     inline double getStripEff( int part, int segment, int layer, int strip ) const{ return m_stripEff[part][segment][layer][strip];}
00079     inline double getStripNos( int part, int segment, int layer, int strip ) const{ return m_stripNos[part][segment][layer][strip];}
00080     inline double getStripCnt( int part, int segment, int layer, int strip ) const{ return m_stripCnt[part][segment][layer][strip];}
00081     inline double getStripNosRatio( int part, int segment, int layer, int strip ) const{ return m_stripNosRatio[part][segment][layer][strip];}
00082 
00083    // set uniform constants for all detector units manually
00084     void setUniformEff( double eff ) {m_uniformEff=eff;}  
00085     void setUniformNos( double nos ) {m_uniformNos=nos;} 
00086     void setUniformClst( double clst ) {m_uniformClst=clst;}    
00087     void setUniformCnt( double cnt ){m_uniformCnt=cnt;}
00088     void setUniformNosRatio(double nosratio){m_uniformNosRatio=nosratio;}
00089 
00090   //set value
00091    void setLayerEff(const double layereff,int i){ m_layerEff[i]=layereff;}
00092    void setLayerNos(const double layernos,int i){ m_layerNos[i]=layernos;}
00093    void setLayerCnt(const double layercnt,int i){ m_layerCnt[i]=layercnt;}
00094    void setLayerNosRatio(const double layernosratio,int i){ m_layerNosRatio[i]=layernosratio;}
00095    void setLayerClstPro(const double layerpro,int i,int j){m_layerClstPro[i][j]= layerpro;}
00096 
00097    void setBoxEff(const double boxeff,int i,int j, int k){m_boxEff[i][j][k] = boxeff;}
00098    void setBoxNos(const double boxnos,int i,int j, int k){m_boxNos[i][j][k] = boxnos;}
00099    void setBoxCnt(const double boxcnt,int i,int j, int k){m_boxCnt[i][j][k] = boxcnt;}
00100    void setBoxNosRatio(const double boxratio,int i,int j, int k){m_boxNosRatio[i][j][k]=boxratio;}
00101    void setBoxClstPro(const double boxpro,int i,int j,int k,int l){m_boxClstPro[i][j][k][l]=boxpro;}
00102 
00103    void setStripEff(const double stripeff,int i,int j,int k,int l){m_stripEff[i][j][k][l]=stripeff;}
00104    void setStripNos(const double stripnos,int i,int j,int k,int l){m_stripNos[i][j][k][l]=stripnos;}
00105    void setStripCnt(const double stripcnt,int i,int j,int k,int l){m_stripCnt[i][j][k][l]=stripcnt;}
00106    void setStripNosRatio(const double stripnosratio,int i,int j,int k,int l){m_stripNosRatio[i][j][k][l]=stripnosratio;}
00107 
00108   private:
00109  //       MucIdTransform* m_ptrIdTr;
00110 
00111         double m_uniformEff;
00112         double m_uniformNos;
00113         double m_uniformClst;
00114         double m_uniformCnt;
00115         double m_uniformNosRatio;
00116 //      double m_average[3][3];
00117 
00118         double m_layerEff[LAYER_MAX];   
00119         double m_layerNos[LAYER_MAX];
00120         double m_layerClstPro[LAYER_MAX][CLST_MAX];
00121         double m_layerCnt[LAYER_MAX];
00122         double m_layerNosRatio[LAYER_MAX];
00123 
00124         double m_boxEff[PART_MAX][SEGMENT_MAX][LAYER_MAX];
00125         double m_boxNos[PART_MAX][SEGMENT_MAX][LAYER_MAX];
00126         double m_boxClstPro[PART_MAX][SEGMENT_MAX][LAYER_MAX][CLST_MAX];
00127         double m_boxCnt[PART_MAX][SEGMENT_MAX][LAYER_MAX];
00128         double m_boxNosRatio[PART_MAX][SEGMENT_MAX][LAYER_MAX];
00129 
00130         double m_stripEff[PART_MAX][SEGMENT_MAX][LAYER_MAX][STRIP_INBOX_MAX];
00131         double m_stripNos[PART_MAX][SEGMENT_MAX][LAYER_MAX][STRIP_INBOX_MAX];
00132         double m_stripCnt[PART_MAX][SEGMENT_MAX][LAYER_MAX][STRIP_INBOX_MAX];
00133         double m_stripNosRatio[PART_MAX][SEGMENT_MAX][LAYER_MAX][STRIP_INBOX_MAX];
00134   };
00135 }
00136 
00137 
00138 #endif //CalibData_MucCalibData_h

Generated on Tue Nov 29 22:57:48 2016 for BOSS_7.0.2 by  doxygen 1.4.7