00001
00002
00003 #ifndef EsTTOFCALISVC_H
00004 #define EsTTOFCALISVC_H
00005
00006 #include <iostream>
00007 #include <ios>
00008 #include <vector>
00009
00010 #include "EstTofCaliSvc/BTofCal.h"
00011 #include "EstTofCaliSvc/ETofCal.h"
00012 #include "EstTofCaliSvc/EtfCal.h"
00013 #include "EstTofCaliSvc/BTofCommonCal.h"
00014
00015 #include "GaudiKernel/Service.h"
00016 #include "GaudiKernel/IInterface.h"
00017 #include "GaudiKernel/Property.h"
00018 #include "EstTofCaliSvc/IEstTofCaliSvc.h"
00019 #include "GaudiKernel/IIncidentListener.h"
00020 #include "GaudiKernel/IDataProviderSvc.h"
00021
00022 class EstTofCaliSvc : public Service, virtual public IEstTofCaliSvc,virtual public IIncidentListener
00023 {
00024 public:
00025
00026 EstTofCaliSvc( const std::string& name, ISvcLocator* svcloc );
00027 ~EstTofCaliSvc();
00028
00029 virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvUnknown);
00030 virtual StatusCode initialize ( );
00031 virtual StatusCode finalize ( );
00032 void handle(const Incident&);
00033
00034
00035 BTofCal* BTof(unsigned id) const;
00036 BTofCommonCal* BTofCommon() const;
00037 ETofCal* ETof(unsigned id) const;
00038 EtfCal* EtfTof(unsigned int id) const;
00039
00040 const double BTCorr1(double ADC,double zHit,unsigned int id);
00041 const double BTCorr2(double ADC,double zHit,unsigned int id);
00042
00043
00044 const double TOffset();
00045 const double BTime1(double ADC,double TDC,double zHit,unsigned id);
00046 const double BTime2(double ADC,double TDC,double zHit,unsigned id);
00047 const double ETime(double ADC,double TDC,double rHit,unsigned int id);
00048 const double EtfTime(double ADC1,double ADC2, double TDC1, double TDC2,unsigned int id, unsigned int strip);
00049 const double EtfTime1(double ADC,double TDC,double zHit,unsigned int id, unsigned int strip);
00050 const double EtfTime2(double ADC,double TDC,double zHit,unsigned int id, unsigned int strip);
00051 const double EtfTime(double TDC1, double TDC2,unsigned int id, unsigned int strip);
00052 const bool ValidInfo(){return m_st;};
00053 void Dump();
00054 private:
00055 StatusCode FillfromDatabase();
00056 bool m_hasbeeninitialized;
00057
00058 private:
00059 IDataProviderSvc* m_pCalibDataSvc;
00060 IntegerProperty m_run;
00061 std::vector<BTofCal*> fBTofCal;
00062 std::vector<ETofCal*> fETofCal;
00063 std::vector<EtfCal*> fEtfCal;
00064 std::vector<BTofCommonCal*> fBTofCommonCal;
00065
00066 bool m_st;
00067 };
00068
00069 #endif