1、BESIII离线数据处理软件系统邓子艳 中科院高能所2011年7月 四川成都2/19北京正负电子对撞机邓子艳2011年7月 四川成都储存环储存环BESIII直线加速器直线加速器同步辐射同步辐射3/19北京谱仪(BESIII)4/19离线数据处理流程离线数据处理软件离线数据处理软件将探测器记录的原始数据,经过将探测器记录的原始数据,经过刻度刻度,转化为粒子的动量、能量和,转化为粒子的动量、能量和运动方向等物理量,生成运动方向等物理量,生成重建重建数据。数据。物理研究还需要产生和真实数据数量相当的物理研究还需要产生和真实数据数量相当的模拟模拟原始数据,这部分数据也要进行重建原始数据,这部分数据也要
2、进行重建 物理分析人员利用物理分析人员利用物理分析工具物理分析工具例如运动学拟合、粒子衰变顶点寻找和粒子鉴别等软例如运动学拟合、粒子衰变顶点寻找和粒子鉴别等软件,分析这些重建数据,得到物理研究结果件,分析这些重建数据,得到物理研究结果。5/19BESIII离线软件系统 BESIII Offline Software System(BOSS),采用GAUDI 作为基础,按照BES III 实验的具体需求,以C+语言为主开发的全新离线数据处理软件平台。模拟、刻度、重建、分析算法是离线数据处理和物理分析的核心,软件平台为这些算法提供事例数据以及各种常数服务。物理分析物理分析物理常数物理常数服务服务刻
3、度常数刻度常数服务服务探测器探测器物质物质/几何几何服务服务模拟模拟刻度刻度/重建重建BESIII离线离线数据库数据库事例事例数据数据管理管理原始数据原始数据原始数据原始数据转化转化重建数据重建数据转化转化重建数据重建数据DST数据数据DST数据数据转化转化6/19为什么采用GAUDI框架 GAUDI是欧洲核子中心LHCb实验开发的通用高能物理实验底层软件 可以为我们节省大量的代码,代码结构会更加清晰 能够保持整体架构的稳定性和一致性 面向组件:减轻耦合度太高导致的复杂度 框架管理组件 用户只需要了解接口,而不需要了解实现细节7/19Gaudi组织结构ConverterAlgorithmEve
4、nt DataServicePersistencyServiceDataFilesAlgorithmAlgorithmTransient Event StoreDetec.DataServicePersistencyServiceDataFilesTransient Detector StoreMessageServiceJobOptionsServiceParticle Prop.ServiceOtherServicesHistogramServicePersistencyServiceDataFilesTransientHistogram StoreApplicationManagerCo
5、nverterConverter8/19GAUDI数据流AlgorithmAAlgorithmBAlgorithmCTransient EventData StoreData T1Data T2,T3Data T2Data T3,T4Data T4Data T5T1T5Real data flow Apparent data flow 每个算法只关心输入和输出的数据 瞬态数据的有效管理可以规范和简化内存中的数据流动,大大减少功能模块之间,数据和功能模块之间的耦合 ACBParentT2T4 T3Control flow9/19事例处理过程 系统初始化 首先框架的主程序创建应用管理器对象,应用管
6、理器创建服务模块对象,服务对象的初始化 创建用户模块对象,用户模块对象的初始化 事例集的选择,为下面的事例循环做基础 事例循环 循环次数就是需要处理的事例集的大小。该循环过程可以分成事例读取,事例处理,事例存储这三个阶段。作业结束 当所有的事例都已经处理完毕,应用管理器通知各用户模块将统计数据保存到文件。应用管理器关闭所有的服务,删除各种对象,释放资源,作业结束。10/19BOSS 使用的外部软件包使用的外部软件包 Gaudi AIDA Anaphe Boost CERNLIB CLHEP FOX GENBES Geant4vLessTifvMYSQLvPGSQLvROOTvXercesCvX
7、t11/19软件配置管理 基于软件包的管理 软件包是由一组相关功能的软件代码构成的,从功能逻辑上结合在一起的物理单元,它是软件发布的最小单元 BOSS包括超过300个软件包 好处 可以在物理和逻辑上清楚地将任务划分给各个开发者;使得软件系统的发布具有可控性;可以有利于确定系统模块之间合理的依赖关系;还可以使整个系统逻辑结构和物理结构更为清晰,帮助开发者快速了解系统;有利于代码的重用和系统的扩展。12/19基于CMT的软件包组织结构useuseuseuseuseuseuseRelease areaUser areaMDCGeomSvcMDCGeomSvc-01-00-01BesReleaseBe
8、sRelease-00-00-01MDCGeomSvcMDCGeomSvc-00-00-01BesGeoMdc BesGeoMdc-00-*External/CLHEPCLHEP-00-01-*BesPolicyBesPolicy-01-*CLHEPExternal areause可以有效地管理整个软件系统中的各个软件包之间的依赖关系 大大简化程序员的编译和配置工作,使代码的移植性和兼容性增强 CMT和CVS结合使得软件代码管理,软件产生以及软件发布过程得以统一 13/19其它工具:ViewCVS14/19BESIII探测器模拟软件基于国际通用的模拟工具Geant4开发主要包括探测器几何描述、
9、击中信息和数字化过程。模拟软件数字化数字化()探测器响应 探测器响应 物理事例物理事例(Event)探测器模拟探测器模拟()几何和输运 几何和输运 事例产生子事例产生子击中信息击中信息(Hit)Raw dataMC truth15/19重建软件16/19离线刻度 离线刻度包括了各个子探测器的刻度算法以及用于管理和维护刻度数据的离线刻度框架 对于不同的实验条件和不同的探测器状态,刻度算法为每个子探测器产生不同的刻度常数文件 离线刻度框架软件 管理和维护这些刻度常数 同时给离线软件模块读取刻度常数提供统一接口 采用非商业数据库MySQL和Gaudi的数据管理模式 实现了各探测器离线刻度常数的有效管
10、理以及刻度常数的产生、存储和读取的流程控制 17/19刻度常数管理18/19数据库访问 BOSS软件系统内统一的数据库接口:DatabaseSvc 用户可选择数据库访问方式 每个作业一个连接,或者每次query一个连接 支持Sqlite或者Mysql方式 Sqlite文件可定期自动更新 统一的数据库访问配置文件 User Passwd Host DbType SqliteDbPath ReuseConnection19/19总结和展望 从2004年至今,BOSS软件已推出若干个正式版本 首个用于发表物理文章的版本为6.5.1.p02 最新推出的基于SL5 x86_64位系统的版本为6.6.0 自BESIII探测器正式开始取数,BESIII离线软件系统稳定可靠,数据处理和分析都能及时完成,并已基于这些数据发表了一批物理文章。随着BESIII探测器数据量越来越大,如何更快更好的处理数据将成为焦点工作,例如将BOSS软件应用于网格计算。谢谢大家!谢谢大家!