00001
00002 #ifndef CalibData_TofCalibData_h
00003 #define CalibData_TofCalibData_h
00004
00005 #include "GaudiKernel/DataObject.h"
00006 #include "CalibData/CalibModel.h"
00007 #include "CalibData/CalibBase1.h"
00008 #include "CalibData/Tof/bTofCalibBase.h"
00009 #include "CalibData/Tof/bTofCommonCalibBase.h"
00010 #include "CalibData/Tof/eTofCalibBase.h"
00011 #include "CalibData/Tof/etfCalibBase.h"
00012 #include "CalibData/Tof/etfBunchCalibBase.h"
00013 #include "CalibData/Tof/tofCalibInfoBase.h"
00014
00015 namespace CalibData {
00016 class TofCalibData: public CalibBase1{
00017
00018 public:
00019 TofCalibData(){};
00020 TofCalibData(std::vector<bTofCalibBase>* bTofCal,std::vector<bTofCommonCalibBase>* bTofComCal,std::vector<eTofCalibBase>* eTofCal,std::vector<etfCalibBase>* etfCal,std::vector<etfBunchCalibBase>* etfBunchCal,std::vector<tofCalibInfoBase>* tofInfoCal);
00021 TofCalibData(std::vector<bTofCalibBase>* bTofCal,std::vector<bTofCommonCalibBase>* bTofComCal,std::vector<eTofCalibBase>* eTofCal,std::vector<etfCalibBase>* etfCal,std::vector<tofCalibInfoBase>* tofInfoCal);
00022 TofCalibData(std::vector<bTofCalibBase>* bTofCal,std::vector<bTofCommonCalibBase>* bTofComCal,std::vector<eTofCalibBase>* eTofCal,std::vector<tofCalibInfoBase>* tofInfoCal);
00023
00024 virtual ~TofCalibData() {
00025 delete m_bTofCalibData;
00026 delete m_bTofCommonCalibData;
00027 delete m_eTofCalibData;
00028 if( m_etfCalibData ) { delete m_etfCalibData; }
00029 if( m_etfBunchCalibData ) { delete m_etfBunchCalibData; }
00030 delete m_tofCalibInfoData;
00031 }
00032
00033
00034 inline virtual const CLID& clID() const { return classID(); }
00035
00036 inline static const CLID& classID() { return CLID_Calib_TofCal; }
00037
00038 virtual StatusCode update(CalibBase1& other, MsgStream* log);
00039
00040 bool hasEtf() { return m_hasEtf; }
00041
00042
00043 bTofCalibBase getBTof(int cnt) const;
00044 double getBTofAtten(int index,int pardex);
00045 double getBTofSpeed(int index,int pardex);
00046
00047 double getBTofPleft(int index,int pardex);
00048 double getBTofPright(int index,int pardex);
00049
00050 double getBTofPoffleft_bunch0(int index,int pardex);
00051 double getBTofPoffright_bunch0(int index,int pardex);
00052 double getBTofPoffleft_bunch1(int index,int pardex);
00053 double getBTofPoffright_bunch1(int index,int pardex);
00054 double getBTofPoffleft_bunch2(int index,int pardex);
00055 double getBTofPoffright_bunch2(int index,int pardex);
00056 double getBTofPoffleft_bunch3(int index,int pardex);
00057 double getBTofPoffright_bunch3(int index,int pardex);
00058
00059 double getBTofFleft(int index,int pardex);
00060 double getBTofFright(int index,int pardex);
00061 double getBTofFcounter(int index,int pardex);
00062
00063 bTofCommonCalibBase getBTofCom() const;
00064 double getBTofOffset(int pardex);
00065 double getBTofSigmaCorr(int pardex);
00066
00067 eTofCalibBase getETof(int cnt) const;
00068 double getETofAtten(int index,int pardex);
00069 double getETofSpeed(int index,int pardex);
00070 double getETofP(int index,int pardex);
00071 double getETofFP(int index,int pardex);
00072
00073 etfCalibBase getEtf(int cnt, int strip) const;
00074 double getEtfSpeed(int index,int strip,int pardex);
00075 double getEtfPcombine(int index,int strip,int pardex);
00076 double getEtfPleft(int index,int strip,int pardex);
00077 double getEtfPright(int index,int strip,int pardex);
00078
00079 etfBunchCalibBase getEtfBunch() const;
00080 double getEtfPBunch(int pardex);
00081
00082 tofCalibInfoBase getTofInfo() const;
00083 int getRunBegin();
00084 int getRunEnd();
00085 int getVersion();
00086
00087 int getQCorr();
00088 int getQElec();
00089 int getMisLable();
00090
00091 int getBrEast(int index);
00092 int getBrWest(int index);
00093 int getEndcap(int index);
00094 int getEtf(int index);
00095
00096 private:
00097 bool m_hasEtf, m_hasEtfBunch;
00098 std::vector<bTofCalibBase>* m_bTofCalibData;
00099 std::vector<bTofCommonCalibBase>* m_bTofCommonCalibData;
00100 std::vector<eTofCalibBase>* m_eTofCalibData;
00101 std::vector<etfCalibBase>* m_etfCalibData;
00102 std::vector<etfBunchCalibBase>* m_etfBunchCalibData;
00103 std::vector<tofCalibInfoBase>* m_tofCalibInfoData;
00104 };
00105 }
00106
00107
00108 #endif