Opened 7 years ago
Closed 7 years ago
#1 closed defect (fixed)
Updating Pythia Particle Properties faulty in R01-07-00
Reported by: | Martin Ritter | Owned by: | jback |
---|---|---|---|
Priority: | critical | Milestone: | R01-08-00 |
Keywords: | Cc: | martin.ritter@…, torben.ferber@…, florian.bernlochner@… |
Description
I was trying to use EvtGen R01-07-00 for Belle II and I found some problems with the synchronization of particle properties between EvtGen and Pythia which was introduced with the following commit:
commit 48a86cf7d8c45cf026beac84df6e204d6eb42b1d
Author: John Back <J.J.Back@…>
Date: Fri Apr 7 16:03:30 2017 +0100
Make sure Pythia8 uses the same particle properties as EvtGen.
Modified
EvtGenExternal/EvtPythiaEngine
to ensure that the EvtGen-based
instances of Pythia8 (for generic and alias decays) use the same
particle properties as defined by EvtGen, courtesy Patrick Robbe (LHCb).
I modified the evtgen code to provide some additional output (see attached output.patch). As you can see from the attached log output (evtgen_output.txt) this produces very weird results (with Pythia 8.215):
- The Pythia particle with id 0 (void) gets redefined ~160 times, probably because the particles are not known to Pythia.
- The assigned masses are not correct. For example in line 142 the rho0
is set to 1.023 GeV. This is due to the fact that the code uses
EvtPDL::getMass()
instead ofEvtPDL::getMeanMass()
.
I was wondering if (1) is an effect of the Pythia version we use but I haven't seen anything in the Pythia Changelog or in the EvtGen README so maybe you know more.
For (2) I really believe this is a bug in the code.
Attachments (2)
Change History (9)
Changed 7 years ago by
Attachment: | output.patch added |
---|
comment:1 Changed 7 years ago by
Cc: | martin.ritter@… torben.ferber@… florian.bernlochner@… added |
---|---|
Owner: | changed from somebody to jback |
Reporter: | changed from guest to Martin Ritter |
Status: | new → assigned |
comment:2 Changed 7 years ago by
Status: | assigned → accepted |
---|
comment:3 Changed 7 years ago by
Milestone: | → R01-08-00 |
---|
comment:4 Changed 7 years ago by
I have updated the EvPythiaEngine? class to use the right particle masses in the master version of the repository. The update also avoids constantly redefining the "void" particle:
http://evtgen.hepforge.org/trac/changeset/b9f9ddfa5
Do "git pull origin master" to get the changes, or the equivalent "git fetch" (retrieve but don't update) and "git merge" (update) commands.
Please let me know if this fixes the problems.
comment:5 Changed 7 years ago by
Thanks for the quick work. The changes seems to fix the issues explained in the ticket but I have some additional questions:
- Have I understood it correctly that the updates were not propagated to Pythia at all since the ParticleData? was copied and not modified in place? So R01-07-00 is not affected by the
getMass()
but as it is as it doesn't update the particle properties of Pythia anyway? - So I added some debug output again and some of the updates are a bit weird for me, for example:
EvtGen: Updating Pythia particle mass from: CMshower (94) to: W+copy (94) old: 8.03850000e+01 new: 0.00000000e+00 EvtGen: Updating Pythia particle width from: CMshower (94) to: W+copy (94) old: 2.08500000e+00 new: 0.00000000e+00
(old = pythia original value, new = after update)
now I have no idea if the W+copy is actually used by Pythia and if this change affects anything but wouldn't it make sense to exclude the PDG codes 81-100 from this update procedure as they are "reserved for generator-specific pseudoparticles and concepts" (pdg2017)?
comment:6 Changed 7 years ago by
The particle properties were not updated since only copies were affected not the original data. With the updated code in EvtPythiaEngine::updateParticleLists(), Pythia automatically began to list all of the particles that changed during initialisation, which was not happening before. The "Init:showChangedParticleData = off" was then added to suppress this verbose output (it was not needed before because no particle properties were actually changed).
The code has been changed to check the PDG integer codes before updating the particle properties, ignoring void (0), nuPrime_tau (18) and pseudoparticles (81-100):
comment:7 Changed 7 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
Code has been additionally reviewed and checked by Phil Ilten (one of the Pythia co-authors from LHCb).
Patch to add extra output to the particle property update