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

Go to the documentation of this file.
00001 #include "GaudiKernel/MsgStream.h"
00002 #include "TreeEmcCalibDataCnv.h"
00003 #include "CalibData/Emc/EmcCalibData.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<TreeEmcCalibDataCnv> EmcCal_factory;
00027 //const  ICnvFactory& TreeEmcCalibDataCnvFactory = EmcCal_factory;
00028 
00029 
00030 
00031 TreeEmcCalibDataCnv::TreeEmcCalibDataCnv( ISvcLocator* svc) :
00032         TreeCalBaseCnv(svc, CLID_Calib_EmcCal) { 
00033 
00034         }
00035 
00036 
00037 const CLID& TreeEmcCalibDataCnv::objType() const {
00038         return CLID_Calib_EmcCal;
00039 }
00040 
00041 const CLID& TreeEmcCalibDataCnv::classID() {
00042         return CLID_Calib_EmcCal;
00043 }
00044 
00045 StatusCode TreeEmcCalibDataCnv::i_createObj(IOpaqueAddress* addr,
00046                 DataObject*& refpObject) {
00047 
00048         MsgStream log(msgSvc(), "TreeEmcCalibDataCnv");
00049         log<<MSG::DEBUG<<"SetProperty"<<endreq;
00050         //   gROOT->Reset();
00051         //   gDirectory = gROOT;
00052         //TFile("temp.root");
00053         TreeAddress* add = dynamic_cast<TreeAddress*>(addr);
00054         DatabaseRecord *records=add->pp();
00055         TBufferFile *buf1 = new TBufferFile(TBuffer::kRead);
00056         buf1->SetBuffer((*records)["DigiCalibConst"],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* Digitree= new TTree();
00063 
00064         Digitree->Streamer(*buf1);
00065 
00066         Digitree->Print();
00067 
00068         CalibData::EmcCalibData *tmpObject = new CalibData::EmcCalibData ;
00069         // Read in our object
00070         int i;
00071         int nentries;
00072 
00073         // read DigiCalibConst ------------------------------------------------------------
00074         double emcdata;
00075         //  Digitree -> SetBranchAddress("DigiCalibConst", &emcdata);
00076         //  Digitree -> SetBranchAddress("DigiCalibConst", &emcdata);
00077         //  nentries = Digitree-> GetEntries();
00078         //  std::cout<<"nentries=="<<nentries<<std::endl;
00079 
00080 
00081         double EmcCalibConst[6240];
00082         int EmcIxtalNumber[6240];
00083         vector<double> DigiCalibConst;
00084         vector<int> IxtalNumber;
00085         Digitree->SetBranchAddress("DigiCalibConst", EmcCalibConst);
00086         Digitree -> SetBranchAddress("IxtalNumber", EmcIxtalNumber);
00087         Digitree -> GetEntry(0);
00088         for(i=0; i<6240; i++){
00089                 DigiCalibConst.push_back(EmcCalibConst[i]);
00090                 IxtalNumber.push_back(EmcIxtalNumber[i]); 
00091         }
00092         tmpObject -> setDigiCalibConst(&DigiCalibConst);
00093         tmpObject -> setIxtalNumber(&IxtalNumber);
00094         refpObject=tmpObject;
00095         //  temp->Close();
00096         delete Digitree;
00097         return StatusCode::SUCCESS;
00098 
00099 
00100 }
00101 

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