Page MenuHomeHEPForge

Add EvtBcVPPHad model and updated EvtPhiDalitz to use helicity amplitudes.
ClosedPublic

Authored by jback on Oct 10 2023, 11:13 PM.

Details

Summary

Add EvtBcVPPHad model for Bc to Jpsi p pbar pi decays and generalise the particle ordering for EvtBcVHad decay files, courtesy of Aleksei Luchinsky, Dmitrii Pereima & Vanya Belyaev (LHCb).

Updated EvtPhiDalitz model to use helicity amplitudes and fixed the indices used in the EvtVector3R::dot() function, courtesy of Arnau Brossa Gonzalo & Antonio Romero Vidal (LHCb).

Closes T230

Test Plan

Added JSON test files for EvtBcVPPHad model, and updated the EvtPhiDalitz one.

Diff Detail

Repository
rEVTGEN evtgen
Branch
master
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 265
Build 265: arc lint + arc unit

Event Timeline

jback created this revision.
jback retitled this revision from T230: Add EvtBcVPPHad model and updated EvtPhiDalitz to use helicity amplitudes. to Add EvtBcVPPHad model and updated EvtPhiDalitz to use helicity amplitudes..Oct 10 2023, 11:16 PM
jback edited the summary of this revision. (Show Details)
jback added a project: Restricted Project.
tlatham changed the visibility from "All Users" to "Public (No Login Required)".
tlatham changed the edit policy from "All Users" to "Restricted Project (Project)".

This looks good to me. I only have a few minor comments, which you find below.

src/EvtGenBase/EvtVector3R.cpp
100

What a catch!

src/EvtGenModels/EvtBcVHad.cpp
293

Minor comment, but I would modify the name root_particle to be parent.

369

This else condition is redundant because it is checked at initialisation. Probably best to replace the last else if statement with an else and write a comment for which case it is.

src/EvtGenModels/EvtPhiDalitz.cpp
96

I wonder whether it would make sense to add a scan during initialisation. However, given that there is only one single supported decay an initialisation scan is probably not necessary.

This revision is now accepted and ready to land.Oct 11 2023, 5:32 PM

For the newly added code it would be good to have the member variables named with the m_ prefix.

Also, we should circulate the plots made by the tests to the model authors to check that they are happy that:

  1. There are sufficient variables plotted to properly test the model, and if not what variables should be added
  2. All the distributions look correct
EvtGenModels/EvtBcVHad.hh
61–70

Where has case 4 gone?

EvtGenModels/EvtBcVPPHad.hh
54–62

Can we have this written with the full decay descriptor, as in the other case above?
Also, it looks from the cpp file that only case 1 is handled?

src/EvtGenModels/EvtBcVHad.cpp
50–61

Again case 4 seems to have vanished. But it seems to be a case that is handled by the code below.

src/EvtGenModels/EvtPhiDalitz.cpp
196

I think this function would be better named calc_q since it is being calculated each time, not retrieved from cache.

  • Edits for 1st review round for D100

Code updated to address the first set of review comments.

As found for the EvtBcVPPHad model, EvtBcVHad has the same bug of looping over 4 J/psi polarisation states when finding the decay amplitude terms, which has been fixed in this revision. However, this doesn't seem to affect the probability distributions nor the mass plots etc. since it looks like the extra wrong vertex() terms (set to undefined, which could be zero or NaN) are not included when the decay probability is found (it will loop over the 3 states and ignore the 4th one). But this will need to be corrected in Sim09 to avoid undefined amplitude terms that could cause problems for certain modes.

The histograms defined in the JSON testing files are the same as those used by the authors during the LHCb code review, as far as I am aware. Comparisons are available in T230, where the main difference occurs for the probability distribution for model 1 of the psi(2S) p pbar pi, while all the other histograms appear to match OK. The phi Dalitz histograms also seem to match those from the LHCb authors given at the simulation meeting on 23 May 2023:

.
The exception is that we don't get the first cosTheta_min quadratic distribution that peaks at +- 1; all of our cos(Helicity) quadratic plots peak at 0 instead.

EvtGenModels/EvtBcVHad.hh
61–70

Case 4 is not actually implemented. There is no corresponding hadronic current amplitude function in EvtWHad.hh. When the code finds the V 2pi+ pi- pi0 state, it sets the case integer to 4 but doesn't calculate the amplitude and will just generate phase space.

EvtGenModels/EvtBcVPPHad.hh
54–62

There is only one mode implemented at the moment, and the code comment just refers to this: "Bc p pbar pi". I understand that the LHCb authors would want to eventually add more p pbar modes.

src/EvtGenBase/EvtVector3R.cpp
100

Yes, fortunately it is not really used (elsewhere) in EvtGen and so it was not discovered until now.

src/EvtGenModels/EvtBcVHad.cpp
50–61

Updated code comment to say it is not implemented.

293

Changed to use parent.

369

The final else condition has been removed, as well as unneeded code aborts.

However, I think we should keep the last else if since we need to check that each output code is the right one. If the code is not found, then the hadronic current 4-vector remains initialised to zero.

src/EvtGenModels/EvtPhiDalitz.cpp
96

This max probability is set to allow for phi decays that have higher masses that go all the way up to near the B mass (5 GeV) in order to "explore the pdf in a wider phase space", according to the LHCb review.

This was found by generating B -> phi pi decays with ChangeMassMax phi 4.80 ChangeMassMin phi 0.2 and taking the maximum of the attached distribution:

196

Changed to calc_q

Thanks for the updates @jback. I think it would be good to understand what's going on with the phi Dalitz angles. It looks like the variables are a bit different between what we're plotting and what they showed in their talk. One of their variables runs from -pi to pi, and it called phi, so it seems to be more of an azimuthal type angle. We should ask them for the exact definitions of each of those angles. Otherwise I'm happy.

jback marked 5 inline comments as done.
  • Add cosThetaResNorm & cosBetaRes angles to testDecayModel. Used in added test file for Ds -> phi pi, phi -> pi pi pi0. Make EvtVector4R::cross() function constant.

I've attached a comparison of some of the angular distributions that was used for the Ds -> phi pi, phi -> pi pi pi0 decay (comparing this MR with those from the LHCb Sim meeting talk). It needs new decay angle calculations in the test program.

Thanks John, this looks great!
Once I'm back in the office in January I'll run it through the CI and then merge it if all is well.

  • Merge branch 'master' of ssh://phab.hepforge.org/source/evtgen