00001 #include "GaudiKernel/MsgStream.h"
00002 #include "TreeEsTimeCalibDataCnv.h"
00003 #include "CalibData/EsTime/EsTimeCalibData.h"
00004 #include "CalibDataSvc/IInstrumentName.h"
00005 #include "CalibMySQLCnv/TreeAddress.h"
00006 #include "TFile.h"
00007 #include "TTree.h"
00008 #include "TDirectory.h"
00009 #include "TObject.h"
00010 #include "TBuffer.h"
00011
00012 #include "GaudiKernel/CnvFactory.h"
00013 #include "GaudiKernel/IOpaqueAddress.h"
00014 #include "GaudiKernel/DataObject.h"
00015 #include "GaudiKernel/IAddressCreator.h"
00016 #include "GaudiKernel/IDataProviderSvc.h"
00017 #include "GaudiKernel/IConversionSvc.h"
00018 #include "GaudiKernel/GenericAddress.h"
00019
00020 #include "CalibDataSvc/ICalibTreeSvc.h"
00021 #include "CalibDataSvc/ICalibMetaCnvSvc.h"
00022
00023
00024 #include "CalibData/CalibModel.h"
00025 using namespace CalibData;
00026
00027
00028
00029
00030
00031 TreeEsTimeCalibDataCnv::TreeEsTimeCalibDataCnv( ISvcLocator* svc) :
00032 TreeCalBaseCnv(svc, CLID_Calib_EsTimeCal) {
00033
00034 }
00035
00036
00037 const CLID& TreeEsTimeCalibDataCnv::objType() const {
00038 return CLID_Calib_EsTimeCal;
00039 }
00040
00041 const CLID& TreeEsTimeCalibDataCnv::classID() {
00042 return CLID_Calib_EsTimeCal;
00043 }
00044
00045 StatusCode TreeEsTimeCalibDataCnv::i_createObj(IOpaqueAddress* addr,
00046 DataObject*& refpObject) {
00047
00048 MsgStream log(msgSvc(), "TreeEsTimeCalibDataCnv");
00049 log<<MSG::DEBUG<<"SetProperty"<<endreq;
00050 TreeAddress* add = dynamic_cast<TreeAddress*>(addr);
00051 DatabaseRecord *records=add->pp();
00052
00053 TBufferFile *buf1 = new TBufferFile(TBuffer::kRead);
00054 TBufferFile *buf2 = new TBufferFile(TBuffer::kRead);
00055 buf1->SetBuffer((*records)["EsTimeH2"],512000,kFALSE);
00056 buf2->SetBuffer((*records)["EsTimeH9"],512000,kFALSE);
00057
00058 std::cout<<" SftVer is "<<(*records)["SftVer"];
00059 std::cout<<" CalVerSft is "<<(*records)["CalParVer"];
00060 std::cout<<" File name is "<<(*records)["FileName"]<<std::endl;
00061
00062 TTree* Testtree= new TTree();
00063
00064 Testtree->Streamer(*buf1);
00065 TTree* tree2= new TTree();
00066 tree2->Streamer(*buf2);
00067
00068 CalibData::EsTimeCalibData *tmpObject = new CalibData::EsTimeCalibData ;
00069
00070 int i;
00071
00072
00073 double EsTimeCalibConst;
00074 vector<double> TestCalibConst;
00075 Testtree -> SetBranchAddress("meant0", &EsTimeCalibConst);
00076 int no= Testtree -> GetEntries();
00077 for(i=0; i<no; i++){
00078 Testtree->GetEntry(i);
00079 TestCalibConst.push_back(EsTimeCalibConst);
00080 }
00081 tmpObject -> setTestCalibConst(&TestCalibConst);
00082
00083 double t0offsete,t0offsetb;
00084 int bunchtime;
00085 tree2->SetBranchAddress("t0offsete", &t0offsete);
00086 tree2->SetBranchAddress("t0offsetb", &t0offsetb);
00087 tree2->SetBranchAddress("bunchtime", &bunchtime);
00088 tree2->GetEntry(0);
00089 tmpObject ->setToffsetb(t0offsetb);
00090 tmpObject ->setToffsete(t0offsete);
00091 tmpObject ->setBunchTime(bunchtime);
00092 refpObject=tmpObject;
00093
00094 delete Testtree;
00095 delete tree2;
00096 return StatusCode::SUCCESS;
00097
00098
00099 }
00100