BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
RootEsTimeCalibDataCnv.cxx
Go to the documentation of this file.
2#include "CalibData/EsTime/EsTimeCalibData.h"
3#include "CalibDataSvc/IInstrumentName.h"
4#include "GaudiKernel/MsgStream.h"
5
6#include "TDirectory.h"
7#include "TFile.h"
8#include "TObject.h"
9#include "TTree.h"
10
11#include "GaudiKernel/DataObject.h"
12#include "GaudiKernel/GenericAddress.h"
13#include "GaudiKernel/IAddressCreator.h"
14#include "GaudiKernel/IConversionSvc.h"
15#include "GaudiKernel/IDataProviderSvc.h"
16#include "GaudiKernel/IOpaqueAddress.h"
17
18#include "CalibDataSvc/ICalibMetaCnvSvc.h"
19#include "CalibDataSvc/ICalibRootSvc.h" //maybe
20
21// Temporary. Hope to find a better way to do this
22#include "CalibData/CalibModel.h"
23using namespace CalibData;
24// static CnvFactory<RootEsTimeCalibDataCnv> EsTimeCal_factory;
25// const ICnvFactory& RootEsTimeCalibDataCnvFactory = EsTimeCal_factory;
26
29
31
33
34StatusCode RootEsTimeCalibDataCnv::i_createObj( const std::string& fname,
35 DataObject*& refpObject ) {
36
37 MsgStream log( msgSvc(), "RootEsTimeCalibDataCnv" );
38 log << MSG::DEBUG << "SetProperty" << endmsg;
39
40 StatusCode sc = openRead( fname );
41 if ( !sc ) { log << MSG::ERROR << "unable to open files" << endmsg; }
42
44 // Read in our object
45 int i;
46 int nentries;
47
48 // read TestCalibConst ------------------------------------------------------------
49
50 int no;
51 double EsTimeCalibConst;
52 vector<double> TestCalibConst;
53 if ( m_inFile->Read( "h2" ) )
54 {
55 TTree* Testtree = (TTree*)m_inFile->Get( "h2" );
56 Testtree->SetBranchAddress( "meant0", &EsTimeCalibConst );
57
58 no = Testtree->GetEntries();
59 for ( i = 0; i < no; i++ )
60 {
61 Testtree->GetEntry( i );
62 TestCalibConst.push_back( EsTimeCalibConst );
63 }
64 }
65
66 double t0offsete, t0offsetb;
67 int bunchtime, runFrom, runTo, eventFrom, eventTo;
68 TTree* tree2 = (TTree*)m_inFile->Get( "calibconst" );
69 tree2->SetBranchAddress( "t0offsete", &t0offsete );
70 tree2->SetBranchAddress( "t0offsetb", &t0offsetb );
71 tree2->SetBranchAddress( "bunchtime", &bunchtime );
72 if ( tree2->GetBranchStatus( "runFrom" ) )
73 {
74 tree2->SetBranchAddress( "runFrom", &runFrom );
75 tree2->SetBranchAddress( "runTo", &runTo );
76 tree2->SetBranchAddress( "eventFrom", &eventFrom );
77 tree2->SetBranchAddress( "eventTo", &eventTo );
78 }
79 else
80 {
81 runFrom = -1;
82 runTo = -1;
83 eventFrom = -1;
84 eventTo = -1;
85 }
86
87 no = tree2->GetEntries();
88 for ( i = 0; i < no; i++ )
89 {
90 tree2->GetEntry( i );
91 tmpObject->setToffsetb( t0offsetb );
92 tmpObject->setToffsete( t0offsete );
93 tmpObject->setBunchTime( bunchtime );
94 tmpObject->setRunFrom( runFrom );
95 tmpObject->setRunTo( runTo );
96 tmpObject->setEventFrom( eventFrom );
97 tmpObject->setEventTo( eventTo );
98 }
99
100 tmpObject->setTestCalibConst( &TestCalibConst );
101 refpObject = tmpObject;
102
103 return StatusCode::SUCCESS;
104}
105
106StatusCode RootEsTimeCalibDataCnv::createRoot( const std::string& fname,
107 CalibData::CalibBase1* pTDSObj ) {
108
109 MsgStream log( msgSvc(), "RootEsTimeCalibDataCnv" );
110
111 // Open the file, create the branch
112 StatusCode sc = openWrite( fname );
113 if ( !sc ) { log << MSG::ERROR << "unable to open files" << endmsg; }
114 // write the Data in the TCDS to RootFile
115 /* CalibData::EsTimeCalibData* tmpObject =
116 dynamic_cast<CalibData::EsTimeCalibData*>(pTDSObj); int tmpNo; double EsTimeCalibConst;
117 int i;
118
119 //TestCalibConst------------------------------------------------------------------
120 TTree *Testtree = new TTree("TestCalibConst", "TestCalibConst");
121 Testtree -> Branch("TestCalibConst", &EsTimeCalibConst, "EsTimeCalibConst/D");
122 tmpNo = tmpObject -> getTestCalibConstNo();
123 for(i=0; i<tmpNo; i++){
124 EsTimeCalibConst = tmpObject -> getTestCalibConst(i);
125 Testtree -> Fill();
126 }
127
128
129 Testtree -> Write();
130
131
132 delete Testtree;
133
134 closeWrite();*/
135 log << MSG::INFO << "successfully create RootFile" << endmsg;
136 return sc;
137}
Int_t nentries
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)
StatusCode openRead(const std::string &fname)
RootCalBaseCnv(ISvcLocator *svc, const CLID &clid)
virtual StatusCode openWrite(const std::string &fname)
RootEsTimeCalibDataCnv(ISvcLocator *svc)
virtual StatusCode i_createObj(const std::string &fname, DataObject *&refpObject)
virtual StatusCode createRoot(const std::string &fname, CalibData::CalibBase1 *pTDSObj)
static const CLID & classID()