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