00001 #ifndef MDCCALIBCONST_H
00002 #define MDCCALIBCONST_H
00003
00004 #include <map>
00005 #include <vector>
00006
00007 class MdcCalibConst {
00008
00009 public:
00010 MdcCalibConst();
00011 MdcCalibConst(const MdcCalibConst& calconst);
00012
00013 void fillXtpar(int key, double val);
00014 void resetXtpar(int lay, int entr, int lr, int order, double val);
00015 int getXtSize() const { return m_xtmap.size(); }
00016 void setXtBegin();
00017 int getNextXtpar(int& key, double& xtpar);
00018 double getXtpar(int lay, int entr, int lr, int order);
00019 int getXtKey(int lay, int entr, int lr, int order) const;
00020
00021 void fillT0(double val) { m_t0.push_back( val ); }
00022 void fillDelT0(double val) { m_delt0.push_back( val ); }
00023 void resetT0(int wireid, double val) { m_t0[wireid] = val; }
00024 void resetDelT0(int wireid, double val) { m_delt0[wireid] = val; }
00025 double getT0(int wireid) const { return m_t0[wireid]; }
00026 double getDelT0(int wireid) const { return m_delt0[wireid]; }
00027 int getT0Size() const { return m_t0.size(); }
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 void fillQtpar(int order, double val);
00038 void fillQtpar0(double val) { m_qtpar0.push_back( val ); }
00039 void fillQtpar1(double val) { m_qtpar1.push_back( val ); }
00040 void resetQtpar(int lay, int order, double val);
00041 void resetQtpar0(int lay, double val) { m_qtpar0[lay] = val; }
00042 void resetQtpar1(int lay, double val) { m_qtpar1[lay] = val; }
00043 double getQtpar(int lay, int order) const;
00044 double getQtpar0(int lay) const { return m_qtpar0[lay]; }
00045 double getQtpar1(int lay) const { return m_qtpar1[lay]; }
00046 int getQtSize() const { return m_qtpar0.size(); }
00047
00048 void fillSdpar(int key, double val);
00049 void resetSdpar(int lay, int entr, int lr, int bin, double val);
00050 int getSdSize() const { return m_sdmap.size(); }
00051 void setSdBegin();
00052 int getNextSdpar(int& key, double& sdpar);
00053 double getSdpar(int lay, int entr, int lr, int bin);
00054 int getSdKey(int lay, int entr, int lr, int bin) const;
00055
00056 void clear();
00057
00058 private:
00059 std::map<int, double> m_xtmap;
00060 std::vector<double> m_t0;
00061 std::vector<double> m_delt0;
00062
00063
00064 std::vector<double> m_qtpar0;
00065 std::vector<double> m_qtpar1;
00066 std::map<int, double> m_sdmap;
00067
00068 std::map<int, double>::iterator m_xtiter;
00069 std::map<int, double>::iterator m_sditer;
00070
00071 static const int XTLAYER_INDEX = 11;
00072 static const int XTLAYER_MASK = 0x1F800;
00073
00074 static const int XTENTRA_INDEX = 6;
00075 static const int XTENTRA_MASK = 0x7C0;
00076
00077 static const int XTLR_INDEX = 4;
00078 static const int XTLR_MASK = 0x30;
00079
00080 static const int XTORDER_INDEX = 0;
00081 static const int XTORDER_MASK = 0xF;
00082
00083
00084 static const int SDLAYER_INDEX = 10;
00085 static const int SDLAYER_MASK = 0xFC00;
00086
00087 static const int SDENTRA_INDEX = 7;
00088 static const int SDENTRA_MASK = 0x380;
00089
00090 static const int SDLR_INDEX = 5;
00091 static const int SDLR_MASK = 0x60;
00092
00093 static const int SDBIN_INDEX = 0;
00094 static const int SDBIN_MASK = 0x1F;
00095 };
00096
00097 #endif