比赛题目: JUNO probe
在宣讲会上, 我们已经对 JUNO 的物理过程有了初步了解, 并且了解了 probe 函数的定义. probe 函数用来描述探测器对顶点的响应, 我们通常将含时的 probe 函数记为 , 该函数表示在相对坐标 下随时间 变化的 PMT 上接收到的期望 PE 数. 将时间维度积分后, 得到不含时间的 probe 函数 . 即: 这两个函数之间的关系是: = , 这里 是一个足够大的时间窗口, 我们取 1000ns.
赛题是这样的, 我们已经有了足够好的模拟数据作为训练集, 你需要用这些训练集, 得到一个 probe 函数.
每个 h5
文件包含 ParticleTruth
以及 PETruth
两个 dataset, 其格式为:
ParticleTruth
包含 10000 个顶点.
名称 | 说明 |
---|---|
EventID | 事件编号 |
x | 顶点坐标x/mm |
y | 顶点坐标y/mm |
z | 顶点坐标z/mm |
Ek | 顶点动能/MeV |
Evis | 顶点可见能量/MeV |
注: 顶点可见能量是指顶点沉积并且用来发光的能量.
PETruth
名称 | 说明 |
---|---|
EventID | 事件编号 |
ChannelID | PMT 编号 |
HitTime | PE 击中时间/ns |
LightTime | 光子被发出的时间/ns |
几何文件geo.h5
, 其格式为:
Geometry
名称 | 说明 |
---|---|
ChannelID | PMT 编号 |
theta | 球坐标 角度 |
phi | 球坐标 角度 |
任务说明
任务是修改 probe.py
, 造出一个 probe 函数, 尽量使分数更高. 可以添加额外的文件, 但是请不要更改 coefficient.py
与 draw.py
来作弊, 否则成绩无效.
probe.py
中的 class Probe
继承了 coefficient.py
中的 class ProbeBase
, 因此除了两个抽象函数, 其它函数也可以重写. 因此你的确可以通过直接重写 validate
函数给自己一个高分, 这样的情况直接判零分.
我们将提供一个测试集供大家在本地评分作为参考. 但是, 为了防止大家对着测试集过拟合, 本地评测分数及CI排行仅供参考, 最终的排名将由隐藏测例来决定!
附: 评分说明
给定顶点和 PMT 的相对坐标 , 我们可以得到一个 PE 时间序列 , 这里 是序列长度. 这也是一个非齐次泊松过程, 其似然函数为:
如果我们有 次采样, 那么似然函数就是:
取对数得到:
评分时, 会将你的 probe 函数 输入到 中, 得到的值越大越好.
代码
代码文件可以在以下渠道获得: