00001
00002 #ifndef CalibData_DedxCalibData_h
00003 #define CalibData_DedxCalibData_h
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "CalibData/CalibModel.h"
00014 #include "CalibData/CalibBase1.h"
00015 #include <vector>
00016 using namespace std;
00017 namespace CalibData {
00018 class DedxCalibData: public CalibBase1{
00019
00020 public:
00021 DedxCalibData(){};
00022
00023 virtual ~DedxCalibData() {
00024 }
00025
00026
00027 inline virtual const CLID& clID() const { return classID(); }
00028
00029 inline static const CLID& classID() { return CLID_Calib_DedxCal; }
00030
00031 virtual StatusCode update(CalibBase1& other, MsgStream* log);
00032
00033
00034
00035 void setddg(const double ddg,int i,int j);
00036
00037 void setggs(const double ggs,int i,int j);
00038
00039 void setwireg(const double wireg,int i);
00040
00041 void setgain(const double gain);
00042
00043 void setzdep(const double zdep,int i,int j);
00044
00045 void setresol(const double resol);
00046
00047 void setlayerg(const double layerg,int i);
00048
00049 void setenta(const double enta,int i,int j);
00050
00051 void setrunNO(const int run_NO);
00052 void setrung(const double rung,int i,int j);
00053
00054
00055
00056 double getddg(int i,int j) const{return m_ddg[i][j];}
00057
00058 double getggs(int i,int j) const{return m_ggs[i][j];}
00059
00060 double getwireg(int i) const{return m_wireg[i];}
00061
00062 double getgain() const {return m_gain;}
00063
00064 double getzdep(int i,int j) const{return m_zdep[i][j];}
00065
00066 double getresol() const {return m_resol;}
00067
00068 double getlayerg(int i) const{return m_layerg[i];}
00069
00070 double getenta(int i,int j) const{return m_enta[i][j];}
00071
00072 int getrunNO() const {return m_runNO; }
00073 double getrung(int i,int j) const{
00074 if(j>=m_runNO) return 0;
00075 if(i==0) return *(m_rung1.begin()+j);
00076 if(i==1) return *(m_rung2.begin()+j);
00077 if(i==2) return *(m_rung3.begin()+j);
00078 if(i==3) return *(m_rung4.begin()+j);};
00079
00080 double get_id_doca(int i) const{return m_id_doca[i];}
00081 double get_iner_chi(int i) const{return m_iner_chi[i];}
00082 double get_iner_gain(int i) const{return m_iner_gain[i];}
00083 double get_iner_hits(int i) const{return m_iner_hits[i];}
00084 double get_ip_eangle(int i) const{return m_ip_eangle[i];}
00085 double get_out_chi(int i) const{return m_out_chi[i];}
00086 double get_out_gain(int i) const{return m_out_gain[i];}
00087 double get_out_hits(int i) const{return m_out_hits[i];}
00088 double get_costheta(int i) const{return m_costheta[i];}
00089 double get_t0(int i) const{return m_t0[i];}
00090 double get_dedx(int i) const{return m_dedx[i];}
00091 double get_hadron(int i) const{return m_hadron[i];}
00092 int get_hadronNo() const{return m_hadronNo;}
00093 int get_enanglesize() const{return m_enanglesize;}
00094 double get_enangle(int i) const{return m_enangle[i];}
00095
00096 void set_id_doca(const double aa,int i) { m_id_doca[i]=aa;}
00097 void set_iner_chi(const double aa,int i) { m_iner_chi[i]=aa;}
00098 void set_iner_gain(const double aa,int i) { m_iner_gain[i]=aa;}
00099 void set_iner_hits(const double aa,int i) { m_iner_hits[i]=aa;}
00100 void set_ip_eangle(const double aa,int i) { m_ip_eangle[i]=aa;}
00101 void set_out_chi(const double aa,int i) { m_out_chi[i]=aa;}
00102 void set_out_gain(const double aa,int i) { m_out_gain[i]=aa;}
00103 void set_out_hits(const double aa,int i) { m_out_hits[i]=aa;}
00104 void set_costheta(const double aa,int i) { m_costheta[i]=aa;}
00105 void set_t0(const double aa,int i) { m_t0[i]=aa;}
00106 void set_dedx(const double aa,int i) {m_dedx[i]=aa;}
00107 void set_hadron(const double aa,int i) {m_hadron[i]=aa;}
00108 void set_hadronNo(int no){m_hadronNo=no;}
00109 void set_enanglesize(int no){m_enanglesize=no;}
00110 void set_enangle(const double aa,int i) {m_enangle[i]=aa;}
00111
00112 private:
00113 int m_runNO;
00114
00115 double m_ddg[4][43];
00116 double m_ggs[4][43];
00117 double m_wireg[6796];
00118 double m_gain;
00119 double m_zdep[4][43];
00120 double m_resol;
00121 double m_layerg[43];
00122 double m_enta[4][43];
00123
00124 vector<double> m_rung1;
00125 vector<double> m_rung2;
00126 vector<double> m_rung3;
00127 vector<double> m_rung4;
00128
00129
00130
00131 double m_id_doca[1600];
00132 double m_iner_chi[1600];
00133 double m_iner_gain[1600];
00134 double m_iner_hits[1600];
00135 double m_ip_eangle[1600];
00136 double m_out_chi[1600];
00137 double m_out_gain[1600];
00138 double m_out_hits[1600];
00139 double m_costheta[80];
00140 double m_t0[35];
00141 double m_dedx[35];
00142 double m_hadron[20];
00143 double m_enangle[100];
00144 int m_hadronNo;
00145 int m_enanglesize;
00146 };
00147 }
00148
00149
00150 #endif