替换质量假设
学习目标
-
从stripping线路输出开始创建新的选择
-
修改stripping线路做出的粒子假设
在某些情况下,我们可能希望交换两个粒子的质量假设或粒子鉴别(PID)信息。 以D_s^-\to K^-K^+\pi^-为例,其中 K^-和 \pi^- 有时会被误鉴别。这种情况下,我们会对 D_s^-\to K^-K^+\pi^-和D_s^-\to \pi^-K^+ K^-(质量交换)的顺序都感兴趣, 因为衰变描述符中输入粒子的顺序很重要。
这正是本课程将涵盖的情况,我们将创建三个n元组(nTuples), 一个对应原始情况D_s^-\to K^-K^+\pi^- ,一个对应交换质量假设的情况 D_s^-\to \pi^-K^+ K^- , 第三个则合并前两种情况。
我们有一条剥离线用于选择这些候选粒子,其中 D_s^- 来自B^0。我们可以通过选择剥离线中的候选粒子,并使用
SubstitutePID
函数创建一个第二个 Funtuple
来覆盖质量假设交换的情况,从而交换两个质量假设。
\(D_s^-\to K^-K^+\pi^-\) 候选者位于以下B_Data
容器中:
from PyConf.reading import get_particles
B_Line = "SpruceB2OC_BdToDsmK_DsmToKpKmPim_LTU"
B_Data = get_particles(f"/Event/Spruce/{B_Line}/Particles")
我们现在可以应用SubstitutePID
在新的Funtuple
上修改衰变描述符:
from DaVinciTools import SubstitutePID
Swapped_Data = SubstitutePID(
"Subs_SwapKpi", # name of the algorithm
B_Data, # input particle container
substitutions=[
"[ B0 -> ( D_s- -> K-{{pi-}} K+ pi-{{K-}} ) K+ ]CC",
],
).Particles
tuple_swapped = Funtuple(
name="SwappedTuple",
tuple_name="DecayTree",
fields=fields,
variables=variables,
event_variables=evt_vars,
inputs=Swapped_Data,
)
其中,fields
、variables
和 evt_vars
在此处完整示例中提供。
在这个示例中,我们将第一个带电K介子赋予π介子质量假设,
而将D_s^-衰变中的带电π介子赋予K介子质量假设。
此外,我们还可以创建另一个元组, 合并两种情况:正确PID的情况和"错误"PID的情况。 为此,我们创建一个合并上述两个数据容器的容器:
from PyConf.Algorithms import ParticleContainerMerger
MergedContainer = ParticleContainerMerger(
name="HypothesisMerger",
InputContainers=[B_Data, Swapped_Data],
OutputLevel=INFO,
).OutputContainer
tuple_merged = Funtuple(
name="MergedTuple",
tuple_name="DecayTree",
fields=fields,
variables=variables,
event_variables=evt_vars,
inputs=MergedContainer,
)
我们可以使用以下配置文件
在B2OC
工作组的模拟样本上运行这个示例:
input_files:
- root://eoslhcb.cern.ch//eos/lhcb/wg/dpa/wp7/Run3SK/exampleDST/my_spruce_output-B2OCstream.dst
input_type: ROOT
output_type: ROOT
input_raw_format: 0.5
simulation: true
input_process: Spruce
conddb_tag: sim10-2024.W37.39-v00.00-md100
dddb_tag: dddb-20240427
lumi: false
data_type: '2024'
evt_max: 10000
print_freq: 2000
ntuple_file: tuple.root
可通过以下命令运行代码:
$ lb-run -c x86_64_v3-el9-gcc13+detdesc-opt+g DaVinci/v65r0 lbexec DVoptions:main options.yaml
结果将是一个包含三个 TTree
对象的 tuple.root
文件。
OriginalTuple
包含通过剥离线且满足原始衰变描述符的候选粒子。
以下是D_s^- 不变质量分布图:
SwappedTuple
包含满足π介子和K介子交换后的衰变描述符的候选者。
如下方直方图所示,其峰值更宽。
这是因为我们仅交换了应用于π介子和K介子径迹的质量假设,而未修改选择要求。
因此,现在被我们鉴别为π介子的径迹仍保留Sprucing线路中的PID_K\>5
,
而被鉴别为K介子的径迹则有PID_K<5
。
最后,MergedTuple
包含前两个元组的合并结果: