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