Shunan Zhangchanged title from ParticleVertexFitter not properly initialize when using ThOr combiners for neutrals to ParticleVertexFitter not properly initialize when using ParticleCombiner for neutrals
changed title from ParticleVertexFitter not properly initialize when using ThOr combiners for neutrals to ParticleVertexFitter not properly initialize when using ParticleCombiner for neutrals
Shunan Zhangchanged the descriptionCompare with previous version
From a test on 1k Hlt1 filtered Bs2DsK events with the latest b2oc_upgrade branch in this MR Moore!1071 (merged) (all commits from master are included), I saw this error again, but not all lines with neutrals produce zero rate.
Currently lines with neutrals in B2OC can be categorized into 3 types:
neutrals come from B, and the B hadron is combined by the new ParticleCombiner
neutrals come from D, and the D hadron is combined by the new ParticleCombiner
neutrals come from D, and the D hadron is combined by the old ParticleCombiner (Loki-based)
We keep type 3 because this error was already found last time, so our excited_d_with_neutral builder doesn't use the new one, but some new builders added by proponents are new ones.
The results show that type 1 does not produce any error, and gives non-zero rates.
For type 2, I take one example line: Hlt2B2OC_BuToD0Pi_D0ToKsDDPi0Resolved_Line
The error was produced at D0ToKsPi0 stage:
B2OCD02KSPi0Combiner#2.ParticleV... ERROR ParticleVertexFitter didn't properly initialize: #tracks with velo: ^@ #tracks without velo: ^@ #composites: ^A #resonances: ^@
and this step cuts off all events at vertex fit:
B2OCD02KSPi0Combiner#2 INFO Number of counters : 5 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | |*"# passed" | 1000 | 0 |( 0.000000 +- 0.000000)% | |*"# passed CombinationCut" | 171762 | 5179 |( 3.015219 +- 0.04126175)% | |*"# passed vertex fit" | 5179 | 0 |( 0.000000 +- 0.000000)% | | "Input1 size" | 1000 | 647 | 0.64700 | | "Input2 size" | 1000 | 218830 | 218.83 |B2OCD02KSPi0Combiner#2.LoKi::Dis... INFO Number of counters : 1 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | | "DOCA->(DI)GAMMA" | 5179 |
and in BuToD0Pi step no error is produced since the input event is zero:
B2OCB2XCombiner#194 INFO Number of counters : 3 | Counter | # | sum | mean/eff^* | rms/err^* | min | max | |*"# passed" | 1000 | 0 |( 0.000000 +- 0.000000)% | | "Input1 size" | 1000 | 0 | 0.0000 | | "Input2 size" | 1000 | 9505 | 9.5050 |
For type 3, the example line is Hlt2B2OC_BuToDst0K_Dst0ToD0Pi0Resolved_D0ToHH_Line
The Dst0ToD0Pi0 step seems fine (because it uses LoKi ParticleCombiner):
so all combinations are also cut off in vertex fit step, and this combiner produces the following in the run:
B2OCB2XCombiner#247.ParticleVert... ERROR ParticleVertexFitter didn't properly initialize: #tracks with velo: ^A #tracks without velo: ^@ #composites: ^@ #resonances: ^@
Currently what confuses me most is type 1 works well. I attached the full log below, but I need to warn you that ~40k lines in the log are those error messages, hope these info are useful for you to identify the problem.
Hi, I am obtaining a similar error when I try to combine a track and a jet, i.e. with decay descriptor 'H_10 -> mu+ CELLjet'
TwoBodyCombiner#3.ParticleVertex... ERROR ParticleVertexFitter didn't properly initialize: #tracks with velo: #tracks without velo: #composites: #resonances:
And then candidates are discarded. It is possible that the same error affects CELLjet, and not only neutral objects. We foresee many jet lines in QEE, it would be fundamental for us to have this fixed.
Alessandro Bertolinchanged title from ParticleVertexFitter not properly initialize when using ParticleCombiner for neutrals to Intermediate ParticleCombiner being used while waiting for the full ThOr implementation having issues in two body decays involving a neutral object
changed title from ParticleVertexFitter not properly initialize when using ParticleCombiner for neutrals to Intermediate ParticleCombiner being used while waiting for the full ThOr implementation having issues in two body decays involving a neutral object
This looks to me like an issue when trying to make a combination from a long-lived particle + a neutral, where the common origin vertex cannot be found due to the lack of knowledge of the neutral direction. In the past, we would use the option ParticleCombiners = {'' : 'MomentumCombiner:PUBLIC'} to tell the LoKi CombineParticles not to do a vertex fit but just add the momenta instead, see eg here. Does the new CombineParticles provide a similar option @agilman ? Or what does it do in such a case?
\cc @pgironel who was looking into using this option also for the Lb -> Lambda Gamma HLT2 lines
In ThoR, there is the option of using the argument ParticleCombiner="ParticleAdder" in the ParticleCombiner function (that does the same thing?). Like Tom does in Moore!1271 (merged).
However, note the issue that I just created concerning the ParticleAdder functionality and vertexing. #269.