BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
TreeEsTimeCalibDataCnv.cxx
Go to the documentation of this file.
1#include "GaudiKernel/MsgStream.h"
6#include "TFile.h"
7#include "TTree.h"
8#include "TDirectory.h"
9#include "TObject.h"
10#include "TBuffer.h"
11
12#include "GaudiKernel/CnvFactory.h"
13#include "GaudiKernel/IOpaqueAddress.h"
14#include "GaudiKernel/DataObject.h"
15#include "GaudiKernel/IAddressCreator.h"
16#include "GaudiKernel/IDataProviderSvc.h"
17#include "GaudiKernel/IConversionSvc.h"
18#include "GaudiKernel/GenericAddress.h"
19
20#include "CalibDataSvc/ICalibTreeSvc.h" //maybe
22
23// Temporary. Hope to find a better way to do this
25using namespace CalibData;
26//static CnvFactory<TreeEsTimeCalibDataCnv> EsTimeCal_factory;
27//const ICnvFactory& TreeEsTimeCalibDataCnvFactory = EsTimeCal_factory;
28
29
30
33
34 }
35
36
39}
40
43}
44
45StatusCode TreeEsTimeCalibDataCnv::i_createObj(IOpaqueAddress* addr,
46 DataObject*& refpObject) {
47
48 MsgStream log(msgSvc(), "TreeEsTimeCalibDataCnv");
49 log<<MSG::DEBUG<<"SetProperty"<<endreq;
50 TreeAddress* add = dynamic_cast<TreeAddress*>(addr);
51 DatabaseRecord *records=add->pp();
52
53 TBufferFile *buf1 = new TBufferFile(TBuffer::kRead);
54 TBufferFile *buf2 = new TBufferFile(TBuffer::kRead);
55 buf1->SetBuffer((*records)["EsTimeH2"],512000,kFALSE);
56 buf2->SetBuffer((*records)["EsTimeH9"],512000,kFALSE);
57
58 std::cout<<" SftVer is "<<(*records)["SftVer"];
59 std::cout<<" CalVerSft is "<<(*records)["CalParVer"];
60 std::cout<<" File name is "<<(*records)["FileName"]<<std::endl;
61
62 TTree* Testtree= new TTree();
63
64 Testtree->Streamer(*buf1);
65 TTree* tree2= new TTree();
66 tree2->Streamer(*buf2);
67
69 // Read in our object
70 int i;
71
72 // read TestCalibConst ------------------------------------------------------------
73 double EsTimeCalibConst;
74 vector<double> TestCalibConst;
75 Testtree -> SetBranchAddress("meant0", &EsTimeCalibConst);
76 int no= Testtree -> GetEntries();
77 for(i=0; i<no; i++){
78 Testtree->GetEntry(i);
79 TestCalibConst.push_back(EsTimeCalibConst);
80 }
81 tmpObject -> setTestCalibConst(&TestCalibConst);
82
83 double t0offsete,t0offsetb;
84 int bunchtime, runFrom, runTo, eventFrom, eventTo;
85 tree2->SetBranchAddress("t0offsete", &t0offsete);
86 tree2->SetBranchAddress("t0offsetb", &t0offsetb);
87 tree2->SetBranchAddress("bunchtime", &bunchtime);
88 if( tree2->GetBranchStatus("runFrom") ) {
89 tree2->SetBranchAddress("runFrom", &runFrom );
90 tree2->SetBranchAddress("runTo", &runTo );
91 tree2->SetBranchAddress("eventFrom", &eventFrom);
92 tree2->SetBranchAddress("eventTo", &eventTo );
93 }
94 else {
95 runFrom = -1;
96 runTo = -1;
97 eventFrom = -1;
98 eventTo = -1;
99 }
100 no = tree2->GetEntries();
101 for(i=0; i<no; i++){
102 tree2->GetEntry(i);
103 tmpObject ->setToffsetb(t0offsetb);
104 tmpObject ->setToffsete(t0offsete);
105 tmpObject ->setBunchTime(bunchtime);
106 tmpObject ->setRunFrom(runFrom);
107 tmpObject ->setRunTo(runTo);
108 tmpObject ->setEventFrom(eventFrom);
109 tmpObject ->setEventTo(eventTo);
110 }
111
112 refpObject=tmpObject;
113
114 delete Testtree;
115 delete tree2;
116 return StatusCode::SUCCESS;
117
118
119}
120
const CLID CLID_Calib_EsTimeCal
Definition: CalibModel.h:51
const int no
data SetBranchAddress("time",&time)
IMessageSvc * msgSvc()
void setRunFrom(const int runFrom)
void setEventTo(const int eventTo)
void setToffsetb(const double toffsetb)
void setEventFrom(const int eventFrom)
void setBunchTime(const int bunchtime)
void setRunTo(const int runTo)
void setToffsete(const double toffsete)
virtual DatabaseRecord * pp()
Definition: TreeAddress.h:130
static const CLID & classID()
TreeEsTimeCalibDataCnv(ISvcLocator *svc)
const CLID & objType() const
virtual StatusCode i_createObj(IOpaqueAddress *address, DataObject *&refpObject)