Issue-525: To optimise the bnoc code
This MR is to optimise the bnoc code for HLT2 lines mentioned in issue #525 (closed).
The BnoC Hlt2 line rate in the master and this branch is at https://codimd.web.cern.ch/SRYI3YyNSwWMU_lG6jIF6Q?view.
- The total BnoC Hlt2 rate is
8.69\pm0.29kHz (in master) and11.32\pm0.33kHz (in this branch, before rm high rate lines),4.18\pm0.20kHz (in this branch, after rm high rate lines). -
- currently, the high rate lines are not removed. The total rate is about
11.32\pm0.33kHz.
- currently, the high rate lines are not removed. The total rate is about
- For BuTohhh/BcTohhh lines, the rate is not right, since we add the tight ghostprob and trackchi2ndof cuts on the particles again.
The discussion should be addressed: !1746 (comment 6435810).
In more details:
-
remove the ccfor self-charged-conjugated lines -
unify the basic builders and filters -
remove the ghostprob and trackchi2ndof cuts for particles -
check the control flow of all BnoC lines and properly define it, i.e. return line_alg->return [composite_daughter(s), final_combination]
The changes in the bnoc code:
- These lines with rate around (greater than) 1kHz need to be optimized!! (https://codimd.web.cern.ch/SRYI3YyNSwWMU_lG6jIF6Q?view)
- Hlt2BnoC_BdsToKpKmKpKm:
0.98±0.10kHz - Hlt2BnoC_BdsToKpKmPipPim:
1.01±0.10kHz - Hlt2BnoC_BdsToKpPimPipPim:
1.48±0.12kHz - Hlt2BnoC_BuToKSKKPip_LL:
1.51±0.12kHz - Hlt2BnoC_BuToKSKmPiPi_LL:
1.02±0.10kHz - Hlt2BnoC_BuToKSKpPiPi_LL:
1.34±0.12kHz - Hlt2BnoC_BuToKSPiPiPi_LL:
0.94±0.10kHz - Hlt2BnoC_BdToPPbarKPi:
1.09±0.10kHz - Hlt2BnoC_BdToPPbarPiPi:
1.14±0.11kHz
- Hlt2BnoC_BdsToKpKmKpKm:
- merge
B_ppbarhh_builder.pyintobasic_builder.pyandb_builder.py- builders for proton, kaon, pion ->
basic_builder.py - B combiner ->
b_builder.py
- builders for proton, kaon, pion ->
- change the name of
B_ppbarhh.pytoBdToppbarhh.py - register
BdToppbarhhlines inhlt2_bnoc.py - use
ParticleCombinerrather thanParticleContainersMergerfor B combiner- remove
ParticleContainersMergerinb_builder.py - remove the underscore at the beginning the name of B combiner in
b_builder.py, e.g._make_b2hhh->make_b2hhh. (Since B combiners are called directly in the line definition now.) - change the descriptor in the line definition, e.g.
descriptors=['B0 -> pi+ pi+ pi- pi-']->descriptor='B0 -> pi+ pi+ pi- pi-'
- remove
- comment out the ghostprob and trackchi2ndof cuts for particles before the stable data taking period, the relevant files are listed below
basic_builder.pyb_builder.pyBcTohhh.pyBuTohhh.pybTohh.py
- add separate lines in
b_builder.pyandhlt2_bnoc.pyfor lines defined in different files, and modify the order of lines. - remove
BdTohh.py, details in !2102 (merged) - remove
BuTophh.py, it is merged intoBuTohhh.py - remove the
ccfor self-charged-conjugated lines - optimize the control flow in the line definition
- change
return final_combination->return [composite_daughter(s), final_combination]in the line definition - change
return HltLine(name=name, prescale=prescale, algs=bnoc_prefilters() + [line_alg])->return HltLine(name=name, prescale=prescale, algs=bnoc_prefilters() + line_alg)in thehlt2_bnoc.py
- change
- correct the descriptor in
bbaryon_to_lightbaryon_h.py-
descriptor='[Lambda_b0 -> Xi- D0]cc'->descriptor='[Lambda_b0 -> Xi- K+]cc'formake_LbToXimKp_XimToLambdaDDPi -
descriptor='[Xi_b- -> Omega- pi+ pi-]cc'->descriptor='[Omega_b- -> Omega- pi+ pi-]cc'formake_OmbmToOmmPipPim_OmmToLambdaLLK -
descriptor='[Xi_b- -> Omega- pi+ pi-]cc'->descriptor='[Omega_b- -> Omega- pi+ pi-]cc'formake_OmbmToOmmPipPim_OmmToLambdaDDK
-
- move the Xib lines in
bTohhmodule tobbaryon_to_lightbaryon_hmodule - add
make_BcToKSDD(LL)Kwithdescriptor='[B_c+ -> KS0 K+]cc'inBuToKSh.py, and use them forHlt2BnoC_BcToKsDD(LL)Klines inhlt2_bnoc.py
Edited by Zewen Chen