/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Calibration/CalibSvc/CalibROOTCnv/CalibROOTCnv-00-01-13/src/cnv/RootEsTimeCalibDataCnv.cxx

Go to the documentation of this file.
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"    //maybe
00020 #include "CalibDataSvc/ICalibMetaCnvSvc.h"
00021 
00022 // Temporary.  Hope to find a better way to do this
00023 #include "CalibData/CalibModel.h"
00024 using namespace CalibData;
00025 //static CnvFactory<RootEsTimeCalibDataCnv> EsTimeCal_factory;
00026 //const  ICnvFactory& RootEsTimeCalibDataCnvFactory = EsTimeCal_factory;
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   // Read in our object
00057   int i;
00058   int nentries;
00059   
00060   // read TestCalibConst ------------------------------------------------------------
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  // Open the file, create the branch
00095    StatusCode sc = openWrite(fname);
00096   if(!sc)
00097     { log<<MSG::ERROR<<"unable to open files"<<endreq;
00098     }
00099   // write the Data in the TCDS to RootFile
00100  /*    CalibData::EsTimeCalibData* tmpObject = dynamic_cast<CalibData::EsTimeCalibData*>(pTDSObj);
00101      int tmpNo;
00102      double EsTimeCalibConst;
00103      int i;
00104 
00105      //TestCalibConst------------------------------------------------------------------
00106      TTree *Testtree = new TTree("TestCalibConst", "TestCalibConst");
00107      Testtree -> Branch("TestCalibConst", &EsTimeCalibConst, "EsTimeCalibConst/D");
00108      tmpNo = tmpObject -> getTestCalibConstNo();
00109      for(i=0; i<tmpNo; i++){
00110           EsTimeCalibConst = tmpObject -> getTestCalibConst(i);
00111           Testtree -> Fill();
00112      }
00113 
00114      
00115      Testtree -> Write();
00116 
00117    
00118      delete Testtree;
00119     
00120      closeWrite();*/
00121      log<<MSG::INFO<<"successfully create RootFile"<<endreq;
00122      return sc;
00123 
00124 }

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