BOSS 7.0.8
BESIII Offline Software System
Loading...
Searching...
No Matches
TreeOffEvtFilterCnv.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
22using namespace std;
23// Temporary. Hope to find a better way to do this
25using namespace CalibData;
26
29
30 }
31
32
33const CLID& TreeOffEvtFilterCnv::objType() const {
35}
36
39}
40
41StatusCode TreeOffEvtFilterCnv::i_createObj(IOpaqueAddress* addr,
42 DataObject*& refpObject) {
43
44 MsgStream log(msgSvc(), "TreeOffEvtFilterCnv");
45 log<<MSG::DEBUG<<"SetProperty"<<endreq;
46 TreeAddress* add = dynamic_cast<TreeAddress*>(addr);
47 DatabaseRecord *records=add->pp();
48
49 TBufferFile *buf1 = new TBufferFile(TBuffer::kRead);
50 TBufferFile *buf2 = new TBufferFile(TBuffer::kRead);
51 buf1->SetBuffer((*records)["data"],512000,kFALSE);
52 buf2->SetBuffer((*records)["oef"],512000,kFALSE);
53
54 std::cout<<" SftVer is "<<(*records)["SftVer"];
55 std::cout<<" CalVerSft is "<<(*records)["CalParVer"];
56 std::cout<<" File name is "<<(*records)["FileName"]<<std::endl;
57
58 TTree* tree1= new TTree();
59 tree1->Streamer(*buf1);
60 TTree* tree2= new TTree();
61 tree2->Streamer(*buf2);
62
64 // Read in our object
65 int i,no;
66
67 // read Tree:data & oef ------------------------------------------------------------
68 int runFrom, runTo, eventFrom, eventTo;
69 tree1->SetBranchAddress("runFrom", &runFrom );
70 tree1->SetBranchAddress("runTo", &runTo );
71 tree1->SetBranchAddress("eventFrom", &eventFrom);
72 tree1->SetBranchAddress("eventTo", &eventTo );
73 tree1->GetEntry(0);
74 tmpObject ->setRunFrom(runFrom);
75 tmpObject ->setRunTo(runTo);
76 tmpObject ->setEventFrom(eventFrom);
77 tmpObject ->setEventTo(eventTo);
78 cout<<"runFrom in OffEvtFilter is:"<<runFrom<<endl;
79 cout<<"runTo in OffEvtFilter is:"<<runTo<<endl;
80 cout<<"EventFrom in OffEvtFilter is:"<<eventFrom<<endl;
81 cout<<"eventTo in OffEvtFilter is:"<<eventTo<<endl;
82
83 int flag;
84 double tBegin,tEnd;
85 tree2->SetBranchAddress("tbegin", &tBegin);
86 tree2->SetBranchAddress("tend", &tEnd);
87 tree2->SetBranchAddress("flag", &flag);
88 no = tree2->GetEntries();
89 tmpObject ->setNpar(no);
90 for(i=0; i<no; i++){
91 tree2->GetEntry(i);
92 tmpObject ->setFlag(flag);
93 tmpObject ->setTBegin(tBegin);
94 tmpObject ->setTEnd(tEnd);
95 cout<<"OffEvtFilter:i:flag:tBegin:tEnd=="<<i<<":"<<flag<<":"<<tBegin<<":"<<tEnd<<endl;
96 }
97
98 refpObject=tmpObject;
99
100 delete tree1;
101 delete tree2;
102 return StatusCode::SUCCESS;
103
104
105}
106
const CLID CLID_Calib_OffEvtFilter
Definition: CalibModel.h:69
const int no
IMessageSvc * msgSvc()
void setTEnd(const double tEnd)
void setTBegin(const double tBegin)
void setRunTo(const int runTo)
void setFlag(const int flag)
void setNpar(const int npar)
void setRunFrom(const int runFrom)
void setEventTo(const int eventTo)
void setEventFrom(const int eventFrom)
virtual DatabaseRecord * pp()
Definition: TreeAddress.h:130
virtual StatusCode i_createObj(IOpaqueAddress *address, DataObject *&refpObject)
const CLID & objType() const
static const CLID & classID()
TreeOffEvtFilterCnv(ISvcLocator *svc)