00001 #include "GaudiKernel/MsgStream.h"
00002 #include "RootEsTimeCalibDataCnv.h"
00003 #include "CalibData/EsTime/EsTimeCalibData.h"
00004 #include "CalibDataSvc/IInstrumentName.h"
00005
00006 #include "TFile.h"
00007 #include "TTree.h"
00008 #include "TDirectory.h"
00009 #include "TObject.h"
00010
00011 #include "GaudiKernel/CnvFactory.h"
00012 #include "GaudiKernel/IOpaqueAddress.h"
00013 #include "GaudiKernel/DataObject.h"
00014 #include "GaudiKernel/IAddressCreator.h"
00015 #include "GaudiKernel/IDataProviderSvc.h"
00016 #include "GaudiKernel/IConversionSvc.h"
00017 #include "GaudiKernel/GenericAddress.h"
00018
00019 #include "CalibDataSvc/ICalibRootSvc.h"
00020 #include "CalibDataSvc/ICalibMetaCnvSvc.h"
00021
00022
00023 #include "CalibData/CalibModel.h"
00024 using namespace CalibData;
00025
00026
00027
00028
00029
00030 RootEsTimeCalibDataCnv::RootEsTimeCalibDataCnv( ISvcLocator* svc) :
00031 RootCalBaseCnv(svc, CLID_Calib_EsTimeCal) {
00032
00033 }
00034
00035
00036 const CLID& RootEsTimeCalibDataCnv::objType() const {
00037 return CLID_Calib_EsTimeCal;
00038 }
00039
00040 const CLID& RootEsTimeCalibDataCnv::classID() {
00041 return CLID_Calib_EsTimeCal;
00042 }
00043
00044 StatusCode RootEsTimeCalibDataCnv::i_createObj(const std::string& fname,
00045 DataObject*& refpObject) {
00046
00047 MsgStream log(msgSvc(), "RootEsTimeCalibDataCnv");
00048 log<<MSG::DEBUG<<"SetProperty"<<endreq;
00049
00050 StatusCode sc = openRead(fname);
00051 if(!sc)
00052 { log<<MSG::ERROR<<"unable to open files"<<endreq;
00053 }
00054
00055 CalibData::EsTimeCalibData *tmpObject = new CalibData::EsTimeCalibData ;
00056
00057 int i;
00058 int nentries;
00059
00060
00061 double EsTimeCalibConst;
00062 vector<double> TestCalibConst;
00063 TTree *Testtree = (TTree*)m_inFile -> Get("h2");
00064 Testtree -> SetBranchAddress("meant0", &EsTimeCalibConst);
00065 int no= Testtree -> GetEntries();
00066 for(i=0; i<no; i++){
00067 Testtree->GetEntry(i);
00068 TestCalibConst.push_back(EsTimeCalibConst);
00069 }
00070
00071 double t0offsete,t0offsetb;
00072 int bunchtime;
00073 TTree *tree2 = (TTree*)m_inFile -> Get("calibconst");
00074 tree2->SetBranchAddress("t0offsete", &t0offsete);
00075 tree2->SetBranchAddress("t0offsetb", &t0offsetb);
00076 tree2->SetBranchAddress("bunchtime", &bunchtime);
00077 tree2->GetEntry(0);
00078 tmpObject ->setToffsetb(t0offsetb);
00079 tmpObject ->setToffsete(t0offsete);
00080 tmpObject ->setBunchTime(bunchtime);
00081
00082 tmpObject -> setTestCalibConst(&TestCalibConst);
00083
00084 refpObject=tmpObject;
00085
00086 return StatusCode::SUCCESS;
00087 }
00088
00089 StatusCode RootEsTimeCalibDataCnv::createRoot(const std::string& fname,
00090 CalibData::CalibBase1* pTDSObj) {
00091
00092 MsgStream log(msgSvc(), "RootEsTimeCalibDataCnv");
00093
00094
00095 StatusCode sc = openWrite(fname);
00096 if(!sc)
00097 { log<<MSG::ERROR<<"unable to open files"<<endreq;
00098 }
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121 log<<MSG::INFO<<"successfully create RootFile"<<endreq;
00122 return sc;
00123
00124 }