/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Calibration/CalibSvc/CalibTreeCnv/CalibTreeCnv-00-01-18/src/cnv/TreeEsTimeCalibDataCnv.cxx

Go to the documentation of this file.
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"    //maybe
00021 #include "CalibDataSvc/ICalibMetaCnvSvc.h"
00022 
00023 // Temporary.  Hope to find a better way to do this
00024 #include "CalibData/CalibModel.h"
00025 using namespace CalibData;
00026 //static CnvFactory<TreeEsTimeCalibDataCnv> EsTimeCal_factory;
00027 //const  ICnvFactory& TreeEsTimeCalibDataCnvFactory = EsTimeCal_factory;
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         // Read in our object
00070         int i;
00071 
00072         // read TestCalibConst ------------------------------------------------------------
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 

Generated on Tue Nov 29 22:57:52 2016 for BOSS_7.0.2 by  doxygen 1.4.7