Presentation is loading. Please wait.

Presentation is loading. Please wait.

DatabaseIO 的使用说明 报告人:马秋梅 2003.12.17. 概要 可以使用的接口 数据库表的定义说明 模块使用和脚本示例 可调用的方法.

Similar presentations


Presentation on theme: "DatabaseIO 的使用说明 报告人:马秋梅 2003.12.17. 概要 可以使用的接口 数据库表的定义说明 模块使用和脚本示例 可调用的方法."— Presentation transcript:

1 DatabaseIO 的使用说明 报告人:马秋梅 2003.12.17

2 概要 可以使用的接口 数据库表的定义说明 模块使用和脚本示例 可调用的方法

3 可以使用的接口 Muon 几何尺寸数据库接口 主漂几何尺寸数据库接口

4 数据库表的定义说明 CreateTime RunNum 查询条件是根据 CreateTime 和 RunNum 的值进行查询的。(所以调 用接口程序需要初始化两个变量:例 如 fDate 和 fRunnum 。

5 模块使用和脚本示例 模块使用参照 koala 上的: ~maqm/bes/framework/Test/src/ModuleDB.cxx ~maqm/bes/framework/Test/Test/ModuleDB.h 脚本参照 koala 上的: ~maqm/bes/test/script7.txt

6 引用模块的基本结构 引用头文件 构造函数 析构函数 init 函数 event 函数

7 模块使用:头文件的引用 #include "BesKernel/BesType.h" #include "BesKernel/BesModule.h" #include "BesEvent/BesEvent.h" #include "panther/panther.h" #include "panther/panther_group.h" #include "Test/ModuleDB.h" #include "iostream"

8 模块使用:构造函数 ModuleDB::ModuleDB ( const std::string& ModuleName, BesFramework* frame ) : BesModule(ModuleName, frame), svc(0) { Char_t *dbname="besdb",*host=NULL,*tty=NULL,*options=NULL; svc= Framework()->DatabaseSvc(); if (!svc) std::cout<< “ NO,Can ‘ t Open the Database==! ” << *dbname <<std::endl; else { svc->Open(dbname,host,tty,options); cout<< “ Opne Database successful!!"<<endl; }

9 模块使用:析构函数 ModuleDB::~ModuleDB() { svc->Close(); }

10 模块使用: init 函数 void ModuleDB::init (int* tmp) { strcpy(fDate,"'Dec 1,2003'"); fRunnum=(Int_t*)malloc(sizeof(Int_t)); *fRunnum=200000; } 注: Muon 几何尺寸日期为: " ' Oct 15,2003'"

11 模块使用: event 函数 (以主漂的几何尺寸为例) void ModuleDB::event(BesEvent*, int*) { Float_t *totallayerno,*totalwireno,*signallayerno, *signalwireR, *fieldwireR,*segmentno; Int_t signallayer2alllayer[43]; Char_t *wireinfo[90][15],*segmentinfo[67][5]; totallayerno=(Float_t*)malloc(sizeof(Float_t)); totalwireno=(Float_t*)malloc(sizeof(Float_t)); signallayerno=(Float_t*)malloc(sizeof(Float_t)); signalwireR=(Float_t*)malloc(sizeof(Float_t)); fieldwireR=(Float_t*)malloc(sizeof(Float_t)); segmentno=(Float_t*)malloc(sizeof(Float_t));

12 模块使用: event 函数 (以主漂的几何尺寸为例) svc->DB2BesGeoMDC (fRunnum,fDate, totallayerno, totalwireno,signallayerno, signalwireR, fieldwireR, segmentno, signallayer2alllayer, wireinfo, segmentinfo); cout<<"totallayerno is:"<<*totallayerno<<endl; for(i=0;i<43;i++) cout<< i << signallayer2alllayer[i]<<":"; cout<<endl; return; }

13 脚本示例 framework add_dll Test EventIO DatabaseIO framework configure service register BesEventOutput BesDatabaseService module register ModuleDB path add_module main ModuleDB gene 1 quit

14 Muon 几何数据可调用的方法 : void DB2MucGapSize (Int_t *fRunNum, Char_t fDate[14], Float_t xSize[2][8][9], Float_t ySize[2][8][9], Float_t zSize[2][8][9]) ; void DB2MucGapGeom (Int_t *fRunNum,Char_t fDate[14], Int_t orient[2][8][9], Float_t xTarg1[2][8][9], Float_t yTarg1[2][8][9], Float_t zTarg1[2][8][9], Float_t xTarg2[2][8][9], Float_t yTarg2[2][8][9],Float_t zTarg2[2][8][9], Float_t xTarg3[2][8][9], Float_t yTarg3[2][8][9], Float_t zTarg3[2][8][9], Float_t dzhighedge[2][8][9], Float_t dzfarfrontgas[2][8][9], Float_t dznearfrontgas[2][8][9], Float_t dznearbackgas[2][8][9], Float_t dznfarbackgas[2][8][9], Float_t dxtarget1tofiducial[2][8][9], Float_t dytarget1tofiducial[2][8][9], Float_t dxfiducialtocenter[2][8][9], Float_t dyfiducialtocenter[2][8][9]);

15 Muon 几何数据可调用的方法 : void DB2MucAbsorberGeom (Int_t *fRunNum, Char_t fDate[14], Float_t xTarg1[2][8][9], Float_t yTarg1[2][8][9], Float_t zTarg1[2][8][9], Float_t xTarg2[2][8][9], Float_t yTarg2[2][8][9], Float_t zTarg2[2][8][9], Float_t xTarg3[2][8][9], Float_t yTarg3[2][8][9],Float_t zTarg3[2][8][9]); void DB2MucAbsorberSize (Int_t *fRunNum,Char_t fDate[14], Float_t xsize[2][8][9], Float_t ysize[2][8][9], Float_t zsize[2][8][9]); void DB2MucStripSize (Int_t *fRunNum,Char_t fDate[14], Float_t xsize[2][8][9][100], Float_t ysize[2][8][9][100], Float_t zsize[2][8][9][100]);

16 Muon 几何数据可调用的方法 : void DB2MucRpcGeom (Int_t *fRunNum, Char_t fDate[14], Float_t z1Bakelite1[2][8][9], Float_t z2Bakelite1[2][8][9], Float_t z1Bakelite2[2][8][9], Float_t z2Bakelite2[2][8][9], Float_t z1Bakelite3[2][8][9], Float_t z2Bakelite3[2][8][9], Float_t z1Bakelite4[2][8][9], Float_t z2Bakelite4[2][8][9]); void DB2MucStripGeom (Int_t *fRunNum,Char_t fDate[14], Int_t panel[2][8][9][100], Float_t x1[2][8][9][100],Float_t x2[2][8][9][100], Float_t y1[2][8][9][100], Float_t y2[2][8][9][100]);

17 主漂几何数据可调用的方法 : void DB2BesGeoMDC (Int_t *fRunNum,Char_t fDate[14], Float_t *totallayerno, Float_t *totalwireno, Float_t *signallayerno , Float_t *signalwireR,Float_t *fieldwireR, Float_t *segmentno, Int_t signallayer2alllayer[43],Char_t *wireinfo[90][15], Char_t *segmentinfo[67][5]);

18 谢 谢! mail: maqm@ihep.ac.cn tel: 88233823

19 1 、框架的连接库的位置 /home/codeman/bes/v1/install/lib 2 、框架运行环境配置 /home/codeman/bes/v1/etc/bes_setup.csh 或者 bes_setup.sh ,运行框架之前先 source 这个脚本文件 3 、增加了数据库服务 DatabaseIO 的框架的连接 库的位置 /home/codeman/bes/v2/ install/lib 4 、增加了数据库服务 DatabaseIO 的框架运行环 境配置文件的位置 /home/codeman/bes/v2/etc/ bes_setup.csh 或者 bes_setup.sh


Download ppt "DatabaseIO 的使用说明 报告人:马秋梅 2003.12.17. 概要 可以使用的接口 数据库表的定义说明 模块使用和脚本示例 可调用的方法."

Similar presentations


Ads by Google